X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Finit.c;h=00cf8234522be459fa93f807e1d7793efab9287f;hb=d4665f01d15ba3679f378819710a84d6c2348a9c;hp=85339702a27243982d20cfaeeed5811d4f3f6b09;hpb=d2569aa3db9021edea83086dc34ece98cfc92493;p=rocksndiamonds.git diff --git a/src/init.c b/src/init.c index 85339702..00cf8234 100644 --- a/src/init.c +++ b/src/init.c @@ -388,7 +388,7 @@ void InitWindow(int argc, char *argv[]) PropModePrepend, (unsigned char *) &delete_atom, 1); sprintf(icon_filename, "%s/%s/%s", - options.base_directory, GRAPHICS_DIRECTORY, + options.ro_base_directory, GRAPHICS_DIRECTORY, icon_pic.picture_filename); XReadBitmapFile(display,window,icon_filename, &icon_width,&icon_height, @@ -397,7 +397,7 @@ void InitWindow(int argc, char *argv[]) Error(ERR_EXIT, "cannot read icon bitmap file '%s'", icon_filename); sprintf(icon_filename, "%s/%s/%s", - options.base_directory, GRAPHICS_DIRECTORY, + options.ro_base_directory, GRAPHICS_DIRECTORY, icon_pic.picturemask_filename); XReadBitmapFile(display,window,icon_filename, &icon_width,&icon_height, @@ -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 } }; @@ -696,7 +698,7 @@ void LoadGfx(int pos, struct PictureFileInfo *pic) sprintf(basefilename, "%s%s", pic->picture_filename, picture_ext); DrawInitText(basefilename, 150, FC_YELLOW); sprintf(filename, "%s/%s/%s", - options.base_directory, GRAPHICS_DIRECTORY, basefilename); + options.ro_base_directory, GRAPHICS_DIRECTORY, basefilename); #ifdef MSDOS rest(100); @@ -772,7 +774,7 @@ void LoadGfx(int pos, struct PictureFileInfo *pic) sprintf(basefilename, "%s%s", pic->picture_filename, picturemask_ext); DrawInitText(basefilename, 150, FC_YELLOW); sprintf(filename, "%s/%s/%s", - options.base_directory, GRAPHICS_DIRECTORY, basefilename); + options.ro_base_directory, GRAPHICS_DIRECTORY, basefilename); #if DEBUG_TIMING debug_print_timestamp(1, NULL); /* initialize timestamp function */ @@ -1313,7 +1315,7 @@ void InitElementProperties() EL_EM_GATE_2X, EL_EM_GATE_3X, EL_EM_GATE_4X, - EL_DYNAMIT_AUS, + EL_DYNAMITE_INACTIVE, EL_UNSICHTBAR, EL_BIRNE_AUS, EL_BIRNE_EIN, @@ -1379,9 +1381,12 @@ void InitElementProperties() static int ep_explosive[] = { EL_BOMBE, - EL_DYNAMIT, - EL_DYNAMIT_AUS, - EL_DYNABOMB, + EL_DYNAMITE_ACTIVE, + EL_DYNAMITE_INACTIVE, + EL_DYNABOMB_ACTIVE_1, + EL_DYNABOMB_ACTIVE_2, + EL_DYNABOMB_ACTIVE_3, + EL_DYNABOMB_ACTIVE_4, EL_DYNABOMB_NR, EL_DYNABOMB_SZ, EL_DYNABOMB_XL, @@ -1494,7 +1499,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); @@ -1538,7 +1545,51 @@ void InitElementProperties() }; static int ep_over_player_num = sizeof(ep_over_player)/sizeof(int); - static long ep_bit[] = + static int ep_active_bomb[] = + { + EL_DYNAMITE_ACTIVE, + EL_DYNABOMB_ACTIVE_1, + EL_DYNABOMB_ACTIVE_2, + EL_DYNABOMB_ACTIVE_3, + EL_DYNABOMB_ACTIVE_4 + }; + static int ep_active_bomb_num = sizeof(ep_active_bomb)/sizeof(int); + + 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_L, + EL_BELT1_SWITCH_M, + EL_BELT1_SWITCH_R, + EL_BELT2_SWITCH_L, + EL_BELT2_SWITCH_M, + EL_BELT2_SWITCH_R, + EL_BELT3_SWITCH_L, + EL_BELT3_SWITCH_M, + EL_BELT3_SWITCH_R, + EL_BELT4_SWITCH_L, + EL_BELT4_SWITCH_M, + EL_BELT4_SWITCH_R, + }; + static int ep_belt_switch_num = sizeof(ep_belt_switch)/sizeof(int); + + static long ep1_bit[] = { EP_BIT_AMOEBALIVE, EP_BIT_AMOEBOID, @@ -1569,9 +1620,15 @@ void InitElementProperties() EP_BIT_EATABLE, EP_BIT_SP_ELEMENT, EP_BIT_QUICK_GATE, - EP_BIT_OVER_PLAYER + 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, @@ -1602,9 +1659,15 @@ void InitElementProperties() ep_eatable, ep_sp_element, ep_quick_gate, - ep_over_player + 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, @@ -1635,18 +1698,32 @@ void InitElementProperties() &ep_eatable_num, &ep_sp_element_num, &ep_quick_gate_num, - &ep_over_player_num + &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