Age | Commit message (Collapse) | Author |
|
|
|
This is just to enforce the idea that VQADecoder owns the VQAHeader
and that the audio/video tracks are only allowed to look at it, not
change it.
|
|
Untangled the audio and video track from each other, and the parsing
of the stream from the decoding of its data. Also fixed a memory leak
as it turns out deleting a Surface doesn't free its data. You have to
call free() in it.
I have only checked the intro, not every cutscene, but that seems to
work fine at least.
|
|
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.
|
|
|
|
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.
|
|
This should fix annoying erroring out when invalid PAK or APK files are
in the CWD (like for example some Android package files).
|
|
Discovered by CID #1003909.
|
|
Discoverd by CID #1003816.
|
|
Discovered by covertiy (CID #1003839).
|
|
|
|
Although I did not consult with disassembly, judging from the game
logic _unkEndSeqVar4 is used for switching certain Malcolm frames,
and it is apparent that this should happen only under condition,
not always.
|
|
RFC: Pluggable Engines: I18N: Move specification of engine specific files to enginedir/POTFILES
|
|
|
|
This allows to keep the engines to specfiy the files for translation close to
the engine sources itself.
Thanks to criezy for his suggestion on this approach.
|
|
Thanks to eriktorbjorn for noticing.
|
|
Formerly, the main menu was shown with the palette of the first screen for
a short time. Thanks to eriktorbjorn for noticing this.
|
|
The first page wasn't animated, and it's likely that some of the
other right-page animations were slightly off as well.
|
|
Thanks to wjp for reporting those. This only affects games with SJIS font use.
|
|
"PC" was very ambiguous and now it matches what we show in the GUI.
This also corrects sword2's platform to Windows.
|
|
|
|
This is a regression from 93e69aa4da0558b05fc235684355ed38eed9863d.
Thanks to eriktorbjorn to noticing that the music is missing.
|
|
|
|
(list_flags, set_flag, clear_flag)
|
|
(flag settings were not imported/exported in EOB 1 saves)
|
|
|
|
(some monsters were not properly assigned to their spots)
|
|
- display some more info in show_position
- remove unused variable
|
|
(EOB1: Door Buttons Don't Work)
|
|
|
|
(open_door, close_door)
|
|
(show_position, set_position)
|
|
KYRA: Fix MIDI fade-out behaviour
|
|
|
|
|
|
|
|
There are two ways that the music volume may be set:
The setSourceVolume() specifies the current music volume, as
ScummVM sees it. This is stored in _sources[].volume.
The MIDI data itself can trigger volume events. These are handled
by send(), which stores the volume - usually (always?) 100 - in
_sources[_curSource].controllers[]. The volume is then adjusted
by _sources[].volume.
When music is faded out, setSourceVolume() is called repeatedly
with progressively smaller values for the volume. What it should
do, then, is to make sure that the volume is set to what was
previously set to in send(), adjusted to the fading volume.
At least, that's how I understand it.
|
|
|
|
gui_eob.cpp
|
|
|
|
|
|
possible out of bounds access)
|
|
|
|
|
|
|