Age | Commit message (Collapse) | Author |
|
|
|
unnecessary loadcostume
|
|
|
|
|
|
|
|
Before, the actor will descend the ladder of the pool and maybe even into the the pool. Another issue fixed by this is the actor climbing onto the plant pot if you give something to it.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
in v0
|
|
|
|
The parameter can either be a FG or BG object depending on the opcode.
|
|
|
|
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().
|
|
|
|
It actually was stopMusic() before and so stopped only the music and not all sounds.
The former implementation is for the o_stopMusic opcode which is not supported directly by ScummVM (it always stops all sounds). It is kept as stopMusic_intern() but is not used anymore.
|
|
players
|
|
|
|
- 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
|
|
parameter of resetSentence()
|
|
|
|
after the setDirection call
|
|
opcode
|
|
- 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.
|
|
Before Michael did not develop the film correctly
|
|
Shorten the timer delay does not work as escaping with a second kid is not possible too. Instead decrease engine speed during script execution.
|
|
Escaping with only one kid should not be possible anymore.
|
|
|
|
|
|
|
|
|
|
|
|
Thanks segra for finding how it works in the original interpreter. The plant is handled specially and 0 is used instead of its y-position.
|
|
|
|
- o5_breakHere() seems to be still needed. For example edna does not manage to walk up the ladder if this is not enabled.
- numLocalObjects seems to be big enough so that < instead of <= can be used. The original interpreter only uses the local ids 0 .. 44 whereas scummvm has _numLocalObjects set to 200.
|
|
|
|
This fixes the issue that a kid will not enter the front door after opening it with the key.
|
|
Otherwise the command will never be removed and the stack overflows
|
|
- execute sentence if verb was clicked twice
- reuse the first object if a new verb is selected (but no preposition is used yet)
|
|
|
|
Found by segra.
|
|
|
|
The kid names are now displayed in the sentence line (instead of the verb area) as it is done in the original.
|
|
- getVerbEntrypoint() should not handle walk-to differently (revert 0x0D handling back to original behavior)
- VAR_ACTIVE_ACTOR actually is VAR_ACTIVE_OBJECT2
- runSentenceScript(): "if (_cmdVerb == kVerbWalkTo)" must be "if (_cmdVerb != kVerbWalkTo)"
|
|
|
|
- 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
|
|
|