]> 4ch.mooo.com Git - 16.git/commitdiff
zcroll16 merged with scroll16
authorsparky4 <sparky4@cock.li>
Fri, 9 Dec 2016 14:46:50 +0000 (08:46 -0600)
committersparky4 <sparky4@cock.li>
Fri, 9 Dec 2016 14:46:50 +0000 (08:46 -0600)
MEMINFO.16W [deleted file]
src/lib/16_mm.c
src/lib/doslib
src/lib/scroll16.c
src/lib/scroll16.h
src/lib/zcroll16.c [deleted file]
src/lib/zcroll16.h [deleted file]
src/scroll.c
src/zcroll.c

diff --git a/MEMINFO.16W b/MEMINFO.16W
deleted file mode 100755 (executable)
index e69de29..0000000
index df1dd7f7fef2222f312f848279042e4963efa9be..5bbad2b10bd02228ef1c175accff4fd72465e923 100755 (executable)
@@ -756,7 +756,6 @@ void MM_Startup(global_game_variables_t *gvar)
        //huge void huge        *start;
        void far        *start;
        word    segstart;//,endfree;
-       //memptr *peeonself;
 
        if(gvar->mm.mmstarted)
                MM_Shutdown(gvar);
@@ -782,11 +781,8 @@ void MM_Startup(global_game_variables_t *gvar)
        gvar->mm.mmnew->length = 0xffff;
        gvar->mm.mmnew->attributes = LOCKBIT;
        gvar->mm.mmnew->next = NULL;
-       //gvar->mm.mmnew->useptr = peeonself;
        gvar->mm.mmrover = gvar->mm.mmhead;
 
-       //printf("              %x\n", peeonself);
-       //printf("              %x\n", *peeonself);
 //
 // get all available near conventional memory segments
 //
index e3437c7296b618a363f5452ebf90a8c5cf0558fa..b3d96d397ed4006afe4e4273b00db366dc53fd0d 160000 (submodule)
@@ -1 +1 @@
-Subproject commit e3437c7296b618a363f5452ebf90a8c5cf0558fa
+Subproject commit b3d96d397ed4006afe4e4273b00db366dc53fd0d
index 06c7fe957142d27bff756850dbeb8e4a30da9369..d6b1a06a94f4f6e82d9bf543ec8eb62cda5f14be 100755 (executable)
@@ -924,3 +924,95 @@ void near animatePlayer(map_view_t *pip, player_t *player, word pn, sword scroll
        //printf("x=%d  y=%d    bx=%d           by=%d\n", x, y, bx, by);\r
        pip->video->r=1;\r
 }\r
