aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/vm.cpp
AgeCommit message (Collapse)Author
2010-06-24SCI: created a workaround table for uninitialized reads, removing old ↵Martin Kiewitz
commented out workarounds for pharkas and laura bow 2 svn-id: r50214
2010-06-24SCI: added currently known object/methodnames in comments for uninitialized ↵Martin Kiewitz
reads svn-id: r50213
2010-06-24SCI: added objectname and method name printed out when uninitialized temps ↵Martin Kiewitz
are read svn-id: r50212
2010-06-24SCI: implement detection for uninitialized temp variable reads and implement ↵Martin Kiewitz
direct fixes for them, i couldnt figure out a valid replacement for island, pharkas and laurabow2 work that way. this should also get changed to a replacement table svn-id: r50211
2010-06-24Turned two hacks inside validate_property() into errors till we find out ↵Filippos Karapetis
where and why they occur (they shouldn't occur). Also turned an error inside send_selector() when argc > 1 into a warning - these are usually script bugs and aren't fatal svn-id: r50208
2010-06-24Fixed script 140 in the Island of Dr. Brain by adding a workaround for it ↵Filippos Karapetis
inside op_link svn-id: r50203
2010-06-22Fixed 2 crashes in QFG1VGA, when dying:Filippos Karapetis
- Ignoring a non-game breaking script bug (modifying the "longSong" object with argc = 2) - Don't pop the callk stack frame if the stack is empty - fixes a crash when restoring from the death screen svn-id: r50157
2010-06-21When loading or restarting, stop script processing if the game is being ↵Filippos Karapetis
loaded or is restarting and the stack position has changed (it's always changed when loading) - fixes the case where the VM is trying to parse an invalid script svn-id: r50121
2010-06-21Add a workaround for a MUMG script bug, MUMG now works again.Matthew Hoops
svn-id: r50117
2010-06-18Added hints inside validate_arithmetic(), together with some code useful for ↵Filippos Karapetis
debugging. Some cleanup svn-id: r50020
2010-06-17Strict mode: Changed several warnings due to logic bugs into errors. If an ↵Filippos Karapetis
error pops up from these ones, please add the game where it occurred and the steps to reproduce the error before turning it into a warning svn-id: r49973
2010-06-17SCI: Remove hack related to compiled kernel signatures.Max Horn
Also change some things to comply to our code formatting conventions. svn-id: r49967
2010-06-17Don't show warnings for a known script bug in SQ4CD with the ↵Filippos Karapetis
Sq4GlobalNarrator object svn-id: r49950
2010-06-13Disabled two cases of findObjectByName() in SCI0 early gamesFilippos Karapetis
svn-id: r49639
2010-06-10camelCase changesFilippos Karapetis
svn-id: r49570
2010-06-10Resolved a FIXME with getSciLanguage(), by creating a separate setter. Also, ↵Filippos Karapetis
some camelCase changes svn-id: r49568
2010-06-10Use the SELECTOR() macro for readabilityFilippos Karapetis
svn-id: r49563
2010-06-10Moved all of the game init/run/exit logic inside the SciEngine classFilippos Karapetis
svn-id: r49559
2010-06-09Merged script_init_engine() and game_init() and cleaned up SciEngine::run() ↵Filippos Karapetis
a bit svn-id: r49537
2010-06-09Globals from script 0 are now initialized in script_init_engine(), and are ↵Filippos Karapetis
accessed from the relevant variables pointer. Removed direct reference to script 0 from the engine state svn-id: r49536
2010-06-09Merged restAdjust and restAdjustCur, as we don't save the restAdjust ↵Filippos Karapetis
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-08CleanupFilippos Karapetis
svn-id: r49521
2010-06-08Merged the restarting_flags, script_abort_flag, and restoring members of the ↵Filippos Karapetis
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-08Merged _game_run() inside game_run(). Some cleanupFilippos Karapetis
svn-id: r49513
2010-06-07Fixed regression from commit #49465 - there are in fact two restAdjust ↵Filippos Karapetis
variables, the current and global one svn-id: r49486
2010-06-06Now that EngineState is not deleted when loading games, we can move some ↵Filippos Karapetis
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-01Stop reconstructing the engine state when restoring, but reset it insteadFilippos Karapetis
svn-id: r49376
2010-05-31Fixed operator precedence warningFilippos Karapetis
svn-id: r49353
2010-05-31The code that loads saved game from the launcherFilippos Karapetis
can now load SCI2 saved games. Added an explanation why the injected call is necessary svn-id: r49349
2010-05-30Limit access to the _bufSize, _scriptSize and _heapSize members of the ↵Filippos Karapetis
Script class svn-id: r49327
2010-05-29Mass renaming of selector-related functions, and removed some defines which ↵Filippos Karapetis
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-28Added some more info when severe script errors occurFilippos Karapetis
svn-id: r49293
2010-05-26SCI: Making various object and script related things constMax Horn
svn-id: r49246
2010-05-26FormattingFilippos Karapetis
svn-id: r49233
2010-05-26Added more info to the warning thrown when argc > 1 while modifying a ↵Filippos Karapetis
variable selector in send_selector() svn-id: r49232
2010-05-26After running some tests, it appears that modifying argc inside ↵Filippos Karapetis
send_selector() was a bad idea. Reverting the relevant code, and putting the warning back, with some extra comments svn-id: r49231
2010-05-26Silence a warning inside send_selector(): argc > 0 means "write selector". ↵Filippos Karapetis
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-26More work on controlling access to members of the Object class:Filippos Karapetis
- 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-23Remove the unused SCI_GAME_WAS_RESTARTED_AT_LEAST_ONCE flagFilippos Karapetis
svn-id: r49161
2010-05-23Made shrink_execution_stack() a member of EngineStateFilippos Karapetis
svn-id: r49159
2010-05-23Cleaned up the game ID code:Filippos Karapetis
- 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-19Removed the exportsAreWide variable from the segment manager and save games, ↵Filippos Karapetis
and moved validateExportFunc() in the Script class, thus resolving a TODO svn-id: r49093
2010-05-19Moved the breakpoint information inside the DebugState structFilippos Karapetis
svn-id: r49092
2010-05-18- Moved kernel_lookup_text inside the Kernel classFilippos Karapetis
- Added a pointer to the segment manager from within the Kernel class, thus simplifying the calls to it svn-id: r49076
2010-05-18- Moved determine_reg_type() and kernel_matches_signature() inside the ↵Filippos Karapetis
Kernel class, where they belong - Moved the kernel signature defines inside kernel.h - Removed some unused references to EngineState svn-id: r49075
2010-05-18Moved breakpointWasHit inside the DebugState struct, thus resolving a FIXMEFilippos Karapetis
svn-id: r49071
2010-05-18Add initial support for KQ6 Mac. Wrapper functions for read/writing to ↵Matthew Hoops
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-04Move DebugChannel related code to new headerMax Horn
svn-id: r48935
2010-04-27COMMON: Move DebugChannel stuff into a new DebugMan singletonMax Horn
svn-id: r48821
2010-03-10Silenced some harmless cppcheck warnings about unreachable code after a return.Torbjörn Andersson
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