X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=69f758a0ed50a1a4e86ad6a9c030fa566926971a;hb=f857fec3082c785b0dd271b6ad1b7642a2ed4e65;hp=2d5910757ccec644e94ab7e673cb12adbacf178f;hpb=7d76e4299f6171909990d2ba2f1f6a2b382d9cf3;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 2d591075..69f758a0 100644 --- a/src/main.h +++ b/src/main.h @@ -60,58 +60,78 @@ #define IN_SCR_FIELD(x,y) ((x)>=BX1 && (x)<=BX2 && (y)>=BY1 &&(y)<=BY2) #define IN_LEV_FIELD(x,y) ((x)>=0 && (x)=0 &&(y)= EL_CUSTOM_START && \ (e) <= EL_CUSTOM_END) @@ -205,7 +233,7 @@ #define PLAYERINFO(x,y) (&stored_player[StorePlayer[x][y]-EL_PLAYER_1]) #define SHIELD_ON(p) ((p)->shield_normal_time_left > 0) -#define PROTECTED_FIELD(x,y) (IS_WALKABLE_THROUGH(Feld[x][y]) && \ +#define PROTECTED_FIELD(x,y) (IS_ACCESSIBLE_INSIDE(Feld[x][y]) && \ IS_INDESTRUCTIBLE(Feld[x][y])) #define PLAYER_PROTECTED(x,y) (SHIELD_ON(PLAYERINFO(x, y)) || \ PROTECTED_FIELD(x, y)) @@ -783,7 +811,7 @@ #define NUM_ACTIONS 26 -/* values for special image configuration suffixes */ +/* values for special image configuration suffixes (must match game mode) */ #define GFX_SPECIAL_ARG_MAIN 0 #define GFX_SPECIAL_ARG_LEVELS 1 #define GFX_SPECIAL_ARG_SCORES 2 @@ -840,43 +868,49 @@ #define FONT_TITLE_2 5 #define FONT_MENU_1 6 #define FONT_MENU_2 7 -#define FONT_TEXT_1 8 -#define FONT_TEXT_2 9 -#define FONT_TEXT_3 10 -#define FONT_TEXT_4 11 -#define FONT_INPUT_1 12 -#define FONT_INPUT_1_ACTIVE 13 -#define FONT_INPUT_2 14 -#define FONT_INPUT_2_ACTIVE 15 -#define FONT_OPTION_OFF 16 -#define FONT_OPTION_ON 17 -#define FONT_VALUE_1 18 -#define FONT_VALUE_2 19 -#define FONT_VALUE_OLD 20 -#define FONT_LEVEL_NUMBER 21 -#define FONT_TAPE_RECORDER 22 -#define FONT_GAME_INFO 23 - -#define NUM_FONTS 24 +#define FONT_TEXT_1_ACTIVE 8 +#define FONT_TEXT_2_ACTIVE 9 +#define FONT_TEXT_3_ACTIVE 10 +#define FONT_TEXT_4_ACTIVE 11 +#define FONT_TEXT_1 12 +#define FONT_TEXT_2 13 +#define FONT_TEXT_3 14 +#define FONT_TEXT_4 15 +#define FONT_INPUT_1_ACTIVE 16 +#define FONT_INPUT_2_ACTIVE 17 +#define FONT_INPUT_1 18 +#define FONT_INPUT_2 19 +#define FONT_OPTION_OFF 20 +#define FONT_OPTION_ON 21 +#define FONT_VALUE_1 22 +#define FONT_VALUE_2 23 +#define FONT_VALUE_OLD 24 +#define FONT_LEVEL_NUMBER 25 +#define FONT_TAPE_RECORDER 26 +#define FONT_GAME_INFO 27 + +#define NUM_FONTS 28 #define NUM_INITIAL_FONTS 4 -/* values for game_status */ -#define EXITGAME 0 -#define MAINMENU 1 -#define PLAYING 2 -#define LEVELED 3 -#define HELPSCREEN 4 -#define CHOOSELEVEL 5 -#define TYPENAME 6 -#define HALLOFFAME 7 -#define SETUP 8 -#define PSEUDO_PREVIEW 9 -#define PSEUDO_DOOR 10 +/* values for game_status (must match special image configuration suffixes) */ +#define GAME_MODE_MAIN 0 +#define GAME_MODE_LEVELS 1 +#define GAME_MODE_SCORES 2 +#define GAME_MODE_EDITOR 3 +#define GAME_MODE_INFO 4 +#define GAME_MODE_SETUP 5 +#define GAME_MODE_PSEUDO_DOOR 6 +#define GAME_MODE_PSEUDO_PREVIEW 7 + +/* there are no special config file suffixes for these modes */ +#define GAME_MODE_PLAYING 8 +#define GAME_MODE_PSEUDO_TYPENAME 9 +#define GAME_MODE_QUIT 10 #define PROGRAM_VERSION_MAJOR 2 #define PROGRAM_VERSION_MINOR 2 #define PROGRAM_VERSION_PATCH 0 -#define PROGRAM_VERSION_STRING "2.2.0rc4" +#define PROGRAM_VERSION_STRING "2.2.0rc7" #define PROGRAM_TITLE_STRING "Rocks'n'Diamonds" #define PROGRAM_AUTHOR_STRING "Holger Schemel" @@ -1088,19 +1122,25 @@ struct GlobalInfo int num_toons; - int menu_draw_xoffset; - int menu_draw_yoffset; - int menu_draw_xoffset_MAIN; - int menu_draw_yoffset_MAIN; - - int door_step_offset; - int door_step_delay; - float frames_per_second; boolean fps_slowdown; int fps_slowdown_factor; }; +struct MenuInfo +{ + int draw_xoffset_default; + int draw_yoffset_default; + int draw_xoffset[NUM_SPECIAL_GFX_ARGS]; + int draw_yoffset[NUM_SPECIAL_GFX_ARGS]; +}; + +struct DoorInfo +{ + int step_offset; + int step_delay; +}; + struct ElementInfo { char *token_name; /* element token used in config files */ @@ -1203,6 +1243,7 @@ extern short MovDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern short Store[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern short Store2[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern short StorePlayer[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern short Back[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern boolean Stop[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern short JustStopped[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern short AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; @@ -1249,10 +1290,13 @@ extern struct HiScore highscore[]; extern struct TapeInfo tape; extern struct GameInfo game; extern struct GlobalInfo global; +extern struct MenuInfo menu; +extern struct DoorInfo door; extern struct ElementInfo element_info[]; extern struct ElementActionInfo element_action_info[]; extern struct ElementDirectionInfo element_direction_info[]; extern struct SpecialSuffixInfo special_suffix_info[]; +extern struct TokenIntPtrInfo image_config_vars[]; extern struct FontInfo font_info[]; extern struct GraphicInfo *graphic_info; extern struct SoundInfo *sound_info;