+#include "src/lib/16_head.h"
+#include "src/lib/bakapee.h"
+#include "src/lib/modex16.h"
+#include "src/lib/16_in.h"
+#include "src/lib/bitmap.h"
+#include "src/lib/planar.h"
+#include "src/lib/mapread.h"
+#include "src/lib/timer.h"
+#include "src/lib/wcpu/wcpu.h"
+
+#define SPRITE
+//#define BMPTYPE
+
+typedef struct {
+ map_t *map;
+ page_t *page;
+ int tx; //appears to be the top left tile position on the viewable screen map
+ int ty; //appears to be the top left tile position on the viewable screen map
+ word dxThresh; //????
+ word dyThresh; //????
+} map_view_t;
+
+typedef struct
+{
+ map_view_t *mv;
+} map_view_db_t;
+
+//for null map!
+#define MAPW 40
+#define MAPH 30
+
+//map_t allocMap(int w, int h);
+//void initMap(map_t *map);
+void walk(map_view_t *pip, player_t *player, word pn);
+void near mapScrollRight(map_view_t *mv, player_t *player, word id, word plid);
+void near mapScrollLeft(map_view_t *mv, player_t *player, word id, word plid);
+void near mapScrollUp(map_view_t *mv, player_t *player, word id, word plid);
+void near mapScrollDown(map_view_t *mv, player_t *player, word id, word plid);
+sword chkmap(map_t *map, word q);
+void mapGoTo(map_view_t *mv, int tx, int ty);
+void near mapDrawTile(tiles_t *t, word i, page_t *page, word x, word y);
+void near mapDrawRow(map_view_t *mv, int tx, int ty, word y, player_t *p, word poopoffset);
+void near mapDrawCol(map_view_t *mv, int tx, int ty, word x, player_t *p, word poopoffset);
+void mapDrawWRow(map_view_t *mv, int tx, int ty, word y);
+void mapDrawWCol(map_view_t *mv, int tx, int ty, word x);
+//void qclean();
+void shinku(map_view_t *pip, global_game_variables_t *gv);
+void near animatePlayer(map_view_t *pip, player_t *player, word playnum, sword scrollswitch);