Fix #4204: Client trying to get sprite 65535

Caused by a conflict between a multiplayer map download and the title loading a different map.
This commit is contained in:
Yaroslav Tretyakov 2016-08-05 15:46:19 -06:00 committed by Ted John
parent c3fdb99ceb
commit 53a7b87414
4 changed files with 11 additions and 8 deletions

View File

@ -806,13 +806,13 @@ bool game_load_save(const utf8 *path)
SDL_RWclose(rw);
if (result) {
if (network_get_mode() == NETWORK_MODE_CLIENT) {
network_close();
}
game_load_init();
if (network_get_mode() == NETWORK_MODE_SERVER) {
network_send_map();
}
if (network_get_mode() == NETWORK_MODE_CLIENT) {
network_close();
}
return true;
} else {
// If loading the SV6 or SV4 failed, the current park state will be corrupted
@ -851,6 +851,10 @@ void game_load_init()
mainWindow->saved_view_y -= mainWindow->viewport->view_height >> 1;
window_invalidate(mainWindow);
if (network_get_mode() != NETWORK_MODE_CLIENT)
{
reset_sprite_spatial_index();
}
reset_all_sprite_quadrant_placements();
scenery_set_default_placement_configuration();
window_new_ride_init_vars();

View File

@ -366,11 +366,6 @@ void S6Importer::Import()
throw ObjectLoadException();
}
map_update_tile_pointers();
reset_all_sprite_quadrant_placements();
if (network_get_mode() != NETWORK_MODE_CLIENT)
{
reset_sprite_spatial_index();
}
game_convert_strings_to_utf8();
if (FixIssues)
{

View File

@ -119,6 +119,9 @@ int scenario_load_and_play_from_path(const char *path)
if (!scenario_load(path))
return 0;
reset_sprite_spatial_index();
reset_all_sprite_quadrant_placements();
int len = strnlen(path, MAX_PATH) + 1;
safe_strcpy(_scenarioPath, path, len);
if (len - 1 == MAX_PATH)

View File

@ -209,6 +209,7 @@ static int title_load_park(const char *path)
}
window_invalidate(w);
reset_sprite_spatial_index();
reset_all_sprite_quadrant_placements();
window_new_ride_init_vars();
if (_strcmpi(path_get_extension(path), ".sv6") != 0)