Commit Graph

284 Commits

Author SHA1 Message Date
Torbjörn Andersson
238aa2be2a KYRA: Let the VQA decoder draw directly to the backend
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.
2014-01-18 03:18:40 +01:00
Torbjörn Andersson
19cb3499f5 KYRA: Rewrite the VQA decoder, using the VideoDecoder classes
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.
2014-01-18 03:18:40 +01:00
Johannes Schickel
160c5f4345 KYRA: Fix palette glitch when quitting while viewing the family album in Kyra3.
Thanks to eriktorbjorn for noticing.
2013-08-12 04:58:27 +02:00
Johannes Schickel
b1dcd252b3 KYRA: Fix (a few) font checks for systems with unsigend char.
Thanks to wjp for reporting those. This only affects games with SJIS font use.
2013-07-01 15:10:06 +02:00
athrxx
0b38615a43 KYRA: (LOL/FM-TOWNS) - adjust sjis font settings, spacing, etc. 2013-01-09 20:29:19 +01:00
Johannes Schickel
8d5b4b75d4 KYRA: Make all hex constants use uppercase letters.
Done with:
git ls-files "*.cpp" *".h" | xargs sed -i -e 's/0x\([0-9a-f]*\)/0x\U\1/g'
2013-01-09 06:01:28 +01:00
athrxx
93eb6ec64a KYRA: (EOB) - implement simplified EGA dithering for EOB II 2012-11-18 00:03:23 +01:00
athrxx
c8a73d30cf KYRA: (EOB) - cleaning up CGA/EGA graphics code
- fix some glitches in CGA rendering mode
- revert most of 66da4777d4 (instead of having lots of EGA dithering routines throughout the whole EOB code we're going to implement some post-processing code in updateScreen())
2012-11-18 00:03:22 +01:00
Johannes Schickel
b2ba37a039 KYRA: Get rid of unused private class members.
Thanks to salty-horse for pointing at these.
2012-07-03 17:44:37 +02:00
Johannes Schickel
34c5751948 KYRA: Reduce amount of updateScreen calls.
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.
2012-06-13 04:13:16 +02:00
Johannes Schickel
cc1ae7b190 KYRA: Fix crahes in Kyra 1-3 and LoL when EGA/CGA graphics mode is selected.
This is a regression from 86a817beb5.

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.
2012-04-24 01:11:53 +02:00
athrxx
ecd1a9f943 KYRA: (EOB) - cleanup CGA/EGA code a bit 2012-02-24 18:09:37 +01:00
athrxx
66da4777d4 KYRA: (EOB) - implement EGA mode (hi res dithering) for EOB II
(also fix various thing connected to CGA/EGA modes)
2012-02-21 21:48:46 +01:00
athrxx
df9b1bd2e4 KYRA: (EOB) - implement EGA graphics mode for EOB1 2012-02-21 21:48:43 +01:00
athrxx
151d314912 KYRA: (EOB) - complete CGA graphics mode implementation 2012-02-21 21:48:41 +01:00
athrxx
86a817beb5 KYRA: (EOB) - start work on CGA and EGA graphics modes 2012-02-21 21:48:39 +01:00
Tarek Soliman
a4798602d7 JANITORIAL: Fix missing whitespace in pointer cast
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)
2012-02-15 10:07:10 -06:00
Tarek Soliman
edc5249772 JANITORIAL: Fix template definition whitespace 2012-02-10 21:17:27 -06:00
athrxx
d0be9c0a58 KYRA: (EOB) - fix some valgrind warnings
(overlapping source/dest)
2011-12-29 19:12:34 +01:00
Johannes Schickel
463aa52ac6 KYRA: Cleanup va_arg use in drawShape.
Thanks to wjp for noticing this.
2011-12-26 19:32:05 +01:00
Johannes Schickel
487e73bd21 KYRA: Merge Screen_Rpg with Screen (for now).
This should(!) fix ARM compilation issues due to virtual inheritance.
2011-12-26 19:32:05 +01:00
Johannes Schickel
6ca8d9ffe3 KYRA: Remove unused/obsolete function. 2011-12-26 17:56:50 +01:00
athrxx
53e1bf21ec KYRA: (EOB) - get rid of loadVGAPalette7bit()
(slightly change VGA palette loader to accomodate EOB1 palettes)
2011-12-26 16:18:17 +01:00
athrxx
692f9ee6d5 KYRA: whitespace cleanup 2011-12-26 16:18:17 +01:00
athrxx
4c6302943b KYRA: implement Screen::decodeFrame1()
(required for decoding some EGA bitmaps in EOB1)
2011-12-26 16:18:16 +01:00
athrxx
1cbd566930 KYRA: (EOB) - fix invalid string access
(also fix several cpp-check warnings)
2011-12-26 16:18:15 +01:00
athrxx
68ed8b9598 KYRA: (EOB) - fix some valgrind warnings 2011-12-26 16:18:15 +01:00
athrxx
bac0caeb0f KYRA: (EOB) - lots of fixes towards EOB1 playability
also implement some new code (EOB1 portals, burning hands spell, etc.)
2011-12-26 16:18:13 +01:00
athrxx
540d081a6f KYRA: (EOB) - initial code base commit 2011-12-26 16:18:10 +01:00
Christoph Mallon
23a0f5318c JANITORIAL: Remove trailing empty lines. 2011-08-07 13:53:33 +02:00
Johannes Schickel
933ee5b156 GRAPHICS: Remove default values from FontSJIS::drawChar.
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.
2011-07-01 05:42:54 +02:00
strangerke
69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Johannes Schickel
7d03da14cb KYRA: Clean up of header includes. 2011-04-28 15:39:57 +02:00
Ori Avtalion
9414d7a6e2 JANITORIAL: Reduce header dependencies in shared code
Some backends may break as I only compiled SDL
2011-04-28 15:08:58 +03:00
Johannes Schickel
f4dde64406 KYRA: Slight cleanup. 2011-04-07 00:11:36 +02:00
Johannes Schickel
16be240ab1 KYRA: Fix regression in Screen::setInterfacePalette.
This fixes an out of bounds write introduced with 9216c7e.
2011-02-20 21:37:39 +01:00
Johannes Schickel
9216c7e3de KYRA: Adapt to setPalette/grabPalette RGBA->RGB changes. 2011-02-14 17:08:32 +01:00
Max Horn
ab039812e7 COMMON: OSystem now has a PaletteManager
svn-id: r55806
2011-02-07 17:52:38 +00:00
Max Horn
2180b2d6b5 COMMON: Split common/stream.h into several headers
svn-id: r54385
2010-11-19 17:03:07 +00:00
Florian Kagerer
1d87f434a2 SCUMM/FM-TOWNS JAPANESE: implement flipped text
(used in the MI1 circus scene after Guybrush gets shot out of the cannon)

