1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-22 22:34:33 +01:00

Consolidate game initialisation into single method

This commit is contained in:
Ted John
2017-01-23 12:44:27 +00:00
parent ef6fa35323
commit abac2ca614
7 changed files with 36 additions and 102 deletions

View File

@@ -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();

View File

@@ -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,

View File

@@ -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

View File

@@ -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();
}
/**

View File

@@ -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__

View File

@@ -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();

View File

@@ -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);
}
/**