#define DOOR_GET_STATE (1 << 8)
#define DOOR_SET_STATE (1 << 9)
+#define DOOR_1 (DOOR_ACTION_1)
+#define DOOR_2 (DOOR_ACTION_2)
+#define DOOR_OPEN (DOOR_OPEN_ALL)
+#define DOOR_CLOSE (DOOR_CLOSE_ALL)
+
+#define DOOR_INDEX_FROM_TOKEN(x) ((x) == DOOR_1 ? 0 : 1)
+#define DOOR_TOKEN_FROM_INDEX(x) ((x) == 0 ? DOOR_1 ? : DOOR_2)
+#define REDRAW_DOOR_FROM_TOKEN(x) ((x) == DOOR_1 ? REDRAW_DOOR_1 : \
+ REDRAW_DOOR_2)
+
/* for Request */
#define REQ_ASK (1 << 0)
#define REQ_CONFIRM (1 << 1)
#define REQUEST_WAIT_FOR_INPUT (REQ_ASK | REQ_CONFIRM | REQ_PLAYER)
+
void DumpTile(int, int);
void DrawMaskedBorder_FIELD();
void DrawMaskedBorder(int);
void SetDrawtoField(int);
+#if 1
+void RedrawPlayfield();
+#else
void RedrawPlayfield(boolean, int, int, int, int);
+#endif
+void BlitScreenToBitmap(Bitmap *);
void BackToFront();
void FadeIn(int);
void SetRandomAnimationValue(int, int);
int getGraphicAnimationFrame(int, int);
-void DrawGraphicAnimationExt(DrawBuffer *, int, int, int, int, int);
+
void DrawGraphicAnimation(int, int, int);
+void DrawGraphicAnimationExt(DrawBuffer *, int, int, int, int, int);
+
+void DrawFixedGraphicAnimation(int, int, int);
+void DrawFixedGraphicAnimationExt(DrawBuffer *, int, int, int, int, int);
+
void DrawLevelGraphicAnimation(int, int, int);
void DrawLevelElementAnimation(int, int, int);
void DrawLevelGraphicAnimationIfNeeded(int, int, int);
void DrawPlayerField(int, int);
void DrawPlayer(struct PlayerInfo *);
+void getSizedGraphicSourceExt(int, int, int, Bitmap **, int *, int *, boolean);
+void getFixedGraphicSourceExt(int, int, Bitmap **, int *, int *, boolean);
void getSizedGraphicSource(int, int, int, Bitmap **, int *, int *);
+void getFixedGraphicSource(int, int, Bitmap **, int *, int *);
void getMiniGraphicSource(int, Bitmap **, int *, int *);
void getGraphicSourceExt(int, int, Bitmap **, int *, int *, boolean);
void getGraphicSource(int, int, Bitmap **, int *, int *);
+
void DrawGraphic(int, int, int, int);
void DrawGraphicExt(DrawBuffer *, int, int, int, int);
void DrawGraphicThruMask(int, int, int, int);
void DrawGraphicThruMaskExt(DrawBuffer *, int, int, int, int);
+void DrawFixedGraphic(int, int, int, int);
+void DrawFixedGraphicExt(DrawBuffer *, int, int, int, int);
+void DrawFixedGraphicThruMask(int, int, int, int);
+void DrawFixedGraphicThruMaskExt(DrawBuffer *, int, int, int, int);
+
void DrawSizedGraphic(int, int, int, int, int);
void DrawSizedGraphicExt(DrawBuffer *, int, int, int, int, int);
+
void DrawMiniGraphic(int, int, int);
void DrawMiniGraphicExt(DrawBuffer *, int, int, int);
void DrawMiniElement(int, int, int);
void DrawMiniElementOrWall(int, int, int, int);
-void ShowEnvelope();
+void ShowEnvelope(int);
+void ShowEnvelopeDoor(char *text, int);
-void DrawLevel(void);
+void DrawLevel(int);
void DrawMiniLevel(int, int, int, int);
-void DrawPreviewLevel(boolean);
+void DrawPreviewLevelInitial(void);
+void DrawPreviewLevelAnimation(void);
-void WaitForEventToContinue();
+void WaitForEventToContinue(void);
boolean Request(char *, unsigned int);
+void InitGraphicCompatibilityInfo_Doors(void);
+void InitDoors(void);
unsigned int OpenDoor(unsigned int);
unsigned int CloseDoor(unsigned int);
unsigned int GetDoorState(void);
int getBeltSwitchElementFromBeltNrAndBeltDirNr(int, int);
int getBeltSwitchElementFromBeltNrAndBeltDir(int, int);
-unsigned int InitRND(long);
+unsigned int InitRND(int);
void InitGraphicInfo_EM(void);
void PlayMenuSoundExt(int);
void PlaySoundActivating();
void PlaySoundSelecting();
-void ToggleFullscreenIfNeeded();
-void ChangeScreenModeIfNeeded();
+void ToggleFullscreenOrChangeWindowScalingIfNeeded();
+void ChangeViewportPropertiesIfNeeded();
#endif /* TOOLS_H */