Commit Graph
92 Commits
Author SHA1 Message Date
Simon Delamarre 037cf68a80 GOB: transparency fix in some Adibou2 static images
Fix black background around icons in Application selection screen.
2023-01-28 14:09:04 +01:00
Simon Delamarre 0ad57d3c09 GOB: fix a black screen after the paint game in some Adibou2 versions
Related to a weird video mode ("0x18"), in which some surfaces must not be reset when re-calling the initScreen() opcode.
2022-12-16 22:27:08 +01:00
Simon Delamarre e79da632b6 GOB: fix the intro being skipped in some Adibou2 versions 2022-12-16 22:27:08 +01:00
Cameron Cawley 28d7b361ea COMMON: Move more file format code into common/formats 2022-12-11 22:33:23 +01:00
Simon Delamarre 50a6555ec3 GOB: misc format/style fixes in Adibou2 changes 2022-12-02 11:44:36 +01:00
Simon Delamarre 5d519ed33b GOB: be more conservative about possible regressions in Adibou2 changes 2022-12-02 11:44:35 +01:00
Simon Delamarre 9f8622c38d GOB: add a few TODOs in Adibou2 changes 2022-12-02 11:44:35 +01:00
Simon Delamarre 6a1e2d5d21 GOB: misc format/style/typo fixes in Adibou2 changes 2022-12-02 11:44:35 +01:00
Simon Delamarre 685277c2ec GOB: fix another parasite sprite issue in Adibou2
Some sprite cleanup was still missing.
2022-12-02 11:44:34 +01:00
Simon Delamarre 988d4882a2 GOB: fix a few cursor glitches in Adibou2
Try to mimic more closely what is done in the executable.

Fixes black squares sometimes blinking around the cursor (just after selecting the character, when hoovering seeds bags in the vegetable garden...), and fix a temporarily disappearing "waiting" cursor in some "change CD" screens.
2022-12-02 11:44:34 +01:00
Simon Delamarre 653ae7caf3 GOB: ensure waitSoundEnd is not called on "live" videos
waitSoundEnd call finishSound(), an then updateLive(), which will load new frames while being in "finished" state.
The !props.noBlock check on call site was not enough, as sometimes the close order on a live video does not have "live" flags.
2022-12-02 11:44:33 +01:00
Simon Delamarre 31e0fda5e7 GOB: more Adibou2 videos must be played in the background
Besides startFrame == -2, it seems that a video must also go to the background (i.e. be non-blocking) if start_frame == end_frame == 0 *and* if it is not to be drawn into a specific sprite.

But more conditions may apply - they are very difficult to follow in the ASM.

This fixes interrupted sound issues in Adibou2 "Playtoons" minigame help descriptions.
2022-12-02 11:44:33 +01:00
Simon Delamarre 9beca4c206 GOB: work around an infinite loop issue in Adibou 2 "change CD" screen
It seems that this bug is harmless in the original game because it requires a certain combination of files to be present in the CD, which is not the case in practice in Adibou2 CDs ; but it exists for us because our fake "CD" search includes all files in game directory and sub-directories.
2022-12-02 11:44:33 +01:00
Simon Delamarre 4ae76a7812 GOB: in "printText" opcode, bits 8-16 of "backColor" indicate the destination surface
Fixes the text in Adibou2's diploma.
2022-12-02 11:44:32 +01:00
Simon Delamarre 2d0ee1ffa1 GOB: fix some parasite sprites issues in Adibou2
Some sprite cleaning was missing when destroying objects.
2022-12-02 11:44:32 +01:00
Simon Delamarre bc18fc6361 GOB: workaround to handle application CD changes in some Adibou2 versions
Some versions of Adibou2 are only able to handle one CD at a time. This workaround enable to add Adibou2 applications by copying them as a subdirectory of the game directory, just like in multi-cd-aware versions.
2022-12-02 11:44:32 +01:00
Simon Delamarre 0fcbc34266 GOB: fix regression in Adibou2 paths handling
We still need to call getFile() on paths to remove special tokens (@:, <ALLCD>...), but we do not strip paths anymore.
2022-12-02 11:44:32 +01:00
Simon Delamarre 33e13b2ba3 GOB: workaround a bug in Adibou2 scripts after character deletion
Characters deletion in Adibou2 work by deleting all files matching with character number as suffix, but this removes also some unrelated save files about installed applications
2022-12-02 11:44:31 +01:00
Simon Delamarre d9951de616 GOB: fix a crash in o7_readData when filename is empty 2022-12-02 11:44:31 +01:00
Simon Delamarre 8a08d6470b GOB: o7_deleteFile, allow to delete all files matching a pattern
Fixes the "delete character" button in Adibou2

We cannot strip paths for this opcode, as scripts sometimes delete all files in a directory (e.g. "TEMP\*.*", that would have been simplified as "*.*" with path stripping).

