diff --git a/src/openrct2/editor.c b/src/openrct2/editor.c index 9ed2979aab..a6b407aa22 100644 --- a/src/openrct2/editor.c +++ b/src/openrct2/editor.c @@ -87,26 +87,12 @@ void editor_load() audio_stop_all_music_and_sounds(); object_manager_unload_all_objects(); object_list_load(); - map_init(150); - banner_init(); - reset_park_entrances(); - user_string_clear_all(); - reset_sprite_list(); - ride_init_all(); - window_guest_list_init_vars_a(); - staff_reset_modes(); - park_init(); - finance_init(); - date_reset(); - window_guest_list_init_vars_b(); - window_staff_list_init_vars(); + game_init_all(150); gScreenFlags = SCREEN_FLAGS_SCENARIO_EDITOR; gS6Info.editor_step = EDITOR_STEP_OBJECT_SELECTION; gParkFlags |= PARK_FLAGS_SHOW_REAL_GUEST_NAMES; - window_new_ride_init_vars(); gS6Info.category = SCENARIO_CATEGORY_OTHER; viewport_init_all(); - news_item_init_queue(); window_editor_main_open(); mainWindow = window_get_main(); window_scroll_to_location(mainWindow, 2400, 2400, 112); @@ -170,34 +156,18 @@ static void editor_convert_save_to_scenario_callback(sint32 result, const utf8 * */ void trackdesigner_load() { - rct_window *mainWindow; - audio_stop_all_music_and_sounds(); gScreenFlags = SCREEN_FLAGS_TRACK_DESIGNER; gScreenAge = 0; object_manager_unload_all_objects(); object_list_load(); - map_init(150); + game_init_all(150); set_all_land_owned(); - banner_init(); - reset_park_entrances(); - user_string_clear_all(); - reset_sprite_list(); - ride_init_all(); - window_guest_list_init_vars_a(); - staff_reset_modes(); - park_init(); - finance_init(); - date_reset(); - window_guest_list_init_vars_b(); - window_staff_list_init_vars(); gS6Info.editor_step = EDITOR_STEP_OBJECT_SELECTION; - window_new_ride_init_vars(); viewport_init_all(); - news_item_init_queue(); window_editor_main_open(); - mainWindow = window_get_main(); + rct_window * mainWindow = window_get_main(); window_scroll_to_location(mainWindow, 2400, 2400, 112); mainWindow->flags &= ~WF_SCROLLING_TO_LOCATION; load_palette(); @@ -211,34 +181,18 @@ void trackdesigner_load() */ void trackmanager_load() { - rct_window *mainWindow; - audio_stop_all_music_and_sounds(); gScreenFlags = SCREEN_FLAGS_TRACK_MANAGER; gScreenAge = 0; object_manager_unload_all_objects(); object_list_load(); - map_init(150); + game_init_all(150); set_all_land_owned(); - banner_init(); - reset_park_entrances(); - user_string_clear_all(); - reset_sprite_list(); - ride_init_all(); - window_guest_list_init_vars_a(); - staff_reset_modes(); - park_init(); - finance_init(); - date_reset(); - window_guest_list_init_vars_b(); - window_staff_list_init_vars(); gS6Info.editor_step = EDITOR_STEP_OBJECT_SELECTION; - window_new_ride_init_vars(); viewport_init_all(); - news_item_init_queue(); window_editor_main_open(); - mainWindow = window_get_main(); + rct_window * mainWindow = window_get_main(); window_scroll_to_location(mainWindow, 2400, 2400, 112); mainWindow->flags &= ~WF_SCROLLING_TO_LOCATION; load_palette(); diff --git a/src/openrct2/game.c b/src/openrct2/game.c index 0f6861d622..b14777b182 100644 --- a/src/openrct2/game.c +++ b/src/openrct2/game.c @@ -1161,6 +1161,31 @@ void game_load_or_quit_no_save_prompt() } } +/** + * Initialises the map, park etc. basically all S6 data. + */ +void game_init_all(sint32 mapSize) +{ + map_init(mapSize); + park_init(); + finance_init(); + reset_park_entrances(); + banner_init(); + ride_init_all(); + reset_sprite_list(); + staff_reset_modes(); + date_reset(); + climate_reset(CLIMATE_COOL_AND_WET); + news_item_init_queue(); + user_string_clear_all(); + + window_new_ride_init_vars(); + window_guest_list_init_vars_a(); + window_guest_list_init_vars_b(); + window_staff_list_init_vars(); + scenery_set_default_placement_configuration(); +} + GAME_COMMAND_POINTER* new_game_command_table[GAME_COMMAND_COUNT] = { game_command_set_ride_appearance, game_command_set_land_height, diff --git a/src/openrct2/game.h b/src/openrct2/game.h index 1a19167f5d..bf13755535 100644 --- a/src/openrct2/game.h +++ b/src/openrct2/game.h @@ -184,5 +184,6 @@ void game_convert_strings_to_utf8(); void game_convert_strings_to_rct2(rct_s6_data *s6); void game_fix_save_vars(); bool game_load_save_or_scenario(const utf8 * path); +void game_init_all(sint32 mapSize); #endif diff --git a/src/openrct2/rct1/S4Importer.cpp b/src/openrct2/rct1/S4Importer.cpp index bec2894175..189c8aa613 100644 --- a/src/openrct2/rct1/S4Importer.cpp +++ b/src/openrct2/rct1/S4Importer.cpp @@ -179,27 +179,12 @@ private: uint16 mapSize = _s4.map_size == 0 ? 128 : _s4.map_size; // Do map initialisation, same kind of stuff done when loading scenario editor - audio_pause_sounds(); - audio_unpause_sounds(); + audio_stop_all_music_and_sounds(); GetObjectManager()->UnloadAll(); - map_init(mapSize); - banner_init(); - reset_park_entrances(); - user_string_clear_all(); - reset_sprite_list(); - ride_init_all(); - window_guest_list_init_vars_a(); - staff_reset_modes(); - park_init(); - finance_init(); - date_reset(); - window_guest_list_init_vars_b(); - window_staff_list_init_vars(); + game_init_all(mapSize); gS6Info.editor_step = EDITOR_STEP_OBJECT_SELECTION; gParkFlags |= PARK_FLAGS_SHOW_REAL_GUEST_NAMES; - window_new_ride_init_vars(); gS6Info.category = SCENARIO_CATEGORY_OTHER; - news_item_init_queue(); } /** diff --git a/src/openrct2/rct2.c b/src/openrct2/rct2.c index e9d313e4d4..b5a76638b3 100644 --- a/src/openrct2/rct2.c +++ b/src/openrct2/rct2.c @@ -170,23 +170,10 @@ bool rct2_init() audio_init_ride_sounds_and_info(); } viewport_init_all(); - news_item_init_queue(); - reset_park_entrances(); - user_string_clear_all(); - reset_sprite_list(); - ride_init_all(); - window_guest_list_init_vars_a(); - staff_reset_modes(); - map_init(150); - park_init(); + + game_init_all(150); if (!gOpenRCT2Headless) window_title_menu_open(); - date_reset(); - climate_reset(CLIMATE_COOL_AND_WET); - scenery_set_default_placement_configuration(); - window_new_ride_init_vars(); - window_guest_list_init_vars_b(); - window_staff_list_init_vars(); load_palette(); #ifdef __ENABLE_LIGHTFX__ diff --git a/src/openrct2/title/TitleScreen.cpp b/src/openrct2/title/TitleScreen.cpp index 1b0628b972..9bda6890ea 100644 --- a/src/openrct2/title/TitleScreen.cpp +++ b/src/openrct2/title/TitleScreen.cpp @@ -122,25 +122,9 @@ extern "C" #ifndef DISABLE_NETWORK network_close(); #endif - reset_park_entrances(); - user_string_clear_all(); - reset_sprite_list(); - ride_init_all(); - window_guest_list_init_vars_a(); - staff_reset_modes(); - map_init(150); - park_init(); - date_reset(); - climate_reset(CLIMATE_COOL_AND_WET); - scenery_set_default_placement_configuration(); - window_new_ride_init_vars(); - window_guest_list_init_vars_b(); - window_staff_list_init_vars(); - map_update_tile_pointers(); - reset_sprite_spatial_index(); audio_stop_all_music_and_sounds(); + game_init_all(150); viewport_init_all(); - news_item_init_queue(); window_main_open(); title_create_windows(); TitleInitialise(); diff --git a/src/openrct2/world/map.c b/src/openrct2/world/map.c index 067dd02185..9a9e0deec0 100644 --- a/src/openrct2/world/map.c +++ b/src/openrct2/world/map.c @@ -368,7 +368,6 @@ rct_map_element* map_get_banner_element_at(sint32 x, sint32 y, sint32 z, uint8 p */ void map_init(sint32 size) { - date_reset(); gNumMapAnimations = 0; gNextFreeMapElementPointerIndex = 0; @@ -397,7 +396,6 @@ void map_init(sint32 size) gMapBaseZ = 7; map_update_tile_pointers(); map_remove_out_of_range_elements(); - climate_reset(CLIMATE_WARM); } /**