Commit Graph

423 Commits

Author SHA1 Message Date
Filippos Karapetis
ee56120fcf Added a proper fix for bug #1733238 - "FW: crash in copier room", taken from next_ghost's patch #1848173 - "ScriptVars class implementation for CinE"
svn-id: r29852
2007-12-13 17:53:31 +00:00
Filippos Karapetis
3240d0636a Fixed a regression from the latest cleanups
svn-id: r29851
2007-12-13 17:47:54 +00:00
Filippos Karapetis
280d634455 Fixed an incorrect copy/paste
svn-id: r29850
2007-12-13 17:03:14 +00:00
Filippos Karapetis
30be440557 Fixed regression introduced by the latest cleanups
svn-id: r29849
2007-12-13 15:10:52 +00:00
Filippos Karapetis
dd14a43cac Fixed one more regression from the latest cleanup
svn-id: r29848
2007-12-13 14:04:36 +00:00
Filippos Karapetis
2cb9ea3c10 Fixed a regression from the latest cleanup
svn-id: r29847
2007-12-13 13:51:04 +00:00
Sven Hesse
1d338096f0 Muting the compiler :P
svn-id: r29846
2007-12-13 13:26:49 +00:00
Filippos Karapetis
2991b03cc4 Cleanup and simplification
svn-id: r29845
2007-12-13 13:17:45 +00:00
Filippos Karapetis
8b7f3fae35 Cleanup
svn-id: r29844
2007-12-13 12:33:31 +00:00
Filippos Karapetis
2f7539e865 Cleanup
svn-id: r29843
2007-12-13 11:11:38 +00:00
Filippos Karapetis
a9e1f39a16 Cleanup and simplification
svn-id: r29842
2007-12-13 10:47:14 +00:00
Filippos Karapetis
8968f7e616 Changed the C style malloc/free to the C++ style new/delete
svn-id: r29841
2007-12-13 10:06:53 +00:00
Torbjörn Andersson
6589dba7f5 Fixed warning about casting away constness.
svn-id: r29839
2007-12-12 21:56:22 +00:00
Filippos Karapetis
dcf4755dc1 Cleanup, removed duplicate code
svn-id: r29838
2007-12-12 21:39:00 +00:00
Filippos Karapetis
99453537f1 Cleanup
svn-id: r29830
2007-12-11 23:16:15 +00:00
Gregory Montoir
a94fada0ae - minor screen fix for OS
- added new debug channel for sound
- updated 2 opcodes comments

svn-id: r29790
2007-12-09 13:41:59 +00:00
Gregory Montoir
6ef7e37488 reverted parts of commits #29447 and #29446 (caused regressions in ADL music playback) and properly (I hope) fixed the sound issues described in tracker item #1763053.
svn-id: r29766
2007-12-08 15:24:42 +00:00
Gregory Montoir
aae704f6cd amiga demo version of OS has a VOL.CNF file so I assume full versions of the game also use it ; enabled readVolCnf for all versions of OS.
svn-id: r29760
2007-12-08 09:51:24 +00:00
Gregory Montoir
c271093fbb simplified gfxConvertSpriteToRaw, some renaming
svn-id: r29758
2007-12-08 09:10:08 +00:00
Gregory Montoir
6b68c156ae made timing closer to the original interpreter and simplified manageEvents function (no need to recurse)
svn-id: r29757
2007-12-08 08:49:22 +00:00
Gregory Montoir
e82c2b3fb9 reverted part of commit #29749, inplace unpacking doesn't work with .ani data
svn-id: r29756
2007-12-08 08:48:31 +00:00
Filippos Karapetis
e905723b1e Cleanup and simplification
svn-id: r29755
2007-12-08 02:38:04 +00:00
Filippos Karapetis
c488384f19 Cleanup and simplification
svn-id: r29754
2007-12-08 02:24:12 +00:00
Gregory Montoir
126f55fd0e backported some changes for OS
- added parsing of VOL.CNF to get the (filename,bundle) mapping (should be more efficient than testing every bundle file)
- delphineUnpack allows "inplace unpacking", use this instead of allocating temporary buffers
- relation script run count should be set in _localVars[0]
- added comments for some "special" script variables

