[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