[Scummvm-cvs-logs] SF.net SVN: scummvm: [27012] scummvm/trunk/engines/scumm
fingolfin at users.sourceforge.net
fingolfin at users.sourceforge.net
Wed May 30 18:40:12 CEST 2007
Revision: 27012
http://scummvm.svn.sourceforge.net/scummvm/?rev=27012&view=rev
Author: fingolfin
Date: 2007-05-30 09:40:11 -0700 (Wed, 30 May 2007)
Log Message:
-----------
Modified version of patch #1727045 INDY3: IQ Points Dialog
Modified Paths:
--------------
scummvm/trunk/engines/scumm/dialogs.cpp
scummvm/trunk/engines/scumm/dialogs.h
scummvm/trunk/engines/scumm/input.cpp
Modified: scummvm/trunk/engines/scumm/dialogs.cpp
===================================================================
--- scummvm/trunk/engines/scumm/dialogs.cpp 2007-05-30 14:38:17 UTC (rev 27011)
+++ scummvm/trunk/engines/scumm/dialogs.cpp 2007-05-30 16:40:11 UTC (rev 27012)
@@ -910,7 +910,16 @@
_timer = getMillis() + kDisplayDelay;
}
+Indy3IQPointsDialog::Indy3IQPointsDialog(ScummEngine *scumm, char* text)
+ : InfoDialog(scumm, text) {
+}
+void Indy3IQPointsDialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) {
+ if (ascii == 'i')
+ close();
+ else
+ ScummDialog::handleKeyDown(ascii, keycode, modifiers);
+}
} // End of namespace Scumm
Modified: scummvm/trunk/engines/scumm/dialogs.h
===================================================================
--- scummvm/trunk/engines/scumm/dialogs.h 2007-05-30 14:38:17 UTC (rev 27011)
+++ scummvm/trunk/engines/scumm/dialogs.h 2007-05-30 16:40:11 UTC (rev 27012)
@@ -232,6 +232,14 @@
uint32 _timer;
};
+
+//The Indy IQ dialog
+class Indy3IQPointsDialog : public InfoDialog {
+public:
+ Indy3IQPointsDialog(ScummEngine *scumm, char* text);
+ virtual void handleKeyDown(uint16 ascii, int keycode, int modifiers);
+};
+
} // End of namespace Scumm
#endif
Modified: scummvm/trunk/engines/scumm/input.cpp
===================================================================
--- scummvm/trunk/engines/scumm/input.cpp 2007-05-30 14:38:17 UTC (rev 27011)
+++ scummvm/trunk/engines/scumm/input.cpp 2007-05-30 16:40:11 UTC (rev 27012)
@@ -496,6 +496,26 @@
// Fall back to default behavior
ScummEngine::processKeyboard(lastKeyHit);
}
+
+ // i brings up an IQ dialog in Indy3
+
+ if (lastKeyHit == 'i' && _game.id == GID_INDY3) {
+ // SCUMM var 244 is the episode score
+ // and var 245 is the series score
+ char text[50];
+
+ // FIXME: Currently, the series score does not work properly
+ // This workaround just sets it equal to the episode score
+ // However, at the end of the game, it does show the episode
+ // score by itself
+ int a = _scummVars[245];
+ if (!a)
+ a = _scummVars[244];
+
+ sprintf(text, "IQ Points: Episode = %d, Series = %d", _scummVars[244], a);
+ Indy3IQPointsDialog indy3IQPointsDialog(this, text);
+ runDialog(indy3IQPointsDialog);
+ }
}
void ScummEngine::processKeyboard(int lastKeyHit) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list