]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/scroll16.c
made major changes in code for the future of scroll ^^
[16.git] / src / lib / scroll16.c
index a4aaf647e3b9c0b7686a23fc1cc4951ebbc47eda..5e9a866d6027a47b8ed27a0bf71faac84faf02ec 100755 (executable)
@@ -41,7 +41,8 @@ void walk(map_view_t *pip, player_t *player, word pn)
                                        animatePlayer(pip, player, pn, 1);
                                        mapScrollRight(pip, player, 0, pn);
                                        mapScrollRight(pip, player, 1, pn);
-//                                     mapScrollRight(pip, player, 2, pn);
+                                       ScrollRight(pip, player, 2, pn);
+                                       ScrollRight(pip, player, 3, pn);
                                        if(!pageflipflop) modexShowPage(pip[1].page);
                                        player[pn].q++;
                                } else { player[pn].q = 1; player[pn].d = 2; player[pn].tx++; }
@@ -83,7 +84,8 @@ void walk(map_view_t *pip, player_t *player, word pn)
                                        animatePlayer(pip, player, pn, 1);
                                        mapScrollLeft(pip, player, 0, pn);
                                        mapScrollLeft(pip, player, 1, pn);
-//                                     mapScrollLeft(pip, player, 2, pn);
+                                       ScrollLeft(pip, player, 2, pn);
+                                       ScrollLeft(pip, player, 3, pn);
                                        if(!pageflipflop) modexShowPage(pip[1].page);
                                        player[pn].q++;
                                } else { player[pn].q = 1; player[pn].d = 2; player[pn].tx--; }
@@ -125,7 +127,8 @@ void walk(map_view_t *pip, player_t *player, word pn)
                                        animatePlayer(pip, player, pn, 1);
                                        mapScrollDown(pip, player, 0, pn);
                                        mapScrollDown(pip, player, 1, pn);
-//                                     mapScrollDown(pip, player, 2, pn);
+                                       ScrollDown(pip, player, 2, pn);
+                                       ScrollDown(pip, player, 3, pn);
                                        if(!pageflipflop) modexShowPage(pip[1].page);
                                        player[pn].q++;
                                } else { player[pn].q = 1; player[pn].d = 2; player[pn].ty++; }
@@ -167,7 +170,8 @@ void walk(map_view_t *pip, player_t *player, word pn)
                                        animatePlayer(pip, player, pn, 1);
                                        mapScrollUp(pip, player, 0, pn);
                                        mapScrollUp(pip, player, 1, pn);
-//                                     mapScrollUp(pip, player, 2, pn);
+                                       ScrollUp(pip, player, 2, pn);
+                                       ScrollUp(pip, player, 3, pn);
                                        if(!pageflipflop) modexShowPage(pip[1].page);
                                        player[pn].q++;
                                } else { player[pn].q = 1; player[pn].d = 2; player[pn].ty--; }
@@ -319,7 +323,7 @@ void near mapScrollLeft(map_view_t *mv, player_t *player, word id, word plid)
 {
        word x, y;  /* coordinate for drawing */
 
-       /* increment the pixel position and update the page */
+       /* decrement the pixel position and update the page */
        mv[id].page->dx -= player[plid].speed;
 
        /* check to see if this changes the tile */
@@ -348,7 +352,7 @@ void near mapScrollUp(map_view_t *mv, player_t *player, word id, word plid)
 {
        word x, y;  /* coordinate for drawing */
 
-       /* increment the pixel position and update the page */
+       /* decrement the pixel position and update the page */
        mv[id].page->dy -= player[plid].speed;
 
        /* check to see if this changes the tile */
@@ -398,6 +402,65 @@ void near mapScrollDown(map_view_t *mv, player_t *player, word id, word plid)
        //}
 }
 
+
+//TODO finish this wwww
+void near ScrollRight(map_view_t *mv, player_t *player, word id, word plid)
+{
+       /* increment the pixel position and update the page */
+       mv[0].video->page[id].dx += player[plid].speed;
+
+       /* check to see if this changes the tile */
+       if(mv[0].video->page[id].dx >= mv[id].dxThresh )
+       {
+               /* Snap the origin forward */
+               mv[0].video->page[id].data += 4;
+               mv[0].video->page[id].dx = mv[0].map->tiles->tileWidth;
+       }
+}
+
+
+void near ScrollLeft(map_view_t *mv, player_t *player, word id, word plid)
+{
+       /* decrement the pixel position and update the page */
+       mv[0].video->page[id].dx -= player[plid].speed;
+
+       /* check to see if this changes the tile */
+       if(mv[0].video->page[id].dx == 0)
+       {
+               /* Snap the origin backward */
+               mv[0].video->page[id].data -= 4;
+               mv[0].video->page[id].dx = mv[0].map->tiles->tileWidth;
+       }
+}
+
+void near ScrollUp(map_view_t *mv, player_t *player, word id, word plid)
+{
+       /* decrement the pixel position and update the page */
+       mv[0].video->page[id].dy -= player[plid].speed;
+
+       /* check to see if this changes the tile */
+       if(mv[0].video->page[id].dy == 0)
+       {
+               /* Snap the origin backward */
+               mv[0].video->page[id].data -= 4;
+               mv[0].video->page[id].dy = mv[0].map->tiles->tileWidth;
+       }
+}
+
+void near ScrollDown(map_view_t *mv, player_t *player, word id, word plid)
+{
+       /* increment the pixel position and update the page */
+       mv[0].video->page[id].dy += player[plid].speed;
+
+       /* check to see if this changes the tile */
+       if(mv[0].video->page[id].dy >= mv[id].dxThresh )
+       {
+               /* Snap the origin forward */
+               mv[0].video->page[id].data += 4;
+               mv[0].video->page[id].dy = mv[0].map->tiles->tileWidth;
+       }
+}
+
 sword chkmap(map_t *map, word q)
 {
 //     bitmap_t bp;
@@ -704,8 +767,11 @@ void near animatePlayer(map_view_t *pip, player_t *player, word pn, sword scroll
 #define FRAME2 modexClearRegion(pip[1].page, x, y, 24, 32, 1+dire);
 #define FRAME3 modexClearRegion(pip[1].page, x, y, 24, 32, dire);
 #define FRAME4 modexClearRegion(pip[1].page, x, y, 24, 32, 1+dire);
-#endif
-       modexCopyPageRegion(pip[1].page, pip[0].page, x-4, y-4, x-4, y-4, 28, 40);
+       #endif
+       if(pageflipflop)
+       modexCopyPageRegion(pip[pip->video->p].page,
+ pip[!(pip->video->p)].page, x-4, y-4, x-4, y-4, 28, 40);
+       else modexCopyPageRegion(pip[1].page, pip[0].page, x-4, y-4, x-4, y-4, 28, 40);
        //modexCopyPageRegion(pip[2].page, pip[1].page, 16, 16, 16, 16, (14*8)+4, 8+4);
        if(2>ls && ls>=1) { FRAME1 }else
        if(3>ls && ls>=2) { FRAME2 }else