]> 4ch.mooo.com Git - 16.git/commitdiff
fixed downward scrolling and added upward scrolling
authorRobert Lowe <pngwen@acm.org>
Sat, 6 Sep 2014 23:28:54 +0000 (19:28 -0400)
committerRobert Lowe <pngwen@acm.org>
Sat, 6 Sep 2014 23:28:54 +0000 (19:28 -0400)
16/modex16/scroll.c
16/modex16/scroll.exe

index de8f8f278856e7e9f9f295f0ceee1fe3b5cbcb85..bd086732be0f1e59000e9b5c64b926552cf6e03c 100644 (file)
@@ -85,6 +85,12 @@ void main() {
         modexShowPage(mv.page);\r
     }\r
 \r
+    /* scroll all the way up */\r
+    for(; y>0; y--) {\r
+       mapScrollUp(&mv, 1);\r
+       modexShowPage(mv.page);\r
+    }\r
+\r
     /* spin for a time */\r
     for(x=0; x<500; x++) {\r
         modexWaitBorder();\r
@@ -194,6 +200,24 @@ mapScrollLeft(map_view_t *mv, byte offset) {
 \r
 void\r
 mapScrollUp(map_view_t *mv, byte offset) {\r
+    word x, y;  /* coordinate for drawing */\r
+\r
+    /* increment the pixel position and update the page */\r
+    mv->page->dy -= offset;\r
+\r
+    /* check to see if this changes the tile */\r
+    if(mv->page->dy == 0 ) {\r
+       /* go down one tile */\r
+       mv->ty--;\r
+       /* Snap the origin downward */\r
+       mv->page->data -= mv->page->width*4;\r
+       mv->page->dy = mv->map->tiles->tileHeight;\r
+\r
+\r
+       /* draw the next row */\r
+       y= 0;\r
+        mapDrawRow(mv, mv->tx-1 , mv->ty-1, y);\r
+    }\r
 }\r
 \r
 \r
@@ -209,7 +233,7 @@ mapScrollDown(map_view_t *mv, byte offset) {
        /* go down one tile */\r
        mv->ty++;\r
        /* Snap the origin downward */\r
-       mv->page->data += SCREEN_WIDTH*4;\r
+       mv->page->data += mv->page->width*4;\r
        mv->page->dy = mv->map->tiles->tileHeight;\r
 \r
 \r
index 0fe8502109bd104ba0eb29e16aa7b83b69dd2462..26addeed4f6b6b5ac271776b7ca7dbbe4c83509d 100755 (executable)
Binary files a/16/modex16/scroll.exe and b/16/modex16/scroll.exe differ