X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fscroll16.c;h=41634957455fae46f0847231cece1246f845cb44;hb=4710ca84cd057d4e144400ec68aff6e25a5041d6;hp=8fd37e90fdd755df6f5607575c48037784cc66e6;hpb=5f627ca50ae2b5efca7e04446feeb0cf713c6dd8;p=16.git diff --git a/src/lib/scroll16.c b/src/lib/scroll16.c index 8fd37e90..41634957 100755 --- a/src/lib/scroll16.c +++ b/src/lib/scroll16.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2015 sparky4 & pngwen & andrius4669 + * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 * * This file is part of Project 16. * @@ -60,7 +60,7 @@ void walk(map_view_t *pip, player_t *player, word pn) { modexCopyPageRegion(pip[1].page, pip[0].page, player[pn].x-4, player[pn].y-TILEWH, player[pn].x-4, player[pn].y-TILEWH, 24, 32); #ifdef SPRITE - modexDrawSpriteRegion(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 32, 24, 32, &player[pn].data); + PBUFSFUN(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 32, 24, 32, PLAYERBMPDATA); #else modexClearRegion(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 32, 14); #endif @@ -101,7 +101,7 @@ void walk(map_view_t *pip, player_t *player, word pn) { modexCopyPageRegion(pip[1].page, pip[0].page, player[pn].x-4, player[pn].y-TILEWH, player[pn].x-4, player[pn].y-TILEWH, 24, 32); #ifdef SPRITE - modexDrawSpriteRegion(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 96, 24, 32, &player[pn].data); + PBUFSFUN(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 96, 24, 32, PLAYERBMPDATA); #else modexClearRegion(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 32, 10); #endif @@ -142,7 +142,7 @@ void walk(map_view_t *pip, player_t *player, word pn) { modexCopyPageRegion(pip[1].page, pip[0].page, player[pn].x-4, player[pn].y-TILEWH, player[pn].x-4, player[pn].y-TILEWH, 24, 32); #ifdef SPRITE - modexDrawSpriteRegion(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 64, 24, 32, &player[pn].data); + PBUFSFUN(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 64, 24, 32, PLAYERBMPDATA); #else modexClearRegion(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 32, 9); #endif @@ -183,7 +183,7 @@ void walk(map_view_t *pip, player_t *player, word pn) { modexCopyPageRegion(pip[1].page, pip[0].page, player[pn].x-4, player[pn].y-TILEWH, player[pn].x-4, player[pn].y-TILEWH, 24, 32); #ifdef SPRITE - modexDrawSpriteRegion(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 0, 24, 32, &player[pn].data); + PBUFSFUN(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 0, 24, 32, PLAYERBMPDATA); #else modexClearRegion(pip[1].page, player[pn].x-4, player[pn].y-TILEWH, 24, 32, 12); #endif @@ -301,12 +301,12 @@ void near mapScrollRight(map_view_t *mv, player_t *player, word id, word plid) } /* draw the next column */ - x= mv[id].page->sw + mv[id].map->tiles->tileWidth; + x= mv[0].page->sw + mv[id].map->tiles->tileWidth; if(player[plid].q%4) if(id==0) - mapDrawCol(&mv[0], mv[0].tx + 20 , mv[0].ty-1, x, player, mv->page->dx); + mapDrawCol(&mv[0], mv[0].tx + mv[0].page->tilesw, mv[0].ty-1, x, player, mv->page->dx); else - modexCopyPageRegion(mv[id].page, mv[0].page, x, 0, x, 0, mv[id].map->tiles->tileWidth, mv[id].map->tiles->tileHeight*17); + modexCopyPageRegion(mv[id].page, mv[0].page, x, 0, x, 0, mv[id].map->tiles->tileWidth, mv[id].map->tiles->tileHeight*(mv[0].page->tilesh+2)); //} } @@ -335,7 +335,7 @@ void near mapScrollLeft(map_view_t *mv, player_t *player, word id, word plid) if(id==0) mapDrawCol(&mv[0], mv[0].tx - 1, mv[0].ty-1, x, player, mv->page->dx); else - modexCopyPageRegion(mv[id].page, mv[0].page, x, 0, x, 0, mv[id].map->tiles->tileWidth, mv[id].map->tiles->tileHeight*17); + modexCopyPageRegion(mv[id].page, mv[0].page, x, 0, x, 0, mv[id].map->tiles->tileWidth, mv[id].map->tiles->tileHeight*(mv[0].page->tilesh+2)); //} } @@ -363,7 +363,7 @@ void near mapScrollUp(map_view_t *mv, player_t *player, word id, word plid) if(id==0) mapDrawRow(&mv[0], mv[0].tx - 1, mv[0].ty-1, y, player, mv->page->dy); else - modexCopyPageRegion(mv[id].page, mv[0].page, 0, y, 0, y, mv[id].map->tiles->tileWidth*22, mv[id].map->tiles->tileHeight); + modexCopyPageRegion(mv[id].page, mv[0].page, 0, y, 0, y, mv[id].map->tiles->tileWidth*(mv[0].page->tilesw+2), mv[id].map->tiles->tileHeight); //} } @@ -385,12 +385,12 @@ void near mapScrollDown(map_view_t *mv, player_t *player, word id, word plid) } /* draw the next row */ - y= mv[id].page->sh + mv[id].map->tiles->tileHeight; + y= mv[0].page->sh + mv[id].map->tiles->tileHeight; if(player[plid].q%3) if(id==0) - mapDrawRow(&mv[0], mv[0].tx - 1, mv[0].ty+15, y, player, mv->page->dy); + mapDrawRow(&mv[0], mv[0].tx - 1, mv[0].ty+mv[0].page->tilesh, y, player, mv->page->dy); else - modexCopyPageRegion(mv[id].page, mv[0].page, 0, y, 0, y, mv[id].map->tiles->tileWidth*22, mv[id].map->tiles->tileHeight); + modexCopyPageRegion(mv[id].page, mv[0].page, 0, y, 0, y, mv[id].map->tiles->tileWidth*(mv[0].page->tilesw+2), mv[id].map->tiles->tileHeight); //} } @@ -484,15 +484,16 @@ mapDrawTile(tiles_t *t, word i, page_t *page, word x, word y) switch(t->debug_text) { case 0: -#ifndef SPRITE - modexClearRegion(page, x, y, t->tileWidth, t->tileHeight, ((t->debug_data[i])+1)*2); +#ifndef TILERENDER + modexClearRegion(page, x, y, t->tileWidth, t->tileHeight, ((t->debug_data[i])+1)); //cannot print number value du to it being slow as bakapee #else - modexDrawBmpRegion(page, x, y, rx, ry, t->tileWidth, t->tileHeight, (t->data)); + PBUFBFUN (page, x, y, rx, ry, t->tileWidth, t->tileHeight, (t->data)); + //modexDrawBmpRegion (page, x, y, rx, ry, t->tileWidth, t->tileHeight, (t->data)); #endif break; case 1: - modexClearRegion(page, x, y, t->tileWidth, t->tileHeight, (t->debug_data[i])+1); + modexClearRegion(page, x, y, t->tileWidth, t->tileHeight, (t->debug_data[i]+1)); //modexprintbig(page, x, y, 1, 15, 0, (t->debug_data)); /*for(texty=0; texty<2; texty++) { @@ -596,8 +597,9 @@ void shinku(map_view_t *pip, global_game_variables_t *gv) word bgcol = 0; word type = 1; //t=(((*(gv->clock))-gv->clock_start) /18.2); - sprintf(gv->pee, "%f fps", (double)gv->kurokku.tiku/ticktock(gv)); - modexprint(pip[1].page, 16, 16, 1, 15, 0, gv->pee); + //sprintf(gv->pee, "%f fps", (double)gv->kurokku.tiku/ticktock(gv)); + printf("%f fps", (double)gv->kurokku.tiku/ticktock(gv)); + //modexprint(pip[1].page, 16, 16, 1, 15, 0, gv->pee, 1); //(gv->clock_start)=*(gv->clock); gv->kurokku.tiku=0; } @@ -617,60 +619,53 @@ void shinku(map_view_t *pip, global_game_variables_t *gv) } } -void near animatePlayer(map_view_t *pip, player_t *player, word playnum, sword scrollswitch) +void near animatePlayer(map_view_t *pip, player_t *player, word pn, sword scrollswitch) { - sword x = player[playnum].x; - sword y = player[playnum].y; + sword x = player[pn].x; + sword y = player[pn].y; #ifdef SPRITE word dire=32; //direction #else word dire=8; //direction #endif sword qq; //scroll offset - word ls = player[playnum].persist_aniframe; + word ls = player[pn].persist_aniframe; if(scrollswitch==0) qq = 0; - else qq = ((player[playnum].q)*(player[playnum].speed)); + else qq = ((player[pn].q)*(player[pn].speed)); x-=4; y-=TILEWH; - switch (player[playnum].d) + switch (player[pn].d) { case 0: //up - dire*=player[playnum].d; + dire*=player[pn].d; y-=qq; break; case 3: // right - dire*=(player[playnum].d-2); + dire*=(player[pn].d-2); x+=qq; break; case 2: break; case 4: //down - dire*=(player[playnum].d-2); + dire*=(player[pn].d-2); y+=qq; break; case 1: //left - dire*=(player[playnum].d+2); + dire*=(player[pn].d+2); x-=qq; break; } #ifdef SPRITE -#ifdef BMPTYPE -#define FRAME1 oldDrawBmp(VGA, x, y, &player[playnum].data, 1); -#define FRAME2 oldDrawBmp(VGA, x, y, &player[playnum].data, 1); -#define FRAME3 oldDrawBmp(VGA, x, y, &player[playnum].data, 1); -#define FRAME4 oldDrawBmp(VGA, x, y, &player[playnum].data, 1); -#else -#define FRAME1 modexDrawSpriteRegion(pip[1].page, x, y, 48, dire, 24, 32, &player[playnum].data); -#define FRAME2 modexDrawSpriteRegion(pip[1].page, x, y, 24, dire, 24, 32, &player[playnum].data); -#define FRAME3 modexDrawSpriteRegion(pip[1].page, x, y, 0, dire, 24, 32, &player[playnum].data); -#define FRAME4 modexDrawSpriteRegion(pip[1].page, x, y, 24, dire, 24, 32, &player[playnum].data); -#endif +#define FRAME1 PBUFSFUN(pip[1].page, x, y, 48, dire, 24, 32, PLAYERBMPDATA); +#define FRAME2 PBUFSFUN(pip[1].page, x, y, 24, dire, 24, 32, PLAYERBMPDATA); +#define FRAME3 PBUFSFUN(pip[1].page, x, y, 0, dire, 24, 32, PLAYERBMPDATA); +#define FRAME4 PBUFSFUN(pip[1].page, x, y, 24, dire, 24, 32, PLAYERBMPDATA); #else #define FRAME1 modexClearRegion(pip[1].page, x, y, 24, 32, 2+dire); #define FRAME2 modexClearRegion(pip[1].page, x, y, 24, 32, 1+dire);