X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Flibgame%2Fsystem.h;h=73d50ddc0b4ccfcb2b9df2c6b908aa197fae4b61;hb=HEAD;hp=02e58143fbb6668351aa67cc480da745574f1a45;hpb=c42db18f39053cf2ec85943c37a20b8caa742d09;p=rocksndiamonds.git diff --git a/src/libgame/system.h b/src/libgame/system.h index 02e58143..73d50ddc 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -288,6 +288,8 @@ // values for drawing stages for global animations #define DRAW_GLOBAL_ANIM_STAGE_1 1 #define DRAW_GLOBAL_ANIM_STAGE_2 2 +#define DRAW_GLOBAL_ANIM_STAGE_3 3 +#define DRAW_GLOBAL_ANIM_STAGE_RESTART 4 // values for drawing target (various functions) #define DRAW_TO_BACKBUFFER 0 @@ -364,20 +366,64 @@ #define ANIM_CE_DELAY (1 << 7) #define ANIM_REVERSE (1 << 8) #define ANIM_OPAQUE_PLAYER (1 << 9) +#define ANIM_LEVEL_NR (1 << 10) // 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_TILED (1 << 16) -#define ANIM_RANDOM_STATIC (1 << 17) +#define ANIM_HORIZONTAL (1 << 11) +#define ANIM_VERTICAL (1 << 12) +#define ANIM_CENTERED (1 << 13) +#define ANIM_STATIC_PANEL (1 << 14) +#define ANIM_ALL (1 << 15) +#define ANIM_ONCE (1 << 16) +#define ANIM_TILED (1 << 17) +#define ANIM_RANDOM_STATIC (1 << 18) #define ANIM_DEFAULT ANIM_LOOP +// values for special global animation events +#define ANIM_EVENT_UNDEFINED -1 +#define ANIM_EVENT_NONE 0 +#define ANIM_EVENT_SELF (1 << 0) +#define ANIM_EVENT_ANY (1 << 1) +#define ANIM_EVENT_CLICK (1 << 2) +#define ANIM_EVENT_INIT (1 << 3) +#define ANIM_EVENT_START (1 << 4) +#define ANIM_EVENT_END (1 << 5) +#define ANIM_EVENT_POST (1 << 6) +#define ANIM_EVENT_UNCLICK_ANY (1 << 7) +#define ANIM_EVENT_CE_CHANGE (1 << 8) + +// event mask: bits 0-15 +// CE number: bits 16-23 +// anim number: bits 16-23 +// page number: bits 24-31 +// part number: bits 24-31 +#define ANIM_EVENT_CE_BIT 16 +#define ANIM_EVENT_ANIM_BIT 16 +#define ANIM_EVENT_PAGE_BIT 24 +#define ANIM_EVENT_PART_BIT 24 + +#define ANIM_EVENT_CE_MASK (0xff << ANIM_EVENT_CE_BIT) +#define ANIM_EVENT_ANIM_MASK (0xff << ANIM_EVENT_ANIM_BIT) +#define ANIM_EVENT_PAGE_MASK (0xff << ANIM_EVENT_PAGE_BIT) +#define ANIM_EVENT_PART_MASK (0xff << ANIM_EVENT_PART_BIT) + +#define ANIM_EVENT_DEFAULT ANIM_EVENT_NONE + +// values for special global animation event actions +#define ANIM_EVENT_ACTION_NONE -1 + +// values for special global animation delay types +#define ANIM_DELAY_UNDEFINED -1 +#define ANIM_DELAY_NONE 0 +#define ANIM_DELAY_INIT 1 +#define ANIM_DELAY_ANIM 2 +#define ANIM_DELAY_POST 3 + +// values for special global animation delay actions +#define ANIM_DELAY_ACTION_NONE -1 + // values for special drawing styles and event handling #define STYLE_NONE 0 @@ -393,44 +439,10 @@ #define STYLE_BLOCK (1 << 4) #define STYLE_PASSTHROUGH (1 << 5) #define STYLE_MULTIPLE_ACTIONS (1 << 6) +#define STYLE_CONSUME_CE_EVENT (1 << 7) #define STYLE_DEFAULT STYLE_NONE -// values for special global animation delay types -#define ANIM_DELAY_UNDEFINED -1 -#define ANIM_DELAY_NONE 0 -#define ANIM_DELAY_INIT 1 -#define ANIM_DELAY_ANIM 2 -#define ANIM_DELAY_POST 3 - -// values for special global animation delay actions -#define ANIM_DELAY_ACTION_NONE -1 - -// values for special global animation events -#define ANIM_EVENT_UNDEFINED -1 -#define ANIM_EVENT_NONE 0 -#define ANIM_EVENT_SELF (1 << 16) -#define ANIM_EVENT_ANY (1 << 17) -#define ANIM_EVENT_CLICK (1 << 18) -#define ANIM_EVENT_INIT (1 << 19) -#define ANIM_EVENT_START (1 << 20) -#define ANIM_EVENT_END (1 << 21) -#define ANIM_EVENT_POST (1 << 22) -#define ANIM_EVENT_UNCLICK_ANY (1 << 23) - -// anim number: bits 0-7 -// part number: bits 8-15 -#define ANIM_EVENT_ANIM_BIT 0 -#define ANIM_EVENT_PART_BIT 8 - -#define ANIM_EVENT_ANIM_MASK (0xff << ANIM_EVENT_ANIM_BIT) -#define ANIM_EVENT_PART_MASK (0xff << ANIM_EVENT_PART_BIT) - -#define ANIM_EVENT_DEFAULT ANIM_EVENT_NONE - -// values for special global animation event actions -#define ANIM_EVENT_ACTION_NONE -1 - // values for fade mode #define FADE_TYPE_NONE 0 #define FADE_TYPE_FADE_IN (1 << 0) @@ -469,7 +481,9 @@ #define POS_LOWER 5 #define POS_BOTTOM 6 #define POS_ANY 7 -#define POS_LAST 8 +#define POS_CE 8 +#define POS_CE_TRIGGER 9 +#define POS_LAST 10 // values for text alignment #define ALIGN_LEFT (1 << 0) @@ -1227,11 +1241,13 @@ struct GfxInfo char * (*get_token_from_font_function)(int); int anim_random_frame; + int anim_first_level; void (*draw_busy_anim_function)(boolean); void (*draw_global_anim_function)(int, int); void (*draw_global_border_function)(int); - void (*draw_tile_cursor_function)(int); + void (*draw_tile_cursor_function)(int, int); + void (*draw_envelope_request_function)(int); int cursor_mode; int cursor_mode_override; @@ -1502,6 +1518,7 @@ struct SetupInfo boolean sound_music; boolean sound_simple; boolean toons; + boolean global_animations; boolean scroll_delay; boolean forced_scroll_delay; int scroll_delay_value; @@ -1965,7 +1982,8 @@ void InitGfxClipRegion(boolean, int, int, int, int); void InitGfxDrawBusyAnimFunction(void (*draw_busy_anim_function)(boolean)); void InitGfxDrawGlobalAnimFunction(void (*draw_global_anim_function)(int, int)); void InitGfxDrawGlobalBorderFunction(void (*draw_global_border_function)(int)); -void InitGfxDrawTileCursorFunction(void (*draw_tile_cursor_function)(int)); +void InitGfxDrawTileCursorFunction(void (*draw_tile_cursor_function)(int, int)); +void InitGfxDrawEnvelopeRequestFunction(void (*draw_envelope_request_function)(int)); void InitGfxCustomArtworkInfo(void); void InitGfxOtherSettings(void); void InitTileCursorInfo(void); @@ -1993,10 +2011,12 @@ void InitVideoDefaults(void); void InitVideoDisplay(void); void CloseVideoDisplay(void); void InitVideoBuffer(int, int, int, boolean); +void ResetBitmapAlpha(Bitmap *); Bitmap *CreateBitmapStruct(void); Bitmap *CreateBitmap(int, int, int); void ReCreateBitmap(Bitmap **, int, int); void FreeBitmap(Bitmap *); +void SetBitmapAlphaNextBlit(Bitmap *, int); void BlitBitmap(Bitmap *, Bitmap *, int, int, int, int, int, int); void BlitBitmapTiled(Bitmap *, Bitmap *, int, int, int, int, int, int, int, int); void FadeRectangle(int, int, int, int, int, int, int,