Filippos Karapetis
1d3118cf42
Implemented some advanced savegame functionality - loading and deleting savegames from the GMM is now possible, and new saved games will also have thumbnails. Saving from the GMM creates corrupted saved games, so it has been disabled for now
...
svn-id: r44930
2009-10-11 15:51:43 +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
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
8498d769be
SCI: Reduce header interdepencies once again. Rule of thumb: Never include a header file from another header file unless you absolutely *must* do it; if possible, try to use class forwards instead, and include the headers from source files only
...
svn-id: r44767
2009-10-07 23:04:13 +00:00
Martin Kiewitz
a61076a645
SCI: debug command undither implemented
...
svn-id: r44761
2009-10-07 21:47:34 +00:00
Filippos Karapetis
1562add631
- Cleaned up the cursor code
...
- Renamed gui -> _gui in EngineState, for consistency
- Added a reference to SciGuiCursor in EngineState, to be used by current code
- Renamed setCursorHide -> hideCursor, setCursorShow -> showCursor
- Moved the cursor zone limiting code inside SciGuiCursor. This code is currently not functioning, as we need to call refreshPosition() before each updateScreen() call to limit the cursor position.
svn-id: r44760
2009-10-07 21:29:47 +00:00
Martin Kiewitz
cb31d302b9
SCI/newgui: implemented debug command show_map
...
svn-id: r44735
2009-10-07 15:53:34 +00:00
Max Horn
6ad5840181
SCI: Rename EngineState::segMan to _segMan
...
svn-id: r44629
2009-10-04 18:38:18 +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
f61bf4f97a
SCI: Fix parse error in parse_reg_t
...
svn-id: r44578
2009-10-03 22:44:16 +00:00
Willem Jan Palenstijn
95959a88ef
SCI: Fix typo
...
svn-id: r44561
2009-10-03 20:25:27 +00:00
Max Horn
bfec2debe6
SCI: Fix parse_reg_t, it no longer modified the const string passed to it
...
svn-id: r44545
2009-10-02 20:20:45 +00:00
Max Horn
908e13fa73
SCI: Remove PRINT_STK macro; cleanup
...
svn-id: r44533
2009-10-02 12:53:04 +00:00
Willem Jan Palenstijn
7d6848dfa3
SCI: Add some fixmes noted by salty-horse.
...
svn-id: r44513
2009-10-01 11:06:38 +00:00
Filippos Karapetis
7d40dde96f
- Removed the toggle for "weak" validations, as there are cases where they fail (e.g. in Longbow), so there is no point in having strict validations
...
- Removed the invalid toggle from kernel signatures - we now never error out on invalid object references, but throw a warning instead
- Simplified determine_reg_type()
svn-id: r44511
2009-10-01 10:57:59 +00:00
Willem Jan Palenstijn
168257df24
SCI: Remove outdated debugging hack.
...
In the past, a negative selector value was used to identify a callk
stack frame. Currently a type of EXEC_STACK_TYPE_KERNEL already does that.
svn-id: r44510
2009-10-01 08:53:10 +00:00
Max Horn
27026f6565
SCI: Replace magic '-42' by an enum
...
svn-id: r44492
2009-09-30 16:00:44 +00:00
Filippos Karapetis
fd21bb2611
- Moved the list of synonyms and parser nodes inside the vocabulary class
...
- Added a convenience member inside the EngineState struct to access the instance of the Vocabulary class
svn-id: r44481
2009-09-30 12:17:38 +00:00
Filippos Karapetis
180b3f1247
Create a define for the special "signal" offset used throughout the engine, and fixed the arbitrary 0 values from commit #44294 , set when some math functions do invalid calculations
...
svn-id: r44359
2009-09-25 16:15:57 +00:00
Max Horn
2fe6b32968
SCI: Remove EngineState::game_version, it was only used for saving anyway. Also remove syncCStr()
...
svn-id: r44358
2009-09-25 13:02:11 +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
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
5f440854b7
SCI: Add EngineState::_kernel member for convenience
...
svn-id: r44173
2009-09-17 17:00:36 +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
Max Horn
364640cfd5
SCI: Rename selector_map_t -> SelectorCache and _selectorMap -> _selectorCache
...
svn-id: r44152
2009-09-17 13:21:42 +00:00
Max Horn
b2c386ed00
SCI: Move parts of struct ScriptState into a new struct DebugState
...
svn-id: r44151
2009-09-17 13:21:19 +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
10f898c90e
SCI: Rename MemObject -> SegmentObj
...
svn-id: r44130
2009-09-17 00:45:12 +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
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
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
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
Max Horn
d04b5d2c9b
SCI: Rename resManager -> resMan; segManager -> segMan
...
svn-id: r43980
2009-09-06 12:57:42 +00:00
Filippos Karapetis
9381362277
Removed the bilinear and trilinear FreeSCI scalers, and only left the unfiltered scaler in (to be replaced by ScummVM's scaler code). We really don't need bilinear and trilinear filtered scaling in the engine, as ScummVM's filters already perform bilinear and trilinear filtered scaling, if requested
...
svn-id: r43938
2009-09-04 09:44:06 +00:00
Filippos Karapetis
1bbab8f191
Some renaming:
...
getresourceManager -> getResourceManger
resourceManager -> resMan
segmentManager ->segMan
svn-id: r43908
2009-09-02 12:02:37 +00:00
Filippos Karapetis
28e2f0457e
Re-enabled custom graphics options, and read the cursor, view, pic and text filtering algorithm options from the ScummVM ini file (options "cursor_filter", "view_filter", "pic_filter" and "text_filter", 0 - unfiltered, 1 - bilinear filtering, 2 - trilinear filtering)
...
svn-id: r43894
2009-09-01 20:28:44 +00:00
Filippos Karapetis
186267a302
Some adjustments to the output of the "selector" and "selectors" console commands
...
svn-id: r43858
2009-08-31 20:09:36 +00:00
Walter van Niftrik
fff023794f
SCI: Cleanup
...
svn-id: r43811
2009-08-30 01:37:27 +00:00
Filippos Karapetis
faa3c64d1b
Stop loading opcodes from vocab.998. They are the same in all SCI games and are hardcoded anyway (plus, vocab.998 is unreliable in some games, e.g. QFG3, or completely missing in others). Also hardcoded the opcode names for the script debugger, the only place they're actually used. The only place where vocab.998 is loaded on demand is when using the "opcodes" console command (for debug/verification purposes)
...
svn-id: r43775
2009-08-27 23:39:59 +00:00
Filippos Karapetis
ac025f4294
- Replaced more cases of EngineState parameters
...
- Made some version comparisons for old SCI0 versions easier to read
- Removed the GET_SEL32SV macro
svn-id: r43729
2009-08-25 15:14:29 +00:00
Filippos Karapetis
ed66cad677
- Simplified the parameters of some functions
...
- Replaced some EngineState parameters
- The SCI version is now obtained from the resource manager or the segment manager, thereby simplifying several functions
- Plugged 2 leaks in the fallback detector
- Renamed the segment manager and resource manager to "segmentManager" and "resourceManager" in all places, for consistency
svn-id: r43722
2009-08-25 08:38:14 +00:00
Filippos Karapetis
c38f58598b
- Simplified some functions to accept only the parts of the EngineState they need as parameters, instead of the whole EngineState
...
- Moved the class table in the Segment manager - it's the only class using it directly
- Removed the sci11 flag from save games (we already know this, we don't need to store it)
- Moved script_get_segment() and get_class_address() inside the segment manager class
- Removed the script_locate_by_segment wrapper
- Simplified script_lookup_export() a lot by removing some paranoia checks
- Added some WIP code for automatically determining the game id in the fallback detector (still not working)
- General cleanup
svn-id: r43458
2009-08-17 05:55:21 +00:00
Walter van Niftrik
f99932b72a
SCI: Added enum for map and volume versions. Removed res_version setting from
...
detection.cpp (should be detectable). Cleanup.
svn-id: r43390
2009-08-15 00:28:59 +00:00
Walter van Niftrik
eaed412152
SCI: Added several debug command aliases.
...
svn-id: r43229
2009-08-10 21:30:16 +00:00