Max Horn
bb5e34a014
SCI: Get rid of EngineState::stack_segment
...
svn-id: r47833
2010-02-03 01:32:59 +00:00
Filippos Karapetis
e110b02895
Added some more information on the errors thrown by lookupString() and freeString() - Torin full currently crashes in lookupString, called from kString (strcpy)
...
svn-id: r47659
2010-01-28 22:58:09 +00:00
Walter van Niftrik
473d8b7c2f
SCI: Add string support for odd-offset pointers into reg_t-based segments.
...
svn-id: r47572
2010-01-26 19:51:08 +00:00
Johannes Schickel
aed02365ec
Strip trailing spaces/tabs.
...
svn-id: r47541
2010-01-25 01:39:44 +00:00
Walter van Niftrik
205f7437ea
SCI: Fix segfault in dual-language KQ5.
...
svn-id: r46864
2010-01-01 23:48:22 +00:00
Matthew Hoops
7d131627fe
Overload the = operator for SciArray which fixes the setType errors in GK1. Some other cleanup too. GK1 can now access the restore menu and get a bit further in the game (until a segfault in the Decompressor code).
...
svn-id: r46789
2009-12-31 05:11:58 +00:00
Matthew Hoops
5382aa1ab0
SCI32:
...
- Set signature for Array/String
- Add the kernel table differences for the GK2 demo
- Implement kMessage changes in SCI32
- Use an empty string as the default path for all games now (and modify kValidPath to accept that only as valid)
- Add dereferencing for Arrays
svn-id: r46756
2009-12-30 16:00:56 +00:00
Matthew Hoops
ef79d7f017
SCI32:
...
- Fully implement kArray and kIsHiRes and mostly implement kString (printf and atoi subfunctions still missing).
- Add a dummy SciGui class for SCI32 to bypass the views. Gabriel Knight 1 will now play the Sierra logo music and the main menu music.
- Some other minor SCI32 changes.
svn-id: r46462
2009-12-21 14:32:54 +00:00
Filippos Karapetis
c8fbac1517
- Changed the segment manager to be a static part of the engine, and stopped deleting and recreating it when restoring games
...
- Merged game_exit(), script_free_vm_memory() and script_free_engine()
- Cleanup
svn-id: r45666
2009-11-04 14:22:17 +00:00
Filippos Karapetis
a88aa2f45f
- Fixed the pathfinding issue for LSL5 room 640, where Patti walks off-screen (we still need a proper way of detecting this, though...)
...
- Made warnings where invalid pointers are dereferenced more precise
svn-id: r45257
2009-10-20 10:08:28 +00:00
Max Horn
5ea978f63a
SCI: Rename some vars (cleaning up what seems to have been caused by a blind global search & replace)
...
svn-id: r45060
2009-10-14 09:37:22 +00:00
Max Horn
296dd54344
SCI: Merge SegManager::alloc_Hunk into SegManager::allocateHunkEntry
...
svn-id: r45041
2009-10-13 18:53:50 +00:00
Max Horn
ab1f2dac77
SCI: Fix warnings, cleanup
...
svn-id: r44978
2009-10-12 11:49:32 +00:00
Filippos Karapetis
6d030126d7
More work on the Object class
...
svn-id: r44921
2009-10-11 13:46:58 +00:00
Filippos Karapetis
d6f5d93dbf
Started rewriting the Object struct into a class
...
svn-id: r44878
2009-10-10 15:58:51 +00:00
Max Horn
76996301d1
SCI: Removed obsolete stringfrags code
...
svn-id: r44803
2009-10-08 21:29:45 +00:00
Max Horn
d56d072fb2
SCI: Removed SegManager::getDescription
...
svn-id: r44795
2009-10-08 20:07:00 +00:00
Max Horn
0988e273ec
SCI: Turn lookup_node & lookup_list into SegManager::lookupNode & SegManager::lookupList
...
svn-id: r44769
2009-10-07 23:34:24 +00:00
Max Horn
0da9ad5ff5
SCI: Add SegManager::findObjectByName() method, make parse_reg_t() local to console.cpp, and switch other code using it to use findObjectByName() instead.
...
svn-id: r44628
2009-10-04 18:36:58 +00:00
Willem Jan Palenstijn
75de46e9ab
SCI: Fix sign issue in stringfrags
...
svn-id: r44572
2009-10-03 21:27:01 +00:00
Willem Jan Palenstijn
7971d77dd6
SCI: Adjust isValidOffset to match changes from r44396,
...
and make maxSize report the valid space starting at offset.
svn-id: r44421
2009-09-27 21:00:45 +00:00
Willem Jan Palenstijn
08e4d96a7d
SCI: clear strcpy's dest string if src is invalid.
...
This fixes moving the plank at the start of KQ6 in Text mode.
svn-id: r44397
2009-09-27 13:05:50 +00:00
Willem Jan Palenstijn
77751a0455
SCI: change segment offsets in reg segments to be in half reg_t.
...
This makes offsets in raw and reg segments consistent, which
fixes string addressing in savegame dialogs.
svn-id: r44396
2009-09-27 12:23:14 +00:00
Willem Jan Palenstijn
5d2d8c580a
SCI: Add utility functions for copying data between raw/non-raw segments
...
svn-id: r44387
2009-09-27 01:49:56 +00:00
Filippos Karapetis
13ad217cdd
- Moved the SCI version in a global variable
...
- Changed all the SCI version checks to use getSciVersion()
- Also made getSciVersionDesc a global function (removes some ugly accessing of the SCI engine)
The fallback detector should work correctly now
svn-id: r44269
2009-09-23 10:55:35 +00:00
Filippos Karapetis
5184f86e15
- Merged scriptObjInit0() and scriptObjInit11()
...
- Replaced some cases where getSciVersion() is used with _resMan->sciVersion(), as getSciVersion() will fail with the fallback detector (as the engine is not initialized). Object property accessors still crash currently, when used with the fallback detector
svn-id: r44261
2009-09-22 14:33:46 +00:00
Max Horn
6424a1e9e2
SCI: Add some FIXMEs, and print warning if accessing a raw segment as non-raw or vice versa
...
svn-id: r44245
2009-09-22 00:51:55 +00:00
Max Horn
5f5ab54810
SCI: Add new type SegmentRef which ultimately will allow us to distinguish between raw and 'reg_t' memory blocks in client code
...
svn-id: r44244
2009-09-22 00:36:24 +00:00
Max Horn
5fc2428c99
SCI: SegmentObj's now set their type in constructor; replace central SegmentObj::createSegmentObj call in SegManager::allocSegment by several explicit 'new' statements; some extra cleanup
...
svn-id: r44242
2009-09-22 00:35:46 +00:00
Max Horn
d2a6713a8e
SCI: Replace IntMapper Script::_objIndices and Common::Array Script::_objects by a HashMap -- goodbye, class IntMapper
...
svn-id: r44240
2009-09-21 21:38:43 +00:00
Max Horn
57dfb9bafd
SCI: Rename Object::flags and pos to _flags and _pos; tweak scriptObjInit0 and scriptObjInit11 to be more similar
...
svn-id: r44234
2009-09-21 21:35:43 +00:00
Max Horn
eb77efda78
SCI: Add a global getSciVersion() function and make use of it
...
svn-id: r44170
2009-09-17 16:50:53 +00:00
Filippos Karapetis
f890a69428
Changed the way object selectors are accessed, by removing the relevant defines and adding appropriate methods to the Object structure
...
svn-id: r44138
2009-09-17 08:51:38 +00:00
Max Horn
280bee663e
SCI: Change SegmentId from int to uint16; consistently use segment 0 to indicate an invalid segment
...
svn-id: r44131
2009-09-17 00:46:01 +00:00
Max Horn
10f898c90e
SCI: Rename MemObject -> SegmentObj
...
svn-id: r44130
2009-09-17 00:45:12 +00:00
Max Horn
1f0e8ef470
SCI: More cleanup
...
svn-id: r44129
2009-09-17 00:44:22 +00:00
Max Horn
68dfdce043
SCI: Turn some SegManager methods into Script methods
...
svn-id: r44127
2009-09-16 23:32:48 +00:00
Max Horn
a277123f54
SCI: Rename Script class members, change Script from struct to class
...
svn-id: r44126
2009-09-16 23:32:27 +00:00
Max Horn
bfe1538715
SCI: Misc cleanup
...
svn-id: r44093
2009-09-14 22:34:53 +00:00
Max Horn
8ac3db0801
SCI: Rename SegManager::kernelDeref*() methods to SegManager::deref*()
...
svn-id: r44083
2009-09-14 13:27:09 +00:00
Max Horn
0e834d0b87
SCI: kernelDeref*() functions are now seSegmentManager methods
...
svn-id: r44082
2009-09-14 13:13:20 +00:00
Filippos Karapetis
18b24da384
Removed the INST_LOOKUP_CLASS define
...
svn-id: r44043
2009-09-12 18:22:32 +00:00
Filippos Karapetis
90ae20c3ea
- Made obj_get and obj_get_name methods of SegManager (getObject and getObjectName, respectively)
...
- Renamed alloc_List -> allocateList, alloc_Node->allocateNode, alloc_hunk_entry->allocateHunkEntry, free_hunk_entry->freeHunkEntry, for consistency
svn-id: r44039
2009-09-12 00:10:07 +00:00
Filippos Karapetis
e3a733f2e2
Fixed a regression from commit #43999 (segment ID 1 is valid)
...
svn-id: r44000
2009-09-07 08:27:49 +00:00
Max Horn
44b60d2750
SCI: Replace GET_SEGMENT_ANY and GET_OBJECT_SEGMENT macros by new segman methods
...
svn-id: r43999
2009-09-07 06:07:18 +00:00
Max Horn
eb8cf07db2
SCI: Rename SegManager::exports_wide to _exportsAreWide and changed it to a bool, and rename setExportWidth() to setExportAreWide()
...
svn-id: r43988
2009-09-06 13:01:26 +00:00
Max Horn
fdaa3d423c
SCI: Script::obj_indices is now protected
...
Add new methods init, allocateObject and getObject to class Script, and use them instead of directly accessing Script::obj_indices. Replace RAW_GET_CLASS_INDEX with Script::getObject()
svn-id: r43987
2009-09-06 13:01:00 +00:00
Max Horn
a550e2ea10
SCI: Replace "IntMapper *id_seg_map" in SegManager with a Common::HashMap<int,int>
...
This simplifies the code considerably. Also changed the savegame format
accordingly, which required me to bump the format version to 10. Old
saves should still load fine.
svn-id: r43986
2009-09-06 13:00:30 +00:00
Max Horn
b51e9988e6
SCI: cleanup
...
svn-id: r43982
2009-09-06 12:58:43 +00:00
Max Horn
fdbb167ea3
SCI: Cleanup for some SegManager internals
...
- rename segGet and getSegment to getScriptSegment; the two can be
distinguished by the parameter count.
- rename type SCRIPT_GET to ScriptLoadType to conform with our code
formatting conventions
- rename get_class_address to getClassAddress
- some cleanup
svn-id: r43981
2009-09-06 12:58:16 +00:00