rnd-20030902-1-src
[rocksndiamonds.git] / src / tools.h
index 557598227d019621d16573a89f0a2a65673823fd..05f6ed307983cd7f70713ac19359b477e4e2b5f5 100644 (file)
@@ -1,15 +1,14 @@
 /***********************************************************
-*  Rocks'n'Diamonds -- McDuffin Strikes Back!              *
+* Rocks'n'Diamonds -- McDuffin Strikes Back!               *
 *----------------------------------------------------------*
-*  ©1995 Artsoft Development                               *
-*        Holger Schemel                                    *
-*        33659 Bielefeld-Senne                             *
-*        Telefon: (0521) 493245                            *
-*        eMail: aeglos@valinor.owl.de                      *
-*               aeglos@uni-paderborn.de                    *
-*               q99492@pbhrzx.uni-paderborn.de             *
+* (c) 1995-2002 Artsoft Entertainment                      *
+*               Holger Schemel                             *
+*               Detmolder Strasse 189                      *
+*               33604 Bielefeld                            *
+*               Germany                                    *
+*               e-mail: info@artsoft.org                   *
 *----------------------------------------------------------*
-*  tools.h                                                 *
+* tools.h                                                  *
 ***********************************************************/
 
 #ifndef TOOLS_H
 
 #include "main.h"
 
-#include <sys/time.h>
-
 /* for SetDrawtoField */
-#define DRAW_DIRECT    0
-#define DRAW_BUFFERED  1
-#define DRAW_BACKBUFFER        2
+#define DRAW_DIRECT            0
+#define DRAW_BUFFERED          1
+#define DRAW_BACKBUFFER                2
 
 /* for DrawElementShifted */
-#define NO_CUTTING     0
-#define CUT_ABOVE      1
-#define CUT_BELOW      2
-#define CUT_LEFT       4
-#define CUT_RIGHT      8
+#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
-#define DOOR_OPEN_2    2
-#define DOOR_CLOSE_1   4
-#define DOOR_CLOSE_2   8
-#define DOOR_OPEN_BOTH (DOOR_OPEN_1 | DOOR_OPEN_2)
-#define DOOR_CLOSE_BOTH        (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 16
-#define DOOR_NO_DELAY  32
-#define DOOR_GET_STATE 64
-
-/* for AreYouSure */
-#define AYS_ASK                1
-#define AYS_OPEN       2
-#define AYS_CLOSE      4
-#define AYS_CONFIRM    8
-#define AYS_STAY_CLOSED        16
-#define AYS_STAY_OPEN  32
+#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_DELAY          (1 << 5)
+#define DOOR_GET_STATE         (1 << 6)
+#define DOOR_SET_STATE         (1 << 7)
+
+/* for Request */
+#define REQ_ASK                        (1 << 0)
+#define REQ_OPEN               (1 << 1)
+#define REQ_CLOSE              (1 << 2)
+#define REQ_CONFIRM            (1 << 3)
+#define REQ_STAY_CLOSED                (1 << 4)
+#define REQ_STAY_OPEN          (1 << 5)
+#define REQ_PLAYER             (1 << 6)
+
+#define REQUEST_WAIT_FOR       (REQ_ASK | REQ_CONFIRM | REQ_PLAYER)
 
 void SetDrawtoField(int);
+void RedrawPlayfield(boolean, int, int, int, int);
 void BackToFront();
 void FadeToFront();
 void ClearWindow();
-void DrawText(int, int, char *, int, int);
-void DrawTextExt(Drawable, GC, int, int, char *, int, int);
+void SetMainBackgroundImage(int);
+void SetDoorBackgroundImage(int);
+void DrawBackground(int, int, int, int);
+
+void MarkTileDirty(int, int);
+void SetBorderElement();
+
+void SetRandomAnimationValue(int, int);
+int getGraphicAnimationFrame(int, int);
+void DrawGraphicAnimationExt(DrawBuffer *, int, int, int, int, int);
+void DrawGraphicAnimation(int, int, int);
+void DrawLevelGraphicAnimation(int, int, int);
+void DrawLevelElementAnimation(int, int, int);
+void DrawLevelGraphicAnimationIfNeeded(int, int, int);
+void DrawLevelElementAnimationIfNeeded(int, int, int);
+
 void DrawAllPlayers(void);
 void DrawPlayerField(int, int);
 void DrawPlayer(struct PlayerInfo *);
-void DrawGraphicAnimationExt(int, int, int, int, int, int, int);
-void DrawGraphicAnimation(int, int, int, int, int, int);
-void DrawGraphicAnimationThruMask(int, int, int, int, int, int);
-void DrawGraphic(int, int, int);
-void DrawGraphicExt(Drawable, GC, int, int, int);
-void DrawGraphicThruMask(int, int, int);
+
+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 DrawMiniGraphic(int, int, int);
-void DrawMiniGraphicExt(Drawable, GC, int, int, int);
-void DrawGraphicShifted(int, int, int, int, int, int, int);
-void DrawGraphicShiftedThruMask(int, int, int, int, int, int);
+void getMiniGraphicSource(int, Bitmap **, int *, int *);
+void DrawMiniGraphicExt(DrawBuffer *, int, int, int);
+
+void DrawGraphicShifted(int, int, int, int, int, int, int, int);
+void DrawGraphicShiftedThruMask(int, int, int, int, int, int, int);
 void DrawScreenElementExt(int, int, int, int, int, int, int);
 void DrawLevelElementExt(int, int, int, int, int, int, int);
 void DrawScreenElementShifted(int, int, int, int, int, int);
 void DrawLevelElementShifted(int, int, int, int, int, int);
 void DrawScreenElementThruMask(int, int, int);
 void DrawLevelElementThruMask(int, int, int);
-void ErdreichAnbroeckeln(int, int);
+void DrawLevelFieldThruMask(int, int);
+void DrawLevelFieldCrumbledSand(int, int);
+void DrawLevelFieldCrumbledSandDigging(int, int, int, int);
+void DrawLevelFieldCrumbledSandNeighbours(int, int);
 void DrawScreenElement(int, int, int);
 void DrawLevelElement(int, int, int);
 void DrawScreenField(int, int);
 void DrawLevelField(int, int);
+
 void DrawMiniElement(int, int, int);
 void DrawMiniElementOrWall(int, int, int, int);
+void DrawEnvelopeBorder(int, int, int, int);
+
+void getMicroGraphicSource(int, Bitmap **, int *, int *);
 void DrawMicroElement(int, int, int);
 void DrawLevel(void);
-void DrawMiniLevel(int, int);
-void DrawMicroLevel(int, int);
-BOOL AreYouSure(char *, unsigned int);
+void DrawMiniLevel(int, int, int, int);
+void DrawMicroLevel(int, int, boolean);
+
+boolean Request(char *, unsigned int);
 unsigned int OpenDoor(unsigned int);
 unsigned int CloseDoor(unsigned int);
 unsigned int GetDoorState(void);
+unsigned int SetDoorState(unsigned int);
 unsigned int MoveDoor(unsigned int);
-int ReadPixel(Drawable, int, int);
-int el2gfx(int);
 
-#endif
+void DrawSpecialEditorDoor();
+void UndrawSpecialEditorDoor();
+
+void CreateToolButtons();
+void FreeToolButtons();
+
+int get_next_element(int);
+int el_act_dir2img(int, int, int);
+int el_act2img(int, int);
+int el_dir2img(int, int);
+int el2img(int);
+int el2edimg(int);
+int el2preimg(int);
+
+#endif /* TOOLS_H */