#define BUTTON_ACTIVE(b) (ActiveButton[b])
#define FONT_ACTIVE(f) (ActiveFont[f])
-
/* fundamental game speed values */
#define MICROLEVEL_SCROLL_DELAY 50 /* delay for scrolling micro level */
#define MICROLEVEL_LABEL_DELAY 250 /* delay for micro level label */
#define ACTION_PAGE_30 81
#define ACTION_PAGE_31 82
#define ACTION_PAGE_32 83
-#define ACTION_OTHER 84
-
-#define NUM_ACTIONS 85
+#define ACTION_PART_1 84
+#define ACTION_PART_2 85
+#define ACTION_PART_3 86
+#define ACTION_PART_4 87
+#define ACTION_PART_5 88
+#define ACTION_PART_6 89
+#define ACTION_PART_7 90
+#define ACTION_PART_8 91
+#define ACTION_OTHER 92
+
+#define NUM_ACTIONS 93
#define ACTION_BORING_LAST ACTION_BORING_10
#define ACTION_SLEEPING_LAST ACTION_SLEEPING_3
#define NUM_FONTS 38
#define NUM_INITIAL_FONTS 4
+/* values for global animation configuration (must match those from main.c) */
+#define NUM_GLOBAL_ANIMS 8
+#define NUM_GLOBAL_ANIM_PARTS 8
+
/* values for game_status (must match special image configuration suffixes) */
#define GAME_MODE_DEFAULT 0
#define GAME_MODE_LOADING 1
#define NUM_ENGINE_TYPES 4
+/* values for automatically playing tapes */
+#define AUTOPLAY_TEST 0
+#define AUTOPLAY_PLAY 1
+#define AUTOPLAY_FFWD 2
+
struct BorderInfo
{
struct TitleFadingInfo leave_menu;
struct TitleFadingInfo enter_screen[NUM_SPECIAL_GFX_ARGS];
struct TitleFadingInfo leave_screen[NUM_SPECIAL_GFX_ARGS];
- struct TitleFadingInfo next_screen;
+ struct TitleFadingInfo next_screen[NUM_SPECIAL_GFX_ARGS];
int sound[NUM_SPECIAL_GFX_ARGS];
int music[NUM_SPECIAL_GFX_ARGS];
struct EditorPaletteElementInfo element_right;
};
+struct EditorDrawingAreaInfo
+{
+ int tile_size;
+};
+
struct EditorInfo
{
struct EditorSettingsInfo settings;
struct EditorButtonInfo button;
struct EditorInputInfo input;
struct EditorPaletteInfo palette;
+ struct EditorDrawingAreaInfo drawingarea;
};
struct ViewportInfo
{
- struct RectWithBorder window;
+ struct RectWithBorder window[NUM_SPECIAL_GFX_ARGS];
struct RectWithBorder playfield[NUM_SPECIAL_GFX_ARGS];
struct RectWithBorder door_1[NUM_SPECIAL_GFX_ARGS];
struct RectWithBorder door_2[NUM_SPECIAL_GFX_ARGS];
boolean use_time_orb_bug; /* for compatibility with old levels */
boolean instant_relocation; /* no visual delay when relocating player */
boolean shifted_relocation; /* no level centering when relocating player */
+ boolean lazy_relocation; /* only redraw off-screen player relocation */
boolean can_pass_to_walkable; /* player can pass to empty or walkable tile */
boolean grow_into_diggable; /* amoeba can grow into anything diggable */
boolean auto_exit_sokoban; /* automatically finish solved Sokoban levels */
char *autoplay_leveldir;
int autoplay_level[MAX_TAPES_PER_SET];
boolean autoplay_all;
+ boolean autoplay_mode;
char *convert_leveldir;
int convert_level_nr;
/* internal bitmap ID for special graphics */
};
+struct GlobalAnimInfo
+{
+ char *token_name; /* global animation token in config files */
+
+ /* global animation parts for certain screens */
+ int graphic[NUM_GLOBAL_ANIM_PARTS][NUM_SPECIAL_GFX_ARGS];
+};
+
struct GraphicInfo
{
Bitmap **bitmaps; /* bitmaps in all required sizes */
extern DrawBuffer *drawto_field;
extern int game_status;
+extern boolean game_status_last_screen;
extern boolean level_editor_test_game;
extern boolean network_playing;
extern struct TitleFadingInfo fading_none;
extern struct TitleFadingInfo title_initial_default;
extern struct TitleFadingInfo title_default;
+extern struct TitleMessageInfo titlescreen_initial_default;
+extern struct TitleMessageInfo titlescreen_initial_first[];
+extern struct TitleMessageInfo titlescreen_initial[];
+extern struct TitleMessageInfo titlescreen_default;
+extern struct TitleMessageInfo titlescreen_first[];
+extern struct TitleMessageInfo titlescreen[];
extern struct TitleMessageInfo titlemessage_initial_default;
+extern struct TitleMessageInfo titlemessage_initial_first[];
extern struct TitleMessageInfo titlemessage_initial[];
extern struct TitleMessageInfo titlemessage_default;
+extern struct TitleMessageInfo titlemessage_first[];
extern struct TitleMessageInfo titlemessage[];
extern struct TitleMessageInfo readme;
extern struct InitInfo init, init_last;
extern struct SpecialSuffixInfo special_suffix_info[];
extern struct TokenIntPtrInfo image_config_vars[];
extern struct FontInfo font_info[];
+extern struct GlobalAnimInfo global_anim_info[];
extern struct MusicPrefixInfo music_prefix_info[];
extern struct GraphicInfo *graphic_info;
extern struct SoundInfo *sound_info;