X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Finit.c;h=7e4b1727863b3c5ffd3b1cd59a9da024e5fdae19;hb=720b0a62c8af0585e9517ed7a98ea336304c02e4;hp=57b1bd112e2c4b36ad891217f9cf24cd7b7a00df;hpb=c145af8280c5ad22978e42621bbe5c0f3a8ada3c;p=rocksndiamonds.git diff --git a/src/init.c b/src/init.c index 57b1bd11..7e4b1727 100644 --- a/src/init.c +++ b/src/init.c @@ -481,19 +481,19 @@ void InitElementGraphicInfo() /* now set all '-1' values to element specific default values */ for (i=0; iheight / graphic_info[graphic].height; } - /* correct x or y offset dependant of vertical or horizontal frame order */ + /* correct x or y offset dependent of vertical or horizontal frame order */ if (parameter[GFX_ARG_VERTICAL]) /* frames are ordered vertically */ { graphic_info[graphic].offset_y = @@ -912,12 +926,24 @@ static void InitElementSoundInfo() { for (act=0; act < NUM_ACTIONS; act++) { + /* generic default action sound (defined by "[default]" directive) */ + int default_action_sound = element_info[EL_DEFAULT].sound[act]; + + /* look for special default action sound (classic game specific) */ + if (IS_BD_ELEMENT(i) && element_info[EL_BD_DEFAULT].sound[act] != -1) + default_action_sound = element_info[EL_BD_DEFAULT].sound[act]; + if (IS_SP_ELEMENT(i) && element_info[EL_SP_DEFAULT].sound[act] != -1) + default_action_sound = element_info[EL_SP_DEFAULT].sound[act]; + if (IS_SB_ELEMENT(i) && element_info[EL_SB_DEFAULT].sound[act] != -1) + default_action_sound = element_info[EL_SB_DEFAULT].sound[act]; + + /* look for element specific default sound (independent from action) */ + if (element_info[i].sound[ACTION_DEFAULT] != -1) + default_action_sound = element_info[i].sound[ACTION_DEFAULT]; + /* no sound for this specific action -- use default action sound */ if (element_info[i].sound[act] == -1) - element_info[i].sound[act] = - (element_info[i].sound[ACTION_DEFAULT] != -1 ? - element_info[i].sound[ACTION_DEFAULT] : - element_info[EL_INTERNAL_DEFAULT_ELEMENT].sound[act]); + element_info[i].sound[act] = default_action_sound; } } } @@ -1500,6 +1526,9 @@ void InitElementPropertiesStatic() EL_GATE_2_GRAY, EL_GATE_3_GRAY, EL_GATE_4_GRAY, + EL_PENGUIN, + EL_PIG, + EL_DRAGON, -1 }; @@ -1717,6 +1746,11 @@ void InitElementPropertiesStatic() EL_INVISIBLE_WALL, /* more than one murphy in a level results in an inactive clone */ EL_SP_MURPHY_CLONE, + /* runtime elements*/ + EL_SP_DISK_RED_ACTIVE, + EL_SP_TERMINAL_ACTIVE, + EL_SP_BUGGY_BASE_ACTIVATING, + EL_SP_BUGGY_BASE_ACTIVE, -1 }; @@ -2212,7 +2246,9 @@ void InitElementPropertiesStatic() EL_DYNABOMB_INCREASE_NUMBER, EL_DYNABOMB_INCREASE_SIZE, EL_DYNABOMB_INCREASE_POWER, +#if 0 EL_SOKOBAN_OBJECT, +#endif EL_SOKOBAN_FIELD_EMPTY, EL_SOKOBAN_FIELD_FULL, EL_WALL_EMERALD_RED, @@ -2242,7 +2278,9 @@ void InitElementPropertiesStatic() EL_SP_PORT_VERTICAL, EL_SP_PORT_ANY, EL_SP_DISK_RED, +#if 0 EL_SP_DISK_YELLOW, +#endif EL_SP_CHIP_SINGLE, EL_SP_CHIP_LEFT, EL_SP_CHIP_RIGHT, @@ -2483,7 +2521,7 @@ void InitElementPropertiesEngine(int engine_version) InitElementPropertiesStatic(); #endif - /* set all special, combined or engine dependant element properties */ + /* set all special, combined or engine dependent element properties */ for (i=0; i < MAX_NUM_ELEMENTS; i++) { #if 0 @@ -2628,6 +2666,7 @@ void InitElementPropertiesEngine(int engine_version) engine_version > VERSION_IDENT(2,0,1))); } +#if 0 /* dynamically adjust element properties according to game engine version */ #if 0 if (engine_version < RELEASE_IDENT(2,2,0,7)) @@ -2641,6 +2680,7 @@ void InitElementPropertiesEngine(int engine_version) element_info[element].push_delay_random = 8; } } +#endif } static void InitGlobal() @@ -3093,7 +3133,7 @@ void ReloadCustomArtwork() /* custom level artwork configured in level series configuration file always overrides custom level artwork stored in level series directory - and (level independant) custom artwork configured in setup menue */ + and (level independent) custom artwork configured in setup menue */ if (leveldir_current->graphics_set != NULL) gfx_new_identifier = leveldir_current->graphics_set; if (leveldir_current->sounds_set != NULL) @@ -3258,7 +3298,7 @@ void CloseAllAndExit(int exit_value) FreeTileClipmasks(); CloseVideoDisplay(); - ClosePlatformDependantStuff(); + ClosePlatformDependentStuff(); exit(exit_value); }