Filippos Karapetis
93f33c7dab
Resolved a FIXME with getSciLanguage(), by creating a separate setter. Also, some camelCase changes
...
svn-id: r49568
2010-06-10 11:18:10 +00:00
Filippos Karapetis
eb4ec596cd
Use the SELECTOR() macro for readability
...
svn-id: r49563
2010-06-10 09:18:57 +00:00
Filippos Karapetis
9b8e4e8359
Moved all of the game init/run/exit logic inside the SciEngine class
...
svn-id: r49559
2010-06-10 07:32:05 +00:00
Filippos Karapetis
2c629a04dd
Merged script_init_engine() and game_init() and cleaned up SciEngine::run() a bit
...
svn-id: r49537
2010-06-09 10:45:54 +00:00
Filippos Karapetis
536b2614e8
Globals from script 0 are now initialized in script_init_engine(), and are accessed from the relevant variables pointer. Removed direct reference to script 0 from the engine state
...
svn-id: r49536
2010-06-09 09:17:48 +00:00
Filippos Karapetis
10aeb33a42
Merged restAdjust and restAdjustCur, as we don't save the restAdjust modifier inside saved games (rightfully so). Also, the segment manager is now reset inside the main loop, when the game is restarted, not in game_exit()
...
svn-id: r49533
2010-06-09 07:32:17 +00:00
Filippos Karapetis
eafc63e572
Cleanup
...
svn-id: r49521
2010-06-08 21:21:19 +00:00
Filippos Karapetis
9304b5fbeb
Merged the restarting_flags, script_abort_flag, and restoring members of the EngineState class into one variable, abortScriptProcessing. The flag kept to signify a game restart has been placed in a boolean, gameWasRestarted
...
svn-id: r49518
2010-06-08 21:05:46 +00:00
Filippos Karapetis
67690e89a3
Merged _game_run() inside game_run(). Some cleanup
...
svn-id: r49513
2010-06-08 18:44:27 +00:00
Filippos Karapetis
2c950b321c
Fixed regression from commit #49465 - there are in fact two restAdjust variables, the current and global one
...
svn-id: r49486
2010-06-07 15:14:58 +00:00
Filippos Karapetis
3c82b6578f
Now that EngineState is not deleted when loading games, we can move some more state-related variables to it, and remove several FIXME's about non-const global variables. Also, the entries in the data stack are now deleted when loading (fixes a memory leak - thanks to digitall for this).
...
svn-id: r49465
2010-06-06 23:00:33 +00:00
Filippos Karapetis
65f3cfcbd8
Stop reconstructing the engine state when restoring, but reset it instead
...
svn-id: r49376
2010-06-01 15:48:17 +00:00
Filippos Karapetis
b5a2e3c758
Fixed operator precedence warning
...
svn-id: r49353
2010-05-31 12:43:28 +00:00
Filippos Karapetis
cc025ace18
The code that loads saved game from the launcher
...
can now load SCI2 saved games. Added an explanation
why the injected call is necessary
svn-id: r49349
2010-05-31 12:13:50 +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
5b12fda059
Added some more info when severe script errors occur
...
svn-id: r49293
2010-05-28 12:37:54 +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
65fa2f5af8
Formatting
...
svn-id: r49233
2010-05-26 10:37:54 +00:00
Filippos Karapetis
1bee6daff0
Added more info to the warning thrown when argc > 1 while modifying a variable selector in send_selector()
...
svn-id: r49232
2010-05-26 10:35:54 +00:00
Filippos Karapetis
9a66bfb575
After running some tests, it appears that modifying argc inside send_selector() was a bad idea. Reverting the relevant code, and putting the warning back, with some extra comments
...
svn-id: r49231
2010-05-26 09:59:40 +00:00
Filippos Karapetis
1818fa137f
Silence a warning inside send_selector(): argc > 0 means "write selector". Added code do make sure that argc is always either 0 or 1 when referencing variable selectors (this isn't strictly necessary, but better safe than sorry...). Some cleanup
...
svn-id: r49230
2010-05-26 09:33:33 +00:00
Filippos Karapetis
1c0bbb10cb
More work on controlling access to members of the Object class:
...
- Moved the code for initializing the object class, species and base object inside the Object class
- Made propertyOffsetToId() a method of the Object class
- Made relocateObject() a method of the Object class
- The Object getVariable() method now returns a reference to the requested variable
Only SegManager::reconstructScripts() is left needing direct access to the members of the Object class
svn-id: r49228
2010-05-26 08:27:24 +00:00
Filippos Karapetis
7cd9a23c0d
Remove the unused SCI_GAME_WAS_RESTARTED_AT_LEAST_ONCE flag
...
svn-id: r49161
2010-05-23 17:03:16 +00:00
Filippos Karapetis
9be4f6250c
Made shrink_execution_stack() a member of EngineState
...
svn-id: r49159
2010-05-23 16:44:36 +00:00
Filippos Karapetis
c874ff15a8
Cleaned up the game ID code:
...
- The game ID is now obtained from ScummVM ID directly, not by converting Sierra's internal ID
- Moved the code which reads the internal Sierra ID inside the resource manager
- Moved the code which converts the internal Sierra ID to ScummVM's IDs together with the rest of the detection code
svn-id: r49152
2010-05-23 10:28:03 +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
852cb16c49
Moved the breakpoint information inside the DebugState struct
...
svn-id: r49092
2010-05-19 07:25:06 +00:00
Filippos Karapetis
46af5a5162
- Moved kernel_lookup_text inside the Kernel class
...
- Added a pointer to the segment manager from within the Kernel class, thus simplifying the calls to it
svn-id: r49076
2010-05-18 12:16:48 +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
Filippos Karapetis
8b7c29a4ad
Moved breakpointWasHit inside the DebugState struct, thus resolving a FIXME
...
svn-id: r49071
2010-05-18 09:18:27 +00:00
Matthew Hoops
3dda73d9a2
Add initial support for KQ6 Mac. Wrapper functions for read/writing to pointers are now used (found in util.*) for code that has different endianness in SCI1.1+ Mac games. Add support for Mac 'snd ' and 'CURS' resources. QFG1 Mac is not yet playable due to script compression.
...
svn-id: r49070
2010-05-18 04:17:58 +00:00
Max Horn
970745e60c
Move DebugChannel related code to new header
...
svn-id: r48935
2010-05-04 11:59:22 +00:00
Max Horn
460d69e885
COMMON: Move DebugChannel stuff into a new DebugMan singleton
...
svn-id: r48821
2010-04-27 21:40:52 +00:00
Torbjörn Andersson
65585f6433
Silenced some harmless cppcheck warnings about unreachable code after a return.
...
In this case, it was always a break after a return in a switch case. There are
similar cases which cppcheck didn't detect, and a couple of cases where we have
a break after a continue in a switch case (where the continue refers to an
outer loop), but I didn't touch those. Not yet, at least.
svn-id: r48218
2010-03-10 06:39:23 +00:00
Max Horn
e45f0f309a
SCI: Remove EngineState::_kernel, use SciEngine::_kernel instead
...
svn-id: r48050
2010-02-13 17:45:40 +00:00
Max Horn
9575cc08a2
SCI: Move GameFeatures from EngineState to SciEngine
...
svn-id: r48049
2010-02-13 17:44:58 +00:00
Max Horn
a82939c9be
SCI: Get rid of EngineState::resMan
...
svn-id: r48048
2010-02-13 17:44:19 +00:00
Max Horn
ac4d325e0d
SCI: Add global g_sci pointer to the active SciEngine instance
...
svn-id: r48046
2010-02-13 17:42:49 +00:00
Walter van Niftrik
a3a07f19fc
SCI: Revert r47929 (bad idea, as we may run out of offsets). Instead, adapt SCI32 list iteration code to store node successor before invoking.
...
svn-id: r48036
2010-02-12 02:23:28 +00:00
Max Horn
024e762bdb
SCI: Move bulk of op_callk code to new func callKernelFunc()
...
svn-id: r47979
2010-02-07 17:57:51 +00:00
Max Horn
95b90fc40d
SCI: cleanup; try to unify var names when reading PMachine instructions a bit
...
svn-id: r47978
2010-02-07 17:57:25 +00:00
Max Horn
2cc301e449
SCI: Simplify yet another case of weird 'unsigned to signed' conversion
...
svn-id: r47977
2010-02-07 17:56:57 +00:00
Max Horn
e0218d1ba3
SCI: Get rid of GET_OP_ macros
...
svn-id: r47957
2010-02-07 12:14:26 +00:00
Max Horn
3b4c54f0e5
SCI: Add function readPMachineInstruction()
...
svn-id: r47956
2010-02-07 12:13:59 +00:00
Walter van Niftrik
742ddb7979
SCI: Run GC only when execution_stack_base is 0.
...
svn-id: r47929
2010-02-06 12:50:50 +00:00
Filippos Karapetis
2fb37063a4
Placed all the game feature detection code in a separate class
...
svn-id: r47850
2010-02-03 11:02:43 +00:00
Max Horn
09046947d4
SCI: Make add_exec_stack_entry & add_exec_stack_varselector static / private
...
svn-id: r47837
2010-02-03 01:34:39 +00:00
Max Horn
4ecaf4d4ac
SCI: restoring param of run_vm is a bool, not an int
...
svn-id: r47834
2010-02-03 01:33:23 +00:00
Max Horn
bb5e34a014
SCI: Get rid of EngineState::stack_segment
...
svn-id: r47833
2010-02-03 01:32:59 +00:00