int KyraEngine_MR::o3_npcChatSequence(EMCState *script) { debugC(3, kDebugLevelScriptFuncs, "KyraEngine_MR::o3_npcChatSequence(%p) (%d, %d)", (const void *)script, stackPos(0), stackPos(1)); const int id = stackPos(0); const char *str = (const char *)getTableEntry(_sceneStrings, id); if (str) npcChatSequence(str, stackPos(1), _vocHigh, id); return 0; }
void KyraEngine_HoF::runLoop() { _screen->updateScreen(); _runFlag = true; while (!shouldQuit() && _runFlag) { if (_deathHandler >= 0) { removeHandItem(); delay(5); _drawNoShapeFlag = 0; _gui->optionsButton(0); _deathHandler = -1; if (!_runFlag || shouldQuit()) break; } if (_system->getMillis() > _nextIdleAnim) showIdleAnim(); if (queryGameFlag(0x159)) { dinoRide(); resetGameFlag(0x159); } if (queryGameFlag(0x124) && !queryGameFlag(0x125)) { _mainCharacter.animFrame = 32; enterNewScene(39, -1, 0, 0, 0); } if (queryGameFlag(0xD8)) { resetGameFlag(0xD8); if (_mainCharacter.sceneId == 34) { if (queryGameFlag(0xD1)) { initTalkObject(28); npcChatSequence(getTableString(0xFA, _cCodeBuffer, 1), 28, 0x83, 0xFA); deinitTalkObject(28); enterNewScene(35, 4, 0, 0, 0); } else if (queryGameFlag(0xD0)) { initTalkObject(29); npcChatSequence(getTableString(0xFB, _cCodeBuffer, 1), 29, 0x83, 0xFB); deinitTalkObject(29); enterNewScene(33, 6, 0, 0, 0); } } } int inputFlag = checkInput(_buttonList, true); removeInputTop(); update(); if (inputFlag == 198 || inputFlag == 199) { _savedMouseState = _mouseState; handleInput(_mouseX, _mouseY); } //if (queryGameFlag(0x1EE) && inputFlag) // sub_13B19(inputFlag); _system->delayMillis(10); } }