Commit graph

156 commits

Author SHA1 Message Date
Filippos Karapetis
041b1447c0 SCI: Replace RAW_IS_OBJECT with a method 2012-06-15 22:32:15 +03:00
Filippos Karapetis
5ca22a1104 SCI: Fix warnings
Thanks to DrMcCoy for reporting them
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
9aaefbd536 SCI: _propertyOffsetsSci3 and classpos should be 32-bit integers
These are needed for future handling of large SCI3 script files
2012-06-15 12:24:18 +03:00
Filippos Karapetis
e1ae110860 SCI: Clean up the script initialization code 2012-06-15 12:24:16 +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
9c8ff41181 SCI: Add known large SCI3 scripts 2012-06-14 12:20:41 +03:00
Filippos Karapetis
267c6f1756 SCI: Made more fields of the Script class private. Some cleanup. 2011-11-05 03:00:42 +02:00
Max Horn
88913c0139 ALL: Remove trailing whitespaces
This tries to make our code a bit more compliant with our code formatting
conventions. For future use, this is the command I used:
  git ls-files "*.cpp" "*.h" | xargs sed -i -e 's/[ \t]*$//'
2011-06-20 00:59:48 +02:00
Matthew Hoops
9539017ee3 ALL: initialise -> initialize 2011-05-25 11:17:11 -04:00
Willem Jan Palenstijn
c01fed7159 SCI: Avoid incrementing lockers of deleted script
Having a deleted script with non-zero lockers had the side effect of
making the deleted script re-appear in the GC's work list, including
any (deleted) objects in the script.

This should be the root cause of bugs #3299458 and #3295849, so
also delete the workaround added for that in 35086fe1.
2011-05-13 23:09:04 +02:00
strangerke
69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Willem Jan Palenstijn
eb8b1a962b SCI: Fix precedence (bug #3087872) 2011-04-20 23:38:28 +02:00
md5
ca1f9a075f SCI: Got rid of VERIFY() and removed some newlines in error messages 2011-03-14 20:00:26 +02:00
md5
c3d8f5610f SCI: Fixed script bug #3059871 - "SCI Fanmade - Ocean Battle: Crash while playing" 2011-03-02 08:25:35 +02:00
Filippos Karapetis
2d5dc8c638 SCI: Cleanup
svn-id: r55123
2011-01-04 23:19:04 +00:00
Filippos Karapetis
f2234f8ee3 SCI: Fixed part of bug #3150767 - "KQ5 French crash on startup, only partial English text"
This is a regression from r54510

svn-id: r55122
2011-01-04 23:11:19 +00:00
Filippos Karapetis
32d7e687ee SCI: debugC calls no longer require a debug level of 2 to show output
svn-id: r55086
2011-01-01 12:48:12 +00:00
Lars Skovlund
f1cd95e462 Simplify SCI3 relocation code, also making it correct.
svn-id: r54985
2010-12-21 15:34:02 +00: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
Filippos Karapetis
7fc171e3bc SCI: Some slight changes to get the "find_callk" console command working in KQ5
- Ignore invalid object in KQ5 script 784
- Script 980 looks to be an unused leftover, as its object contain references to
classes placed in script 988, which is missing

svn-id: r54455
2010-11-24 11:57:11 +00:00
Johannes Schickel
b593b15c50 SCI: Slight formatting fix.
svn-id: r54330
2010-11-18 17:25:09 +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
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