//#include "src/lib/16_map.h" //new map stuff\r
#include "src/lib/16_timer.h"\r
#include "src/lib/wcpu/16_wcpu.h"\r
+#include "src/lib/16_sprit.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 SPRITE\r
//#define TILERENDER\r
\r
-//extern void modexDrawSpriteRegion(page_t *page, int x, int y, int rx, int ry, int rw, int rh, bitmap_t *bmp);\r
-\r
-//modexDrawSpritePBufRegion\r
-//modexDrawBmpPBufRegion\r
-//#define PBUFSFUN modexDrawSpriteRegion\r
-//#define PBUFBFUN modexDrawBmpRegion\r
+#define ANIMATESPRIFUN ZC_animatePlayer\r
\r
#define PLAYERBMPDATAVAR player[pn].data\r
#define PLAYERBMPDATA *PLAYERBMPDATAVAR\r
printf(" tx: %d", player[0].enti.tx); printf(" ty: %d\n", player[0].enti.ty);\\r
printf(" triggx: %d", player[0].enti.triggerx); printf(" triggy: %d\n", player[0].enti.triggery);\\r
printf(" hp: %d", (player[0].enti.hp)); printf(" q: %d", player[0].enti.q); printf(" player.info.dir: %d", player[0].info.dir); printf(" player.d: %d ", player[0].enti.d);\\r
- printf(" pdir=%d\n", player[0].pdir);\\r
+ printf(" pdir=%d\n", player[0].pdir); printf(" aniframe=%u", player[0].enti.persist_aniframe);\\r
printf(" tile data value at player trigger position: %d\n\n", mv[0].map->data[(player[0].enti.triggerx-1)+(map.width*(player[0].enti.triggery-1))]);\\r
\\r
printf("Virtual Screen: %dx", gvar.video.page[0].width); printf("%d ", gvar.video.page[0].height);\\r
\r
//map_t allocMap(int w, int h);\r
//void initMap(map_t *map);\r
-void walk(map_view_t *pip, player_t *player, word pn);\r
void ZC_walk(map_view_t *pip, player_t *player, word pn);\r
+void oldwalk(map_view_t *pip, player_t *player, word pn);\r
void ZC_panPageManual(map_view_t *pip, player_t *player, word pn);\r
void ZC_MVSetup(map_view_t *pip, map_t *map, global_game_variables_t *gv);\r
void ZC_MVInit(map_view_t *pip, int tx, int ty);\r
void mapDrawWCol(map_view_t *mv, int tx, int ty, word x);\r
//void qclean();\r
void shinku(global_game_variables_t *gv);\r
+void near ZC_drawframe(map_view_t *pip, player_t *player, word pn, sword x, sword y, word dire, word sw);\r
void near animatePlayer(map_view_t *pip, player_t *player, word pn, sword scrollswitch);\r
+void near ZC_animatePlayer_(map_view_t *pip, player_t *player, word pn, sword scrollswitch);\r
void near ZC_animatePlayer(map_view_t *pip, player_t *player, word pn, sword scrollswitch);\r
\r
// Move an entity around. Should actually be in 16_entity\r
void near mapScroll(map_view_t *mv, player_t *player);\r
\r
#endif /*__SCROLL16_H_*/\r
+//older zc_animate\r
+//#define SPRITO\r
+/*void near ZC_animatePlayer_(map_view_t *pip, player_t *player, word pn, sword scrollswitch)\r
+{\r
+ sword x = player[pn].enti.x;\r
+ sword y = player[pn].enti.y;\r
+ word dire=10; //direction\r
+ sword qq; //scroll offset\r
+ word ls = player[pn].enti.persist_aniframe;\r
+#ifndef SPRITO\r
+ int i=0;\r
+#endif\r
+ switch(scrollswitch)\r
+ {\r
+ case 0:\r
+ qq = 0;\r
+ break;\r
+ default:\r
+ qq = ((player[pn].enti.q)*(player[pn].enti.speed));\r
+ break;\r
+ }\r
+#ifdef SPRITE\r
+ x-=4;\r
+#endif\r
+ y-=pip[0].map->tiles->tileHeight;\r
+ switch (player[pn].enti.d)\r
+ {\r
+ case 0:\r
+ //up\r
+ dire*=player[pn].enti.d+1;\r
+ y-=qq;\r
+ break;\r
+ case 3:\r
+ // right\r
+ dire*=(player[pn].enti.d-1);\r
+ x+=qq;\r
+ break;\r
+ case 2:\r
+ break;\r
+ case 4:\r
+ //down\r
+ dire*=(player[pn].enti.d-1);\r
+ y+=qq;\r
+ break;\r
+ case 1:\r
+ //left\r
+ dire*=(player[pn].enti.d+3);\r
+ x-=qq;\r
+ break;\r
+ }\r
+\r
+ //setting xy position\r
+ player[pn].ent->spri->x = x;\r
+ player[pn].ent->spri->y = y;\r
+\r
+#ifndef SPRITO\r
+//#define DRAWFRAME if (i == -1) return; oldanimate_spri(player[pn].ent->spri, pip->video)\r
+#define DRAWFRAME if (i == -1) return; animate_spri(player[pn].ent->spri, pip->video)\r
+#define NFRAME1 i = set_anim_by_id(player[pn].ent->spri, 2+dire); DRAWFRAME;\r
+#define NFRAME2 i = set_anim_by_id(player[pn].ent->spri, 1+dire); DRAWFRAME;\r
+#define NFRAME3 i = set_anim_by_id(player[pn].ent->spri, dire); DRAWFRAME;\r
+#define NFRAME4 i = set_anim_by_id(player[pn].ent->spri, 2+dire); DRAWFRAME;\r
+#else\r
+#define NFRAME1 modexClearRegion(pip[(pip->video->p)].page, x, y, 16, 32, 2+dire);\r
+#define NFRAME2 modexClearRegion(pip[(pip->video->p)].page, x, y, 16, 32, 1+dire);\r
+#define NFRAME3 modexClearRegion(pip[(pip->video->p)].page, x, y, 16, 32, dire);\r
+#define NFRAME4 modexClearRegion(pip[(pip->video->p)].page, x, y, 16, 32, 1+dire);\r
+#endif\r
+\r
+ switch(ls)\r
+ {\r
+ case 1:\r
+ NFRAME1\r
+ break;\r
+ case 2:\r
+ NFRAME2\r
+ break;\r
+ case 3:\r
+ NFRAME3\r
+ break;\r
+ case 4:\r
+ NFRAME4\r
+ break;\r
+ }\r
+ pip->video->r=1;\r
+}*/\r
+\r
+//modexDrawSpritePBufRegion\r
+//modexDrawBmpPBufRegion\r
+//#define PBUFSFUN modexDrawSpriteRegion\r
+//#define PBUFBFUN modexDrawBmpRegion\r