X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=ab26aad533650a1b19010a500a4d249185d6b184;hb=2fe139696892ee39f804b5c7315b8f0977ab01ec;hp=b10d0357c549147bd7759504fb66821cd094a1ed;hpb=d4665f01d15ba3679f378819710a84d6c2348a9c;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index b10d0357..ab26aad5 100644 --- a/src/main.h +++ b/src/main.h @@ -216,7 +216,7 @@ typedef unsigned char byte; #define MAX_TAPELEN (1000 * 50) /* max. time * framerate */ #define MAX_LEVDIR_ENTRIES 100 #define MAX_SCORE_ENTRIES 100 -#define MAX_ELEMENTS 512 +#define MAX_ELEMENTS 700 /* 500 static + 200 runtime */ #define MAX_NUM_AMOEBA 100 /* values for elements with content */ @@ -419,6 +419,9 @@ struct GameInfo boolean magic_wall_active; int magic_wall_time_left; int belt_dir[4]; + int belt_dir_nr[4]; + int switchgate_pos; + int light_time_left; }; struct GlobalInfo @@ -576,6 +579,7 @@ extern char *element_info[]; #define MICRO_GFX_PER_LINE 128 #define HEROES_PER_LINE 16 + #define MINI_SP_STARTX 0 #define MINI_SP_STARTY 352 #define MICRO_SP_STARTX 0 @@ -586,18 +590,18 @@ extern char *element_info[]; #define MINI_DC_STARTX 256 #define MINI_DC_STARTY 0 -#define MICRO_DC_STARTX 0 -#define MICRO_DC_STARTY 0 +#define MICRO_DC_STARTX 256 +#define MICRO_DC_STARTY 384 #define DC_PER_LINE 8 #define MINI_DC_PER_LINE 8 -#define MICRO_DC_PER_LINE 32 +#define MICRO_DC_PER_LINE 8 #define FONT_CHARS_PER_LINE 16 #define FONT_LINES_PER_FONT 4 /* game elements: -** 0 - 1000: real elements, stored in level file -** 1000 - 2000: flag elements, only used at runtime +** 0 - 499: real elements, stored in level file +** 500 - 699: flag elements, only used at runtime */ /* "real" level elements */ #define EL_LEERRAUM 0 @@ -850,8 +854,8 @@ extern char *element_info[]; #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 @@ -880,55 +884,58 @@ 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 /* "real" (and therefore drawable) runtime elements */ -#define EL_SIEB_LEER 1000 -#define EL_SIEB2_LEER 1001 -#define EL_SIEB_VOLL 1002 -#define EL_SIEB2_VOLL 1003 -#define EL_SIEB_TOT 1004 -#define EL_SIEB2_TOT 1005 -#define EL_AUSGANG_ACT 1006 -#define EL_SP_TERMINAL_ACTIVE 1007 -#define EL_SP_BUG_ACTIVE 1008 -#define EL_EM_KEY_1 1009 -#define EL_EM_KEY_2 1010 -#define EL_EM_KEY_3 1011 -#define EL_EM_KEY_4 1012 -#define EL_DYNABOMB_ACTIVE_1 1013 -#define EL_DYNABOMB_ACTIVE_2 1014 -#define EL_DYNABOMB_ACTIVE_3 1015 -#define EL_DYNABOMB_ACTIVE_4 1016 +#define EL_SIEB_LEER 500 +#define EL_SIEB2_LEER 501 +#define EL_SIEB_VOLL 502 +#define EL_SIEB2_VOLL 503 +#define EL_SIEB_TOT 504 +#define EL_SIEB2_TOT 505 +#define EL_AUSGANG_ACT 506 +#define EL_SP_TERMINAL_ACTIVE 507 +#define EL_SP_BUG_ACTIVE 508 +#define EL_EM_KEY_1 509 +#define EL_EM_KEY_2 510 +#define EL_EM_KEY_3 511 +#define EL_EM_KEY_4 512 +#define EL_DYNABOMB_ACTIVE_1 513 +#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 2000 -#define EL_EXPLODING 2001 -#define EL_CRACKINGNUT 2002 -#define EL_BLURB_LEFT 2003 -#define EL_BLURB_RIGHT 2004 -#define EL_AMOEBING 2005 -#define EL_MAUERND 2006 -#define EL_BURNING 2007 -#define EL_PLAYER_IS_LEAVING 2008 +#define EL_BLOCKED 600 +#define EL_EXPLODING 601 +#define EL_CRACKINGNUT 602 +#define EL_BLURB_LEFT 603 +#define EL_BLURB_RIGHT 604 +#define EL_AMOEBING 605 +#define EL_MAUERND 606 +#define EL_BURNING 607 +#define EL_PLAYER_IS_LEAVING 608 /* game graphics: ** 0 - 255: graphics from "RocksScreen" @@ -1228,8 +1235,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) @@ -1295,6 +1307,19 @@ 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) + /* graphics from "RocksFont" */ #define GFX_CHAR_START (GFX_START_ROCKSFONT) #define GFX_CHAR_ASCII0 (GFX_CHAR_START - 32) @@ -1337,46 +1362,9 @@ extern char *element_info[]; #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 @@ -1390,8 +1378,6 @@ 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 /* the names of the sounds */ #define SND_ALCHEMY 0