Filippos Karapetis
7e66cbd468
SCI: Rename a parameter in validateExportFunc()
...
This ensures that it won't be confused with a function with the same name
2012-06-26 11:13:14 +03:00
Filippos Karapetis
20b6770808
SCI: Change the program counter (PC) to be a 32-bit variable
...
This is needed for future support of large SCI3 scripts. The program
counter is isolated and does not interfere with other parts of the VM,
plus it does not get stored in saved games, so it's pretty straightforward
to convert
2012-06-23 21:45:26 +03:00
Filippos Karapetis
c1eb93bc5a
SCI: Clean up validateExportFunc() and related functions
...
Also renamed some SCI3 related code to indicate when it's SCI3 specific
2012-06-23 21:45:24 +03:00
Filippos Karapetis
041b1447c0
SCI: Replace RAW_IS_OBJECT with a method
2012-06-15 22:32:15 +03:00
Filippos Karapetis
160732b2f7
Revert "SCI: Change Script::getObject() to accept a reg_t"
...
This reverts commit 577d7e41c9 .
2012-06-15 22:32:14 +03:00
Filippos Karapetis
562a8a980c
SCI: Further cleanup of the script code
...
Merge the init() and load() Script methods and reset the script when
necessary
2012-06-15 12:53:17 +03:00
Filippos Karapetis
577d7e41c9
SCI: Change Script::getObject() to accept a reg_t
...
This is needed for upcoming changes to the Script class
2012-06-15 12:24:14 +03:00
Filippos Karapetis
27f2b6e4dd
SCI: Change the script buffer size to be a size_t as well
...
This will be needed in the future to load large SCI3 scripts
2012-06-14 12:20:43 +03:00
Willem Jan Palenstijn
8c57e4bf43
SCI: Fix const cast
2011-11-11 00:07:27 +01:00
Filippos Karapetis
5969c6bd2e
SCI: Updated Script::getObjectMap()
...
It now returns a reference to the object list instead of copying it
2011-11-05 13:08:42 +02:00
Filippos Karapetis
58190c36b4
SCI: Made the object map hashmap of the Script class private
2011-11-05 10:07:03 +02:00
Filippos Karapetis
267c6f1756
SCI: Made more fields of the Script class private. Some cleanup.
2011-11-05 03:00:42 +02:00
Matthew Hoops
9539017ee3
ALL: initialise -> initialize
2011-05-25 11:17:11 -04:00
strangerke
69b1485a22
GIT: Clean up: Suppress SVN tags, now useless
2011-05-12 01:16:22 +02:00
Filippos Karapetis
3485d433c5
SCI: Fixed bug #3034713 - "ICEMAN Demo: Fails to find base object"
...
This could happen because objects in scripts can be in the wrong order.
Same thing happens in the French and German version of KQ5 (bug #3035396 ).
Removed the scriptObjRemove() method, which is in fact a hack.
svn-id: r54510
2010-11-27 18:08:47 +00:00
Lars Skovlund
c5252071db
SCI3: Add proper support for the calle instruction
...
svn-id: r54327
2010-11-18 17:04:00 +00:00
Lars Skovlund
5ab823b16a
SCI3: relocate operand of the lofsa opcode
...
svn-id: r54301
2010-11-17 20:29:10 +00:00
Filippos Karapetis
b707d6e7dc
SCI: More work on SCI3, based on a patch by lskovlun
...
- Added SCI3 equivalents for access to object selectors
- Added SCI3 implementation of object relocation
- Added SCI3 implementation of Script::initialiseClasses()
svn-id: r54283
2010-11-17 11:15:52 +00:00
Filippos Karapetis
59ad5085bc
SCI: Some more work on SCI3, based on a patch by lskovlun
...
- Added a SCI3 implementation of Script::load()
- Added a SCI3 implementation of Script::initialiseClasses()
- Removed some duplicate code
svn-id: r54282
2010-11-17 09:28:04 +00:00
Filippos Karapetis
e4c967a301
SCI: Added the SCI3 equivalent of initialiseObjects(), from a patch by lskovlun
...
svn-id: r54281
2010-11-17 09:10:43 +00:00
Filippos Karapetis
5de2668939
SCI: Some changes regarding the string heap in saved games
...
- Maintain the state of the string heap space in saved games
- Merged SegManager::reconstructScripts() inside SegManager::saveLoadWithSerializer()
- Disabled a now unnecessary script patch for the cipher puzzle in Castle of Dr. Brain, and performed some cleanup for another disabled patch
- Removed direct access to the _baseObj variable of objects
svn-id: r54133
2010-11-08 00:18:34 +00:00
Filippos Karapetis
7d71d07075
SCI: Renamed findBlock() to findBlockSCI0()
...
svn-id: r54077
2010-11-04 23:19:23 +00:00
Filippos Karapetis
e242814990
SCI: Proper fix for bug #3038837 - "HOYLE3: EGA/VGA Crashes" and some cleanup
...
System scripts (i.e. 0 and 900-999) are now protected and never destroyed during a
game
svn-id: r52702
2010-09-13 13:17:55 +00:00
Filippos Karapetis
57fd588327
SCI: Split the new script patch code in a separate file
...
svn-id: r51810
2010-08-06 22:36:46 +00:00
Filippos Karapetis
96fd9e6c82
SCI: Added support for scripts that have more than one export table. Fixes bug #3039785 - "Conquests of Camelot: Crash in Glastonbury Tor"
...
svn-id: r51805
2010-08-06 21:21:39 +00:00
Martin Kiewitz
753c431937
SCI: adding script patching
...
including a patch for hoyle 4 and commenting out the workaround code inside kDisposeWindow
svn-id: r51795
2010-08-06 18:54:58 +00:00
Martin Kiewitz
2a4768401e
SCI: some work on the script patcher
...
signature matching is working (added hoyle 4 signature)
svn-id: r51787
2010-08-06 15:06:42 +00:00
Max Horn
4f606cc10d
SCI: Clarify docs of GC related SegmentObj methods
...
svn-id: r50440
2010-06-28 12:28:29 +00:00
Max Horn
a278c07aa6
SCI: get rid of Script::allocateObject
...
svn-id: r50438
2010-06-28 12:27:48 +00:00
Max Horn
31b2902714
SCI: Revise GC interface: use Common::Array<reg_t> instead of callbacks
...
This means a little bit more overhead but makes the code much more readable
and understandable.
svn-id: r50429
2010-06-28 11:22:41 +00:00
Max Horn
30218a2c32
SCI: Make Script member vars private; add const qualifiers
...
Only three Script members remain public (for now)
svn-id: r50428
2010-06-28 11:22:20 +00:00
Filippos Karapetis
8db94ef991
Cleanup
...
svn-id: r50404
2010-06-27 21:38:45 +00:00
Filippos Karapetis
4a60ff4090
Made the script initialization/uninitialization methods part of the segment manager
...
svn-id: r50402
2010-06-27 21:18:19 +00:00
Filippos Karapetis
2843feeb9a
SCI: Made the code for initializing script classes, objects and locals part of the Script class
...
svn-id: r50398
2010-06-27 21:00:34 +00:00
Filippos Karapetis
bb992b0b93
SCI: Moved all the script-related code inside script.cpp/.h, and all script opcode-related code inside vm.cpp/.h
...
svn-id: r50396
2010-06-27 20:38:43 +00:00
Filippos Karapetis
60d8cc5180
Removed the now unused EngineState parameter of script_adjust_opcode_formats(), as well as an obsolete TODO
...
svn-id: r49684
2010-06-15 07:21:52 +00:00
Max Horn
4b19acf255
SCI: Use Common::List and Common::String to simplify breakpoint handling (untested)
...
svn-id: r47824
2010-02-02 22:52:41 +00:00
Walter van Niftrik
31728b32ca
SCI: Add debug opcodes
...
svn-id: r47646
2010-01-28 19:22:58 +00:00
Filippos Karapetis
104cc92d6b
Changed run_vm() to use the sci_opcodes enum, and fixed several wrong opcodes inside that enum
...
svn-id: r47642
2010-01-28 13:07:47 +00:00
Walter van Niftrik
3e543d2518
SCI: Add lofs detection.
...
svn-id: r43824
2009-08-30 14:53:58 +00:00
Walter van Niftrik
00f4794c0a
SCI: Stage 1 of the game detection overhaul. The end goal is to autodetect
...
as much as possible. All SCI_VERSION_* information was removed from
detection.cpp (much of it was incorrect anyway).
svn-id: r43449
2009-08-16 19:18:19 +00:00
Filippos Karapetis
0a8cd4a27d
Removed unused define
...
svn-id: r42200
2009-07-07 06:29:07 +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
Filippos Karapetis
a4d13cef8c
More objectification of the Vocabulary functions
...
svn-id: r41057
2009-05-31 02:37:24 +00:00
Filippos Karapetis
76406c35ec
Started objectifying the vocabulary functions (WIP)
...
svn-id: r41051
2009-05-30 22:15:00 +00:00
Max Horn
cd063606a0
SCI: Changed sci_obj_* enum value names to uppercase, in accordance with our code formatting conventions
...
svn-id: r40578
2009-05-14 23:09:30 +00:00
Filippos Karapetis
2e59107a42
Removed some unused code
...
svn-id: r40486
2009-05-12 13:29:32 +00:00
Max Horn
5325f9b76e
SCI: Renamed global array 'formats' to the slightly more descriptive g_opcode_formats
...
svn-id: r40031
2009-04-20 19:28:33 +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