Commit Graph

119338 Commits

Author SHA1 Message Date
Cameron Cawley
cba6f05d71 COMMON: Fix compilation with C++98 2021-06-19 17:22:26 +01:00
D G Turner
3d6cdf3e7d TRECISION: Fix GCC Signed vs. Unsigned Comparison Warning 2021-06-19 16:03:53 +01:00
Cameron Cawley
beb0a88120 DOCS: Mention the on-screen menu button on Android 2021-06-19 14:31:25 +01:00
Matthew Duggan
c22aacea8e ULTIMA8: Make proc loop workaround less aggressive
The previous threshold caused crashes on U8 in some map transitions.  Set a
much higher value so Crusader will still pause noticably but U8 won't fail.
2021-06-19 22:23:33 +09:00
lb_ii
c50240281a WINTERMUTE: Add keymapper for two Persian games 2021-06-19 14:40:02 +02:00
lb_ii
89cd6b0eb0 WINTERMUTE: Improve language packs support 2021-06-19 14:40:02 +02:00
lb_ii
d4d508ccab WINTERMUTE: Add detection for 10 more Persian games 2021-06-19 14:40:02 +02:00
lb_ii
c3d83dd445 WINTERMUTE: Add Retail/Hayula marks for persian games 2021-06-19 14:40:02 +02:00
antoniou79
da461da6f6 GUI: Fix tooltip behavior to be less interruptive
The tooltip will show only if mouse cursor was moved but not on a hovered focused editText field

Changes and implications in this commit:
- Fix _lastMousePosition coordinates and time being updated upon giving focus to the tooltip
- Check for mouse cursor movement first in the decision for showing the tooltip, then check if sufficient time for mouse resting position has passed (kTooltipDelay).
- Prevents showing a tooltip for a widget if it is an editable field (editText) and has both mouse hovering above it and the current focus.
This is so that typing text is not interrupted / slowed down by a periodical display of the tooltip, if the mouse is hovering over the same text field that the user is editing.
- If mouse cursor is moved but lands on the same widget as the one that had its tooltip shown last, then show the tooltip but after a different (larger) delay kTooltipSameWidgetDelay.
- Still shows tooltip for other widgets, including editText ones, if the mouse is hovered over them and they are not the current focused editText widget.

The bug was mentioned for the Android port on the forums here:
https://forums.scummvm.org/viewtopic.php?p=95531#p95531
However, it is not Android specific, even though the slowdown is a lot more noticeable on an Android device.
2021-06-19 14:39:34 +02:00
Cameron Cawley
c1702a0953 ANDROID: Add an on-screen menu button 2021-06-19 14:37:35 +02:00
Martin Gerhardy
3ddce1cf3a EVENTRECORDER: relax the out-of-sync check
this might happen if you have EventSource instances registered, that
are querying the millis by themselves, too. If the EventRecorder::poll
is registered and thus dispatched after those EventSource instances, it
might look like it ran out-of-sync.
2021-06-19 14:34:52 +02:00
Martin Gerhardy
adc2671449 COMMON: fixed endless loop in recordings with only one screenshot
the stream was read after its end and the err() state wasn't checked properly
2021-06-19 14:34:52 +02:00
Martin Gerhardy
5af1192580 BACKENDS: fixed segfault in EventRecorder with buffer out of bounds writes
==3124361== Invalid write of size 8
==3124361==    at 0x483F803: memmove (vg_replace_strmem.c:1270)
==3124361==    by 0x4DBF61: SurfaceSdlGraphicsManager::grabOverlay(void*, int) const (surfacesdl-graphics.cpp:1753)
==3124361==    by 0x482051: ModularGraphicsBackend::grabOverlay(void*, int) (modular-backend.cpp:215)
==3124361==    by 0x434EE1: GUI::ThemeEngine::clearAll() (ThemeEngine.cpp:376)
==3124361==    by 0x40128E: GUI::EventRecorder::preDrawOverlayGui() (EventRecorder.cpp:558)
==3124361==    by 0x481DB2: ModularGraphicsBackend::updateScreen() (modular-backend.cpp:173)
==3124361==    by 0x559967: Graphics::Screen::updateScreen() (screen.cpp:62)
==3124361==    by 0x55991C: Graphics::Screen::update() (screen.cpp:56)
==3124361==    by 0x38AFC7: TwinE::TwineScreen::update() (twine.cpp:126)
==3124361==    by 0x3B8759: TwinE::Screens::adjustPalette(unsigned char, unsigned char, unsigned char, unsigned int const*, int) (screens.cpp:150)
==3124361==    by 0x3B8A89: TwinE::Screens::fadeToPal(unsigned int const*) (screens.cpp:207)
==3124361==    by 0x3B8403: TwinE::Screens::loadImage(int, int, bool) (screens.cpp:80)
==3124361==  Address 0x31453050 is 16 bytes after a block of size 512,000 alloc'd
==3124361==    at 0x483AB65: calloc (vg_replace_malloc.c:760)
==3124361==    by 0x55B38C: Graphics::Surface::create(unsigned short, unsigned short, Graphics::PixelFormat const&) (surface.cpp:75)
==3124361==    by 0x551111: Graphics::ManagedSurface::create(unsigned short, unsigned short, Graphics::PixelFormat const&) (managed_surface.cpp:153)
==3124361==    by 0x4352D5: GUI::ThemeEngine::setGraphicsMode(GUI::ThemeEngine::GraphicsMode) (ThemeEngine.cpp:453)
==3124361==    by 0x434A52: GUI::ThemeEngine::init() (ThemeEngine.cpp:324)
==3124361==    by 0x43501B: GUI::ThemeEngine::refresh() (ThemeEngine.cpp:394)
==3124361==    by 0x405780: GUI::GuiManager::screenChange() (gui-manager.cpp:603)
==3124361==    by 0x405C6B: GUI::GuiManager::processEvent(Common::Event const&, GUI::Dialog*) (gui-manager.cpp:677)
==3124361==    by 0x404EBA: GUI::GuiManager::runLoop() (gui-manager.cpp:429)
==3124361==    by 0x3FD847: GUI::Dialog::runModal() (dialog.cpp:77)
==3124361==    by 0x36D747: launcherDialog() (main.cpp:106)
==3124361==    by 0x36FF92: scummvm_main (main.cpp:552)

