]> 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 efe02d9b7e32c9d315668dfd0b4641fa2f78e47d..a749d7f943368d6e4f75fa7c1b7c19515d4633ba 100755 (executable)
@@ -81,7 +81,7 @@
 #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
@@ -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