Commit Graph

167 Commits

Author SHA1 Message Date
Max Horn
45bf574928 Get rid of the last two usages of File::incRef/decRef
svn-id: r25919
2007-03-01 17:22:30 +00:00
Max Horn
8c8abca6f8 Changed the AppendableAudioStream code to use a queue of buffers, instead of a fixed size wrap-around memory buffer (this reduces memory usage in some cases by 500-700k, while actually being more flexible)
svn-id: r25909
2007-02-28 14:48:26 +00:00
Max Horn
551b2b6b3d Fix for bug #1670081 -- SWORD1: game won't load (ogg compression) (regression)
svn-id: r25905
2007-02-28 10:44:52 +00:00
Max Horn
dd26444b72 oops
svn-id: r25842
2007-02-25 00:09:22 +00:00
Max Horn
9823cbe1ea Added TODO: Sword1's MusicHandle::play etc. should be rewritten to take advantage of the enhanced compressed audio stream code
svn-id: r25841
2007-02-25 00:04:35 +00:00
Max Horn
21b095ce20 Switch to the new makeVorbisStream variant (and get rid of a File::decRef call)
svn-id: r25840
2007-02-25 00:03:47 +00:00
Max Horn
b3931a847d Trying to unify the order in which we try the various audio formats: Prefer FLAC (lossless) over Ogg Vorbis ('free') over MP3 -- the order is admittedly somewhat arbitrary, but at least now it's consistent across all parts of ScummVM
svn-id: r25837
2007-02-24 23:40:28 +00:00
Max Horn
cafe61fec2 cleanup
svn-id: r25834
2007-02-24 23:15:39 +00:00
Max Horn
227a080e5b Patch #1663933 (Kill premix channel) with a few tiny additional tweaks by me
svn-id: r25752
2007-02-20 18:50:17 +00:00
Torbjörn Andersson
5478589937 Last batch of header consistency fixes. At least for the game engines.
svn-id: r25751
2007-02-20 18:04:13 +00:00
Max Horn
b8aeefaffb Added finalize() method to Common::OutSaveFile (which by default just flushes the stream), changed engines to call that before deleting OutSaveFile instances (instead of just flushing)
svn-id: r25660
2007-02-17 18:55:51 +00:00
Max Horn
73c3625f1f Fixing various doxygen warnings
svn-id: r25362
2007-02-03 21:37:52 +00:00
Max Horn
cb49cbdd45 * Reimplemented Mixer::pauseAll to simply invoke pause on all channels
(implying change of semantics)
* Reordered the params of Mixer::playRaw (the SoundType now comes first, not last)
* Removed Mixer::isPaused
* Removed Mixer::getSoundElapsedTimeOfSoundID
* Added some doxygen comments to the Mixer

svn-id: r25356
2007-02-03 19:05:53 +00:00
Eugene Sandulenko
cd8a5f3a98 First phase of detection-related plugins interface improvements. Now plugins
return StringMap instead of fixed list of parameters. This adds great
flexibility.

Current patch should not alter any functionality, i.e. if there are regressions,
submit a report. Phase 2 will benefit from these changes and will come later.

svn-id: r25134
2007-01-20 21:27:57 +00:00
Travis Howell
0141cbd1df GF_DEMO is only required by the PC version of Broken Sword 1 demo
svn-id: r24853
2006-12-15 00:59:11 +00:00
Eugene Sandulenko
3244d20ee2 Add proper detection of BS1 Mac demo. Game crashes at attempt to play speech.
svn-id: r24851
2006-12-14 21:23:24 +00:00
Torbjörn Andersson
45886ec8ed When drawing an interlaced frame, only clear every other line instead of the
entire buffer.

Introduced a _drawBuffer pointer which points either to _scaledBuffer or
_frameBuffer1. That way, we don't need to copy _frameBuffer1 every time we
draw an unscaled frame. (Probably the most common case by far.)

Adjusted the Broken Sword 1 DXA player for the second change. (It sneakily
avoids copying each frame by using _drawBuffer directly.)

svn-id: r24846
2006-12-14 05:21:19 +00:00
Travis Howell
1ba6947440 Adjust DXA scaling code for Broken Sword 1
svn-id: r24841
2006-12-11 09:26:54 +00:00
Eugene Sandulenko
3e6414a55f Slighty modified Patch #1571787: "Support for Mac Broken Sword 1". sword1macdemo
target was commented out until existence of the demo is confirmed.

