X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=772176a84f786523fa9669a1edc2b6e19facd101;hb=5a5342a6ab48037839b783adc4f3304331834a8c;hp=281fc47e57e6f0eb48bb5d975004da7206ac5818;hpb=f4b305df0ae775ef48daee86020904abb79ebef8;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 281fc47e..772176a8 100644 --- a/src/main.h +++ b/src/main.h @@ -647,46 +647,47 @@ #define EL_DYNABOMB_PLAYER2_ACTIVE (EL_FIRST_RUNTIME_REAL + 5) #define EL_DYNABOMB_PLAYER3_ACTIVE (EL_FIRST_RUNTIME_REAL + 6) #define EL_DYNABOMB_PLAYER4_ACTIVE (EL_FIRST_RUNTIME_REAL + 7) -#define EL_SWITCHGATE_OPENING (EL_FIRST_RUNTIME_REAL + 8) -#define EL_SWITCHGATE_CLOSING (EL_FIRST_RUNTIME_REAL + 9) -#define EL_TIMEGATE_OPENING (EL_FIRST_RUNTIME_REAL + 10) -#define EL_TIMEGATE_CLOSING (EL_FIRST_RUNTIME_REAL + 11) -#define EL_PEARL_BREAKING (EL_FIRST_RUNTIME_REAL + 12) -#define EL_TRAP_ACTIVE (EL_FIRST_RUNTIME_REAL + 13) -#define EL_INVISIBLE_STEELWALL_ACTIVE (EL_FIRST_RUNTIME_REAL + 14) -#define EL_INVISIBLE_WALL_ACTIVE (EL_FIRST_RUNTIME_REAL + 15) -#define EL_INVISIBLE_SAND_ACTIVE (EL_FIRST_RUNTIME_REAL + 16) -#define EL_CONVEYOR_BELT1_LEFT_ACTIVE (EL_FIRST_RUNTIME_REAL + 17) -#define EL_CONVEYOR_BELT1_MIDDLE_ACTIVE (EL_FIRST_RUNTIME_REAL + 18) -#define EL_CONVEYOR_BELT1_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 19) -#define EL_CONVEYOR_BELT2_LEFT_ACTIVE (EL_FIRST_RUNTIME_REAL + 20) -#define EL_CONVEYOR_BELT2_MIDDLE_ACTIVE (EL_FIRST_RUNTIME_REAL + 21) -#define EL_CONVEYOR_BELT2_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 22) -#define EL_CONVEYOR_BELT3_LEFT_ACTIVE (EL_FIRST_RUNTIME_REAL + 23) -#define EL_CONVEYOR_BELT3_MIDDLE_ACTIVE (EL_FIRST_RUNTIME_REAL + 24) -#define EL_CONVEYOR_BELT3_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 25) -#define EL_CONVEYOR_BELT4_LEFT_ACTIVE (EL_FIRST_RUNTIME_REAL + 26) -#define EL_CONVEYOR_BELT4_MIDDLE_ACTIVE (EL_FIRST_RUNTIME_REAL + 27) -#define EL_CONVEYOR_BELT4_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 28) -#define EL_EXIT_OPENING (EL_FIRST_RUNTIME_REAL + 29) -#define EL_SP_EXIT_OPEN (EL_FIRST_RUNTIME_REAL + 30) -#define EL_SP_TERMINAL_ACTIVE (EL_FIRST_RUNTIME_REAL + 31) -#define EL_SP_BUGGY_BASE_ACTIVATING (EL_FIRST_RUNTIME_REAL + 32) -#define EL_SP_BUGGY_BASE_ACTIVE (EL_FIRST_RUNTIME_REAL + 33) -#define EL_SP_MURPHY_CLONE (EL_FIRST_RUNTIME_REAL + 34) -#define EL_AMOEBA_DRIPPING (EL_FIRST_RUNTIME_REAL + 35) -#define EL_QUICKSAND_EMPTYING (EL_FIRST_RUNTIME_REAL + 36) -#define EL_MAGIC_WALL_ACTIVE (EL_FIRST_RUNTIME_REAL + 37) -#define EL_BD_MAGIC_WALL_ACTIVE (EL_FIRST_RUNTIME_REAL + 38) -#define EL_MAGIC_WALL_FULL (EL_FIRST_RUNTIME_REAL + 39) -#define EL_BD_MAGIC_WALL_FULL (EL_FIRST_RUNTIME_REAL + 40) -#define EL_MAGIC_WALL_EMPTYING (EL_FIRST_RUNTIME_REAL + 41) -#define EL_BD_MAGIC_WALL_EMPTYING (EL_FIRST_RUNTIME_REAL + 42) -#define EL_MAGIC_WALL_DEAD (EL_FIRST_RUNTIME_REAL + 43) -#define EL_BD_MAGIC_WALL_DEAD (EL_FIRST_RUNTIME_REAL + 44) +#define EL_SP_DISK_RED_ACTIVE (EL_FIRST_RUNTIME_REAL + 8) +#define EL_SWITCHGATE_OPENING (EL_FIRST_RUNTIME_REAL + 9) +#define EL_SWITCHGATE_CLOSING (EL_FIRST_RUNTIME_REAL + 10) +#define EL_TIMEGATE_OPENING (EL_FIRST_RUNTIME_REAL + 11) +#define EL_TIMEGATE_CLOSING (EL_FIRST_RUNTIME_REAL + 12) +#define EL_PEARL_BREAKING (EL_FIRST_RUNTIME_REAL + 13) +#define EL_TRAP_ACTIVE (EL_FIRST_RUNTIME_REAL + 14) +#define EL_INVISIBLE_STEELWALL_ACTIVE (EL_FIRST_RUNTIME_REAL + 15) +#define EL_INVISIBLE_WALL_ACTIVE (EL_FIRST_RUNTIME_REAL + 16) +#define EL_INVISIBLE_SAND_ACTIVE (EL_FIRST_RUNTIME_REAL + 17) +#define EL_CONVEYOR_BELT1_LEFT_ACTIVE (EL_FIRST_RUNTIME_REAL + 18) +#define EL_CONVEYOR_BELT1_MIDDLE_ACTIVE (EL_FIRST_RUNTIME_REAL + 19) +#define EL_CONVEYOR_BELT1_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 20) +#define EL_CONVEYOR_BELT2_LEFT_ACTIVE (EL_FIRST_RUNTIME_REAL + 21) +#define EL_CONVEYOR_BELT2_MIDDLE_ACTIVE (EL_FIRST_RUNTIME_REAL + 22) +#define EL_CONVEYOR_BELT2_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 23) +#define EL_CONVEYOR_BELT3_LEFT_ACTIVE (EL_FIRST_RUNTIME_REAL + 24) +#define EL_CONVEYOR_BELT3_MIDDLE_ACTIVE (EL_FIRST_RUNTIME_REAL + 25) +#define EL_CONVEYOR_BELT3_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 26) +#define EL_CONVEYOR_BELT4_LEFT_ACTIVE (EL_FIRST_RUNTIME_REAL + 27) +#define EL_CONVEYOR_BELT4_MIDDLE_ACTIVE (EL_FIRST_RUNTIME_REAL + 28) +#define EL_CONVEYOR_BELT4_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 29) +#define EL_EXIT_OPENING (EL_FIRST_RUNTIME_REAL + 30) +#define EL_SP_EXIT_OPEN (EL_FIRST_RUNTIME_REAL + 31) +#define EL_SP_TERMINAL_ACTIVE (EL_FIRST_RUNTIME_REAL + 32) +#define EL_SP_BUGGY_BASE_ACTIVATING (EL_FIRST_RUNTIME_REAL + 33) +#define EL_SP_BUGGY_BASE_ACTIVE (EL_FIRST_RUNTIME_REAL + 34) +#define EL_SP_MURPHY_CLONE (EL_FIRST_RUNTIME_REAL + 35) +#define EL_AMOEBA_DRIPPING (EL_FIRST_RUNTIME_REAL + 36) +#define EL_QUICKSAND_EMPTYING (EL_FIRST_RUNTIME_REAL + 37) +#define EL_MAGIC_WALL_ACTIVE (EL_FIRST_RUNTIME_REAL + 38) +#define EL_BD_MAGIC_WALL_ACTIVE (EL_FIRST_RUNTIME_REAL + 39) +#define EL_MAGIC_WALL_FULL (EL_FIRST_RUNTIME_REAL + 40) +#define EL_BD_MAGIC_WALL_FULL (EL_FIRST_RUNTIME_REAL + 41) +#define EL_MAGIC_WALL_EMPTYING (EL_FIRST_RUNTIME_REAL + 42) +#define EL_BD_MAGIC_WALL_EMPTYING (EL_FIRST_RUNTIME_REAL + 43) +#define EL_MAGIC_WALL_DEAD (EL_FIRST_RUNTIME_REAL + 44) +#define EL_BD_MAGIC_WALL_DEAD (EL_FIRST_RUNTIME_REAL + 45) /* "unreal" (and therefore not drawable) runtime elements */ -#define EL_FIRST_RUNTIME_UNREAL (EL_FIRST_RUNTIME_REAL + 45) +#define EL_FIRST_RUNTIME_UNREAL (EL_FIRST_RUNTIME_REAL + 46) #define EL_BLOCKED (EL_FIRST_RUNTIME_UNREAL + 0) #define EL_EXPLOSION (EL_FIRST_RUNTIME_UNREAL + 1) @@ -751,10 +752,16 @@ #define NUM_ACTIONS 21 /* values for special image configuration suffixes */ -#define GFX_SPECIAL_ARG_EDITOR 0 -#define GFX_SPECIAL_ARG_PREVIEW 1 +#define GFX_SPECIAL_ARG_MAIN 0 +#define GFX_SPECIAL_ARG_LEVELS 1 +#define GFX_SPECIAL_ARG_SCORES 2 +#define GFX_SPECIAL_ARG_EDITOR 3 +#define GFX_SPECIAL_ARG_INFO 4 +#define GFX_SPECIAL_ARG_SETUP 5 +#define GFX_SPECIAL_ARG_DOOR 6 +#define GFX_SPECIAL_ARG_PREVIEW 7 -#define NUM_SPECIAL_GFX_ARGS 2 +#define NUM_SPECIAL_GFX_ARGS 8 /* values for image configuration suffixes */ @@ -769,24 +776,21 @@ #define GFX_ARG_XOFFSET 8 #define GFX_ARG_YOFFSET 9 #define GFX_ARG_FRAMES 10 -#define GFX_ARG_START_FRAME 11 -#define GFX_ARG_DELAY 12 -#define GFX_ARG_MODE_LOOP 13 -#define GFX_ARG_MODE_LINEAR 14 -#define GFX_ARG_MODE_PINGPONG 15 -#define GFX_ARG_MODE_PINGPONG2 16 -#define GFX_ARG_MODE_RANDOM 17 -#define GFX_ARG_MODE_REVERSE 18 -#define GFX_ARG_GLOBAL_SYNC 19 -#define GFX_ARG_STEP_OFFSET 20 -#define GFX_ARG_STEP_DELAY 21 -#define GFX_ARG_DIRECTION 22 -#define GFX_ARG_POSITION 23 -#define GFX_ARG_DRAW_XOFFSET 24 -#define GFX_ARG_DRAW_YOFFSET 25 -#define GFX_ARG_NAME 26 - -#define NUM_GFX_ARGS 27 +#define GFX_ARG_FRAMES_PER_LINE 11 +#define GFX_ARG_START_FRAME 12 +#define GFX_ARG_DELAY 13 +#define GFX_ARG_ANIM_MODE 14 +#define GFX_ARG_GLOBAL_SYNC 15 +#define GFX_ARG_STEP_OFFSET 16 +#define GFX_ARG_STEP_DELAY 17 +#define GFX_ARG_DIRECTION 18 +#define GFX_ARG_POSITION 19 +#define GFX_ARG_DRAW_XOFFSET 20 +#define GFX_ARG_DRAW_YOFFSET 21 +#define GFX_ARG_FORMAT 22 +#define GFX_ARG_NAME 23 + +#define NUM_GFX_ARGS 24 /* values for sound configuration suffixes */ @@ -801,31 +805,27 @@ #define FONT_INITIAL_2 1 #define FONT_INITIAL_3 2 #define FONT_INITIAL_4 3 -#define FONT_BIG_1 4 -#define FONT_BIG_2 5 -#define FONT_BIG_3 6 -#define FONT_BIG_4 7 -#define FONT_MEDIUM_1 8 -#define FONT_MEDIUM_2 9 -#define FONT_MEDIUM_3 10 -#define FONT_MEDIUM_4 11 -#define FONT_SMALL_1 12 -#define FONT_SMALL_2 13 -#define FONT_SMALL_3 14 -#define FONT_SMALL_4 15 -#define FONT_TAPE 16 -#define FONT_GAME 17 -#define FONT_NARROW 18 - -#define NUM_FONTS 19 +#define FONT_TITLE_1 4 +#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 12 +#define FONT_INPUT_ACTIVE 13 +#define FONT_OPTION_OFF 14 +#define FONT_OPTION_ON 15 +#define FONT_VALUE_1 16 +#define FONT_VALUE_2 17 +#define FONT_VALUE_OLD 18 +#define FONT_TAPE_RECORDER 19 +#define FONT_LEVEL_NUMBER 20 + +#define NUM_FONTS 21 #define NUM_INITIAL_FONTS 4 -#define FIRST_IMG_FONT IMG_FONT_INITIAL_1 -#define LAST_IMG_FONT IMG_FONT_NARROW - -#define NUM_IMG_FONTS (LAST_IMG_FONT - \ - FIRST_IMG_FONT + 1) - /* values for game_status */ #define EXITGAME 0 @@ -837,6 +837,8 @@ #define TYPENAME 6 #define HALLOFFAME 7 #define SETUP 8 +#define PSEUDO_PREVIEW 9 +#define PSEUDO_DOOR 10 #define PROGRAM_VERSION_MAJOR 2 #define PROGRAM_VERSION_MINOR 2 @@ -919,6 +921,7 @@ struct PlayerInfo int GfxAction; boolean use_murphy_graphic; + boolean use_disk_red_graphic; boolean Pushing; boolean Switching; @@ -1049,34 +1052,30 @@ struct GlobalInfo struct ElementInfo { - char *token_name; /* element token prefix used in config files */ + char *token_name; /* element token used in config files */ char *sound_class_name; /* classification for custom sound effects */ char *editor_description; /* short description for level editor */ char *custom_description; /* custom description for level editor */ int graphic[NUM_ACTIONS]; /* default graphics for several actions */ - int direction_graphic[NUM_ACTIONS][NUM_DIRECTIONS]; /* special graphics for left/right/up/down */ - int special_graphic[NUM_SPECIAL_GFX_ARGS]; /* special graphics for certain screens */ - int editor_graphic; /* graphic displayed in level editor */ - int preview_graphic; /* graphic displayed in level preview */ - int sound[NUM_ACTIONS]; /* default sounds for several actions */ }; -#if 0 struct FontInfo { - int graphic; /* default graphic for this font */ + char *token_name; /* font token used in config files */ + int graphic; /* default graphic for this font */ int special_graphic[NUM_SPECIAL_GFX_ARGS]; /* special graphics for certain screens */ + int special_bitmap_id[NUM_SPECIAL_GFX_ARGS]; + /* internal bitmap ID for special graphics */ }; -#endif struct GraphicInfo { @@ -1202,6 +1201,7 @@ 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 FontInfo font_info[]; extern struct GraphicInfo *graphic_info; extern struct SoundInfo *sound_info; extern struct ConfigInfo image_config[], sound_config[];