]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/scroll16.c
0.exe is not working how i want
[16.git] / src / lib / scroll16.c
index 7f4ff16d57934b9325926c6f4d31bb4c244f8a41..f1ec4cfeebbc32e0b9cdf7f28e7f520bf760ba41 100755 (executable)
@@ -46,7 +46,7 @@ void walk(map_view_t *pip, player_t *player, word pn)
                                        animatePlayer(pip, player, pn, 1);\r
                                        ScrollRight(pip, player, 3, pn);\r
                                        ScrollRight(pip, player, 2, pn);\r
-                                       mapScrollRight(pip, player, !(pip[0].video->p), pn);\r
+                                       //mapScrollRight(pip, player, !(pip[0].video->p), pn);\r
                                        mapScrollRight(pip, player, (pip[0].video->p), pn);\r
                                        if(!pageflipflop) modexShowPage(pip[1].page);\r
                                        player[pn].q++;\r
@@ -90,7 +90,7 @@ void walk(map_view_t *pip, player_t *player, word pn)
                                        animatePlayer(pip, player, pn, 1);\r
                                        ScrollLeft(pip, player, 3, pn);\r
                                        ScrollLeft(pip, player, 2, pn);\r
-                                       mapScrollLeft(pip, player, !(pip[0].video->p), pn);\r
+                                       //mapScrollLeft(pip, player, !(pip[0].video->p), pn);\r
                                        mapScrollLeft(pip, player, (pip[0].video->p), pn);\r
                                        if(!pageflipflop) modexShowPage(pip[1].page);\r
                                        player[pn].q++;\r
@@ -134,7 +134,7 @@ void walk(map_view_t *pip, player_t *player, word pn)
                                        animatePlayer(pip, player, pn, 1);\r
                                        ScrollDown(pip, player, 3, pn);\r
                                        ScrollDown(pip, player, 2, pn);\r
-                                       mapScrollDown(pip, player, !(pip[0].video->p), pn);\r
+                                       //mapScrollDown(pip, player, !(pip[0].video->p), pn);\r
                                        mapScrollDown(pip, player, (pip[0].video->p), pn);\r
                                        if(!pageflipflop) modexShowPage(pip[1].page);\r
                                        player[pn].q++;\r
@@ -178,7 +178,7 @@ void walk(map_view_t *pip, player_t *player, word pn)
                                        animatePlayer(pip, player, pn, 1);\r
                                        ScrollUp(pip, player, 3, pn);\r
                                        ScrollUp(pip, player, 2, pn);\r
-                                       mapScrollUp(pip, player, !(pip[0].video->p), pn);\r
+                                       //mapScrollUp(pip, player, !(pip[0].video->p), pn);\r
                                        mapScrollUp(pip, player, (pip[0].video->p), pn);\r
                                        if(!pageflipflop) modexShowPage(pip[1].page);\r
                                        player[pn].q++;\r
@@ -273,87 +273,38 @@ void panPageManual(map_view_t *pip, player_t *player, word pn)
        //if (player[pn].d!=2) printf("player[%u].d=%u player[%u].q=%u\n", pn, player[pn].d, pn, player[pn].q);\r
 }\r
 \r