It looks like the _videoMode.overlayHeight in SurfaceSdlGraphicsManager::grabOverlay and ThemeEngine::_backBuffer::h are somehow out of sync after
starting the game in a different resolution as the gui was started with. So the overlayHeight is updated - but the backbuffer (Surface) is not resized.

This is with event recorder being active - right after starting the game and switching the resolution.
2021-06-19 14:34:52 +02:00
Martin Gerhardy
eccf343fcb GUI: removed superfluous break in EventRecorder 2021-06-19 14:34:52 +02:00
Martin Gerhardy
28b1a020d3 GRAPHICS: fixed formatting 2021-06-19 14:34:52 +02:00
Cameron Cawley
1e54610169 BBVS: Fix hang when starting the Loogie minigame on the DS 2021-06-19 14:32:10 +02:00
Cameron Cawley
0a9bf3708f DS: Update the MaxMod callback manually 2021-06-19 14:32:10 +02:00
Torbjörn Andersson
ac596de969 AUDIO: Add missing mutex lock to isReady()
At least it seems to me that the way e.g. Lure of the Temptress calls
isReady() to see if the driver has finished processing all the custom
sounds, _sysExQueue can be accessed by two threads simultaneously.

Which seems like a bad thing to me!
2021-06-19 14:19:09 +02:00
Filippos Karapetis
84d00f364a TRECISION: Fix playing videos without choices - bug #12622 2021-06-19 12:18:42 +03:00
Matthew Duggan
b7aeac773b ULTIMA8: Correct range calculation for Crusader intrinsic 2021-06-19 18:00:29 +09:00
Matthew Duggan
6b66d7007a ULTIMA8: Add a helper function to clean up list code 2021-06-19 18:00:29 +09:00
Matthew Duggan
adebe08365 ULTIMA8: Make stack size calculation a little clearer 2021-06-19 18:00:29 +09:00
Matthew Duggan
4c8707970c ULTIMA8: Update comments and remove dead code 2021-06-19 18:00:29 +09:00
Matthew Duggan
27829683aa ULTIMA8: Fix pointer-write endianness for Usecode globals
I don't think this actually ever gets used by the usecode so probably makes no
difference, fixed it to be sure anyway. Pointer read gets used a lot, but it
was already correct.
2021-06-19 18:00:29 +09:00
Matthew Duggan
c050663500 ULTIMA8: Avoid possible crash during Crusader teleport 2021-06-19 18:00:29 +09:00
Matthew Duggan
e686fbdf51 ULTIMA8: Clear Crusader stasis flag on load to fix loading from F7 2021-06-19 18:00:29 +09:00
Matthew Duggan
cb34bb7f05 ULTIMA8: Fix subtitle display on some Crusader movies 2021-06-19 18:00:29 +09:00
Matthew Duggan
8bf1fdc28e ULTIMA8: Remove duplicate Crusader shield type variables 2021-06-19 18:00:29 +09:00
Filippos Karapetis
5ddcff361c TRECISION: Improve handling of pixel formats - bug #12645 2021-06-19 11:14:52 +03:00
Paul Gilbert
2f3a09dc10 AGS: Added detection entries 2021-06-18 21:56:47 -07:00
Paul Gilbert
00603b341d AGS: Remove duplicate IAGSFontRenderer class definition 2021-06-18 21:24:27 -07:00
sluicebox
0ff7411a1d SCI: Fix SQ1 Spanish broken messages
¡Ay, caramba!
2021-06-18 15:18:49 -05:00
lb_ii
b8cf678a29 WINTERMUTE: Use BIDI_PAR_RTL / BIDI_PAR_LTR directions 2021-06-18 23:03:36 +03:00
lb_ii
9eef2c954d COMMON: Support Farsi at convertBiDiString(input, lang, dir) 2021-06-18 23:03:36 +03:00
lb_ii
dce92c8e41 COMMON: Introduce BiDi paragraph direction types 2021-06-18 23:03:36 +03:00
lb_ii
9cd8bbafa9 COMMON: Remove unused UnicodeBiDiText constructor 2021-06-18 23:03:36 +03:00
alxpnv
f67fc64460 ASYLUM: switch 'Keyboard Config' menu screen to using Keymapper 2021-06-18 14:09:46 +03:00
Eugene Sandulenko
46a25fd63e I18N: Update translation (Ukrainian)
Currently translated at 100.0% (1644 of 1644 strings)
2021-06-18 05:18:27 +00:00
Eugene Sandulenko
93c2a8af06 I18N: Update translation (Russian)
Currently translated at 100.0% (1644 of 1644 strings)
2021-06-18 05:18:17 +00:00
Paul Gilbert
f9906e1567 AGS: Workaround to load old ScummVM savegames
The original codebase imported to ScummVM had two issues with it
1) The component "Dynamic Surfaces" had been incorrectly named
"Drawing Surfaces" for a while, and was only corrected later on
2) The Managed Pool component was set as version 1, but later
changed back to version 0.

