Commit Graph

424 Commits

Author SHA1 Message Date
Max Horn
43ca9c86ab TINSEL: Remove unnecessary casts 2011-05-10 14:43:53 +02:00
Johannes Schickel
71bdb86e02 Merge pull request #16 "Add a PixelFormat to Graphics::Surface.".
For further discussion check here:
https://github.com/scummvm/scummvm/pull/16

Conflicts:
	graphics/png.cpp
2011-05-01 16:54:45 +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
Paul Gilbert
4924c12b85 TINSEL: Fixed code analysis warnings in bug #3087863 2011-04-28 21:02:35 +10:00
Ori Avtalion
cd6ee0589d JANITORIAL: Format forward declarations to follow convention 2011-04-28 12:20:34 +03:00
Max Horn
73f04118f3 COMMON: Rename Error to ErrorCode, introduce new Error class 2011-04-18 18:22:02 +02:00
Johannes Schickel
7b4a4d9fa6 Merge pull request "New mixer mute handling."
See https://github.com/scummvm/scummvm/pull/12 for more information.
2011-04-18 15:59:34 +02:00
Johannes Schickel
933c4f93f5 TINSEL: Prefer Surface::create taking a PixelFormat over the one taking a byte depth. 2011-04-17 16:33:50 +02:00
Max Horn
2e095e25f2 ALL: centre -> center 2011-04-14 14:34:28 +02:00
Max Horn
84184aabc0 ALL: colour -> color 2011-04-14 14:12:35 +02:00
md5
3d1dcefd46 TINSEL: Removed an unused global variable 2011-04-14 01:56:47 +03:00
Johannes Schickel
507dd88f9c TINSEL: Clean up code a bit, since we now handle digital audio muting differently. 2011-04-13 23:48:51 +02:00
Max Horn
7607e351cc TINSEL: Move custom ADPCM decoders to tinsel engine 2011-04-13 12:48:57 +02:00
Max Horn
0ce2ca4e00 COMMON: Replace MKID_BE by MKTAG
MKID_BE relied on unspecified behavior of the C++ compiler,
and as such was always a bit unsafe. The new MKTAG macro
is slightly less elegant, but does no longer depend on the
behavior of the compiler.
Inspired by FFmpeg, which has an almost identical macro.
2011-04-12 16:53:15 +02:00
Max Horn
f5ff6e9e18 TINSEL: cleanup 2011-04-12 16:06:39 +02:00
Johannes Schickel
e8be5ba95b TINSEL: Make the cdFlags array in drives.cpp static again. 2011-04-10 19:22:06 +02:00
md5
cd085b1ae8 TINSEL: Removed some unused global static variables 2011-04-10 17:27:48 +03:00
md5
c89f2276d1 TINSEL: Merged NewName() inside DoSave() in order to remove a static var 2011-04-10 14:27:50 +03:00
md5
d1c4b56223 TINSEL: Cleanup - removed obsolete defines 2011-04-10 14:27:49 +03:00
md5
b31f39e6c6 TINSEL: Changed cdFlags to be non-static and constant 2011-04-10 14:27:48 +03:00
md5
69ec4fbf1b TINSEL: Removed the dummy ForceEntireRedraw() function 2011-04-10 14:27:47 +03:00
md5
3fde0306a4 TINSEL: Removed the useless LookAtBuffers() function 2011-04-10 14:27:46 +03:00
Paul Gilbert
88b3fc7c66 TINSEL: Added numeric key mappings for function keys 2011-04-08 20:43:41 +10:00
Max Horn
7b47bf4638 TINSEL: Remove dead variables 2011-03-30 00:07:16 +02:00
Max Horn
8c931fd1e8 AUDIO: Add Audio::MidiPlayer::createDriver(), let some engines use it 2011-03-28 18:06:36 +02:00
Max Horn
7949d7c6de AUDIO: Move more common code to Audio::MidiPlayer
This also should fix some regressions from the previous
commits, related to MidiParser's either being leaked,
or being deleted and then used again (i.e., crashing).

I tested as many games as I had available, but further
testing of all affected engines is called for anyway.
2011-03-25 14:15:53 +01:00
Max Horn
f333d93fe8 TINSEL: Remove unused TinselEngine::_musicVolume member 2011-03-25 14:15:52 +01:00
Max Horn
47e347b922 TINSEL: Change MidiMusicPlayer to derive from Audio::MidiPlayer 2011-03-24 16:46:48 +01:00
Max Horn
e70fd59b35 ENGINES: Further simplify pseudo MidiDrivers; fix some regressions
The regression affected AGOS and maybe some others; specifically,
the real MidiDriver would have been deleted twice -- I previously
missed that the Engine instances takes care of freeing the real
MidiDriver, not the MidiPlayer wrapping it.

