Filippos Karapetis
9e418e6eaf
SCI: Removed SCI3 hacks in kClone/kDisposeClone
...
svn-id: r54350
2010-11-18 22:26:58 +00:00
Lars Skovlund
0001a6b74d
SCI3: implement setInfoSelector() for SCI3, fixes infinite recursion
...
svn-id: r54328
2010-11-18 17:13:01 +00:00
Lars Skovlund
c5252071db
SCI3: Add proper support for the calle instruction
...
svn-id: r54327
2010-11-18 17:04:00 +00:00
Filippos Karapetis
34c18f20d8
SCI: Added hacks in kClone/kDisposeClone for SCI3
...
svn-id: r54307
2010-11-17 21:49:19 +00:00
Filippos Karapetis
61e02f0570
SCI: Fixed the speed in the intro of PQ2, version 1.002.011 (bug #3102071 )
...
In version 1.002.011, global 3, used for timing, is incorrectly initialized
to 0, whereas it should be 6 (like in other versions). Initializing it to
the correct value fixes the speed in the intro. This has been based on the
patch for that version by NewRisingSun(NRS) / Belzorash
svn-id: r54298
2010-11-17 18:46:29 +00:00
Filippos Karapetis
bb9b7c24f9
SCI: Added some SCI3 selector related information
...
- Added a TODO for the usage of the -info- selector in kClone and kDisposeClone in
SCI3 scripts, as it's no longer used in SCI3
- Added information about which of the selectors are missing in SCI3. There are
some more which are missing, but aren't used in SCI2-SCI3 anyway
- Some styling
svn-id: r54291
2010-11-17 14:03:14 +00:00
Filippos Karapetis
f44b084deb
SCI: Some restructuring. Added some SCI3 placeholders/stubs
...
svn-id: r54280
2010-11-17 08:53:02 +00:00
Martin Kiewitz
bab5050531
SCI: fixing code
...
thx to tortoisegit and broken conflict managment
svn-id: r52585
2010-09-06 10:41:14 +00:00
Martin Kiewitz
c342c0e3d8
SCI: fix regression of r52565
...
remove class bit when marking as clone
svn-id: r52584
2010-09-06 10:39:42 +00:00
Lars Skovlund
e3e9bac6f6
SCI: Clear class bit when cloning objects.
...
This fixes a regression affecting many SCI32 games and possibly other games,
looping or recursing endlessly.
svn-id: r52583
2010-09-06 10:11:07 +00:00
Martin Kiewitz
49c8d1a549
SCI: kClone cleanup
...
and fixing possible crash & typo
svn-id: r52565
2010-09-05 15:34:25 +00:00
Martin Kiewitz
13e24af0ca
SCI: adjusting comment on kClone change
...
svn-id: r52563
2010-09-05 15:11:22 +00:00
Martin Kiewitz
d817bec4fd
SCI: merging -info- stuff in Clone/DisposeClone
...
svn-id: r52562
2010-09-05 15:09:50 +00:00
Johannes Schickel
2a08124f0f
SCI: Fix bugs #3035650 and #3039566 , crash in PEPPER demo and LAURABOW2.
...
The actual names for the bug reports are:
#3035650 "PEPPER non-interactive demo: Crash"
#3039566 "LAURABOW2: Crash during introduction"
Those crashes were caused by an invalid memory dereference in kClone. This
in turn was happening, because the parent object pointer might have been
invalidated in cases where the parent object is also a clone.
svn-id: r52561
2010-09-05 14:59:09 +00:00
Martin Kiewitz
87b78b1673
SCI: kClone/kDisposeClone behaviour more accurate
...
now also checking -info- selector, if object is supposed to get freed. Fixes kq4 early hanging (in intro, when opening door, etc.)
svn-id: r52508
2010-09-03 18:14:59 +00:00
Johannes Schickel
dd38e424e7
SCI: Fix leaks in ResourceManager::listResources caller code.
...
svn-id: r51666
2010-08-02 22:27:26 +00:00
Filippos Karapetis
bae197c489
SCI: Changed a warning into debug output
...
svn-id: r51409
2010-07-28 09:21:58 +00:00
Matthew Hoops
c128b87c77
In SCI2.1, the type numbers inside resource maps/patches have changed slightly. We no longer use the number Sierra gives us directly, but use a function to convert to our ResourceType enum based on version. This allows us to read the chunk type from SCI2.1 (a form of script). Also, allow debugging of Mac-specific resources from the console.
...
svn-id: r50973
2010-07-18 00:16:19 +00:00
Martin Kiewitz
a94b25f99c
SCI: kUnLoad - removing unneeded warnings (signature mismatch will happen now), added information about parameters
...
svn-id: r50806
2010-07-11 19:16:16 +00:00
Filippos Karapetis
79768098b1
Added handling for kLock called with resource id -1 (unlock all resources of the requested type). Happens e.g. in KQ6 and LSL6
...
svn-id: r50595
2010-07-02 10:18:11 +00:00
Martin Kiewitz
7595e7c1be
SCI: implementing workarounds for kernel calls, removing original code workaround for kDisposeScript / qfg1 room 64 and adding it to workaround table
...
svn-id: r50520
2010-06-30 09:47:04 +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
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
3dcebcb1bc
Shuffled some functions around. Also, the filename in kResCheck can never be bigger than 9 characters, when dealing with VMD videos
...
svn-id: r50355
2010-06-26 23:01:22 +00:00
Filippos Karapetis
b2f2c48c7e
Added a workaround for broken script 377 in Castle of Dr. Brain, room 320. It constantly tries to free the saved area rectangle (underbits) underneath the popup window
...
svn-id: r50352
2010-06-26 22:50:39 +00:00
Max Horn
bb528d894c
SCI: Rewrap some overlong comments
...
svn-id: r50012
2010-06-18 09:37:06 +00:00
Filippos Karapetis
773f3bf145
Changed another warning into an error. Cleanup
...
svn-id: r49995
2010-06-18 02:23:30 +00:00
Filippos Karapetis
36d92b4566
Fixed kLoad and kUnload (the resource type was incorrect)
...
svn-id: r49931
2010-06-17 14:05:05 +00:00
Filippos Karapetis
a7b76c04d9
Added handling of VMD video files in kResCheck, fixes video playing in GK2
...
svn-id: r49913
2010-06-17 00:07:03 +00:00
Max Horn
2b24a1a2ad
SCI: OOpify class ResourceId
...
svn-id: r49841
2010-06-15 12:31:16 +00:00
Filippos Karapetis
60eced7a81
Cleanup
...
svn-id: r49662
2010-06-14 16:57:43 +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
50cd1d1da4
Limited access to the script export table and synonyms block
...
svn-id: r49338
2010-05-30 23:31:33 +00:00
Filippos Karapetis
9c2da78ba9
kScriptID can be used to load scripts with no exports. Don't throw warnings in this case if no export is requested, as it's perfectly normal behavior
...
svn-id: r49331
2010-05-30 20:01:25 +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
67de5b1bd3
Mass renaming of selector-related functions, and removed some defines which were just cloaking functions with a different name
...
- GET_SEL32 -> readSelector
- GET_SEL32V -> readSelectorValue
- PUT_SEL32 -> writeSelector
- PUT_SEL32V -> writeSelectorValue
Also, changed some selector-related function names and variables to CamelCase
svn-id: r49317
2010-05-29 23:37:15 +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
Max Horn
0197e9f6a1
SCI: Making various object and script related things const
...
svn-id: r49246
2010-05-26 16:30:10 +00:00
Filippos Karapetis
174a043aa7
Removed the exportsAreWide variable from the segment manager and save games, and moved validateExportFunc() in the Script class, thus resolving a TODO
...
svn-id: r49093
2010-05-19 08:50:24 +00:00
Filippos Karapetis
f3892a506b
- Removed the wrapper kalloc, kmem and kfree functions. Now, the associated Segment manager functions allocateHunkEntry, getHunkPointer and freeHunkEntry are used directly (which are more descriptive, anyway)
...
- Replaced the GET_SEGMENT macro by a method of the segment manager
- Removed the unused reference to the created hunk in allocateHunkEntry(), only the reg_t reference to it is returned now
svn-id: r49078
2010-05-18 13:05:09 +00:00
Filippos Karapetis
75f4791a4a
- Moved determine_reg_type() and kernel_matches_signature() inside the Kernel class, where they belong
...
- Moved the kernel signature defines inside kernel.h
- Removed some unused references to EngineState
svn-id: r49075
2010-05-18 11:23:13 +00:00
Max Horn
b246c867df
SCI: No need to set _executionStackPosChanged in kDisposeScript, as the callk opcode handler does that already
...
svn-id: r48064
2010-02-15 10:01:09 +00:00
Max Horn
a82939c9be
SCI: Get rid of EngineState::resMan
...
svn-id: r48048
2010-02-13 17:44:19 +00:00
Willem Jan Palenstijn
06bd17ee71
SCI: Remove extra '\n's in debugC messages
...
svn-id: r47707
2010-01-30 11:59:05 +00:00
Max Horn
4ffec28103
SCI: Move selector stuff to new header; reorder k_argc & k_argp param of invoke_selector
...
svn-id: r47665
2010-01-29 11:03:54 +00:00
Filippos Karapetis
d154b9f008
Wording - we ignore calls to kUnload with less than 2 parameters
...
svn-id: r47564
2010-01-26 11:28:11 +00:00
Filippos Karapetis
e0293562de
Ignore kUnload calls which are not made with less than 2 parameters. Apparently, according to the FreeSCI bugs list, SQ1 calls it with 1 parameter when exiting the Ulence flats bar
...
svn-id: r47563
2010-01-26 11:25:15 +00:00
Johannes Schickel
aed02365ec
Strip trailing spaces/tabs.
...
svn-id: r47541
2010-01-25 01:39:44 +00:00
Filippos Karapetis
dcbcb41855
kSetSynonyms is really parser related, but it's an empty function in games without a parser
...
svn-id: r47484
2010-01-23 20:27:14 +00:00
Filippos Karapetis
722233fd0d
- Moved all of the parser-related variables inside the Vocabulary class
...
- Moved the kSetSynonyms() function inside kscripts (as it's for script synonyms, not parser word synonyms)
- The parser vocabulary is now only initialized for SCI0 and SCI01 games, which had a parser
svn-id: r47483
2010-01-23 19:10:56 +00:00