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 */
89 char *x11_icon_filename;
90 char *x11_iconmask_filename;
91 char *msdos_pointer_filename;
99 char *ro_base_directory;
100 char *rw_base_directory;
101 char *level_directory;
108 struct VideoSystemInfo
111 int width, height, depth;
112 boolean fullscreen_available;
113 boolean fullscreen_enabled;
116 struct AudioSystemInfo
118 boolean sound_available;
119 boolean loops_available;
120 int soundserver_pipe[2];
130 int real_sx, real_sy;
131 int full_sxsize, full_sysize;
132 int scrollbuffer_width, scrollbuffer_height;
142 /* ========================================================================= */
143 /* exported variables */
144 /* ========================================================================= */
146 extern struct ProgramInfo program;
147 extern struct OptionInfo options;
148 extern struct VideoSystemInfo video;
149 extern struct AudioSystemInfo audio;
150 extern struct GfxInfo gfx;
152 extern Display *display;
153 extern Visual *visual;
155 extern Colormap cmap;
157 extern DrawWindow window;
158 extern DrawBuffer backbuffer;
159 extern DrawBuffer drawto;
161 extern int button_status;
162 extern boolean motion_status;
164 extern int redraw_mask;
165 extern int redraw_tiles;
167 extern int FrameCounter;
170 /* function definitions */
172 inline void InitProgramInfo(char *, char *, char *, char *, char *, char *,
175 inline void InitGfxFieldInfo(int, int, int, int, int, int, int, int);
176 inline void InitGfxDoor1Info(int, int, int, int);
177 inline void InitGfxDoor2Info(int, int, int, int);
178 inline void InitGfxScrollbufferInfo(int, int);
180 inline void InitVideoDisplay(void);
181 inline void InitVideoBuffer(DrawBuffer *,DrawWindow *, int, int, int, boolean);
182 inline Bitmap CreateBitmapStruct(void);
183 inline Bitmap CreateBitmap(int, int, int);
184 inline void FreeBitmap(Bitmap);
185 inline void BlitBitmap(Bitmap, Bitmap, int, int, int, int, int, int);
186 inline void ClearRectangle(Bitmap, int, int, int, int);
187 inline void SetClipMask(Bitmap, GC, Pixmap);
188 inline void SetClipOrigin(Bitmap, GC, int, int);
189 inline void BlitBitmapMasked(Bitmap, Bitmap, int, int, int, int, int, int);
190 inline void DrawSimpleWhiteLine(Bitmap, int, int, int, int);
191 inline void FlushDisplay(void);
192 inline void SyncDisplay(void);
193 inline void KeyboardAutoRepeatOn(void);
194 inline void KeyboardAutoRepeatOff(void);
195 inline boolean PointerInWindow(DrawWindow);
196 inline boolean SetVideoMode(boolean);
197 inline boolean ChangeVideoModeIfNeeded(boolean);
199 inline boolean OpenAudio(struct AudioSystemInfo *);
200 inline void CloseAudio(struct AudioSystemInfo *);
202 inline void InitEventFilter(EventFilter);
203 inline boolean PendingEvent(void);
204 inline void NextEvent(Event *event);
205 inline Key GetEventKey(KeyEvent *, boolean);
206 inline boolean CheckCloseWindowEvent(ClientMessageEvent *);
208 #endif /* SYSTEM_H */