-//panning vmem\r
-void panVmemManual(map_view_t *pip, player_t *player, word pn)\r
-{\r
-       switch(player[pn].d)\r
-       {\r
-               //right movement\r
-               case 3:\r
-                       if(pip[pip[0].pan->pn].tx >= 0 && pip[pip[0].pan->pn].tx+pip[pip[0].pan->pn].page->tw < pip[pip[0].pan->pn].page->tilesw)\r
-                       {\r
-                               if(player[pn].q<=player[pn].spt)\r
-                               {\r
-                                       pip[pip[0].pan->pn].page[0].dx+=4;\r
-                                       modexShowPageVsync(pip[pip[0].pan->pn].page);\r
-                                       player[pn].q++;\r
-                               } else { player[pn].q = 1; player[pn].d = 2; pip[pip[0].pan->pn].tx++; }\r
-                       }\r
-               break;\r
-\r
-               //left movement\r
-               case 1:\r
-                       if(pip[pip[0].pan->pn].tx > 0 && pip[pip[0].pan->pn].tx+pip[pip[0].pan->pn].page->tw <= pip[pip[0].pan->pn].page->tilesw)\r
-                       {\r
-                               if(player[pn].q<=player[pn].spt)\r
-                               {\r
-                                       pip[pip[0].pan->pn].page[0].dx-=4;\r
-                                       modexShowPageVsync(pip[pip[0].pan->pn].page);\r
-                                       player[pn].q++;\r
-                               } else { player[pn].q = 1; player[pn].d = 2; pip[pip[0].pan->pn].tx--; }\r
-                       }\r
-               break;\r
-\r
-               //down movement\r
-               case 4:\r
-                       if(pip[pip[0].pan->pn].ty >= 0 && pip[pip[0].pan->pn].ty+pip[pip[0].pan->pn].page->th < pip[pip[0].pan->pn].page->tilesh)\r
-                       {\r
-                               if(player[pn].q<=player[pn].spt)\r
-                               {\r
-                                       pip[pip[0].pan->pn].page[0].dy+=4;\r
-                                       modexShowPageVsync(pip[pip[0].pan->pn].page);\r
-                                       player[pn].q++;\r
-                               } else { player[pn].q = 1; player[pn].d = 2; pip[pip[0].pan->pn].ty++; }\r
-                       }\r
-               break;\r
-\r
-               //up movement\r
-               case 0:\r
-                       if(pip[pip[0].pan->pn].ty > 0 && pip[pip[0].pan->pn].ty+pip[pip[0].pan->pn].page->th <= pip[pip[0].pan->pn].page->tilesh)\r
-                       {\r
-                               if(player[pn].q<=player[pn].spt)\r
-                               {\r
-                                       pip[pip[0].pan->pn].page[0].dy-=4;\r
-                                       modexShowPageVsync(pip[pip[0].pan->pn].page);\r
-                                       player[pn].q++;\r
-                               } else { player[pn].q = 1; player[pn].d = 2; pip[pip[0].pan->pn].ty--; }\r
-                       }\r
-                       break;\r
-       }\r
-       //if (player[pn].d!=2) printf("player[%u].d=%u player[%u].q=%u\n", pn, player[pn].d, pn, player[pn].q);\r
-}\r
-\r
 /*\r
  * modex mv setup\r
 */\r
-void modexMVSetup(map_view_t *mv, map_t *map, pan_t *pan, global_game_variables_t *gv)\r
+void modexMVSetup(map_view_t *pip, map_t *map, pan_t *pan, global_game_variables_t *gv)\r
 {\r
-       byte i;\r
+       nibble i;\r
        // 1st page\r
-       mv[0].page = &gv->video.page[0];\r
-       mv[0].map = map;\r
-       mv[0].video = &gv->video;\r
-       mv[0].pan       = pan;\r
+       pip[0].page = &gv->video.page[0];\r
+       pip[0].map = map;\r
+       pip[0].video = &gv->video;\r
+       pip[0].pan      = pan;\r
+       modexMVInit(pip, 1, 1);\r
 \r
        for(i=1;i<gv->video.num_of_pages;i++)\r
        {\r
-               mv[i].page      =       &gv->video.page[i];\r
-               mv[i].map       =       mv[0].map;\r
-               mv[i].video     =       mv[0].video;\r
-               mv[i].pan       =       mv[0].pan;\r
+               pip[i].page     =       &gv->video.page[i];\r
+               pip[i].map      =       pip[0].map;\r
+               pip[i].video    =       pip[0].video;\r
+               pip[i].pan      =       pip[0].pan;\r
+               //pip[i].tx     =       1;\r
+               //pip[i].ty     =       1;\r
        }\r
 }\r
 \r
+void modexMVInit(map_view_t *mv, int tx, int ty)\r
+{\r
+       //mv[0].tx = tx;\r
+       //mv[0].ty = ty;\r
+       mv[0].tx = mv[1].tx = tx;\r
+       mv[0].ty = mv[1].ty = ty;\r
+}\r
+\r
 /*map_t\r
 allocMap(int w, int h) {\r
        map_t result;\r
@@ -564,71 +515,81 @@ void near mapScrollDown(map_view_t *mv, player_t *player, word id, word plid)
 void near ScrollRight(map_view_t *mv, player_t *player, word id, word plid)\r
 {\r
        /* increment the pixel position and update the page */\r
-       mv[id].page[0].dx += player[plid].speed;\r
+       mv[id].page->dx += player[plid].speed;\r
 \r
        /* check to see if this changes the tile */\r
