1 /***********************************************************
2 * Rocks'n'Diamonds -- McDuffin Strikes Back! *
3 *----------------------------------------------------------*
4 * ©1995 Artsoft Development *
6 * 33659 Bielefeld-Senne *
7 * Telefon: (0521) 493245 *
8 * eMail: aeglos@valinor.owl.de *
9 * aeglos@uni-paderborn.de *
10 * q99492@pbhrzx.uni-paderborn.de *
11 *----------------------------------------------------------*
13 ***********************************************************/
22 #if defined(PLATFORM_MSDOS)
26 #if defined(TARGET_SDL)
28 #elif defined(TARGET_X11)
33 /* contant definitions */
35 #define DEFAULT_DEPTH 0
37 #define FULLSCREEN_NOT_AVAILABLE FALSE
38 #define FULLSCREEN_AVAILABLE TRUE
40 /* values for button_status */
41 #define MB_NOT_PRESSED FALSE
42 #define MB_RELEASED FALSE
43 #define MB_PRESSED TRUE
44 #define MB_MENU_CHOICE FALSE
45 #define MB_MENU_MARK TRUE
46 #define MB_MENU_INITIALIZE (-1)
47 #define MB_LEFTBUTTON 1
48 #define MB_MIDDLEBUTTON 2
49 #define MB_RIGHTBUTTON 3
51 /* values for redraw_mask */
52 #define REDRAW_NONE (0)
53 #define REDRAW_ALL (1 << 0)
54 #define REDRAW_FIELD (1 << 1)
55 #define REDRAW_TILES (1 << 2)
56 #define REDRAW_DOOR_1 (1 << 3)
57 #define REDRAW_VIDEO_1 (1 << 4)
58 #define REDRAW_VIDEO_2 (1 << 5)
59 #define REDRAW_VIDEO_3 (1 << 6)
60 #define REDRAW_MICROLEVEL (1 << 7)
61 #define REDRAW_FROM_BACKBUFFER (1 << 8)
62 #define REDRAW_DOOR_2 (REDRAW_VIDEO_1 | \
65 #define REDRAW_DOOR_3 (1 << 9)
66 #define REDRAW_DOORS (REDRAW_DOOR_1 | \
69 #define REDRAW_MAIN (REDRAW_FIELD | \
72 #define REDRAW_FPS (1 << 10)
73 #define REDRAWTILES_THRESHOLD (SCR_FIELDX * SCR_FIELDY / 2)
76 /* type definitions */
78 typedef int (*EventFilter)(const Event *);
81 /* structure definitions */
85 char *command_basename;
86 char *userdata_directory;
91 char *x11_icon_filename;
92 char *x11_iconmask_filename;
93 char *msdos_pointer_filename;
95 void (*exit_function)(int);
103 char *ro_base_directory;
104 char *rw_base_directory;
105 char *level_directory;
112 struct VideoSystemInfo
115 int width, height, depth;
116 boolean fullscreen_available;
117 boolean fullscreen_enabled;
120 struct AudioSystemInfo
122 boolean sound_available;
123 boolean loops_available;
124 int soundserver_pipe[2];
134 int real_sx, real_sy;
135 int full_sxsize, full_sysize;
136 int scrollbuffer_width, scrollbuffer_height;
147 /* ========================================================================= */
148 /* exported variables */
149 /* ========================================================================= */
151 extern struct ProgramInfo program;
152 extern struct OptionInfo options;
153 extern struct VideoSystemInfo video;
154 extern struct AudioSystemInfo audio;
155 extern struct GfxInfo gfx;
157 extern Display *display;
158 extern Visual *visual;
160 extern Colormap cmap;
162 extern DrawWindow window;
163 extern DrawBuffer backbuffer;
164 extern DrawBuffer drawto;
166 extern int button_status;
167 extern boolean motion_status;
169 extern int redraw_mask;
170 extern int redraw_tiles;
172 extern int FrameCounter;
176 /* function definitions */
178 void InitCommandName(char *);
179 void InitExitFunction(void (*exit_function)(int));
180 void InitPlatformDependantStuff(void);
182 void InitProgramInfo(char *, char *, char *, char *, char *, char *, char *);
184 void InitGfxFieldInfo(int, int, int, int, int, int, int, int);
185 void InitGfxDoor1Info(int, int, int, int);
186 void InitGfxDoor2Info(int, int, int, int);
187 void InitGfxScrollbufferInfo(int, int);
189 inline void InitVideoDisplay(void);
190 inline void InitVideoBuffer(DrawBuffer *,DrawWindow *, int, int, int, boolean);
191 inline Bitmap CreateBitmapStruct(void);
192 inline Bitmap CreateBitmap(int, int, int);
193 inline void FreeBitmap(Bitmap);
194 inline void BlitBitmap(Bitmap, Bitmap, int, int, int, int, int, int);
195 inline void ClearRectangle(Bitmap, int, int, int, int);
196 inline void SetClipMask(Bitmap, GC, Pixmap);
197 inline void SetClipOrigin(Bitmap, GC, int, int);
198 inline void BlitBitmapMasked(Bitmap, Bitmap, int, int, int, int, int, int);
199 inline void DrawSimpleWhiteLine(Bitmap, int, int, int, int);
200 inline void FlushDisplay(void);
201 inline void SyncDisplay(void);
202 inline void KeyboardAutoRepeatOn(void);
203 inline void KeyboardAutoRepeatOff(void);
204 inline boolean PointerInWindow(DrawWindow);
205 inline boolean SetVideoMode(boolean);
206 inline boolean ChangeVideoModeIfNeeded(boolean);
208 inline boolean OpenAudio(struct AudioSystemInfo *);
209 inline void CloseAudio(struct AudioSystemInfo *);
211 inline void InitEventFilter(EventFilter);
212 inline boolean PendingEvent(void);
213 inline void NextEvent(Event *event);
214 inline Key GetEventKey(KeyEvent *, boolean);
215 inline boolean CheckCloseWindowEvent(ClientMessageEvent *);
217 #endif /* SYSTEM_H */