Age | Commit message (Collapse) | Author |
|
These issues were identified by the STACK tool.
By default, the C++ new operator will throw an exception on allocation
failure, rather than returning a null pointer.
The result is that testing the returned pointer for null is redundant
and _may_ be removed by the compiler. This is thus optimization
unstable and may result in incorrect behaviour at runtime.
However, we do not use exceptions as they are not supported by all
compilers and may be disabled.
To make this stable without removing the null check, you could qualify
the new operator call with std::nothrow to indicate that this should
return a null, rather than throwing an exception.
However, using (std::nothrow) was not desirable due to the Symbian
toolchain lacking a <new> header.
A global solution to this was also not easy by redefining "new" as "new
(std::nothrow)" due to custom constructors in NDS toolchain and various
common classes.
Also, this would then need explicit checks for OOM adding to all new
usages as per C malloc which is untidy.
For now to remove this optimisation unstable code is best as it is
likely to not be present anyway, and OOM will cause a system library
exception instead, even without exceptions enabled in the application
code.
|
|
Thanks to digitall for testing.
|
|
|
|
This adds MIDI state tracking to allow channels to be temporarily
unmapped and later re-mapped when there are free device channels
available again.
|
|
|
|
|
|
also remove hacks for kq5ega + sq4ega
|
|
fixes sq4 floppy properly
|
|
|
|
for dual mode (text+speech at the same time)
|
|
for dual mode (text+speech at the same time)
|
|
|
|
behaviour wasn't changed in SCI1, instead it seems that SSCI draws overlays to separate memory and then copies them over. Previous commit caused regression in qfg1vga (funny room)
|
|
fixes bug #6446
|
|
|
|
on init/reset the game resets the audio mode to "speech", which would make it impossible to watch the intro using "dual mode"
|
|
adds a third button state to the game menu
this state is "dual mode" (audio+text at the same time)
currently uses the "speech" graphic
CD versions of Laura Bow 2 + King's Quest 6 will now always get patched
|
|
KQPrint windows now get closed automatically when in audio+text mode
|
|
|
|
fixes cassima textboxes during the ending
|
|
|
|
|
|
|
|
fixes bug #5252
|
|
|
|
fixes dialog of man in robe complaining about mints in pawn shop
|
|
SQ4 floppy only, Sierra's official patch didn't fix it properly
|
|
fixes bug #5016
|
|
This is because objects may be loaded before their base objects,
which causes initBaseObject to fail for SCI0.
Script::initializeObjectsSci0 already did this, but
SegManager::saveLoadWithSerializer did not when calling
initBaseObject after loading a savegame.
|
|
|
|
Thanks to wjp and [md5] for helping
|
|
This contains the sync data in the Windows version of KQ6CD.
Note that currently the sync36 resource is 2 bytes bigger
(it contains 2 bytes from the RAVE resource). Some test code
has also been added to dump the RAVE sync resources
|
|
After discussing with m_kiewitz that these have been intentional.
|
|
Powered by astyle and some manual work to avoid breaking multiple statement
lines into multiple lines consisting of single statements.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fixes hires issues
|
|
|
|
|
|
|
|
|
|
Each engine now only has to provide a single configure.engine file
adding the engine into the configure script, which then produces the
required other files automatically.
|
|
This is now generated automatically by the configure script from the
engine directory names.
|
|
This is the third and final commit enabling fully pluggable engines.
Now providing an engine folder contains a configure.engine, engine.mk
and engine-plugin.h file, it will be picked up automatically by the
configure script.
|
|
This is the second part of allowing engines to be added dynamically.
Each folder in engines/ which must contain a file named "engine.mk"
containing the make definitions for that engine.
|
|
This is the first part of allowing engines to be added dynamically.
They are placed into a folder in engines/ which must contain a file
named "configure.engine" to add the engine, which is pulled into the
top level configure script automatically.
|