-       if(mv[id].page[0].dx >= mv[0].dxThresh )\r
+       if(mv[id].page->dx >= mv[0].dxThresh )\r
        {\r
 //             vga_setup_wm1_block_copy();\r
 //             _fmemmove(mv[id].page->data+4, mv[id].page->data, mv[id].page->pagesize);\r
 //             vga_restore_rm0wm0();\r
                /* Snap the origin forward */\r
                mv[id].page->data += 4;\r
-               mv[id].page[0].dx = mv[0].map->tiles->tileWidth;\r
+               mv[id].page->dx = mv[0].map->tiles->tileWidth;\r
        }\r
 }\r
 \r
 void near ScrollLeft(map_view_t *mv, player_t *player, word id, word plid)\r
 {\r
        /* decrement the pixel position and update the page */\r
-       mv[id].page[0].dx -= player[plid].speed;\r
+       mv[id].page->dx -= player[plid].speed;\r
 \r
        /* check to see if this changes the tile */\r
-       if(mv[id].page[0].dx == 0)\r
+       if(mv[id].page->dx == 0)\r
        {\r
 //             vga_setup_wm1_block_copy();\r
 //             _fmemmove(mv[id].page->data-4, mv[id].page->data, mv[id].page->pagesize);\r
 //             vga_restore_rm0wm0();\r
                /* Snap the origin backward */\r
                mv[id].page->data -= 4;\r
-               mv[id].page[0].dx = mv[0].map->tiles->tileWidth;\r
+               mv[id].page->dx = mv[0].map->tiles->tileWidth;\r
        }\r
 }\r
 \r
 void near ScrollUp(map_view_t *mv, player_t *player, word id, word plid)\r
 {\r
        /* decrement the pixel position and update the page */\r
-       mv[id].page[0].dy -= player[plid].speed;\r
+       mv[id].page->dy -= player[plid].speed;\r
 \r
        /* check to see if this changes the tile */\r
-       if(mv[id].page[0].dy == 0)\r
+       if(mv[id].page->dy == 0)\r
        {\r
 //             vga_setup_wm1_block_copy();\r
 //             _fmemmove(mv[id].page->data-mv[id].page->pi, mv[id].page->data, mv[id].page->pagesize);\r
 //             vga_restore_rm0wm0();\r
                /* Snap the origin backward */\r
                mv[id].page->data -= mv[id].page->pi;\r
-               mv[id].page[0].dy = mv[0].map->tiles->tileWidth;\r
+               mv[id].page->dy = mv[0].map->tiles->tileWidth;\r
        }\r
 }\r
 \r
 void near ScrollDown(map_view_t *mv, player_t *player, word id, word plid)\r
 {\r
        /* increment the pixel position and update the page */\r
-       mv[id].page[0].dy += player[plid].speed;\r
+       mv[id].page->dy += player[plid].speed;\r
 \r
        /* check to see if this changes the tile */\r
-       if(mv[id].page[0].dy >= mv[0].dxThresh )\r
+       if(mv[id].page->dy >= mv[0].dxThresh )\r
        {\r
 //             vga_setup_wm1_block_copy();\r
 //             _fmemmove(mv[id].page->data+mv[id].page->pi, mv[id].page->data, mv[id].page->pagesize);\r
 //             vga_restore_rm0wm0();\r
                /* Snap the origin forward */\r
                mv[id].page->data += mv[id].page->pi;\r
-               mv[id].page[0].dy = mv[0].map->tiles->tileWidth;\r
+               mv[id].page->dy = mv[0].map->tiles->tileWidth;\r
        }\r
 }\r
 \r
+//===========================================================================\r
+//TODO: put player in starting position of assigned spot on map\r
+//default player position on the viewable map\r
+void playerXYpos(int x, int y, player_t *player, map_view_t *pip, nibble pn)\r
+{\r
+       player[pn].tx = x + pip[0].tx + pip[0].page->tilemidposscreenx;\r
+       player[pn].ty = y + pip[0].ty + pip[0].page->tilemidposscreeny;\r
+}\r
+//===========================================================================\r
+\r
 sword chkmap(map_t *map, word q)\r
 {\r
 //     bitmap_t bp;\r
@@ -713,8 +674,8 @@ void mapinitmapview(map_view_t *mv, int tx, int ty)
        /* set up the coordinates */\r
        mv[0].tx = mv[1].tx = tx;\r
        mv[0].ty = mv[1].ty = ty;\r
-       mv[0].page[0].dx = mv[1].page[0].dx = mv[2].page[0].dx = mv[3].page[0].dx = mv->map->tiles->tileWidth;\r
-       mv[0].page[0].dy = mv[1].page[0].dy = mv[2].page[0].dy = mv[3].page[0].dy = mv->map->tiles->tileHeight;\r
+       mv[0].page->dx = mv[1].page->dx = mv[2].page->dx = mv[3].page->dx = mv->map->tiles->tileWidth;\r
+       mv[0].page->dy = mv[1].page->dy = mv[2].page->dy = mv[3].page->dy = mv->map->tiles->tileHeight;\r
 \r
        /* set up the thresholds */\r
        mv[0].dxThresh = mv[1].dxThresh = mv[2].dxThresh = mv[3].dxThresh = mv->map->tiles->tileWidth * 2;\r