This commit should clarify the ownership of the real MidiDriver for
most pseudo MidiDrivers.
2011-03-23 16:49:41 +01:00
Max Horn
29847ea42d AUDIO: Change several fake MidiDrivers to MidiDriver_BASE subclasses
Many engines follow the advice in audio/midiparser.h and create a
"pseudo-MidiDriver" subclass. But MidiParser really only needs a tiny
subset of the MidiDriver capabilities, namely those found in
MidiDriver_BASE. So we try to subclass from that whenever possible; this
allows us to remove many stub methods, and enables further future
simplifications.
2011-03-23 15:25:47 +01:00
Max Horn
99dbecf3b4 TINSEL: Make MidiMusicPlayer::_parser and _mutex protected 2011-03-23 15:25:46 +01:00
Max Horn
8982fff1b7 AUDIO: Add pure virtual MidiDriver::isOpen() method
This in turn enables modifying MidiDriver_MPU401::close() to allow
it to be called on a midi driver that has not yet been opened.

The specific issue that triggered me to make these changes was a
crash-upon-quit in HUGO, caused by it instantiating a midi driver,
then encountering an error (missing hugo.dat) *before* having
opened the new midi driver; the general cleanup code then tries
to close the (not yet opened) midi driver -> kaboom

Also fixed some engines which were leaking MidiDriver instances.
2011-03-22 23:51:47 +01:00
md5
a796f7843d TINSEL: Added enhanced music support for the German CD "Neon Edition" re-release of DW1 (bug #2827022) 2011-02-24 14:54:12 +02:00
Johannes Schickel
01d511bf1b TINSEL: Adapt to setPalette RGBA->RGB change.
This is done by converting the internal RGBA palette data to RGB before
calling setPalette. This might not be the best solution, but looking a bit
into the engine it seems like changing all the code to work with RGB instead
of RGBA might require some bit of work.
2011-02-15 23:32:41 +01:00
Max Horn
42ab839dd6 AUDIO: Rename sound/ dir to audio/
svn-id: r55850
2011-02-09 01:09:01 +00:00
Max Horn
2d1c8a3533 ALL: Fix whitespaces / indention
svn-id: r55818
2011-02-07 23:01:06 +00:00
Max Horn
ab039812e7 COMMON: OSystem now has a PaletteManager
svn-id: r55806
2011-02-07 17:52:38 +00:00
Filippos Karapetis
9b8c04045b MIDI: Fix for bug #3170988 - "MONKEY2: Messed up MT-32 music"
This is a regression from r55256. Apparently, SCUMM has issues when sending a sustain
off on a notes off event. Thus, this has been turned into a feature, which is disabled
by default. Since MADE, SAGA and tinsel all share the same music code and play regular
MIDI files, and this feature fixes hanging notes for them, it has been enabled for them.
Also, applied a patch for a bug regarding the notes off event in MADE and tinsel,
which has been applied in SAGA already

svn-id: r55746
2011-02-02 23:27:59 +00:00
David Turner
9573b1d2f5 TINSEL: Memory Leak Fix in Coroutines.
This fixes the leak from the COR0_BEGIN_CODE macro's CoroContextTag allocation.
Setting the _sleep value to negative values prevented the deallocation of these.
Have tested for obvious regressions, but a full DW/DW2 playtest should be done to confirm that this doesn't cause any issues.
Thanks to fingolfin for indicating this solution.

svn-id: r55671
2011-01-30 23:21:40 +00:00
Arnaud Boutonné
d063b074cd JANITORIAL: Suppress some useless includes
svn-id: r55091
2011-01-02 14:06:42 +00:00
Max Horn
6edc86a19b DEBUG: Let GUI::Debugger::preEnter and postEnter (un)pause the engine
svn-id: r54815
2010-12-07 18:54:21 +00:00
Max Horn
9a0c20a45f TINSEL: Improve support for DW mac demo (see bug #3110936)
svn-id: r54811
2010-12-07 18:00:18 +00:00
Max Horn
a914b97559 TINSEL: Fix support for file names with a trailing dot
When copying data files with 8.3 names from a CD, they sometimes end up
with a trailing dot, e.g. "INDEX." instead of "INDEX". Comon::File
supports this, but in r54392 Tinsel stopped using Common::File.

This commit also removes the useless SeekableSubReadStream wrapper
around the actual file stream.

svn-id: r54446
2010-11-23 22:33:26 +00:00
Max Horn
b485d0ee49 TINSEL: Turn TinselFile into a SeekableReadStream
svn-id: r54439
2010-11-23 22:26:43 +00:00
Max Horn
c9fdaa7417 TINSEL: Restrict use of memstream.h & substream.h
svn-id: r54437
2010-11-23 22:26:09 +00:00
Paul Gilbert
a2367d26f9 TINSEL: Preliminary functionality for reading BE data files
svn-id: r54392
2010-11-20 03:14:03 +00:00
Max Horn
2180b2d6b5 COMMON: Split common/stream.h into several headers
svn-id: r54385
2010-11-19 17:03:07 +00:00
Max Horn
5ceb54d088 TINSEL: Get rid of some global variables
These were actually all "harmless" (i.e. where no obstructions
to RTL support). Still good to get rid of 'em!

svn-id: r54286
2010-11-17 12:13:23 +00:00
Filippos Karapetis
144ed3e22d TINSEL: Fixed compilation with MSVC
svn-id: r54271
2010-11-16 22:09:46 +00:00
Max Horn
c734fc2b3e TINSEL: Remove unnecessary 'static'
svn-id: r54263
2010-11-16 09:54:11 +00:00