Use also full path match for read/write/copy/move operations, to allow distinguishing savegames with same filename under different directories, with a fallback to simple filename matching.
2022-12-02 11:44:31 +01:00
Simon Delamarre 283fd1b103 GOB: more cursor resizing fixes for Adibou2
This fixes remaining cursor issues in an English version of Adibou2.
2022-12-02 11:44:31 +01:00
Simon Delamarre 4e77480374 GOB: cursors can now be loaded from NE executables
Some Adibou2 versions use NE executables instead of PE, and rely on the "name table" feature for map the cursor name the cursor data.
2022-12-02 11:44:31 +01:00
Simon Delamarre 656cc44dfe GOB: use oPlaytoons_printText in Adibou2
Partially fix the "text" tool in paint game, font spacing is now correct (there is still a key listening issue, though).
2022-12-02 11:44:29 +01:00
Simon Delamarre 519b9b88ec GOB: disable filename replacement for Adibou2 database IDs.
Fix missing names in applications list.
2022-12-02 11:44:29 +01:00
Simon Delamarre f19528a0ad GOB: avoid warning in o7_setActiveCD when matching main game directory 2022-12-02 11:44:29 +01:00
Simon Delamarre 46f23e34bf GOB: another fillRect mode in Adibou2 (replace a specific color)
Fixes choice highlighting in "Adibou station" game
2022-12-02 11:44:28 +01:00
Simon Delamarre 48fa677c17 GOB: fix cursor issues in Adibou2
- resizeCursors should be able to shrink cursor sizes (sometimes Adibou2 uses 50*50 cursors, and then goes back to 32*32)
- cursor palettes (_draw->_cursorPalettes) should not be used when initializing cursoes with o1_initCursor
2022-12-02 11:44:28 +01:00
Simon Delamarre e3e6c76923 GOB: handle saves for Adibou2 construction minigame
A few int16->utin16 were needed again.
2022-12-02 11:44:28 +01:00
Simon Delamarre 93f29de14f GOB: close only live sound when getting special video "RIEN" in Adibou2
Instead of closing all *videos*, which messes with open slots and lead to glitches.
2022-12-02 11:44:27 +01:00
Simon Delamarre e67c5be5a5 GOB: fix disappearing sprites issues in Adibou2 2022-12-02 11:44:27 +01:00
Simon Delamarre 44c724db55 GOB: more video object glitches fixes in Adibou2 2022-12-02 11:44:27 +01:00
Simon Delamarre 1e020bcd04 GOB: fix phantom sprites glitches in Adibou2 vegetables garden 2022-12-02 11:44:27 +01:00
Simon Delamarre 40f834fd7c GOB: implement copyFile and moveFile 2022-12-02 11:44:26 +01:00
Simon Delamarre 964133c415 GOB: misc file path related adjustments in Adibou2 2022-12-02 11:44:26 +01:00
Simon Delamarre 27e5234e17 GOB: disable "split" surface for Adibou2
The "split" logic seems to have disappeared in recent versions of the engine (it was triggered by mistake in some situation, resulting in bad draws).
o7_initScreen still need to be fully adapted.
2022-12-02 11:44:26 +01:00
Simon Delamarre 444a0586eb GOB: implement o7_loadMultObject
Special behaviour when x == -1234 and y == -4321 (close video, isStatic = 1).
2022-12-02 11:44:25 +01:00
Simon Delamarre 95ddb1ca87 GOB: new workaround for Adibou2 failed assert(_finished) sound problem
Seems to be occurs when o7_playWmdOrMusic is called a second time to close a previously open video
2022-12-02 11:44:25 +01:00
Simon Delamarre 5a53644bd7 GOB: rename changeDirection -> setGoblinState 2022-12-02 11:44:24 +01:00
Simon Delamarre c0f76d7578 GOB: Adibou2 characters path computation 2022-12-02 11:44:24 +01:00
Simon Delamarre 24b6eeb0a0 GOB: Adibou2 characters animations 2022-12-02 11:44:24 +01:00
Simon Delamarre 0f95ad760f GOB: save children personal data and completed exercises in Adibou2
child personal data: name, birth date, face sprite
2022-12-02 11:44:23 +01:00
Simon Delamarre f104d53bb6 GOB: Fix cursor palette issue in Adibou2 2022-12-02 11:44:23 +01:00
Simon Delamarre 8cf57d9d4a GOB: add stub for o7_moveFile (op draw 0x62) 2022-12-02 11:44:23 +01:00
Le Philousophe 4a82710bc0 GOB: Don't use unsafe sprintf and vsprintf 2022-10-23 22:46:19 +02:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Orgad Shaneh 8d91d66a15 GOB: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
Cameron Cawley 46056aba3c ENGINES: Reduce winexe_*.h header includes 2020-01-11 17:34:12 +02:00
Cameron Cawley 948c555ea6 ALL: Create all instances of NEResources and PEResources using new instead of on the stack
Also adapted WinCursorGroup and MacMenu to reflect this.
2020-01-11 17:34:12 +02:00
Matthew Hoops 740b6e8fbd IMAGE: Move all ImageDecoders to image/ 2014-02-28 00:27:28 -05:00
Johannes Schickel ea21bc939a GOB: Make GPL headers consistent in themselves. 2014-02-18 02:39:34 +01:00