// for DrawElementShifted
-#define NO_CUTTING 0
-#define CUT_ABOVE (1 << 0)
-#define CUT_BELOW (1 << 1)
-#define CUT_LEFT (1 << 2)
-#define CUT_RIGHT (1 << 3)
+#define NO_CUTTING 0
+#define CUT_ABOVE (1 << 0)
+#define CUT_BELOW (1 << 1)
+#define CUT_LEFT (1 << 2)
+#define CUT_RIGHT (1 << 3)
// for masking functions
-#define NO_MASKING 0
-#define USE_MASKING 1
+#define NO_MASKING 0
+#define USE_MASKING 1
// for MoveDoor
-#define DOOR_OPEN_1 (1 << 0)
-#define DOOR_OPEN_2 (1 << 1)
-#define DOOR_CLOSE_1 (1 << 2)
-#define DOOR_CLOSE_2 (1 << 3)
-#define DOOR_OPEN_ALL (DOOR_OPEN_1 | DOOR_OPEN_2)
-#define DOOR_CLOSE_ALL (DOOR_CLOSE_1 | DOOR_CLOSE_2)
-#define DOOR_ACTION_1 (DOOR_OPEN_1 | DOOR_CLOSE_1)
-#define DOOR_ACTION_2 (DOOR_OPEN_2 | DOOR_CLOSE_2)
-#define DOOR_ACTION (DOOR_ACTION_1 | DOOR_ACTION_2)
-#define DOOR_COPY_BACK (1 << 4)
-#define DOOR_NO_COPY_BACK (1 << 5)
-#define DOOR_NO_DELAY (1 << 6)
-#define DOOR_FORCE_ANIM (1 << 7)
-#define DOOR_FORCE_REDRAW (1 << 8)
-#define DOOR_GET_STATE (1 << 9)
-#define DOOR_SET_STATE (1 << 10)
-
-#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_OPEN_1 (1 << 0)
+#define DOOR_OPEN_2 (1 << 1)
+#define DOOR_CLOSE_1 (1 << 2)
+#define DOOR_CLOSE_2 (1 << 3)
+#define DOOR_OPEN_ALL (DOOR_OPEN_1 | DOOR_OPEN_2)
+#define DOOR_CLOSE_ALL (DOOR_CLOSE_1 | DOOR_CLOSE_2)
+#define DOOR_ACTION_1 (DOOR_OPEN_1 | DOOR_CLOSE_1)
+#define DOOR_ACTION_2 (DOOR_OPEN_2 | DOOR_CLOSE_2)
+#define DOOR_ACTION (DOOR_ACTION_1 | DOOR_ACTION_2)
+#define DOOR_COPY_BACK (1 << 4)
+#define DOOR_NO_COPY_BACK (1 << 5)
+#define DOOR_NO_DELAY (1 << 6)
+#define DOOR_FORCE_ANIM (1 << 7)
+#define DOOR_FORCE_REDRAW (1 << 8)
+#define DOOR_GET_STATE (1 << 9)
+#define DOOR_SET_STATE (1 << 10)
+
+#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)
+#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 REQ_PLAYER (1 << 2)
-#define REQ_STAY_OPEN (1 << 3)
-#define REQ_STAY_CLOSED (1 << 4)
-#define REQ_REOPEN (1 << 5)
-
-#define REQUEST_WAIT_FOR_INPUT (REQ_ASK | REQ_CONFIRM | REQ_PLAYER)
+#define REQ_ASK (1 << 0)
+#define REQ_CONFIRM (1 << 1)
+#define REQ_PLAYER (1 << 2)
+#define REQ_STAY_OPEN (1 << 3)
+#define REQ_STAY_CLOSED (1 << 4)
+#define REQ_REOPEN (1 << 5)
int getFieldbufferOffsetX_RND(int, int);
void DrawMaskedBorder_ALL(void);
void DrawMaskedBorder(int);
void DrawMaskedBorderToTarget(int);
-void DrawTileCursor(int);
+void DrawTileCursor(int, int);
void SetDrawtoField(int);
int GetDrawtoField(void);
void FadeSkipNextFadeIn(void);
void FadeSkipNextFadeOut(void);
+int getImageFromGraphicOrDefault(int, int);
Bitmap *getGlobalBorderBitmapFromStatus(int);
void ClearField(void);
+
+void SetBackgroundImage(int, int);
void SetWindowBackgroundImageIfDefined(int);
void SetMainBackgroundImageIfDefined(int);
void SetDoorBackgroundImageIfDefined(int);
void MarkTileDirty(int, int);
void SetBorderElement(void);
-void FloodFillLevel(int, int, int, short[][MAX_LEV_FIELDY], int, int);
-void FloodFillLevelExt(int, int, int, int, int y, short field[][y], int, int);
+void FloodFillLevel(int, int, int, short[MAX_LEV_FIELDX][MAX_LEV_FIELDY], int, int);
+void FloodFillLevelExt(int, int, int, int x, int y, short field[x][y], int, int);
void SetRandomAnimationValue(int, int);
+void SetAnimationFirstLevel(int);
int getGraphicAnimationFrame(int, int);
+int getGraphicAnimationFrameXY(int, int, int);
void DrawFixedGraphicAnimation(int, int, int);
void DrawFixedGraphicAnimationExt(DrawBuffer *, int, int, int, int, int);
+void DrawSizedGraphicAnimationExt(DrawBuffer *, int, int, int, int, int, int);
void DrawLevelGraphicAnimation(int, int, int);
void DrawLevelElementAnimation(int, int, int);
void DrawLevelFieldCrumbledDigging(int, int, int, int);
void DrawLevelFieldCrumbledNeighbours(int, int);
void DrawScreenGraphic(int, int, int, int);
+void DrawLevelGraphic(int, int, int, int);
void DrawScreenElement(int, int, int);
void DrawLevelElement(int, int, int);
void DrawScreenField(int, int);
void ShowEnvelope(int);
void ShowEnvelopeDoor(char *, int);
-void DrawEnvelopeRequestToScreen(int, int);
+void DrawEnvelopeRequestToScreen(int);
void DrawLevel(int);
void DrawSizedLevel(int, int, int, int, int);
void ClearNetworkPlayers(void);
void WaitForEventToContinue(void);
-boolean Request(char *, unsigned int);
+int Request(char *, unsigned int);
void InitGraphicCompatibilityInfo_Doors(void);
void InitDoors(void);
unsigned int OpenDoor(unsigned int);
void CreateToolButtons(void);
void FreeToolButtons(void);
+int getEngineElement(int);
+int getDrawingElement(int);
+
+int map_element_RND_to_BD_cave(int);
+int map_element_RND_to_BD_effect(int, int);
+int map_element_BD_to_RND_cave(int);
+int map_element_BD_to_RND_game(int);
+
int map_element_RND_to_EM_cave(int);
int map_element_EM_to_RND_cave(int);
int map_element_EM_to_RND_game(int);
int el2baseimg(int);
int el2img(int);
int el2edimg(int);
+int el2edimg_with_frame(int, int *, int *);
int el2preimg(int);
int el2panelimg(int);
int font2baseimg(int);
int getBeltSwitchElementFromBeltNrAndBeltDir(int, int);
unsigned int InitRND(int);
+
+void InitGraphicInfo_BD(void);
void InitGraphicInfo_EM(void);
void PlayMenuSoundExt(int);
void SetLevelSetInfo(char *, int);
+void ToggleAudioSampleRateIfNeeded(void);
void ToggleFullscreenIfNeeded(void);
void ChangeWindowScalingIfNeeded(void);
void ChangeVsyncModeIfNeeded(void);
boolean CheckIfAllViewportsHaveChanged(void);
boolean CheckFadeAll(void);
+void OpenURL(char *);
+void OpenURLFromHash(SetupFileHash *, int);
+
+void TestGeneratingUUIDs(void);
+
#endif // TOOLS_H