From a9c07f81e72ad50bf626558d797dfae689230ecc Mon Sep 17 00:00:00 2001 From: zicodxx Date: Thu, 24 May 2012 12:46:33 +0200 Subject: [PATCH] in StartLevel() only call disable_matcens() and clear_transient_objects() in Singleplayer to keep consistency with remote clients --- CHANGELOG.txt | 4 ++++ main/gameseq.c | 22 +++++++++++----------- main/multi.c | 1 - 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 73e49abf2..a7c2ea9e9 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,5 +1,9 @@ D1X-Rebirth Changelog +20120524 +-------- +main/gameseq.c, main/multi.c: in StartLevel() only call disable_matcens() and clear_transient_objects() in Singleplayer to keep consistency with remote clients + 20120521 -------- main/state.c: now properly initialize all other parts of the new/old player object when restoring a coop savestate diff --git a/main/gameseq.c b/main/gameseq.c index 205a5e3cb..5d15cadab 100644 --- a/main/gameseq.c +++ b/main/gameseq.c @@ -1341,26 +1341,21 @@ void StartLevel(int random) ConsoleObject->control_type = CT_FLYING; ConsoleObject->movement_type = MT_PHYSICS; - disable_matcens(); - - clear_transient_objects(0); //0 means leave proximity bombs - // create_player_appearance_effect(ConsoleObject); Do_appearance_effect = 1; -#ifdef NETWORK if (Game_mode & GM_MULTI) { -#ifndef SHAREWARE if (Game_mode & GM_MULTI_COOP) multi_send_score(); -#endif multi_send_reappear(); - } - - if (Game_mode & GM_NETWORK) multi_do_protocol_frame(1, 1); -#endif + } + else // in Singleplayer, after we died ... + { + disable_matcens(); // ... disable matcens and ... + clear_transient_objects(0); // ... clear all transient objects. + } ai_reset_all_paths(); ai_init_boss_for_ship(); @@ -1368,6 +1363,11 @@ void StartLevel(int random) reset_rear_view(); Auto_fire_fusion_cannon_time = 0; Fusion_charge = 0; + + if (!(Game_mode & GM_MULTI)) // stuff for Singleplayer only + { + + } } diff --git a/main/multi.c b/main/multi.c index a77dda49c..ad02838f9 100644 --- a/main/multi.c +++ b/main/multi.c @@ -74,7 +74,6 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. void reset_player_object(void); // In object.c but not in object.h void multi_reset_object_texture(object *objp); void drop_player_eggs(object *playerobj); // from collide.c -void StartLevel(void); // From gameseq.c void multi_do_heartbeat(char *buf); void multi_send_heartbeat(); void multi_do_kill_goal_counts(char *buf);