2831 Commits

Author SHA1 Message Date
Johannes Schickel
10def6a435 SCUMM: Small formatting fix. 2013-11-27 19:32:08 +01:00
Johannes Schickel
fdcb6a6b1a SCUMM: Cleanup querySaveMetaInfos implementation.
This results in less code and also less I/O operations (including seeking).
2013-11-27 19:29:21 +01:00
Johannes Schickel
3318c4e4ac SCUMM: Slight cleanup in detection.cpp. 2013-11-27 19:03:23 +01:00
Johannes Schickel
d8d6faff01 SCUMM: Slight cleanup in savegame code. 2013-11-27 19:01:30 +01:00
Johannes Schickel
f4cb2d35d4 SCUMM: Remove unsued method loadThumbnailFromSlot(int slot). 2013-11-27 18:26:16 +01:00
D G Turner
ef85456859 BUILD: Remove need for engine.mk in each engine directory.
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.
2013-11-24 00:48:01 +00:00
D G Turner
1ac01d2333 BUILD: Remove need for engine-plugin.h in engines.
This is now generated automatically by the configure script from the
engine directory names.
2013-11-24 00:48:01 +00:00
D G Turner
00c27a28f9 BUILD: Split engines/plugins_table header down to a file per engine.
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.
2013-11-24 00:48:01 +00:00
D G Turner
d77cf95a18 BUILD: Split engines.mk down to a single file per engine.
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.
2013-11-24 00:48:01 +00:00
D G Turner
aa947c9474 BUILD: Split configure.engines down to a single file per 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.
2013-11-24 00:45:38 +00:00
Eugene Sandulenko
2362498d54 SCUMM: Fix potential memory leak. CID 1003586 2013-11-03 01:28:03 +02:00
Filippos Karapetis
4f807ee53e SCUMM: More renaming for players
Rename "player" directory to "players", and reintroduce the "player_"
file prefix. This has been done after sev's request.
"players/player_foo.*" is more descriptive, and avoids potential name
clashes in libraries
2013-11-01 19:26:51 +02:00
Filippos Karapetis
651bf89939 SCUMM: Move all players to a separate "player" directory
There are 34 player .cpp/.h player files, so they have been placed in
their own directory, to logically separate them from the rest of the
engine
2013-11-01 06:57:53 +02:00
Rodrigo Rebello
be2f292457 SCUMM: Fix unused variable warnings 2013-10-03 01:47:02 -03:00
Kirben
987bb6d454 SCUMM: Add US Windows preview of Humongous Catalog. 2013-09-27 15:50:36 +10:00
Johannes Schickel
01dea8bd67 Merge pull request #378 from lordhoto/pluggable-engines-translations
RFC: Pluggable Engines: I18N: Move specification of engine specific files to enginedir/POTFILES
2013-09-12 15:38:13 -07:00
Eugene Sandulenko
c2161b9564 Merge pull request #360 from lordhoto/scumm-ad
SCUMM: Implement original AD AdLib output.
2013-09-12 10:58:08 -07:00
Kirben
5f6451d092 SCUMM: Fix COMI regression, after commit 84d1d28373d782464bd46b10abd6b092f7eb6367. 2013-08-26 19:32:26 +10:00
Eugene Sandulenko
03bf56ea82 INSANE: Mark fall through case statement. CID 1003733 2013-08-18 11:59:51 +03:00
Torbjörn Andersson
84d1d28373 SCUMM: Read the SMAP size, not the SMAP tag itself
This will obviously make 'smapLen' a lot smaller in most cases, so
there may be regressions. But I hope this is correct, though I
don't know why the size is big-endian while the offset is little-
endian.
2013-08-18 09:28:54 +02:00
Torbjörn Andersson
e81d8d8112 SCUMM: Remove unnecessary NULL check, CID 1003629
Since _actors[i]->_sound is an array, it can't ever be NULL.
2013-08-18 09:07:49 +02:00
Torbjörn Andersson
b8c198aec9 SCUMM: Remove unnecessary NULL check, CID 1003628
Since ah->data is an array, it can't ever be NULL.
2013-08-18 09:05:03 +02:00
Torbjörn Andersson
598d1a9c9c SCUMM: Remove unnecessary NULL check, CID 1003627
Since ah->data is an array, it can't ever be NULL.
2013-08-18 09:02:14 +02:00
Kirben
b4f2e2ead4 SCUMM: Always confirm quit when required in HE games. 2013-08-16 15:49:30 +10:00
Kirben
0c8f8898ff SCUMM: Add new variables in Nimbus Games version of Putt-Putt Saves the Zoo. 2013-08-16 15:19:17 +10:00
Kirben
2a807b1880 SCUMM: Add Remastered version of Putt-Putt Saves the Zoo from Nimbus Games. 2013-08-15 22:50:45 +10:00
Johannes Schickel
378387c903 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.
2013-08-12 17:54:31 +02:00
Johannes Schickel
63750d6780 COMMON: Rename ConfigFile to INIFile.
This clears up that 'ConfigFile' is actually a class handling only INI-files.
2013-08-08 16:28:38 +02:00
Johannes Schickel
7f8308e0eb Merge pull request #365 from lordhoto/protected-pixels
Make Graphics::Surface::pixels protected.
2013-08-07 12:24:59 -07:00
Alyssa Milburn
89e14f6862 SCUMM: Fix backwards-in-same-array case of v72he::copyArray. 2013-08-04 15:54:37 +02:00
Alyssa Milburn
2af07d5d8e SCUMM: Add detection/version for Moonbase Commander v1.1. 2013-08-04 10:42:44 +02:00
Johannes Schickel
a96a427fc8 SCUMM: Add comment about getPixels uses in BaseCostumeRenderer. 2013-08-04 02:41:40 +02:00
Johannes Schickel
6485b291e9 SCUMM: Fix Loom (and some other graphics regressions).
These are regressions from c05cb7f3bbcf4d64d4a938e0eb42065d8f3d3038. They were
caused by VirtualScreen::getPixels differing from Surface::getBasePtr and I
accidently used the former in some cases in the conversion.