+\r
+/*\r
+ * from zcroll16.c\r
+*/\r
+\r
+boolean boundary_check(int x, int y, int dx, int dy, int h, int w)\r
+{\r
+       return (dx > 0 && (x + dx) < w) || (dx < 0 && (x + dx) >= 0) || (dy > 0 && (y + dy) < h) || (dy < 0 && (y + dy) >= 0) || (dx == dy && dx == 0);\r
+}\r
+\r
+boolean coll_check(int x, int y, int dx, int dy, map_view_t *map_v)\r
+{\r
+       // Assume everything crosses at most 1 tile at once\r
+       return dx && 1;//crossable_tile(x + dx, map_v) || dy && crossable_tile(y + dy, map_v);\r
+}\r
+\r
+boolean ZC_walk(entity_t *ent, map_view_t *map_v)\r
+{\r
+       //return 1;\r
+       int dx = 1;\r
+       int dy = 1;\r
+       switch(ent->d)\r
+       {\r
+               case 2:\r
+                       return 0;\r
+               case 1:\r
+                       dx = -dx;\r
+               case 3:\r
+                       dy = 0;\r
+                       break;\r
+               case 0:\r
+                       dy = -dy;\r
+               case 4:\r
+                       dx = 0;\r
+                       break;\r
+       }\r
+       if(coll_check(ent->x, ent->y, dx, dy,  map_v))\r
+       {\r
+               // Allow movement\r
+               // Set speed\r
+               // Start animation\r
+               // Mark next tile as occupied\r
+               // Mark this tile as vacant\r
+               return 1;\r
+       }\r
+       return 0;\r
+}\r
+\r
+void player_walk(player_t *player, map_view_t *map_v){\r
+       int dx=16, dy=16;\r
+       if(ZC_walk(player->ent, map_v) && boundary_check(map_v->tx, map_v->ty, dx, dy, map_v->map->width - 2*map_v->page->tilesw, map_v->map->height - 2*map_v->page->tilesh))\r
+       {\r
+               mapScroll(map_v, player);\r
+               // (Un)load stuff?\r
+       }\r
+}\r
+\r
+void near mapScroll(map_view_t *mv, player_t *player)\r
+{\r
+       //word x, y;  /* coordinate for drawing */\r
+       int c = 1;\r
+       int delta;\r
+       mv->delta += player->dx | player->dy;\r
+       delta = mv->delta;\r
+       mv->d = (player->dx) ? (player->dx > 0) ? 3 : 1 : (player->dy) ? (player->dy > 0) ? 4 : 0 : 2;\r
+       switch(mv->d){\r
+               case 4:\r
+                       c = -1;\r
+                       delta = -delta;\r
+               case 0:\r
+                       if(!(delta + mv->dxThresh))\r
+                       {\r
+                               mv->delta = 0;\r
+                               mv->ty += c;\r
+                       }\r
+                       break;\r
+               case 3:\r
+                       c = -1;\r
+                       delta = -delta;\r
+               case 1:\r
+                       if(!(delta + mv->dyThresh))\r
+                       {\r
+                               mv->delta = 0;\r
+                               mv->tx += c;\r
+                       }\r
+                       break;\r
+               default:\r
+                       break;\r
+       }\r
+\r
+       mv->video->r=1;\r
+}\r
index a7c4d4b3a844d78cab4b02c59d79c183fa182e67..4f1b539fca5bc1d2751728ecb79ef9131e87c979 100755 (executable)
@@ -56,11 +56,24 @@ typedef struct {
        page_t *page;\r
        int tx; //appears to be the top left tile position on the viewable screen map\r
        int ty; //appears to be the top left tile position on the viewable screen map\r
-       word dxThresh; //????\r
-       word dyThresh; //????\r
+       word dxThresh; //Threshold for physical tile switch\r
+       word dyThresh; //Threshold for physical tile switch\r
        video_t *video; //pointer to game variables of the video\r
        pan_t *pan;             //pointer the the page panning debug system\r
+       int dx, dy, delta, d;\r
 } map_view_t;\r
