X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fscroll16.c;h=fdabf00e3f825921108d07231d28a929f8731119;hb=010f49be572b6a7205d49fbcac30bc7c11e8fd74;hp=3d5e674bc7730f6be7f38b8cdc9a8138a3dd726e;hpb=9713a8208566126353061db56faeffeb6014c4bf;p=16.git diff --git a/src/lib/scroll16.c b/src/lib/scroll16.c index 3d5e674b..fdabf00e 100755 --- a/src/lib/scroll16.c +++ b/src/lib/scroll16.c @@ -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);