#define SCROLLEXITMESG printf("page[0]dxy: %dx%d", gvar.video.page[0].dx, gvar.video.page[0].dy);\\r
printf("\n\n");\\r
printf("player vars:\n");\\r
- 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][(player[0].enti.triggerx-1)+(map.width*(player[0].enti.triggery-1))]);\\r
+ 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))]);\\r
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);\\r
printf(" pdir: %u\n", player[0].pdir); printf(" delay=%u", player[0].enti.spri->delay);\\r
printf("\n\n");\\r
extern char global_temp_status_text[512];\r
extern char global_temp_status_text2[512];\r
\r
-//map_t allocMap(int w, int h);\r
void initMap(map_t *map);\r
void ZC_walk(map_view_t *pip, player_t *player, word pn);\r
void ZC_panPageManual(map_view_t *pip, player_t *player, word pn);\r
// Move player around and call map scrolling if required/possible\r
void walk_player(player_t *player, map_view_t *map_v);\r
\r
+//check map edge\r
+inline boolean ZC_mapEdgeChk(map_view_t *map_v, nibble dir, boolean pansw)\r
+{\r
+ int w,h;\r
+\r
+ switch (pansw)\r
+ {\r
+ case 0:\r
+ w = map_v[0].map->width;\r
+ h = map_v[0].map->height;\r
+ break;\r
+ case 1:\r
+ w = map_v[0].page->ti.tilesw;\r
+ h = map_v[0].page->ti.tilesh;\r
+ break;\r
+ }\r
+\r
+ switch(dir)\r
+ {\r
+ //no direction\r
+ default:\r
+ case 2:\r
+ //0000pip[0].video->startclk = (*clockw);\r
+ return false;\r
+ break;\r
+ //right movement\r
+ case 3:\r
+ if(map_v[0].tx >= 0 && map_v[0].tx+map_v[0].page->ti.tw < w) return true;\r
+ break;\r
+ //left movement\r
+ case 1:\r
+ if(map_v[0].tx > 0 && map_v[0].tx+map_v[0].page->ti.tw <= w) return true;\r
+ break;\r
+ //down movement\r
+ case 4:\r
+ if(map_v[0].ty >= 0 && map_v[0].ty+map_v[0].page->ti.th < h) return true;\r
+ break;\r
+ //up movement\r
+ case 0:\r
+ if(map_v[0].ty > 0 && map_v[0].ty+map_v[0].page->ti.th <= h) return true;\r
+ break;\r
+ }\r
+ return false;\r
+}\r
+\r
// Scroll map in one direction (assumed from player's movement)\r
void mapScroll(map_view_t *mv, player_t *player);\r
\r