mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-21 19:51:49 +00:00
GRIFFON: Fix the menu logic. Finally!
This commit is contained in:
parent
477e12c1e1
commit
93be6abf58
@ -1004,7 +1004,7 @@ void GriffonEngine::damageNPC(int npcnum, int damage, int spell) {
|
||||
|
||||
if (_npcInfo[npcnum].script == kScriptEndOfGame) {
|
||||
endOfGame();
|
||||
_gameMode = kGameModeEnd;
|
||||
_gameMode = kGameModeIntro;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -107,7 +107,7 @@ void GriffonEngine::mainLoop() {
|
||||
_console->onFrame();
|
||||
|
||||
updateEngine();
|
||||
} while (!_shouldQuit && _gameMode != kGameModeEnd && _gameMode != kGameModeNewGame);
|
||||
} while (!_shouldQuit && _gameMode == kGameModePlay);
|
||||
}
|
||||
|
||||
void GriffonEngine::updateEngine() {
|
||||
@ -163,7 +163,7 @@ void GriffonEngine::updateEngine() {
|
||||
|
||||
checkHit();
|
||||
|
||||
if (_gameMode == kGameModeEnd)
|
||||
if (_gameMode != kGameModePlay)
|
||||
return;
|
||||
}
|
||||
|
||||
@ -246,7 +246,7 @@ void GriffonEngine::updateEngine() {
|
||||
if (_player.hp <= 0) {
|
||||
theEnd();
|
||||
|
||||
_gameMode = kGameModeEnd;
|
||||
_gameMode = kGameModeIntro;
|
||||
|
||||
return;
|
||||
}
|
||||
|
@ -137,13 +137,20 @@ Common::Error GriffonEngine::run() {
|
||||
if (_shouldQuit)
|
||||
return Common::kNoError;
|
||||
|
||||
while (!_shouldQuit) {
|
||||
if (_gameMode != kGameModeNewGame)
|
||||
title(0);
|
||||
_gameMode = kGameModeIntro;
|
||||
|
||||
if (_gameMode == kGameModeNewGame) {
|
||||
while (!_shouldQuit) {
|
||||
switch (_gameMode) {
|
||||
case kGameModeIntro:
|
||||
case kGameModePlay:
|
||||
title(0);
|
||||
break;
|
||||
|
||||
case kGameModeNewGame:
|
||||
newGame();
|
||||
} else if (_gameMode == kGameModeLoadGame) {
|
||||
break;
|
||||
|
||||
case kGameModeLoadGame:
|
||||
_player.walkSpeed = 1.1f;
|
||||
_animSpeed = 0.5f;
|
||||
_attacking = false;
|
||||
@ -157,6 +164,10 @@ Common::Error GriffonEngine::run() {
|
||||
_secsInGame = 0;
|
||||
loadMap(_curMap);
|
||||
mainLoop();
|
||||
break;
|
||||
|
||||
default:
|
||||
error("Bad game mode: %d", _gameMode);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -322,11 +322,9 @@ struct ObjectInfoStruct {
|
||||
|
||||
enum {
|
||||
kGameModeIntro,
|
||||
kGameModeEnd,
|
||||
kGameModeSaveLoad,
|
||||
kGameModePlay,
|
||||
kGameModeNewGame,
|
||||
kGameModeLoadGame,
|
||||
kGameModePlay
|
||||
kGameModeLoadGame
|
||||
};
|
||||
|
||||
class GriffonEngine : public Engine {
|
||||
|
Loading…
x
Reference in New Issue
Block a user