void AGOSEngine_Feeble::oracleTextUp() { Subroutine *sub; int i = 0; changeWindow(3); _noOracleScroll = 0; if (_textWindow->scrollY > _oracleMaxScrollY) // For scroll up _oracleMaxScrollY = _textWindow->scrollY; while (1) { if (_textWindow->scrollY == _oracleMaxScrollY) break; _textWindow->textRow = 105; for (i = 0; i < 5; i++) { _newLines = 0; _textWindow->textColumn = 0; _textWindow->textRow -= 3; if (i == 2) { _textWindow->scrollY += 1; _textWindow->textRow += 15; linksUp(); } scrollOracleUp(); setBitFlag(94, true); sub = getSubroutineByID(_variableArray[104]); if (sub) startSubroutineEx(sub); setBitFlag(94, false); } if (_currentBoxNum != 601 || !getBitFlag(89)) break; delay(100); } }
void AGOSEngine_Feeble::windowNewLine(WindowBlock *window) { if (_noOracleScroll == 0) { if (window->height < window->textRow + 30) { if (!getBitFlag(94)) { _noOracleScroll = 1; if (getBitFlag(92)) { _noOracleScroll = 0; checkLinkBox(); scrollOracle(); linksUp(); window->scrollY++; _oracleMaxScrollY++; } else { _oracleMaxScrollY++; checkLinkBox(); } } } else { window->textRow += 15; checkLinkBox(); } } else { _oracleMaxScrollY++; checkLinkBox(); } window->textColumn = 0; window->textColumnOffset = 0; window->textLength = 0; }