X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.h;h=dd5b1bf1d3413c78c7eb077631f8c1ae0800b9a6;hb=6e14e0f1251b17881f44fdddc489c19d7ad7a373;hp=fdda818ec8f4b7be172a2b2ccc8a1c930a72ce8b;hpb=5e13b105ad48e61a5cd46941c61a16ad00445248;p=rocksndiamonds.git diff --git a/src/libgame/system.h b/src/libgame/system.h index fdda818e..dd5b1bf1 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -165,6 +165,10 @@ /* values for special "focus player" bitmasks */ #define BIT_SET_FOCUS 6 +/* values for drawing stages for global animations */ +#define DRAW_GLOBAL_ANIM_STAGE_1 1 +#define DRAW_GLOBAL_ANIM_STAGE_2 2 + /* values for move directions and special "button" key bitmasks */ #define MV_NONE 0 #define MV_LEFT (1 << MV_BIT_LEFT) @@ -221,6 +225,7 @@ MV_NONE) /* values for animation mode (frame order and direction) */ +/* (stored in level files -- never change existing values) */ #define ANIM_NONE 0 #define ANIM_LOOP (1 << 0) #define ANIM_LINEAR (1 << 1) @@ -234,10 +239,13 @@ #define ANIM_OPAQUE_PLAYER (1 << 9) /* values for special (non game element) animation modes */ +/* (not stored in level files -- can be changed, if needed) */ #define ANIM_HORIZONTAL (1 << 10) #define ANIM_VERTICAL (1 << 11) #define ANIM_CENTERED (1 << 12) #define ANIM_STATIC_PANEL (1 << 13) +#define ANIM_ALL (1 << 14) +#define ANIM_ONCE (1 << 15) #define ANIM_DEFAULT ANIM_LOOP @@ -271,6 +279,17 @@ #define FADE_MODE_DEFAULT FADE_MODE_FADE +/* values for toon positions */ +#define POS_UNDEFINED -1 +#define POS_LEFT 0 +#define POS_RIGHT 1 +#define POS_TOP 2 +#define POS_UPPER 3 +#define POS_MIDDLE 4 +#define POS_LOWER 5 +#define POS_BOTTOM 6 +#define POS_ANY 7 + /* values for text alignment */ #define ALIGN_LEFT (1 << 0) #define ALIGN_RIGHT (1 << 1) @@ -792,6 +811,14 @@ struct GfxInfo Bitmap *background_bitmap; int background_bitmap_mask; + Bitmap *fade_bitmap_source; + Bitmap *fade_bitmap_target; + Bitmap *fade_bitmap_black; + +#if USE_FINAL_SCREEN_BITMAP + Bitmap *final_screen_bitmap; +#endif + boolean clipping_enabled; int clip_x, clip_y; int clip_width, clip_height; @@ -810,6 +837,8 @@ struct GfxInfo int anim_random_frame; void (*draw_busy_anim_function)(void); + void (*draw_global_anim_function)(int); + void (*draw_global_border_function)(int); int cursor_mode; }; @@ -946,6 +975,9 @@ struct SetupInternalInfo char *default_level_series; + int default_window_width; + int default_window_height; + boolean choose_from_top_leveldir; }; @@ -1306,6 +1338,8 @@ void InitGfxWindowInfo(int, int); void InitGfxScrollbufferInfo(int, int); void InitGfxClipRegion(boolean, int, int, int, int); void InitGfxDrawBusyAnimFunction(void (*draw_busy_anim_function)(void)); +void InitGfxDrawGlobalAnimFunction(void (*draw_global_anim_function)(int)); +void InitGfxDrawGlobalBorderFunction(void (*draw_global_border_function)(int)); void InitGfxCustomArtworkInfo(); void InitGfxOtherSettings(); void SetDrawDeactivationMask(int); @@ -1335,6 +1369,10 @@ void BlitBitmapMasked(Bitmap *, Bitmap *, int, int, int, int, int, int); boolean DrawingOnBackground(int, int); boolean DrawingAreaChanged(); void BlitBitmapOnBackground(Bitmap *, Bitmap *, int, int, int, int, int, int); +void BlitTexture(Bitmap *, int, int, int, int, int, int); +void BlitTextureMasked(Bitmap *, int, int, int, int, int, int); +void BlitToScreen(Bitmap *, int, int, int, int, int, int); +void BlitToScreenMasked(Bitmap *, int, int, int, int, int, int); void DrawSimpleBlackLine(Bitmap *, int, int, int, int); void DrawSimpleWhiteLine(Bitmap *, int, int, int, int); void DrawLines(Bitmap *, struct XY *, int, Pixel); @@ -1354,6 +1392,8 @@ void ReloadCustomImage(Bitmap *, char *); Bitmap *ZoomBitmap(Bitmap *, int, int); void ReCreateGameTileSizeBitmap(Bitmap **); void CreateBitmapWithSmallBitmaps(Bitmap **, int, int); +void CreateBitmapTextures(Bitmap **); +void FreeBitmapTextures(Bitmap **); void ScaleBitmap(Bitmap **, int); void SetMouseCursor(int);