I also fixed a bug in debugger.cpp which exchanged x and y.
2013-08-04 02:29:13 +02:00
Johannes Schickel
c22d914054 SCUMM: Do not set Surface::pixels directly anymore. 2013-08-03 04:14:07 +02:00
Johannes Schickel
0a1cbac76a SCUMM: Take advantage of Surface::getPixels. 2013-08-03 04:02:50 +02:00
Johannes Schickel
c05cb7f3bb SCUMM: Prefer getBasePtr over direct Surface::pixels access. 2013-08-03 02:52:31 +02:00
Johannes Schickel
80ab4c5242 SCUMM: Implement original AD AdLib output.
This implements the original AD output and enables it for Indy3 and Loom DOS.
It is not enabled for Monkey Island DOS because it would break multi MIDI
support. However, there are also drawbacks for Indy3. In the catacombs
we were able to play sfx (Indy walking around) and the background music
at once. This was not supported in the original player and thus also does
not work with this reimplementation.

This fixes bug #2027877 "INDY3: Non-Looping Sound Effects".
This fixes bug #1159581 "ADLIB: Adlib Emulation doesn't Respect Volume Settings"
for Indy3 and Loom.
2013-07-24 03:28:47 +02:00
Torbjörn Andersson
1f9f08c935 SCUMM: Fix test before running VAR_SAVELOAD_SCRIPT2 (CID 1004135)
This doesn't really make any difference because either both
VAR_SAVELOAD_SCRIPT and VAR_SAVELOAD_SCRIPT2 exist, or neither
does. But it feels more correct this way.
2013-07-21 10:02:02 +02:00
Johannes Schickel
325f60cbd7 Merge pull request #345 from countingpine/patch-1
SCUMM: More precise Player_Mac::durationToSamples
2013-07-18 09:17:23 -07:00
countingpine
96c4ebe77f SCUMM: Better Player_Mac::durationToSamples
Uses the fact that 4*480*480 == 225 << 12, and the identity
(a*b)>>n == (a>>n)*b + ((a%(1<<n))*b)>>n (assuming non-overflowing math),
except the rhs uses smaller intermediate values and does not overflow(*).
Compared to the original code, this uses 1 fewer division and eliminates
the rounding error.

(*) Technical note: In some cases the right hand side of the above
identity still has possibilities of intermediate overflow, but only if
b > (1 << n), or if (b << n) overflows, neither of which are true here.
2013-07-16 16:16:08 +01:00
Eugene Sandulenko
e0e6b95384 INSANE: Fix CID 1003734. Missing break in switch 2013-07-15 11:48:05 +03:00
Eugene Sandulenko
b1c886334d INSANE: Fix CID 1003733. Missing break in switch.
In fact the code was wrong there due to copy-paste error
2013-07-15 11:47:51 +03:00
Sven Hesse
989ea7cb56 JANITORIAL: Remove trailing whitespace 2013-07-14 19:01:47 +02:00
Kirben
395ee92a85 SCUMM: Add another French Windows version of Pajama Sam 2. 2013-07-09 11:45:45 +10:00
Torbjörn Andersson
29bc36d070 SCUMM: Fix initGM() buffer overflow (CID 1032513)
We're clearly using 12 bytes, not 11.
2013-07-06 14:03:31 +02:00
Eugene Sandulenko
c7ec14d1cb SCUMM: Corrected Russian Full Throttle variant names 2013-06-23 18:18:52 -04:00
Eugene Sandulenko
cdac272b87 SCUMM: Added another Russian variant of Full Throttle 2013-06-22 11:28:23 -04:00
Torbjörn Andersson
08be916049 SCUMM: Verify sample width in Digital iMUSE callback. CID 1002112
Verify that 'bits' really is one of 8, 12 or 16 before decoding
the data. It's probably always the case (unless the data files are
damaged) but if it isn't we'll either try to queue NULL to the
audio stream, or queue the same buffer more than once, or free the
buffer more than once. All of which are bad, though Coverity only
noticed the last of these cases.
2013-06-04 06:11:41 +02:00
Torbjörn Andersson
f8c0d354af SCUMM: Remove unused variable _quit
CID 1003018
2013-06-02 09:43:59 +02:00
tcarey
dc6b39d058 SCUMM: Clean-up of Roland GS code
1. Remove _sc55 bool. All Roland GS-capable devices have MT-32 sound/drum maps, so they should always be used when _enable_gs is set.
2. Always enable _native_mt32 if Roland GS mode is selected. I don't know why I never did this originally, since _enable_gs is automatically disabled for SCUMM v6+ games that use General MIDI tracks instead of MT-32 music.
3. Set master tune for GS devices to 442.0kHz. This is the master tune setting for the MT-32.
2013-05-11 19:18:11 +03:00