Age | Commit message (Collapse) | Author |
|
Many engines follow the advice in audio/midiparser.h and create a
"pseudo-MidiDriver" subclass. But MidiParser really only needs a tiny
subset of the MidiDriver capabilities, namely those found in
MidiDriver_BASE. So we try to subclass from that whenever possible; this
allows us to remove many stub methods, and enables further future
simplifications.
|
|
|
|
This in turn enables modifying MidiDriver_MPU401::close() to allow
it to be called on a midi driver that has not yet been opened.
The specific issue that triggered me to make these changes was a
crash-upon-quit in HUGO, caused by it instantiating a midi driver,
then encountering an error (missing hugo.dat) *before* having
opened the new midi driver; the general cleanup code then tries
to close the (not yet opened) midi driver -> kaboom
Also fixed some engines which were leaking MidiDriver instances.
|
|
This allows us make _windowList private again
|
|
This can be used to see a list of the currently open windows. Also, added
a sanity check for the "al" command and performed some minor cleanup
|
|
|
|
This shows the current animation list, along with object properties,
positions and the scripts they belong to
|
|
This version it contains a broken resource.002 file inside disk 3, which
contains a large chunk of zeros and several broken resources (e.g. pic
250 and views 250 and 251).
|
|
Tip of the day: git grep -w PI
|
|
|
|
|
|
|
|
|
|
|
|
If an object defines more variables than its base class, some method
selectors may be hidden. This code tries to enumerate the affected
selectors. It may be useful for mass-scanning objects using
'find_callk Dummy'.
It's disabled by default currently since it does things to partially
uninitialized objects that I can't guarantee are 100% safe at this
point.
|
|
Create a custom segment manager within find_callk, so that the game's
segment manager won't be affected by loading and unloading scripts in there
|
|
|
|
|
|
|
|
Also, fix the kernel signature for kFormat to require two parameters
|
|
|
|
Thanks to waltervn for his work and help on this
|
|
|
|
|
|
|
|
This makes the workaround for the hang in the Colonel's Bequest
shower scene (bug #3122075) unnecessary.
|
|
|
|
|
|
This should ensure disasm will disassemble an entire function, and
not stop at an intermediate ret opcode.
|
|
This was caused by a buggy script, most probably the result of an
incorrect copy/paste while processing the original script. Fixed with a
script patch.
|
|
Fixed a bug (the "bwt" and "bc" options were inversed) and added the
ability to skip a defined number of ret calls, useful when a function
continues after a ret call
|
|
This ensures that these selectors will be detected regardless of the game
ID, when they're missing
|
|
|
|
The cause for this bug turns out to be a corrupt object that as
a side effect accidentally bypasses its own corruption. See the
added comments for details.
Also add a warning that points out similarly corrupted objects.
|
|
This is a heap patch for an odd object used in that scene, which will
suffice for now (until we find why this works in SSCI). Thanks to wjp
for his help and work on this
|
|
A regression from 463e475bd65
|
|
A regression from d2ad7898d93
|
|
|
|
|
|
Trying to delete a script marked as deleted should do nothing. Hoyle 3
tried to uninstantiate scripts more than once, and we incorrectly
decreased the reference count of associated scripts more than once,
thereby killing them. This properly fixes bug #3038837 (removed the
hack for it). Many many thanks to wjp for his help on this :)
|
|
Renamed some variables, functions and comments related to the
undithering code, to make them a bit easier to understand
|
|
|
|
Shivers uses a custom save/load system, so we can't replace its dialogs
|
|
|
|
|
|
|
|
kGetSaveFiles() should be worked out there.
|
|
|
|
- Added comments for all the different view unpacking algorithms
- Merged the SCI1 VGA and SCI1.1 VGA unpacking code
- Fixed views in Longbow Amiga (the palette is still broken, though)
- Used memset()/memcpy() instead of looping through
- Fixed a regression of rev. d2ad789 (LSL1 Spanish, bug #3135872)
|
|
Instead of querying the event manager for the current mouse cursor coordinates
kGetEvent now uses the saved mouse positions, which will assure every event
will be processed with the correct coordinates instead of the current ones.
Various other functions using SciEvent directly were adapted too.
This fixes cursor click positions for the WinCE backend.
Thanks to wjp and waltervn for helping me with this.
|