svn-id: r29749
2007-12-07 20:45:51 +00:00
Eugene Sandulenko
cc4311f10f One more fix from Patch #1773489
svn-id: r29447
2007-11-07 22:29:20 +00:00
Eugene Sandulenko
604be3107e Patches #1773489: "FW: Fixes for German Amiga Version"
svn-id: r29446
2007-11-07 22:28:01 +00:00
Torbjörn Andersson
c1760e2aae Mark the end of the Cine namespace.
svn-id: r29413
2007-11-04 18:03:18 +00:00
Gregory Montoir
7cf5a57827 fix buffer overflow (globalVars is int16 -> index/=2)
svn-id: r29402
2007-11-04 03:16:56 +00:00
Eugene Sandulenko
c640d1c604 Patch #1825276: "DETECTION: advanced detector engine simplification"
svn-id: r29386
2007-11-03 21:06:58 +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
Neil Millstone
c43f68e554 Fix bug where an object was accessed after it was deleted in cine engine
svn-id: r27870
2007-07-02 22:42:35 +00:00
Max Horn
2fa0a5c457 Cleaning up after myself (I blame it on, err, uhh... the Vogons?)
svn-id: r27625
2007-06-22 21:16:07 +00:00
Max Horn
54d668ac13 Changed more code to use Common::KEYCODE_ enum
svn-id: r27624
2007-06-22 21:10:57 +00:00
Torbjörn Andersson
8e2fd2ee73 Fixed freeing of invalid pointer, which would cause Operation Stealth to crash.
I don't know if the loadSet() / loadSetAbs() functions are every used in Future
Wars. If so, we should commit this to the branch as well.

