X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fmain.h;h=b66da1d20e2ba4a116ba1692766e218d9d69c331;hp=d688627d87903d2bc41555f757dea25c38ebfc37;hb=deffcb743b7a09356c1330e643740eeecf0b45d3;hpb=929d04d073dad615dfe2a2c910a0ee10c27793a4 diff --git a/src/main.h b/src/main.h index d688627d..b66da1d2 100644 --- a/src/main.h +++ b/src/main.h @@ -24,6 +24,7 @@ #include "game_em/game_em.h" #include "game_sp/game_sp.h" #include "game_mm/game_mm.h" +#include "engines.h" #include "conf_gfx.h" /* include auto-generated data structure definitions */ #include "conf_snd.h" /* include auto-generated data structure definitions */ @@ -905,6 +906,7 @@ #define IS_NEXT_FRAME(f, g) (IS_NEW_FRAME(f, g) && (f) > 0) #define IS_LOOP_SOUND(s) (sound_info[s].loop) +#define IS_LOOP_MUSIC(s) (music_info[s].loop) #define IS_SPECIAL_GFX_ARG(a) ((a) >= 0 && (a) < NUM_SPECIAL_GFX_ARGS) @@ -2359,26 +2361,28 @@ #define GFX_ARG_POST_DELAY_FIXED 39 #define GFX_ARG_POST_DELAY_RANDOM 40 #define GFX_ARG_INIT_EVENT 41 -#define GFX_ARG_ANIM_EVENT 42 -#define GFX_ARG_NAME 43 -#define GFX_ARG_SCALE_UP_FACTOR 44 -#define GFX_ARG_TILE_SIZE 45 -#define GFX_ARG_CLONE_FROM 46 -#define GFX_ARG_FADE_MODE 47 -#define GFX_ARG_FADE_DELAY 48 -#define GFX_ARG_POST_DELAY 49 -#define GFX_ARG_AUTO_DELAY 50 -#define GFX_ARG_ALIGN 51 -#define GFX_ARG_VALIGN 52 -#define GFX_ARG_SORT_PRIORITY 53 -#define GFX_ARG_CLASS 54 -#define GFX_ARG_STYLE 55 -#define GFX_ARG_ACTIVE_XOFFSET 56 -#define GFX_ARG_ACTIVE_YOFFSET 57 -#define GFX_ARG_PRESSED_XOFFSET 58 -#define GFX_ARG_PRESSED_YOFFSET 59 - -#define NUM_GFX_ARGS 60 +#define GFX_ARG_INIT_EVENT_ACTION 42 +#define GFX_ARG_ANIM_EVENT 43 +#define GFX_ARG_ANIM_EVENT_ACTION 44 +#define GFX_ARG_NAME 45 +#define GFX_ARG_SCALE_UP_FACTOR 46 +#define GFX_ARG_TILE_SIZE 47 +#define GFX_ARG_CLONE_FROM 48 +#define GFX_ARG_FADE_MODE 49 +#define GFX_ARG_FADE_DELAY 50 +#define GFX_ARG_POST_DELAY 51 +#define GFX_ARG_AUTO_DELAY 52 +#define GFX_ARG_ALIGN 53 +#define GFX_ARG_VALIGN 54 +#define GFX_ARG_SORT_PRIORITY 55 +#define GFX_ARG_CLASS 56 +#define GFX_ARG_STYLE 57 +#define GFX_ARG_ACTIVE_XOFFSET 58 +#define GFX_ARG_ACTIVE_YOFFSET 59 +#define GFX_ARG_PRESSED_XOFFSET 60 +#define GFX_ARG_PRESSED_YOFFSET 61 + +#define NUM_GFX_ARGS 62 /* values for sound configuration suffixes */ @@ -2438,8 +2442,9 @@ #define FONT_GAME_INFO 39 #define FONT_INFO_ELEMENTS 40 #define FONT_INFO_LEVELSET 41 +#define FONT_MAIN_NETWORK_PLAYERS 42 -#define NUM_FONTS 42 +#define NUM_FONTS 43 #define NUM_INITIAL_FONTS 4 /* values for toon animation configuration */ @@ -2516,7 +2521,7 @@ /* program information and versioning definitions */ #define PROGRAM_VERSION_SUPER 4 #define PROGRAM_VERSION_MAJOR 1 -#define PROGRAM_VERSION_MINOR 0 +#define PROGRAM_VERSION_MINOR 1 #define PROGRAM_VERSION_PATCH 1 #define PROGRAM_VERSION_EXTRA "" @@ -2636,6 +2641,13 @@ struct MenuMainButtonInfo struct MenuPosInfo prev_level; struct MenuPosInfo next_level; + + struct MenuPosInfo first_level; + struct MenuPosInfo last_level; + struct MenuPosInfo level_number; + + struct MenuPosInfo insert_solution; + struct MenuPosInfo play_solution; }; struct MenuMainTextInfo @@ -2675,6 +2687,9 @@ struct MenuMainInfo struct MenuMainButtonInfo button; struct MenuMainTextInfo text; struct MenuMainInputInfo input; + + struct TextPosInfo preview_players; + struct TextPosInfo network_players; }; struct TitleFadingInfo @@ -2953,11 +2968,6 @@ struct EnvelopeInfo char text[MAX_ENVELOPE_TEXT_LEN + 1]; }; -struct LevelSetInfo -{ - int music[MAX_LEVELS]; -}; - struct LevelFileInfo { int nr; @@ -3085,6 +3095,7 @@ struct LevelInfo 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 */ + boolean solved_by_one_player; /* level is solved if one player enters exit */ boolean continuous_snapping; /* repeated snapping without releasing key */ boolean block_snap_field; /* snapping blocks field to show animation */ @@ -3117,6 +3128,17 @@ struct LevelInfo boolean use_action_after_change_bug; }; +struct NetworkLevelInfo +{ + char *leveldir_identifier; /* network levelset identifier */ + + struct LevelFileInfo file_info; /* file info for level file */ + struct LevelFileInfo tmpl_info; /* file info for level template */ + + boolean use_network_level_files; /* use levels from network server */ + boolean use_custom_template; /* use CEs from level template */ +}; + struct GlobalInfo { char *autoplay_leveldir; @@ -3403,7 +3425,9 @@ struct GraphicInfo int post_delay_random; /* animations (pause before next animation) */ int init_event; /* optional event triggering animation start */ + int init_event_action; /* optional action called on animation start */ int anim_event; /* optional event triggering animation end */ + int anim_event_action; /* optional action called on animation end */ int step_offset; /* optional step offset of toon animations */ int step_xoffset; /* optional step offset of toon animations */ @@ -3608,7 +3632,6 @@ extern boolean network_player_action_received; extern int graphics_action_mapping[]; -extern struct LevelSetInfo levelset; extern struct LevelInfo level, level_template; extern struct HiScore highscore[]; extern struct TapeInfo tape;