aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorbjörn Andersson2004-06-10 06:48:50 +0000
committerTorbjörn Andersson2004-06-10 06:48:50 +0000
commit3c70f5a85c6619d60d1f58b821c5cc3fd866ce74 (patch)
tree34c29418ef0a4aebd59b2c89e75d83de705de890
parentdabb32ce1ac3ffd961c2cb222d6f48e4e29f6356 (diff)
downloadscummvm-rg350-3c70f5a85c6619d60d1f58b821c5cc3fd866ce74.tar.gz
scummvm-rg350-3c70f5a85c6619d60d1f58b821c5cc3fd866ce74.tar.bz2
scummvm-rg350-3c70f5a85c6619d60d1f58b821c5cc3fd866ce74.zip
If the 'time' parameter to displayMsg() is 0, wait until the user clicks
or presses a button. This is how displayMsg() was always used, so the only difference is that the code to check for events is no longer outside the function. In the process, it turned out that removeMsg() was probably unnecessary so I have removed it. May cause regressions, but we can deal with them later. svn-id: r13953
-rw-r--r--sword2/build_display.cpp35
-rw-r--r--sword2/controls.cpp29
-rw-r--r--sword2/function.cpp1
-rw-r--r--sword2/resman.cpp14
-rw-r--r--sword2/sword2.h1
5 files changed, 20 insertions, 60 deletions
diff --git a/sword2/build_display.cpp b/sword2/build_display.cpp
index f03c475c8d..8a8ce847c7 100644
--- a/sword2/build_display.cpp
+++ b/sword2/build_display.cpp
@@ -115,7 +115,8 @@ void Sword2Engine::buildDisplay(void) {
/**
* Fades down and displays a message on the screen.
* @param text The message
- * @param time The number of seconds to display the message
+ * @param time The number of seconds to display the message, or 0 to display it
+ * until the user clicks the mouse or presses a key.
*/
void Sword2Engine::displayMsg(byte *text, int time) {
@@ -171,27 +172,27 @@ void Sword2Engine::displayMsg(byte *text, int time) {
free(text_spr);
_graphics->waitForFade();
- uint32 targetTime = _system->get_msecs() + (time * 1000);
+ if (time > 0) {
+ uint32 targetTime = _system->get_msecs() + (time * 1000);
+ sleepUntil(targetTime);
+ } else {
+ while (!_quit) {
+ MouseEvent *me = mouseEvent();
+ if (me && (me->buttons & (RD_LEFTBUTTONDOWN | RD_RIGHTBUTTONDOWN)))
+ break;
- sleepUntil(targetTime);
- _graphics->setPalette(0, 256, oldPal, RDPAL_FADE);
- _graphics->fadeUp();
-}
+ if (keyboardEvent())
+ break;
-/**
- * Fades message down and removes it, fading up again afterwards
- */
+ _graphics->updateDisplay();
+ _system->delay_msecs(50);
+ }
+ }
-void Sword2Engine::removeMsg(void) {
_graphics->fadeDown();
_graphics->waitForFade();
- _graphics->clearScene();
-
- // _graphics->fadeUp();
- // removed by JEL (08oct97) to prevent "eye" smacker corruption when
- // restarting game from CD2 and also to prevent palette flicker when
- // restoring game to a different CD since the "insert CD" message uses
- // this routine to clean up!
+ _graphics->setPalette(0, 256, oldPal, RDPAL_FADE);
+ _graphics->fadeUp();
}
void Sword2Engine::drawBackPar0Frames(void) {
diff --git a/sword2/controls.cpp b/sword2/controls.cpp
index b628648115..e710813247 100644
--- a/sword2/controls.cpp
+++ b/sword2/controls.cpp
@@ -1164,8 +1164,6 @@ private:
Button *_okButton;
Button *_cancelButton;
- void saveLoadError(byte *text);
-
public:
SaveLoadDialog(Gui *gui, int mode)
: Dialog(gui), _mode(mode), _selectedSlot(-1) {
@@ -1433,7 +1431,7 @@ public:
break;
}
- saveLoadError(_gui->_vm->fetchTextLine(_gui->_vm->_resman->openResource(textId / SIZE), textId & 0xffff) + 2);
+ _gui->_vm->displayMsg(_gui->_vm->fetchTextLine(_gui->_vm->_resman->openResource(textId / SIZE), textId & 0xffff) + 2, 0);
result = 0;
}
} else {
@@ -1454,7 +1452,7 @@ public:
break;
}
- saveLoadError(_gui->_vm->fetchTextLine(_gui->_vm->_resman->openResource(textId / SIZE), textId & 0xffff) + 2);
+ _gui->_vm->displayMsg(_gui->_vm->fetchTextLine(_gui->_vm->_resman->openResource(textId / SIZE), textId & 0xffff) + 2, 0);
result = 0;
} else {
// Prime system with a game cycle
@@ -1476,29 +1474,6 @@ public:
}
};
-void SaveLoadDialog::saveLoadError(byte* text) {
- // Print a message on screen. Second parameter is duration.
- _gui->_vm->displayMsg((byte *) text, 0);
-
- // Wait for ESC or mouse click
- while (1) {
- _gui->_vm->_graphics->updateDisplay();
-
- KeyboardEvent *ke = _gui->_vm->keyboardEvent();
- if (ke && ke->keycode == 27)
- break;
-
- MouseEvent *me = _gui->_vm->mouseEvent();
- if (me && (me->buttons & RD_LEFTBUTTONDOWN))
- break;
-
- _gui->_vm->_system->delay_msecs(20);
- }
-
- // Remove the message.
- _gui->_vm->removeMsg();
-}
-
Gui::Gui(Sword2Engine *vm) : _vm(vm), _baseSlot(0) {
int i;
diff --git a/sword2/function.cpp b/sword2/function.cpp
index 9feca89f3e..4f95b89852 100644
--- a/sword2/function.cpp
+++ b/sword2/function.cpp
@@ -304,7 +304,6 @@ int32 Logic::fnDisplayMsg(int32 *params) {
_vm->displayMsg(_vm->fetchTextLine(_vm->_resman->openResource(text_res), local_text) + 2, 3);
_vm->_resman->closeResource(text_res);
- _vm->removeMsg();
return IR_CONT;
}
diff --git a/sword2/resman.cpp b/sword2/resman.cpp
index 1788855b43..a92ac23cf9 100644
--- a/sword2/resman.cpp
+++ b/sword2/resman.cpp
@@ -858,20 +858,6 @@ void ResourceManager::getCd(int cd) {
//
// CD1: "RBSII1" (or "PCF76" for the PCF76 version, whatever that is)
// CD2: "RBSII2"
-
- while (1) {
- MouseEvent *me = _vm->mouseEvent();
- if (me && (me->buttons & (RD_LEFTBUTTONDOWN | RD_RIGHTBUTTONDOWN)))
- break;
-
- if (_vm->keyboardEvent())
- break;
-
- _vm->_graphics->updateDisplay();
- _vm->_system->delay_msecs(50);
- }
-
- _vm->removeMsg();
}
} // End of namespace Sword2
diff --git a/sword2/sword2.h b/sword2/sword2.h
index 29f4267c0b..0c7027847b 100644
--- a/sword2/sword2.h
+++ b/sword2/sword2.h
@@ -210,7 +210,6 @@ public:
void resetRenderLists(void);
void buildDisplay(void);
void displayMsg(byte *text, int time);
- void removeMsg(void);
void setFullPalette(int32 palRes);
int32 registerFrame(int32 *params);