Commit Graph

355 Commits

Author SHA1 Message Date
Johannes Schickel
f0182121f7 Fix some variable may be used uninitialized warnings.
svn-id: r40528
2009-05-13 18:12:17 +00:00
Eugene Sandulenko
af4d23f762 Const correctness
svn-id: r40346
2009-05-06 09:12:24 +00:00
Fabio Battaglia
0b2e06e4a4 sword2: add support for BS2 PSX demo
svn-id: r39977
2009-04-18 08:37:22 +00:00
Fabio Battaglia
dc9c538a62 Sword2: PSX version support, and GMM loading/saving
svn-id: r39896
2009-04-07 19:52:46 +00:00
Fabio Battaglia
1f299bb24a sword2: added detection for Broken Sword 2 PSX, and a check to say wether pc or psx version is run
svn-id: r39417
2009-03-15 11:36:16 +00:00
Max Horn
e080a59337 Renamed SMKPlayer -> SmackerDecoder and DXAPlayer -> DXADecoder, as well as some other tweaks
svn-id: r39255
2009-03-09 03:45:23 +00:00
Torbjörn Andersson
c73740f2c0 Added comment about a possible FIXME.
svn-id: r39207
2009-03-07 21:38:34 +00:00
Max Horn
f9ecd95d69 Whitespace cleanup: Convert space followed by tab to just tab
svn-id: r39203
2009-03-07 19:24:31 +00:00
Torbjörn Andersson
041af01f7d Don't show a warning dialog for missing cutscenes in the demo. As noted in bug
#2669360, the demo tries to play cutscenes which really aren't there.

