aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKari Salminen2008-08-14 22:01:56 +0000
committerKari Salminen2008-08-14 22:01:56 +0000
commite56359eac0d994c18e79a8a3a19acfcbedc0e0fb (patch)
treec25e3769b06dc10ba6a51589451061228a2ef864
parent3f316681a00108d668867261a93e9ae789aa058f (diff)
downloadscummvm-rg350-e56359eac0d994c18e79a8a3a19acfcbedc0e0fb.tar.gz
scummvm-rg350-e56359eac0d994c18e79a8a3a19acfcbedc0e0fb.tar.bz2
scummvm-rg350-e56359eac0d994c18e79a8a3a19acfcbedc0e0fb.zip
Moved showing of the collision page from Alt-key to F11-key because Alt conflicted with taking screenshots using Alt-s. Great. Hopefully F11 doesn't conflict with anything useful.
svn-id: r33877
-rw-r--r--engines/cine/gfx.cpp23
-rw-r--r--engines/cine/gfx.h2
-rw-r--r--engines/cine/main_loop.cpp6
3 files changed, 23 insertions, 8 deletions
diff --git a/engines/cine/gfx.cpp b/engines/cine/gfx.cpp
index b8b3bf38dd..cb900e8850 100644
--- a/engines/cine/gfx.cpp
+++ b/engines/cine/gfx.cpp
@@ -92,7 +92,7 @@ static const byte cursorPalette[] = {
*/
FWRenderer::FWRenderer() : _background(NULL), _palette(NULL), _cmd(""),
_cmdY(0), _messageBg(0), _backBuffer(new byte[_screenSize]),
- _activeLowPal(NULL), _changePal(0) {
+ _activeLowPal(NULL), _changePal(0), _showCollisionPage(false) {
assert(_backBuffer);
@@ -126,6 +126,7 @@ void FWRenderer::clear() {
_cmdY = 0;
_messageBg = 0;
_changePal = 0;
+ _showCollisionPage = false;
}
/*! \brief Draw 1bpp sprite using selected color
@@ -512,16 +513,22 @@ void FWRenderer::drawFrame() {
blit();
}
+/*!
+ * \brief Turn on or off the showing of the collision page.
+ * If turned on the blitting routine shows the collision page instead of the back buffer.
+ * \note Useful for debugging collision page related problems.
+ */
+void FWRenderer::showCollisionPage(bool state) {
+ _showCollisionPage = state;
+}
+
/*! \brief Update screen
*/
void FWRenderer::blit() {
- if (g_system->getEventManager()->getModifierState() & Common::KBD_ALT) {
- // Show collision page if the Alt key is being pressed
- g_system->copyRectToScreen(collisionPage, 320, 0, 0, 320, 200);
- } else {
- // Normally show the back buffer
- g_system->copyRectToScreen(_backBuffer, 320, 0, 0, 320, 200);
- }
+ // Show the back buffer or the collision page. Normally the back
+ // buffer but showing the collision page is useful for debugging.
+ byte *source = (_showCollisionPage ? collisionPage : _backBuffer);
+ g_system->copyRectToScreen(source, 320, 0, 0, 320, 200);
}
/*! \brief Set player command string
diff --git a/engines/cine/gfx.h b/engines/cine/gfx.h
index ccd955db8f..c07214028c 100644
--- a/engines/cine/gfx.h
+++ b/engines/cine/gfx.h
@@ -62,6 +62,7 @@ protected:
byte *_backBuffer; ///< Screen backbuffer
uint16 *_activeLowPal; ///< Active 16 color palette
int _changePal; ///< Load active palette to video backend on next frame
+ bool _showCollisionPage; ///< Should we show the collision page instead of the back buffer? Used for debugging.
void fillSprite(const objectStruct &obj, uint8 color = 0);
void drawMaskedSprite(const objectStruct &obj, const byte *mask);
@@ -124,6 +125,7 @@ public:
void drawInputBox(const char *info, const char *input, int cursor, int x, int y, int width);
virtual void fadeToBlack();
+ void showCollisionPage(bool state);
};
/*! \brief Operation Stealth renderer
diff --git a/engines/cine/main_loop.cpp b/engines/cine/main_loop.cpp
index 17240f9ef8..e2402a4c8d 100644
--- a/engines/cine/main_loop.cpp
+++ b/engines/cine/main_loop.cpp
@@ -125,6 +125,9 @@ static void processEvent(Common::Event &event) {
g_cine->makeSystemMenu();
}
break;
+ case Common::KEYCODE_F11:
+ renderer->showCollisionPage(true);
+ break;
case Common::KEYCODE_MINUS:
case Common::KEYCODE_KP_MINUS:
g_cine->modifyGameSpeed(-1); // Slower
@@ -168,6 +171,9 @@ static void processEvent(Common::Event &event) {
break;
case Common::EVENT_KEYUP:
switch (event.kbd.keycode) {
+ case Common::KEYCODE_F11:
+ renderer->showCollisionPage(false);
+ break;
case Common::KEYCODE_KP5: // Emulated left mouse button click
case Common::KEYCODE_LEFT: // Left
case Common::KEYCODE_KP4: // Left