Commit Graph
183 Commits
Author SHA1 Message Date
Lars Skovlund c5252071db SCI3: Add proper support for the calle instruction
svn-id: r54327
2010-11-18 17:04:00 +00:00
Lars Skovlund 1621e7d5c0 Fix operator precedence problem
svn-id: r54324
2010-11-18 16:58:25 +00:00
Filippos Karapetis ba6de1bcdf SCI: Added sanity checks for SCI3 scripts bigger than 64KB
- Extended the "verify_scripts" console command for SCI3 scripts
- Added a check for such large scripts when scripts are loaded, with
an error for now, till a mechanism to support such scripts with a
16-bit addressing scheme is in place (e.g. overlaying, or splitting
scripts). Either way, such scripts should span over more than one segment

svn-id: r54304
2010-11-17 20:46:59 +00:00
Lars Skovlund e551f3bf33 SCI3: Handle script exports correctly
svn-id: r54302
2010-11-17 20:37:13 +00:00
Max Horn 3d7f7b49fe SCI: Make class table size OB1 workaround slightly more readable
svn-id: r54290
2010-11-17 13:01:58 +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 f44b084deb SCI: Some restructuring. Added some SCI3 placeholders/stubs
svn-id: r54280
2010-11-17 08:53:02 +00:00
Filippos Karapetis 0470e47145 SCI: The heap was a separate resource in SCI1.1 - SCI2.1 games only. It was later
merged into the script files again in SCI3

svn-id: r54279
2010-11-17 08:30:08 +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 b6488818a5 SCI: Bugfix for rev #52688.
We can't just set the lockers of script 0 to 1, as at that point
the objects associated with the script are marked to be deleted,
thus we need to reload the script

svn-id: r52693
2010-09-12 21:50:52 +00:00
Lars Skovlund de6555663d Workaround for bug #038837: HOYLE3: EGA/VGA Crashes. Needs further
investigation and a proper fix post-release

svn-id: r52688
2010-09-12 18:13:14 +00:00
Filippos Karapetis 3daf588e08 SCI: Janitorial - fixed spaces and typos
svn-id: r52527
2010-09-04 17:16:41 +00:00
Filippos Karapetis 34195238bb SCI: Don't try to initialize non-existent scripts, error out instead
(Invalid scripts may be requested to be loaded when warping to an incorrect room)

svn-id: r52524
2010-09-04 15:38:24 +00:00
Filippos Karapetis c34cec4e15 SCI: Fixed bug #3037595 - "KQ4: Crash reading message in the bottle (whale mouth)"
svn-id: r52516
2010-09-04 09:41:39 +00:00
Filippos Karapetis 190043e6b7 SCI: Resolved a FIXME concerning scripts with more than one export table (it only makes sense for SCI0-SCI1 games)
svn-id: r52179
2010-08-18 00:04:21 +00:00
Martin Kiewitz c70f16c55d SCI: making camelot fix camelot-only for now
fixes kq6 getting assert as well (bug 3042866)

svn-id: r51970
2010-08-11 06:13:08 +00:00
Martin Kiewitz 3b9ebd6353 SCI: adding patch for eq1cd
fixes ego swimming left/right of room 660 and getting a "message not found" error and a GE? signature mismatch - in sierra sci this also resulted in "message not found" and a hang afterwards - bug #3038387

svn-id: r51951
2010-08-10 15:18:18 +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
Martin Kiewitz dfe4c8d9a0 SCI: fixing typo
svn-id: r51809
2010-08-06 22:14:38 +00:00
Martin Kiewitz 8ddcf3942b SCI: adding patch for lsl6 issue
fixes crashing when dieing at least in german lsl6, caused by temp memory space corruption. Also happened in sierra sci.

svn-id: r51807
2010-08-06 21:51:45 +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 7b0a5ec099 SCI: adjusting patch to write 0 instead of 1
patch still worked, but 0 was meant to be there thx to lskovlun to point this out

svn-id: r51796
2010-08-06 19:13:19 +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 afed447b6f SCI: fix warnings
svn-id: r51788
2010-08-06 15:12:03 +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
Filippos Karapetis c61ed6e3aa SCI: Removed the language check from the
KQ5 workaround, as there could be an issue
with other non-English versions, too (e.g. 
the Spanish floppy version)

svn-id: r51472
2010-07-29 15:50:53 +00:00
Filippos Karapetis 123d1f6bf6 Extended the workaround for KQ5 French floppy for the German floppy too. Fixes bug #3035396 - "KQ5: Crash when start the game"
svn-id: r51471
2010-07-29 15:40:09 +00:00
Martin Kiewitz 472dbc9f7d SCI: fix initializing script 99 of sq3
svn-id: r51097
2010-07-21 19:19:33 +00:00
Martin Kiewitz bb1c722a0b SCI: adding workaround for sq3
fixing off-by-one error when initializing script 93

svn-id: r51091
2010-07-21 17:42:51 +00:00
Martin Kiewitz dbc1607603 SCI: add script number to r51008 change
svn-id: r51009
2010-07-18 20:19:14 +00:00
Martin Kiewitz 8893d4ef23 SCI: add workaround for script 500 lsl3
svn-id: r51008
2010-07-18 20:14:18 +00:00
Martin Kiewitz 8410dbab53 SCI: stupid oversight fix r50446, too hot here :P
svn-id: r50447
2010-06-28 14:49:54 +00:00
Martin Kiewitz 66fb9e7a90 SCI: fixing valgrind issue in Script::initialiseClasses thx to wjp for valgrind testing
svn-id: r50446
2010-06-28 14:46:28 +00:00
Max Horn 4fdbd14a60 SCI: Move a few remaining Script methods to engine/script.cpp
svn-id: r50441
2010-06-28 12:28:46 +00:00
Max Horn a278c07aa6 SCI: get rid of Script::allocateObject
svn-id: r50438
2010-06-28 12:27:48 +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
Max Horn 85038e7d6c SCI: Change warning back to error in Script::initialiseObjectsSci0
Instead of turning the error into a warning globally, we now have
code which ignores the error in Script 202 of KQ5 French, but will
keep reporting if it turns up in other places.

svn-id: r50427
2010-06-28 11:21:55 +00:00
Max Horn 12099176f7 SCI: More formatting cleanup
svn-id: r50426
2010-06-28 11:21:39 +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 aa9b9dd08f SCI: Separated the code for initializing script classes from the code for initializing script objects
svn-id: r50390
2010-06-27 20:09:51 +00:00
Martin Kiewitz 303dc06388 SCI: fixing regression from one of the merges
svn-id: r50387
2010-06-27 18:41:07 +00:00
Filippos Karapetis d7f212647a Turned the error when failing to locate an invalid object back to a warning (KQ5 French has an invalid object in script 202)
svn-id: r50379
2010-06-27 16:02:03 +00:00
Filippos Karapetis daab502028 Cleanup
svn-id: r50359
2010-06-27 00:08:00 +00:00
Filippos Karapetis 7a14846bdd Removed the misleading getHeap() function (only valid for SCI0-SCI1), plus removed some unused defines
svn-id: r50358
2010-06-26 23:48:27 +00:00
Filippos Karapetis 3cf0114164 Moved script_instantiate_sci0() inside the segment manager, and renamed it to scriptInitialiseObjectsSci0()
svn-id: r50357
2010-06-26 23:13:05 +00:00