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