X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=4e64205b3a1ec20f734adb703f8148ef885a48aa;hb=fb8e38bdcf517d25055b236a3bb2cc1ccbf5fccc;hp=9739a87cbb032590ee8ded85d20107f2b36c7a12;hpb=5e616edfe5f101927d2ff3f7a14d2c65897de3cc;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 9739a87c..4e64205b 100644 --- a/src/main.h +++ b/src/main.h @@ -14,9 +14,6 @@ #ifndef MAIN_H #define MAIN_H -#include -#include -#include #include #include #include @@ -88,36 +85,36 @@ #define EP_CAN_EXPLODE_1X1 23 #define EP_PUSHABLE 24 +/* values for pre-defined properties */ +#define EP_PLAYER 32 +#define EP_CAN_PASS_MAGIC_WALL 33 +#define EP_SWITCHABLE 34 +#define EP_BD_ELEMENT 35 +#define EP_SP_ELEMENT 36 +#define EP_SB_ELEMENT 37 +#define EP_GEM 38 +#define EP_FOOD_DARK_YAMYAM 39 +#define EP_FOOD_PENGUIN 40 +#define EP_FOOD_PIG 41 +#define EP_HISTORIC_WALL 42 +#define EP_HISTORIC_SOLID 43 +#define EP_CLASSIC_ENEMY 44 +#define EP_BELT 45 +#define EP_BELT_ACTIVE 46 +#define EP_BELT_SWITCH 47 +#define EP_TUBE 48 +#define EP_KEYGATE 49 +#define EP_AMOEBOID 50 +#define EP_AMOEBALIVE 51 +#define EP_HAS_CONTENT 52 +#define EP_ACTIVE_BOMB 53 +#define EP_INACTIVE 54 + /* values for special configurable properties (depending on level settings) */ -#define EP_EM_SLIPPERY_WALL 32 +#define EP_EM_SLIPPERY_WALL 55 /* values for special graphics properties (no effect on game engine) */ -#define EP_CAN_BE_CRUMBLED 33 - -/* values for pre-defined properties */ -#define EP_PLAYER 34 -#define EP_CAN_PASS_MAGIC_WALL 35 -#define EP_SWITCHABLE 36 -#define EP_BD_ELEMENT 37 -#define EP_SP_ELEMENT 38 -#define EP_SB_ELEMENT 39 -#define EP_GEM 40 -#define EP_FOOD_DARK_YAMYAM 41 -#define EP_FOOD_PENGUIN 42 -#define EP_FOOD_PIG 43 -#define EP_HISTORIC_WALL 44 -#define EP_HISTORIC_SOLID 45 -#define EP_CLASSIC_ENEMY 46 -#define EP_BELT 47 -#define EP_BELT_ACTIVE 48 -#define EP_BELT_SWITCH 49 -#define EP_TUBE 50 -#define EP_KEYGATE 51 -#define EP_AMOEBOID 52 -#define EP_AMOEBALIVE 53 -#define EP_HAS_CONTENT 54 -#define EP_ACTIVE_BOMB 55 -#define EP_INACTIVE 56 +#define EP_GFX_CRUMBLED 56 /* values for derived properties (determined from properties above) */ #define EP_ACCESSIBLE_OVER 57 @@ -204,6 +201,7 @@ (CH_EVENT_VAR(e) &= ~CH_EVENT_BIT(c))) : 0) /* values for change sides for custom elements */ +#define CH_SIDE_NONE MV_NO_MOVING #define CH_SIDE_LEFT MV_LEFT #define CH_SIDE_RIGHT MV_RIGHT #define CH_SIDE_TOP MV_UP @@ -224,6 +222,7 @@ #define MV_BIT_ALONG_RIGHT_SIDE 7 #define MV_BIT_TURNING_LEFT 8 #define MV_BIT_TURNING_RIGHT 9 +#define MV_BIT_WHEN_PUSHED 10 /* values for special move patterns for custom elements */ #define MV_HORIZONTAL (MV_LEFT | MV_RIGHT) @@ -236,6 +235,7 @@ #define MV_ALONG_RIGHT_SIDE (1 << MV_BIT_ALONG_RIGHT_SIDE) #define MV_TURNING_LEFT (1 << MV_BIT_TURNING_LEFT) #define MV_TURNING_RIGHT (1 << MV_BIT_TURNING_RIGHT) +#define MV_WHEN_PUSHED (1 << MV_BIT_WHEN_PUSHED) /* values for slippery property for custom elements */ #define SLIPPERY_ANY_RANDOM 0 @@ -275,7 +275,7 @@ #define IS_EM_SLIPPERY_WALL(e) HAS_PROPERTY(e, EP_EM_SLIPPERY_WALL) /* macros for special graphics properties */ -#define CAN_BE_CRUMBLED(e) HAS_PROPERTY(GFX_ELEMENT(e),EP_CAN_BE_CRUMBLED) +#define GFX_CRUMBLED(e) HAS_PROPERTY(GFX_ELEMENT(e), EP_GFX_CRUMBLED) /* macros for pre-defined properties */ #define ELEM_IS_PLAYER(e) HAS_PROPERTY(e, EP_PLAYER) @@ -986,20 +986,24 @@ #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 FONT_ENVELOPE_1 16 +#define FONT_ENVELOPE_2 17 +#define FONT_ENVELOPE_3 18 +#define FONT_ENVELOPE_4 19 +#define FONT_INPUT_1_ACTIVE 20 +#define FONT_INPUT_2_ACTIVE 21 +#define FONT_INPUT_1 22 +#define FONT_INPUT_2 23 +#define FONT_OPTION_OFF 24 +#define FONT_OPTION_ON 25 +#define FONT_VALUE_1 26 +#define FONT_VALUE_2 27 +#define FONT_VALUE_OLD 28 +#define FONT_LEVEL_NUMBER 29 +#define FONT_TAPE_RECORDER 30 +#define FONT_GAME_INFO 31 + +#define NUM_FONTS 32 #define NUM_INITIAL_FONTS 4 /* values for game_status (must match special image configuration suffixes) */ @@ -1020,9 +1024,9 @@ #define PROGRAM_VERSION_MAJOR 3 #define PROGRAM_VERSION_MINOR 0 -#define PROGRAM_VERSION_PATCH 5 +#define PROGRAM_VERSION_PATCH 6 #define PROGRAM_VERSION_RELEASE 0 -#define PROGRAM_VERSION_STRING "3.0.5" +#define PROGRAM_VERSION_STRING "3.0.6" #define PROGRAM_TITLE_STRING "Rocks'n'Diamonds" #define PROGRAM_AUTHOR_STRING "Holger Schemel" @@ -1100,11 +1104,6 @@ struct DoorInfo int anim_mode; }; -struct EnvelopeInfo -{ - int anim_mode; -}; - struct HiScore { char Name[MAX_PLAYER_NAME_LEN + 1]; @@ -1247,7 +1246,7 @@ struct GameInfo int initial_move_delay; int initial_move_delay_value; - struct EnvelopeInfo envelope; + boolean envelope_active; /* variable within running game */ int yamyam_content_nr; @@ -1527,7 +1526,7 @@ extern struct TapeInfo tape; extern struct GameInfo game; extern struct GlobalInfo global; extern struct MenuInfo menu; -extern struct DoorInfo door; +extern struct DoorInfo door_1, door_2; extern struct ElementInfo element_info[]; extern struct ElementActionInfo element_action_info[]; extern struct ElementDirectionInfo element_direction_info[];