void AGOSEngine_PN::opn_opcode32() { Common::String bf; int a, slot; a = varval(); if (a > 2) { setScriptReturn(true); return; } uint16 curSlot = countSaveGames(); switch (a) { case 0: getFilename(); slot = matchSaveGame(_saveFile, curSlot); if (slot != -1) bf = genSaveName(slot); else bf = genSaveName(curSlot); break; case 1: bf = "pn.sav"; break; case 2: // NOTE: Is this case ever used? error("opn_opcode32: case 2"); break; } a = saveFile(bf); setScriptReturn(a); }
void AGOSEngine_Feeble::off_saveUserGame() { // 132: save game _noOracleScroll = 0; _system->setFeatureState(OSystem::kFeatureVirtualKeyboard, true); saveUserGame(countSaveGames() + 1 - readVariable(55)); _system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false); }
void AGOSEngine_PN::opn_opcode31() { int a, slot = 0; Common::String bf; if ((a = varval()) > 2) { setScriptReturn(false); return; } switch (a) { case 0: getFilename(); slot = matchSaveGame(_saveFile, countSaveGames()); bf = genSaveName(slot); break; case 1: bf = "pn.sav"; break; case 2: // NOTE: Is this case ever used? error("opn_opcode31: case 2"); break; } if (slot == -1) { setScriptReturn(false); } else { a = loadFile(bf); if (a) setScriptReturn(badload(a)); else setScriptReturn(true); } }
void AGOSEngine_Feeble::listSaveGames(int n) { char b[108]; Common::InSaveFile *in; uint16 j, k, z, maxFiles; int OK; memset(b, 0, 108); maxFiles = countSaveGames() - 1; j = maxFiles - n + 1; k = maxFiles - j + 1; z = maxFiles; if (getBitFlag(95)) { j++; z++; } while (!shouldQuit()) { OK = 1; if (getBitFlag(93) || getBitFlag(94)) { OK = 0; if (j > z) break; } if (getBitFlag(93)) { if (((_newLines + 1) >= _textWindow->scrollY) && ((_newLines + 1) < (_textWindow->scrollY + 3))) OK = 1; } if (getBitFlag(94)) { if ((_newLines + 1) == (_textWindow->scrollY + 7)) OK = 1; } if (OK == 1) { if (j == maxFiles + 1) { showMessageFormat("\n"); hyperLinkOn(j + 400); setTextColor(116); showMessageFormat(" %d. ", 1); hyperLinkOff(); setTextColor(113); k++; j--; } if (!(in = _saveFileMan->openForLoading(genSaveName(j)))) break; in->read(b, 100); delete in; } showMessageFormat("\n"); hyperLinkOn(j + 400); setTextColor(116); if (k < 10) showMessageFormat(" "); showMessageFormat("%d. ", k); setTextColor(113); showMessageFormat("%s ", b); hyperLinkOff(); j--; k++; } }