1 /*********************************************************** 2 * Mirror Magic -- McDuffin's Revenge * 3 *----------------------------------------------------------* 4 * (c) 1994-2001 Artsoft Entertainment * 5 * Holger Schemel * 6 * Detmolder Strasse 189 * 7 * 33604 Bielefeld * 8 * Germany * 9 * e-mail: info@artsoft.org * 10 *----------------------------------------------------------* 11 * tools.h * 12 ***********************************************************/ 13 14 #ifndef TOOLS_H 15 #define TOOLS_H 16 17 #include <sys/time.h> 18 #include "main.h" 19 20 /* for SetDrawtoField */ 21 #define DRAW_DIRECT 0 22 #define DRAW_BUFFERED 1 23 #define DRAW_BACKBUFFER 2 24 25 /* for DrawElementShifted */ 26 #define NO_CUTTING 0 27 #define CUT_ABOVE (1 << 0) 28 #define CUT_BELOW (1 << 1) 29 #define CUT_LEFT (1 << 2) 30 #define CUT_RIGHT (1 << 3) 31 32 /* for masking functions */ 33 #define NO_MASKING 0 34 #define USE_MASKING 1 35 36 /* for MoveDoor */ 37 #define DOOR_OPEN_1 (1 << 0) 38 #define DOOR_OPEN_2 (1 << 1) 39 #define DOOR_CLOSE_1 (1 << 2) 40 #define DOOR_CLOSE_2 (1 << 3) 41 #define DOOR_OPEN_ALL (DOOR_OPEN_1 | DOOR_OPEN_2) 42 #define DOOR_CLOSE_ALL (DOOR_CLOSE_1 | DOOR_CLOSE_2) 43 #define DOOR_ACTION_1 (DOOR_OPEN_1 | DOOR_CLOSE_1) 44 #define DOOR_ACTION_2 (DOOR_OPEN_2 | DOOR_CLOSE_2) 45 #define DOOR_ACTION (DOOR_ACTION_1 | DOOR_ACTION_2) 46 #define DOOR_COPY_BACK (1 << 4) 47 #define DOOR_NO_DELAY (1 << 5) 48 #define DOOR_GET_STATE (1 << 6) 49 50 /* for Request */ 51 #define REQ_ASK (1 << 0) 52 #define REQ_OPEN (1 << 1) 53 #define REQ_CLOSE (1 << 2) 54 #define REQ_CONFIRM (1 << 3) 55 #define REQ_STAY_CLOSED (1 << 4) 56 #define REQ_STAY_OPEN (1 << 5) 57 58 #define REQUEST_WAIT_FOR (REQ_ASK | REQ_CONFIRM) 59 60 void SetDrawtoField(int); 61 void BackToFront(); 62 void FadeToFront(); 63 void ClearWindow(); 64 65 void MarkTileDirty(int, int); 66 67 void DrawAllPlayers(void); 68 void DrawPlayerField(int, int); 69 void DrawPlayer(struct PlayerInfo *); 70 void DrawGraphicAnimationExt(int, int, int, int, int, int, int); 71 void DrawGraphicAnimation(int, int, int, int, int, int); 72 void DrawGraphicAnimationThruMask(int, int, int, int, int, int); 73 void getGraphicSource(int, int *, int *, int *); 74 void DrawGraphic(int, int, int); 75 void DrawGraphicExt(DrawBuffer *, int, int, int); 76 void DrawGraphicThruMask(int, int, int); 77 void DrawGraphicThruMaskExt(DrawBuffer *, int, int, int); 78 void DrawMiniGraphic(int, int, int); 79 void getMiniGraphicSource(int, Bitmap **, int *, int *); 80 void DrawMiniGraphicExt(DrawBuffer *, int, int, int); 81 void DrawGraphicShifted(int, int, int, int, int, int, int); 82 void DrawGraphicShiftedThruMask(int, int, int, int, int, int); 83 void DrawScreenElementExt(int, int, int, int, int, int, int); 84 void DrawLevelElementExt(int, int, int, int, int, int, int); 85 void DrawScreenElementShifted(int, int, int, int, int, int); 86 void DrawLevelElementShifted(int, int, int, int, int, int); 87 void DrawScreenElementThruMask(int, int, int); 88 void DrawLevelElementThruMask(int, int, int); 89 void DrawLevelFieldThruMask(int, int); 90 void ErdreichAnbroeckeln(int, int); 91 void DrawScreenElement(int, int, int); 92 void DrawLevelElement(int, int, int); 93 void DrawScreenField(int, int); 94 void DrawLevelField(int, int); 95 void DrawMiniElement(int, int, int); 96 void DrawMiniElementOrWall(int, int, int, int); 97 98 void DrawField(int, int); 99 void DrawLevel(void); 100 void DrawElement(int, int, int); 101 void DrawWallsExt(int, int, int, int); 102 void DrawWalls(int, int, int); 103 void DrawWallsAnimation(int, int, int, int, int); 104 void DrawMiniLevel(int, int, int, int); 105 void DrawMicroLevel(int, int, boolean); 106 107 boolean Request(char *, unsigned int); 108 unsigned int OpenDoor(unsigned int); 109 unsigned int CloseDoor(unsigned int); 110 unsigned int GetDoorState(void); 111 unsigned int MoveDoor(unsigned int); 112 void DrawSpecialEditorDoor(); 113 void UndrawSpecialEditorDoor(); 114 Pixel ReadPixel(DrawBuffer *, int, int); 115 void SetRGB(unsigned long, unsigned short, unsigned short, unsigned short); 116 117 void CreateToolButtons(); 118 119 int get_base_element(int); 120 int get_element_phase(int); 121 int get_num_elements(int); 122 int get_rotated_element(int, int); 123 124 int el2gfx(int); 125 126 #endif 127