Age | Commit message (Collapse) | Author |
|
This code is identical to the kArrayGetData implementation.
|
|
The original interpreter allowed most string references to be
null references, in which case it would substitute an empty
string.
|
|
We have lots and lots of -Wimplicit-fallthrough warnings, and I
don't know if it's worth fixing them or not. But if we want to,
this is how it can be done.
|
|
|
|
|
|
|
|
SSCI created a fake va_list and passed it to vsprintf, so extra
placeholders would just silently end up reading garbage memory.
|
|
At least Shivers has VMDs with resource IDs above 2^15; treating %d
as signed means that the wrong filename gets created.
|
|
|
|
This change invalidates earlier SCI32 save games, which separated
arrays and strings in an incompatible manner. Old save games
contain invalid references to a string segment which no longer
exists, and contain incompatible array structures that lack
critical type information.
|
|
This entire kString code needs to be reviewed/refactored, but
at least this fix is more complete than the last one.
Thanks to @lordhoto and @wjp for their assistance.
|
|
|
|
This implementation is not 100% engine accurate, but it is
more accurate than what was there, and hopefully the differences
between this and the engine code are merely cosmetic.
The known (intentional) differences are:
1. Uses ScummVM rects inside the engine code, converting to/from
SCI rects on the kernel edges and when scaling
2. Fewer side effects when performing operations that *should*
have been pure from the start (like text dimension calculation).
Still not side-effect-free, but at least things like colours
and alignment do not need to be reset every time a measurement
is taken, unlike in the actual engine.
Editor controls and some other kBitmap code are temporarily
disabled as a result of changes to GfxText32 until they can be
updated to be engine-accurate.
|
|
Thanks to lskovlun for his help
|
|
- Detection works via signatures (couldn't find a better way)
- new kString subcalls were introduced SCI2.1 LATE
- kString now has signatures and is split via subcall table
- kString fix, so that KQ7 doesn't crash, when starting a chapter
- Sci2StringFunctionType removed, because no longer needed
|
|
|
|
|
|
|
|
Thanks to waltervn for testing values from running in DOSBox.
Fixes bug #3034704
|
|
Negative numbers now work, and hex overflow is handled like SSCI.
Thanks to waltervn for testing.
|
|
|
|
This is to properly fix bug #3601090 without removing any functionality.
The additional check ensures that the look and hand icons work with the
jar. Many thanks to lskovlun for debugging this and providing a fix
|
|
becomes unsolvable"
Many thanks to lskovlun for debugging this problem and finding the
offending script code that caused it.
|
|
|
|
Thanks to Walter for noticing this.
|
|
Thanks to digitall for spotting this
|
|
|
|
No functionality change has been made with this commit. This avoids
setting and getting the reg_t members directly, and is the basis of any
future work on large SCI3 scripts (larger than 64KB)
|
|
|
|
Fixes one of the bugs in the savegame selection screen in Phantasmagoria
|
|
|
|
On some systems, passing signed chars to macros like isspace() etc. lead
to a runtime error. Hence, mark these macros as forbidden by default,
and introduce otherwise equivalent alternatives for them.
|
|
|
|
Thanks to wjp for his suggestion
|
|
|
|
The rawString variable is no longer pointing to invalidated data. This
fixes cases where strings are manipulated by game scripts, such as the
graveyard and rada drum puzzles in GK1
|
|
with object lifetimes.
|
|
|
|
not working"
Thanks to wjp for his valuable help on this
|
|
SSCI used a sprintf to handle %c, appending the result to the output,
which is effectively a nop for a zero argument.
This is bug #3368821. Thanks to digitall for tracing it to KFormat
and testing this patch.
|
|
This prevents a string pointer from getting invalidated under some
circumstances in kString(Dup).
Thanks to lephilousophe for the patch.
|
|
This fixes a potential problem with passing char values that would be sign-extended and yield unexpected results.
See http://msdn.microsoft.com/en-us/library/ms245348.aspx
|
|
This tries to make our code a bit more compliant with our code formatting
conventions. For future use, this is the command I used:
git ls-files "*.cpp" "*.h" | xargs sed -i -e 's/[ \t]*$//'
|
|
|
|
Dr. Myklos"
|
|
|
|
|
|
Also, fix the kernel signature for kFormat to require two parameters
|
|
|
|
|