[Scummvm-git-logs] scummvm branch-2-3 -> eb7747d41deb472fefe661af7ee64c8391c754cc
dreammaster
dreammaster at scummvm.org
Thu Sep 30 04:48:23 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:
eb7747d41d AGS: Fix inventory scroll buttons in 5 Days a Stranger
Commit: eb7747d41deb472fefe661af7ee64c8391c754cc
https://github.com/scummvm/scummvm/commit/eb7747d41deb472fefe661af7ee64c8391c754cc
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2021-09-29T21:48:19-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 447bf91197..2d8fc4be50 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