[Scummvm-git-logs] scummvm master -> 80dbcd7fc8886c7561fee3c427a19de8d988dca8

dreammaster dreammaster at scummvm.org
Thu Sep 30 04:48:06 UTC 2021


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:
80dbcd7fc8 AGS: Fix inventory scroll buttons in 5 Days a Stranger


Commit: 80dbcd7fc8886c7561fee3c427a19de8d988dca8
    https://github.com/scummvm/scummvm/commit/80dbcd7fc8886c7561fee3c427a19de8d988dca8
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2021-09-29T21:47:59-07:00

Commit Message:
AGS: Fix inventory scroll buttons in 5 Days a Stranger

Changed paths:
    engines/ags/engine/main/game_run.cpp
    engines/ags/engine/script/script.cpp
    engines/ags/globals.h


diff --git a/engines/ags/engine/main/game_run.cpp b/engines/ags/engine/main/game_run.cpp
index 96a4181e6a..c328845623 100644
--- a/engines/ags/engine/main/game_run.cpp
+++ b/engines/ags/engine/main/game_run.cpp
@@ -192,13 +192,11 @@ static void check_mouse_controls() {
 		remove_popup_interface(_G(ifacepopped));
 
 	// check mouse clicks on GUIs
-	static int wasbutdown = 0, wasongui = 0;
-
-	if ((wasbutdown > 0) && (ags_misbuttondown(wasbutdown - 1))) {
-		gui_on_mouse_hold(wasongui, wasbutdown);
-	} else if ((wasbutdown > 0) && (!ags_misbuttondown(wasbutdown - 1))) {
-		gui_on_mouse_up(wasongui, wasbutdown);
-		wasbutdown = 0;
+	if ((_G(wasbutdown) > 0) && (ags_misbuttondown(_G(wasbutdown) - 1))) {
+		gui_on_mouse_hold(_G(wasongui), _G(wasbutdown));
+	} else if ((_G(wasbutdown) > 0) && (!ags_misbuttondown(_G(wasbutdown) - 1))) {
+		gui_on_mouse_up(_G(wasongui), _G(wasbutdown));
+		_G(wasbutdown) = 0;
 	}
 
 	int mbut = MouseNone;
@@ -220,11 +218,11 @@ static void check_mouse_controls() {
 			// plugin took the click
 			debug_script_log("Plugin handled mouse button %d", mbut + 1);
 		} else if (mongu >= 0) {
-			if (wasbutdown == 0) {
+			if (_G(wasbutdown) == 0) {
 				gui_on_mouse_down(mongu, mbut + 1);
 			}
-			wasongui = mongu;
-			wasbutdown = mbut + 1;
+			_G(wasongui) = mongu;
+			_G(wasbutdown) = mbut + 1;
 		} else setevent(EV_TEXTSCRIPT, TS_MCLICK, mbut + 1);
 		//    else RunTextScriptIParam(_G(gameinst),"on_mouse_click",aa+1);
 	}
diff --git a/engines/ags/engine/script/script.cpp b/engines/ags/engine/script/script.cpp
index f2e0c9c1db..ab71d02977 100644
--- a/engines/ags/engine/script/script.cpp
+++ b/engines/ags/engine/script/script.cpp
@@ -443,6 +443,12 @@ int RunTextScript2IParam(ccInstance *sci, const char *tsname, const RuntimeScrip
 			return toret;
 	}
 
+	// response to a button click, better update guis
+	if (ags_strnicmp(tsname, "interface_click", 15) == 0) {
+		// interface_click(int interface, int button)
+		_GP(guis)[iparam.IValue].MarkChanged();
+	}
+
 	return RunScriptFunctionIfExists(sci, tsname, 2, params);
 }
 
diff --git a/engines/ags/globals.h b/engines/ags/globals.h
index ceb2ca1691..885e95af4a 100644
--- a/engines/ags/globals.h
+++ b/engines/ags/globals.h
@@ -237,6 +237,7 @@ public:
 	int _mouse_accum_button_state = 0;
 	uint32 _mouse_clear_at_time = 0;
 	int _mouse_accum_relx = 0, _mouse_accum_rely = 0;
+	int _wasbutdown = 0, _wasongui = 0;
 
 	/**@}*/
 




More information about the Scummvm-git-logs mailing list