// do PEL panning here\r
outp(AC_INDEX, 0x33);\r
outp(AC_INDEX, (moo[0].page->dx & 0x03) << 1);\r
+ vga_state.vga_draw_stride_limit = vga_state.vga_draw_stride = moo[0].page->stridew;\r
}\r
\r
void\r
//TODO: player position here\r
void mapGoTo(map_view_t *mv, int tx, int ty)\r
{\r
- int py;//px,\r
- unsigned int i;\r
-\r
ZC_mapinitMV(mv, tx, ty);\r
\r
/* draw the tiles */\r
modexClearRegion(mv[0].page, 0, 0, mv[0].page->width, mv[0].page->height, 0);\r
- py=0;\r
- i=mv[0].ty * mv[0].map->width + mv[0].tx;\r
- for(ty=mv[0].ty-1; py < mv[0].page->sh+mv->dyThresh && ty < mv[0].map->height; ty++, py+=mv[0].map->tiles->tileHeight) {\r
- mapDrawWRow(&mv[0], tx-1, ty, py);\r
- mapDrawWRow(&mv[1], tx-1, ty, py);\r
- i+=mv->map->width - tx;\r
- }\r
-// py=0;\r
-// i=mv[1].ty * mv[1].map->width + mv[1].tx;\r
-// for(ty=mv[1].ty-1; py < mv[1].page->sh+mv->dyThresh && ty < mv[1].map->height; ty++, py+=mv[1].map->tiles->tileHeight) {\r
-// mapDrawWRow(&mv[1], tx-1, ty, py);\r
-// i+=mv->map->width - tx;\r
-// }\r
+ ZC_mapredraw(mv, tx, ty);\r
+\r
//if(mv[0].video->bgps) modexCopyPageRegion(mv[1].page, mv[0].page, 0, 0, 0, 0, mv[0].page->width, mv[0].page->height);\r
}\r
\r
mv[0].dyThresh = mv[1].dyThresh = mv[2].dyThresh = mv[3].dyThresh = mv->map->tiles->tileHeight * 2;\r
}\r
\r
+void ZC_mapredraw(map_view_t *mv, int tx, int ty)\r
+{\r
+ int py;//px,\r
+ unsigned int i;\r
+\r
+ py=0;\r
+ i=mv[0].ty * mv[0].map->width + mv[0].tx;\r
+ for(ty=mv[0].ty-1; py < mv[0].page->sh+mv->dyThresh && ty < mv[0].map->height; ty++, py+=mv[0].map->tiles->tileHeight) {\r
+ mapDrawWRow(&mv[0], tx-1, ty, py);\r
+ mapDrawWRow(&mv[1], tx-1, ty, py);\r
+ i+=mv->map->width - tx;\r
+ }\r
+}\r
+\r
void near\r
mapDrawTile(tiles_t *t, word i, page_t *page, word x, word y)\r
{\r
}\r
}\r
\r
-void near ZC_animatePlayer(map_view_t *pip, player_t *player, nibble pn)\r
+void near ZC_animatePlayer(map_view_t *pip, player_t *player, word pn)\r
{\r
sword x = player[pn].enti.x;\r
sword y = player[pn].enti.y;\r