aboutsummaryrefslogtreecommitdiff
path: root/queen/queen.cpp
diff options
context:
space:
mode:
authorGregory Montoir2004-01-08 10:25:18 +0000
committerGregory Montoir2004-01-08 10:25:18 +0000
commit74829245d9f05fe51414e26c13c8b18db89b9e2a (patch)
tree5bd3475dfd3f07bddfa7f58923159bbb8786924c /queen/queen.cpp
parent8c2da44b971a6adda806fac050cf5c8cd48f4690 (diff)
downloadscummvm-rg350-74829245d9f05fe51414e26c13c8b18db89b9e2a.tar.gz
scummvm-rg350-74829245d9f05fe51414e26c13c8b18db89b9e2a.tar.bz2
scummvm-rg350-74829245d9f05fe51414e26c13c8b18db89b9e2a.zip
mostly cleanup :
- moved main update() method to QueenEngine - merged update() & checkPlayer() - added a method in Logic class to handle the CUTAWAY_SPECIAL stuff - Journal remembers last seen page - no need to call loadPanel() to restore panel palette, use palSetPanel() instead svn-id: r12240
Diffstat (limited to 'queen/queen.cpp')
-rw-r--r--queen/queen.cpp59
1 files changed, 49 insertions, 10 deletions
diff --git a/queen/queen.cpp b/queen/queen.cpp
index e0c04ffc9f..f9bf8fc407 100644
--- a/queen/queen.cpp
+++ b/queen/queen.cpp
@@ -128,10 +128,10 @@ void QueenEngine::registerDefaultSettings() {
void QueenEngine::checkOptionSettings() {
// check talkspeed value
- if (_logic->talkSpeed() < 4) {
- _logic->talkSpeed(4);
- } else if (_logic->talkSpeed() > 95) {
- _logic->talkSpeed(100);
+ if (_talkSpeed < 4) {
+ _talkSpeed = 4;
+ } else if (_talkSpeed > 95) {
+ _talkSpeed = 100;
}
// XXX check master_volume value
@@ -143,7 +143,7 @@ void QueenEngine::checkOptionSettings() {
// ensure text is always on when voice is off
if (!_sound->speechOn()) {
- _logic->subtitles(true);
+ _subtitles = true;
}
}
@@ -152,9 +152,9 @@ void QueenEngine::readOptionSettings() {
// XXX master_volume
_sound->musicToggle(!ConfMan.getBool("music_mute"));
_sound->sfxToggle(!ConfMan.getBool("sfx_mute"));
- _logic->talkSpeed(ConfMan.getInt("talkspeed"));
+ _talkSpeed = ConfMan.getInt("talkspeed");
_sound->speechToggle(!ConfMan.getBool("speech_mute"));
- _logic->subtitles(ConfMan.getBool("subtitles"));
+ _subtitles = ConfMan.getBool("subtitles");
checkOptionSettings();
}
@@ -163,13 +163,52 @@ void QueenEngine::writeOptionSettings() {
// XXX master_volume
ConfMan.set("music_mute", !_sound->musicOn());
ConfMan.set("sfx_mute", !_sound->sfxOn());
- ConfMan.set("talkspeed", _logic->talkSpeed());
+ ConfMan.set("talkspeed", _talkSpeed);
ConfMan.set("speech_mute", !_sound->speechOn());
- ConfMan.set("subtitles", _logic->subtitles());
+ ConfMan.set("subtitles", _subtitles);
ConfMan.flushToDisk();
}
+void QueenEngine::update(bool checkPlayerInput) {
+ if (_debugger->isAttached()) {
+ _debugger->onFrame();
+ }
+
+ _graphics->update(_logic->currentRoom());
+ _logic->update();
+
+ _input->delay();
+
+ if (!_resource->isInterview()) {
+ _display->palCustomScroll(_logic->currentRoom());
+ }
+ BobSlot *joe = _graphics->bob(0);
+ _display->update(joe->active, joe->x, joe->y);
+
+ _input->checkKeys();
+ if (_input->debugger()) {
+ _input->debuggerReset();
+ _debugger->attach();
+ }
+ if (!_input->cutawayRunning()) {
+ if (_input->quickSave()) {
+ _input->quickSaveReset();
+ _logic->gameSave(0, "Quicksave");
+ }
+ if (_input->quickLoad()) {
+ _input->quickLoadReset();
+ _logic->gameLoad(0);
+ }
+ if (checkPlayerInput) {
+ _command->updatePlayer();
+ }
+ if (_input->idleTime() >= Input::DELAY_SCREEN_BLANKER) {
+ _display->blankScreen();
+ }
+ }
+}
+
void QueenEngine::errorString(const char *buf1, char *buf2) {
strcpy(buf2, buf1);
if (_debugger && !_debugger->isAttached()) {
@@ -209,7 +248,7 @@ void QueenEngine::go() {
// _command->clear(true);
// }
_logic->joeWalk(JWM_NORMAL);
- _logic->checkPlayer();
+ update(true);
}
}
}