static QScriptValue js_gameOverMessage(QScriptContext *context, QScriptEngine *engine) { int player = engine->globalObject().property("me").toInt32(); const MESSAGE_TYPE msgType = MSG_MISSION; // always bool gameWon = context->argument(0).toBool(); VIEWDATA *psViewData; if (gameWon) { psViewData = getViewData("WIN"); addConsoleMessage(_("YOU ARE VICTORIOUS!"), DEFAULT_JUSTIFY, SYSTEM_MESSAGE); } else { psViewData = getViewData("WIN"); addConsoleMessage(_("YOU WERE DEFEATED!"), DEFAULT_JUSTIFY, SYSTEM_MESSAGE); } ASSERT(psViewData, "Viewdata not found"); MESSAGE *psMessage = addMessage(msgType, false, player); if (psMessage) { //set the data psMessage->pViewData = (MSG_VIEWDATA *)psViewData; displayImmediateMessage(psMessage); stopReticuleButtonFlash(IDRET_INTEL_MAP); //we need to set this here so the VIDEO_QUIT callback is not called setScriptWinLoseVideo(gameWon ? PLAY_WIN : PLAY_LOSE); } displayGameOver(gameWon); if (challengeActive) { updateChallenge(gameWon); } return QScriptValue(); }
bool stageThreeShutDown(void) { debug(LOG_WZ, "== stageThreeShutDown =="); removeSpotters(); // There is an assymetry in scripts initialization and destruction, due // the many different ways scripts get loaded. if (!shutdownScripts()) { return false; } challengesUp = false; challengeActive = false; isInGamePopupUp = false; shutdownTemplates(); // make sure any button tips are gone. widgReset(); audio_StopAll(); if(bMultiPlayer) { multiGameShutdown(); } cmdDroidMultiExpBoost(false); eventReset(); // reset the script values system scrvReset(); //call this here before mission data is released if (!missionShutDown()) { return false; } /* When this line wasn't at this point. The PSX version always failed on the next script after the tutorial ... unexplained why? */ // bInTutorial=false; scrExternReset(); //reset the run data so that doesn't need to be initialised in the scripts initRunData(); resetVTOLLandingPos(); setScriptWinLoseVideo(PLAY_NONE); return true; }
bool stageThreeShutDown() { debug(LOG_WZ, "== stageThreeShutDown =="); hostlaunch = 0; removeSpotters(); // There is an asymmetry in scripts initialization and destruction, due // the many different ways scripts get loaded. if (!shutdownScripts()) { return false; } challengesUp = false; challengeActive = false; isInGamePopupUp = false; shutdownTemplates(); // make sure any button tips are gone. widgReset(); audio_StopAll(); if (bMultiPlayer) { multiGameShutdown(); } eventReset(); // reset the script values system scrvReset(); //call this here before mission data is released if (!missionShutDown()) { return false; } scrExternReset(); // reset the run data so that doesn't need to be initialised in the scripts initRunData(); resetVTOLLandingPos(); setScriptWinLoseVideo(PLAY_NONE); return true; }