]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/scroll16.h
i need to migrate to the memory manager stuff sometime
[16.git] / src / lib / scroll16.h
index cefda677b307f10672bf6a5dd84aedfd5c68d33d..a749d7f943368d6e4f75fa7c1b7c19515d4633ba 100755 (executable)
@@ -97,7 +97,6 @@ extern boolean pagenorendermap, pagedelayrendermap;
 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
@@ -199,6 +198,51 @@ boolean ZC_walk2(entity_t *ent, map_view_t *map_v);
 // 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