Commit graph

56 commits

Author SHA1 Message Date
Filippos Karapetis
2e04dcb133 - Moved the Sierra game ID conversion code inside game.cpp, so that any game-specific workarounds are tested against ScummVM IDs
- Added detection for the EcoQuest 1 demo in the fallback detector
- Partially reverted my previous "fix" for EcoQuest 1 CD, and turned it into a script-specific hack for that game, for now
- Added handling of kDisposeScript calls made with 2 parameters, e.g. in KQ5CD and others (still untested, haven't found a test case)

svn-id: r43887
2009-09-01 17:09:59 +00:00
Filippos Karapetis
267bbb2bb4 Fixed the crash at the beginning of EcoQuest 1 CD
svn-id: r43875
2009-09-01 06:45:30 +00:00
Filippos Karapetis
ac025f4294 - Replaced more cases of EngineState parameters
- Made some version comparisons for old SCI0 versions easier to read
- Removed the GET_SEL32SV macro

svn-id: r43729
2009-08-25 15:14:29 +00:00
Filippos Karapetis
ed66cad677 - Simplified the parameters of some functions
- Replaced some EngineState parameters
- The SCI version is now obtained from the resource manager or the segment manager, thereby simplifying several functions
- Plugged 2 leaks in the fallback detector
- Renamed the segment manager and resource manager to "segmentManager" and "resourceManager" in all places, for consistency

svn-id: r43722
2009-08-25 08:38:14 +00:00
Joost Peters
6a3c595b01 remove \n's from error() calls
svn-id: r43571
2009-08-20 21:03:03 +00:00
Filippos Karapetis
c38f58598b - Simplified some functions to accept only the parts of the EngineState they need as parameters, instead of the whole EngineState
- Moved the class table in the Segment manager - it's the only class using it directly
- Removed the sci11 flag from save games (we already know this, we don't need to store it)
- Moved script_get_segment() and get_class_address() inside the segment manager class
- Removed the script_locate_by_segment wrapper
- Simplified script_lookup_export() a lot by removing some paranoia checks
- Added some WIP code for automatically determining the game id in the fallback detector (still not working)
- General cleanup

svn-id: r43458
2009-08-17 05:55:21 +00:00
Filippos Karapetis
31a0c80905 Moved the kernel and the vocabulary outside of the engine state (they're static data, which never changes during a game)
svn-id: r42398
2009-07-11 23:45:54 +00:00
Walter van Niftrik
a6ed05740f SCI: Moved resource36 handling into resource manager.
svn-id: r41349
2009-06-07 19:15:55 +00:00
Filippos Karapetis
3b687a7a04 Replaced KP_ALT, SKPV_OR_ALT and UKPV_OR_ALT
svn-id: r41340
2009-06-07 16:50:34 +00:00
Filippos Karapetis
744323ca33 Replaced/removed KP_UINT, KP_SINT, SKPV and UKPV as well as the VIEW_PRIORITY and PRIORITY_BAND_FIRST wrappers
svn-id: r41338
2009-06-07 15:53:30 +00:00
Willem Jan Palenstijn
60e02ad6a8 Store long-term pointers to object variables in a new ObjVarRef struct.
Storing them as reg_t* could cause the pointers to become invalid
when they pointed into CloneTable since CloneTable can be re-allocated.

svn-id: r41220
2009-06-06 11:38:20 +00:00
Walter van Niftrik
28242d289b SCI: Support for 16-bit DPCM.
svn-id: r41164
2009-06-04 11:35:17 +00:00
Filippos Karapetis
99c6874630 Split the kernel functions away from the vocabulary functions (WIP, saving/loading is broken)
svn-id: r41101
2009-06-01 14:12:43 +00:00
Filippos Karapetis
c730e0290d Replaced kernel_oops with error(), and added an enum to clarify the cases where invoke_selector should stop
svn-id: r41095
2009-06-01 08:00:58 +00:00
Filippos Karapetis
4441ca4b3e - Further objectification of the SCI vocabulary functions
- Rewrote the sci_opcodes enum so that it's easier to read
- Made the engine error out if data is sent to an invalid selector (which is a fatal condition)

svn-id: r41069
2009-05-31 14:55:32 +00:00
Torbjörn Andersson
0999534749 The error() and warning() functions add ! and newline automatically. (I didn't
look at debug() and debugC(), since I'm really bored with this now. :-)

svn-id: r41061
2009-05-31 10:02:16 +00:00
Filippos Karapetis
76406c35ec Started objectifying the vocabulary functions (WIP)
svn-id: r41051
2009-05-30 22:15:00 +00:00
Filippos Karapetis
3490819a66 - Removed debug_mode from the engine state
- Turned all SCIkwarn and SCIkdebug functions to ScummVM's debugC function
- Placed some debug code in appropriate defines: DEBUG_PARSER, DEBUG_AVOIDPATH and DEBUG_SOUND
- Removed the "debuglog" command and the "script_checkloads_flag" and "sci_debug_flags" variables

svn-id: r41033
2009-05-30 15:40:49 +00:00
Filippos Karapetis
4799cbf1c3 Removed the PREG, PSTK, IS_NULL_REG and REG_EQ defines
svn-id: r40767
2009-05-21 17:18:46 +00:00
Walter van Niftrik
df3357159c SCI: Added some stubs for LSL6CD (lores).
svn-id: r40719
2009-05-19 02:10:58 +00:00
Max Horn
8add60bf8c SCI: Cleanup/paranoia checks
svn-id: r40711
2009-05-19 00:02:10 +00:00
Max Horn
b0c1cf52e0 SCI: Got rid of EngineState::execution_stack_pos; overally, the resulting code should be even stricter in detecting invalid VM stack access (and some bugs when loading saves might be fixed now...)
svn-id: r40694
2009-05-18 18:15:45 +00:00
Filippos Karapetis
1239949ef2 Changed errors to be fatal, as most of them are fatal conditions. Some of them have been changed to warnings for now, as they occur in certain games (e.g. SQ4 floppy, SQ4 CD and KQ5 CD)
svn-id: r40675
2009-05-18 07:55:13 +00:00
Filippos Karapetis
87e8f94fde - Moved all the files out of /sci/scicore and into /sci
- Moved /scicore/sciconsole.h into /engine, and renamed /engine/scriptconsole.cpp to /engine/sciconsole.cpp

svn-id: r40608
2009-05-15 14:07:45 +00:00
Max Horn
9c44705f05 SCI: Got rid of SEG_ID/SCRIPT_ID
svn-id: r40599
2009-05-15 09:28:31 +00:00
Max Horn
8f0b776afb SCI: Added SegManager::getScriptIfLoaded() method
svn-id: r40598
2009-05-15 09:27:39 +00:00
Max Horn
75c0d719c9 SCI: Turned several script related SegManager methods into Script methods
svn-id: r40597
2009-05-15 09:27:07 +00:00
Filippos Karapetis
f75c950457 - Replaced SCI_VERSION_FTU_LOFS_ABSOLUTE with the GF_SCI1_LOFSABSOLUTE game flag
- Moved the version defines outside of versions.h

svn-id: r40559
2009-05-14 12:38:50 +00:00
Max Horn
7f29670843 SCI: Changed object / script local vars storage to use a Common::Array
svn-id: r40515
2009-05-12 23:30:42 +00:00
Max Horn
0255cd0213 SCI: Removed sci_memory.h/.cpp
svn-id: r40514
2009-05-12 23:30:10 +00:00
Max Horn
5e955ea045 SCI: Continue transition from MemObject to MemObjectNEW
svn-id: r40274
2009-05-03 11:07:07 +00:00
Max Horn
294bd0dc07 SCI: Renamed execution_stack -> _executionStack and turned it into a Common::Array
svn-id: r40182
2009-04-28 15:58:19 +00:00
Max Horn
9445439c4f SCI: Renamed gfxw_widget_t and subtypes to GfxWidget etc.
svn-id: r40104
2009-04-24 10:46:20 +00:00
Jordi Vilalta Prat
7050c7b03f SCI: Use the ResourceType enum instead of integers where it makes sense
svn-id: r38988
2009-02-28 23:46:50 +00:00
Greg Frieger
61ab59138a resource_t struct replaced with stub Resource class for future objectifying. Also the crash when exiting SCI1 games was fixed
svn-id: r38982
2009-02-28 21:59:49 +00:00
Greg Frieger
4dd1b7dad5 Turned ResourceManager into a class, along with all related functions
svn-id: r38978
2009-02-28 20:45:36 +00:00
Jordi Vilalta Prat
501e4bb91a SCI: Renamed some kernel types and general cleanup
svn-id: r38961
2009-02-28 11:12:59 +00:00
Max Horn
479751104f SCI: Renamed include/engine.h to engine/state.h; added a corresponding .cpp file with the EngineState constructor
svn-id: r38921
2009-02-27 02:23:40 +00:00
Max Horn
170916201c SCI: Moved almost all files from include/ to other dirs; only include/engine.h remains
svn-id: r38920
2009-02-27 02:23:00 +00:00
Max Horn
b5df97ad2b SCI: Moved kernel.h and kdebug.h from include/ to engine/; untangled header deps some more
svn-id: r38833
2009-02-24 05:51:55 +00:00
Max Horn
9744fc615c SCI: Changed selector name table to a Common::StringList
svn-id: r38805
2009-02-23 03:04:52 +00:00
Jordi Vilalta Prat
b5ce8d9320 Whitespace cleanup
svn-id: r38783
2009-02-22 13:11:43 +00:00
Jordi Vilalta Prat
817fde6cdd SCI: Convert the segment manager into a class
svn-id: r38767
2009-02-21 23:27:24 +00:00
Max Horn
ff17899d8e SCI: Got rid of include/scitypes.h
svn-id: r38746
2009-02-21 21:16:41 +00:00
Willem Jan Palenstijn
34f90ac043 revert large parts of r38621. error() is for fatal errors and does not return. warning() is not for debugging status messages.
svn-id: r38696
2009-02-21 14:11:41 +00:00
Travis Howell
7ce7993c30 Remove excess \n.
svn-id: r38695
2009-02-21 13:19:44 +00:00
Jordi Vilalta Prat
3cc6cdf719 Replaced "typedef struct _state state_t" with "struct EngineState"
svn-id: r38678
2009-02-21 10:47:56 +00:00
Oystein Eftevaag
25f7c37171 Wrapped the SCI engine in the Sci namespace.
svn-id: r38676
2009-02-21 10:23:36 +00:00
Max Horn
fa75bd23e6 SCI: Yet more cleanup
svn-id: r38661
2009-02-21 04:43:49 +00:00
Max Horn
031e3e3b90 SCI: Fixed tons of bugs in error/warning format strings
svn-id: r38655
2009-02-21 03:25:23 +00:00