[Scummvm-cvs-logs] CVS: scummvm/gui console.h,1.27,1.28 console.cpp,1.51,1.52
Max Horn
fingolfin at users.sourceforge.net
Sun Dec 12 13:24:01 CET 2004
Update of /cvsroot/scummvm/scummvm/gui
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17239
Modified Files:
console.h console.cpp
Log Message:
clean up slide code
Index: console.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/console.h,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- console.h 27 Nov 2004 01:25:25 -0000 1.27
+++ console.h 12 Dec 2004 21:23:21 -0000 1.28
@@ -59,7 +59,13 @@
bool _caretVisible;
uint32 _caretTime;
- bool _slideUpAndClose;
+ enum SlideMode {
+ kNoSlideMode,
+ kUpSlideMode,
+ kDownSlideMode
+ };
+
+ SlideMode _slideMode;
uint32 _slideTime;
ScrollBarWidget *_scrollBar;
Index: console.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/console.cpp,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -d -r1.51 -r1.52
--- console.cpp 27 Nov 2004 01:25:25 -0000 1.51
+++ console.cpp 12 Dec 2004 21:23:21 -0000 1.52
@@ -35,7 +35,7 @@
#define kConsoleLineHeight (g_consolefont.getFontHeight() + 2)
enum {
- kConsoleSlideDownDuration = 300 // Time in milliseconds
+ kConsoleSlideDownDuration = 200 // Time in milliseconds
};
@@ -65,7 +65,7 @@
_caretVisible = false;
_caretTime = 0;
- _slideUpAndClose = false;
+ _slideMode = kNoSlideMode;
_slideTime = 0;
// Add scrollbar
@@ -104,9 +104,9 @@
}
void ConsoleDialog::slideUpAndClose() {
- if (!_slideUpAndClose) {
+ if (_slideMode == kNoSlideMode) {
_slideTime = g_system->getMillis();
- _slideUpAndClose = true;
+ _slideMode = kUpSlideMode;
}
}
@@ -117,6 +117,7 @@
// certain period of time.
_y = -_h;
_slideTime = g_system->getMillis();
+ _slideMode = kDownSlideMode;
Dialog::open();
if (_promptStartPos == -1) {
@@ -166,20 +167,25 @@
}
// Perform the "slide animation".
- if (_slideUpAndClose) {
- _y = -(int)(_h * (float)(g_system->getMillis() - _slideTime) / kConsoleSlideDownDuration);
- if (_y <= -_h) {
- _slideUpAndClose = false;
+ if (_slideMode != kNoSlideMode) {
+ const float tmp = (float)(g_system->getMillis() - _slideTime) / kConsoleSlideDownDuration;
+ if (_slideMode == kUpSlideMode) {
+ _y = (int)(_h * (0.0 - tmp));
+ } else {
+ _y = (int)(_h * (tmp - 1.0));
+ }
+
+ if (_slideMode == kDownSlideMode && _y > 0) {
+ // End the slide
+ _slideMode = kNoSlideMode;
+ _y = 0;
+ draw();
+ } else if (_slideMode == kUpSlideMode && _y <= -_h) {
+ // End the slide
+ _slideMode = kNoSlideMode;
close();
} else
draw();
- } else
- if (_y < 0) {
- _y = -(int)(_h * (1.0 - (float)(g_system->getMillis() - _slideTime) / kConsoleSlideDownDuration));
- if (_y > 0)
- _y = 0;
-
- draw();
}
}
@@ -190,7 +196,7 @@
void ConsoleDialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) {
int i;
- if (_slideUpAndClose)
+ if (_slideMode != kNoSlideMode)
return;
switch (keycode) {
More information about the Scummvm-git-logs
mailing list