Commit Graph

669 Commits

Author SHA1 Message Date
Max Horn
2859b64702 Fix struct packing issues (macros are not resolve in #pragma params, at least for GCC)
svn-id: r23569
2006-07-22 17:28:48 +00:00
Johannes Schickel
4ae5cef491 - let md5_file accept a FilesystemNode too
- changes some engine detectors to use it

svn-id: r23559
2006-07-22 14:59:44 +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
f59cf1fcdc Removing GCC_PACK, we fully rely on START_PACK_STRUCTS / END_PACK_STRUCTS now (hiya eriktorbjorn, this one is for you *ggg*)
svn-id: r23547
2006-07-21 21:25:17 +00:00
Max Horn
f35f4a4d1c Use START_PACK_STRUCTS / END_PACK_STRUCTS when available, instead of checking for GCC / not GCC
svn-id: r23458
2006-07-09 13:01:15 +00:00
Paul Gilbert
dfbc46f877 General additions of newly understood hotspot fields, further decoded talk handling, ratpouch being freed, and several more script methods
svn-id: r23418
2006-07-08 08:44:53 +00:00
Paul Gilbert
a20214e43a Rewrote the talk handling code
Added lots of debugging information
Partial support for characters bumping into each other
Player/NPC action handling generally improved
Added hard-coding for variable width frame animation of Ratpouch being released
Basic support for Ratpouch wondering around

svn-id: r23416
2006-07-08 08:42:58 +00:00
Paul Gilbert
6b5150797a Added support for ScummVM boot parameter values as well invoking the built-in debugger
svn-id: r23413
2006-07-08 08:39:42 +00:00
Paul Gilbert
64d0e4dcd8 Incremented lure.dat version and added new constants for debugging, tick methods, and hotspots
svn-id: r23412
2006-07-08 08:38:44 +00:00
Paul Gilbert
55c80679ba Disabled waiting for mouse release when making a popup selection to match original game
svn-id: r23411
2006-07-08 08:37:47 +00:00
Paul Gilbert
c6b6a2e125 Added new hotspot runtime fields, a list for handling the details of paused characters (who have bumped into each other), and loading of newly added default character states from lure.dat
svn-id: r23410
2006-07-08 08:36:32 +00:00
Paul Gilbert
acb3a5a9ac Added ScummVM debuglevel support for dumping executed scripts
Fixed up some incorrect script methods and added several new ones

svn-id: r23409
2006-07-08 08:34:29 +00:00
Paul Gilbert
4a52b14de6 Added improved display of partially off-screen images, as well as proper handling of special talk message Ids that display a puzzled or exclamation dialog talk bubble above a character
svn-id: r23408
2006-07-08 08:32:04 +00:00
Paul Gilbert
e79b3dfd41 Added shortcut stub for decoding a string without passing the current hotspot and action name
svn-id: r23407
2006-07-08 08:30:14 +00:00
Paul Gilbert
9fe05aa007 Rewrote the status line handling code along with tweaks to the debug information display
svn-id: r23406
2006-07-08 08:29:01 +00:00
Paul Gilbert
10e450947d Added extra checking and debugging code, as well as partial rewrite/enhancement of talking and hotspot support methods
svn-id: r23405
2006-07-08 08:27:19 +00:00
Paul Gilbert
6f388eb290 Replaced old debugging files with new ScummVM based one
svn-id: r23404
2006-07-08 08:25:27 +00:00
Paul Gilbert
163a8cb72c Initial commit of ScummVM-based debugging functionality
svn-id: r23403
2006-07-08 08:23:41 +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
Paul Gilbert
1c07797c50 Bugfix to properly detect the end of the indexed room hotspot list
svn-id: r22852
2006-06-03 03:38:24 +00:00
Lars Persson
5755b5a97e Fixed problem when building and debugging using Symbian Emulator.
svn-id: r22820
2006-06-01 22:43:19 +00:00
Lars Persson
9472476acb Symbian Emulator (VC6) compilation fixes.
svn-id: r22809
2006-05-31 20:05:31 +00:00
Torbjörn Andersson
85da5d8157 Fixed two Valgrind warnings. But there are still a couple of invalid reads
at startup.

svn-id: r22800
2006-05-31 13:36:01 +00:00
Paul Gilbert
321acd2740 Further disassembly of NPC actions as well as finally figured out the basics of NPC character modes in standard_character_tick_proc
svn-id: r22789
2006-05-31 08:32:24 +00:00
Paul Gilbert
75be177e90 Removed misspelled version of disassembly folder
svn-id: r22788
2006-05-31 08:32:05 +00:00
Paul Gilbert
5fa3985bcb Player now moves out of the way if he's blocking an entrance when an NPC enters. Also changed errors in unimplemented NPC actions to warnings
svn-id: r22731
2006-05-29 08:12: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
Paul Gilbert
622c8b57e7 Reworked the DISPATCH current action to support NPC schedules like the original game does. Additionally added basic implementation of necessary support routines
svn-id: r22582
2006-05-23 12:43:42 +00:00
Paul Gilbert
e22de3ab36 Added a new outer loop for what will later allow the restarting of the game. Also added the animation of the Skorl catching the player if the game state indicates it has happened
svn-id: r22581
2006-05-23 12:41:28 +00:00
Paul Gilbert
dddaa015df Added the loading of NPC schedules
svn-id: r22580
2006-05-23 12:39:39 +00:00
Paul Gilbert
0ebf2be4a4 Added new resource entries for NPC schedules, the Skorl catching animation, and miscellaneous
svn-id: r22579
2006-05-23 12:38:51 +00:00
Paul Gilbert
6bac5a257e Added support structures for NPC schedules
svn-id: r22578
2006-05-23 12:37:43 +00:00
Paul Gilbert
3e4566e196 Added some extra safety checks. Also contains some started work on redesigning the display of the current action
svn-id: r22577
2006-05-23 12:36:57 +00:00
Paul Gilbert
5f64d7009e Added script methods for manipulating current action support data and a stub for a script method that plays background music
svn-id: r22576
2006-05-23 12:24:50 +00:00
Paul Gilbert
fa23893974 Disassembled code responsible for making NPCs walk between rooms
svn-id: r22476
2006-05-14 22:11:14 +00:00
Torbjörn Andersson
d6af07989d This could be completely wrong, but I don't think Hotspot::stopWalking() is
supposed to call setCurrentAction() in Resources, because then ScummVM will
crash in getCurrentActionStr() whenever we try to interact with any object.

Since Hotspot::walkTo() calls setCurrentAction() in Hotspot, it seems like a
reasonable guess that this is the setCurrentAction() that stopWalking() should
call as well.

svn-id: r22409
2006-05-11 08:25:09 +00:00
Torbjörn Andersson
21b91adcdf Changed "it's" to "its" in a few comments.
svn-id: r22408
2006-05-11 08:04:41 +00:00
Torbjörn Andersson
dba0c5ca2c Whitespace changes.
svn-id: r22407
2006-05-11 07:59:50 +00:00
Paul Gilbert
30231a39c8 Added proper labels in some of the existing disassembled methods
svn-id: r22406
2006-05-11 07:25:54 +00:00
Torbjörn Andersson
e2656a276a Changed abs() to ABS()
svn-id: r22389
2006-05-08 13:34:21 +00:00
Paul Gilbert
b20966b92b Initial disassembly of NPC schedule handling methods
svn-id: r22380
2006-05-07 22:36:26 +00:00
Max Horn
84b2a4f76f It's wrong to assume a given file is located in gameDataPath, so do not use that to print out warnings that pretend otherwise
svn-id: r22272
2006-05-01 22:27:56 +00:00
Paul Gilbert
5584ea5c7e Incremented required lure.dat version
svn-id: r22236
2006-04-30 05:35:39 +00:00
Paul Gilbert
8f1604e4cf Added load of new script offset field for NPC handling of hotspots
svn-id: r22235
2006-04-30 05:34:54 +00:00
Max Horn
0aabdf821c Fix warning
svn-id: r22210
2006-04-29 11:56:59 +00:00
Paul Gilbert
1192f0dfca Enhanced hotspot action so that the player will properly walk to a hotspot before performing an action
svn-id: r22209
2006-04-29 11:22:05 +00:00
Paul Gilbert
946d0582dc Added proper action display after selection along with showing the camera cursor
svn-id: r22208
2006-04-29 11:19:55 +00:00
Paul Gilbert
8b184ad5b0 Changed resource Id constants, added a few more general constants, and slightly increased game speed
svn-id: r22207
2006-04-29 11:18:08 +00:00
Paul Gilbert
302c825a17 Reworked resource loading to no longer load hotspot proximities separately, or provide access to the list
svn-id: r22206
2006-04-29 11:17:06 +00:00
Paul Gilbert
3e8763f454 Reworked resources to handle moved hotspot proximity (walk to) co-ordinates
svn-id: r22205
2006-04-29 11:15:03 +00:00
Paul Gilbert
d88ce16b12 Tweaked dialog display code to refresh the screen and warn about message Ids needing display styles that aren't yet implement
svn-id: r22204
2006-04-29 11:13:47 +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
Paul Gilbert
14beeb3492 Added disassembly of door close support routines and other miscellaneous action support code
svn-id: r22162
2006-04-25 22:38:00 +00:00
Torbjörn Andersson
72906f2508 Made the Lure engine call updateScreen() more often - particularly when using
the menu bar at the top of the window - for smoother mouse movement. (After a
discussion with sev.)

svn-id: r21992
2006-04-17 23:37:22 +00:00
Max Horn
ba1b25305e Removed the directory parameter from md5_file
svn-id: r21937
2006-04-16 12:50:39 +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
Eugene Sandulenko
9610a4daef Fix warning.
svn-id: r21810
2006-04-11 22:11:12 +00:00
Torbjörn Andersson
d846f9a5e1 Added delays to the main and menu event loops to keep Lure from gobbling up all
available CPU time.

svn-id: r21787
2006-04-11 11:55:27 +00:00
Torbjörn Andersson
cba4871140 Changed max() to MAX(). This fixes compilation for me.
svn-id: r21786
2006-04-11 11:34:06 +00:00
Paul Gilbert
e3254a8879 Added disassembly of room exit handling, as well as a few cleanups to the path finding code
svn-id: r21785
2006-04-11 10:53:24 +00:00
Paul Gilbert
b8c80af183 Added proper path finding code for rooms, as well as miscellaneous support methods
svn-id: r21784
2006-04-11 10:52:11 +00:00
Paul Gilbert
4b91326131 Added a destRoomNumber variable to store which room a highlighted exit goes to, as well as some temporary code used to display pathfinding information onscreen when Toggle Info is turned on
svn-id: r21783
2006-04-11 10:50:18 +00:00
Paul Gilbert
169c8d78d1 Implemented better handling of changing rooms via room exits
svn-id: r21782
2006-04-11 10:48:28 +00:00
Paul Gilbert
7b32b7ef9c Added new resources for pathfinding and new resources
svn-id: r21781
2006-04-11 10:46:36 +00:00
Paul Gilbert
9b87224036 Resource loader enhanced to load hotspot proximity data and room walkable areas
svn-id: r21780
2006-04-11 10:45:22 +00:00
Paul Gilbert
f6b2cf2c6d Updated resource structures to add support for hotspot y corrections, proximity data, room walkable areas, and the room exit coordinate list
svn-id: r21779
2006-04-11 10:43:53 +00:00
Paul Gilbert
70654bc2a9 Added a script method for setting a blocking hotspot script
svn-id: r21778
2006-04-11 10:42:32 +00:00
Eugene Sandulenko
5a2ad04a9e Introduced language EN_ANY used for general English game entries. EN_USA and
EN_GRB should be used for games which have both variants. Currently it is
MM NES and BASS. All other are switched to EN_ANY.

svn-id: r21702
2006-04-08 23:12:56 +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
Paul Gilbert
4ee3298550 Completed disassembly of the Lure pathfinding code
svn-id: r21593
2006-04-04 11:53:45 +00:00
Max Horn
8cdee5a931 Do not #include endian.h in scummsys.h (cuts down deps on endian.h from ~400 to ~250). Many greetings to eriktorbjorn, and have fun recompiling.
svn-id: r21500
2006-03-29 15:59:37 +00:00
Max Horn
9f93e5bb81 Renamed various container isEmpty() methods to empty() to match STL conventions
svn-id: r21472
2006-03-28 09:42:54 +00:00
Paul Gilbert
b54d73d220 Further progress on disassembling pathfinding and support methods
svn-id: r21470
2006-03-27 21:32:43 +00:00
Eugene Sandulenko
22042bc637 - Implemented case insensitive file reading. Left old system as a fallback
in case some engine writer decide to do something unwise
- Removed used of ConfMan.getKey("path") in file-related cases, because
  now File class handles that
- Fixed bug in ScummEngine_v80he::o80_getFileSize() where path delimiters
  weren't translated

svn-id: r21443
2006-03-25 04:17:17 +00:00
Paul Gilbert
f596612344 Partially disassembly of the pathfinding code and miscellaneous support methods
svn-id: r21418
2006-03-23 21:26:13 +00:00
Paul Gilbert
dcf029e947 Further work on disassembling player tick/movement handler
svn-id: r21349
2006-03-17 21:59:29 +00:00
Paul Gilbert
15d4593412 In progress work on disassembling player tick/actions handler method
svn-id: r21310
2006-03-15 11:37:12 +00:00
Travis Howell
71a7754a37 Fix a valgrind warning
svn-id: r21260
2006-03-13 11:58:01 +00:00
Travis Howell
b8cf88622b Fix a few valgrind warnings
svn-id: r21258
2006-03-13 11:52:16 +00:00
Paul Gilbert
c5d90e026f Fix to remove warning on validating frame offsets in animation decoder
svn-id: r21257
2006-03-13 11:40:40 +00:00
Paul Gilbert
c44069fdfc Added further disassembly of animation decoder routine
svn-id: r21256
2006-03-13 11:33:17 +00:00
Paul Gilbert
3c303c0dfd Add proper handling for animations with frame offset tables during decoding
svn-id: r21255
2006-03-13 11:20:58 +00:00
Paul Gilbert
92eb7b7aa5 Changed temp variable from byte to word to fix decoding of some animation resources
svn-id: r21254
2006-03-13 11:18:18 +00:00
Lars Persson
04151343a7 Compile fixes for VC6
svn-id: r21179
2006-03-09 13:54:36 +00:00
Max Horn
de295c562d Replaced GF_ENGLISH in LureGameSettings by a proper Common::Language member variable; added (commented out) entries for the german and french lure
svn-id: r21168
2006-03-09 12:59:46 +00:00
Max Horn
6b19677e1d Make use of DetectedGame::updateDesc in the kyra & lure engines
svn-id: r21167
2006-03-09 12:52:54 +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
907bd7128d Fix for bug #1438822 (Targets are case sensitive)
svn-id: r21017
2006-03-02 22:29:01 +00:00
Paul Gilbert
1ef22b315f Lure - started work on disassembling player walking
svn-id: r21016
2006-03-02 21:27:09 +00:00
Paul Gilbert
dc75adbb25 Initial add of the Lure of the Temptress disassembly
svn-id: r20947
2006-02-26 21:36:33 +00:00
Torbjörn Andersson
094382a6d0 With the added delay to the popup menu loop, it's much more likely that each
iteration will see several events, so pop all events from the queue each time.
Of course, we still only need to check the mouse position once. Warp the mouse
back to neutral even if we're trying to go past the first/last menu entry.

svn-id: r20918
2006-02-26 15:24:11 +00:00
Torbjörn Andersson
f13d294ae5 Cleaned up my earlier "delay in busy-wait loop" commit, and added a similar
delay to PopupMenu::Show().

svn-id: r20914
2006-02-26 13:43:50 +00:00
Torbjörn Andersson
686d463def Added delays to the waitForRelease() and waitForPress() busy-wait loops.
svn-id: r20912
2006-02-26 13:02:25 +00:00
Paul Gilbert
dd6b207025 Improved layering of objects within rooms - for example, Ratpouch now properly shows up on the rack
svn-id: r20804
2006-02-21 09:25:39 +00:00
Max Horn
85b9205f42 Fixed compiler warning
svn-id: r20773
2006-02-19 17:44:50 +00:00
Paul Gilbert
1cc03798d9 Cleaned up the main game loop, improved handling for changing rooms, and improved click handling to properly support areas that override standard click handling, such as when having a conversation
svn-id: r20769
2006-02-19 04:29:26 +00:00
Paul Gilbert
9496df6f1b Added basic support for conversations, as well as reworking the Hotspot class to allowing for non-hotspot animations like the floating talk icon during conversations
svn-id: r20768
2006-02-19 04:25:28 +00:00
Paul Gilbert
9a653960c7 Converted mouse and events classes to use new getReference style
svn-id: r20767
2006-02-19 04:22:00 +00:00
Paul Gilbert
cf99c2092d Updated memory set method call to new name
svn-id: r20766
2006-02-19 04:20:18 +00:00
Paul Gilbert
8de9189ffe Changed hotspot references to use updated hotspot methods
svn-id: r20765
2006-02-19 04:19:09 +00:00
Paul Gilbert
d0fe9fdd79 Added handling for conversation data, as well as moved storing cursor data into it
svn-id: r20764
2006-02-19 04:17:54 +00:00
Paul Gilbert
5d8d871df3 Added new resources for conversations, cleaned up existing class names, and expanded hotspot resources to add newly understood fields
svn-id: r20763
2006-02-19 04:15:33 +00:00
Paul Gilbert
d525af4685 Added display of talk dialogs during conversations
svn-id: r20762
2006-02-19 04:13:08 +00:00
Paul Gilbert
3d0ada9443 Implemented several more script engine methods
svn-id: r20761
2006-02-19 04:11:22 +00:00
Paul Gilbert
b55cf4b0ff Added new class for displaying conversation talk dialogs
svn-id: r20760
2006-02-19 04:08:41 +00:00
Paul Gilbert
7ce5441ad6 Added new definitions used by the conversation subsystem
svn-id: r20759
2006-02-19 04:07:11 +00:00
Paul Gilbert
91d6bd57d7 Changed subsystem object create methods whose constructors I've switched to the newer getReference access
svn-id: r20758
2006-02-19 04:05:45 +00:00
Paul Gilbert
f868a59940 Changed the menu subsystem to use getReference rather than being passed in the constructor
svn-id: r20757
2006-02-19 04:04:07 +00:00
Paul Gilbert
441d0a89cc Changed the changed memset method to setBytes, which I like better
svn-id: r20756
2006-02-19 04:02:01 +00:00
Max Horn
8ac17430ac - renamed PLUGIN_getSupportedGames to PLUGIN_gameIDList for consistency
- renamed Engine_XXX_gameList to Engine_XXX_gameList for consistency
- added new Engine_XXX_findGameID / PLUGIN_findGameID function
- updated plugins code to take advantage of the new plugin API, to support
  obsolete gameids w/o showing them to the user

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

svn-id: r20747
2006-02-18 00:12:36 +00:00
Max Horn
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
Max Horn
be068cf6f3 The GameDetector is no longer a required parameter for Engine constructors
svn-id: r20590
2006-02-12 01:42:34 +00:00
Max Horn
80cf2fa46f Reduced data duplication in module.mk files; added module.mk files for null and x11 backends; added engines/module.mk
svn-id: r20584
2006-02-12 00:16:31 +00:00
Max Horn
26ee630756 Moved engines to the new engines/ directory
svn-id: r20582
2006-02-11 22:45:04 +00:00