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
This commit is contained in:
Kari Salminen 2008-08-14 22:01:56 +00:00
parent 3f316681a0
commit e56359eac0
3 changed files with 23 additions and 8 deletions

View File

@ -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

View File

@ -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

View File

@ -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