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.
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.
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.
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.
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.
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
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.
- 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
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.