This commit allows these old savegames to still be loaded
under the new, corrected codebase
2021-06-17 19:37:32 -07:00
Paul Gilbert
5a0ff7ba67 AGS: Fix cast issues with AGSSock object Dispose methods 2021-06-17 18:04:32 -07:00
alxpnv
da95daf727 ASYLUM: remove Screen::takeScreenshot() 2021-06-17 15:40:10 +03:00
alxpnv
670d8d85f4 ASYLUM: use Common::sort() for sorting graphics queue items 2021-06-17 15:40:10 +03:00
D G Turner
4d6344e736 TRECISION: Fix GCC Shadowing Warning 2021-06-17 13:03:59 +01:00
antoniou79
9c1dbba83d BLADERUNNER: JANITORIAL: Fix spacing for commented out debug() 2021-06-17 08:44:20 +03:00
antoniou79
08d95bae75 BLADERUNNER: Fix Gordo walking on air and floating in NR02
Original bug - If McCoy exits and re-enters quickly while Gordo walks to podium

Related to the movementTrackWaypointReached() while McCoy is not on the actor's set
2021-06-17 08:44:20 +03:00
Paul Gilbert
13753f33a9 AGS: Fix error message string 2021-06-16 22:25:07 -07:00
sluicebox
ef333e8611 SCI: Fix several SQ1 message and verb script bugs 2021-06-16 22:27:15 -05:00
Paul Gilbert
58202e1839 AGS: Fix window resolutions for game width > 1000 2021-06-16 18:59:23 -07:00
Paul Gilbert
b6b138c25e AGS: Further fleshing out of AGSSock plugin 2021-06-16 18:59:23 -07:00