Commit Graph
137148 Commits
Author SHA1 Message Date
Scott Percival 7c975eff43 DIRECTOR: LINGO: Adjust freezing/thawing behaviour 2022-12-09 01:10:57 +01:00
Scott Percival 225460f875 DIRECTOR: LINGO: Refactor SpaceMgr XObj, add LLink support 2022-12-09 01:10:57 +01:00
Scott Percival 30e9d330df DIRECTOR: Implement the paramCount
At first glance it would seem we could use funcSym.nargs for this,
except it is fixed to the number of args in the function definition.
We also can't derive it from the argument list that is sent through,
as it is truncated/padded with VOIDs. To keep things simple, track
paramCount as part of CFrame.
2022-12-09 01:10:57 +01:00
Scott Percival 3ea7f10467 DIRECTOR: Freeze LingoState instead of using callstack
Previously, the Lingo state would be frozen by persisting the frames on
the bottom of the callstack with a special flag. This required extra
logic to determine whether or not the callstack was intended to be empty
after execution finished, with some complex edge cases.

The new approach is to swap out the LingoState object on the window,
meaning that an empty callstack always signifies execution has completed.
It remains to be seen if we'll need to track more than one frozen
context; for now it seems to be okay.

Fixes driving to locations in DEVO Presents: Adventures of the Smart Patrol.
2022-12-09 01:10:57 +01:00
Scott Percival 873095c87e DIRECTOR: Move current Lingo state into Window-owned struct
The previous arrangement was to copy the bits of Lingo state back and forth from
the Window object to the Lingo instance, and query the window for the
callstack. This refactor consolidates the current Lingo state into a single
struct, owned by the Window object and accessible via a pointer on the
Lingo object.
2022-12-09 01:10:57 +01:00
Roberto Sánchez 75231868db GUI: Place empty metadata games last when sorting 2022-12-08 23:19:45 +01:00
Eugene Sandulenko 7e69d548d7 DIRECTOR: Consider looped sounds not playing after first iteration
Fixed exit door in the7colors, where the frame had a looping
birds chirping sound together with the following Lingo:

  if the soundbusy of 2 then go to the frame

And that led to an infinite loop and inability to pass through the
opened door.

The original apparently is returning 0 in-between the sound loops
since it manually restarts the sound after its completion. We, in
contrast, are optimizing that and using LoopedAudioStream
since f48dbb43b6
2022-12-08 23:14:54 +01:00
Eugene Sandulenko 3703fee378 DIRECTOR: Do not reset looping handle early
playStream() is called right after setting loopPtr, which was leading
to immediate reset of loopPtr. Thus, we were not able to control
the looping sounds
2022-12-08 23:14:54 +01:00
BLooperZ fbfe0280a9 COMPOSER: Fix typo in demo title 2022-12-08 19:09:38 +01:00
BLooperZ 76737d131d COMPOSER: Fix macintosh detection entries for v1 2022-12-08 19:09:38 +01:00
BLooperZ 3e12c9ddc2 COMPOSER: Load book config from MacBinary 2022-12-08 19:09:38 +01:00
Vladimir Serbinenko 2bd777c926 KYRA: Support files for installed multi-floppy mac kyra1
This is the case for multi-floppy installer when installed or
extracted.
2022-12-08 19:06:12 +01:00
neuromancer 38959ebc26 FREESCAPE: workaround to make sure walls are enforced 2022-12-08 09:19:04 +01:00
neuromancer 2859ab0f44 FREESCAPE: update the sensor list when the current area changes in driller 2022-12-08 09:19:04 +01:00
neuromancer 8eea9064df FREESCAPE: disallow player to change areas when it happens too close to the corners 2022-12-08 09:19:04 +01:00
Matthew Jimenez a7d589e738 ULTIMA8: Set the minimap gump default size to simple values insteaf of unnecessary calculation 2022-12-07 22:15:33 -06:00
sluicebox 2e7c3e4f7d SCI: Update LB2 Act 5 script patch for wired door
Fixes the remaining edge cases with this buggy door
2022-12-07 16:26:09 -08:00
sluicebox e2d216013d SCI: Fix LB2 Act 5 transom bugs 2022-12-07 16:26:08 -08:00
sluicebox 334191f636 SCI: Add PATCH_GETORIGINALBYTES to script patcher
Script patches often involve moving entire sequences of existing
instructions. Now that can be done with a smaller patch definition.
2022-12-07 16:26:07 -08:00
sluicebox 903498b6dc SCI: Fix LB2 Act 5 broken timers 2022-12-07 16:26:07 -08:00
sluicebox 442792eb78 WIN32: Remove SHGetSpecialFolderPath warnings on Win95 2022-12-07 16:26:07 -08:00
ScummVM-Translations 91092594bf I18N: Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: ScummVM/scummvm
Translate-URL: https://translations.scummvm.org/projects/scummvm/scummvm/
2022-12-07 23:45:15 +00:00
Matthew Jimenez 8fe9544357 ULTIMA8: allow minimap gump to hide on double click 2022-12-07 17:44:34 -06:00
ScummVM-Translations 7b2403e587 I18N: Update translations templates 2022-12-07 23:02:50 +00:00
Vladimir Serbinenko d7aa54bf30 KYRA: Support multi-floppy installer 2022-12-08 00:02:39 +01:00
Vladimir Serbinenko 1b90cea645 KYRA: Support loading stuffit archive from abstract stream
Multi-floppy installer needs to use a fake stream composed from several
real files.
2022-12-08 00:02:39 +01:00
Vladimir Serbinenko 9f4d744b46 KYRA: Store cached installer mac archive as its simple name
This avoids the complexity of discovering its name again.

