Tony Puccinelli
3a7a0ba720
manually merged engines from trunk into branch
...
svn-id: r51964
2010-08-11 01:11:16 +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
Filippos Karapetis
db70d66e4a
Strict mode: Changed several warnings due to logic bugs into errors. If an error pops up from these ones, please add the game where it occurred and the steps to reproduce the error before turning it into a warning
...
svn-id: r49973
2010-06-17 23:50:28 +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
Filippos Karapetis
1fde7f1abc
Removed the code used for tracking script code block relocations in SCI0-SCI1 games, as we don't actually relocate these blocks, and it was used solely for verification of the exports table. The issue that this warning was created for should no longer occur
...
svn-id: r49669
2010-06-14 20:45:00 +00:00
Filippos Karapetis
86878450ee
Cleanup of the SCI0 object initialization code
...
svn-id: r49666
2010-06-14 19:37:19 +00:00
Filippos Karapetis
cd77cb96fc
Some cleanup of the script locals code
...
svn-id: r49649
2010-06-14 12:44:57 +00:00
Filippos Karapetis
b5ebd40d61
The offset of script local variables is now calculated when the script is loaded, thus we no longer need to save it. Merged scriptInitialiseLocals() with scriptInitialiseLocalsZero()
...
svn-id: r49640
2010-06-13 22:15:30 +00:00
Filippos Karapetis
86b452d36c
Moved several object-related defines inside vm.h into segment.h, where the Object class resides. Also, removed several unused defines
...
svn-id: r49406
2010-06-03 10:16:21 +00:00
Filippos Karapetis
844ef9ba1a
Merged all the script relocation code inside script_instantiate(), and changed the warning when reading an invalid species into an error (as it's severe, and if it happens it means something is seriously wrong)
...
svn-id: r49361
2010-05-31 18:35:13 +00:00
Filippos Karapetis
66d4bddb30
Merged several script instantiation-related functions inside script_instantiate()
...
svn-id: r49343
2010-05-31 08:11:49 +00:00
Max Horn
4e25867a67
SCI: Merge setLockers(1) call into Script::init
...
svn-id: r49337
2010-05-30 23:00:32 +00:00
Filippos Karapetis
a0ee93ece5
SCI: Script exports and synonyms are now initialized when a script is loaded. Removed a sanity check inside script_instantiate_sci0 for a bug which no longer exists
...
svn-id: r49336
2010-05-30 21:49:07 +00:00
Filippos Karapetis
3b96e4833e
Cleanup
...
svn-id: r49334
2010-05-30 20:30:07 +00:00
Filippos Karapetis
dc4d61f718
- Merged the SCI0 scriptRelocate() and SCI11 heapRelocate() functions inside relocate(). scriptRelocate checked one more relocation entry, which seems wrong, so we're now checking for the correct number of relocations in all SCI versions
...
- Re-added the error when script + heap exceed 64KB (better than an assert) - this should theoretically never happen, and it never has for the games tested
- Removed the relocated sanity check - again, it shouldn't occur (else something else is wrong)
svn-id: r49332
2010-05-30 20:06:50 +00:00
Filippos Karapetis
016862ac3a
Moved setScriptSize() inside Script::init(), and removed a FIXME - the SCI1.1 word-align is done inside Script::init()
...
svn-id: r49330
2010-05-30 18:45:07 +00:00
Filippos Karapetis
29c2f30558
Unified the script loading code, and marked an issue with the SCI11 heap addresses
...
svn-id: r49329
2010-05-30 17:02:21 +00:00
Filippos Karapetis
c32e88fe0b
Limit access to the _bufSize, _scriptSize and _heapSize members of the Script class
...
svn-id: r49327
2010-05-30 16:14:31 +00:00
Filippos Karapetis
5f2ff0b1e7
Limit access to the _classTable array (now it's directly accessible only inside saveLoadWithSerializer()
...
svn-id: r49318
2010-05-29 23:56:37 +00:00
Filippos Karapetis
a6156a6805
Removed the scriptRelocateExportsSci11() hack. The open spell in QFG1VGA works now (thanks to waltervn for all his help on this)
...
svn-id: r49311
2010-05-29 15:29:27 +00:00
Martin Kiewitz
453d13dc2d
SCI: fixing -propDict- selector on instances to contain -propDict- of the corresponding class - fixes sq4cd/room 381 talk-clicking on robot - thx to waltervn & wjp
...
svn-id: r49263
2010-05-27 17:41:20 +00:00