X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Finit.c;h=8c574f39263e176144a1f4ad48daa0273239adb0;hb=c956237d7c5507aea649ce7b20c00d7bd9d37a7a;hp=5a16867bac61e49d7ca9ed0949a60231fe75590c;hpb=72e44014938c9042261b67213a6cd37b7a17488f;p=rocksndiamonds.git diff --git a/src/init.c b/src/init.c index 5a16867b..8c574f39 100644 --- a/src/init.c +++ b/src/init.c @@ -1101,16 +1101,7 @@ void InitElementProperties() -1 }; - static int ep_can_be_crumbled[] = - { - EL_SAND, - EL_LANDMINE, - EL_TRAP, - EL_TRAP_ACTIVE, - -1 - }; - - static int ep_pforte[] = + static int ep_keygate[] = { EL_GATE_1, EL_GATE_2, @@ -1128,29 +1119,19 @@ void InitElementProperties() EL_EM_GATE_2_GRAY, EL_EM_GATE_3_GRAY, EL_EM_GATE_4_GRAY, - EL_SWITCHGATE_OPEN, - EL_SWITCHGATE_OPENING, - EL_SWITCHGATE_CLOSED, - EL_SWITCHGATE_CLOSING, - EL_TIMEGATE_OPEN, - EL_TIMEGATE_OPENING, - EL_TIMEGATE_CLOSED, - EL_TIMEGATE_CLOSING, - EL_TUBE_ANY, - EL_TUBE_VERTICAL, - EL_TUBE_HORIZONTAL, - EL_TUBE_VERTICAL_LEFT, - EL_TUBE_VERTICAL_RIGHT, - EL_TUBE_HORIZONTAL_UP, - EL_TUBE_HORIZONTAL_DOWN, - EL_TUBE_LEFT_UP, - EL_TUBE_LEFT_DOWN, - EL_TUBE_RIGHT_UP, - EL_TUBE_RIGHT_DOWN, -1 }; - static int ep_solid[] = + static int ep_can_be_crumbled[] = + { + EL_SAND, + EL_LANDMINE, + EL_TRAP, + EL_TRAP_ACTIVE, + -1 + }; + + static int ep_historic_solid[] = { EL_WALL, EL_EXPANDABLE_WALL, @@ -1449,7 +1430,7 @@ void InitElementProperties() -1 }; - static int ep_mauer[] = + static int ep_historic_wall[] = { EL_STEELWALL, EL_GATE_1, @@ -1952,8 +1933,6 @@ void InitElementProperties() EL_SOKOBAN_FIELD_EMPTY, EL_EXIT_OPEN, EL_SP_EXIT_OPEN, -#if 1 - /* !!! CHANGE THIS TO "EL_GATE_1_OPEN" etc. !!! */ EL_GATE_1, EL_GATE_2, EL_GATE_3, @@ -1962,7 +1941,6 @@ void InitElementProperties() EL_GATE_2_GRAY, EL_GATE_3_GRAY, EL_GATE_4_GRAY, -#endif -1 }; @@ -2032,8 +2010,9 @@ void InitElementProperties() EL_TRAP, EL_INVISIBLE_SAND, EL_INVISIBLE_SAND_ACTIVE, -#if 0 +#if 1 EL_LANDMINE, + EL_TRAP_ACTIVE, EL_SP_BUGGY_BASE_ACTIVE, #endif -1 @@ -2218,13 +2197,13 @@ void InitElementProperties() { { ep_amoebalive, EP_AMOEBALIVE }, { ep_amoeboid, EP_AMOEBOID }, + { ep_keygate, EP_KEYGATE }, { ep_can_be_crumbled, EP_CAN_BE_CRUMBLED }, - { ep_pforte, EP_PFORTE }, - { ep_solid, EP_SOLID }, + { ep_historic_solid, EP_HISTORIC_SOLID }, { ep_indestructible, EP_INDESTRUCTIBLE }, { ep_slippery, EP_SLIPPERY }, { ep_enemy, EP_ENEMY }, - { ep_mauer, EP_MAUER }, + { ep_historic_wall, EP_HISTORIC_WALL }, { ep_can_fall, EP_CAN_FALL }, { ep_can_smash, EP_CAN_SMASH }, { ep_can_change, EP_CAN_CHANGE }, @@ -2295,6 +2274,32 @@ void InitElementProperties() }; #endif + static int no_wall_properties[] = + { + EP_AMOEBALIVE, + EP_AMOEBOID, + EP_CAN_BE_CRUMBLED, + EP_ENEMY, + EP_CAN_FALL, + EP_CAN_SMASH, + EP_CAN_MOVE, + EP_COULD_MOVE, + EP_DONT_GO_TO, + EP_FOOD_DARK_YAMYAM, + EP_GEM, + EP_FOOD_PENGUIN, + EP_PUSHABLE, + EP_PLAYER, + EP_ACCESSIBLE, + EP_DIGGABLE, + EP_COLLECTIBLE, + EP_ACTIVE_BOMB, + EP_BELT, + EP_BELT_ACTIVE, + EP_TUBE, + -1 + }; + /* always start with reliable default values (no properties) */ for (i=0; i= EL_FIRST_RUNTIME_UNREAL) + SET_PROPERTY(i, EP_WALL, FALSE); + + if (IS_HISTORIC_WALL(i)) + SET_PROPERTY(i, EP_WALL, TRUE); + +#if 0 + printf("::: %d: %s '%s'\n", + i, + (IS_WALL(i) ? "IS A WALL: " : "IS NOT A WALL:"), + element_info[i].token_name); +#endif + } + #if 0 /* determine inactive elements (used for engine main loop optimization) */ for (i=0; i < MAX_NUM_ELEMENTS; i++) @@ -2350,27 +2377,6 @@ void InitElementProperties() #endif } #endif - -#if 0 - for (i=0; i < MAX_NUM_ELEMENTS; i++) - { - boolean element_is_solid = TRUE; - - if (IS_DIGGABLE(i) || - IS_COLLECTIBLE(i) || - CAN_FALL(i) || - CAN_MOVE(i) || - IS_PUSHABLE(i)) - element_is_solid = FALSE; - - if (IS_INDESTRUCTIBLE(i)) - element_is_solid = TRUE; - - if (element_is_solid != HAS_PROPERTY(i, EP_SOLID)) - printf("::: '%s' should %s solid\n", element_info[i].token_name, - (HAS_PROPERTY(i, EP_SOLID) ? "NOT be" : "be")); - } -#endif } static void InitGlobal()