Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WINTERMUTE: Fix slider bug at 1 1/2 Ritter and Oknytt #1724

Merged
merged 2 commits into from Jul 2, 2019

Conversation

Projects
None yet
2 participants
@lolbot-iichan
Copy link
Contributor

commented Jul 1, 2019

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.

@bluegr

This comment has been minimized.

Copy link
Member

commented Jul 1, 2019

Well, it’s not a “pirate” translation, just a fan made translation, applied as a patch to the original. Can you please modify the description of the first commit, and remove the “pirate” bit, please?

lolbot-iichan added some commits Jun 27, 2019

WINTERMUTE: Add detection for some Russian version of 1 1/2 Ritter
This seems to be some fan-made translation patch. File "string3.tab"
seems to be the only thing translated, and it's stored as a plain file,
outside dcp packages. Patch is applied to original by adding this file.
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.

@lolbot-iichan lolbot-iichan force-pushed the lolbot-iichan:wme_ritter branch from 96942f7 to 092aab1 Jul 2, 2019

@lolbot-iichan

This comment has been minimized.

Copy link
Contributor Author

commented Jul 2, 2019

Well, it’s not a “pirate” translation, just a fan made translation, applied as a patch to the original. Can you please modify the description of the first commit, and remove the “pirate” bit, please?

Sorry, just a slang word, I didn't realize this sounds like some kind of blame in English.
Fixed at baa2044

@bluegr

This comment has been minimized.

Copy link
Member

commented Jul 2, 2019

Thanks! Great work! Merging

@bluegr bluegr merged commit 13dbfbd into scummvm:master Jul 2, 2019

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.