X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.c;h=471c614f70af6c2783dad96b0a267d21b1c1cafd;hb=49221e59bff18cdfbef8c877b588280266ae5037;hp=fe32a073010a33f7bd92289b9f85d6bcff8c77d4;hpb=621b6a2c4781c9c3e2f5849f9c184a906e0ce5b6;p=rocksndiamonds.git diff --git a/src/libgame/system.c b/src/libgame/system.c index fe32a073..471c614f 100644 --- a/src/libgame/system.c +++ b/src/libgame/system.c @@ -23,7 +23,7 @@ struct ProgramInfo program; struct OptionInfo options; struct VideoSystemInfo video; struct AudioSystemInfo audio; -struct PlayfieldInfo playfield; +struct GfxInfo gfx; Display *display = NULL; Visual *visual = NULL; @@ -34,8 +34,11 @@ DrawWindow window = NULL; DrawBuffer backbuffer = NULL; DrawBuffer drawto = NULL; -int redraw_mask; -int redraw_tiles; +int button_status = MB_NOT_PRESSED; +boolean motion_status = FALSE; + +int redraw_mask = REDRAW_NONE; +int redraw_tiles = 0; int FrameCounter = 0; @@ -59,42 +62,42 @@ inline void InitProgramInfo(char *command_name, char *program_title, program.msdos_pointer_filename = msdos_pointer_filename; } -inline void InitPlayfieldInfo(int sx, int sy, int sxsize, int sysize, - int real_sx, int real_sy, - int full_sxsize, int full_sysize) +inline void InitGfxFieldInfo(int sx, int sy, int sxsize, int sysize, + int real_sx, int real_sy, + int full_sxsize, int full_sysize) { - playfield.sx = sx; - playfield.sy = sy; - playfield.sxsize = sxsize; - playfield.sysize = sysize; - playfield.real_sx = real_sx; - playfield.real_sy = real_sy; - playfield.full_sxsize = full_sxsize; - playfield.full_sysize = full_sysize; + gfx.sx = sx; + gfx.sy = sy; + gfx.sxsize = sxsize; + gfx.sysize = sysize; + gfx.real_sx = real_sx; + gfx.real_sy = real_sy; + gfx.full_sxsize = full_sxsize; + gfx.full_sysize = full_sysize; } -inline void InitDoor1Info(int dx, int dy, int dxsize, int dysize) +inline void InitGfxDoor1Info(int dx, int dy, int dxsize, int dysize) { - playfield.dx = dx; - playfield.dy = dy; - playfield.dxsize = dxsize; - playfield.dysize = dysize; + gfx.dx = dx; + gfx.dy = dy; + gfx.dxsize = dxsize; + gfx.dysize = dysize; } -inline void InitDoor2Info(int vx, int vy, int vxsize, int vysize) +inline void InitGfxDoor2Info(int vx, int vy, int vxsize, int vysize) { - playfield.vx = vx; - playfield.vy = vy; - playfield.vxsize = vxsize; - playfield.vysize = vysize; + gfx.vx = vx; + gfx.vy = vy; + gfx.vxsize = vxsize; + gfx.vysize = vysize; } -inline void InitScrollbufferInfo(int scrollbuffer_width, - int scrollbuffer_height) +inline void InitGfxScrollbufferInfo(int scrollbuffer_width, + int scrollbuffer_height) { /* currently only used by MSDOS code to alloc VRAM buffer, if available */ - playfield.scrollbuffer_width = scrollbuffer_width; - playfield.scrollbuffer_height = scrollbuffer_height; + gfx.scrollbuffer_width = scrollbuffer_width; + gfx.scrollbuffer_height = scrollbuffer_height; } inline static int GetRealDepth(int depth) @@ -162,14 +165,14 @@ inline Bitmap CreateBitmap(int width, int height, int depth) if (!(pixmap = XCreatePixmap(display, window->drawable, width, height, real_depth))) Error(ERR_EXIT, "cannot create pixmap"); - new_bitmap->drawable = pixmap; -#endif if (window == NULL) Error(ERR_EXIT, "Window GC needed for Bitmap -- create Window first"); new_bitmap->gc = window->gc; +#endif + return new_bitmap; } @@ -283,7 +286,7 @@ inline void DrawSimpleWhiteLine(Bitmap bitmap, int from_x, int from_y, int to_x, int to_y) { #ifdef TARGET_SDL - SDLDrawSimpleLine(bitmap->drawable, from_x, from_y, to_x, to_y, 0xffffff); + SDLDrawSimpleLine(bitmap->surface, from_x, from_y, to_x, to_y, 0xffffff); #else XSetForeground(display, bitmap->gc, WhitePixel(display, screen)); XDrawLine(display, bitmap->drawable, bitmap->gc, from_x, from_y, to_x, to_y);