- fixed small scrolling bug
authorRyan Flegel <rflegel@gmail.com>
Tue, 4 May 2004 23:39:40 +0000 (23:39 +0000)
committerRyan Flegel <rflegel@gmail.com>
Tue, 4 May 2004 23:39:40 +0000 (23:39 +0000)
- added screwed up backscroll to TODO

SVN-Revision: 987

TODO
src/world.cpp

diff --git a/TODO b/TODO
index 3a7e622..67212cf 100644 (file)
--- a/TODO
+++ b/TODO
@@ -11,14 +11,13 @@ Todo
 H: high priority
 L: low priority
 
-[H] Scrolling is broken, if you fastly reverse around the middle of the screen
-    the scrolling has sudden hickups. Also the scrollstart position still isn't
-    the same as before the changes.
+[H] The scrollstart position still isn't the same as before the changes.
 [H] Frame ratio code has been changed and so the animation may need tuning.
     Somebody do some testing and change the definitions regarding this.
 [M] When aborting a level, lives and score should remain the same as they
     were before. Solution: make more dependency between the game engine and worldmap
     or just backup those variables before starting a level.
+[L] Backscroll is really messed up right now :)
 [L] change lispreader to throw exceptions instead of simply assert() on
     syntax error
 [L] tux sometimes makes short jumps in the endsequence, mostly when
index 68bc925..83fd424 100644 (file)
@@ -326,9 +326,9 @@ void World::scrolling(double frame_ratio)
   if(scrolling_timer.check())
     {
     float final_scroll_x;
-    if (tux.dir == RIGHT)
+    if (tux.physic.get_velocity_x() > 0)
       final_scroll_x = tux_pos_x - (screen->w - X_SPACE);
-    else// if (tux.dir == LEFT)// && )
+    else if (tux.physic.get_velocity_x() < 0)
       final_scroll_x = tux_pos_x - X_SPACE;
 
     scroll_x += ((final_scroll_x - scroll_x) / (CHANGE_DIR_SCROLL_SPEED)) * frame_ratio;
@@ -336,9 +336,9 @@ void World::scrolling(double frame_ratio)
 
   else
     {
-    if (tux.dir == RIGHT && scroll_x < tux_pos_x - (screen->w - X_SPACE))
+    if (tux.physic.get_velocity_x() > 0 && scroll_x < tux_pos_x - (screen->w - X_SPACE))
       scroll_x = tux_pos_x - (screen->w - X_SPACE);
-    else if (tux.dir == LEFT && scroll_x > tux_pos_x - X_SPACE && (level->back_scrolling || debug_mode))
+    else if (tux.physic.get_velocity_x() < 0 && scroll_x > tux_pos_x - X_SPACE && (level->back_scrolling || debug_mode))
       scroll_x = tux_pos_x - X_SPACE;
     }