#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
#define POS_BOTTOM 6
#define POS_ANY 7
#define POS_CE 8
-#define POS_LAST 9
+#define POS_CE_TRIGGER 9
+#define POS_LAST 10
// values for text alignment
#define ALIGN_LEFT (1 << 0)
#define MAX_VSYNC_FRAME_DELAY 16 // maximum value for vsync to work
#define FRAMES_PER_SECOND (ONE_SECOND_DELAY / GAME_FRAME_DELAY)
#define FRAMES_PER_SECOND_SP 35
+#define FRAMES_PER_SECOND_PAL 50
+#define FRAMES_PER_SECOND_NTSC 60
// maximum playfield size supported by libgame functions
#define MAX_PLAYFIELD_WIDTH 128
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;
struct SetupEditorInfo
{
boolean el_boulderdash;
+ boolean el_boulderdash_native;
boolean el_emerald_mine;
boolean el_emerald_mine_club;
boolean el_more;
struct SetupEditorCascadeInfo
{
boolean el_bd;
+ boolean el_bd_native;
boolean el_em;
boolean el_emc;
boolean el_rnd;
boolean sound_music;
boolean sound_simple;
boolean toons;
+ boolean global_animations;
boolean scroll_delay;
boolean forced_scroll_delay;
int scroll_delay_value;
boolean prefer_extra_panel_items;
boolean game_speed_extended;
int game_frame_delay;
+ boolean bd_skip_uncovering;
+ boolean bd_skip_hatching;
boolean sp_show_border_elements;
boolean small_game_graphics;
boolean show_load_save_buttons;
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);
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,