AGOS Engine: Began implementation for a new quit event which will cleanly return to the launcher. This replaces the old shutdown() method within delay()

svn-id: r32203
This commit is contained in:
Christopher Page 2008-05-20 21:40:53 +00:00
parent 5e592d4e4a
commit ca76ef4e1f
9 changed files with 30 additions and 16 deletions

View file

@ -410,7 +410,7 @@ void AGOSEngine::o_msg() {
void AGOSEngine::o_end() {
// 68: exit interpreter
shutdown();
_quit = true;
}
void AGOSEngine::o_done() {
@ -965,6 +965,9 @@ void AGOSEngine::writeVariable(uint16 variable, uint16 contents) {
int AGOSEngine::runScript() {
bool flag;
if (_quit)
return 1;
do {
if (_continousMainScript)
dumpOpcode(_codePtr);
@ -1007,7 +1010,7 @@ int AGOSEngine::runScript() {
error("Invalid opcode '%d' encountered", _opcode);
executeOpcode(_opcode);
} while (getScriptCondition() != flag && !getScriptReturn());
} while (getScriptCondition() != flag && !getScriptReturn() && !_quit);
return getScriptReturn();
}
@ -1063,7 +1066,7 @@ void AGOSEngine::waitForSync(uint a) {
_exitCutscene = false;
_rightButtonDown = false;
while (_vgaWaitFor != 0) {
while (_vgaWaitFor != 0 && !_quit) {
if (_rightButtonDown) {
if (_vgaWaitFor == 200 && (getGameType() == GType_FF || !getBitFlag(14))) {
skipSpeech();