svn-id: r27590
2007-06-21 17:24:27 +00:00
Filippos Karapetis
5dc568e7a7 Fix for #1733238 - FW: crash in copier room
svn-id: r27376
2007-06-12 12:49:07 +00:00
Eugene Sandulenko
6e5b70f5e9 Patch #1733764: "Fallback detection patch". GSoC student.
svn-id: r27375
2007-06-12 12:22:25 +00:00
Torbjörn Andersson
059ba7326c Fixed some Valgrind warnings (overlapping source and destination in strcpy()).
svn-id: r27207
2007-06-08 19:29:48 +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
Gregory Montoir
45b721d3cc cleanup, don't rely on assert() to ensure a gamefile/savefile is opened. Also removed the use of Common::File global objects.
svn-id: r27021
2007-05-30 18:43:28 +00:00
Max Horn
0de170c980 Removing useless common/fs.h includes
svn-id: r27018
2007-05-30 17:44:52 +00:00
Gregory Montoir
137140b7e9 removed some resource related memory leaks
svn-id: r27007
2007-05-29 21:06:07 +00:00
Gregory Montoir
73210b4aa3 added code for freePartRange, freePartEntry and freeOverlay (also renamed some functions and variables).
svn-id: r27006
2007-05-29 20:22:20 +00:00
Gregory Montoir
659e7ed76e sync resource unpacking code of cruise with cine
svn-id: r26933
2007-05-24 21:19:52 +00:00
Gregory Montoir
e0159324cc some fixes for the music in Amiga OS Demo
svn-id: r26886
2007-05-20 11:50:06 +00:00
Gregory Montoir
b37c83448a made the resource loading function case insensitive to the filename and removed a NULL dereference if a file is not found
svn-id: r26885
2007-05-20 11:48:53 +00:00
Gregory Montoir
4aa3ec63de when reading a string from a script, skip the '\0' trailing char (less opcode '0' executions...)
svn-id: r26880
2007-05-19 21:16:31 +00:00
Gregory Montoir
3afd0d9557 removed 4 unused offscreen buffers ; also changed several 64k buffers to be dynamically allocated.
svn-id: r26879
2007-05-19 21:12:10 +00:00
Max Horn
a165d96fd3 Fix preprocessor error caused by undefined symbol DEBUG_SPRITE_MASK
svn-id: r26874
2007-05-19 20:06:50 +00:00
Gregory Montoir
bde5404a4e added basic support for Amiga music playback
svn-id: r26870
2007-05-19 12:08:41 +00:00
Gregory Montoir
93e41222b5 added debug code to display sprite masks
svn-id: r26865
2007-05-18 09:19:35 +00:00
Gregory Montoir
e16e11fdf2 added missing MIN() calls
svn-id: r26864
2007-05-18 09:14:27 +00:00
Gregory Montoir
1b3458e429 moved gfx related functions from various.cpp/.h to gfx.cpp/.h and fixed indentation of previous commit
svn-id: r26863
2007-05-17 22:26:05 +00:00
Gregory Montoir
3ab295a0ee removed unneeded if blocks
svn-id: r26862
2007-05-17 22:18:51 +00:00
Gregory Montoir
e9827d0884 added code for gfxSpriteFunc1 and gfxSpriteFunc2, which are used for sprite masking (see also bug #1624797)
svn-id: r26861
2007-05-17 22:13:31 +00:00
Gregory Montoir
97e6e4aea8 this should fix script label offsets computation for OS
svn-id: r26841
2007-05-14 21:52:06 +00:00
Gregory Montoir
b5aa521a75 added basic support for sounds playback in Amiga versions (only tested with the demos)
svn-id: r26837
2007-05-13 16:11:19 +00:00
Gregory Montoir
e6ef2348a4 removed duplicated code (BASESON datafiles can be loaded with the existing bundle related functions)
svn-id: r26836
2007-05-13 16:07:33 +00:00
Gregory Montoir
a05d455ae8 minor fixes to the adlib sound code, this should help bug #1599270
svn-id: r26820
2007-05-13 02:11:38 +00:00
Max Horn
eb6318e9fa Added FIXME comment to CINE regarding an odd warning in processSeqListElement
svn-id: r26248
2007-03-19 22:30:28 +00:00
Max Horn
f1497d5aa9 CINE: Make use of EventManager::getMousePos
svn-id: r26222
2007-03-18 18:34:16 +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
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
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
Chris Apers
227d83ea6e Bad hack to make this engine works on PalmOS (compiler still seems to hate some global objects)
svn-id: r25684
2007-02-18 12:21:25 +00:00
Max Horn
7572d2b4f2 Changed detectBestMatchingGame to return a pointer to a ADGameDescription (or a subclass of it); added a (currently fake) fallback callback entry in ADParams
svn-id: r25574
2007-02-13 23:37:44 +00:00
Max Horn
4968e912ce AdvancedDetector changes:
* Renamed genGameList to gameIDList to make it match the corresponding
  plugin API function name
* removed the detectFunc param from detectGameForEngineCreation,
  as it *always* pointed to a straight wrapper around AdvancedDetector::detectAllGames
* as a consequence, removed the various GAME_detectGames functions from the
  engines, and removed the detectFunc param from ADVANCED_DETECTOR_DEFINE_PLUGIN

svn-id: r25547
2007-02-13 14:55:11 +00:00
Eugene Sandulenko
da7d8c9f35 Rename Common::GF_XXX to Common::ADGF_XXX
svn-id: r25545
2007-02-13 13:42:28 +00:00
Max Horn
2afe07992f Renamed kADFlagComplexID to kADFlagAugmentPreferredTarget, document it, and add it for AGOS, too
svn-id: r25543
2007-02-13 13:17:46 +00:00
Max Horn
55adc889e7 (re)added flags field to ADGameDescription, with currently only one value (GF_DEMO) -- this flag value is not yet used by anything (also, GF_DEMO hasn't been correctly set for AGI games yet)
svn-id: r25539
2007-02-13 01:28:18 +00:00
Torbjörn Andersson
3bc0661065 Merged the "palette manager" into the cursor manager. It was only used to
manage *cursor* palettes, so the name was misleading.

svn-id: r25500
2007-02-12 00:04:56 +00:00
Eugene Sandulenko
7b6bdd231d AdvancedDetector now has built-in fallback detection based on file lists.
Currently only gob engine benefits from it.

svn-id: r25374
2007-02-04 03:10:27 +00:00
Torbjörn Andersson
0a18259d78 Used Fingolfin's workaround for a bogus (?) warning produced by some versions
of GCC. (Not the one he's using, though, which is why I'm doing this instead.)

svn-id: r25327
2007-02-01 20:16:32 +00:00
Eugene Sandulenko
adcfd2cc5f Now AdvancedDetector could use single ID per engine. Also it can suggest
more complex game IDs with platform and language specified.

AGI engine benefits most from that.
Also turned Cine, Parallaction and SAGA to single ID, autoupgrading old ID.

svn-id: r25269
2007-01-29 23:25:51 +00:00
Eugene Sandulenko
93687d376b Add more paramteres to AdvancedDetector. Not used yet.
svn-id: r25241
2007-01-28 07:31:26 +00:00
Max Horn
d70c83bd4b Lots of cleanup in the AdvancedDetector
svn-id: r25194
2007-01-25 21:16:57 +00:00
Eugene Sandulenko
bb3cc79bc6 Reduce #include dependencies
svn-id: r25178
2007-01-25 01:05:25 +00:00
Eugene Sandulenko
318210ad96 Add optional size parameter to ADGameFileDescription. Not used now.
svn-id: r25164
2007-01-24 22:42:44 +00:00
Eugene Sandulenko
edd2422a55 Hide all AdvacedDetector parameters into a structure for easier maintenance
and extensibility

svn-id: r25163
2007-01-24 22:24:52 +00:00
Eugene Sandulenko
d3b0ff8ade Reduce dependency from common/advancedDetector.h
svn-id: r25156
2007-01-21 20:24:38 +00:00
Max Horn
fef501c205 openForSaving can fail, so it should be handled gracefully -- but better to assert out in a controlled manner than o invoke methods on a NULL pointer, right? :-)
svn-id: r25151
2007-01-21 15:19:30 +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
48061b3392 Fixed warning.
svn-id: r25092
2007-01-15 19:56:27 +00:00
Eugene Sandulenko
c01839bbe9 Make ADGameFileDescription is built in directly into ADGameDescription.
svn-id: r24947
2006-12-29 00:03:03 +00:00
Max Horn
559f2b62eb Renamed real_ADVANCED_DETECTOR_DETECT_GAMES_FUNCTION to ADVANCED_DETECTOR_DETECT_GAMES_FUNCTION, and real_ADVANCED_DETECTOR_DETECT_INIT_GAME to ADVANCED_DETECTOR_DETECT_INIT_GAME
svn-id: r24896
2006-12-19 23:57:04 +00:00
Max Horn
d82d2c4513 Fix warning about a const cast
svn-id: r24886
2006-12-19 12:24:41 +00:00
Eugene Sandulenko
457ebfea3c Get rif od ARRAYSIZE in ADGameDescription
svn-id: r24882
2006-12-19 04:35:08 +00:00
Eugene Sandulenko
18ce381060 Got rid of ARRAYSIZE in advanceDetector calls
svn-id: r24881
2006-12-19 03:52:04 +00:00
Eugene Sandulenko
6eb8b98adc Remove unneeded #include
svn-id: r24813
2006-12-07 00:32:32 +00:00
Torbjörn Andersson
f36beed55d Changed CINE_*_H_ to CINE_*_H for consistency with other engines. (Oh, who am I
kidding, I'm still testing the SVN change.)

svn-id: r24806
2006-12-03 18:29:58 +00:00
Torbjörn Andersson
2564d954de Fixed indentation. (Oh, ok, I actually just wanted to test the new SVN access
path.)

svn-id: r24805
2006-12-03 17:08:37 +00:00
Eugene Sandulenko
8fddc12581 Support loading saves from command line.
svn-id: r24787
2006-11-25 09:28:00 +00:00
Eugene Sandulenko
c89dcb6e79 Let F10 work in all expected cases.
svn-id: r24785
2006-11-24 20:25:55 +00:00
Eugene Sandulenko
a2b240c0e2 Fix regression in OS Amiga demo.
svn-id: r24771
2006-11-23 06:57:06 +00:00
Eugene Sandulenko
45c645159f Add missing dump script cases.
svn-id: r24770
2006-11-23 06:52:03 +00:00
Eugene Sandulenko
8476b767f9 Fix crashes on unimplemented music/sfx in Amiga/Atari versions.
svn-id: r24769
2006-11-23 06:50:44 +00:00
Eugene Sandulenko
57ba5fc233 Fix Amiga/Atari-specific copy protection.
svn-id: r24768
2006-11-23 06:49:23 +00:00
Eugene Sandulenko
51a621fe98 Dump global scripts too.
svn-id: r24767
2006-11-23 06:47:41 +00:00
Eugene Sandulenko
207ef00754 et up cursor palette. This fixes Amiga/Atari versions and makes cursor more
visible in most cases.

svn-id: r24766
2006-11-23 06:45:21 +00:00
Eugene Sandulenko
e09eaa074e Fix bug #1599267: "FW: Ungraceful exit from copy protection screen"
svn-id: r24765
2006-11-23 06:43:18 +00:00
Eugene Sandulenko
cfb29dcb51 Fix MSVC2005 warnings. Please, review the changes.
svn-id: r24760
2006-11-22 15:50:30 +00:00
Eugene Sandulenko
3799a91315 Fix regression which did not allow to enter save name.
svn-id: r24753
2006-11-20 20:27:30 +00:00
Eugene Sandulenko
315c286bea Proper implementation of o1_allowSystemMenu()
svn-id: r24750
2006-11-19 23:02:26 +00:00
Torbjörn Andersson
50e2cf9caa Don't allow the F9 and F10 keys to open menus if a menu is already open. (Might
need more testing.)

svn-id: r24747
2006-11-19 18:54:06 +00:00
Torbjörn Andersson
39b27ed3bb Added keyboard shortcuts for left and right mouse button.
svn-id: r24746
2006-11-19 18:32:00 +00:00
Eugene Sandulenko
c558018bd9 Implement o1_fadeToBlack()
svn-id: r24738
2006-11-18 20:57:37 +00:00
Eugene Sandulenko
785d86b63e Make input string truly editable
svn-id: r24732
2006-11-18 16:26:51 +00:00
Eugene Sandulenko
53c4684bbe Implement naming save games in cinE. See also FR #1579780: "FW: naming save
games"

svn-id: r24731
2006-11-18 15:16:44 +00:00
Eugene Sandulenko
53faadfdb6 Added per game target saves.
svn-id: r24718
2006-11-14 09:29:41 +00:00
Eugene Sandulenko
aba00bd320 Implement reading font data from external files for OS.
svn-id: r24714
2006-11-13 21:16:50 +00:00
Eugene Sandulenko
9f74b03182 Protection should not be bypassed for OS (and it didn't work well anyway)
svn-id: r24708
2006-11-13 16:42:34 +00:00
Max Horn
1f26cb8965 Reworked code in the advanced game detector (getting rid of much of the evil #define hell it consisted of previously)
svn-id: r24685
2006-11-12 03:23:29 +00:00
Eugene Sandulenko
84660f620b Improve international support in CINE engine.
svn-id: r24678
2006-11-11 15:37:03 +00:00
Eugene Sandulenko
a977988058 Next step in AdvancedDetector unification. Moved all common functions to
macroses. Now typical usage is just list of macros with parameters and 
array of game details.

svn-id: r24670
2006-11-10 22:43:10 +00:00
Eugene Sandulenko
8e4309b7c1 Remove slipped in debug output
svn-id: r24661
2006-11-08 21:54:03 +00:00
Eugene Sandulenko
cfabc8a203 Fix crashes with new BG incrustation code.
svn-id: r24660
2006-11-08 21:50:15 +00:00
Eugene Sandulenko
5e5bba4397 Fix bug #1579776: "FW: Save does not work properly"
svn-id: r24659
2006-11-08 21:46:57 +00:00
Gregory Montoir
f9cf368a67 got rid of two memory leaks
svn-id: r24589
2006-11-03 21:01:49 +00:00
Max Horn
7889783cac const correctness
svn-id: r24488
2006-10-24 09:44:20 +00:00
Torbjörn Andersson
b2ce8001cd Added MD5 for Future Wars included in the UK "Classic Collection".
svn-id: r24343
2006-10-15 21:50:34 +00:00
Eugene Sandulenko
ab90fd086e Reanmed CD -> "256 colors"
svn-id: r24339
2006-10-15 21:11:27 +00:00
Eugene Sandulenko
018d5e350c Since proper detection is added to CinE, build it by default and
announce as supported. Future Wars is completable.

svn-id: r24321
2006-10-15 01:13:43 +00:00
Eugene Sandulenko
95749148cf Add proper game detection to CinE engine.
svn-id: r24320
2006-10-15 01:06:44 +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
a2dc897fe5 Reduce code duplication
svn-id: r23888
2006-09-16 15:01:14 +00:00
Torbjörn Andersson
557af0cba5 Removed the copy protection bypass for Future Wars. We should only bypass the
copy protection if we know there were versions sold that either didn't have the
protection, or failed to include the information needed to get past it.

Besides, this particular bypassing doesn't work. The game appears to start
just fine, but the transporter early in the game is rendered non-functional.

svn-id: r23801
2006-08-28 19:13:54 +00:00
Torbjörn Andersson
af3241f700 Run the Cine engine's game detector before starting a game, to ensure that it
really is there. I hope this is the right way of fixing bug #1534073.

svn-id: r23660
2006-08-04 09:46:40 +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
cfd9977425 Using FilesystemNode::name instead of FilesystemNode::displayName in all game detectors.
svn-id: r23558
2006-07-22 14:50:50 +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
Max Horn
31ebfdd1be Yet another const warning fixed
svn-id: r22795
2006-05-31 10:55:09 +00:00
Joost Peters
4e45be4568 Only call OSystem::updateScreen() every other frame, so no more than 50 times per second.
This doesn't appear to make a visible difference on PC, but allows the game to run on PSP and probably several other consoles/ports that wait for 50/60hz vsync.
Since I'm not familiar with this engine I've added a 'FIXME' comment, because maybe this can be fixed/improved in a different manner.

svn-id: r22758
2006-05-29 23:25:50 +00:00
Torbjörn Andersson
985215a04a As far as I can tell, there's no longer any reason for PartBuffer and AnimData
to be packed, so I've removed the packing and added the 'refresh' field to
AnimData instead of having it as a separate array.

On the other hand, animHeaderStruct and animHeader2Struct *should* have been
packed, but weren't. I've changed they way they are initialised so that the
packing should no longer matter for them either.

svn-id: r22651
2006-05-26 09:36:41 +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
31f83ff233 Implemented FW inventory. This is basically a copy of makeMenuChoice(), minus
the ability to select menu items. There will be cleanups later, but for now we
try to match the original.

svn-id: r22395
2006-05-08 19:49:52 +00:00
Torbjörn Andersson
cab89a6f32 Another small update/cleanup to the French messages from Nicolas Joly.
svn-id: r22264
2006-05-01 20:10:29 +00:00
Torbjörn Andersson
72f0c9a5d7 Applied patch from Nicolas Joly to fix the French default messages in Future
Wars. (I had originally left them as question marks because I didn't know what
characters they were supposed to be.)

svn-id: r22259
2006-05-01 14:14:24 +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
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
Torbjörn Andersson
c9555a5d54 Added TODO about some extra data files that Operation Stealth has to load.
svn-id: r21844
2006-04-13 15:42:52 +00:00
Torbjörn Andersson
4ee82b0caf Work around crash in drawSpriteRaw(). In Future Wars, when going to the future,
I walked back to the room where I first arrived. At that point, maskPtr was
NULL for reasons yet unknown.

svn-id: r21839
2006-04-13 09:53:51 +00:00
Torbjörn Andersson
f5ab0e5578 Fixed potential crash in drawDialogueMessage(): The function should terminate
if, for some reason, messagePtr is NULL.

svn-id: r21833
2006-04-12 22:07:41 +00:00
Torbjörn Andersson
19a1cdfe85 Actions that do not have any custom response now print one of the default
responses. (Before, nothing would happen.)

svn-id: r21832
2006-04-12 22:06:30 +00:00
Torbjörn Andersson
cdcf44d3f3 Stubbed addPlayerCommandMessage(). I think it may have something to do with
printing default responses to commands.

svn-id: r21829
2006-04-12 16:34:23 +00:00
Torbjörn Andersson
151b38a6e5 This assertion shouldn't be needed. At least not here.
svn-id: r21826
2006-04-12 11:29:00 +00:00
Torbjörn Andersson
9dfc4b5f69 Fixed serious bug in removeOverlayElement() that would cause it to fail. This
caused getObjectUnderCursor() select the wrong object because the object list
was no longer guaranteed to be sorted on priority ("mask").

In Future Wars, this made it difficult (impossible?) to pick up the tunic,
because the game would pick the bushes instead, even though the tunic had a
higher priority.

svn-id: r21825
2006-04-12 11:27:45 +00:00
Eugene Sandulenko
7082e19ff2 Fix script dumping
svn-id: r21820
2006-04-12 03:45:54 +00:00
Eugene Sandulenko
8679083991 cleanup
svn-id: r21819
2006-04-12 03:12:56 +00:00
Eugene Sandulenko
75fec17d7e DEBUG_SCRIPT -> debugC
svn-id: r21816
2006-04-12 01:48:15 +00:00
Eugene Sandulenko
83d75e119f Add F1-F10 keymappings like in original engine.
svn-id: r21815
2006-04-11 23:31:03 +00:00
Torbjörn Andersson
a677541ac8 Added TODO comment about refreshAnimData[] and why it's not (yet) a field in
the AnimData struct.

svn-id: r21809
2006-04-11 21:39:09 +00:00
Torbjörn Andersson
62a163bc43 Might as well clear ptr1 and ptr2 in animDataTable[] when loading a savegame.
The previous commit should ensure that the elements that need to be loaded are.

svn-id: r21774
2006-04-10 23:48:22 +00:00
Torbjörn Andersson
badb5218fa If I understand things correctly, cinE used to dump the entire animDataTable
element to the savefile, including data pointers. After reading the savefile,
it would then test if ptr1 was NULL, to see if it should load the object.

I've extended the savefile format with a byte to indicate whether or not ptr1
was non-NULL. This seems to fix the problems I had with with loading savegames,
but of course any old savegame is now even more broken than before.

I still can't seem to get out of the room with the machine, though. Another
regression when migrating the code from cinE, or just my ability to get past
this annoying, timed puzzle?

svn-id: r21772
2006-04-10 23:22:26 +00:00
Torbjörn Andersson
9c15dc06eb Use our standard save file manager class to read and write the save games,
instead of putting them in the current working directory.

svn-id: r21741
2006-04-10 05:37:31 +00:00
Max Horn
66cdbaf1b5 Moved GameSettings to namespace Cine; moved savePath to various.cpp
svn-id: r21733
2006-04-09 19:44:40 +00:00
Torbjörn Andersson
8e7e503979 Casting an array of integers to a pointer to a struct seems like a pretty hacky
thing to do. This replacement hopefully works as intended.

svn-id: r21724
2006-04-09 12:04:33 +00:00
Torbjörn Andersson
324209e11f Minor cleanup, but savegames still don't work as well as I had hoped...
svn-id: r21720
2006-04-09 10:54:41 +00:00
Torbjörn Andersson
c4015860ac Fixed savegame saving/loading. I haven't done anything about the user
interface, so it's still even worse than in the original interpreter (just like
in cinE, presumably), but at least it no longer crashes when loading the saved
game, and hopefully the correct palette is saved.

svn-id: r21718
2006-04-09 09:08:45 +00:00
Torbjörn Andersson
fbe311ce6c Some more Operation Stealth changes. Mostly stubs.
svn-id: r21699
2006-04-08 19:26:15 +00:00
Torbjörn Andersson
2167c56cb3 This is probably what o1_removeLabel() should do. Is it used anywhere?
svn-id: r21698
2006-04-08 17:51:20 +00:00
Torbjörn Andersson
69e2ce1d4a Made the "gotoIf" opcodes slightly easier to read.
svn-id: r21697
2006-04-08 17:19:07 +00:00
Torbjörn Andersson
eac6dc09aa Make the warning message for undefined opcodes slightly clearer.
svn-id: r21696
2006-04-08 14:26:36 +00:00
Torbjörn Andersson
37d1248bd0 Fixed two Operation Stealth regressions:
* When I introduced the getNext* helper functions I accidentally used
  getNextWord() instead of getNextByte() in one case.

* When splitting the opcodes into separate functions, I noticed that Operation
  Stealth has no opcode 0x40, yet it's used. So for now we only warn when
  trying to execute an undefined opcode.

svn-id: r21695
2006-04-08 14:23:33 +00:00
Torbjörn Andersson
a81964c3c2 Renamed some local variables for consistency.
svn-id: r21694
2006-04-08 14:03:14 +00:00
Torbjörn Andersson
986dce3a7d Split the opcodes into individual functions. This could easily cause
regressions, but hopefully not too many. While doing this, I noticed I had
gotten at least one of the stubs I added recently wrong. That's hopefully
fixed now.

svn-id: r21693
2006-04-08 13:20:40 +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
Torbjörn Andersson
54b99891cb Cleanup.
svn-id: r21683
2006-04-08 08:04:23 +00:00
Torbjörn Andersson
f3ede2bf38 Began collecting hard-coded language-specific strings in a new initLanguage()
function. It's now possible to choose between English and French menus, and the
command string preposition in English is "on", not "sur".

There are still plenty of hard-coded French messages to do with savegame
handling. I haven't done anything about them.

svn-id: r21682
2006-04-08 07:50:47 +00:00
Torbjörn Andersson
812dd72207 Cleanup.
svn-id: r21681
2006-04-08 07:16:14 +00:00
Torbjörn Andersson
fce6bf5142 Added helper functions getNextByte(), getNextWord() and getNextString() to make
the opcode decoder a bit easier to read. The same change could be made to
decompileScript() as well, but I have a feeling that this function should be
made a standalone tool instead. Particularly considering how much memory it
currently uses.

svn-id: r21679
2006-04-08 06:47:58 +00:00
Torbjörn Andersson
26587faff7 This may look like a less good way of transforming three bits of colour into
eight bits. Perhaps it is. But it seems to match the output from DOSbox when
running Future Wars, and I tend to trust DOSbox in such matters.

svn-id: r21658
2006-04-07 02:02:06 +00:00
Torbjörn Andersson
15cc2e628d Small cleanup.
svn-id: r21655
2006-04-07 01:04:09 +00:00
Torbjörn Andersson
997c023095 Added opcode comments and stubs based on information sev provided me with. All
stubs should print a warning, though I may have missed some.

svn-id: r21654
2006-04-06 22:33:23 +00:00
Torbjörn Andersson
0f3aeb09ed Fixed another "worked in cinE, broken in ScummVM" bug that made it impossible
to interact with the objects in the second room. We were passing the wrong
pointer to gfxConvertSpriteToRaw() in loadCt(), causing page3Raw (which I
believe is an "image" mapping screen coordinates to objects) to be wrong.

svn-id: r21646
2006-04-06 20:57:58 +00:00
Torbjörn Andersson
c07f186502 We don't need to convert mono data to stereo: Simply tell the mixer that we're
generating mono data, and let it worry about how to handle it.

svn-id: r21645
2006-04-06 18:55:39 +00:00
Torbjörn Andersson
95eb460417 Use English strings for the system and confirm menus, to be consistent with the
command menu. There are still some other hard-coded French messages in the code,
though.

svn-id: r21634
2006-04-05 21:20:04 +00:00
Torbjörn Andersson
738aecd57e Fixed bug in loadObject() where the data pointer was only advanced for the
objects that were actually loaded from the file, not the ones that were
skipped. This bug was introduced when porting cinE to the ScummVM framework,
and would cause Future Wars to crash after the copy protection screen. Quite
possibly other bugs, as well.

svn-id: r21632
2006-04-05 20:11:00 +00:00
Torbjörn Andersson
48c46eed6b I don't think assert(0) is a particularly helpful error message...
svn-id: r21630
2006-04-05 13:06:03 +00:00
Eugene Sandulenko
58c7f8d6b1 Fix character spacing in text blurbs.
svn-id: r21629
2006-04-05 11:44:46 +00:00
Max Horn
8f691e51fa Removed superfluous addDefaultDirectory call, as well as two unused bad member vars
svn-id: r21532
2006-04-01 21:31:27 +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
Eugene Sandulenko
bc8f634834 Match game speed with original
svn-id: r21415
2006-03-23 03:55:00 +00:00
Eugene Sandulenko
0b35672f78 uint8 -> byte
svn-id: r21414
2006-03-23 03:45:52 +00:00
Eugene Sandulenko
6faa76d287 Made mouse more responsive
svn-id: r21413
2006-03-23 03:40:23 +00:00
Eugene Sandulenko
fced8df162 Got rid of ASSERT and ASSERT_PTR defines
svn-id: r21412
2006-03-23 03:17:47 +00:00
Eugene Sandulenko
36302c0921 Make copy protection in OS and FW turnable. Still buggy
svn-id: r21411
2006-03-23 03:15:39 +00:00
Gregory Montoir
61a5fb7064 - added defines to handle the different mouse cursors
- revised the way NUM_MAX_PARTDATA and NUM_MAX_ANIMDATA are used
- renamed some variables
- constify'ed function arguments
- minor cleanup

svn-id: r21338
2006-03-16 20:29:07 +00:00
Gregory Montoir
8f38cb6ff3 added mouse cursors
svn-id: r21321
2006-03-15 22:34:46 +00:00
Max Horn
d68b64184e Add a virtual destructor to class SoundDriver of the CINE engine (fixes a warning)
svn-id: r21284
2006-03-14 13:26:06 +00:00
Gregory Montoir
8476b7a94f minor cleanup.
svn-id: r21189
2006-03-09 23:02:29 +00:00
Gregory Montoir
2cf5859404 oo'ified sound code and added basic support for OS adlib music.
svn-id: r21186
2006-03-09 22:37:19 +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
Eugene Sandulenko
76a4bf9e77 Eliminate flip_support.cpp file.
svn-id: r21045
2006-03-03 19:38:17 +00:00
Max Horn
907bd7128d Fix for bug #1438822 (Targets are case sensitive)
svn-id: r21017
2006-03-02 22:29:01 +00:00
Gregory Montoir
2d464787c1 fixed compilation.
svn-id: r21014
2006-03-02 20:08:41 +00:00
Lars Persson
dad7ee3e2f Add PACK macros to structs for it to work on all platforms
svn-id: r21009
2006-03-02 10:52:27 +00:00
Max Horn
c01ef102af Breaking cine, in the hopes that somebody will fix this obviously totally bogus code (even if that fix just means uncommenting it :)
svn-id: r20999
2006-03-02 00:50:52 +00:00
Gregory Montoir
9c80770411 cleanup
svn-id: r20957
2006-02-27 21:25:59 +00:00
Gregory Montoir
164f35b878 cleanup unpacking function and get rid of an old hack to prevent buffer overflows.
svn-id: r20884
2006-02-25 18:26:16 +00:00
Gregory Montoir
0364eeed5c cleanup (endianess fixes, fixed partBufferStruct structure)
svn-id: r20881
2006-02-25 18:16:40 +00:00
Max Horn
a30f829773 Some more cine header cleanup
svn-id: r20859
2006-02-25 01:18:01 +00:00
Max Horn
275344a931 Reducing the header dependencies in cine a bit more
svn-id: r20857
2006-02-25 01:01:27 +00:00
Max Horn
5ea3b8f9cd - avoid using typedef for structs (it is just not necessary in C++)
- added a const/static here and there
- started to reduce header dependencies

svn-id: r20856
2006-02-25 00:46:56 +00:00
Max Horn
e35eb1dd2f Fix cine module.mk file (this fixed the dependencies system)
svn-id: r20855
2006-02-25 00:42:26 +00:00
Max Horn
f396995173 Use static/const on data tables when possible (this helps the compiler to optimize things better)
svn-id: r20853
2006-02-25 00:33:12 +00:00
Max Horn
2fc23c85da Moved cine engine into namespace Cine
svn-id: r20851
2006-02-25 00:26:14 +00:00
Gregory Montoir
481094ada0 cleanup
svn-id: r20846
2006-02-24 22:34:22 +00:00
Paweł Kołodziejski
96838c8ca6 formating code
svn-id: r20837
2006-02-23 20:02:46 +00:00
Paweł Kołodziejski
6b50204eea formating code
svn-id: r20836
2006-02-23 19:28:36 +00:00
Paweł Kołodziejski
e31b271760 formating code
svn-id: r20835
2006-02-23 18:47:28 +00:00
Travis Howell
f4c9c4f4d7 Fix a few more compile warnings.
svn-id: r20827
2006-02-23 11:29:37 +00:00
Travis Howell
26e0d95ef4 Fix a few compile warnings.
svn-id: r20826
2006-02-23 11:05:58 +00:00
Travis Howell
c9d6277d27 Update function type, to match last commit
svn-id: r20825
2006-02-23 10:45:59 +00:00
Travis Howell
8fa8d10c3f Fix a few compile warnings.
svn-id: r20824
2006-02-23 10:35:33 +00:00
Torbjörn Andersson
901edf5b33 Fixed some more compiler warnings. Many still remain.
svn-id: r20823
2006-02-23 10:26:14 +00:00
Travis Howell
3fe8c971f2 Cleanup to remove duplicate type defines
svn-id: r20821
2006-02-23 09:12:21 +00:00
Torbjörn Andersson
725a9d21f9 Fixed some of the compiler warnings.
svn-id: r20819
2006-02-23 07:59:25 +00:00
Torbjörn Andersson
43f2d984fb Don't call exit() directly. Instead, use the backend's quit() method for normal
shutdown, and error() for abnormal termination.

svn-id: r20818
2006-02-23 07:45:51 +00:00
Eugene Sandulenko
71c170bb13 Initial version of Cinematique engine evo 1.
svn-id: r20813
2006-02-22 22:40:53 +00:00