svn-id: r39194
2009-03-07 17:27:18 +00:00
Torbjörn Andersson
c252147a40 Don't crash if a cutscene is missing. (Like they are in the demo, for instance.)
svn-id: r39186
2009-03-07 15:29:52 +00:00
Jordi Vilalta Prat
047f116515 Renamed MetaEngine::getCopyright() to getOriginalCopyright() to better match the meaning of the returned string, as discussed some time ago in scummvm-devel
svn-id: r39132
2009-03-05 12:04:58 +00:00
Max Horn
dd98126423 Engines: Fused several init&go methods into a single run method
svn-id: r39003
2009-03-01 04:42:46 +00:00
Max Horn
3fcbda829a Merged Engine::go() and ::init() into a new run() method (currently implemented by calling the existing init&go methods; to be cleaned up by engine authors
svn-id: r39002
2009-03-01 04:30:55 +00:00
Torbjörn Andersson
6e2848ff98 Rewrote the cutscene player to be more like the one in Broken Sword 1. This fixes
a subtitle colour regression, but mainly it simplifies the code. The "dummy"
player has been removed. There are almost certainly regressions, but I'm hoping
it's stable enough for testing now.

svn-id: r38697
2009-02-21 15:07:05 +00:00
Torbjörn Andersson
ab4f1d69ad Since opening a compressed piece of music should no longer be an expensive
operation, we can probably keep the mutex locked throughout the entire
streamCompMusic() function. I'm not convinced that it was ever safe to unlock
and relock it partway through. In fact, that's my prime suspect for bug #2614306
("BS2: noise in music or speech").

svn-id: r38638
2009-02-20 22:47:05 +00:00
Torbjörn Andersson
478257f624 Instead of reading an entire compressed sound into a memory stream, use a
slightly extended SeekableSubReadStream to stream the sound from a file instead.
This change is experimental, so it should almost certainly not go into 0.13.

svn-id: r38637
2009-02-20 22:43:13 +00:00
Filippos Karapetis
781d7da6b1 Applied my patch for the BS1/2 video player
- Support for the MPEG2 videos in BS1/2 has been dropped. The MPEG2 videos were lossy, and support for them complicated the code a lot.
- Support for the non-existing enhanced MPEG cutscene packs for BS1 has been dropped. As a consequence, the credits player and the splitted audio stream players used for these packs has been removed
- The original Smacker videos for both games are now supported, using our Smacker player (which is based off publically available specs and FFMPEG)
- The animations now use the common video player code. Both the Smacker videos and our DXA video packs are supported

svn-id: r38236
2009-02-15 13:29:48 +00:00
Travis Howell
9f2d6d82ca Make the subtitle settings in Options section of the global main menu optional, and enable only for game engines where subtitles settings are synced.
svn-id: r36237
2009-02-07 06:47:19 +00:00
Torbjörn Andersson
7cab911532 Disable the "press c for credits" hotkey (which wasn't in the original anyway)
because of strange rumors about the credits running spontaneously every few
minutes. I don't know if this is a temporary or permanent measure.

svn-id: r36155
2009-01-31 07:57:41 +00:00
Max Horn
abc06ca18e Moved Graphics::PixelFormat into its own header file; turned RGBToColor etc. into methods, and added an operator==
svn-id: r35993
2009-01-22 04:35:10 +00:00
Eugene Sandulenko
696897b058 Whoa! Removing trailing spaces.
svn-id: r35648
2009-01-01 15:06:43 +00:00
Torbjörn Andersson
a0250fe0b1 Replaced the old stack macros with ScummVM's FixedStack class.
svn-id: r35603
2008-12-29 11:55:09 +00:00
Eugene Sandulenko
829cbc4110 Move all video players to separate directory
svn-id: r35470
2008-12-21 21:08:17 +00:00
Travis Howell
9c20a533bb Enable Smacker support, and switch later HE games to Smacker support (since they aren't supported yet).
svn-id: r35368
2008-12-14 23:41:48 +00:00
Torbjörn Andersson
1edc1789b1 Changed readLine_OLD() to readLine_NEW(). I guess both this and the previous
readLine() change could be more robust, but at least it should be no worse than
it was before.

svn-id: r35226
2008-12-03 21:52:51 +00:00
Torbjörn Andersson
a871e01151 Converted the credits scroller to use readLine_NEW() instead of readLine_OLD().
svn-id: r35224
2008-12-03 21:30:41 +00:00
Johannes Schickel
5a0556f09c Committed my patch #2123680 "SDL: Backend transaction / rollback support".
svn-id: r35062
2008-11-14 22:08:10 +00:00
Torbjörn Andersson
926193c9c3 Only hide the cursor for in-game pausing. Pausing from the outside is assumed to
bring up the GUI, which has its own cursor. (This fixes the cursor disappearing
when pausing on one of the engine's own dialog windows.)

svn-id: r34977
2008-11-09 20:35:06 +00:00
Filippos Karapetis
7d8e4ca59b Added a getMaximumSaveSlot() implementation for sword1 and sword2
svn-id: r34969
2008-11-09 19:30:09 +00:00
Torbjörn Andersson
b7991b6ad8 Removed some code that was added earlier to deal with dimming/undimming the
palette when pausing the game in a mid-fade. The game can only be paused in
mid-fade from the outside, and then the palette isn't dimmed/undimmed.

svn-id: r34958
2008-11-09 14:35:45 +00:00
Torbjörn Andersson
d896c892e5 Allow pausing (from the outside) during credits and palette fades. Refactored the
code to distinguish outside pausing from in-game pausing, to avoid cursor-related
problems. The screen is now only dimmed during in-game pausing.

svn-id: r34957
2008-11-09 14:32:24 +00:00
Torbjörn Andersson
2e9e68fc8e Fixed pausing during credits.
svn-id: r34956
2008-11-09 13:50:41 +00:00
Torbjörn Andersson
db3438f2c9 Allow pausing during cutscene movies. (This will need an update to the mixer's
getSoundElapsedTime() function to work better.)

svn-id: r34954
2008-11-09 13:20:43 +00:00
Torbjörn Andersson
18414f0a0a Moved sound-related settings to syncSoundSettings() for the global options dialog.
svn-id: r34947
2008-11-09 11:52:52 +00:00
Max Horn
40136f2590 Switched various Engine APIs to use Common::Error
svn-id: r34916
2008-11-06 17:05:54 +00:00
Max Horn
edf9f24926 Got rid of OSystem::colorToRGB and RGBToColor; added implementations for OSystem::getOverlayFormat to several ports (pending testing by the porters)
svn-id: r34912
2008-11-06 15:02:50 +00:00
Max Horn
f32be87633 Turned enum PluginError into Common::Error, which in the future is to be used in more places. Help with this is highly welcome
svn-id: r34906
2008-11-05 17:24:56 +00:00
Max Horn
fe2935ad4b Got rid of the unused 'filename' attribute in SaveStateDescriptor
svn-id: r34905
2008-11-05 15:41:12 +00:00
Max Horn
61aadb378d Fixed the EngineFeature vs. MetaEngineFeature mess, clarified some EngineFeature comments
svn-id: r34896
2008-11-04 16:11:40 +00:00
Filippos Karapetis
b7a219ebc6 Renamed engine feature kSupportsDirectLoad to kSupportsLoadingDuringStartup, as discussed in patch #2122869
svn-id: r34854
2008-10-26 16:42:08 +00:00
Torbjörn Andersson
dc75da4348 Use the save file manager's listSavefiles() function to find out if any savegames
exist at all. (The old method was to potentially try and open a hundred files,
though it would stop after finding the first one.)

svn-id: r34790
2008-10-13 04:24:18 +00:00
Max Horn
3248906156 Engine class changed:
- Moved initCommonGFX() && GUIErrorMessage() out of class Engine
- got rid of the _autosavePeriod member (this prevented users from
  changing the autosave period during runtime)
- Got rid of an evil 'using GUI::Dialog' statement
- Clarified some Doxygen comments

svn-id: r34720
2008-10-02 17:48:01 +00:00
Max Horn
c7fde102e3 Renamed FilesystemNode -> FSNode
svn-id: r34716
2008-10-02 16:58:59 +00:00
Max Horn
9b160804ab Renamed Engine::quit to Engine::shouldQuit (previously, it was easily confused with Engine::quitGame); also cleaned up engine.h a bit
svn-id: r34700
2008-09-30 12:27:38 +00:00
Max Horn
655ce26b3f Big patch changing the signature of various Stream methods (some ports may need to be slightly tweaked to fix overloading errors/warnings)
svn-id: r34514
2008-09-13 16:51:46 +00:00
Johannes Schickel
0a35842954 Committed my patch #2105593 "Launcher/MetaEngine: Finnished removeSaveState".
svn-id: r34495
2008-09-11 19:47:45 +00:00
Max Horn
2bc093828f Replaced Engine::_gameDataPath (a String) by Engine::_gameDataDir (an FSNode); adapted code to that (by using getChild() to get subdirs, not string concatenation
svn-id: r34434
2008-09-07 22:10:58 +00:00
Torbjörn Andersson
ba07d1dd0a Use readLine() instead of readLine_OLD().
svn-id: r34336
2008-09-04 21:40:32 +00:00
Max Horn
57e724bfc3 Renamed SeekableReadStream::readLine to SeekableReadStream::readLine_OLD; added a new alternate SeekableReadStream::readLine() instead
svn-id: r34315
2008-09-03 17:53:25 +00:00
Max Horn
d3642080de Moved check for shouldRTL() from engines to scummvm_main
svn-id: r34310
2008-09-03 16:56:40 +00:00
Max Horn
531bcf847c Moved FilesystemNode / FSList to namespace Common; also got rid of some 'typedef Common::String String;' name aliases
svn-id: r34302
2008-09-03 11:22:51 +00:00
Christopher Page
ec8dac5540 Added a MetaEngineFeature for RTL support, the RTL button is disabled in the GMM if the engine doesn't support it
svn-id: r33921
2008-08-16 02:53:16 +00:00
Christopher Page
9d3cdcb2da Defined some MetaEngineFeatures for the engines, the launcher uses these features to allow/disallow loading and deleting saves
svn-id: r33909
2008-08-15 18:15:14 +00:00
Christopher Page
4198ee9623 Merged revisions 33188-33189,33191-33193,33196,33198,33202-33203,33206,33210,33212,33218-33220,33222,33224-33226,33229-33243,33246,33248-33250,33252,33258-33261,33263,33266,33270,33272-33283,33285,33287-33290,33295-33298,33321,33325-33330,33332-33335,33337-33340,33342,33345,33347,33349-33350,33352-33357,33359-33367,33369-33371,33373,33375-33377,33379-33380,33383-33385,33387-33389,33392-33394,33400-33402,33404-33405,33407-33410,33412-33416,33418-33419,33425-33427,33432,33436-33438,33444,33446,33452-33453,33455-33459,33463-33464,33466-33471,33473-33474,33478,33490,33492,33495-33496,33509-33512,33518-33519,33522-33527,33529-33530,33537,33541,33544,33546,33550,33552-33554,33556,33558,33561-33562,33565,33568,33570,33574,33576,33578-33581,33584-33587,33590,33596,33604-33611,33614-33615,33617-33618,33620-33621 via svnmerge from
https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk
 

svn-id: r33624
2008-08-04 22:34:07 +00:00
Max Horn
0be985ce83 Changed class File (and derived classes) to only support read-only access; added a new class DumpFile for writing
svn-id: r33412
2008-07-29 16:09:10 +00:00
Christopher Page
cf97920930 Added --list-saves support for SWORD2
svn-id: r33396
2008-07-29 05:05:04 +00:00
Christopher Page
09f4fd946e Merged revisions 33052-33053,33056-33058,33061-33064,33068,33070,33072,33075,33078-33079,33083,33086-33087,33089,33094-33096,33098-33099,33104,33108-33109,33114-33117,33120,33135-33146,33160,33162,33165,33167-33169 via svnmerge from
https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk

svn-id: r33183
2008-07-21 22:46:39 +00:00
Torbjörn Andersson
702e26965c Don't crash if you try to use music file #2 as music file #1. When the music
wasn't found, it would close the file even if something else was already
playing from it. (Some music is in both files.)

svn-id: r33094
2008-07-18 04:16:00 +00:00
Christopher Page
7f480ac571 Quit and RTL code is more modular now. EVENT_RTL no longer sets _shouldQuit, shouldQuit is only set if there's an EVENT_QUIT. EVENT_RTL and EVENT_QUIT are completely separate from each other. Engine::quit() method now checks both _shouldQuit and _shouldRTL to determine if the engine should exit. There is no longer a need for resetQuit(), so it's removed
svn-id: r33082
2008-07-16 04:22:56 +00:00
Christopher Page
796e606971 SWORD2 works with the new GMM implementation
svn-id: r33044
2008-07-13 22:00:39 +00:00
Christopher Page
d2c0b9d003 Sword2 now uses the new _quit flag
svn-id: r32794
2008-06-26 04:54:29 +00:00
Johannes Schickel
73da6ab51e - Removed -Wconversion from compiler options for g++ 4.3, it's behavior has fundamently changed in g++ 4.3
- Added -Wno-empty-body and -Wno-parentheses as compiler flags for g++ 4.3 for *now* (we should think of removing -Wparentheses though)
- Fixed some warnings for g++ 4.3 (only for the engines I'm using)

svn-id: r32540
2008-06-04 17:20:25 +00:00
Torbjörn Andersson
7833dd87a5 Rewrote dimPalette() so that the dimming is now a "filter" between the Screen
class and the backend, i.e. as far as the game engine is concerned the palette
remains unchanged. (This is similar how to the SCUMM engine handles the "noir"
mode in Sam & Max.)

This is one small step towards allowing the game to be paused anywhere.

svn-id: r32369
2008-05-29 20:32:27 +00:00
Torbjörn Andersson
4b06f42ff3 Initial implementation of pauseEngineIntern(). There are issues, though, since
the engine doesn't always allow the game to be paused, and some things (GUI,
movie cutscenes, credits, ...) are outside the main engine loop.

svn-id: r32232
2008-05-23 17:54:47 +00:00
Johannes Schickel
600ab40bca Changed all delete [] usages to delete[].
svn-id: r31927
2008-05-07 14:31:45 +00:00
Jordi Vilalta Prat
38a8aa516e Allow static and dynamic plugins to be used at the same time
svn-id: r31888
2008-05-06 03:00:26 +00:00
Max Horn
88bb567e18 Merged lots of _mixer->isReady() warnings into a single one in Engine constructor
svn-id: r30871
2008-02-15 17:01:35 +00:00
Jordi Vilalta Prat
c103290e2b Initial support for plugin types
svn-id: r30825
2008-02-08 00:02:23 +00:00
Torbjörn Andersson
441ec75a71 I think this is slightly easier to read...
svn-id: r30803
2008-02-05 21:39:29 +00:00
Max Horn
8a73356a2d Revised Engine plugin API to only provide a single func which returns a MetaEngine instance. Used this to simplify the rest of the plugin system
svn-id: r30780
2008-02-03 18:56:47 +00:00
Torbjörn Andersson
e51bf80218 Changed "COMPATIBLITY" to "COMPATIBILITY".
svn-id: r30754
2008-02-03 10:15:36 +00:00
Max Horn
dc979b03cf New MetaEngine class (work in progress to replace the current Engine plugin API with a more object oriented approach)
svn-id: r30726
2008-02-02 00:54:52 +00:00
Jordi Vilalta Prat
d6c34bdc4b Fixed the spaces before tabs.
svn-id: r30667
2008-01-28 00:14:17 +00:00
Jordi Vilalta Prat
66e9d4f5e8 Removed trailing spaces.
svn-id: r30664
2008-01-27 19:47:41 +00:00
Torbjörn Andersson
323aafcf78 The dummy ("narration only") cutscene player misbehaved a bit if the cutscene
soundtrack was present. It should work better now.

svn-id: r30455
2008-01-12 20:18:41 +00:00
Torbjörn Andersson
bd7bef0fe6 Clear the EXIT_CLICK_ID variable when entering a new room. Otherwise, if an
exit warps back to the same room, clicking on the same exit again is
misinterpreted as a double-click, and that only works if we're already walking
towards that exit. Otherwise, the game will hang. This fixed bug #1851502
("SWORD2: Black-out in Forest").

svn-id: r29876
2007-12-16 09:44:04 +00:00
Torbjörn Andersson
35e8a66518 Workaround for bug #1487382 ("SWORD2: Game freezes"). It appears to be a script
bug.

svn-id: r29866
2007-12-16 00:41:30 +00:00
Torbjörn Andersson
01b6e025ff Fixed typo in comment.
svn-id: r29865
2007-12-15 22:54:00 +00:00
Gregory Montoir
a34df6e72d add Common::Rect::center (handy for ::setFocusRectangle())
svn-id: r29751
2007-12-07 20:53:06 +00:00
Torbjörn Andersson
044100c097 Experimental "focus rectangle" support. I don't have any way to actually test
it myself.

svn-id: r29677
2007-12-01 08:15:30 +00:00
Travis Howell
9aa0a47846 Revert patch #1709219 - DXA Player: double size scaling option.
svn-id: r29351
2007-11-01 06:00:16 +00:00
Eugene Sandulenko
3318c4b474 Slighly modified patch #1709219: "DXA Player: double size scaling option"
svn-id: r29347
2007-10-31 21:37:40 +00:00
Eugene Sandulenko
77eea722af Modified patch #1738058: "Action recorder".
svn-id: r28968
2007-09-19 13:55:05 +00:00
Nicola Mettifogo
258901bab9 Merged common/stdafx.h into common/scummsys.h. All referencing files have been updated.
svn-id: r28966
2007-09-19 08:40:12 +00:00
David Corrales
6856535010 Merged fsnode with trunk: r27971:28460
svn-id: r28462
2007-08-05 19:34:20 +00:00
Torbjörn Andersson
b16d398eb1 The mixer no longer allows unpausing channels that aren't paused. So don't.
svn-id: r28155
2007-07-21 14:39:12 +00:00
Max Horn
f4c0b853cc Fixed sound factory messup caused by my previous commit
svn-id: r28111
2007-07-15 19:24:00 +00:00
David Corrales
cacd7a28fd Merged the FSNode branch with trunk r27031:27680
svn-id: r27681
2007-06-23 18:51:33 +00:00
Max Horn
a041ef2317 Slightly updated key handling in BS2, Kyra, and Touche
svn-id: r27637
2007-06-22 23:03:12 +00:00
Torbjörn Andersson
db8e5332fc Use the KEYCODE constants.
svn-id: r27593
2007-06-21 19:33:05 +00:00
Travis Howell
12c9fb0382 Add support for pausing/resume cutscenes shown on the OmniTV in The Feeble Files.
svn-id: r27371
2007-06-12 06:08:47 +00:00
David Corrales
3b96c7fad5 Renamed methods in the FilesystemNode class to match the AbstractFSNode implementations.
Also exposed the new methods (exists, isReadable and isWritable) in FilesystemNode.

svn-id: r27113
2007-06-05 21:02:35 +00:00
Max Horn
22c0403e0d Re-added Revolution Software copyright to BS2 engine
svn-id: r27030
2007-05-31 20:28:29 +00:00
Max Horn
218e132e37 Updated legal headers in source files, based on what Pidgin (the IM client formerly knowns as Gaim) does; added new (incomplete) COPYRIGHT file; updated copyright dates in a few spots
svn-id: r27024
2007-05-30 21:56:52 +00:00
Max Horn
00b9bc7b36 Removing lots of superfluous semicola (see mail by David Weinehall on scummvm-devel)
svn-id: r26594
2007-04-25 19:31:23 +00:00
Torbjörn Andersson
4b4d7dec8e I must have accidentally broken frame skipping when I added DXA playback. Made
frame skipping actually skip the updateScreen() call.

svn-id: r26469
2007-04-14 14:07:11 +00:00
Gregory Montoir
5aca9dce8c added the instance of EventManager returned by OSystem::getEventManager as a member of the Engine base class. This allows to simply the code a bit and should more efficient too (ie. less virtual function chain calls, obj->getA()->getB()). Also updated several engines to make use of it.
svn-id: r26357
2007-04-01 17:36:13 +00:00
Torbjörn Andersson
48cb57ec89 Let the event manager keep track of the mouse position.
svn-id: r26205
2007-03-18 12:53:28 +00:00
Torbjörn Andersson
31bc152cc1 Fixed bug that caused the music to stop. I don't know if this is a regression,
or it if was just luck that it worked before.

svn-id: r26196
2007-03-18 09:33:42 +00:00
Torbjörn Andersson
ecf976b5ea Oops.
svn-id: r26191
2007-03-18 08:58:25 +00:00
Max Horn
ed54ea9155 Moved Event/EventType/keyboard enum from common/system.h (part of class OSystem) to common/events.h (part of namespace Common). Porters may have to make minor changes to their backends to get them to compile again
svn-id: r26180
2007-03-17 19:02:05 +00:00
Torbjörn Andersson
53624376b4 Applied my re-revised patch #1487149 ("Simplified keyboard repeat"), with
Fingolfin's blessings. Keyboard repeat is now handled by the event manager,
rather than by individual engines.

Since this can cause problems with some engines (see the AGI engine), the extra
"key down" events are marked as "synthetic", so that they can be ignored if
necessary.

svn-id: r26170
2007-03-17 15:44:26 +00:00
Max Horn
15d9bc42ea Force all code to use EventManager::pollEvent instead of OSystem::pollEvent
svn-id: r26156
2007-03-17 00:53:21 +00:00
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
c489be38d6 Removed obsolete 'if' (resp. replaced it by an assert)
svn-id: r25918
2007-03-01 17:15:26 +00:00
Max Horn
4203819b39 Got rid of another use of File::incRef/decRef
svn-id: r25917
2007-03-01 17:13:23 +00:00
Max Horn
8366420474 Remove unneeded #includes
svn-id: r25838
2007-02-24 23:41:20 +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
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
b4b6adc11e Cleanup.
svn-id: r25747
2007-02-20 17:41:26 +00:00
Max Horn
b777c09ac0 Removed some dead code, updated a warning message
svn-id: r25662
2007-02-17 20:38:27 +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
f31d438a64 SWORD2: Enhance the detector to recurse into the 'clusters' directory, making it possible to detect & run BS2 from (a straight copy of) the CD
svn-id: r25490
2007-02-11 13:02:50 +00:00
Torbjörn Andersson
98a8e88f61 Instead of pre-rendering all subtitles and pre-loading all sounds for a movie
cutscene, render the text and play the speech when needed. It probably won't
play as nicely from CD now, but using less memory seems more important to me.

svn-id: r25428
2007-02-08 21:55:37 +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
Torbjörn Andersson
0080ae687a Stop movie lead-in/out when restarting the game (as I already claimed in a
comment that I was doing) to *really* fix bug #1645480. This time for sure...

svn-id: r25231
2007-01-27 22:10:50 +00:00
Torbjörn Andersson
d2910fe758 Added separate function for playing cutscene lead-in/out sounds, and made sure
that these are stopped whenever the engine is going to do a mass killing of
game resources, e.g. when restoring or restarting the game. Should fix bug
#1645480. (This was a regression added during the rewrite to support DXA.)

svn-id: r25204
2007-01-26 18:21:41 +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
Torbjörn Andersson
85b780baf1 Use FRAMES_PER_SECOND, not getFramesPerSecond(), to calculate the number of
frames before a sound effect is triggered. This is not dependent on _gameSpeed.

svn-id: r24971
2007-01-03 07:56:24 +00:00
Torbjörn Andersson
6496482de5 Added experimental "fast mode" for Broken Sword 2. (Use Ctrl-f to toggle.)
svn-id: r24970
2007-01-03 07:36:44 +00:00
Torbjörn Andersson
4c46f4a878 The MPEG player no longer handles frame syncing/dropping, so this comment is
obsolete now.

svn-id: r24872
2006-12-18 07:55:31 +00:00
Torbjörn Andersson
51a964d056 Applied patch #1597800 to better support the Spanish end credits.
svn-id: r24727
2006-11-16 21:20:24 +00:00
Max Horn
8d37c135c0 Since we now generate warnings/messages for engine instantiation failures in a central place, get rid of such messages printed by engines
svn-id: r24686
2006-11-12 03:26:44 +00:00
Torbjörn Andersson
b1434f2632 Fixed regression caused by recent debug console cleanup. The key stroke that
invoked the debug console would repeat after the console was closed. Another
example why keyboard repeat should be centralized, I guess...

svn-id: r24649
2006-11-07 20:30:39 +00:00
Max Horn
9edf1e6a1a cleanup
svn-id: r24407
2006-10-21 12:44:10 +00:00
Max Horn
b5cbbd705a Added some more const keywords
svn-id: r24330
2006-10-15 02:15:38 +00:00
Torbjörn Andersson
60aee54bfe Fixed bug #1569594 ("BS2 DXA Movie Exit/Crash"). That's what I get for only
testing with subtitles enabled... :-)

svn-id: r24089
2006-10-02 23:07:43 +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
Max Horn
651d22b873 * Added virtual Engine::getDebugger() method
* Removed code from errorString() methods that hooked the debugger(s)
  into error(), in favor of using getDebugger() from within error()
* As a consequence, removed most custom errorString() methods

svn-id: r23894
2006-09-16 19:31:23 +00:00
Max Horn
919092e5fc Overhaul of the debugger code
* Moved Common::Debuggger to GUI::Debugger (mainly to satisfy linker
  restrictions)
* Change the base Debugger class to *not* be a template class anymore;
  instead, a thin (template based) wrapper class is used to hook up
  debugger commands
* Removed duplicate Cmd_Exit and Cmd_Help methods in favor of a single
  version of each in GUI::Debugger
* New Cmd_Help doesn't word wrap after 39/78 chars, but rather queries
  the console to determine when to wrap
* Debugger::preEnter and postEnter aren't pure virtual anymore

svn-id: r23890
2006-09-16 16:58:27 +00:00
Torbjörn Andersson
c51d6bb903 Fixed compilation.
svn-id: r23842
2006-09-09 10:47:32 +00:00
Chris Apers
6ee4d1b317 Fixed crashes on Zodiac and add support for this device
svn-id: r23840
2006-09-09 10:29:14 +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
4f9576e033 The DXA player now bases subtitle position on screen size, rather than frame
size. This should help people who want to use the smaller, low-quality
cutscenes instead of the high-quality ones.

The MPEG player probably doesn't know this trick. Maybe later.

svn-id: r23742
2006-08-23 21:13:11 +00:00
Torbjörn Andersson
d4d2146a0a Run the game detector before creating the engine. This is based entirely on a
recent change to the CINE engine (which in turn was based on some other engine,
I forget which), and should fix bug #1544796. Of course, given how primitive
the Broken Sword 2 detector is, it's easy to fool it. There isn't really any
need for it to be smart, though.

svn-id: r23741
2006-08-23 04:26:01 +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
Johannes Schickel
e5934c8f21 Using FilesystemNode::name instead of FilesystemNode::displayName in the sword2 detector code too.
svn-id: r23557
2006-07-22 14:39:54 +00:00
Torbjörn Andersson
8242e6966d Cleanup.
svn-id: r23551
2006-07-22 09:05:13 +00:00
Oystein Eftevaag
17f8c7067a Removing redundant paranthesis
svn-id: r23543
2006-07-21 11:04:21 +00:00
Torbjörn Andersson
6c0edab41e Some cleanups and restructuring. The clearScreen() function has been renamed
clearFrame(), and is only responsible for clearing the frame buffer. Frame
syncing and frame drawing are now separate from each other.

svn-id: r23525
2006-07-15 23:44:44 +00:00
Torbjörn Andersson
961e56c636 Fixed regression: Test if there's a text object to close before closing it.
svn-id: r23524
2006-07-15 23:18:11 +00:00
Torbjörn Andersson
c7babbea99 Close the current text object when the movie is ended, to avoid potential
memory leak, and be a bit more robust about handling text objects in the dummy
player.

svn-id: r23523
2006-07-15 22:42:28 +00:00
Torbjörn Andersson
700953cff7 Oops. I just noticed I was using _black to track the white colour, and _white
to track the black colour.

svn-id: r23522
2006-07-15 22:22:39 +00:00
Torbjörn Andersson
68c150df3c This is more consistent with how we usually initialize arrays of structs, and
seems to still keep msvc8 happy.

svn-id: r23521
2006-07-15 22:04:42 +00:00
Johannes Schickel
db58d3477b Should fix shadowing warnings with gcc.
svn-id: r23520
2006-07-15 21:27:29 +00:00
Johannes Schickel
59d0ddf806 Fix building with msvc8.
svn-id: r23518
2006-07-15 21:23:08 +00:00
Torbjörn Andersson
cd020a688e Moved the initial screen clearing from play() to load(), so that it will be
done before the MPEG player calls showOverlay().

svn-id: r23482
2006-07-10 18:57:40 +00:00
Torbjörn Andersson
d8e974ba72 Fixed bug #1519817, "ALL: Build failure if libmpeg2 is disabled".
svn-id: r23470
2006-07-10 09:29:12 +00:00
Torbjörn Andersson
7bfaa0db78 Cleanup
svn-id: r23439
2006-07-08 20:45:01 +00:00
Torbjörn Andersson
1e0b6995aa More robust handling of the optional startup.inf file.
svn-id: r23436
2006-07-08 20:20:55 +00:00
Torbjörn Andersson
5aff1df220 Slightly more verbose debug message.
svn-id: r23428
2006-07-08 15:39:26 +00:00
Torbjörn Andersson
5658e71f4d Added support for DXA cutscenes, while still retaining support for the old MPEG
cutscenes and the "dummy" (subtitles and voice-over) mode. Several tweaks and
cleanups were made in this process, and there may very well be regressions, but
it should be stable enough to commit.

svn-id: r23420
2006-07-08 11:42:07 +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
3114f19d94 MPEG player fixes:
* Initialise _frameWidth and _frameHeight to prevent them from being undefined.
* Fix BS2 subtitle positioning. (Fixes bug #1499916)
* In BS2, copy the frame to the backend in 8-bit mode.
* Fix compilation in 8-bit mode.

BS2 subtitles aren't quite right in 8-bit mode, but I expect we want to
re-design things a bit if we ever add DXA cutscenes. We can fix minor details
then.

svn-id: r22859
2006-06-03 09:43:10 +00:00
Torbjörn Andersson
e06ee0c490 We already have a default setting for subtitles, so this shouldn't be needed.
svn-id: r22704
2006-05-28 08:16:07 +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
f83f1a77b6 Only check if the files on "CD 0" are present. The others are requested with
"insert CD" messages. (Of course, that isn't supported, or even well tested,
but the idea is sound.) This makes it possible to run the BS2 demo again.

Incidentally, this is how I *meant* for it to work when I added that check - I
even wrote so in the comment above that section of the code - so how on earth
did I manage to screw it up like that?

svn-id: r22594
2006-05-24 04:48:39 +00:00
Torbjörn Andersson
6b90c405e8 Initialise _resList to avoid crash (from freeing an invalid pointer) if the
data files are missing.

svn-id: r22520
2006-05-18 14:28:19 +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
Torbjörn Andersson
d2030f17b3 Removed hack that was used to limit the mouse cursor to (at most) 80x80 pixels.
That limit has been lifted from the SDL backend.

NOTE: This may cause problems in other backends!

svn-id: r22405
2006-05-10 20:50:59 +00:00
Max Horn
b727a89b6c Set speech_mute/sfx_mute/music_mute values in one single central place
svn-id: r22342
2006-05-04 21:14:50 +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
Max Horn
8fdcfedf19 Do not call static class methods as if they were instance methods
svn-id: r22172
2006-04-26 08:34:01 +00:00
Torbjörn Andersson
2cbcd49893 If the resource manager fails to initialize itself properly, instead of
printing a fatal error, use the new GUIErrorMessage function and return to
the launcher. Also, verify that all files that should be present on "CD 0"
(i.e. on the hard disk) are present at startup, at least. (Any other missing
CLU file is already requested with an "Insert CD" message.)

svn-id: r22168
2006-04-26 06:12:03 +00:00
Torbjörn Andersson
6b10484513 Fixed the output from the "res" debugger command that I accidentally broke, oh,
almost four months ago.

svn-id: r22167
2006-04-26 05:59:58 +00:00
Max Horn
74edd90aba Fix for bug #1471383: Instead of overloading ConfigManager::set, we now have new setInt and setBool methods (matching getInt/getBool), which avoids strange quirks & bugs caused by (char *) being implicitly cast to int (ouch)
svn-id: r21951
2006-04-16 19:23:14 +00:00
Max Horn
453aad9ec3 Do not override the 'directory' param when dumping BS2 resources
svn-id: r21935
2006-04-16 12:23:37 +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
Max Horn
8cf8acfd63 Renamed various *GameSettings to GameSettings (our namespaces are enough to distinguish them)
svn-id: r21686
2006-04-08 11:21:04 +00:00
Eugene Sandulenko
d292c0ec55 Since our debug() adds an exclamation mark at the message end, remove
it in several calls to avoid duplication!!11!

svn-id: r21607
2006-04-04 22:04:51 +00:00
Torbjörn Andersson
a55ebd5fb2 Merged d_draw.cpp and rdwin.cpp (what little remained of them) into screen.cpp.
svn-id: r21573
2006-04-03 09:54:05 +00:00
Torbjörn Andersson
c4955466fd Simplified loading of startup.inf
svn-id: r21538
2006-04-01 21:56:10 +00:00
Torbjörn Andersson
d6f348638d Guard against too many entries in resource.inf, since there has been a TODO
comment about that (removed in the previous commit) since roughly forever.

svn-id: r21536
2006-04-01 21:55:41 +00:00
Torbjörn Andersson
f59d472155 Simplified the loading of resource.inf
svn-id: r21533
2006-04-01 21:42:11 +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
Travis Howell
6632a4df53 Revert FLAG_AUTOFREE changes to loadWAVFromStreammakeWAVStream
svn-id: r21376
2006-03-19 05:15:49 +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
d2f78184af - added new toDetectedGame() template function (analog to toGameSettings)
- made use of the new DetectedGame constructor from my last commit
- some related cleanup

svn-id: r21149
2006-03-09 01:42:56 +00:00
Max Horn
d9a9fac937 Fixed tons of format string warnings for debug/error calls (including several errors where the format string didn't match the number of arguments to the call)
svn-id: r21141
2006-03-08 11:37:25 +00:00
Max Horn
907bd7128d Fix for bug #1438822 (Targets are case sensitive)
svn-id: r21017
2006-03-02 22:29:01 +00:00
Paweł Kołodziejski
11f348dd6c fixed warnings
svn-id: r20829
2006-02-23 17:51:27 +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
Torbjörn Andersson
147c17989a This file was obsoleted by the previous commit, but I didn't want to force SVN
to remove it. Removed it now instead.

svn-id: r20742
2006-02-17 15:15:29 +00:00
Torbjörn Andersson
002c587965 Removed includes from sword2.h so that (hopefully) there will eventually be
less dependencies.

svn-id: r20741
2006-02-17 15:07:36 +00:00
Max Horn
7967e30c73 Added global toGameSettings() template function for convenience; simplified GameSettings usage in some engines
svn-id: r20739
2006-02-17 00:22:53 +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
Torbjörn Andersson
441ead453a Merged _mouse.cpp and mouse.cpp into mouse.cpp
svn-id: r20659
2006-02-12 21:41:34 +00:00
Torbjörn Andersson
8935cac6da Standardized the preprocessor constants used to prevent double inclusion of
header files. Each now begins with "SWORD2_" and ends with "_H". (Well, except
for "SWORD2_H", since I didn't want to name it "SWORD2_SWORD2_H".)

svn-id: r20655
2006-02-12 19:57:23 +00:00