]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/scroll16.c
====i made a quick and dirty fix to the video issue wwww====
[16.git] / src / lib / scroll16.c
index 3d5e674bc7730f6be7f38b8cdc9a8138a3dd726e..fdabf00e3f825921108d07231d28a929f8731119 100755 (executable)
@@ -30,6 +30,10 @@ void walk(map_view_t *pip, player_t *player, word pn)
        //printf("player[%d].d=%d\n", pn, player[pn].d);
        switch(player[pn].d)
        {
+               //no direction
+               case 2:
+                       pip[0].video->startclk = (*clockw);
+               break;
                //right movement
                case 3:
                        //printf("pip[0].page->tilesw=%d        ", pip[0].page->tilesw); printf("pip[0].page->tw=%d\n", pip[0].page->tw);
@@ -42,11 +46,12 @@ void walk(map_view_t *pip, player_t *player, word pn)
                                        animatePlayer(pip, player, pn, 1);
                                        if(!pageflipflop) mapScrollRight(pip, player, !(pip[0].video->p), pn); else{
                                        mapScrollRight(pip, player, 0, pn);
-                                       mapScrollRight(pip, player, 1, pn);
+                                       //mapScrollRight(pip, player, 1, pn);
                                        ScrollRight(pip, player, 2, pn);
                                        ScrollRight(pip, player, 3, pn); }
                                        if(!pageflipflop) modexShowPage(pip[1].page);
                                        player[pn].q++;
+                                       pip[0].video->clk = ((*clockw)-pip[0].video->startclk)/18.2;
                                } else { player[pn].q = 1; player[pn].d = 2; player[pn].tx++; }
                        }
                        else if(player[pn].tx < pip[0].map->width && !(pip[0].map->data[(player[pn].tx)+(pip[0].map->width*(player[pn].ty-1))] == 0))//!(player[pn].tx+1 == TRIGGX && player[pn].ty == TRIGGY))
@@ -91,6 +96,7 @@ void walk(map_view_t *pip, player_t *player, word pn)
                                        ScrollLeft(pip, player, 3, pn); }
                                        if(!pageflipflop) modexShowPage(pip[1].page);
                                        player[pn].q++;
+                                       pip[0].video->clk = ((*clockw)-pip[0].video->startclk)/18.2;
                                } else { player[pn].q = 1; player[pn].d = 2; player[pn].tx--; }
                        }
                        else if(player[pn].tx > 1 && !(pip[0].map->data[(player[pn].tx-2)+(pip[0].map->width*(player[pn].ty-1))] == 0))//!(player[pn].tx-1 == TRIGGX && player[pn].ty == TRIGGY))
@@ -135,6 +141,7 @@ void walk(map_view_t *pip, player_t *player, word pn)
                                        ScrollDown(pip, player, 3, pn); }
                                        if(!pageflipflop) modexShowPage(pip[1].page);
                                        player[pn].q++;
+                                       pip[0].video->clk = ((*clockw)-pip[0].video->startclk)/18.2;
                                } else { player[pn].q = 1; player[pn].d = 2; player[pn].ty++; }
                        }
                        else if(player[pn].ty < pip[0].map->height && !(pip[0].map->data[(player[pn].tx-1)+(pip[0].map->width*(player[pn].ty))] == 0))//!(player[pn].tx == TRIGGX && player[pn].ty+1 == TRIGGY))
@@ -179,6 +186,7 @@ void walk(map_view_t *pip, player_t *player, word pn)
                                        ScrollUp(pip, player, 3, pn); }
                                        if(!pageflipflop) modexShowPage(pip[1].page);
                                        player[pn].q++;
+                                       pip[0].video->clk = ((*clockw)-pip[0].video->startclk)/18.2;
                                } else { player[pn].q = 1; player[pn].d = 2; player[pn].ty--; }
                        }
                        else if(player[pn].ty > 1 && !(pip[0].map->data[(player[pn].tx-1)+(pip[0].map->width*(player[pn].ty-2))] == 0))//!(player[pn].tx == TRIGGX &&  player[pn].ty-1 == TRIGGY))
@@ -775,15 +783,19 @@ void shinku(global_game_variables_t *gv)
                break;
                case 1:
                        //turn this off if XT
-                       modexWaitBorder();
-                       //vga_wait_for_vsync();
+                       //modexWaitBorder();
+                       vga_wait_for_vsync();
                        gv->kurokku.frames_per_second=60;
                break;
        }
        if(pageflipflop){
+       if(gv->video.r){
                modexCopyPageRegion(&(gv->video.page[(gv->video.p)]), &(gv->video.page[(!gv->video.p)]), 0, 0, 0, 0, gv->video.page[gv->video.p].width, gv->video.page[!gv->video.p].height);
                modexShowPage(&(gv->video.page[gv->video.p])); //this is slow as fack too!!
                gv->video.p=!gv->video.p;
+               gv->video.r=!gv->video.r;
+               gv->video.tickclk = ((*clockw)-gv->video.startclk)/18.2;
+       }
        }
 }
 
@@ -845,14 +857,16 @@ void near animatePlayer(map_view_t *pip, player_t *player, word pn, sword scroll
 #define FRAME4 modexClearRegion(pip[!(pip->video->p)].page, x, y, 24, 32, 1+dire);
        #endif
 //     if(pageflipflop)
+//modexCopyPageRegion(page_t *dest, page_t *src, word sx, word sy, word dx, word dy, word width, word height);
        modexCopyPageRegion(pip[pip->video->p].page,
- pip[!(pip->video->p)].page, x-4, y-4, x-4, y-4, 28, 40);
+ pip[!(pip->video->p)].page, x-4, y-4, x-4, y-4, 28, 36);
 //     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
        if(4>ls && ls>=3) { FRAME3 }else
        if(5>ls && ls>=4) { FRAME4 }
+       pip->video->r=1;
        //TODO: mask copy //modexCopyPageRegion(dest->page, src->page, x-4, y-4, x-4, y-4, 28, 40);
        //modexClearRegion(top->page, 66, 66, 2, 40, 0);
        //modexCopyPageRegion(dest->page, top->page, 66, 66, 66, 66, 2, 40);