Age | Commit message (Collapse) | Author |
|
|
|
As an alternative to using the Screen class's functions, we can let
the VQA decoder draw directly to the backend. This won't work if the
game uses "hi-res mode", but I don't think that's ever the case for
Malcolm's Revenge. I believe the KyraEngine_MR::playVQA() function
ensures that the screen is properly updated after the movie has
finished.
This almost limits the VQA rewrite to vqa.cpp and vqa.h. Whether it's
better this way than changing the Screen functions to take a 'pitch'
parameter...? I don't know. But it's an alternative.
|
|
There isn't really a lot of benefit to this, but I think it's nicer
if all our video decoders at least try to use the same infrastructure.
|
|
Thanks to eriktorbjorn for noticing.
|
|
Thanks to wjp for reporting those. This only affects games with SJIS font use.
|
|
|
|
Done with:
git ls-files "*.cpp" *".h" | xargs sed -i -e 's/0x\([0-9a-f]*\)/0x\U\1/g'
|
|
|
|
- fix some glitches in CGA rendering mode
- revert most of 66da4777d476c6a9fc2a13351e3b30afc748fd94 (instead of having lots of EGA dithering routines throughout the whole EOB code we're going to implement some post-processing code in updateScreen())
|
|
Thanks to salty-horse for pointing at these.
|
|
This fixes some slowdowns in Kyra2 with the OpenGL backend for me. Most of the
updateScreen calls saved were introduced by us implementing the original
behavior of hiding the mouse before drawing onto the screen and showing it
again afterwards, since the mouse cursor is not drawn on the game screen in our
implementation (and unlike in the original) this is not necessary.
|
|
This is a regression from 86a817beb5eef248c5f5e28f18133db802a59c2e.
Formerly Kyra always queried the render_mode and initializes its Screen
functionality accordingly, even when the game actually only supported VGA.
While in the "Edit game..." options only VGA was selectable, the global options
still allowed for example EGA to be selected and thus messing up the internal
state. I only check the render_mode setting for EoB 1 and 2 now, which are
the only games which support the setting inside Screen.
|
|
|
|
(also fix various thing connected to CGA/EGA modes)
|
|
|
|
|
|
|
|
find -name '*.h' -or -name '*.cpp' | xargs sed -r -i 's@\(([A-Za-z0-9]+)\*\)@(\1 *)@g'
This seems to have caught some params as well which is not undesirable IMO.
It also caught some strings containing this which is undesirable so I
excluded them manually. (engines/sci/engine/kernel_tables.h)
|
|
|
|
(overlapping source/dest)
|
|
Thanks to wjp for noticing this.
|
|
This should(!) fix ARM compilation issues due to virtual inheritance.
|
|
|
|
(slightly change VGA palette loader to accomodate EOB1 palettes)
|
|
|
|
(required for decoding some EGA bitmaps in EOB1)
|
|
(also fix several cpp-check warnings)
|
|
|
|
also implement some new code (EOB1 portals, burning hands spell, etc.)
|
|
|
|
|
|
drawChar is overloaded in FontSJIS. One takes a "Surface &" as first
parameter another one "void *", they furthermore have the exact same
number of required parameters. The one "void *" just had a few extra
parameters with default values. This resulted in a bug in SCUMM, where
"VirtScreen *" (a subclass of Surface) was passed instead of "VirtScreen &"
and thus the method taking "void *" was incorrectly used.
To make it easier to spot such bugs in the future I just removed the default
values and thus disallow such calls.
|
|
|
|
|
|
Some backends may break as I only compiled SDL
|
|
|
|
This fixes an out of bounds write introduced with 9216c7e.
|
|
|
|
svn-id: r55806
|
|
svn-id: r54385
|
|
(used in the MI1 circus scene after Guybrush gets shot out of the cannon)
svn-id: r53616
|
|
- made use of LordHotos graphics/sjis code to reduce code duplication
- japanese mode for version 3 and 5 works fine now with few exceptions (some line spacing glitches in MI1 intro etc.)
svn-id: r53554
|
|
svn-id: r53161
|
|
Our warning() and error() functions always add an exclamation mark
to the end of the message anyway.
svn-id: r52791
|
|
svn-id: r52340
|
|
svn-id: r51169
|
|
svn-id: r49069
|
|
These functions are only used internally be Engine subclasses, and
by moving them to a separate header we can reduce indirect header
dependencies.
svn-id: r48934
|
|
The idea behind this is exactly the same as behind r48620,
but it affects all engines, thus engine authors can now use
CursorMan.replaceCursor without having to worry about possible
memory leaks or the like.
svn-id: r48626
|
|
CursorMan.pushCursor too. Also replace CursorMan.popAllCursors by CursorMan.popCursor to prevent the caller's cursor from being destroyed.
svn-id: r48621
|