[Scummvm-git-logs] scummvm master -> 13b760849209f27850fc2d1eb9686749e1f41b3f
lephilousophe
noreply at scummvm.org
Mon Mar 18 11:40:03 UTC 2024
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
13b7608492 AGS: Replace local static "last_cutscene_script_pos" with field
Commit: 13b760849209f27850fc2d1eb9686749e1f41b3f
https://github.com/scummvm/scummvm/commit/13b760849209f27850fc2d1eb9686749e1f41b3f
Author: PushmePullyu (127053144+PushmePullyu at users.noreply.github.com)
Date: 2024-03-18T12:39:59+01:00
Commit Message:
AGS: Replace local static "last_cutscene_script_pos" with field
Fixes #15015
"AGS games lead to a reproducable crash on exiting ScummVM"
Changed paths:
engines/ags/engine/ac/global_game.cpp
engines/ags/globals.cpp
engines/ags/globals.h
diff --git a/engines/ags/engine/ac/global_game.cpp b/engines/ags/engine/ac/global_game.cpp
index d2ca3bca5cc..bc4e91f981f 100644
--- a/engines/ags/engine/ac/global_game.cpp
+++ b/engines/ags/engine/ac/global_game.cpp
@@ -499,7 +499,7 @@ void EndSkippingUntilCharStops() {
}
void StartCutscene(int skipwith) {
- static ScriptPosition last_cutscene_script_pos;
+ ScriptPosition &last_cutscene_script_pos = _GP(last_cutscene_script_pos);
if (is_in_cutscene()) {
quitprintf("!StartCutscene: already in a cutscene; previous started in \"%s\", line %d",
diff --git a/engines/ags/globals.cpp b/engines/ags/globals.cpp
index 5e79f10426a..75dad57a8b6 100644
--- a/engines/ags/globals.cpp
+++ b/engines/ags/globals.cpp
@@ -275,6 +275,9 @@ Globals::Globals() {
// global_dialog.cpp globals
_last_in_dialog_request_script_pos = new ScriptPosition();
+ // global_game.cpp globals
+ _last_cutscene_script_pos = new ScriptPosition();
+
// graphics_mode.cpp globals
_SavedFullscreenSetting = new ActiveDisplaySetting();
_SavedWindowedSetting = new ActiveDisplaySetting();
@@ -532,6 +535,9 @@ Globals::~Globals() {
// global_dialog.cpp globals
delete _last_in_dialog_request_script_pos;
+ // global_game.cpp globals
+ delete _last_cutscene_script_pos;
+
// graphics_mode.cpp globals
delete _SavedFullscreenSetting;
delete _SavedWindowedSetting;
diff --git a/engines/ags/globals.h b/engines/ags/globals.h
index d5a31da83d1..421b80a29f1 100644
--- a/engines/ags/globals.h
+++ b/engines/ags/globals.h
@@ -909,6 +909,16 @@ public:
/**@}*/
+ /**
+ * @defgroup agsglobal_gameglobals global_game globals
+ * @ingroup agsglobals
+ * @{
+ */
+
+ ScriptPosition *_last_cutscene_script_pos;
+
+ /**@}*/
+
/**
* @defgroup agsglobal_objectglobals global_object globals
* @ingroup agsglobals
More information about the Scummvm-git-logs
mailing list