- the resuming of the conversation interrupted by a slideshow must be performed by the game action handler

If this is done within the intermission code, both intermission and menu will write to the same global variables and destroy their data, this became very apparent when it altered the screen scale for the conversation.
This commit is contained in:
Christoph Oelckers 2019-04-05 00:59:32 +02:00
parent aed9c458db
commit 0ed847b51b
3 changed files with 7 additions and 1 deletions

View file

@ -76,6 +76,7 @@ enum gameaction_t : int
ga_screenshot,
ga_togglemap,
ga_fullconsole,
ga_resumeconversation,
};

View file

@ -74,6 +74,7 @@
#include "gi.h"
#include "a_dynlight.h"
#include "i_system.h"
#include "p_conversation.h"
#include "g_hub.h"
#include "g_levellocals.h"
@ -1095,6 +1096,10 @@ void G_Ticker ()
AM_ToggleMap ();
gameaction = ga_nothing;
break;
case ga_resumeconversation:
P_ResumeConversation ();
gameaction = ga_nothing;
break;
default:
case ga_nothing:
break;

View file

@ -804,7 +804,7 @@ void DIntermissionController::Ticker ()
primaryLevel->SetMusic();
gamestate = GS_LEVEL;
wipegamestate = GS_LEVEL;
P_ResumeConversation ();
gameaction = ga_resumeconversation;
viewactive = true;
Destroy();
break;