aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/script_v2.cpp
AgeCommit message (Collapse)Author
2012-02-13SCUMM: Clean up resetSentenceWillem Jan Palenstijn
2012-02-11SCUMM: replace "c64" with "v0" when it applies to both C64 and AppleII v0 ↵Tobias Gunkel
versions In addition some routines (e.g. the gfx ones) that are even used in v1.
2012-02-11SCUMM: adjust to coding style-guideTobias Gunkel
2012-02-11SCUMM: replace o_beginOverride() with o2_beginOverride()Tobias Gunkel
In contrast to the comment in o_beginOverride() VAR(VAR_OVERRIDE) is not set in the disassembly. In addition the cutscene stack-pointer is always 0 as this feature is not used in v0. This makes o_beginOverride() work the same way o2_beginOverride() and so it is not needed anymore. Note that fetchScriptWord() was changed to ScummEngine::fetchScriptWord() in o2_beginOverride() as ScummEngine_v0::fetchScriptWord() only fetches a byte. As we need two bytes here we have to use ScummEngine::fetchScriptWord().
2012-02-11SCUMM: introduce constants for _userState for cleaner and easier to ↵Tobias Gunkel
understand code
2012-02-11SCUMM: scumm_vars 14 to 16 are not handled specially in v0Tobias Gunkel
Reading the manuscript will be fixed by this.
2012-02-11SCUMM: Fix actor ID handling in v0Tobias Gunkel
Some object functions allow actor IDs and object IDs as parameters. They are easily distinguishable in engines > 0 as actor IDs are < _numActors and object IDs are bigger. In v0 this is not the case as there are objects with IDs like 3 and 5 (e.g. the hamster). So object ID handling was unified for v0 and the other engines by introducing objIsActor(), objToActor() and ActorToObj().
2012-02-11SCUMM: 2nd try to fix dungeon door timingTobias Gunkel
Shorten the timer delay does not work as escaping with a second kid is not possible too. Instead decrease engine speed during script execution.
2012-02-11SCUMM: shorten delay for dungeon door closing actionTobias Gunkel
Escaping with only one kid should not be possible anymore.
2012-02-11SCUMM: use command stack and SentenceTab in mm c64Tobias Gunkel
- MM C64 uses command stack (SentenceTab, doSentence()) now - _cmdObject... added for current SentenceTab. The _active... variables are only used to build a sentence in the inventory but never by a script. -> many routines are not needed anymore and are removed
2012-02-11SCUMM: start handling object type and id correctly in mm c64Tobias Gunkel
- removed complicated and unnecessary _v0ObjectIndex, _v0ObjectInInventory, _v0ObjectFlag vars - started to merge object id and type into one object value (type<<8|id) - verb preposition ids do not dependent on language -> remove from VerbSettings Note: - objects with type=0 are foreground objects. They have a state, an owner and a bg overlay image. - objects with type=1 are bg objects. They do not have a state or owner and are already contained in the bg image. The do not have an entry in objectState/OwnerTable
2012-02-11SCUMM: fix ScummEngine_v0::o_stopCurrentScript()Tobias Gunkel
2012-02-11SCUMM: changed handling of _activeInventory/_activeActor to ↵Tobias Gunkel
_activeObject(2)/_activeObject(2)Type Note: the transition is not completed yet. The code compiles but is probably not runnable as not every occurrence of _activeInventory has been properly replaced. The usage of _v0ObjectIndex and _v0ObjectInInventory should be revised too and both variables should be replaced by another mechanism (maybe by using a single variable "obj = (type << 8) | id"). - moved v0 only vars _activeInventory, _activeObject, _activeVerb from ScummEngine_v2 to ScummEngine_v0 - removed _activeActor, _activeInvExecute, _activeObject2Inv and _activeInventory. They are handled by _activeObject/_activeObjectType and _activeObject2/_activeObject2Type now. - removed _activeObject(2)Index as they only bloat the code without any benefit (?) - merge prep-name tables from ScummEngine_v2::drawPreposition() and ScummEngine_v0::drawSentenceWord() by introducing ScummEngine_v2::drawPreposition() - rename ObjectData.flags -> obj_type (quick-fix only, needs review! Maybe obj_nr and obj_type can be merged into one var: obj_nr = (obj_type << 8) | obj_nr) - o_unknown2 is negation of o_ifActiveObject (o_ifNotEqualActiveObject2) - renamed o_ifActiveObject -> o_ifEqualActiveObject2 as it acts only on _activeObject2 - renamed ScummEngine_v0::drawSentenceWord() -> ScummEngine_v0::getObjectName()
2012-01-29SCUMM: Add script number differences in SCUMM V0, for two work arounds in ↵Travis Howell
Maniac Mansion.
2011-05-13SCUMM: Rename ResTypes->ResType, introduce ResId typedef, change code to use ↵Max Horn
both
2011-05-13SCUMM: Move class ResourceManager to its own headerMax Horn
2011-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2011-02-07SCUMM: Avoid hiding overloaded virtual methodMax Horn
svn-id: r55809
2010-12-02SCUMM: Workaround for bug #1447058, a race condition in the game scriptsMax Horn
svn-id: r54730
2010-10-25SCUMM: Add patch #3093541 - MMC64: Actor Walk / Object Fix.Travis Howell
svn-id: r53806
2010-08-16SCUMM: More finely differentiate opcode tables between v3, v4 and v5Max Horn
This has been tested and verified as much as I can, but has a small risk of leading to (easily fixable) regressions. svn-id: r52130
2010-05-05SCUMM: Convert some code to use Common::StringMax Horn
svn-id: r48957
2009-05-26Fix bug #2687801 - ZAK: Cannot pickup Ladder on Mars Youth Hostel.Travis Howell
svn-id: r40899
2009-04-20SCUMM: Introduced new method ScummEngine_v5::jumpRelative; unified some v0 ↵Max Horn
and v2 opcodes svn-id: r40025
2009-04-19SCUMM: Moved o5_saveLoadGame and o5_saveLoadVars to ScummEngine_v4 (the ↵Max Horn
highest SCUMM version to implement these opcodes. Actually, our code was bugged in so far as we only ever invoked o5_saveLoadGame in V3 games, never in V4 games (but this properly never mattered ;) svn-id: r40014
2009-04-19SCUMM: Moved ScummEngine_v2::o2_setBoxFlags to ScummEngine_v3::o3_setBoxFlagsMax Horn
svn-id: r40010
2009-04-19SCUMM: Turned PARAM_1,2,3 into an enum; minor tweaksMax Horn
svn-id: r40008
2009-04-16SCUMM: Switched opcode tables to use Common::Functor0 (a bit like Kyra does it)Max Horn
svn-id: r39956
2009-03-20SCUMM: Split intern.h into multiple headersMax Horn
svn-id: r39567
2008-01-28Fixed the spaces before tabs.Jordi Vilalta Prat
svn-id: r30667
2007-09-19Merged common/stdafx.h into common/scummsys.h. All referencing files have ↵Nicola Mettifogo
been updated. svn-id: r28966
2007-09-08Some cleanup (yay for whomever had the brilliant idea to let SVN work over ↵Max Horn
HTTPS and hence through proxies&firewalls :) svn-id: r28877
2007-05-30Updated legal headers in source files, based on what Pidgin (the IM client ↵Max Horn
formerly knowns as Gaim) does; added new (incomplete) COPYRIGHT file; updated copyright dates in a few spots svn-id: r27024
2007-03-11A long time ago, in a virtual machine far, far away...Max Horn
It is a period of bug fixing. Rebel developers, coding from a public project, have won their umpteenth victory against the evil Actor Walk Bugs. During the debugging, programmers used secret plans to the LucasArts' ultimate tool, the SCUMM engine, an extensible scripting system with enough power to create an entire adventure. Pursued by ensuing sinister regressions, High King Fingolfin gleefully jumps up and down, making use of the hotkey that can save his games and restore them back again later.... [With apologies to George Lucas. Good riddance to bugs #751662, #771483, #959001, #1329457, #1329498, #1329529, #1527672, #1538260, #1571701, #1571705, #1571740, and a warm welcome to the regressions this change will cause. :-) ] svn-id: r26090
2007-02-25Remove left over debug output.Travis Howell
svn-id: r25848
2007-02-25Add support for using disks images for Apple II version of Maniac Mansion.Travis Howell
svn-id: r25846
2007-02-18French keyboard is 'azerty' not 'awert'Chris Apers
svn-id: r25693
2007-02-15Fix for bug #1328146: MANIACNES: Shortcut keys are incorrectly configuredMax Horn
svn-id: r25601
2007-02-04Rewrote the actor walk code for SCUMM V0-V2 games: Now it uses the C64 ↵Max Horn
character coordinates internally, not pixel coordinates. This should fix some walk bugs, but also might cause some regressions. Watch out svn-id: r25370
2006-11-19* Made Actor::_pos protected, added public Actor::getPos() methodMax Horn
* Added default params to Actor::putActor() * Removed Actor::getActorXYPos svn-id: r24742
2006-10-30HACK no longer required for MM demo modeTravis Howell
svn-id: r24576
2006-10-30Fix bug #771499 - ZAK: Lotto numbers never picked. The freezeCount isn't ↵Travis Howell
checked in runScriptNested(), when restarting script in SCUMM 1/2. svn-id: r24575
2006-10-29Named / documented the V0-V2 object states (we should probably rename the ↵Max Horn
corresponding opcodes here and in descumm to make reading script dumps easier) svn-id: r24566
2006-10-19SCUMM: Introduced V12_X_MULTIPLIER and V12_Y_MULTIPLIER to make it a bit ↵Max Horn
easier to find spots where we convert between C64-style coordinates and pixel coordinates (but beware, this probably doesnt't cover all relevant instances) svn-id: r24384
2006-10-19cleanupMax Horn
svn-id: r24383
2006-10-15Replaced function level static variable (YUCK) called 'sentence' by ↵Max Horn
ScummEngine_v2:_sentenceBuf svn-id: r24324
2006-10-04o2_animateActor is essentially identical to o5_animateActor -- removed in ↵Max Horn
favor of the latter svn-id: r24115
2006-09-17renamed ScummEngine::restoreBG to restoreBackground; renamed and moved ↵Max Horn
Gdi::copyVirtScreenBuffers to ScummEngine_v70he::restoreBackgroundHE svn-id: r23925
2006-09-17Renamed ScummEngine::res to _res and allocate the ResourceManager on the ↵Max Horn
heap (i.e. _res is a pointer now) svn-id: r23922
2006-09-16Replaced checkRange by assertRange, which has (a) an (IMO) more logical ↵Max Horn
order of parameters, and (b) removes lots of useless duplicate information in error messages svn-id: r23885