Commit Graph

670 Commits

Author SHA1 Message Date
Kari Salminen
c949eb2dac Patch #2131406: AGI: Fix Crash with Apple][ Instruments.
Applied the patch as it is, thanks clone2727.
Now Apple IIGS AGI games don't crash anymore if the
instruments (They're in *.SYS16) or the instrument
samples (They're in SIERRASTANDARD) aren't found.

svn-id: r34798
2008-10-13 19:17:51 +00:00
Max Horn
6a2f3dc0b9 Added new type Engine::Feature; pushed down some #include dependencies
svn-id: r34755
2008-10-06 12:48:52 +00:00
Max Horn
c7fde102e3 Renamed FilesystemNode -> FSNode
svn-id: r34716
2008-10-02 16:58:59 +00:00
Max Horn
e798561013 AGI: Simplify WagFileParser by not reading data into a memory stream first (this was there to improve performance on systems with slow seeking; those systems should use another approach, see scummvm-devel)
svn-id: r34711
2008-09-30 16:53:04 +00:00
Max Horn
e5dbb3f901 AGI: Got rid of yet another unwarranted use of FSNode::getPath
svn-id: r34710
2008-09-30 16:38:46 +00:00
Max Horn
1d7de023d9 AGI: Another case where it is better to use FSNodes directly, instead of converting them to path strings
svn-id: r34708
2008-09-30 16:23:35 +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
1776c75566 Don't use File::name() needlessly (i.e. if you still know which file you just opened :)
svn-id: r34685
2008-09-29 11:07:39 +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
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
Filippos Karapetis
dd8e875b00 Commented out currently broken code, adding a FIXME
svn-id: r34297
2008-09-03 09:58:28 +00:00
Max Horn
42a5aa567b Merging more of the GSoC 2008 RTL branch: AGI
svn-id: r34242
2008-09-01 17:46:05 +00:00
Filippos Karapetis
cd3a904f78 Correct fix for bug #2073159 - "MICKEY: Incomplete computer message"
svn-id: r34186
2008-08-26 12:34:05 +00:00
Filippos Karapetis
a3404665f6 Fix for bug #2073159 - "MICKEY: Incomplete computer message".
Random numbers are calculated from 1 onwards in the preAGI engines, but there was an off-by one error. I'm currently hesitant to add this fix to the 0.12.0 branch, as I'm unsure if it has any possible regressions in Troll's Tale or Winnie the Pooh

svn-id: r34152
2008-08-25 14:55:11 +00:00
Christopher Page
909b66ef54 Merged revisions 33777,33781-33788,33790,33792-33793,33795,33797,33805,33807-33812,33815-33817,33819,33822,33826,33829,33837,33839,33844,33847,33858-33861,33864,33871-33873,33875,33877-33879,33886,33889-33892,33894,33896,33900,33902-33903,33919 via svnmerge from
https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk

svn-id: r33924
2008-08-16 04:30:01 +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
Kari Salminen
09762ac7a6 Fixed initialization of some SoundMgr-class's member variables. Moved _sndBuffer's allocation to SoundMgr's constructor and its deallocation to the destructor. Made fillAudio SoundMgr's method and removed a superfluous global static variable 'int16 *buffer'. Should help with the occasional crashes when starting the first sound in an AGI game.
svn-id: r33822
2008-08-13 11:57:48 +00:00
Kari Salminen
f69cc559b9 Reverted r33815 (But not r33816).
svn-id: r33819
2008-08-13 11:36:45 +00:00
Kari Salminen
be9192687b Shutting up Valgrind about using uninitialised values from array _chn in function stopNote.
svn-id: r33816
2008-08-13 01:10:03 +00:00
Kari Salminen
eeba630cbf Changed Agi::SoundMgr's sound buffer to a member array of size BUFFER_SIZE. Also added initialization of _playing to false in SoundMgr's constructor. Hopefully helps with the occasional crashes in the sound code when starting the first sound in an AGI game.
svn-id: r33815
2008-08-13 01:02:00 +00:00
Christopher Page
c9e0422722 Added Autosave support for AGI
svn-id: r33772
2008-08-10 22:53:43 +00:00
Christopher Page
21cd277f13 Fixed some GCC warnings
svn-id: r33647
2008-08-05 21:38:59 +00:00
Christopher Page
1fe2700dab Added support for Savestates to be loaded from the launcher
svn-id: r33461
2008-07-30 21:48:45 +00:00
Christopher Page
4394371ab7 Added --list-saves support for AGI
svn-id: r33351
2008-07-28 04:50:27 +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
00aee7dd73 Reverted an incorrect change to AGI
svn-id: r33077
2008-07-15 19:35:40 +00:00
Christopher Page
3ac3e84ecf Removed an exit() call in PreAGI
svn-id: r33049
2008-07-13 22:41:32 +00:00
Christopher Page
30b1a62e81 Removed unnecessary #inlcudes
svn-id: r32984
2008-07-10 05:15:19 +00:00
Christopher Page
e808cdf7a0 Reimplemented pushEvent() and artificialEventQueue to work with Events instead of EventTypes. Reimplemented Queue as a List instead of Array. Updated AGOS, AGI, CINE, GOB, and KYRA to work with the current implementation of the GMM
svn-id: r32971
2008-07-09 02:27:05 +00:00
Christopher Page
3beccaf115 PreAGI works with the new GMM implementation
svn-id: r32956
2008-07-08 01:33:57 +00:00
Christopher Page
61d25a912e Agi works with the new GMM implementation
svn-id: r32953
2008-07-07 23:24:12 +00:00
Christopher Page
0bffc3cb7b Sound settings for AGI are now configurable through the GMM
svn-id: r32936
2008-07-07 05:51:39 +00:00
Christopher Page
f878820bbe Created Global Main Menu Dialog. Made a uniform _quit flag for engines. So far agi, agos, and cine are now using the new _quit flag.
svn-id: r32770
2008-06-24 21:15:30 +00:00
Christopher Page
e86a422e25 Merged revisions 32564-32565,32567-32575,32577,32579-32594,32596-32603,32605-32639,32644-32646,32648-32666 via svnmerge from
https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk

svn-id: r32667
2008-06-11 17:36:21 +00:00
Max Horn
fefad79249 No need to specify CaseSensitiveString_Hash explicitly anymore
svn-id: r32663
2008-06-11 06:00:56 +00:00
Christopher Page
369f7b0d08 AGI: Modified AGI Engine to shutdown without using system->quit
svn-id: r32329
2008-05-27 20:15:36 +00:00
Christopher Page
e41bd1eae8 AGI: Fixed two memory leaks when returning to launcher from AGI Engine
svn-id: r32236
2008-05-24 00:08:13 +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
Filippos Karapetis
b804175684 Update AGI timers while waiting for a key to be pressed (e.g. when showing blocking text windows). Fixes bugs #1935909 and #1943872
svn-id: r31777
2008-04-29 18:50:17 +00:00
Filippos Karapetis
0de56ea1f9 Fix for original game bug #1942476 - "AGI: Fan(Get Outta SQ) - Score is lost on restart"
svn-id: r31776
2008-04-29 16:24:54 +00:00
Eugene Sandulenko
d1d227db83 Fix initialization of Apple //gs sound
svn-id: r31659
2008-04-22 20:33:46 +00:00
Kari Salminen
38b2fb1322 Fix timing in Apple IIGS MIDI parsing. Now sounds should get triggered at the correct times without the previously observed time jitter effect.
svn-id: r31636
2008-04-21 04:04:24 +00:00
Eugene Sandulenko
3334dbbd9a Add another verions of fanmade game Kings Quest 2 1/4 mentioned in
bugreport #1947051: "AGI: Kings Quest 2 1/4 - Unknown version"

svn-id: r31629
2008-04-20 20:06:18 +00:00
Kari Salminen
14918b05d1 Tiny cleanup: Fix a parameter name discrepancy between IIgsChannelInfo::noteOn-function's declaration and definition introduced in r31550.
svn-id: r31553
2008-04-17 21:05:20 +00:00
Johannes Schickel
b03ec8ac75 Fixed gcc warnings.
svn-id: r31550
2008-04-17 18:28:28 +00:00
John Willis
7828d50384 Fix building with GCC (a few extra ;'s got in there somehow).
svn-id: r31545
2008-04-17 17:40:28 +00:00
Kari Salminen
29e2b19c92 Implemented Apple IIGS MIDI playing with software mixing.
(NOTE: As you can hear this is a work in progress ;-))
- Added IIgsSoundMgr class for handling Apple IIGS sounds and moved functionality inside it
- Added IIgsMidiChannel class for handling Apple IIGS MIDI channels
- Made sound effects playing use the IIgsSoundMgr class too
- Modified software mixing routine to mix multiple sounds

svn-id: r31544
2008-04-17 17:18:43 +00:00
Kari Salminen
719c85f0ca Make convertWave-function static as it uses no member variables.
svn-id: r31510
2008-04-15 23:00:34 +00:00
Kari Salminen
875ee5c913 Cleanup (Remove unneeded functions and rename a struct correctly).
svn-id: r31509
2008-04-15 22:35:30 +00:00
Kari Salminen
ade3c38dc1 Move MIDI program change mappings to their own structs (Useful for later changes).
svn-id: r31508
2008-04-15 22:31:08 +00:00
Kari Salminen
91e1a6b7be Fix a couple of typos spotted by Raziel.
svn-id: r31487
2008-04-12 13:20:15 +00:00
Filippos Karapetis
e2fe69ff71 Show current text prompt when the accept_input opcode is called. This, together with commit #31477 fix bugs #1875076 - "AGI GR: Input prompt not changing in outhouse" and #1939632 - "SQ2: Text prompt glitch"
svn-id: r31485
2008-04-11 17:00:29 +00:00
Filippos Karapetis
58b78bae07 Initial attempt at handling non-default AGI game input prompt
svn-id: r31477
2008-04-10 21:58:59 +00:00
Filippos Karapetis
71f6a7e855 Allow the predictive dialog to be shown when ego cannot be moved (i.e. when _game.playerControl is 0), since in those cases it is possible to enter text in the input area. Should fix bugs #1935844 - "PQ1: Predictive Text does not load" and #1936374 - "LSL1: No predictive input at age verification page"
svn-id: r31462
2008-04-10 08:27:09 +00:00
Johannes Schickel
b586235fb8 Fixed warnings for msvc9.
svn-id: r31460
2008-04-09 15:16:50 +00:00
Filippos Karapetis
08f7059cf2 Fixed an off-by one error in the AGI set_menu opcode. Fixes bug #1935896 - "AGI: Fan(Beyond Titanic 2) - Assertion"
svn-id: r31457
2008-04-09 11:25:23 +00:00
Kari Salminen
4cc4bd0f41 Implement the full range of Apple IIGS MIDI program number to instrument mapping. Switch to using 8-bit signed sample data with Apple IIGS (In preparation for mixing multiple channels). Make Apple IIGS wavefile handling use SharedPtr and Array.
svn-id: r31451
2008-04-08 14:45:42 +00:00
Filippos Karapetis
9a0825cc06 Added a sanity check for original game script bugs in Agent06. Fixes bugs #1935842 - "AGI: Fan(Agent06) - Graphic errors" and #1935838 - "AGI: Fan(Agent06) - Crash on Quit"
svn-id: r31449
2008-04-08 08:54:05 +00:00
Max Horn
29f1e6de38 Advanced detector: replaced kADFlagAugmentPreferredTarget by its inverse, kADFlagDontAugmentPreferredTarget (since all AdvDetector engines except Kyra used kADFlagAugmentPreferredTarget, it seems reasonable to assume that as default)
svn-id: r31413
2008-04-05 22:29:08 +00:00
Kari Salminen
510a81bbd8 Add Apple IIGS MIDI program number to instrument number mappings (Both for the older instrument set used by SQ1 only and for the newer instrument set used by all the other tested Apple IIGS games).
svn-id: r31371
2008-04-03 22:15:59 +00:00
Kari Salminen
25ff174193 After further testing it seems Apple IIGS midi playing speed is actually 60 ticks per second. Hurrah!
svn-id: r31367
2008-04-03 18:31:30 +00:00
Kari Salminen
84105227f2 Fix naming of the Apple IIGS midi speed variable and its value (Was erronously named bpm although was really ticks per second rather than ticks per minute).
svn-id: r31366
2008-04-03 18:12:09 +00:00
Kari Salminen
4836c1109c Fix Apple IIGS midi playing speed (Based on tests with Apple IIGS KQ1 and SQ1 under MESS 0.124a)
svn-id: r31365
2008-04-03 14:33:53 +00:00
Kari Salminen
bd8df7afee Add detection entry for Serguei's Destiny II Demo v1.3.1 (March 22nd 2008).
svn-id: r31346
2008-04-01 00:23:39 +00:00
Max Horn
57ad73faee Removed char &operator [] from class String -- it had the potential to wreak havoc when used on shared strings (thanks to tramboi for pointing this out)
svn-id: r31334
2008-03-30 18:37:09 +00:00
Max Horn
770bc64f21 Added FIXME comment regarding sorting of pred.dic; replaced weird binary search code with simple binary search code ;-)
svn-id: r31291
2008-03-28 09:17:13 +00:00
Max Horn
05dd6cee3a Got rid of EncapsulatedADGameDesc
svn-id: r31130
2008-03-15 15:25:49 +00:00
Max Horn
6547ef6e12 Started to get rid of Common::EncapsulatedADGameDesc (using plain Common::ADGameDescription instead)
svn-id: r31121
2008-03-14 17:31:04 +00:00
Max Horn
8a9a14002e Advanced Detector: Changed fallback detector from a callback function pointer to an overrideable method of AdvancedMetaEngine
svn-id: r31119
2008-03-14 13:59:31 +00:00
Filippos Karapetis
93753d2f3b Fixed some issues with the previous commit, bug #1893564 should be fixed now without affecting anything else
svn-id: r30917
2008-02-22 09:13:27 +00:00
Filippos Karapetis
a7e7dfe122 Fix for bug #1893564 - "AGI: Texts messed out in Naturette 1"
svn-id: r30916
2008-02-22 08:57:18 +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
Kari Salminen
6740541e03 Fix for bug #1883989 (AGI: Jolimie freezes). Game's detection entry had its parameters in wrong order and game feature flags were interpreted as the AGI version number and vice versa... whoops.
svn-id: r30857
2008-02-13 01:33:40 +00:00
Kari Salminen
66418e4283 Tiny fix to autodetected game's naming (Removes an extra space).
svn-id: r30854
2008-02-12 15:31:09 +00:00
Kari Salminen
98f8e93102 Added better AGIPAL autodetect to the AGI's fallback detector (Now checks files 'pal.100' - 'pal.109' rather than just the file 'pal.101').
svn-id: r30852
2008-02-12 15:20:47 +00:00
Jordi Vilalta Prat
c103290e2b Initial support for plugin types
svn-id: r30825
2008-02-08 00:02:23 +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
34b35348be Moved AdvancedMetaEngine to namespace Common
svn-id: r30736
2008-02-02 11:52:04 +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
Kari Salminen
d92dbac672 Fix for bug #1881170 (AGI: palette-related glitches reported). Made AGIPAL use only the lowest 6 bits of each color component (This should be the way the original AGIPAL-hack behaves too).
svn-id: r30708
2008-01-30 01:58:43 +00:00
Kari Salminen
04dda32485 Combined two cases that did the exact same thing (In a switch-clause).
svn-id: r30702
2008-01-29 21:18:33 +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
Kari Salminen
af4d740757 Fully fix bug #1660424 (KQ4: Zombie bug). The bug also affected room 18 in addition to the room 16 that was already taken care of in revision 30482.
svn-id: r30631
2008-01-25 12:32:38 +00:00
Kari Salminen
3423fc8971 Added detection for fanmade AGI game Enclosure v1.03.
svn-id: r30630
2008-01-24 10:15:01 +00:00
Kari Salminen
b8a455db9b Define and use enumerations for AGI Mouse protocol 1.0's button states.
svn-id: r30620
2008-01-23 00:06:10 +00:00
Kari Salminen
f7a05a6d20 Fixed typo in comment.
svn-id: r30614
2008-01-22 19:45:06 +00:00
Kari Salminen
8d1dd18bda Implements 2 arguments version of the adj.ego.move.to.x.y-command. Should fix bug #1733297 (GR: Actor stuck (Amiga version)). Savegames when using adj.ego.move.to.x.y-command may be broken at the moment.
svn-id: r30602
2008-01-21 21:09:42 +00:00
Paweł Kołodziejski
604d4d96ea fixed potential unitialized variables, one array overflow
svn-id: r30571
2008-01-19 20:00:36 +00:00
Kari Salminen
0bfbd62ce7 Fixed obsolete comment.
svn-id: r30535
2008-01-17 12:21:31 +00:00
Kari Salminen
931b4abe5e Confirmed that the Amiga version of Space Quest II v2.0F using Amiga AGI 2.202 uses value 5 for v20 (i.e. the computer type variable). Thanks to Raziel for the info!
svn-id: r30533
2008-01-17 11:36:54 +00:00
Kari Salminen
5a2440ce1b Fix for isalpha() assertions (Almost identical to revision 29924's fix). Added the rationale for this fix in comments so hopefully this won't happen a third time at the same point in code ;).
svn-id: r30531
2008-01-17 11:16:00 +00:00
Kari Salminen
d6e2e1431c Confirmed that Amiga version of King's Quest III (v1.01 1986-11-08) using Amiga AGI 2.090 uses value 5 for v20 (i.e. the computer type variable). Thanks to Raziel for the info!
svn-id: r30516
2008-01-16 15:19:33 +00:00
Kari Salminen
d167ad4066 Workaround for bug #1660424 (KQ4: Zombie bug) which is a script bug present in the original game.
svn-id: r30482
2008-01-14 17:03:14 +00:00
Kari Salminen
a493647076 Indentation
svn-id: r30478
2008-01-13 23:43:17 +00:00