X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fscroll16.c;h=8d23be69687e7b9c83543114902fb40092929357;hb=6021fc3f27b895d382fbd30488ead35657e39196;hp=922ad97f25cb7166f9f58fb22789e490f801b7a4;hpb=33b8360be4b8b99cdba25603cb9e85f39aae8fba;p=16.git diff --git a/src/lib/scroll16.c b/src/lib/scroll16.c index 922ad97f..8d23be69 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-2018 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover * * This file is part of Project 16. * @@ -24,147 +24,292 @@ */ #include "src/lib/scroll16.h" -//#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; +//check map edge +boolean ZCL_mapEdgeChk(map_view_t *map_v, nibble dir, int tx, int ty, boolean pansw, boolean noscrollsw) +{ + int w,h; + + switch (pansw) + { + case 0: + w = map_v[0].map->width; + h = map_v[0].map->height; + break; + case 1: + w = map_v[0].page->ti.tilesw; + h = map_v[0].page->ti.tilesh; + break; + } + + switch(dir) + { + default://no direction + case 2: + //0000pip[0].video->startclk = (*clockw); + return false; + break; + //right movement + case 3: + if(noscrollsw) return tx < map_v[0].map->width; + else return (map_v[0].tx >= 0 && map_v[0].tx+map_v[0].page->ti.tw < w); + break; + //left movement + case 1: + if(noscrollsw) return tx > 1; + else return (map_v[0].tx > 0 && map_v[0].tx+map_v[0].page->ti.tw <= w); + break; + //down movement + case 4: + if(noscrollsw) return ty < map_v[0].map->height; + else return (map_v[0].ty >= 0 && map_v[0].ty+map_v[0].page->ti.th < h); + break; + //up movement + case 0: + if(noscrollsw) return ty > 1; + else return (map_v[0].ty > 0 && map_v[0].ty+map_v[0].page->ti.th <= h); + break; + } + return false; +} -void ZC_walk(map_view_t *pip, player_t *player, word pn) +boolean ZCL_CollCheck(map_view_t *map_v, nibble dir, int tx, int ty) { - switch(player[pn].enti.d) + switch (dir) + { + default://no direction + case 2: + break; + case 3://right + return !(map_v[0].map->layerdata[0].data[(tx)+(map_v[0].map->width*(ty-1))] == 0); + break; + case 1://left + return !(map_v[0].map->layerdata[0].data[(tx-2)+(map_v[0].map->width*(ty-1))] == 0); + break; + case 4://down + return !(map_v[0].map->layerdata[0].data[(tx-1)+(map_v[0].map->width*(ty))] == 0); + break; + case 0://up + return !(map_v[0].map->layerdata[0].data[(tx-1)+(map_v[0].map->width*(ty-2))] == 0); + break; + } + return false; +} + +boolean ZCL_ScreenMidPosChk(map_view_t *map_v, nibble dir, int tx, int ty) +{ + if(ZCL_mapEdgeChk(map_v, dir, 0, 0, 0, 0)) + switch(dir) + { + default://no direction + case 2: + //0000map_v[0].video->startclk = (*clockw); + return false; + break; + //right movement + case 3: + return tx == map_v[0].tx+map_v[0].page->ti.tilemidposscreenx; + break; + //left movement + case 1: + return tx == map_v[0].tx+map_v[0].page->ti.tilemidposscreenx; + break; + //down movement + case 4: + return ty == map_v[0].ty+map_v[0].page->ti.tilemidposscreeny; + break; + //up movement + case 0: + return ty == map_v[0].ty+map_v[0].page->ti.tilemidposscreeny; + break; + } + return false; +} + +//#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__ VL_ShowPage(&gvar->video.page[0], 1, 0);//modexShowPage(&gvar->video.page); +//ZC_ShowMV(gvar->mv, 1, 0); +#endif + +void ZC_walk(global_game_variables_t *gvar, word pn) +{ + 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(ZC_mapEdgeChk(pip, player[pn].enti.d, 0) && player[pn].enti.tx == pip[0].tx+pip[0].page->ti.tilemidposscreenx && - !(pip[0].map->layerdata[0].data[(player[pn].enti.tx)+(pip[0].map->width*(player[pn].enti.ty-1))] == 0))//!(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; - } else { player[pn].enti.q = 1; player[pn].enti.d = 2; player[pn].enti.tx++; } + 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 { gvar->player[pn].enti.q = 1; gvar->player[pn].enti.d = 2; gvar->player[pn].enti.tx++; } } - else if(player[pn].enti.tx < pip[0].map->width && !(pip[0].map->layerdata[0].data[(player[pn].enti.tx)+(pip[0].map->width*(player[pn].enti.ty-1))] == 0))//!(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++; - } else { player[pn].enti.q = 1; player[pn].enti.d = 2; player[pn].enti.tx++; } + 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 { 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(ZC_mapEdgeChk(pip, player[pn].enti.d, 0) && player[pn].enti.tx == pip[0].tx+pip[0].page->ti.tilemidposscreenx && - !(pip[0].map->layerdata[0].data[(player[pn].enti.tx-2)+(pip[0].map->width*(player[pn].enti.ty-1))] == 0))//!(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; - } else { player[pn].enti.q = 1; player[pn].enti.d = 2; player[pn].enti.tx--; } + 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 { gvar->player[pn].enti.q = 1; gvar->player[pn].enti.d = 2; gvar->player[pn].enti.tx--; } } - else if(player[pn].enti.tx > 1 && !(pip[0].map->layerdata[0].data[(player[pn].enti.tx-2)+(pip[0].map->width*(player[pn].enti.ty-1))] == 0))//!(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++; - } else { player[pn].enti.q = 1; player[pn].enti.d = 2; player[pn].enti.tx--; } + 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 { 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(ZC_mapEdgeChk(pip, player[pn].enti.d, 0) && player[pn].enti.ty == pip[0].ty+pip[0].page->ti.tilemidposscreeny && - !(pip[0].map->layerdata[0].data[(player[pn].enti.tx-1)+(pip[0].map->width*(player[pn].enti.ty))] == 0))//!(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; - } else { player[pn].enti.q = 1; player[pn].enti.d = 2; player[pn].enti.ty++; } + 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 { gvar->player[pn].enti.q = 1; gvar->player[pn].enti.d = 2; gvar->player[pn].enti.ty++; } } - else if(player[pn].enti.ty < pip[0].map->height && !(pip[0].map->layerdata[0].data[(player[pn].enti.tx-1)+(pip[0].map->width*(player[pn].enti.ty))] == 0))//!(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++; - } else { player[pn].enti.q = 1; player[pn].enti.d = 2; player[pn].enti.ty++; } + 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 { 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(ZC_mapEdgeChk(pip, player[pn].enti.d, 0) && player[pn].enti.ty == pip[0].ty+pip[0].page->ti.tilemidposscreeny && - !(pip[0].map->layerdata[0].data[(player[pn].enti.tx-1)+(pip[0].map->width*(player[pn].enti.ty-2))] == 0))//!(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; - } else { player[pn].enti.q = 1; player[pn].enti.d = 2; player[pn].enti.ty--; } + 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 { gvar->player[pn].enti.q = 1; gvar->player[pn].enti.d = 2; gvar->player[pn].enti.ty--; } } - else if(player[pn].enti.ty > 1 && !(pip[0].map->layerdata[0].data[(player[pn].enti.tx-1)+(pip[0].map->width*(player[pn].enti.ty-2))] == 0))//!(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++; - } else { player[pn].enti.q = 1; player[pn].enti.d = 2; player[pn].enti.ty--; } + 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 { 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; } } @@ -173,12 +318,12 @@ 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 case 3: - if(ZC_mapEdgeChk(pip, player[pn].enti.d, 1)) + if(ZCL_mapEdgeChk(pip, player[pn].enti.d, player[pn].enti.tx, player[pn].enti.ty, 1, 0)) { if(player[pn].enti.q<=player[pn].enti.spt) { @@ -191,7 +336,7 @@ void ZC_panPageManual(map_view_t *pip, player_t *player, word pn) //left movement case 1: - if(ZC_mapEdgeChk(pip, player[pn].enti.d, 1)) + if(ZCL_mapEdgeChk(pip, player[pn].enti.d, player[pn].enti.tx, player[pn].enti.ty, 1, 0)) { if(player[pn].enti.q<=player[pn].enti.spt) { @@ -204,7 +349,7 @@ void ZC_panPageManual(map_view_t *pip, player_t *player, word pn) //down movement case 4: - if(ZC_mapEdgeChk(pip, player[pn].enti.d, 1)) + if(ZCL_mapEdgeChk(pip, player[pn].enti.d, player[pn].enti.tx, player[pn].enti.ty, 1, 0)) { if(player[pn].enti.q<=player[pn].enti.spt) { @@ -217,7 +362,7 @@ void ZC_panPageManual(map_view_t *pip, player_t *player, word pn) //up movement case 0: - if(ZC_mapEdgeChk(pip, player[pn].enti.d, 1)) + if(ZCL_mapEdgeChk(pip, player[pn].enti.d, player[pn].enti.tx, player[pn].enti.ty, 1, 0)) { if(player[pn].enti.q<=player[pn].enti.spt) { @@ -238,11 +383,12 @@ void ZC_MVSetup(map_view_t *pip, map_t *map, global_game_variables_t *gv) #define ZC_MVI 1 nibble i; // 1st page - pip[0].page = &gv->video.page[0]; - pip[0].map = map; - pip[0].video = &gv->video; - pip[0].p = &gv->video.p; - pip[0].sp = &gv->video.sp; + pip[0].page = &gv->video.page[0]; + pip[0].map = map; + pip[0].video = &gv->video; + pip[0].kurokku = &gv->kurokku; + pip[0].p = &gv->video.p; + pip[0].sp = &gv->video.sp; ZC_MVInit(pip, 1, 1); for(i=ZC_MVI;ivideo.num_of_pages;i++) @@ -267,46 +413,13 @@ 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) { - word high_address, low_address, offset; - byte crtcOffset; - - // calculate offset - offset = (word) moo[moo[0].video->sp].page->data; - offset += moo[0].page->dy * (moo[0].page->width >> 2 ); - offset += moo[0].page->dx >> 2; - - // calculate crtcOffset according to virtual width - switch(sr) - { - case 1: - crtcOffset = moo[moo[0].video->sp].page->sw >> 3; - break; - default: - case 0: - crtcOffset = moo[0].page->width >> 3; - break; - } - - high_address = HIGH_ADDRESS | (offset & 0xff00); - low_address = LOW_ADDRESS | (offset << 8); - - // wait for appropriate timing and then program CRTC - if(vsync) while ((inp(INPUT_STATUS_1) & DISPLAY_ENABLE)); - outpw(CRTC_INDEX, high_address); - outpw(CRTC_INDEX, low_address); - outp(CRTC_INDEX, 0x13); - outp(CRTC_DATA, crtcOffset); - - // wait for one retrace - if(vsync) while (!(inp(INPUT_STATUS_1) & VRETRACE)); - - // do PEL panning here - outp(AC_INDEX, 0x33); - outp(AC_INDEX, (moo[0].page->dx & 0x03) << 1); - vga_state.vga_draw_stride_limit = vga_state.vga_draw_stride = moo[0].page->stridew; + VL_ShowPage(moo[0].page, vsync, sr); } + #if 0 void initMap(map_t *map) { @@ -326,15 +439,16 @@ initMap(map_t *map) { tile = tile ? 0 : 1; } } -#endif + void initMap(map_t *map) { /* just a place holder to fill out an alternating pattern */ int x, y; int i; int tile = 1; - dbg_maptext=1; map->tiles = malloc(sizeof(tiles_t)); + map->width=20; + map->height=15; /* create the tile set */ map->tiles->spri = malloc(sizeof(sprite_t)); @@ -342,32 +456,35 @@ initMap(map_t *map) { map->tiles->spri->sprite_vrl_cont.vrl_header->height= TILEWH; map->tiles->spri->sprite_vrl_cont.buffer = malloc((TILEWH*2)*TILEWH); map->tiles->tileHeight = TILEWH; - map->tiles->tileWidth =TILEWH; + map->tiles->tileWidth =TILEWH*2; map->tiles->rows = 1; map->tiles->cols = 2; - +//#if 0 i=0; for(y=0; ytiles->spri->sprite_vrl_cont.buffer[i] = 2;//0x24; + map->tiles->spri->sprite_vrl_cont.buffer[i] = 28;//0x24; else - map->tiles->spri->sprite_vrl_cont.buffer[i] = 1;//0x34; + map->tiles->spri->sprite_vrl_cont.buffer[i] = 0;//0x34; i++; } } - +//#endif i=0; + printf("pee\n"); for(y=0; yheight; y++) { for(x=0; xwidth; x++) { map->layerdata[0].data[i] = tile; - tile = tile ? 1 : 2; +// printf("%u ", map->layerdata[0].data[i]); + tile = tile ? 0 : 1; i++; } - tile = tile ? 1 : 2; +// printf("\n"); + tile = tile ? 0 : 1; } } - +#endif //===========================================================================// @@ -379,14 +496,14 @@ void near mapScrollRight(map_view_t *mv, player_t *player, word id, word plid) /* draw the next column */ x= mv[0].page->sw + mv[0].map->tiles->tileWidth; - if(ZC_mapEdgeChk(mv, player[plid].enti.d, 0)) + if(ZCL_mapEdgeChk(mv, player[plid].enti.d, player[plid].enti.tx, player[plid].enti.ty, 0, 0)) #ifndef FULLRCREND if(player[plid].enti.q%4) #else 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); @@ -402,14 +519,14 @@ void near mapScrollLeft(map_view_t *mv, player_t *player, word id, word plid) /* draw the next column */ x= 0; - if(ZC_mapEdgeChk(mv, player[plid].enti.d, 0)) + if(ZCL_mapEdgeChk(mv, player[plid].enti.d, player[plid].enti.tx, player[plid].enti.ty, 0, 0)) #ifndef FULLRCREND if(player[plid].enti.q%4) #else 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); @@ -425,14 +542,14 @@ void near mapScrollUp(map_view_t *mv, player_t *player, word id, word plid) /* draw the next row */ y= 0; - if(ZC_mapEdgeChk(mv, player[plid].enti.d, 0)) + if(ZCL_mapEdgeChk(mv, player[plid].enti.d, player[plid].enti.tx, player[plid].enti.ty, 0, 0)) #ifndef FULLRCREND if(player[plid].enti.q%3) #else 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); @@ -448,14 +565,14 @@ void near mapScrollDown(map_view_t *mv, player_t *player, word id, word plid) /* draw the next row */ y= mv[0].page->sh + mv[0].map->tiles->tileHeight; - if(ZC_mapEdgeChk(mv, player[plid].enti.d, 0)) + if(ZCL_mapEdgeChk(mv, player[plid].enti.d, player[plid].enti.tx, player[plid].enti.ty, 0, 0)) #ifndef FULLRCREND if(player[plid].enti.q%3) #else 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); @@ -500,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; @@ -517,35 +634,41 @@ void ZC_PlayerXYpos(int x, int y, player_t *player, map_view_t *pip, nibble pn, } //=========================================================================== +void ZC_checkardmap(map_t *map) +{ + // just a place holder to fill out an alternating pattern + int x, y; + int i; + static byte z[(MAPW*MAPH)];//map->width*map->height]; + byte tile = 1; + + i=0; + for(y=0; yheight; y++) { + for(x=0; xwidth; x++) { + z[i]=tile+1; + tile = tile ? 0 : 1; + i++; + } + tile = tile ? 0 : 1; + } + map->layerdata[0].data = &z; +} + sword chkmap(map_t *map, word q) { // bitmap_t bp; - static byte x[(MAPW*MAPH)+1] = -{ 1, 2, 3, 4, 0, 3, 3, 3, 3, 3, 3, 3, 3, 4, 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, 5, 6, 7, 8, 0, 1, 0, 1, 0, 0, 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, 9, 10, 11, 12, 4, 1, 0, 1, 0, 0, 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, 13, 14, 15, 16, 0, 1, 1, 1, 5, 8, 1, 11, 11, 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, 0, 0, 4, 0, 0, 0, 0, 0, 8, 8, 1, 11, 11, 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, 0, 0, 0, 0, 8, 8, 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, 0, 0, 0, 0, 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, 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, 0, 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, 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, 3, 3, 3, 3, 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, 3, 1, 1, 1, 1, 5, 6, 7, 8, 6, 6, 6, 6, 6, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 9, 10, 11, 12, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 3, 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, 13, 14, 15, 16, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 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, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 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, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 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, 3, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 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, 3, 3, 3, 3, 3, 6, 6, 6, 6, 6, 6, 6, 3, 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, 3, 3, 3, 3, 3, 3, 3, 3, 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, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 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, 0, 1, 0, 0, 0, 0, 0, 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, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 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, 10, 10, 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, 10, 10 }; -/*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 };*/ +// static byte x[(MAPW*MAPH)+1] = +//{ 1, 2, 3, 4, 0, 3, 3, 3, 3, 3, 3, 3, 3, 4, 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, 5, 6, 7, 8, 0, 1, 0, 1, 0, 0, 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, 9, 10, 11, 12, 4, 1, 0, 1, 0, 0, 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, 13, 14, 15, 16, 0, 1, 1, 1, 5, 8, 1, 11, 11, 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, 0, 0, 4, 0, 0, 0, 0, 0, 8, 8, 1, 11, 11, 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, 0, 0, 0, 0, 8, 8, 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, 0, 0, 0, 0, 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, 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, 0, 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, 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, 3, 3, 3, 3, 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, 3, 1, 1, 1, 1, 5, 6, 7, 8, 6, 6, 6, 6, 6, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 9, 10, 11, 12, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 3, 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, 13, 14, 15, 16, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 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, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 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, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 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, 3, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 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, 3, 3, 3, 3, 3, 6, 6, 6, 6, 6, 6, 6, 3, 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, 3, 3, 3, 3, 3, 3, 3, 3, 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, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 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, 0, 1, 0, 0, 0, 0, 0, 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, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 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, 10, 10, 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, 10, 10 }; +//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;///2; - map->height=MAPH;///2; + map->width=MAPW; + map->height=MAPH; // map->layerdata[0].data = fmfaflflfofcf(((map->width*map->height)+1)*sizeof(byte)); - map->layerdata[0].data = &x; - //map->tiles = fmfafflflfofc(sizeof(tiles_t)); + ZC_checkardmap(map);//map->layerdata[0].data = &x; //fix this to be far~ // bp = bitmapLoadPcx("data/ed.pcx"); // map->tiles->data = &bp; @@ -553,16 +676,7 @@ sword chkmap(map_t *map, word q) map->tiles->tileWidth = 16; map->tiles->rows = 1; map->tiles->cols = 1; -#ifdef __DEBUG_MAP__ - dbg_maptext = true; -#endif - } -#ifdef __DEBUG_MAP__ - else - { - dbg_maptext = false; } -#endif return 0; } @@ -636,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 } @@ -741,11 +864,14 @@ void mapDrawWCol(map_view_t *mv, int tx, int ty, word x) /* sync */ void shinku(global_game_variables_t *gv) { +#ifdef SHOWFPS word x = gv->video.page[/*!*/(gv->video.p)].dx; //(gv->video.page[(gv->video.p)].tlx) - // follow the screen word y = gv->video.page[/*!*/(gv->video.p)].dy; //(gv->video.page[(gv->video.p)].tly) - // follow the screen word col = 2, bgcol = 1, type = 1;//w = 64, h = 8, +#endif if(elapsed_timer(gv) >= (1.0 / gv->kurokku.frames_per_second)) { +#ifdef SHOWFPS // NTS: For some bizarre reason, gv->pee is not initialized, but the pointer is not NULL even // though it should be. Instead it's NULL as a neAr pointer but contains a non-null // segment value, so testing against NULL doesn't work. It is initialized properly if @@ -763,29 +889,16 @@ void shinku(global_game_variables_t *gv) gv->video.page[/*!*/(gv->video.p)].dx, gv->video.page[/*!*/(gv->video.p)].dy, 96, 16); - modexprint(&(gv->video.page[/*!*/(gv->video.p)]), x, y, type, 1, col, 1, bgcol, global_temp_status_text); + modexprint(&(gv->video.page[/*!*/(gv->video.p)]), x, y, type, 1, col, bgcol, 1, global_temp_status_text); //0000printf("dx=%u dy=%u\n", gv->video.page[/*!*/(gv->video.p)].dx, gv->video.page[/*!*/(gv->video.p)].dy); } +#endif gv->kurokku.tiku=0; }else //copy dat sheet gv->kurokku.tiku++; - switch(gv->kurokku.fpscap) - { - case 0: //turn this off if XT - //modexprint(&(gv->video.page[0]), x, y+8, type, 1, col, bgcol, "sanic!"); - gv->kurokku.frames_per_second=1; - break; - case 1: - //modexWaitBorder(); - //modexWaitBorder_start(); - //vga_wait_for_vsync(); - vga_wait_for_vsync_end(); - gv->kurokku.frames_per_second=60; - break; - } //render!! - if(gv->video.dorender ) + if(gv->video.dorender) {//r=1 /*if(video->bgp s) { @@ -793,10 +906,29 @@ void shinku(global_game_variables_t *gv) }else{ //modexCopyPageRegion(&video->page[0], &video->page[1], enti->x, enti->y, 0, 0, 24, 32); }*/ +#ifndef OLDWALKSHOWPAGESTUFF VL_ShowPage(&(gv->video.page[gv->video.sp]), gv->kurokku.fpscap, 0); +#endif gv->video.dorender =!gv->video.dorender; //0000gv->video.tickclk = ((*clockw)-gv->video.startclk)/18.2; } + + switch(gv->kurokku.fpscap) + { + case 0: //turn this off if XT + //modexprint(&(gv->video.page[0]), x, y+8, type, 1, col, bgcol, "sanic!"); + gv->kurokku.frames_per_second=1; + break; + case 1: +//#ifndef OLDWALKSHOWPAGESTUFF + //vga_wait_for_vsync(); + vga_wait_for_vsync_end(); +//#else + //modexWaitBorder(); +//#endif + gv->kurokku.frames_per_second=FPSVALUE; + break; + } PM_NextFrame(gv); } @@ -819,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; @@ -874,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 } /* @@ -936,6 +1071,7 @@ void player_walk(player_t *player, map_view_t *map_v){ * end */ + void mapScroll(map_view_t *mv, player_t *player) { //word x, y; /* coordinate for drawing */ @@ -969,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 +}