void ScummEngine_v0::verbExec() { _sentenceNum = 0; _sentenceNestedCount = 0; if (_activeVerb == kVerbWhatIs) return; if (!(_activeVerb == kVerbWalkTo && _activeObject == 0)) { doSentence(_activeVerb, _activeObject, _activeObject2); if (_activeVerb != kVerbWalkTo) { _activeVerb = kVerbWalkTo; _activeObject = 0; _activeObject2 = 0; } _walkToObjectState = kWalkToObjectStateDone; return; } Actor_v0 *a = (Actor_v0 *)derefActor(VAR(VAR_EGO), "verbExec"); int x = _virtualMouse.x / V12_X_MULTIPLIER; int y = _virtualMouse.y / V12_Y_MULTIPLIER; //actorSetPosInBox(); // 0xB31 VAR(6) = x; VAR(7) = y; if (a->_miscflags & kActorMiscFlagFreeze) return; a->stopActorMoving(); a->startWalkActor(VAR(6), VAR(7), -1); }
void ScummEngine_v0::o_doSentence() { byte verb = fetchScriptByte(); int obj, obj2; byte b; b = fetchScriptByte(); if (b == 0xFF) { obj = _cmdObject2; } else if (b == 0xFE) { obj = _cmdObject; } else { obj = OBJECT_V0(b, (_opcode & 0x80) ? kObjectV0TypeBG : kObjectV0TypeFG); } b = fetchScriptByte(); if (b == 0xFF) { obj2 = _cmdObject2; } else if (b == 0xFE) { obj2 = _cmdObject; } else { obj2 = OBJECT_V0(b, (_opcode & 0x40) ? kObjectV0TypeBG : kObjectV0TypeFG); } doSentence(verb, obj, obj2); }