X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fscroll16.c;h=607a258463062012781b89e37098663712b3dcd4;hb=a565be31ce92d6168ae6983042da75b0b683e52b;hp=496f485483b65608c472b53ff1017572f959a201;hpb=7f4f3ae5a035162409c6860fb862854ba52fb0d2;p=16.git diff --git a/src/lib/scroll16.c b/src/lib/scroll16.c index 496f4854..607a2584 100755 --- a/src/lib/scroll16.c +++ b/src/lib/scroll16.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2017 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover + * Copyright (C) 2012-2019 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * @@ -125,190 +125,191 @@ boolean ZCL_ScreenMidPosChk(map_view_t *map_v, nibble dir, int tx, int ty) return false; } -//#define INC_PER_FRAME if(player[pn].enti.q&1) player[pn].enti.persist_aniframe++; if(player[pn].enti.persist_aniframe>4) player[pn].enti.persist_aniframe = 1; +//#define INC_PER_FRAME if(gvar->player[pn].enti.q&1) gvar->player[pn].enti.persist_aniframe++; if(gvar->player[pn].enti.persist_aniframe>4) gvar->player[pn].enti.persist_aniframe = 1; #ifdef OLDWALKSHOWPAGESTUFF -#define SHOWMVFUN__ ZC_ShowMV(pip, 1, 0); +#define SHOWMVFUN__ VL_ShowPage(&gvar->video.page[0], 1, 0);//modexShowPage(&gvar->video.page); +//ZC_ShowMV(gvar->mv, 1, 0); #endif -void ZC_walk(map_view_t *pip, player_t *player, word pn) +void ZC_walk(global_game_variables_t *gvar, word pn) { - switch(player[pn].enti.d) + switch(gvar->player[pn].enti.d) { //no direction case 2: - //0000pip[0].video->startclk = (*clockw); + //0000gvar->mv[0].video->startclk = (*clockw); break; //right movement case 3: - if(ZCL_ScreenMidPosChk(pip, player[pn].enti.d, player[pn].enti.tx, player[pn].enti.ty) && - ZCL_CollCheck(pip, player[pn].enti.d, player[pn].enti.tx, player[pn].enti.ty))//!(player[pn].enti.tx+1 == TRIGGX && player[pn].enti.ty == TRIGGY)) //collision detection! + if(ZCL_ScreenMidPosChk(gvar->mv, gvar->player[pn].enti.d, gvar->player[pn].enti.tx, gvar->player[pn].enti.ty) && + ZCL_CollCheck(gvar->mv, gvar->player[pn].enti.d, gvar->player[pn].enti.tx, gvar->player[pn].enti.ty))//!(gvar->player[pn].enti.tx+1 == TRIGGX && gvar->player[pn].enti.ty == TRIGGY)) //collision detection! { - player[pn].walktype=2; - if(player[pn].enti.q<=player[pn].enti.spt) + gvar->player[pn].walktype=2; + if(gvar->player[pn].enti.q<=gvar->player[pn].enti.spt) { - ZC_animatePlayer(pip, player, pn); - ZC_mapScroll(pip, player, pn); - player[pn].enti.q++; - //0000pip[0].video->clk = ((*clockw)-pip[0].video->startclk)/18.2; + ZC_animatePlayer(gvar->mv, gvar->player, pn); + ZC_mapScroll(gvar->mv, gvar->player, pn); + gvar->player[pn].enti.q++; + //0000gvar->mv[0].video->clk = ((*clockw)-gvar->mv[0].video->startclk)/18.2; #ifdef OLDWALKSHOWPAGESTUFF SHOWMVFUN__ #endif - } else { player[pn].enti.q = 1; player[pn].enti.d = 2; player[pn].enti.tx++; } + } else { gvar->player[pn].enti.q = 1; gvar->player[pn].enti.d = 2; gvar->player[pn].enti.tx++; } } - else if(ZCL_mapEdgeChk(pip, player[pn].enti.d, player[pn].enti.tx, player[pn].enti.ty, 0, 1) && - ZCL_CollCheck(pip, player[pn].enti.d, player[pn].enti.tx, player[pn].enti.ty))//!(player[pn].enti.tx+1 == TRIGGX && player[pn].enti.ty == TRIGGY)) + else if(ZCL_mapEdgeChk(gvar->mv, gvar->player[pn].enti.d, gvar->player[pn].enti.tx, gvar->player[pn].enti.ty, 0, 1) && + ZCL_CollCheck(gvar->mv, gvar->player[pn].enti.d, gvar->player[pn].enti.tx, gvar->player[pn].enti.ty))//!(gvar->player[pn].enti.tx+1 == TRIGGX && gvar->player[pn].enti.ty == TRIGGY)) { - player[pn].walktype=1; - if(player[pn].enti.q<=player[pn].enti.spt) + gvar->player[pn].walktype=1; + if(gvar->player[pn].enti.q<=gvar->player[pn].enti.spt) { - player[pn].enti.x+=(player[pn].enti.speed); - ZC_animatePlayer(pip, player, pn); - player[pn].enti.q++; + gvar->player[pn].enti.x+=(gvar->player[pn].enti.spt); + ZC_animatePlayer(gvar->mv, gvar->player, pn); + gvar->player[pn].enti.q++; #ifdef OLDWALKSHOWPAGESTUFF SHOWMVFUN__ #endif - } else { player[pn].enti.q = 1; player[pn].enti.d = 2; player[pn].enti.tx++; } + } else { gvar->player[pn].enti.q = 1; gvar->player[pn].enti.d = 2; gvar->player[pn].enti.tx++; } } else { - player[pn].walktype=0; - ZC_animatePlayer(pip, player, pn); - player[pn].enti.d = 2; + gvar->player[pn].walktype=0; + ZC_animatePlayer(gvar->mv, gvar->player, pn); + gvar->player[pn].enti.d = 2; #ifdef OLDWALKSHOWPAGESTUFF SHOWMVFUN__ #endif } - player[pn].enti.triggerx = player[pn].enti.tx+1; - player[pn].enti.triggery = player[pn].enti.ty; + gvar->player[pn].enti.triggerx = gvar->player[pn].enti.tx+1; + gvar->player[pn].enti.triggery = gvar->player[pn].enti.ty; break; //left movement case 1: - if(ZCL_ScreenMidPosChk(pip, player[pn].enti.d, player[pn].enti.tx, player[pn].enti.ty) && - ZCL_CollCheck(pip, player[pn].enti.d, player[pn].enti.tx, player[pn].enti.ty))//!(player[pn].enti.tx-1 == TRIGGX && player[pn].enti.ty == TRIGGY)) //collision detection! + if(ZCL_ScreenMidPosChk(gvar->mv, gvar->player[pn].enti.d, gvar->player[pn].enti.tx, gvar->player[pn].enti.ty) && + ZCL_CollCheck(gvar->mv, gvar->player[pn].enti.d, gvar->player[pn].enti.tx, gvar->player[pn].enti.ty))//!(gvar->player[pn].enti.tx-1 == TRIGGX && gvar->player[pn].enti.ty == TRIGGY)) //collision detection! { - player[pn].walktype=2; - if(player[pn].enti.q<=player[pn].enti.spt) + gvar->player[pn].walktype=2; + if(gvar->player[pn].enti.q<=gvar->player[pn].enti.spt) { - ZC_animatePlayer(pip, player, pn); - ZC_mapScroll(pip, player, pn); - player[pn].enti.q++; - //0000pip[0].video->clk = ((*clockw)-pip[0].video->startclk)/18.2; + ZC_animatePlayer(gvar->mv, gvar->player, pn); + ZC_mapScroll(gvar->mv, gvar->player, pn); + gvar->player[pn].enti.q++; + //0000gvar->mv[0].video->clk = ((*clockw)-gvar->mv[0].video->startclk)/18.2; #ifdef OLDWALKSHOWPAGESTUFF SHOWMVFUN__ #endif - } else { player[pn].enti.q = 1; player[pn].enti.d = 2; player[pn].enti.tx--; } + } else { gvar->player[pn].enti.q = 1; gvar->player[pn].enti.d = 2; gvar->player[pn].enti.tx--; } } - else if(ZCL_mapEdgeChk(pip, player[pn].enti.d, player[pn].enti.tx, player[pn].enti.ty, 0, 1) && - ZCL_CollCheck(pip, player[pn].enti.d, player[pn].enti.tx, player[pn].enti.ty))//!(player[pn].enti.tx-1 == TRIGGX && player[pn].enti.ty == TRIGGY)) + else if(ZCL_mapEdgeChk(gvar->mv, gvar->player[pn].enti.d, gvar->player[pn].enti.tx, gvar->player[pn].enti.ty, 0, 1) && + ZCL_CollCheck(gvar->mv, gvar->player[pn].enti.d, gvar->player[pn].enti.tx, gvar->player[pn].enti.ty))//!(gvar->player[pn].enti.tx-1 == TRIGGX && gvar->player[pn].enti.ty == TRIGGY)) { - player[pn].walktype=1; - if(player[pn].enti.q<=player[pn].enti.spt) + gvar->player[pn].walktype=1; + if(gvar->player[pn].enti.q<=gvar->player[pn].enti.spt) { - player[pn].enti.x-=(player[pn].enti.speed); - ZC_animatePlayer(pip, player, pn); - player[pn].enti.q++; + gvar->player[pn].enti.x-=(gvar->player[pn].enti.spt); + ZC_animatePlayer(gvar->mv, gvar->player, pn); + gvar->player[pn].enti.q++; #ifdef OLDWALKSHOWPAGESTUFF SHOWMVFUN__ #endif - } else { player[pn].enti.q = 1; player[pn].enti.d = 2; player[pn].enti.tx--; } + } else { gvar->player[pn].enti.q = 1; gvar->player[pn].enti.d = 2; gvar->player[pn].enti.tx--; } } else { - player[pn].walktype=0; - ZC_animatePlayer(pip, player, pn); - player[pn].enti.d = 2; + gvar->player[pn].walktype=0; + ZC_animatePlayer(gvar->mv, gvar->player, pn); + gvar->player[pn].enti.d = 2; #ifdef OLDWALKSHOWPAGESTUFF SHOWMVFUN__ #endif } - player[pn].enti.triggerx = player[pn].enti.tx-1; - player[pn].enti.triggery = player[pn].enti.ty; + gvar->player[pn].enti.triggerx = gvar->player[pn].enti.tx-1; + gvar->player[pn].enti.triggery = gvar->player[pn].enti.ty; break; //down movement case 4: - if(ZCL_ScreenMidPosChk(pip, player[pn].enti.d, player[pn].enti.tx, player[pn].enti.ty) && - ZCL_CollCheck(pip, player[pn].enti.d, player[pn].enti.tx, player[pn].enti.ty))//!(player[pn].enti.tx == TRIGGX && player[pn].enti.ty+1 == TRIGGY)) //collision detection! + if(ZCL_ScreenMidPosChk(gvar->mv, gvar->player[pn].enti.d, gvar->player[pn].enti.tx, gvar->player[pn].enti.ty) && + ZCL_CollCheck(gvar->mv, gvar->player[pn].enti.d, gvar->player[pn].enti.tx, gvar->player[pn].enti.ty))//!(gvar->player[pn].enti.tx == TRIGGX && gvar->player[pn].enti.ty+1 == TRIGGY)) //collision detection! { - player[pn].walktype=2; - if(player[pn].enti.q<=player[pn].enti.spt) + gvar->player[pn].walktype=2; + if(gvar->player[pn].enti.q<=gvar->player[pn].enti.spt) { - ZC_animatePlayer(pip, player, pn); - ZC_mapScroll(pip, player, pn); - player[pn].enti.q++; - //0000pip[0].video->clk = ((*clockw)-pip[0].video->startclk)/18.2; + ZC_animatePlayer(gvar->mv, gvar->player, pn); + ZC_mapScroll(gvar->mv, gvar->player, pn); + gvar->player[pn].enti.q++; + //0000gvar->mv[0].video->clk = ((*clockw)-gvar->mv[0].video->startclk)/18.2; #ifdef OLDWALKSHOWPAGESTUFF SHOWMVFUN__ #endif - } else { player[pn].enti.q = 1; player[pn].enti.d = 2; player[pn].enti.ty++; } + } else { gvar->player[pn].enti.q = 1; gvar->player[pn].enti.d = 2; gvar->player[pn].enti.ty++; } } - else if(ZCL_mapEdgeChk(pip, player[pn].enti.d, player[pn].enti.tx, player[pn].enti.ty, 0, 1) && - ZCL_CollCheck(pip, player[pn].enti.d, player[pn].enti.tx, player[pn].enti.ty))//!(player[pn].enti.tx == TRIGGX && player[pn].enti.ty+1 == TRIGGY)) + else if(ZCL_mapEdgeChk(gvar->mv, gvar->player[pn].enti.d, gvar->player[pn].enti.tx, gvar->player[pn].enti.ty, 0, 1) && + ZCL_CollCheck(gvar->mv, gvar->player[pn].enti.d, gvar->player[pn].enti.tx, gvar->player[pn].enti.ty))//!(gvar->player[pn].enti.tx == TRIGGX && gvar->player[pn].enti.ty+1 == TRIGGY)) { - player[pn].walktype=1; - if(player[pn].enti.q<=player[pn].enti.spt) + gvar->player[pn].walktype=1; + if(gvar->player[pn].enti.q<=gvar->player[pn].enti.spt) { - player[pn].enti.y+=(player[pn].enti.speed); - ZC_animatePlayer(pip, player, pn); - player[pn].enti.q++; + gvar->player[pn].enti.y+=(gvar->player[pn].enti.spt); + ZC_animatePlayer(gvar->mv, gvar->player, pn); + gvar->player[pn].enti.q++; #ifdef OLDWALKSHOWPAGESTUFF SHOWMVFUN__ #endif - } else { player[pn].enti.q = 1; player[pn].enti.d = 2; player[pn].enti.ty++; } + } else { gvar->player[pn].enti.q = 1; gvar->player[pn].enti.d = 2; gvar->player[pn].enti.ty++; } } else { - player[pn].walktype=0; - ZC_animatePlayer(pip, player, pn); - player[pn].enti.d = 2; + gvar->player[pn].walktype=0; + ZC_animatePlayer(gvar->mv, gvar->player, pn); + gvar->player[pn].enti.d = 2; #ifdef OLDWALKSHOWPAGESTUFF SHOWMVFUN__ #endif } - player[pn].enti.triggerx = player[pn].enti.tx; - player[pn].enti.triggery = player[pn].enti.ty+1; + gvar->player[pn].enti.triggerx = gvar->player[pn].enti.tx; + gvar->player[pn].enti.triggery = gvar->player[pn].enti.ty+1; break; //up movement case 0: - if(ZCL_ScreenMidPosChk(pip, player[pn].enti.d, player[pn].enti.tx, player[pn].enti.ty) && - ZCL_CollCheck(pip, player[pn].enti.d, player[pn].enti.tx, player[pn].enti.ty))//!(player[pn].enti.tx == TRIGGX && player[pn].enti.ty-1 == TRIGGY)) //collision detection! + if(ZCL_ScreenMidPosChk(gvar->mv, gvar->player[pn].enti.d, gvar->player[pn].enti.tx, gvar->player[pn].enti.ty) && + ZCL_CollCheck(gvar->mv, gvar->player[pn].enti.d, gvar->player[pn].enti.tx, gvar->player[pn].enti.ty))//!(gvar->player[pn].enti.tx == TRIGGX && gvar->player[pn].enti.ty-1 == TRIGGY)) //collision detection! { - player[pn].walktype=2; - if(player[pn].enti.q<=player[pn].enti.spt) + gvar->player[pn].walktype=2; + if(gvar->player[pn].enti.q<=gvar->player[pn].enti.spt) { - ZC_animatePlayer(pip, player, pn); - ZC_mapScroll(pip, player, pn); - player[pn].enti.q++; - //0000pip[0].video->clk = ((*clockw)-pip[0].video->startclk)/18.2; + ZC_animatePlayer(gvar->mv, gvar->player, pn); + ZC_mapScroll(gvar->mv, gvar->player, pn); + gvar->player[pn].enti.q++; + //0000gvar->mv[0].video->clk = ((*clockw)-gvar->mv[0].video->startclk)/18.2; #ifdef OLDWALKSHOWPAGESTUFF SHOWMVFUN__ #endif - } else { player[pn].enti.q = 1; player[pn].enti.d = 2; player[pn].enti.ty--; } + } else { gvar->player[pn].enti.q = 1; gvar->player[pn].enti.d = 2; gvar->player[pn].enti.ty--; } } - else if(ZCL_mapEdgeChk(pip, player[pn].enti.d, player[pn].enti.tx, player[pn].enti.ty, 0, 1) && - ZCL_CollCheck(pip, player[pn].enti.d, player[pn].enti.tx, player[pn].enti.ty))//!(player[pn].enti.tx == TRIGGX && player[pn].enti.ty-1 == TRIGGY)) + else if(ZCL_mapEdgeChk(gvar->mv, gvar->player[pn].enti.d, gvar->player[pn].enti.tx, gvar->player[pn].enti.ty, 0, 1) && + ZCL_CollCheck(gvar->mv, gvar->player[pn].enti.d, gvar->player[pn].enti.tx, gvar->player[pn].enti.ty))//!(gvar->player[pn].enti.tx == TRIGGX && gvar->player[pn].enti.ty-1 == TRIGGY)) { - player[pn].walktype=1; - if(player[pn].enti.q<=player[pn].enti.spt) + gvar->player[pn].walktype=1; + if(gvar->player[pn].enti.q<=gvar->player[pn].enti.spt) { - player[pn].enti.y-=(player[pn].enti.speed); - ZC_animatePlayer(pip, player, pn); - player[pn].enti.q++; + gvar->player[pn].enti.y-=(gvar->player[pn].enti.spt); + ZC_animatePlayer(gvar->mv, gvar->player, pn); + gvar->player[pn].enti.q++; #ifdef OLDWALKSHOWPAGESTUFF SHOWMVFUN__ #endif - } else { player[pn].enti.q = 1; player[pn].enti.d = 2; player[pn].enti.ty--; } + } else { gvar->player[pn].enti.q = 1; gvar->player[pn].enti.d = 2; gvar->player[pn].enti.ty--; } } else { - player[pn].walktype=0; - ZC_animatePlayer(pip, player, pn); - player[pn].enti.d = 2; + gvar->player[pn].walktype=0; + ZC_animatePlayer(gvar->mv, gvar->player, pn); + gvar->player[pn].enti.d = 2; #ifdef OLDWALKSHOWPAGESTUFF SHOWMVFUN__ #endif } - player[pn].enti.triggerx = player[pn].enti.tx; - player[pn].enti.triggery = player[pn].enti.ty-1; + gvar->player[pn].enti.triggerx = gvar->player[pn].enti.tx; + gvar->player[pn].enti.triggery = gvar->player[pn].enti.ty-1; break; } } @@ -317,7 +318,7 @@ void ZC_walk(map_view_t *pip, player_t *player, word pn) //panning page void ZC_panPageManual(map_view_t *pip, player_t *player, word pn) { -#define SHOWMVFUN_ ZC_ShowMV(pip, 0, 0); +#define SHOWMVFUN_ VL_ShowPage(pip[0].page, 0, 0);//ZC_ShowMV(pip, 0, 0); switch(player[pn].enti.d) { //right movement @@ -412,6 +413,8 @@ void ZC_MVInit(map_view_t *pip, int tx, int ty) //pip[0].ty = pip[1].ty = ty; } +//#if 0 +//for backwards compatibility with code i am lazy ww void ZC_ShowMV(map_view_t *moo, boolean vsync, boolean sr) { VL_ShowPage(moo[0].page, vsync, sr); @@ -500,7 +503,7 @@ void near mapScrollRight(map_view_t *mv, player_t *player, word id, word plid) if(player[plid].enti.q==4) #endif // if(id==0) - mapDrawCol(&mv[id], mv[0].tx + mv[0].page->ti.tw, mv[0].ty-1, x, player, DRAWCOLNUM); + mapDrawCol(&mv[id], mv[0].tx + mv[0].page->ti.tw, mv[0].ty-1, x, player); // else // if(mv[0].video->vga_state.bgps) // modexCopyPageRegion(mv->page, mv[0].page, x, 0, x, 0, mv[0].map->tiles->tileWidth, mv[0].page->height); @@ -523,7 +526,7 @@ void near mapScrollLeft(map_view_t *mv, player_t *player, word id, word plid) if(player[plid].enti.q==4) #endif // if(id==0) - mapDrawCol(&mv[id], mv[0].tx - 1, mv[0].ty-1, x, player, DRAWCOLNUM); + mapDrawCol(&mv[id], mv[0].tx - 1, mv[0].ty-1, x, player); // else // if(mv[0].video->vga_state.bgps) // modexCopyPageRegion(mv->page, mv[0].page, x, 0, x, 0, mv[0].map->tiles->tileWidth, mv[0].page->height); @@ -546,7 +549,7 @@ void near mapScrollUp(map_view_t *mv, player_t *player, word id, word plid) if(player[plid].enti.q==4) #endif // if(id==0) - mapDrawRow(&mv[id], mv[0].tx - 1, mv[0].ty-1, y, player, DRAWROWNUM); + mapDrawRow(&mv[id], mv[0].tx - 1, mv[0].ty-1, y, player); // else // if(mv[0].video->vga_state.bgps) // modexCopyPageRegion(mv->page, mv[0].page, 0, y, 0, y, mv[0].page->width, mv[0].map->tiles->tileHeight); @@ -569,7 +572,7 @@ void near mapScrollDown(map_view_t *mv, player_t *player, word id, word plid) if(player[plid].enti.q==4) #endif // if(id==0) - mapDrawRow(&mv[id], mv[0].tx - 1, mv[0].ty+mv[0].page->ti.th, y, player, DRAWROWNUM); + mapDrawRow(&mv[id], mv[0].tx - 1, mv[0].ty+mv[0].page->ti.th, y, player); // else // if(mv[0].video->vga_state.bgps) // modexCopyPageRegion(mv->page, mv[0].page, 0, y, 0, y, mv[0].page->width, mv[0].map->tiles->tileHeight); @@ -614,16 +617,16 @@ void ZC_mapScroll(map_view_t *mv, player_t *player, word pn) //=========================================================================== //TODO: put player in starting position of assigned spot on map //default player position on the viewable map -void ZC_PlayerXYpos(int x, int y, player_t *player, map_view_t *pip, nibble pn, boolean defaultsw) +void ZC_PlayerXYpos(int x, int y, player_t *player, map_view_t *pip, boolean defaultsw) { - player[pn].enti.tx = x + pip[0].tx; - player[pn].enti.ty = y + pip[0].ty; + player->enti.tx = x + pip[0].tx; + player->enti.ty = y + pip[0].ty; switch(defaultsw) { case 1: - player[pn].enti.tx += pip[0].page->ti.tilemidposscreenx; - player[pn].enti.ty += pip[0].page->ti.tilemidposscreeny; + player->enti.tx += pip[0].page->ti.tilemidposscreenx; + player->enti.ty += pip[0].page->ti.tilemidposscreeny; break; case 0: break; @@ -659,7 +662,7 @@ sword chkmap(map_t *map, word q) //1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1 }; //1, 2, 3, 4, 0, 3, 3, 3, 3, 3, 3, 3, 3, 4, 1, 1, 1, 1, 1, 1, 5, 6, 7, 8, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 10, 11, 12, 4, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 14, 15, 16, 0, 1, 1, 1, 5, 8, 1, 11, 11, 1, 1, 1, 1, 1, 1, 1, 0, 0, 4, 0, 0, 0, 0, 0, 8, 8, 1, 11, 11, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 2, 3, 4 }; //check for failed to load map - if((map->width == map->height == 0) && (q>0)) + if((!map->width || !map->height) && (q>0)) { //initiate a null map! map->width=MAPW; @@ -747,63 +750,72 @@ mapDrawTile(tiles_t *t, word i, page_t *page, word x, word y) } } #define PALMAPDRAWW 13 -void near mapDrawRow(map_view_t *mv, int tx, int ty, word y, player_t *player, word poopoffset) +void near mapDrawRow(map_view_t *mv, int tx, int ty, word y, player_t *player) { - int i; nibble z; -#ifdef __DEBUG_RF__ -if(dbg_pagedelayrendermap) if(!y) y+=TILEWH; else y-=TILEWH; + int i; +#if defined(FULLRCREND) || defined(__DEBUG_RF__) + word drawtileoffset=0; +//printf("y: %d ", drawtileoffset); + drawtileoffset%=player[0].enti.spt; +//printf("%d\n", drawtileoffset); #endif - poopoffset%=player[0].enti.speed; -//printf("y: %d\n", poopoffset); #ifdef __DEBUG_RF__ -if(dbg_pagedelayrendermap){ sprintf(global_temp_status_text, "%-3u", mv->dx); modexprint(mv[0].page, player[0].enti.x, player[0].enti.y-28-(poopoffset*8) , 1, 0, PALMAPDRAWW, 1, 1, global_temp_status_text); } +if(dbg_pagedelayrendermap){ if(!y) y+=TILEWH; else y-=TILEWH; + sprintf(global_temp_status_text, "%-3u", drawtileoffset); modexprint(mv->page, player[0].enti.x, player[0].enti.y-28-(drawtileoffset*8) , 1, 0, PALMAPDRAWW, 1, 1, global_temp_status_text); } #endif /* the position within the map array */ i=ty * mv->map->width + tx; - for( mv->dx=poopoffset; mv->dx<(mv->page->sw+mv->dxThresh)/(poopoffset+1) && tx < mv->map->width; mv->dx+=mv->map->tiles->tileWidth, tx++) { - if(i>=0){ + /* + */ +#ifndef FULLRCREND + for( mv->dx=drawtileoffset; mv->dx<(mv->page->sw+mv->dxThresh)/(drawtileoffset+1) && tx < mv->map->width; mv->dx+=mv->map->tiles->tileWidth, tx++) { +#else + for(mv->dx=0; mv->dxpage->sw+mv->dxThresh && tx < mv->map->width; mv->dx+=mv->map->tiles->tileWidth, tx++) { +#endif + if(i>=0) mapDrawTile(mv->map->tiles, mv->map->layerdata[0].data[i], mv->page, mv->dx, y); - for(z=1;z<=2;z++) - if(mv->map->layerdata[z].data[i]){ - sprintf(global_temp_status_text2, "%u", mv->map->layerdata[z].data[i]); modexprint(mv->page, mv->dx, y, 1, 0, PALMAPDRAWW, z+2, 1, global_temp_status_text2); - //mapDrawTile(mv->map->tiles, mv->map->layerdata[z].data[i], mv->page, mv->dx, y); - } - } i++; /* next! */ } #ifdef __DEBUG_RF__ -if(dbg_pagedelayrendermap) delay(200); +if(dbg_pagedelayrendermap) DBG_RFDELAYMETHOD; #endif } -void near mapDrawCol(map_view_t *mv, int tx, int ty, word x, player_t *player, word poopoffset) + + + + + + + +void near mapDrawCol(map_view_t *mv, int tx, int ty, word x, player_t *player) { - int i; nibble z; -#ifdef __DEBUG_RF__ -if(dbg_pagedelayrendermap) if(!x) x+=TILEWH; else x-=TILEWH; + int i; +#if defined(FULLRCREND) || defined(__DEBUG_RF__) + word drawtileoffset=0; +//printf("x: %d ", drawtileoffset); + drawtileoffset%=player[0].enti.spt; +//printf("%d\n", drawtileoffset); #endif - poopoffset%=player[0].enti.speed; -//printf("x: %d\n", poopoffset); #ifdef __DEBUG_RF__ -if(dbg_pagedelayrendermap){ sprintf(global_temp_status_text, "%-3u", mv->dy); modexprint(mv[0].page, player[0].enti.x, player[0].enti.y-28-(poopoffset*8) , 1, 0, PALMAPDRAWW, 1, global_temp_status_text); } +if(dbg_pagedelayrendermap){ if(!x) x+=TILEWH; else x-=TILEWH; + sprintf(global_temp_status_text, "%-3u", drawtileoffset); modexprint(mv->page, player[0].enti.x, player[0].enti.y-28-(drawtileoffset*8) , 1, 0, PALMAPDRAWW, 1, 1, global_temp_status_text); } #endif /* location in the map array */ i=ty * mv->map->width + tx; /* We'll copy all of the columns in the screen, i + 1 row above and one below */ - for( mv->dy=poopoffset; mv->dy<(mv->page->sh+mv->dyThresh)/(poopoffset+1) && ty < mv->map->height; mv->dy+=mv->map->tiles->tileHeight, ty++) { - if(i>=0){ +#ifndef FULLRCREND + for( mv->dy=drawtileoffset; mv->dy<(mv->page->sh+mv->dyThresh)/(drawtileoffset+1) && ty < mv->map->height; mv->dy+=mv->map->tiles->tileHeight, ty++) { +#else + for(mv->dy=0; mv->dypage->sh+mv->dyThresh && ty < mv->map->height; mv->dy+=mv->map->tiles->tileHeight, ty++) { +#endif + if(i>=0) mapDrawTile(mv->map->tiles, mv->map->layerdata[0].data[i], mv->page, x, mv->dy); - for(z=1;z<=2;z++) - if(mv->map->layerdata[z].data[i]){ - sprintf(global_temp_status_text2, "%u", mv->map->layerdata[z].data[i]); modexprint(mv->page, x, mv->dy, 1, 0, PALMAPDRAWW, z+2, 1, global_temp_status_text2); - //mapDrawTile(mv->map->tiles, mv->map->layerdata[z].data[i], mv->page, x, mv->dy); - } - } i += mv->map->width; } #ifdef __DEBUG_RF__ -if(dbg_pagedelayrendermap) delay(200); +if(dbg_pagedelayrendermap) DBG_RFDELAYMETHOD; #endif } @@ -908,14 +920,13 @@ void shinku(global_game_variables_t *gv) gv->kurokku.frames_per_second=1; break; case 1: -#ifdef OLDWALKSHOWPAGESTUFF - //modexWaitBorder(); - //modexWaitBorder_start(); -#else +//#ifndef OLDWALKSHOWPAGESTUFF //vga_wait_for_vsync(); vga_wait_for_vsync_end(); -#endif - gv->kurokku.frames_per_second=60; +//#else + //modexWaitBorder(); +//#endif + gv->kurokku.frames_per_second=FPSVALUE; break; } PM_NextFrame(gv); @@ -940,7 +951,7 @@ void near ZC_animatePlayer(map_view_t *pip, player_t *player, word pn) break; case 2: dd = 1; - qq = player[pn].enti.q*player[pn].enti.speed; + qq = player[pn].enti.q*player[pn].enti.spt; break; } x-=4; @@ -995,6 +1006,9 @@ void near ZC_animatePlayer(map_view_t *pip, player_t *player, word pn) animate_spri(&player[pn].enti, pip[0].video); } //0000if(player[pn].enti.q<4) delay(200); +#ifdef OLDWALKSHOWPAGESTUFF + modexWaitBorder(); +#endif } /* @@ -1091,3 +1105,11 @@ void mapScroll(map_view_t *mv, player_t *player) break; } } + +void ZC_GirdChk (global_game_variables_t *gvar, player_t *player) +{ + if((player->enti.q==1) && + !(player->enti.x%gvar->mv[0].map->tiles->tileWidth==0 && player->enti.y%gvar->mv[0].map->tiles->tileHeight==0)) + ZC_PlayerXYpos(0, 0, player, gvar->mv, 1); + //TODO: MAKE SURE TO RESYNC PLAYER IN WALKABLE SPOT +}