X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Finit.c;h=c41f8c7626545b1c2c7ab7ca01178417a5734f8b;hb=5b0dc92b2f5aba6cebec2c334728a4d17a3d75df;hp=dcd822443f976931102c8c6d8c6ef5af084207b4;hpb=0c27626bae90cb1eeea4939de0130a49b9aac507;p=rocksndiamonds.git diff --git a/src/init.c b/src/init.c index dcd82244..c41f8c76 100644 --- a/src/init.c +++ b/src/init.c @@ -480,7 +480,8 @@ void InitGfx() { "Door", TRUE }, { "Heroes", TRUE }, { "Toons", TRUE }, - { "More", TRUE }, + { "SP", TRUE }, + { "DC", TRUE }, { "Font", FALSE }, { "Font2", FALSE } }; @@ -491,7 +492,8 @@ void InitGfx() { "RocksDoor", TRUE }, { "RocksHeroes", TRUE }, { "RocksToons", TRUE }, - { "RocksMore", TRUE }, + { "RocksSP", TRUE }, + { "RocksDC", TRUE }, { "RocksFont", FALSE }, { "RocksFont2", FALSE } }; @@ -559,6 +561,8 @@ void InitGfx() { GFX_SOKOBAN_OBJEKT, 1 }, { GFX_FUNKELN_BLAU, 3 }, { GFX_FUNKELN_WEISS, 3 }, + { GFX2_SHIELD_PASSIVE, 3 }, + { GFX2_SHIELD_ACTIVE, 3 }, { -1, 0 } }; @@ -868,7 +872,11 @@ void InitElementProperties() EL_EM_GATE_1X, EL_EM_GATE_2X, EL_EM_GATE_3X, - EL_EM_GATE_4X + EL_EM_GATE_4X, + EL_SWITCHGATE_OPEN, + EL_SWITCHGATE_CLOSED, + EL_TIMEGATE_OPEN, + EL_TIMEGATE_CLOSED }; static int ep_pforte_num = sizeof(ep_pforte)/sizeof(int); @@ -924,7 +932,38 @@ void InitElementProperties() EL_SP_HARD_BASE6, EL_SP_TERMINAL, EL_SP_EXIT, - EL_INVISIBLE_STEEL + EL_INVISIBLE_STEEL, + EL_BELT1_SWITCH_LEFT, + EL_BELT1_SWITCH_MIDDLE, + EL_BELT1_SWITCH_RIGHT, + EL_BELT2_SWITCH_LEFT, + EL_BELT2_SWITCH_MIDDLE, + EL_BELT2_SWITCH_RIGHT, + EL_BELT3_SWITCH_LEFT, + EL_BELT3_SWITCH_MIDDLE, + EL_BELT3_SWITCH_RIGHT, + EL_BELT4_SWITCH_LEFT, + EL_BELT4_SWITCH_MIDDLE, + EL_BELT4_SWITCH_RIGHT, + EL_SWITCHGATE_SWITCH_1, + EL_SWITCHGATE_SWITCH_2, + EL_LIGHT_SWITCH_OFF, + EL_LIGHT_SWITCH_ON, + EL_TIMEGATE_SWITCH_OFF, + EL_TIMEGATE_SWITCH_ON, + EL_SIGN_EXCLAMATION, + EL_SIGN_RADIOACTIVITY, + EL_SIGN_STOP, + EL_SIGN_WHEELCHAIR, + EL_SIGN_PARKING, + EL_SIGN_ONEWAY, + EL_SIGN_HEART, + EL_SIGN_TRIANGLE, + EL_SIGN_ROUND, + EL_SIGN_EXIT, + EL_SIGN_YINYANG, + EL_SIGN_OTHER, + EL_STEEL_SLANTED }; static int ep_solid_num = sizeof(ep_solid)/sizeof(int); @@ -953,6 +992,10 @@ void InitElementProperties() EL_EM_GATE_2X, EL_EM_GATE_3X, EL_EM_GATE_4X, + EL_SWITCHGATE_OPEN, + EL_SWITCHGATE_CLOSED, + EL_TIMEGATE_OPEN, + EL_TIMEGATE_CLOSED, EL_SP_HARD_GRAY, EL_SP_HARD_GREEN, EL_SP_HARD_BLUE, @@ -964,7 +1007,34 @@ void InitElementProperties() EL_SP_HARD_BASE4, EL_SP_HARD_BASE5, EL_SP_HARD_BASE6, - EL_INVISIBLE_STEEL + EL_INVISIBLE_STEEL, + EL_BELT1_SWITCH_LEFT, + EL_BELT1_SWITCH_MIDDLE, + EL_BELT1_SWITCH_RIGHT, + EL_BELT2_SWITCH_LEFT, + EL_BELT2_SWITCH_MIDDLE, + EL_BELT2_SWITCH_RIGHT, + EL_BELT3_SWITCH_LEFT, + EL_BELT3_SWITCH_MIDDLE, + EL_BELT3_SWITCH_RIGHT, + EL_BELT4_SWITCH_LEFT, + EL_BELT4_SWITCH_MIDDLE, + EL_BELT4_SWITCH_RIGHT, + EL_LIGHT_SWITCH_OFF, + EL_LIGHT_SWITCH_ON, + EL_SIGN_EXCLAMATION, + EL_SIGN_RADIOACTIVITY, + EL_SIGN_STOP, + EL_SIGN_WHEELCHAIR, + EL_SIGN_PARKING, + EL_SIGN_ONEWAY, + EL_SIGN_HEART, + EL_SIGN_TRIANGLE, + EL_SIGN_ROUND, + EL_SIGN_EXIT, + EL_SIGN_YINYANG, + EL_SIGN_OTHER, + EL_STEEL_SLANTED }; static int ep_massive_num = sizeof(ep_massive)/sizeof(int); @@ -996,7 +1066,8 @@ void InitElementProperties() EL_SP_CHIP_RIGHT, EL_SP_CHIP_UPPER, EL_SP_CHIP_LOWER, - EL_SPEED_PILL + EL_SPEED_PILL, + EL_STEEL_SLANTED }; static int ep_slippery_num = sizeof(ep_slippery)/sizeof(int); @@ -1062,7 +1133,8 @@ void InitElementProperties() EL_SP_HARD_BASE6, EL_SP_TERMINAL, EL_SP_EXIT, - EL_INVISIBLE_STEEL + EL_INVISIBLE_STEEL, + EL_STEEL_SLANTED }; static int ep_mauer_num = sizeof(ep_mauer)/sizeof(int); @@ -1139,7 +1211,7 @@ void InitElementProperties() EL_MAMPFER2, EL_ROBOT, EL_PACMAN, - EL_MAULWURF, + EL_MOLE, EL_PINGUIN, EL_SCHWEIN, EL_DRACHE, @@ -1151,26 +1223,26 @@ void InitElementProperties() static int ep_could_move[] = { - EL_KAEFER_R, - EL_KAEFER_O, - EL_KAEFER_L, - EL_KAEFER_U, - EL_FLIEGER_R, - EL_FLIEGER_O, - EL_FLIEGER_L, - EL_FLIEGER_U, - EL_BUTTERFLY_R, - EL_BUTTERFLY_O, - EL_BUTTERFLY_L, - EL_BUTTERFLY_U, - EL_FIREFLY_R, - EL_FIREFLY_O, - EL_FIREFLY_L, - EL_FIREFLY_U, - EL_PACMAN_R, - EL_PACMAN_O, - EL_PACMAN_L, - EL_PACMAN_U + EL_KAEFER_RIGHT, + EL_KAEFER_UP, + EL_KAEFER_LEFT, + EL_KAEFER_DOWN, + EL_FLIEGER_RIGHT, + EL_FLIEGER_UP, + EL_FLIEGER_LEFT, + EL_FLIEGER_DOWN, + EL_BUTTERFLY_RIGHT, + EL_BUTTERFLY_UP, + EL_BUTTERFLY_LEFT, + EL_BUTTERFLY_DOWN, + EL_FIREFLY_RIGHT, + EL_FIREFLY_UP, + EL_FIREFLY_LEFT, + EL_FIREFLY_DOWN, + EL_PACMAN_RIGHT, + EL_PACMAN_UP, + EL_PACMAN_LEFT, + EL_PACMAN_DOWN }; static int ep_could_move_num = sizeof(ep_could_move)/sizeof(int); @@ -1197,7 +1269,8 @@ void InitElementProperties() EL_SALZSAEURE, EL_SP_SNIKSNAK, EL_SP_ELECTRON, - EL_SP_BUG_ACTIVE + EL_SP_BUG_ACTIVE, + EL_LANDMINE }; static int ep_dont_go_to_num = sizeof(ep_dont_go_to)/sizeof(int); @@ -1372,7 +1445,32 @@ void InitElementProperties() EL_SP_HARD_BASE5, EL_SP_HARD_BASE6, EL_SP_EXIT, - EL_INVISIBLE_STEEL + EL_INVISIBLE_STEEL, + EL_BELT1_SWITCH_LEFT, + EL_BELT1_SWITCH_MIDDLE, + EL_BELT1_SWITCH_RIGHT, + EL_BELT2_SWITCH_LEFT, + EL_BELT2_SWITCH_MIDDLE, + EL_BELT2_SWITCH_RIGHT, + EL_BELT3_SWITCH_LEFT, + EL_BELT3_SWITCH_MIDDLE, + EL_BELT3_SWITCH_RIGHT, + EL_BELT4_SWITCH_LEFT, + EL_BELT4_SWITCH_MIDDLE, + EL_BELT4_SWITCH_RIGHT, + EL_SIGN_EXCLAMATION, + EL_SIGN_RADIOACTIVITY, + EL_SIGN_STOP, + EL_SIGN_WHEELCHAIR, + EL_SIGN_PARKING, + EL_SIGN_ONEWAY, + EL_SIGN_HEART, + EL_SIGN_TRIANGLE, + EL_SIGN_ROUND, + EL_SIGN_EXIT, + EL_SIGN_YINYANG, + EL_SIGN_OTHER, + EL_STEEL_SLANTED }; static int ep_inactive_num = sizeof(ep_inactive)/sizeof(int); @@ -1389,7 +1487,7 @@ void InitElementProperties() EL_DYNABOMB_SZ, EL_DYNABOMB_XL, EL_KAEFER, - EL_MAULWURF, + EL_MOLE, EL_PINGUIN, EL_SCHWEIN, EL_DRACHE, @@ -1452,7 +1550,8 @@ void InitElementProperties() { EL_ERDREICH, EL_SP_BASE, - EL_SP_BUG + EL_SP_BUG, + EL_SAND_INVISIBLE }; static int ep_eatable_num = sizeof(ep_eatable)/sizeof(int); @@ -1497,7 +1596,9 @@ void InitElementProperties() EL_SP_HARD_BASE5, EL_SP_HARD_BASE6, EL_SP_CHIP_UPPER, - EL_SP_CHIP_LOWER + EL_SP_CHIP_LOWER, + /* additional elements that appeared in newer Supaplex levels */ + EL_UNSICHTBAR }; static int ep_sp_element_num = sizeof(ep_sp_element)/sizeof(int); @@ -1521,7 +1622,9 @@ void InitElementProperties() EL_SP_PORT2_DOWN, EL_SP_PORT_X, EL_SP_PORT_Y, - EL_SP_PORT_XY + EL_SP_PORT_XY, + EL_SWITCHGATE_OPEN, + EL_TIMEGATE_OPEN }; static int ep_quick_gate_num = sizeof(ep_quick_gate)/sizeof(int); @@ -1551,7 +1654,41 @@ void InitElementProperties() }; static int ep_active_bomb_num = sizeof(ep_active_bomb)/sizeof(int); - static long ep_bit[] = + static int ep_belt[] = + { + EL_BELT1_LEFT, + EL_BELT1_MIDDLE, + EL_BELT1_RIGHT, + EL_BELT2_LEFT, + EL_BELT2_MIDDLE, + EL_BELT2_RIGHT, + EL_BELT3_LEFT, + EL_BELT3_MIDDLE, + EL_BELT3_RIGHT, + EL_BELT4_LEFT, + EL_BELT4_MIDDLE, + EL_BELT4_RIGHT, + }; + static int ep_belt_num = sizeof(ep_belt)/sizeof(int); + + static int ep_belt_switch[] = + { + EL_BELT1_SWITCH_LEFT, + EL_BELT1_SWITCH_MIDDLE, + EL_BELT1_SWITCH_RIGHT, + EL_BELT2_SWITCH_LEFT, + EL_BELT2_SWITCH_MIDDLE, + EL_BELT2_SWITCH_RIGHT, + EL_BELT3_SWITCH_LEFT, + EL_BELT3_SWITCH_MIDDLE, + EL_BELT3_SWITCH_RIGHT, + EL_BELT4_SWITCH_LEFT, + EL_BELT4_SWITCH_MIDDLE, + EL_BELT4_SWITCH_RIGHT, + }; + static int ep_belt_switch_num = sizeof(ep_belt_switch)/sizeof(int); + + static long ep1_bit[] = { EP_BIT_AMOEBALIVE, EP_BIT_AMOEBOID, @@ -1585,7 +1722,12 @@ void InitElementProperties() EP_BIT_OVER_PLAYER, EP_BIT_ACTIVE_BOMB }; - static int *ep_array[] = + static long ep2_bit[] = + { + EP_BIT_BELT, + EP_BIT_BELT_SWITCH + }; + static int *ep1_array[] = { ep_amoebalive, ep_amoeboid, @@ -1619,7 +1761,12 @@ void InitElementProperties() ep_over_player, ep_active_bomb }; - static int *ep_num[] = + static int *ep2_array[] = + { + ep_belt, + ep_belt_switch + }; + static int *ep1_num[] = { &ep_amoebalive_num, &ep_amoeboid_num, @@ -1653,16 +1800,29 @@ void InitElementProperties() &ep_over_player_num, &ep_active_bomb_num }; - static int num_properties = sizeof(ep_num)/sizeof(int *); + static int *ep2_num[] = + { + &ep_belt_num, + &ep_belt_switch_num + }; + static int num_properties1 = sizeof(ep1_num)/sizeof(int *); + static int num_properties2 = sizeof(ep2_num)/sizeof(int *); for(i=0; i