svn-id: r53616
2010-10-19 16:58:27 +00:00
Florian Kagerer
c841c3fb7c SCUMM/FM-TOWNS: more improvements to japanese font drawing
- 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
2010-10-17 13:08:00 +00:00
Torbjörn Andersson
54b2a8c98d JANITORIAL: Cleanup (mostly whitespace)
svn-id: r53161
2010-10-12 04:19:58 +00:00
Torbjörn Andersson
c91a07229a JANITORIAL: Removed most punctuation at end of warning() and error()
Our warning() and error() functions always add an exclamation mark
to the end of the message anyway.

svn-id: r52791
2010-09-18 10:55:16 +00:00
Johannes Schickel
feff6fecdf KYRA: Cleanup.
svn-id: r52340
2010-08-24 13:41:24 +00:00
Johannes Schickel
f48cb3cbb5 KYRA: Remove superfluous palette update on quit.
svn-id: r51169
2010-07-22 21:45:12 +00:00
Johannes Schickel
0fe2ba6a0d Some more enforcement of our formatting conventions in KYRA too.
svn-id: r49069
2010-05-17 23:29:44 +00:00
Max Horn
b3e404109c Move initGraphics and initCommonGFX from to new header.
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
2010-05-04 11:58:12 +00:00
Johannes Schickel
b928da4418 Setup and destroy a dummy cursor and palette in the Engine class.
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
2010-04-11 18:30:42 +00:00
Johannes Schickel
175a81ce98 Fix KYRA's cursor handling by pushing a dummy cursor via CursorMan.pushCursor too. Also replace CursorMan.popAllCursors by CursorMan.popCursor to prevent the caller's cursor from being destroyed.
svn-id: r48621
2010-04-11 17:27:33 +00:00
Johannes Schickel
aed02365ec Strip trailing spaces/tabs.
svn-id: r47541
2010-01-25 01:39:44 +00:00