X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fscroll16.h;h=cb92ce4a7a8192160d0978d0230ad2a65381bd04;hb=c060c91a1c7e418122606fdc5cd7c9ce5a55495d;hp=cefda677b307f10672bf6a5dd84aedfd5c68d33d;hpb=ba5025039e28bb59e7894b9d4e85a049c4c70373;p=16.git diff --git a/src/lib/scroll16.h b/src/lib/scroll16.h index cefda677..cb92ce4a 100755 --- a/src/lib/scroll16.h +++ b/src/lib/scroll16.h @@ -28,7 +28,6 @@ #include "src/lib/bakapee.h" #include "src/lib/16_vl.h" #include "src/lib/16_in.h" -#include "src/lib/bitmap.h" #include "src/lib/16_map.h" //map is loaded here www #include "src/lib/16render.h" //#include "src/lib/16_map.h" //new map stuff @@ -83,7 +82,7 @@ printf("player vars:\n");\ printf(" xy: %dx%d", player[0].enti.x, player[0].enti.y); printf(" txy: %dx%d", player[0].enti.tx, player[0].enti.ty); printf(" triggxy: %dx%d", player[0].enti.triggerx, player[0].enti.triggery); printf(" value: %d\n", mv[1].map->layerdata[0].data[(player[0].enti.triggerx-1)+(map.width*(player[0].enti.triggery-1))]);\ printf(" hp: %d", (player[0].enti.hp)); printf(" q: %u", player[0].enti.q); printf(" info.dir: %u", player[0].info.dir); printf(" d: %u", player[0].enti.d); printf(" dire: %u", player[0].enti.dire);\ - printf(" pdir: %u\n", player[0].pdir); printf(" delay=%u", player[0].enti.spri->delay);\ + printf(" pdir: %u\n", player[0].pdir); printf(" delay=%u", player[0].enti.spri.delay);\ printf("\n\n");\ VL_PrintmodexmemInfo(&gvar.video);\ \ @@ -97,7 +96,6 @@ extern boolean pagenorendermap, pagedelayrendermap; extern char global_temp_status_text[512]; extern char global_temp_status_text2[512]; -//map_t allocMap(int w, int h); void initMap(map_t *map); void ZC_walk(map_view_t *pip, player_t *player, word pn); void ZC_panPageManual(map_view_t *pip, player_t *player, word pn); @@ -199,6 +197,51 @@ boolean ZC_walk2(entity_t *ent, map_view_t *map_v); // Move player around and call map scrolling if required/possible void walk_player(player_t *player, map_view_t *map_v); +//check map edge +inline boolean ZC_mapEdgeChk(map_view_t *map_v, nibble dir, boolean pansw) +{ + 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) + { + //no direction + default: + case 2: + //0000pip[0].video->startclk = (*clockw); + return false; + break; + //right movement + case 3: + if(map_v[0].tx >= 0 && map_v[0].tx+map_v[0].page->ti.tw < w) return true; + break; + //left movement + case 1: + if(map_v[0].tx > 0 && map_v[0].tx+map_v[0].page->ti.tw <= w) return true; + break; + //down movement + case 4: + if(map_v[0].ty >= 0 && map_v[0].ty+map_v[0].page->ti.th < h) return true; + break; + //up movement + case 0: + if(map_v[0].ty > 0 && map_v[0].ty+map_v[0].page->ti.th <= h) return true; + break; + } + return false; +} + // Scroll map in one direction (assumed from player's movement) void mapScroll(map_view_t *mv, player_t *player);