added and adjusted source files for Mirror Magic game engine
[rocksndiamonds.git] / src / game_mm / mm_tools.h
diff --git a/src/game_mm/mm_tools.h b/src/game_mm/mm_tools.h
new file mode 100644 (file)
index 0000000..39c58a8
--- /dev/null
@@ -0,0 +1,131 @@
+/***********************************************************
+* Mirror Magic -- McDuffin's Revenge                       *
+*----------------------------------------------------------*
+* (c) 1994-2001 Artsoft Entertainment                      *
+*               Holger Schemel                             *
+*               Detmolder Strasse 189                      *
+*               33604 Bielefeld                            *
+*               Germany                                    *
+*               e-mail: info@artsoft.org                   *
+*----------------------------------------------------------*
+* tools.h                                                  *
+***********************************************************/
+
+#ifndef MM_TOOLS_H
+#define MM_TOOLS_H
+
+#include "main_mm.h"
+
+/* for SetDrawtoField */
+#define DRAW_DIRECT            0
+#define DRAW_BUFFERED          1
+#define DRAW_BACKBUFFER                2
+
+/* 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)
+
+/* for masking functions */
+#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_DELAY          (1 << 5)
+#define DOOR_GET_STATE         (1 << 6)
+
+/* 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 REQUEST_WAIT_FOR       (REQ_ASK | REQ_CONFIRM)
+
+/* font types */
+#define FS_SMALL               0
+#define FS_BIG                 1
+#define FS_MEDIUM              2
+
+
+void SetDrawtoField_MM(int);
+void BackToFront();
+void FadeToFront();
+void ClearWindow();
+
+void MarkTileDirty(int, int);
+
+void DrawAllPlayers_MM(void);
+void DrawPlayerField_MM(int, int);
+void DrawPlayer_MM(struct PlayerInfo *);
+void DrawGraphicAnimationExt_MM(int, int, int, int, int, int, int);
+void DrawGraphicAnimation_MM(int, int, int, int, int, int);
+void DrawGraphicAnimationThruMask_MM(int, int, int, int, int, int);
+
+void DrawGraphic_MM(int, int, int);
+void DrawGraphicExt_MM(DrawBuffer *, int, int, int);
+void DrawGraphicThruMask_MM(int, int, int);
+void DrawGraphicThruMaskExt_MM(DrawBuffer *, int, int, int);
+void DrawMiniGraphic_MM(int, int, int);
+void getMiniGraphicSource(int, Bitmap **, int *, int *);
+void DrawMiniGraphicExt_MM(DrawBuffer *, int, int, int);
+void DrawGraphicShifted_MM(int, int, int, int, int, int, int);
+void DrawGraphicShiftedThruMask_MM(int, int, int, int, int, int);
+void DrawScreenElementExt_MM(int, int, int, int, int, int, int);
+void DrawLevelElementExt_MM(int, int, int, int, int, int, int);
+void DrawScreenElementShifted_MM(int, int, int, int, int, int);
+void DrawLevelElementShifted_MM(int, int, int, int, int, int);
+void DrawScreenElementThruMask_MM(int, int, int);
+void DrawLevelElementThruMask_MM(int, int, int);
+void DrawLevelFieldThruMask_MM(int, int);
+void ErdreichAnbroeckeln(int, int);
+void DrawScreenElement_MM(int, int, int);
+void DrawLevelElement_MM(int, int, int);
+void DrawScreenField_MM(int, int);
+void DrawLevelField_MM(int, int);
+void DrawMiniElement_MM(int, int, int);
+void DrawMiniElementOrWall_MM(int, int, int, int);
+
+void DrawField_MM(int, int);
+void DrawLevel_MM(void);
+void DrawElement_MM(int, int, int);
+void DrawWallsExt_MM(int, int, int, int);
+void DrawWalls_MM(int, int, int);
+void DrawWallsAnimation_MM(int, int, int, int, int);
+void DrawMiniLevel_MM(int, int, int, int);
+void DrawMicroLevel_MM(int, int, boolean);
+
+boolean Request(char *, unsigned int);
+unsigned int OpenDoor(unsigned int);
+unsigned int CloseDoor(unsigned int);
+unsigned int GetDoorState(void);
+unsigned int MoveDoor(unsigned int);
+void DrawSpecialEditorDoor_MM();
+void UndrawSpecialEditorDoor();
+Pixel ReadPixel(DrawBuffer *, int, int);
+void SetRGB(unsigned int, unsigned short, unsigned short, unsigned short);
+
+void CreateToolButtons();
+
+int get_base_element(int);
+int get_element_phase(int);
+int get_num_elements(int);
+int get_rotated_element(int, int);
+
+int el2gfx(int);
+
+#endif