svn-id: r24697
2006-11-12 19:05:51 +00:00
Max Horn
4c14cf6d1a Moved base/engine.cpp and .h to engines/ (main motivation: helps untangle the linker dependency graph). Porters will have to update project files
svn-id: r23974
2006-09-23 00:42:35 +00:00
Torbjörn Andersson
3e8380f2c6 Only decompress the number of speech samples indicated by 'resSize'. This
prevents crashes in the demo, and is probably a good idea anyway.

svn-id: r23917
2006-09-17 15:25:59 +00:00
Max Horn
a2dc897fe5 Reduce code duplication
svn-id: r23888
2006-09-16 15:01:14 +00:00
Chris Apers
f34da528eb Fixed unaligned read (this fix a potential crash clicking on the Text option button)
svn-id: r23845
2006-09-09 13:57:20 +00:00
Torbjörn Andersson
3ce0b182f6 Initialise variable. Should fix Valgrind warning.
svn-id: r23838
2006-09-09 09:50:00 +00:00
Chris Apers
7efd027fed Fixed crashes on Zodiac and add support for this device
svn-id: r23837
2006-09-09 09:30:16 +00:00
Torbjörn Andersson
49d1056c30 Only clear the part of the screen usually controlled by the Screen class. The
buffer might not be large enough to cover the menu areas, and they will
probably be clear already.

Only terminate the loop, not the entire function, when pressing Esc during a
cutscene. Otherwise, there may be palette glitches.

svn-id: r23790
2006-08-28 04:53:21 +00:00
Torbjörn Andersson
72e01a3aa3 Forgot to close the DXA file.
svn-id: r23775
2006-08-27 10:40:09 +00:00
Torbjörn Andersson
8ae050ff08 Renamed graphics/animation.[cpp|h] to graphics/mpeg_player.[cpp|h] to be more
consistent with dxa_player.[cpp|h]. (Though actually, "decoder" might be more
accurate...)

svn-id: r23774
2006-08-27 09:10:24 +00:00
Torbjörn Andersson
cc3b4cdf99 Now that the cutscene handling in both BS1 and BS2 has been extended to play
DXA movies (the MPEG movies still work, of course), there is no longer any need
for the MPEG decoder to handle sound and frame syncing. That is now the
responsibility of the player, not the decoder.

The obvious next step, then, would be to put that in a new player class, and
have both BS1 and BS2 use that. Maybe FF as well.

svn-id: r23757
2006-08-26 12:29:00 +00:00
Torbjörn Andersson
ca387f1585 Added support for DXA cutscenes. Still needs a bit of cleanup, and the DCA
player does not support the (unreleased) multi-lingual cutscene pack, since I
don't have one to test with.

It needs to be cleaned up a bit, but the next step will be to clean up the MPEG
decoder first.

svn-id: r23753
2006-08-26 11:34:35 +00:00
Max Horn
4a80db4c7b * Added copyright string to all engine plugins
* Modified about dialog to list all available plugins with their resp. copyright
* Modified about dialog credits to show the GPL last (like movie end credits do with their legal text, too)

svn-id: r23645
2006-07-31 13:41:21 +00:00
Torbjörn Andersson
c32076e5d0 Use #include "..." instead of #include <...> for pack-start.h and pack-end.h
for consistency with other #includes.

