cleanup of BD style game elements in level editor
[rocksndiamonds.git] / src / tools.h
index eddddc0ef1f6afc3119a79b583e495e8b3be7aba..28dd05c9a9d9cf966cba2748cac1677f783839aa 100644 (file)
 
 
 // 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);
@@ -85,7 +82,7 @@ void DrawMaskedBorder_DOOR_3(void);
 void DrawMaskedBorder_ALL(void);
 void DrawMaskedBorder(int);
 void DrawMaskedBorderToTarget(int);
-void DrawTileCursor(int);
+void DrawTileCursor(int, int);
 
 void SetDrawtoField(int);
 int GetDrawtoField(void);
@@ -108,10 +105,12 @@ void FadeSetDisabled(void);
 void FadeSkipNextFadeIn(void);
 void FadeSkipNextFadeOut(void);
 
-Bitmap *getBitmapFromGraphicOrDefault(int, int);
+int getImageFromGraphicOrDefault(int, int);
 Bitmap *getGlobalBorderBitmapFromStatus(int);
 
 void ClearField(void);
+
+void SetBackgroundImage(int, int);
 void SetWindowBackgroundImageIfDefined(int);
 void SetMainBackgroundImageIfDefined(int);
 void SetDoorBackgroundImageIfDefined(int);
@@ -127,15 +126,17 @@ void RedrawGlobalBorder(void);
 
 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);
@@ -200,7 +201,7 @@ void DrawMiniElementOrWall(int, int, 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);
@@ -213,7 +214,7 @@ void DrawNetworkPlayers(void);
 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);
@@ -228,6 +229,9 @@ void UndrawSpecialEditorDoor(void);
 void CreateToolButtons(void);
 void FreeToolButtons(void);
 
+int map_element_RND_to_BD(int);
+int map_element_BD_to_RND(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);
@@ -272,6 +276,8 @@ int getBeltSwitchElementFromBeltNrAndBeltDirNr(int, int);
 int getBeltSwitchElementFromBeltNrAndBeltDir(int, int);
 
 unsigned int InitRND(int);
+
+void InitGraphicInfo_BD(void);
 void InitGraphicInfo_EM(void);
 
 void PlayMenuSoundExt(int);
@@ -304,6 +310,8 @@ boolean CheckFadeAll(void);
 void OpenURL(char *);
 void OpenURLFromHash(SetupFileHash *, int);
 
+char *getCurrentLevelsetName(void);
+
 void TestGeneratingUUIDs(void);
 
 #endif // TOOLS_H