X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Finit.c;h=d800de9f61c72d4a5cd0cf676fc1eda09692d1dd;hb=9091c797c4a3abb34ceb98d80a82ae7310708fbb;hp=7c877f2dc26e56e4464d294744fa6d6138ace8a2;hpb=ab939d25272479b99688fb27fd9c09dbbe05b2bb;p=rocksndiamonds.git diff --git a/src/init.c b/src/init.c index 7c877f2d..d800de9f 100644 --- a/src/init.c +++ b/src/init.c @@ -26,6 +26,9 @@ #include "cartoons.h" #include "config.h" +#include "conf_e2g.c" /* include auto-generated data structure definitions */ + + static char *image_filename[NUM_PICTURES] = { "RocksScreen.pcx", @@ -556,8 +559,7 @@ void InitGadgets() void InitElementInfo() { - int i, j; - +#if 0 static struct { int element; @@ -575,7 +577,6 @@ void InitElementInfo() { EL_EXIT_OPENING, GFX_AUSGANG_ACT }, { EL_EXIT_OPEN, GFX_AUSGANG_AUF }, { EL_SP_EXIT_OPEN, GFX_SP_EXIT }, - { EL_PLAYER, GFX_SPIELFIGUR }, { EL_PLAYER1, GFX_SPIELER1 }, { EL_PLAYER2, GFX_SPIELER2 }, { EL_PLAYER3, GFX_SPIELER3 }, @@ -610,7 +611,7 @@ void InitElementInfo() { EL_AMOEBA_DROP, GFX_TROPFEN }, { EL_BOMB, GFX_BOMBE }, { EL_MAGIC_WALL, GFX_MAGIC_WALL_OFF }, - { EL_MAGIC_WALL_EMPTY, GFX_MAGIC_WALL_EMPTY }, + { EL_MAGIC_WALL_ACTIVE, GFX_MAGIC_WALL_EMPTY }, { EL_MAGIC_WALL_EMPTYING, GFX_MAGIC_WALL_EMPTY }, { EL_MAGIC_WALL_FULL, GFX_MAGIC_WALL_FULL }, { EL_MAGIC_WALL_DEAD, GFX_MAGIC_WALL_DEAD }, @@ -653,6 +654,7 @@ void InitElementInfo() { EL_PACMAN_LEFT, GFX_PACMAN_LEFT }, { EL_PACMAN_DOWN, GFX_PACMAN_DOWN }, { EL_INVISIBLE_WALL, GFX_UNSICHTBAR }, + { EL_INVISIBLE_WALL_ACTIVE, GFX_UNSICHTBAR_ON }, { EL_WALL_EMERALD, GFX_ERZ_EDEL }, { EL_WALL_DIAMOND, GFX_ERZ_DIAM }, { EL_LAMP, GFX_BIRNE_AUS }, @@ -673,14 +675,14 @@ void InitElementInfo() { EL_WALL_EMERALD_PURPLE, GFX_ERZ_EDEL_LILA }, { EL_DARK_YAMYAM, GFX_MAMPFER2 }, { EL_BD_MAGIC_WALL, GFX_MAGIC_WALL_BD_OFF }, - { EL_BD_MAGIC_WALL_EMPTY, GFX_MAGIC_WALL_BD_EMPTY }, + { EL_BD_MAGIC_WALL_ACTIVE, GFX_MAGIC_WALL_BD_EMPTY }, { EL_BD_MAGIC_WALL_EMPTYING, GFX_MAGIC_WALL_BD_EMPTY }, { EL_BD_MAGIC_WALL_FULL, GFX_MAGIC_WALL_BD_FULL }, { EL_BD_MAGIC_WALL_DEAD, GFX_MAGIC_WALL_BD_DEAD }, - { EL_DYNABOMB_ACTIVE_1, GFX_DYNABOMB }, - { EL_DYNABOMB_ACTIVE_2, GFX_DYNABOMB }, - { EL_DYNABOMB_ACTIVE_3, GFX_DYNABOMB }, - { EL_DYNABOMB_ACTIVE_4, GFX_DYNABOMB }, + { EL_DYNABOMB_PLAYER1_ACTIVE, GFX_DYNABOMB }, + { EL_DYNABOMB_PLAYER2_ACTIVE, GFX_DYNABOMB }, + { EL_DYNABOMB_PLAYER3_ACTIVE, GFX_DYNABOMB }, + { EL_DYNABOMB_PLAYER4_ACTIVE, GFX_DYNABOMB }, { EL_DYNABOMB_NR, GFX_DYNABOMB_NR }, { EL_DYNABOMB_SZ, GFX_DYNABOMB_SZ }, { EL_DYNABOMB_XL, GFX_DYNABOMB_XL }, @@ -701,6 +703,7 @@ void InitElementInfo() { EL_SP_BUGGY_BASE_ACTIVE, GFX_SP_BUG_ACTIVE }, { EL_SP_ZONK, GFX_SP_ZONK }, { EL_INVISIBLE_STEELWALL, GFX_INVISIBLE_STEEL }, + { EL_INVISIBLE_STEELWALL_ACTIVE, GFX_INVISIBLE_STEEL_ON }, { EL_BLACK_ORB, GFX_BLACK_ORB }, { EL_EM_GATE1, GFX_EM_GATE_1 }, { EL_EM_GATE2, GFX_EM_GATE_2 }, @@ -735,24 +738,36 @@ void InitElementInfo() { EL_CONVEYOR_BELT1_LEFT, GFX_BELT1_LEFT }, { EL_CONVEYOR_BELT1_MIDDLE, GFX_BELT1_MIDDLE }, { EL_CONVEYOR_BELT1_RIGHT, GFX_BELT1_RIGHT }, + { EL_CONVEYOR_BELT1_LEFT_ACTIVE, GFX_BELT1_LEFT }, + { EL_CONVEYOR_BELT1_MIDDLE_ACTIVE, GFX_BELT1_MIDDLE }, + { EL_CONVEYOR_BELT1_RIGHT_ACTIVE, GFX_BELT1_RIGHT }, { EL_CONVEYOR_BELT1_SWITCH_LEFT, GFX_BELT1_SWITCH_LEFT }, { EL_CONVEYOR_BELT1_SWITCH_MIDDLE, GFX_BELT1_SWITCH_MIDDLE }, { EL_CONVEYOR_BELT1_SWITCH_RIGHT, GFX_BELT1_SWITCH_RIGHT }, { EL_CONVEYOR_BELT2_LEFT, GFX_BELT2_LEFT }, { EL_CONVEYOR_BELT2_MIDDLE, GFX_BELT2_MIDDLE }, { EL_CONVEYOR_BELT2_RIGHT, GFX_BELT2_RIGHT }, + { EL_CONVEYOR_BELT2_LEFT_ACTIVE, GFX_BELT2_LEFT }, + { EL_CONVEYOR_BELT2_MIDDLE_ACTIVE, GFX_BELT2_MIDDLE }, + { EL_CONVEYOR_BELT2_RIGHT_ACTIVE, GFX_BELT2_RIGHT }, { EL_CONVEYOR_BELT2_SWITCH_LEFT, GFX_BELT2_SWITCH_LEFT }, { EL_CONVEYOR_BELT2_SWITCH_MIDDLE, GFX_BELT2_SWITCH_MIDDLE }, { EL_CONVEYOR_BELT2_SWITCH_RIGHT, GFX_BELT2_SWITCH_RIGHT }, { EL_CONVEYOR_BELT3_LEFT, GFX_BELT3_LEFT }, { EL_CONVEYOR_BELT3_MIDDLE, GFX_BELT3_MIDDLE }, { EL_CONVEYOR_BELT3_RIGHT, GFX_BELT3_RIGHT }, + { EL_CONVEYOR_BELT3_LEFT_ACTIVE, GFX_BELT3_LEFT }, + { EL_CONVEYOR_BELT3_MIDDLE_ACTIVE, GFX_BELT3_MIDDLE }, + { EL_CONVEYOR_BELT3_RIGHT_ACTIVE, GFX_BELT3_RIGHT }, { EL_CONVEYOR_BELT3_SWITCH_LEFT, GFX_BELT3_SWITCH_LEFT }, { EL_CONVEYOR_BELT3_SWITCH_MIDDLE, GFX_BELT3_SWITCH_MIDDLE }, { EL_CONVEYOR_BELT3_SWITCH_RIGHT, GFX_BELT3_SWITCH_RIGHT }, { EL_CONVEYOR_BELT4_LEFT, GFX_BELT4_LEFT }, { EL_CONVEYOR_BELT4_MIDDLE, GFX_BELT4_MIDDLE }, { EL_CONVEYOR_BELT4_RIGHT, GFX_BELT4_RIGHT }, + { EL_CONVEYOR_BELT4_LEFT_ACTIVE, GFX_BELT4_LEFT }, + { EL_CONVEYOR_BELT4_MIDDLE_ACTIVE, GFX_BELT4_MIDDLE }, + { EL_CONVEYOR_BELT4_RIGHT_ACTIVE, GFX_BELT4_RIGHT }, { EL_CONVEYOR_BELT4_SWITCH_LEFT, GFX_BELT4_SWITCH_LEFT }, { EL_CONVEYOR_BELT4_SWITCH_MIDDLE, GFX_BELT4_SWITCH_MIDDLE }, { EL_CONVEYOR_BELT4_SWITCH_RIGHT, GFX_BELT4_SWITCH_RIGHT }, @@ -778,6 +793,7 @@ void InitElementInfo() { EL_MOLE_DOWN, GFX_MOLE_DOWN }, { EL_STEELWALL_SLANTED, GFX_STEEL_SLANTED }, { EL_INVISIBLE_SAND, GFX_SAND_INVISIBLE }, + { EL_INVISIBLE_SAND_ACTIVE, GFX_SAND_INVISIBLE_ON }, { EL_DX_UNKNOWN_15, GFX_DX_UNKNOWN_15 }, { EL_DX_UNKNOWN_42, GFX_DX_UNKNOWN_42 }, { EL_TIMEGATE_OPEN, GFX_TIMEGATE_OPEN }, @@ -905,14 +921,19 @@ void InitElementInfo() -1, -1 } }; +#endif + + int i, j, k; /* always start with reliable default values */ for(i=0; i -1) @@ -961,6 +983,67 @@ void InitElementInfo() element_info[element].has_direction_graphic[GFX_ACTION_DEFAULT] = TRUE; i++; } +#else + + i = 0; + while (element_to_graphic[i].element > -1) + { + int element = element_to_graphic[i].element; + int direction = element_to_graphic[i].direction; + int action = element_to_graphic[i].action; + int graphic = element_to_graphic[i].graphic; + + if (action > -1) + action = graphics_action_mapping[action]; + else + action = GFX_ACTION_DEFAULT; + + if (direction > -1) + { + direction = MV_DIR_BIT(direction); + + element_info[element].direction_graphic[action][direction] = graphic; + } + else + element_info[element].graphic[action] = graphic; + + i++; + } + + /* now set all '-1' values with element specific default values */ + for(i=0; i