svn-id: r23585
2006-07-23 16:13:26 +00:00
Max Horn
2859b64702 Fix struct packing issues (macros are not resolve in #pragma params, at least for GCC)
svn-id: r23569
2006-07-22 17:28:48 +00:00
Johannes Schickel
412db86dcf Using FilesystemNode::name instead of FilesystemNode::displayName in the sword1 detector code too.
svn-id: r23556
2006-07-22 14:37:52 +00:00
Max Horn
f59cf1fcdc Removing GCC_PACK, we fully rely on START_PACK_STRUCTS / END_PACK_STRUCTS now (hiya eriktorbjorn, this one is for you *ggg*)
svn-id: r23547
2006-07-21 21:25:17 +00:00
Max Horn
f35f4a4d1c Use START_PACK_STRUCTS / END_PACK_STRUCTS when available, instead of checking for GCC / not GCC
svn-id: r23458
2006-07-09 13:01:15 +00:00
Max Horn
9a955180a4 * Renamed config.mak to config.mk
* Renamed common.rules to rules.mk
* Removed explicit declaration of MODULE_DIRS in various spots (instead we let rules.mk compute it)

svn-id: r23275
2006-06-24 08:48:11 +00:00
Max Horn
d210b19aec Move backends/fs/fs.h and .cpp to common/fs/fs.h and .cpp
Rationale: backend implementations belong to backends/, but portable APIs meant to be used by high level code is for common / sound / graphics / ... (compare also with backends/midi vs. sound/mididrv.h)

svn-id: r23274
2006-06-24 08:07:48 +00:00
Torbjörn Andersson
1569d5fadc Cleanup.
svn-id: r23194
2006-06-20 18:08:03 +00:00
Torbjörn Andersson
8062eb6ec3 Set and show/hide mouse cursors through a "cursor manager" (analogous to the
recently added (cursor) palette manager) so that the cursor can be properly
restored after returning from the GUI.

If there's any C++ magic that can keep the backend functions from being called
by anything else than these managing classes, that would probably be a good
idea. Also, since the cursor manager keeps a copy of the cursor image, perhaps
there are at least some backends that will no longer need to?

svn-id: r22639
2006-05-25 22:51:42 +00:00
Torbjörn Andersson
5f113b2dc2 Setting a "null" cursor like this doesn't do anything in the SDL backend, and
could possibly be undefined in other backends. So it should be safe to remove.

svn-id: r22636
2006-05-25 20:50:32 +00:00
Torbjörn Andersson
e563d0c182 Renamed screenChanged() to handleScreenChanged().
svn-id: r22518
2006-05-18 13:58:33 +00:00
Torbjörn Andersson
5c1f91eed4 Allow changing scaler while playing MPEG cutscenes.
svn-id: r22515
2006-05-18 13:18:02 +00:00
Eugene Sandulenko
14ec3f45fa - Heavily modified patch #1214784: "Disable overlay scaling"
- Eriktorbjorn's patch from same tracker item for scaling sword1/2 cutscenes
  is applied as is. It lacks resolution switch on-the-fly.
- GUI widgets are repositioned on the fly and use most space, even aspect
  ratio corrected screen is used without scaling
- Heavy tesing is required, but works for me in all cases except for bug
  #1483272: "GUI: SCUMM pause dialog breaks upon scaler switch" which needs more
  work.
- I probavly broke some backend or two

svn-id: r22505
2006-05-17 23:52:45 +00:00
Max Horn
d016c353c5 Changed FilesystemNode::listDir to return a bool indicating its success (or failure)
svn-id: r22315
2006-05-03 20:43:26 +00:00
Max Horn
58c723d9f0 Use FilesystemNode, never AbstractFilesystemNode (which is for internal use only)
svn-id: r22296
2006-05-03 10:12:42 +00:00
Max Horn
27307acd7c Moved the AudioCDManager as well as class AudioStream and its (standard) subclasses to namespace Audio
svn-id: r22231
2006-04-29 22:33:31 +00:00
Max Horn
bf73598811 * Changed the createEngine() factory function of our plugins to return an error code (the engine is now passed indirectly via a double pointer)
* Removed Engine_Empty (obsolete now that engines can return actual error codes)

svn-id: r22199
2006-04-29 00:27:20 +00:00
Torbjörn Andersson
8740bc0134 Fixed silly bug in --save-slot handling: Don't try to restore a savegame unless
the specified save slot is > 0. (The default value is -1, which shouldn't be
restored either.)

I thought I had fixed that already, but I guess I made a last-minute change...

svn-id: r22069
2006-04-21 10:24:22 +00:00
Torbjörn Andersson
6b034b66d8 Added support for the --save-slot option for Broken Sword 1. (Feature request
#1460977.)

svn-id: r22009
2006-04-18 18:23:57 +00:00
Torbjörn Andersson
e22f1c64c5 Call updateScreen() from delay functions for smoother mouse cursor movement.
svn-id: r21996
2006-04-18 00:20:07 +00:00
Max Horn
68cb7f52c8 - Renamed ConfigManager::getActiveDomain to getActiveDomainName, and added a new getActiveDomain method that returns a pointer to the actual active *domain*
- Added Engine::_targetName whose value is computed from the name of the active domain
- Removed GameDetector::_targetName, instead code now uses either Engine::_targetName or the name of the active domain
- This in turn allowed for removing usage of GameDetector in many places

svn-id: r21916
2006-04-15 20:36:41 +00:00
Max Horn
ad45318328 Removed GameDetector::_gameid in favor of using a config manager entry
svn-id: r21915
2006-04-15 17:39:14 +00:00
Max Horn
e7a8bb6abf Modified the REGISTER_PLUGIN macro so that it allows (and requires) a trailing semicolon (this helps certain tools to parse our code better)
svn-id: r21689
2006-04-08 12:06:07 +00:00
Eugene Sandulenko
8fa9bd6728 Removed extra exclamation marks in warning() calls as well.
svn-id: r21608
2006-04-04 22:21:10 +00:00
Max Horn
0bb6d64064 A lot of code in sword1/router.cpp and sword2/router.cpp is virtually identical -- unified the two files in many places (but a lot more could be done, feel free to pick up and continue this work)
svn-id: r21526
2006-04-01 12:47:09 +00:00
Max Horn
8cdee5a931 Do not #include endian.h in scummsys.h (cuts down deps on endian.h from ~400 to ~250). Many greetings to eriktorbjorn, and have fun recompiling.
svn-id: r21500
2006-03-29 15:59:37 +00:00
Max Horn
86565fcca5 - Renamed GameSettings to PlainGameDescriptor
- Added new GameDescriptor struct (similar to PlainGameDescriptor but with
  Common::String members instead of const char * ones)
- Changed DetectedGame to subclass GameDescriptor
- Removed toGameSettings() in favor of new (template) constructors in
  DetectedGame and GameDescriptor
- Fixed a bug in the obsolete gameid handling in the SCUMM & SIMON engines

svn-id: r21150
2006-03-09 02:52:51 +00:00
Max Horn
907bd7128d Fix for bug #1438822 (Targets are case sensitive)
svn-id: r21017
2006-03-02 22:29:01 +00:00
Torbjörn Andersson
c5cf806f82 Removed the "extra bars/nodes" code, since nothing ever added the extra bars or
nodes.

Removed the path-plotting debugging code, since the line-drawing function has
been a stub for the past few years, as far as I can tell.

Similar code was removed from the BS2 router long ago, so this could be a first
tiny step towards bringing them together.

svn-id: r20805
2006-02-21 10:22:37 +00:00
Max Horn
0712b468a3 Fix for bug #1428261 (Solaris x86 build fails: variable name collision)
svn-id: r20787
2006-02-20 14:18:30 +00:00
Max Horn
01fc7034b5 - Merged GameDetector::detectGame() into GameDetector::detectMain()
- Replaced GameSettings GameDetector::_game by a simple gameid string

svn-id: r20753
2006-02-18 12:50:48 +00:00
Max Horn
8ac17430ac - renamed PLUGIN_getSupportedGames to PLUGIN_gameIDList for consistency
- renamed Engine_XXX_gameList to Engine_XXX_gameList for consistency
- added new Engine_XXX_findGameID / PLUGIN_findGameID function
- updated plugins code to take advantage of the new plugin API, to support
  obsolete gameids w/o showing them to the user

svn-id: r20752
2006-02-18 11:15:37 +00:00
Max Horn
81798556db - Removed the 'features' field from GameSettings
- Removed GF_DEFAULT_TO_1X_SCALER

svn-id: r20747
2006-02-18 00:12:36 +00:00
Max Horn
a96760a2fd Reduced use of GF_DEFAULT_TO_1X_SCALER in favor of a new param to Engine::initCommonGFX; added a TODO stating that it should eventually be removed completly
svn-id: r20738
2006-02-17 00:01:18 +00:00
Max Horn
80cf2fa46f Reduced data duplication in module.mk files; added module.mk files for null and x11 backends; added engines/module.mk
svn-id: r20584
2006-02-12 00:16:31 +00:00
Max Horn
26ee630756 Moved engines to the new engines/ directory
svn-id: r20582
2006-02-11 22:45:04 +00:00