aboutsummaryrefslogtreecommitdiff
path: root/engines/wintermute/base
diff options
context:
space:
mode:
authorlolbot-iichan2019-07-01 02:41:41 +0300
committerFilippos Karapetis2019-07-02 08:00:30 +0300
commit13dbfbd8d7d03a4463f739775e1d383152d4253b (patch)
treed8afca73e582c445f37907a47598e62509baba18 /engines/wintermute/base
parentabec0982b9c70f2b88b0744f5abe82b55f6217e8 (diff)
downloadscummvm-rg350-13dbfbd8d7d03a4463f739775e1d383152d4253b.tar.gz
scummvm-rg350-13dbfbd8d7d03a4463f739775e1d383152d4253b.tar.bz2
scummvm-rg350-13dbfbd8d7d03a4463f739775e1d383152d4253b.zip
WINTERMUTE: Fix slider bugs in several games
There is a bug introduced in WME Lite. Testcase: 1. Download https://github.com/lolbot-iichan/wme_testsuite/tree/master/slider_test/packages 2. Download https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/wmelite/wmelite_10_win.zip 3a. Run game.exe -> Slider moves with the mouse while it is pressed and released when mouse is released 3b. Run wmelite.exe -> Slider is never released 3c. Run ScummVM -> Slider is never released Related bugs: https://bugs.scummvm.org/ticket/6567 https://bugs.scummvm.org/ticket/9861 Reason: slider is a button object that changes it's X until "LeftRelease" event is revieved and breaks the endless loop. Sample code: https://github.com/lolbot-iichan/wme_testsuite/blob/master/slider_test/data/interface/system/speechvolume.script However, WME Lite does not send "LeftRelease" events to any objects, if Game object can handle such event, even is game is frozen and UI is shown. Original code: https://github.com/lolbot-iichan/Wintermute-Engine/blob/master/src/engine_core/wme_ad/AdGame.cpp#L2218 Changed in WME Lite: https://github.com/lolbot-iichan/wmelite/blob/master/src/AdGame.cpp#L2120 This behaviour was introduced in SVN period of wmelite, I believe it was made on purpose for handling some iOS scenarios at commit #37 mentioned on page https://code.google.com/archive/p/wmelite/source/default/commits My proposal is to mark iOS apps as WME_LITE and fill exact WME_1_X_X/WME_LITE versions for all known games. WME_1_X_X can be seen by right-clicking on main executable and seems to be non-empty for almost all existing WME games.
Diffstat (limited to 'engines/wintermute/base')
-rw-r--r--engines/wintermute/base/base_engine.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/engines/wintermute/base/base_engine.h b/engines/wintermute/base/base_engine.h
index 905d227d3c..9e51c176d4 100644
--- a/engines/wintermute/base/base_engine.h
+++ b/engines/wintermute/base/base_engine.h
@@ -49,6 +49,8 @@ enum WMETargetExecutable {
WME_1_8_0,
WME_1_8_6,
WME_1_9_0,
+ WME_1_9_3, //displayed version of 1.10.1beta is "1.9.3"
+ WME_LITE,
LATEST_VERSION
};