aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/script_v0.cpp
AgeCommit message (Collapse)Author
2014-12-08SCUMM: Maniac V0 Demo: Allow F7 to restart, Add handler for opcode 0x6e ↵Robert Crossfield
(o_screenPrepare)
2014-12-08SCUMM: Maniac V0: Add support for D64 Demo Disk, Cleanup duplicate 'Talk' arrayRobert Crossfield
2014-11-29SCUMM: Maniac V0: If boxes are neighbors, walk directly to the new box. ↵Robert Crossfield
Remove extra call to 'animateCostume'. Remove now unnecessary V0 walk calc functions
2014-11-28SCUMM: Maniac V0: Implement the original Walk Code (to fix some anim ↵Robert Crossfield
glitches), fix opcode to use _moving correctly (as V0 is different)
2014-11-23SCUMM: Fix bug #2034 - MANIAC V2: Early Collision with Green TentacleRobert Crossfield
2014-02-18SCUMM: Make GPL headers consistent in themselves.Johannes Schickel
2012-09-26JANITORIAL: Remove trailing whitespaces.Johannes Schickel
Powered by: git ls-files "*.cpp" "*.h" "*.m" "*.mm" | xargs sed -i -e 's/[ \t]*$//'
2012-04-03SCUMM: Fix casting away constJoel Teichroeb
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: fix gcc compiler warningsTobias Gunkel
2012-02-11SCUMM: fix cutscenes by reintroduction of freeze modesTobias 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: Fix Tentacle issue, and possibly some other animation issuesRobert Crossfield
2012-02-11SCUMM: Animation FixesRobert Crossfield
2012-02-11SCUMM: Fix the animation system, rename the Limb Frame Repeat variableRobert Crossfield
2012-02-11SCUMM: keep track of the number of nested script calls for a sentenceTobias Gunkel
command in v0 If for instance an object necessary for the sentence command is not reachable or pickupable (try to use faucet (object 55) with jar with water in microwave (object 50), the pick-up script of the jar will tell the actor to pickup object 99 (jar not in microwave)) the actor will try to pick-up the jar infinitely. This is fixed by counting the amount of nested scripts the sentence command has called (directly or indirectly) so far and aborts it if there have been too many.
2012-02-11SCUMM: complete handling of pending walkTo actions for sentence commandsTobias Gunkel
in v0
2012-02-11SCUMM: fix o_setObjectName()Tobias Gunkel
The parameter can either be a FG or BG object depending on the opcode.
2012-02-11SCUMM: delete some obsolete v0 TODOsTobias Gunkel
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: fix v0 mode handling and actor switchingTobias Gunkel
- handle mode switching correctly - do not freeze scripts in cutscene mode (mode 0), as some scripts are freezed in mode 0 that should not be freezed - kModeNoNewKid (mode 2) needs the same userState as mode 3 - rename o_cursorCommand to o_setMode as it is not really cursor specific - handle actorHiding correctly (do not set costume to 0 as the previous costume cannot be reverted after hiding) - add drawSentence - document meanings for actor misc flags - fix actor names for "new kid" if the radiation suit is used (all kids are set to 0 then with actor 0 name " ") - cleanup actor switching routine - _userPut is not used anymore in v0
2012-02-11SCUMM: fix blank sentence line in v0 after cutscenes and remove unused ↵Tobias Gunkel
parameter of resetSentence()
2012-02-11SCUMM: Re-arrange some things to make it closer to the originalsegrax
2012-02-11SCUMM: improve unknown variable support, add case 0xff to the animateactor ↵segrax
opcode
2012-02-11SCUMM: v0 opcode reviewTobias Gunkel
- o_setObjectName has a default value - o_putActorAtObject can either operate on a fg or bg object Note: neither the default value nor the bg object opcode (4E) seem to be ever used by any script. So this commit is rather for completeness than for bug-fixing.
2012-02-11SCUMM: fix opcode walkToObject in v0Tobias Gunkel
Before Michael did not develop the film correctly
2012-02-11SCUMM: merge object v0 id and type into one object varTobias Gunkel
2012-02-11SCUMM: fix ScummEngine_v0::ifEqualActiveObject2Common() parameter nameTobias Gunkel
2012-02-11SCUMM: merge _activeObjectNr/_activeObjectType and _cmdObjectNr/_cmdObjectTypeTobias Gunkel
2012-02-11SCUMM: fix debugger for v0Tobias Gunkel
2012-02-11SCUMM: Add in support in v0 for the unknown variable to o_animateActorsegrax
2012-02-11SCUMM: fix kid selection in v0Tobias Gunkel
The kid names are now displayed in the sentence line (instead of the verb area) as it is done in the original.
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: mm c64 cleanupTobias Gunkel
2012-02-11SCUMM: replace verb, prep and currentMode values with symbolic constantsTobias Gunkel
2012-02-11SCUMM: use constants for c64 actor miscflagsTobias Gunkel
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-02-11SCUMM: Fix pickupObject()Tobias Gunkel
2012-02-11SCUMM: Fix bug with tracker ID 3072094Tobias Gunkel
MANIAC C64: Bug while getting the stamps from the parcel - ID: 3072094 MMC64: use stamps with envelope - ID: 3095595
2011-09-08SCUMM: Made some static data const.Johannes Schickel
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-10-25SCUMM: Add patch #3089936 - MMC64: Parcel/Tombstone/Verb Fix.Travis Howell
svn-id: r53807
2010-10-25SCUMM: Add patch #3093541 - MMC64: Actor Walk / Object Fix.Travis Howell
svn-id: r53806
2010-05-05SCUMM: Convert some code to use Common::StringMax Horn
svn-id: r48957