It makes supporting multi-floppy installer much less hairy as well
2022-12-08 00:02:39 +01:00
Vladimir Serbinenko 2c8fd71b47 KYRA: Switch to openFileOrDataFork 2022-12-08 00:02:39 +01:00
Vladimir Serbinenko d9888b9ac6 COMMON: Support stuffit-13 algorithm 2022-12-08 00:02:39 +01:00
Vladimir Serbinenko 571a807257 COMMON: Switch stuffit to MemcachingCaseInsensitiveArchive 2022-12-08 00:02:39 +01:00
Matthew Jimenez c6654065d2 ULTIMA8: Fix incorrect header define for minimap.h 2022-12-07 17:02:23 -06:00
Matthew Jimenez 559e954eda ULTIMA8: Small cleanup for finding minimap bounds 2022-12-07 17:02:23 -06:00
Matthew Jimenez c0fc6f583e ULTIMA8: Crop saved minimap surfaces to non-black area. 2022-12-07 17:02:23 -06:00
Matthew Jimenez a016f1497d ULTIMA8: Split minimap generation into a separate class from the gump 2022-12-07 17:02:23 -06:00
Matthew Jimenez 2eed148582 ULTIMA8: Update minimap storage to use HashMap 2022-12-07 17:02:23 -06:00
Matthew Jimenez 147b6cea04 ULTIMA8: Reduce minimap pixel format to RGB5551 2022-12-07 17:02:23 -06:00
Matthew Jimenez b7b3a66b10 ULTIMA8: Adjust minimap save to store array size similar to world maps 2022-12-07 17:02:23 -06:00
Matthew Jimenez 2183e1bb0b ULTIMA8: Store minimap data for all maps and add to savegame 2022-12-07 17:02:23 -06:00
eientei 2904fd0c25 DIRECTOR: Fix a couple copy-paste errors in chunks.lingo 2022-12-07 23:00:01 +01:00
Stian Schultz 9209b69bfd I18N: Update translation (Norwegian Bokmål)
Currently translated at 100.0% (1785 of 1785 strings)
2022-12-07 21:59:00 +00:00
Roberto Sánchez 7f457f8e94 BASE: Refactor EngineManager::createTargetForGame 2022-12-07 22:58:48 +01:00
Roberto Sánchez 5854585b33 BASE: Add check to avoid domain override when launching from command line with -p argument 2022-12-07 22:58:48 +01:00
Roberto Sánchez e2b0259d29 BASE: Add function EngineManager::generateUniqueDomain 2022-12-07 22:58:48 +01:00
Walter Agazzi bc7b67555a AGS: Mark Fatman as full game 2022-12-07 20:35:11 +01:00
Walter Agazzi b340feca62 AGS: Complete freeware entries missing language info 2022-12-07 20:13:49 +01:00
Walter Agazzi 844f17b57a AGS: Complete demo entries missing language info 2022-12-07 12:02:23 +01:00
neuromancer 9d827c9915 FREESCAPE: save/load color remappings in areas, if any 2022-12-07 09:35:31 +01:00
neuromancer 23e109ed10 FREESCAPE: make sure color is black as background in DOS/EGA release of driller 2022-12-07 09:35:31 +01:00
neuromancer 2110fe69ba FREESCAPE: disable no clip mode when a game is restarted or reloaded 2022-12-07 09:35:31 +01:00
neuromancer 0af9bf8885 FREESCAPE: avoid player to escape the area flying up 2022-12-07 09:35:31 +01:00