X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=e00a76ffb01938bc653ead273474e0a619d61f37;hb=e5a0a3097d6a6c3afea01b3deeee9b206982ec1d;hp=58483c61f5496183c7842682e7ee5ede414fbd28;hpb=1e5cae5e3ab889c3bcba80a065c6d7ba1e6d28a2;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 58483c61..e00a76ff 100644 --- a/src/main.h +++ b/src/main.h @@ -260,6 +260,18 @@ #define MV_NORMAL (1 << MV_BIT_NORMAL) #define MV_REVERSE (1 << MV_BIT_REVERSE) +/* values for move stepsize */ +#define STEPSIZE_NOT_MOVING 0 +#define STEPSIZE_VERY_SLOW 1 +#define STEPSIZE_SLOW 2 +#define STEPSIZE_NORMAL 4 +#define STEPSIZE_FAST 8 +#define STEPSIZE_VERY_FAST 16 +#define STEPSIZE_EVEN_FASTER 32 +#define STEPSIZE_SLOWER 50 /* (symbolic value only) */ +#define STEPSIZE_FASTER 200 /* (symbolic value only) */ +#define STEPSIZE_RESET 100 /* (symbolic value only) */ + /* values for change side for custom elements */ #define CH_SIDE_NONE MV_NONE #define CH_SIDE_LEFT MV_LEFT @@ -366,16 +378,16 @@ #define CA_ARG_ELEMENT_TRIGGER (CA_ARG_ELEMENT + 2) #define CA_ARG_ELEMENT_HEADLINE (CA_ARG_ELEMENT + 999) #define CA_ARG_SPEED 13000 -#define CA_ARG_SPEED_NOT_MOVING (CA_ARG_SPEED + 0) -#define CA_ARG_SPEED_VERY_SLOW (CA_ARG_SPEED + 1) -#define CA_ARG_SPEED_SLOW (CA_ARG_SPEED + 2) -#define CA_ARG_SPEED_NORMAL (CA_ARG_SPEED + 4) -#define CA_ARG_SPEED_FAST (CA_ARG_SPEED + 8) -#define CA_ARG_SPEED_VERY_FAST (CA_ARG_SPEED + 16) -#define CA_ARG_SPEED_EVEN_FASTER (CA_ARG_SPEED + 32) -#define CA_ARG_SPEED_SLOWER (CA_ARG_SPEED + 50) -#define CA_ARG_SPEED_FASTER (CA_ARG_SPEED + 200) -#define CA_ARG_SPEED_RESET (CA_ARG_SPEED + 100) +#define CA_ARG_SPEED_NOT_MOVING (CA_ARG_SPEED + STEPSIZE_NOT_MOVING) +#define CA_ARG_SPEED_VERY_SLOW (CA_ARG_SPEED + STEPSIZE_VERY_SLOW) +#define CA_ARG_SPEED_SLOW (CA_ARG_SPEED + STEPSIZE_SLOW) +#define CA_ARG_SPEED_NORMAL (CA_ARG_SPEED + STEPSIZE_NORMAL) +#define CA_ARG_SPEED_FAST (CA_ARG_SPEED + STEPSIZE_FAST) +#define CA_ARG_SPEED_VERY_FAST (CA_ARG_SPEED + STEPSIZE_VERY_FAST) +#define CA_ARG_SPEED_EVEN_FASTER (CA_ARG_SPEED + STEPSIZE_EVEN_FASTER) +#define CA_ARG_SPEED_SLOWER (CA_ARG_SPEED + STEPSIZE_SLOWER) +#define CA_ARG_SPEED_FASTER (CA_ARG_SPEED + STEPSIZE_FASTER) +#define CA_ARG_SPEED_RESET (CA_ARG_SPEED + STEPSIZE_RESET) #define CA_ARG_SPEED_HEADLINE (CA_ARG_SPEED + 999) #define CA_ARG_GRAVITY 14000 #define CA_ARG_GRAVITY_OFF (CA_ARG_GRAVITY + 0) @@ -1284,9 +1296,10 @@ #define EL_EMC_GATE_7_GRAY_ACTIVE (EL_FIRST_RUNTIME_REAL + 56) #define EL_EMC_GATE_8_GRAY_ACTIVE (EL_FIRST_RUNTIME_REAL + 57) #define EL_EMC_DRIPPER_ACTIVE (EL_FIRST_RUNTIME_REAL + 58) +#define EL_EMC_SPRING_BUMPER_ACTIVE (EL_FIRST_RUNTIME_REAL + 59) /* "unreal" (and therefore not drawable) runtime elements */ -#define EL_FIRST_RUNTIME_UNREAL (EL_FIRST_RUNTIME_REAL + 59) +#define EL_FIRST_RUNTIME_UNREAL (EL_FIRST_RUNTIME_REAL + 60) #define EL_BLOCKED (EL_FIRST_RUNTIME_UNREAL + 0) #define EL_EXPLOSION (EL_FIRST_RUNTIME_UNREAL + 1) @@ -1307,9 +1320,11 @@ #define EL_MAGIC_WALL_FILLING (EL_FIRST_RUNTIME_UNREAL + 16) #define EL_BD_MAGIC_WALL_FILLING (EL_FIRST_RUNTIME_UNREAL + 17) #define EL_ELEMENT_SNAPPING (EL_FIRST_RUNTIME_UNREAL + 18) +#define EL_DIAGONAL_SHRINKING (EL_FIRST_RUNTIME_UNREAL + 19) +#define EL_DIAGONAL_GROWING (EL_FIRST_RUNTIME_UNREAL + 20) /* dummy elements (never used as game elements, only used as graphics) */ -#define EL_FIRST_DUMMY (EL_FIRST_RUNTIME_UNREAL + 19) +#define EL_FIRST_DUMMY (EL_FIRST_RUNTIME_UNREAL + 21) #define EL_STEELWALL_TOPLEFT (EL_FIRST_DUMMY + 0) #define EL_STEELWALL_TOPRIGHT (EL_FIRST_DUMMY + 1) @@ -1707,6 +1722,8 @@ struct MenuInfo struct DoorInfo { + int width; + int height; int step_offset; int step_delay; int anim_mode; @@ -1922,7 +1939,8 @@ struct LevelInfo int can_move_into_acid_bits; /* bitfield to store property for elements */ int dont_collide_with_bits; /* bitfield to store property for elements */ - boolean double_speed; + int initial_player_stepsize; /* initial player speed */ + boolean initial_gravity; boolean em_slippery_gems; /* EM style "gems slip from wall" behaviour */ boolean use_spring_bug; /* for compatibility with old levels */ @@ -2143,11 +2161,11 @@ struct ElementInfo /* ---------- graphic and sound definitions ---------- */ int graphic[NUM_ACTIONS]; /* default graphics for several actions */ - int direction_graphic[NUM_ACTIONS][NUM_DIRECTIONS]; + int direction_graphic[NUM_ACTIONS][NUM_DIRECTIONS_FULL]; /* special graphics for left/right/up/down */ int crumbled[NUM_ACTIONS]; /* crumbled graphics for several actions */ - int direction_crumbled[NUM_ACTIONS][NUM_DIRECTIONS]; + int direction_crumbled[NUM_ACTIONS][NUM_DIRECTIONS_FULL]; /* crumbled graphics for left/right/up/down */ int special_graphic[NUM_SPECIAL_GFX_ARGS];