Merge pull request #5802 from rwjuk/fix5800

Fix #5800: Crash when opening server from command line
This commit is contained in:
Michał Janiszewski 2017-07-06 23:39:26 +02:00 committed by GitHub
commit f6cb731476
4 changed files with 15 additions and 3 deletions

View File

@ -6945,7 +6945,7 @@ void peep_update_crowd_noise()
return;
viewport = g_music_tracking_viewport;
if (viewport == (rct_viewport*)-1)
if (viewport == NULL || viewport == (rct_viewport*)-1)
return;
// Count the number of peeps visible

View File

@ -329,6 +329,7 @@ bool rct2_open_file(const char *path)
{
char *extension = strrchr(path, '.');
if (extension == NULL) {
title_load();
return false;
}
extension++;
@ -338,6 +339,14 @@ bool rct2_open_file(const char *path)
if (ParkLoadResult_GetError(result) == PARK_LOAD_ERROR_OK) {
ParkLoadResult_Delete(result);
gFirstTimeSaving = false;
if (network_get_mode() == NETWORK_MODE_CLIENT) {
network_close();
}
game_load_init();
if (network_get_mode() == NETWORK_MODE_SERVER) {
network_send_map();
}
peep_update_names(gConfigGeneral.show_real_names_of_guests);
return true;
}
else {
@ -384,7 +393,7 @@ bool rct2_open_file(const char *path)
return false;
}
}
title_load();
return false;
}

View File

@ -802,7 +802,7 @@ void vehicle_sounds_update()
}
}
g_music_tracking_viewport = viewport;
if (viewport != (rct_viewport*)-1) {
if (viewport != NULL && viewport != (rct_viewport*)-1) {
if (window) {
gWindowAudioExclusive = window;
gVolumeAdjustZoom = 0;

View File

@ -561,6 +561,9 @@ void sprite_move(sint16 x, sint16 y, sint16 z, rct_sprite *sprite)
rct_sprite *sprite2 = get_sprite(*spriteIndex);
while (sprite != sprite2) {
spriteIndex = &sprite2->unknown.next_in_quadrant;
if (*spriteIndex == SPRITE_INDEX_NULL) {
break;
}
sprite2 = get_sprite(*spriteIndex);
}
}