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