aboutsummaryrefslogtreecommitdiff
path: root/sword1/sword1.cpp
diff options
context:
space:
mode:
authorRobert Göffringmann2003-12-28 23:24:03 +0000
committerRobert Göffringmann2003-12-28 23:24:03 +0000
commite9766658b666dfe5065ccb5f27549f0719b16cda (patch)
tree1083411aca1741dedc6d8269ac267d6c31e73e4f /sword1/sword1.cpp
parent2548df9cf8ae51a55a7959ca24741a9f8ceb8414 (diff)
downloadscummvm-rg350-e9766658b666dfe5065ccb5f27549f0719b16cda.tar.gz
scummvm-rg350-e9766658b666dfe5065ccb5f27549f0719b16cda.tar.bz2
scummvm-rg350-e9766658b666dfe5065ccb5f27549f0719b16cda.zip
this fixes the remaining glitches
svn-id: r12004
Diffstat (limited to 'sword1/sword1.cpp')
-rw-r--r--sword1/sword1.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/sword1/sword1.cpp b/sword1/sword1.cpp
index 16318f4956..21c4287364 100644
--- a/sword1/sword1.cpp
+++ b/sword1/sword1.cpp
@@ -148,7 +148,7 @@ void SwordEngine::initialize(void) {
_logic->initialize();
_objectMan->initialize();
_mouse->initialize();
- _control = new SwordControl(_resMan, _objectMan, _system, _mouse, getSavePath());
+ _control = new SwordControl(_resMan, _objectMan, _system, _mouse, _music, getSavePath());
}
void SwordEngine::reinitialize(void) {
@@ -1023,6 +1023,7 @@ void SwordEngine::startPositions(int32 startNumber) {
compact = (BsObject*)_objectMan->fetchObject(PLAYER);
_logic->fnEnterSection(compact, PLAYER, startNumber, 0, 0, 0, 0, 0); // (automatically opens the compact resource for that section)
_systemVars.deathScreenFlag = 0;
+ _systemVars.wantFade = true;
}
void SwordEngine::go(void) {
@@ -1055,6 +1056,8 @@ void SwordEngine::go(void) {
reinitialize();
if (action == CONTROL_GAME_RESTORED)
_control->doRestore();
+ else if (action == CONTROL_RESTART_GAME)
+ startPositions(1);
_systemVars.forceRestart = false;
_systemVars.deathScreenFlag = 0;
} while (true);
@@ -1108,7 +1111,7 @@ uint8 SwordEngine::mainLoop(void) {
if (_systemVars.forceRestart)
retCode = CONTROL_RESTART_GAME;
- else if (_keyPressed == 63) {
+ else if (((_keyPressed == 63) && (SwordLogic::_scriptVars[MOUSE_STATUS] & 1)) || (_systemVars.deathScreenFlag)) {
retCode = _control->runPanel();
if (!retCode)
_screen->refreshPalette();