X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.h;h=a16fb4c5561e9e1974f09dd1cebc2bdb3d8b2474;hb=49221e59bff18cdfbef8c877b588280266ae5037;hp=808f752da8faa5c9208ee96bf92baad652c28a9f;hpb=222cd4187e6632bd904a937f167a2f1c70b8f66d;p=rocksndiamonds.git diff --git a/src/libgame/system.h b/src/libgame/system.h index 808f752d..a16fb4c5 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -37,6 +37,41 @@ #define FULLSCREEN_NOT_AVAILABLE FALSE #define FULLSCREEN_AVAILABLE TRUE +/* values for button_status */ +#define MB_NOT_PRESSED FALSE +#define MB_RELEASED FALSE +#define MB_PRESSED TRUE +#define MB_MENU_CHOICE FALSE +#define MB_MENU_MARK TRUE +#define MB_MENU_INITIALIZE (-1) +#define MB_LEFTBUTTON 1 +#define MB_MIDDLEBUTTON 2 +#define MB_RIGHTBUTTON 3 + +/* values for redraw_mask */ +#define REDRAW_NONE (0) +#define REDRAW_ALL (1 << 0) +#define REDRAW_FIELD (1 << 1) +#define REDRAW_TILES (1 << 2) +#define REDRAW_DOOR_1 (1 << 3) +#define REDRAW_VIDEO_1 (1 << 4) +#define REDRAW_VIDEO_2 (1 << 5) +#define REDRAW_VIDEO_3 (1 << 6) +#define REDRAW_MICROLEVEL (1 << 7) +#define REDRAW_FROM_BACKBUFFER (1 << 8) +#define REDRAW_DOOR_2 (REDRAW_VIDEO_1 | \ + REDRAW_VIDEO_2 | \ + REDRAW_VIDEO_3) +#define REDRAW_DOOR_3 (1 << 9) +#define REDRAW_DOORS (REDRAW_DOOR_1 | \ + REDRAW_DOOR_2 | \ + REDRAW_DOOR_3) +#define REDRAW_MAIN (REDRAW_FIELD | \ + REDRAW_TILES | \ + REDRAW_MICROLEVEL) +#define REDRAW_FPS (1 << 10) +#define REDRAWTILES_THRESHOLD (SCR_FIELDX * SCR_FIELDY / 2) + /* type definitions */ @@ -56,11 +91,24 @@ struct ProgramInfo char *msdos_pointer_filename; }; +struct OptionInfo +{ + char *display_name; + char *server_host; + int server_port; + char *ro_base_directory; + char *rw_base_directory; + char *level_directory; + boolean serveronly; + boolean network; + boolean verbose; + boolean debug; +}; + struct VideoSystemInfo { int default_depth; int width, height, depth; - int scrollbuffer_width, scrollbuffer_height; boolean fullscreen_available; boolean fullscreen_enabled; }; @@ -75,18 +123,19 @@ struct AudioSystemInfo int device_fd; }; -struct OptionInfo +struct GfxInfo { - char *display_name; - char *server_host; - int server_port; - char *ro_base_directory; - char *rw_base_directory; - char *level_directory; - boolean serveronly; - boolean network; - boolean verbose; - boolean debug; + int sx, sy; + int sxsize, sysize; + int real_sx, real_sy; + int full_sxsize, full_sysize; + int scrollbuffer_width, scrollbuffer_height; + + int dx, dy; + int dxsize, dysize; + + int vx, vy; + int vxsize, vysize; }; @@ -95,12 +144,10 @@ struct OptionInfo /* ========================================================================= */ extern struct ProgramInfo program; +extern struct OptionInfo options; extern struct VideoSystemInfo video; extern struct AudioSystemInfo audio; -extern struct OptionInfo options; - - -/* declarations of internal variables */ +extern struct GfxInfo gfx; extern Display *display; extern Visual *visual; @@ -109,7 +156,13 @@ extern Colormap cmap; extern DrawWindow window; extern DrawBuffer backbuffer; -extern GC gc; +extern DrawBuffer drawto; + +extern int button_status; +extern boolean motion_status; + +extern int redraw_mask; +extern int redraw_tiles; extern int FrameCounter; @@ -118,15 +171,21 @@ extern int FrameCounter; inline void InitProgramInfo(char *, char *, char *, char *, char *, char *, char *); -inline void InitScrollbufferSize(int, int); + +inline void InitGfxFieldInfo(int, int, int, int, int, int, int, int); +inline void InitGfxDoor1Info(int, int, int, int); +inline void InitGfxDoor2Info(int, int, int, int); +inline void InitGfxScrollbufferInfo(int, int); + inline void InitVideoDisplay(void); inline void InitVideoBuffer(DrawBuffer *,DrawWindow *, int, int, int, boolean); +inline Bitmap CreateBitmapStruct(void); inline Bitmap CreateBitmap(int, int, int); inline void FreeBitmap(Bitmap); -inline void ClearRectangle(Bitmap, int, int, int, int); inline void BlitBitmap(Bitmap, Bitmap, int, int, int, int, int, int); -inline void SetClipMask(GC, Pixmap); -inline void SetClipOrigin(GC, int, int); +inline void ClearRectangle(Bitmap, int, int, int, int); +inline void SetClipMask(Bitmap, GC, Pixmap); +inline void SetClipOrigin(Bitmap, GC, int, int); inline void BlitBitmapMasked(Bitmap, Bitmap, int, int, int, int, int, int); inline void DrawSimpleWhiteLine(Bitmap, int, int, int, int); inline void FlushDisplay(void);