X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=9ae8be8755859d1db69733f117162c43f50ae2e8;hb=0a4bbe85a69ae2fc05d05c2e1fee44f2b1c44134;hp=72528fa688af21c1994980d20ba0aa3f9631a584;hpb=12d604d7378a05f91df4b061195a9943f2214da8;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 72528fa6..9ae8be87 100644 --- a/src/main.h +++ b/src/main.h @@ -191,6 +191,7 @@ typedef unsigned char byte; #define TAPE_IS_STOPPED(x) (!(x).recording && !(x).playing &&!(x).pausing) #define PLAYERINFO(x,y) (&stored_player[StorePlayer[x][y]-EL_SPIELER1]) +#define FORCE_FIELD_ON(p) ((p)->force_field_passive_time_left > 0) /* Pixmaps with graphic file */ #define PIX_BACK 0 @@ -353,6 +354,8 @@ struct PlayerInfo int key[4]; int dynamite; int dynabomb_count, dynabomb_size, dynabombs_left, dynabomb_xl; + int force_field_passive_time_left; + int force_field_active_time_left; }; struct LevelInfo @@ -420,6 +423,8 @@ struct GameInfo int magic_wall_time_left; int belt_dir[4]; int belt_dir_nr[4]; + int switchgate_pos; + int light_time_left; }; struct GlobalInfo @@ -587,12 +592,12 @@ extern char *element_info[]; #define MICRO_SP_PER_LINE 64 #define MINI_DC_STARTX 256 -#define MINI_DC_STARTY 0 -#define MICRO_DC_STARTX 256 +#define MINI_DC_STARTY 256 +#define MICRO_DC_STARTX 384 #define MICRO_DC_STARTY 384 -#define DC_PER_LINE 8 -#define MINI_DC_PER_LINE 8 -#define MICRO_DC_PER_LINE 8 +#define DC_PER_LINE 16 +#define MINI_DC_PER_LINE 16 +#define MICRO_DC_PER_LINE 16 #define FONT_CHARS_PER_LINE 16 #define FONT_LINES_PER_FONT 4 @@ -848,12 +853,12 @@ extern char *element_info[]; #define EL_DOOR_WHITE 260 #define EL_DOOR_WHITE_GRAY 261 #define EL_KEY_WHITE 262 -#define EL_FORCE_FIELD 263 +#define EL_FORCE_FIELD_PASSIVE 263 #define EL_EXTRA_TIME 264 #define EL_SWITCHGATE_OPEN 265 #define EL_SWITCHGATE_CLOSED 266 -#define EL_SWITCHGATE_SWITCH_L 267 -#define EL_SWITCHGATE_SWITCH_R 268 +#define EL_SWITCHGATE_SWITCH_1 267 +#define EL_SWITCHGATE_SWITCH_2 268 #define EL_TIME_GATE 269 #define EL_TIME_GATE_WHEEL 270 #define EL_BELT1_LEFT 271 @@ -882,25 +887,31 @@ extern char *element_info[]; #define EL_BELT4_SWITCH_R 294 #define EL_LANDMINE 295 #define EL_ENVELOPE 296 -#define EL_LIGHT_SWITCH 297 -#define EL_SIGN_EXCLAMATION 298 -#define EL_SIGN_RADIOACTIVITY 299 -#define EL_SIGN_STOP 300 -#define EL_SIGN_WHEELCHAIR 301 -#define EL_SIGN_PARKING 302 -#define EL_SIGN_ONEWAY 303 -#define EL_SIGN_HEART 304 -#define EL_SIGN_TRIANGLE 305 -#define EL_SIGN_ROUND 306 -#define EL_SIGN_EXIT 307 -#define EL_SIGN_YINYANG 308 -#define EL_SIGN_OTHER 309 -#define EL_MOLE_LEFT 310 -#define EL_MOLE_RIGHT 311 -#define EL_MOLE_UP 312 -#define EL_MOLE_DOWN 313 -#define EL_STEEL_SLANTED 314 -#define EL_SAND_INVISIBLE 315 +#define EL_LIGHT_SWITCH_OFF 297 +#define EL_LIGHT_SWITCH_ON 298 +#define EL_SIGN_EXCLAMATION 299 +#define EL_SIGN_RADIOACTIVITY 300 +#define EL_SIGN_STOP 301 +#define EL_SIGN_WHEELCHAIR 302 +#define EL_SIGN_PARKING 303 +#define EL_SIGN_ONEWAY 304 +#define EL_SIGN_HEART 305 +#define EL_SIGN_TRIANGLE 306 +#define EL_SIGN_ROUND 307 +#define EL_SIGN_EXIT 308 +#define EL_SIGN_YINYANG 309 +#define EL_SIGN_OTHER 310 +#define EL_MOLE_LEFT 311 +#define EL_MOLE_RIGHT 312 +#define EL_MOLE_UP 313 +#define EL_MOLE_DOWN 314 +#define EL_STEEL_SLANTED 315 +#define EL_SAND_INVISIBLE 316 +#define EL_DX_UNKNOWN_15 317 +#define EL_DX_UNKNOWN_42 318 +#define EL_DX_UNKNOWN_229 319 +#define EL_DX_UNKNOWN_233 320 +#define EL_FORCE_FIELD_ACTIVE 321 /* "real" (and therefore drawable) runtime elements */ #define EL_SIEB_LEER 500 @@ -920,6 +931,8 @@ extern char *element_info[]; #define EL_DYNABOMB_ACTIVE_2 514 #define EL_DYNABOMB_ACTIVE_3 515 #define EL_DYNABOMB_ACTIVE_4 516 +#define EL_SWITCHGATE_OPENING 517 +#define EL_SWITCHGATE_CLOSING 518 /* "unreal" (and therefore not drawable) runtime elements */ #define EL_BLOCKED 600 @@ -1230,8 +1243,13 @@ extern char *element_info[]; #define GFX_SP_CHIP_UPPER (GFX_START_ROCKSSP + 4 * SP_PER_LINE + 6) #define GFX_SP_CHIP_LOWER (GFX_START_ROCKSSP + 4 * SP_PER_LINE + 7) +#define GFX_INVISIBLE_STEEL_ON (GFX_START_ROCKSSP + 5 * SP_PER_LINE + 1) +#define GFX_SAND_INVISIBLE_ON (GFX_START_ROCKSSP + 5 * SP_PER_LINE + 2) #define GFX_INVISIBLE_STEEL (GFX_START_ROCKSSP + 5 * SP_PER_LINE + 3) +#define GFX_UNSICHTBAR_ON (GFX_START_ROCKSSP + 5 * SP_PER_LINE + 5) +#define GFX_SAND_INVISIBLE (GFX_START_ROCKSSP + 5 * SP_PER_LINE + 6) #define GFX_UNSICHTBAR (GFX_START_ROCKSSP + 5 * SP_PER_LINE + 7) + #define GFX_SP_ZONK (GFX_START_ROCKSSP + 6 * SP_PER_LINE + 0) #define GFX_EM_KEY_1 (GFX_START_ROCKSSP + 6 * SP_PER_LINE + 4) @@ -1297,6 +1315,23 @@ extern char *element_info[]; #define GFX_BELT3_SWITCH_R (GFX_START_ROCKSDC + 14 * DC_PER_LINE + 2) #define GFX_BELT4_SWITCH_R (GFX_START_ROCKSDC + 14 * DC_PER_LINE + 3) +#define GFX_SWITCHGATE_OPEN (GFX_START_ROCKSDC + 15 * DC_PER_LINE + 4) +#define GFX_SWITCHGATE_CLOSED (GFX_START_ROCKSDC + 15 * DC_PER_LINE + 0) +#define GFX_SWITCHGATE_SWITCH_1 (GFX_START_ROCKSDC + 12 * DC_PER_LINE + 4) +#define GFX_SWITCHGATE_SWITCH_2 (GFX_START_ROCKSDC + 12 * DC_PER_LINE + 5) +#define GFX_LIGHT_SWITCH_OFF (GFX_START_ROCKSDC + 12 * DC_PER_LINE + 6) +#define GFX_LIGHT_SWITCH_ON (GFX_START_ROCKSDC + 12 * DC_PER_LINE + 7) + +#define GFX_ENVELOPE (GFX_START_ROCKSDC + 14 * DC_PER_LINE + 4) +#define GFX_SIGN_EXCLAMATION (GFX_START_ROCKSDC + 14 * DC_PER_LINE + 5) +#define GFX_SIGN_STOP (GFX_START_ROCKSDC + 14 * DC_PER_LINE + 6) +#define GFX_LANDMINE (GFX_START_ROCKSDC + 14 * DC_PER_LINE + 7) +#define GFX_STEEL_SLANTED (GFX_START_ROCKSDC + 15 * DC_PER_LINE + 5) + +#define GFX_EXTRA_TIME (GFX_START_ROCKSDC + 0 * DC_PER_LINE + 8) +#define GFX_FORCE_FIELD_PASSIVE (GFX_START_ROCKSDC + 1 * DC_PER_LINE + 8) +#define GFX_FORCE_FIELD_ACTIVE (GFX_START_ROCKSDC + 1 * DC_PER_LINE + 8) + /* graphics from "RocksFont" */ #define GFX_CHAR_START (GFX_START_ROCKSFONT) #define GFX_CHAR_ASCII0 (GFX_CHAR_START - 32) @@ -1337,48 +1372,9 @@ extern char *element_info[]; #define GFX_DOOR_WHITE GFX_CHAR_FRAGE #define GFX_DOOR_WHITE_GRAY GFX_CHAR_FRAGE #define GFX_KEY_WHITE GFX_CHAR_FRAGE -#define GFX_FORCE_FIELD GFX_CHAR_FRAGE -#define GFX_EXTRA_TIME GFX_CHAR_FRAGE -#define GFX_SWITCHGATE_OPEN GFX_CHAR_FRAGE -#define GFX_SWITCHGATE_CLOSED GFX_CHAR_FRAGE -#define GFX_SWITCHGATE_SWITCH_L GFX_CHAR_FRAGE -#define GFX_SWITCHGATE_SWITCH_R GFX_CHAR_FRAGE #define GFX_TIME_GATE GFX_CHAR_FRAGE #define GFX_TIME_GATE_WHEEL GFX_CHAR_FRAGE - -/* -#define GFX_BELT1_LEFT GFX_CHAR_FRAGE -#define GFX_BELT1_MIDDLE GFX_CHAR_FRAGE -#define GFX_BELT1_RIGHT GFX_CHAR_FRAGE -#define GFX_BELT1_SWITCH_L GFX_CHAR_FRAGE -#define GFX_BELT1_SWITCH_M GFX_CHAR_FRAGE -#define GFX_BELT1_SWITCH_R GFX_CHAR_FRAGE -#define GFX_BELT2_LEFT GFX_CHAR_FRAGE -#define GFX_BELT2_MIDDLE GFX_CHAR_FRAGE -#define GFX_BELT2_RIGHT GFX_CHAR_FRAGE -#define GFX_BELT2_SWITCH_L GFX_CHAR_FRAGE -#define GFX_BELT2_SWITCH_M GFX_CHAR_FRAGE -#define GFX_BELT2_SWITCH_R GFX_CHAR_FRAGE -#define GFX_BELT3_LEFT GFX_CHAR_FRAGE -#define GFX_BELT3_MIDDLE GFX_CHAR_FRAGE -#define GFX_BELT3_RIGHT GFX_CHAR_FRAGE -#define GFX_BELT3_SWITCH_L GFX_CHAR_FRAGE -#define GFX_BELT3_SWITCH_M GFX_CHAR_FRAGE -#define GFX_BELT3_SWITCH_R GFX_CHAR_FRAGE -#define GFX_BELT4_LEFT GFX_CHAR_FRAGE -#define GFX_BELT4_MIDDLE GFX_CHAR_FRAGE -#define GFX_BELT4_RIGHT GFX_CHAR_FRAGE -#define GFX_BELT4_SWITCH_L GFX_CHAR_FRAGE -#define GFX_BELT4_SWITCH_M GFX_CHAR_FRAGE -#define GFX_BELT4_SWITCH_R GFX_CHAR_FRAGE -*/ - -#define GFX_LANDMINE GFX_CHAR_FRAGE -#define GFX_ENVELOPE GFX_CHAR_FRAGE -#define GFX_LIGHT_SWITCH GFX_CHAR_FRAGE -#define GFX_SIGN_EXCLAMATION GFX_CHAR_FRAGE #define GFX_SIGN_RADIOACTIVITY GFX_CHAR_FRAGE -#define GFX_SIGN_STOP GFX_CHAR_FRAGE #define GFX_SIGN_WHEELCHAIR GFX_CHAR_FRAGE #define GFX_SIGN_PARKING GFX_CHAR_FRAGE #define GFX_SIGN_ONEWAY GFX_CHAR_FRAGE @@ -1392,8 +1388,10 @@ extern char *element_info[]; #define GFX_MOLE_RIGHT GFX_CHAR_FRAGE #define GFX_MOLE_UP GFX_CHAR_FRAGE #define GFX_MOLE_DOWN GFX_CHAR_FRAGE -#define GFX_STEEL_SLANTED GFX_CHAR_FRAGE -#define GFX_SAND_INVISIBLE GFX_CHAR_FRAGE +#define GFX_DX_UNKNOWN_15 GFX_CHAR_FRAGE +#define GFX_DX_UNKNOWN_42 GFX_CHAR_FRAGE +#define GFX_DX_UNKNOWN_229 GFX_CHAR_FRAGE +#define GFX_DX_UNKNOWN_233 GFX_CHAR_FRAGE /* the names of the sounds */ #define SND_ALCHEMY 0