+/* Map is presumed to:\r
+ * 1. Have all the required layers and tilesets within itself\r
+ * 2. Have a 'fence' around accessible blocks to simplify boundary logic\r
+ * 3. Have a persistent map and tile size among the layers\r
+ * Map view is presumed to:\r
+ * 1. Calculate, store and update a panning info, which includes, but not limited to:\r
+ *     combined layer information, actual map representation (reflecting real state of the game),\r
+ *     pixel shift for smooth tile scrolling.\r
+ * 2. Provide ways to draw a visible part of map. For simplicity with smooth scrolling,\r
+ *     additional row/column is always drawn at the each side of the map. This implies that 'fence'\r
+ *     should have a sprite too. Map is drawn left-to-right, top-to-bottom.\r
+ */\r
 \r
 typedef struct\r
 {\r
@@ -99,4 +112,13 @@ void mapDrawWCol(map_view_t *mv, int tx, int ty, word x);
 void shinku(global_game_variables_t *gv);\r
 void near animatePlayer(map_view_t *pip, player_t *player, word playnum, sword scrollswitch);\r
 \r
+// Move an entity around. Should actually be in 16_entity\r
+boolean ZC_walk(entity_t *ent, map_view_t *map_v);\r
+\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
+// Scroll map in one direction (assumed from player's movement)\r
+void near mapScroll(map_view_t *mv, player_t *player);\r
+\r
 #endif /*__SCROLL16_H_*/\r
diff --git a/src/lib/zcroll16.c b/src/lib/zcroll16.c
deleted file mode 100755 (executable)
index a58dfad..0000000
+++ /dev/null
@@ -1,276 +0,0 @@
-/* Project 16 Source Code~\r
- * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover\r
- *\r
- * This file is part of Project 16.\r
- *\r
- * Project 16 is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 3 of the License, or\r
- * (at your option) any later version.\r
- *\r
- * Project 16 is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program.  If not, see <http://www.gnu.org/licenses/>, or\r
- * write to the Free Software Foundation, Inc., 51 Franklin Street,\r
- * Fifth Floor, Boston, MA 02110-1301 USA.\r
- *\r
- */\r
-/*\r
-       scroll16 library~\r
-*/\r
-#include "src/lib/zcroll16.h"\r
-\r
-boolean boundary_check(int x, int y, int dx, int dy, int h, int w){\r
-       return (dx > 0 && (x + dx) < w) || (dx < 0 && (x + dx) >= 0) || (dy > 0 && (y + dy) < h) || (dy < 0 && (y + dy) >= 0) || (dx == dy && dx == 0);\r
-}\r
-\r
-boolean coll_check(int x, int y, int dx, int dy, map_view_t *map_v){\r
-       // Assume everything crosses at most 1 tile at once\r
-       return dx && 1;//crossable_tile(x + dx, map_v) || dy && crossable_tile(y + dy, map_v);\r
-}\r
-\r
-boolean walk(entity_t *ent, map_view_t *map_v){\r
-       return 1;\r
-       int dx = 1;\r
-       int dy = 1;\r
-       switch(ent->d){\r
-               case STOP:\r
-                       return 0;\r
-               case LEFT:\r
-                       dx = -dx;\r
-               case RIGHT:\r
-                       dy = 0;\r
-                       break;\r
-               case UP:\r
-                       dy = -dy;\r
-               case DOWN:\r
-                       dx = 0;\r
-                       break;\r
-       }\r
-       if(coll_check(ent->x, ent->y, dx, dy,  map_v)){\r
-               // Allow movement\r
-               // Set speed\r
-               // Start animation\r
-               // Mark next tile as occupied\r
-               // Mark this tile as vacant\r
-               return 1;\r
-       }\r
-       return 0;\r
-}\r
-\r
-void player_walk(player_t *player, map_view_t *map_v){\r
-       int dx, dy;\r
-       if(walk(player->ent, map_v) && boundary_check(map_v->tx, map_v->ty, dx, dy, map_v->map->width - 2*map_v->page->tilesw, map_v->map->height - 2*map_v->page->tilesh)){\r
-               mapScroll(map_v, player);\r
-               // (Un)load stuff?\r
-       }\r
-}\r
-\r
-void mapGoTo(map_view_t *mv, int tx, int ty)\r
-{\r
-       return;\r
-}\r
-\r
-void near mapScroll(map_view_t *mv, player_t *player){\r
-       word x, y;  /* coordinate for drawing */\r
-       int c = 1;\r
-       int delta;\r
-       mv->delta += player->dx | player->dy;\r
-       delta = mv->delta;\r
-       mv->d = (player->dx) ? (player->dx > 0) ? RIGHT : LEFT : (player->dy) ? (player->dy > 0) ? DOWN : UP : STOP;\r
-       switch(mv->d){\r
-               case DOWN:\r
-                       c = -1;\r
-                       delta = -delta;\r
-               case UP:\r
-                       if(!(delta + mv->dxThresh)){\r
-                               mv->delta = 0;\r
-                               mv->ty += c;\r
-                       }\r
-                       break;\r
-               case RIGHT:\r
-                       c = -1;\r
-                       delta = -delta;\r
-               case LEFT:\r
-                       if(!(delta + mv->dyThresh)){\r
-                               mv->delta = 0;\r
-                               mv->tx += c;\r
-                       }\r
-                       break;\r
-               default:\r
-                       break;\r
-       }\r
-\r
-       mv->video->r=1;\r
-}\r
-\r
-sword chkmap(map_t *map, word q)\r
-{\r
-       /*\r
-//     bitmap_t bp;\r
-       static byte x[(MAPW*MAPH)+1] =\r
-{ 1, 2, 3, 4, 0, 3, 3, 3, 3, 3, 3, 3, 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 7, 8, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 10, 11, 12, 4, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 14, 15, 16, 0, 1, 1, 1, 5, 8, 1, 11, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 4, 0, 0, 0, 0, 0, 8, 8, 1, 11, 11, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 2, 3, 4, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 5, 6, 7, 8, 6, 6, 6, 6, 6, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 9, 10, 11, 12, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 13, 14, 15, 16, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 6, 6, 6, 6, 6, 6, 6, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 10 };\r
-       //check for failed to load map\r
-       if((map->width == map->height == 0) && (q>0))\r
-       {\r
-               //initiate a null map!\r
-               map->width=MAPW;///2;\r
-               map->height=MAPH;///2;\r
-//             map->data = malloc(((map->width*map->height)+1)*sizeof(byte));\r
-               map->data = &x;\r
-               map->tiles = malloc(sizeof(tiles_t));\r
-               //fix this to be far~\r
-//             bp = bitmapLoadPcx("data/ed.pcx");\r
-//             map->tiles->data = &bp;\r
-               map->tiles->debug_data = map->data;\r
-               map->tiles->tileHeight = 16;\r
-               map->tiles->tileWidth = 16;\r
-               map->tiles->rows = 1;\r
-               map->tiles->cols = 1;\r
-               map->tiles->debug_text = true;\r
-       }\r
-       else map->tiles->debug_text = false;*/\r
-       return 0;\r
-}\r
-\r
-//TODO: player position here\r
-\r
-void near\r
-mapDrawTile(tiles_t *t, word i, page_t *page, word x, word y)\r
-{\r
-       word rx;\r
-       word ry;\r
-       word textx=0;\r
-       word texty=0;\r
-       //if(i==0) i=2;\r
-       if(i==0)\r
-       {\r
-               //wwww\r
-               modexClearRegion(page, x, y, t->tileWidth, t->tileHeight, 0); //currently the over scan color!\r
-       }\r
-       else\r
-       {\r
-               rx = (((i-1) % ((t->data->width)/t->tileWidth)) * t->tileWidth);\r
-               ry = (((i-1) / ((t->data->height)/t->tileHeight)) * t->tileHeight);\r
-////0000printf("i=%d\n", i);\r
-               switch(t->debug_text)\r
-               {\r
-                       case 0:\r
-#ifndef TILERENDER\r
-                               modexClearRegion(page, x, y, t->tileWidth, t->tileHeight, ((t->debug_data[i])+1));\r
-                               //modexprint(page, x, y, 1, 15, 0, (char const *)(t->debug_data[i]));\r
-#else\r
-                               PBUFBFUN                (page, x, y, rx, ry, t->tileWidth, t->tileHeight, (t->data));\r
-                               /* then the sprite. note modding ram ptr means we just draw to (x&3,0) */\r
-                               //draw_vrl1_vgax_modex(x-rx,y-ry,vrl_header,vrl_lineoffs,buffer+sizeof(*vrl_header),bufsz-sizeof(*vrl_header));\r
-                               //modexDrawBmpRegion    (page, x, y, rx, ry, t->tileWidth, t->tileHeight, (t->data));\r
-#endif\r
-                       break;\r
-                       case 1:\r
-                               modexClearRegion(page, x, y, t->tileWidth, t->tileHeight, (t->debug_data[i])+1);\r
-                               //modexprintbig(page, x, y, 1, 15, 0, (t->debug_data));\r
-                               /*for(texty=0; texty<2; texty++)\r
-                               {\r
-                                       for(textx=0; textx<2; textx++)\r
-                                       {*/\r
-//                                             modexprint(page, x+(textx*8), y+(texty*8), 1, (word)(t->debug_data), 0, (t->debug_data));\r
-/*                                     }\r
-                               }*/\r
-                       break;\r
-               }\r
-       }\r
-}\r
-\r
-boolean pageflipflop = 1;\r
-\r
-void near animatePlayer(map_view_t *pip, player_t *player,  sword scrollswitch)\r
-{\r
-       sword x = player->x;\r
-       sword y = player->y;\r
-       sword bx = x+16;        //buffer's x\r
-       sword by = y+16;        //buffer's y\r
-       word dire=32; //direction\r
-       sword qq; //scroll offset\r
-       word ls = player->persist_aniframe;\r
-\r
-       switch(scrollswitch)\r
-       {\r
-               case 0:\r
-                       qq = 0;\r
-               break;\r
-               default:\r
-                       qq = ((player->q)*(player->speed));\r
-               break;\r
-       }\r
-       //x-=4;\r
-       //y-=pip->map->tiles->tileHeight;\r
-       switch (player->d)\r
-       {\r
-               case 0:\r
-                       //up\r
-                       dire*=player->d;\r
-                       y-=qq;\r
-                       by-=4;\r
-               break;\r
-               case 3:\r
-                       // right\r
-                       dire*=(player->d-2);\r
-                       x+=qq;\r
-                       bx+=4;\r
-               break;\r
-               case 2:\r
-               break;\r
-               case 4:\r
-                       //down\r
-                       dire*=(player->d-2);\r
-                       y+=qq;\r
-                       by+=4;\r
-               break;\r
-               case 1:\r
-                       //left\r
-                       dire*=(player->d+2);\r
-                       x-=qq;\r
-                       bx-=4;\r
-               break;\r
-       }\r
-\r
-#ifdef SPRITE\r
-#define FRAME1 PBUFSFUN(pip[/*!*/(pip->video->p)].page, x, y, 48, dire, 24, 32,        PLAYERBMPDATA);\r
-#define FRAME2 PBUFSFUN(pip[/*!*/(pip->video->p)].page, x, y, 24, dire, 24, 32,        PLAYERBMPDATA);\r
-#define FRAME3 PBUFSFUN(pip[/*!*/(pip->video->p)].page, x, y, 0, dire, 24, 32, PLAYERBMPDATA);\r
-#define FRAME4 PBUFSFUN(pip[/*!*/(pip->video->p)].page, x, y, 24, dire, 24, 32,        PLAYERBMPDATA);\r
-#else\r
-#define FRAME1 modexClearRegion(pip[/*!*/(pip->video->p)].page, x, y, 24, 32, 2+dire);\r
-#define FRAME2 modexClearRegion(pip[/*!*/(pip->video->p)].page, x, y, 24, 32, 1+dire);\r
-#define FRAME3 modexClearRegion(pip[/*!*/(pip->video->p)].page, x, y, 24, 32, dire);\r
-#define FRAME4 modexClearRegion(pip[/*!*/(pip->video->p)].page, x, y, 24, 32, 1+dire);\r
-#endif\r
-       if(!pageflipflop)\r
-               modexCopyPageRegion(pip->page, pip->page, x-4, y-4, x-4, y-4, 28, 36);\r
-       else{\r
-               //copy old bg to page0\r
-               //modexCopyPageRegion(pip[3].page, pip[0].page, bx, by, 0, 0,   20, 36);\r
-               //update buffer\r
-               //modexCopyPageRegion(pip[0].page, pip[3].page, 0, 0,   x, y,   20, 36);\r
-       }\r
-       switch(ls)\r
-       {\r
-               case 1:\r
-                       FRAME1\r
-               break;\r
-               case 2:\r
-                       FRAME2\r
-               break;\r
-               case 3:\r
-                       FRAME3\r
-               break;\r
-               case 4:\r
-                       FRAME4\r
-               break;\r
-       }\r
-       pip->video->r=1;\r
-}\r
diff --git a/src/lib/zcroll16.h b/src/lib/zcroll16.h
deleted file mode 100755 (executable)
index 0c35180..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Project 16 Source Code~\r
- * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 & yakui-lover\r
- *\r
- * This file is part of Project 16.\r
- *\r
- * Project 16 is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 3 of the License, or\r
- * (at your option) any later version.\r
- *\r
- * Project 16 is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program.  If not, see <http://www.gnu.org/licenses/>, or\r
- * write to the Free Software Foundation, Inc., 51 Franklin Street,\r
- * Fifth Floor, Boston, MA 02110-1301 USA.\r
- *\r
- */\r
-\r
-#ifndef __ZCROLL16_H_\r
-#define __ZCROLL16_H_\r
-\r
-#include "src/lib/16_head.h"\r
-//#include "src/lib/bakapee.h"\r
-#include "src/lib/16_vl.h"\r
-#include "src/lib/16_in.h"\r
-#include "src/lib/bitmap.h"\r
-#include "src/lib/16_map.h" //map is loaded here www\r
-#include "src/lib/16_timer.h"\r
-#include "src/lib/wcpu/wcpu.h"\r
-\r
-#include <hw/cpu/cpu.h>\r
-#include <hw/dos/dos.h>\r
-#include <hw/vga/vga.h>\r
-#include <hw/vga/vrl.h>\r
-\r
-#define SPRITE\r
-//#define TILERENDER\r
-\r
-//modexDrawSpritePBufRegion\r
-//modexDrawBmpPBufRegion\r
-#define PBUFSFUN               modexDrawSpriteRegion\r
-#define PBUFBFUN               modexDrawBmpRegion\r
-#define PLAYERBMPDATA  player->data\r
-\r
-\r
-#define MAPW   40\r
-#define MAPH   30\r
-\r
-extern boolean pageflipflop, pageploop;\r
-extern unsigned char shinku_fps_indicator_page;\r
-\r
-typedef struct {\r
-       map_t *map;\r
-       page_t *page;\r
-       int tx; //appears to be the top left tile position on the viewable screen map\r
-       int ty; //appears to be the top left tile position on the viewable screen map\r
-       word dxThresh; //Threshold for physical tile switch\r
-       word dyThresh; //Threshold for physical tile switch\r
-       video_t *video; //pointer to game variables of the video\r
-       pan_t *pan;             //pointer the the page panning debug system\r
-       int dx, dy, delta, d;\r
-} map_view_t;\r
-/* Map is presumed to:\r
- * 1. Have all the required layers and tilesets within itself\r
- * 2. Have a 'fence' around accessible blocks to simplify boundary logic\r
- * 3. Have a persistent map and tile size among the layers\r
- * Map view is presumed to:\r
- * 1. Calculate, store and update a panning info, which includes, but not limited to:\r
- *     combined layer information, actual map representation (reflecting real state of the game),\r
- *     pixel shift for smooth tile scrolling.\r
- * 2. Provide ways to draw a visible part of map. For simplicity with smooth scrolling,\r
- *     additional row/column is always drawn at the each side of the map. This implies that 'fence'\r
- *     should have a sprite too. Map is drawn left-to-right, top-to-bottom.\r
- */\r
-\r
-// Move an entity around. Should actually be in 16_entity\r
-boolean walk(entity_t *ent, map_view_t *map_v);\r
-\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
-// Scroll map in one direction (assumed from player's movement)\r
-void near mapScroll(map_view_t *mv, player_t *player);\r
-sword chkmap(map_t *map, word q);\r
-void mapGoTo(map_view_t *mv, int tx, int ty);\r
-void near mapDrawTile(tiles_t *t, word i, page_t *page, word x, word y);\r
-//void qclean();\r
-void shinku(global_game_variables_t *gv);\r
-void near animatePlayer(map_view_t *pip, player_t *player, sword scrollswitch);\r
-\r
-#endif /*__ZCROLL16_H_*/\r
index bb0863045ea27ad95b12a4409cca71506017c570..147619366cff2dadb5c05435d315039d461ad4fd 100755 (executable)
@@ -327,6 +327,7 @@ void main(int argc, char *argv[])
        printf("gvar.video.p=%u ", gvar.video.p); printf("gvar.video.r=%u ", gvar.video.r);\r
        printf("pageflipflop=%u\n", pageflipflop);\r
        //printf("gvar.kurokku: "); printf("%.0f ", clock());   printf("tiku=%lu ", gvar.kurokku.tiku); printf("t=%.0f ", gvar.kurokku.t);      printf("ticktock()=%f ", ticktock(&gvar));      printf("%.0f fps", (double)gvar.kurokku.tiku/ticktock(&gvar));\r
+       printf("&global_temp_status_text = %Fp\n", &global_temp_status_text);\r
        printf("\n");\r
        //printf("map.width=%d  map.height=%d   map.data[0]=%d\n", mv[0].map->width, mv[0].map->height, mv[0].map->data[0]);\r
 \r
index 066759cfc8fb01e7e717b8dd188fd2059401084a..f9ef8382438af032ab68c04a1a0ced0b12d017c7 100755 (executable)
@@ -20,7 +20,7 @@
  *\r
  */\r
 \r
-#include "src/lib/zcroll16.h"\r
+#include "src/lib/scroll16.h"\r
 #include "src/lib/16_timer.h"\r
 #include "src/lib/wcpu/wcpu.h"\r
 #include "src/lib/16render.h"\r
@@ -156,7 +156,7 @@ if(!dbg_noplayerinpu)
                //player movement\r
                IN_ReadControl(0, &player);\r
                if(!panswitch){\r
-                       walk(player[0].ent, mv);\r
+                       ZC_walk(player[0].ent, mv);\r
                        //walk(mv, &player, 0);\r
                }\r
 \r