From: sparky4 Date: Mon, 23 Jan 2017 16:09:03 +0000 (-0600) Subject: dang it./wbuild.sh vga_state.vga_graphics_ram = video->omemptr; causes it to not... X-Git-Url: http://4ch.mooo.com/gitweb/?p=16.git;a=commitdiff_plain;h=c5070709fea9c16de70dd438e199d0a242cda8e9 dang it./wbuild.sh vga_state.vga_graphics_ram = video->omemptr; causes it to not have sprite in right spot! itis disabled wwww this is hard just to get it right wwww crap./wbuild.sh --- diff --git a/q.sh b/q.sh index 2a61f334..67cb8268 100755 --- a/q.sh +++ b/q.sh @@ -1,4 +1,4 @@ -grep -i "$1" src/*.c -grep -i "$1" src/*.h -grep -i "$1" src/lib/*.c -grep -i "$1" src/lib/*.h +grep "$1" src/*.c +grep "$1" src/*.h +grep "$1" src/lib/*.c +grep "$1" src/lib/*.h diff --git a/src/lib/16_tail.h b/src/lib/16_tail.h index a14316b2..9af21bc5 100755 --- a/src/lib/16_tail.h +++ b/src/lib/16_tail.h @@ -32,7 +32,17 @@ #define FUNCTIONKEYFUNCTIONS \ if(IN_KeyDown(sc_F6)){ VL_ShowPage(&gvar.video.page[0], 0, 0); IN_UserInput(1,1); } \ - if(IN_KeyDown(sc_F7)){ VL_ShowPage(&gvar.video.page[0], 0, 1); IN_UserInput(1,1); } + if(IN_KeyDown(sc_F7)){ VL_ShowPage(&gvar.video.page[0], 0, 1); IN_UserInput(1,1); } \ + if(IN_KeyDown(sc_T)){ \ + switch(gvar.video.rs){\ + case 0:\ + case 1:\ + gvar.video.rs++;\ + break;\ + case 2:\ + gvar.video.rs=0;\ + break; }\ + IN_UserInput(1,1); } #define FUNCTIONKEYFUNCTIONS0EXE \ if(IN_KeyDown(sc_F6)){ VL_ShowPage(&gvar.video.page[gvar.video.panp], 0, 0); IN_UserInput(1,1); } \ if(IN_KeyDown(sc_F7)){ VL_ShowPage(&gvar.video.page[gvar.video.panp], 0, 1); IN_UserInput(1,1); } diff --git a/src/lib/16_tdef.h b/src/lib/16_tdef.h index cc96f290..1aa40e7f 100755 --- a/src/lib/16_tdef.h +++ b/src/lib/16_tdef.h @@ -265,7 +265,8 @@ typedef struct byte vga_draw_stride; byte vga_draw_stride_limit; // further X clipping // -boolean __near p; //render page number //BLEH + word __near rs; //render switch + boolean __near p; //render page number //BLEH boolean __near r; //page flip if true word pr[MAXPAGE][4]; //render sections of pages (this is supposed to be set up to draw sections of the screen if updated) diff --git a/src/lib/16_vl.c b/src/lib/16_vl.c index 1c9f94d5..408c349e 100755 --- a/src/lib/16_vl.c +++ b/src/lib/16_vl.c @@ -297,6 +297,8 @@ void modexHiganbanaPageSetup(video_t *video) video->vga_draw_stride= vga_state.vga_draw_stride; video->vga_draw_stride_limit= vga_state.vga_draw_stride_limit; + video->rs=0; + //setup the buffersize video->page[0].dx=video->page[0].dy= video->page[1].dx=video->page[1].dy=TILEWH; // 1 tile size buffer diff --git a/src/lib/scroll16.c b/src/lib/scroll16.c index 082e48eb..dacc9cbd 100755 --- a/src/lib/scroll16.c +++ b/src/lib/scroll16.c @@ -25,8 +25,10 @@ #include "src/lib/scroll16.h" #define ANIMATESPRIFUN ZC_animatePlayer +#define INC_PER_FRAME_PRINT sprintf(global_temp_status_text, "%u", player[pn].enti.persist_aniframe);\ +modexprint(&(pip->video->page[0]), player[pn].enti.x-(8*player[pn].enti.persist_aniframe), player[pn].enti.y-TILEWH-(8*player[pn].enti.persist_aniframe), 1, 20, 1, global_temp_status_text); -#define INC_PER_FRAME if(player[pn].enti.q&1) player[pn].enti.persist_aniframe++; if(player[pn].enti.persist_aniframe>4) player[pn].enti.persist_aniframe = 1; +#define INC_PER_FRAME if(player[pn].enti.q&1) player[pn].enti.persist_aniframe++; if(player[pn].enti.persist_aniframe>4) player[pn].enti.persist_aniframe = 1; INC_PER_FRAME_PRINT void ZC_walk(map_view_t *pip, player_t *player, word pn) { @@ -50,9 +52,6 @@ void ZC_walk(map_view_t *pip, player_t *player, word pn) mapScrollRight(pip, player, (pip[0].video->p), pn); player[pn].enti.q++; //0000pip[0].video->clk = ((*clockw)-pip[0].video->startclk)/18.2; - sprintf(global_temp_status_text, "%u", player[pn].enti.persist_aniframe); - modexprint(&(pip[0].video->page[0]), player[pn].enti.x+(8*player[pn].enti.persist_aniframe), player[pn].enti.y-TILEWH-8, 1, 8, 1, global_temp_status_text); - sleep(1); } else { player[pn].enti.q = 1; player[pn].enti.d = 2; player[pn].enti.tx++; } } else if(player[pn].enti.tx < pip[0].map->width && !(pip[0].map->data[(player[pn].enti.tx)+(pip[0].map->width*(player[pn].enti.ty-1))] == 0))//!(player[pn].enti.tx+1 == TRIGGX && player[pn].enti.ty == TRIGGY)) @@ -63,7 +62,6 @@ void ZC_walk(map_view_t *pip, player_t *player, word pn) player[pn].enti.x+=(player[pn].enti.speed); ANIMATESPRIFUN(pip, player, pn, 0); player[pn].enti.q++; - sleep(1); } else { player[pn].enti.q = 1; player[pn].enti.d = 2; player[pn].enti.tx++; } } else @@ -1105,6 +1103,50 @@ void shinku(global_game_variables_t *gv) } } +void near ZC_drawframe(map_view_t *pip, player_t *player, word pn, sword x, sword y, word dire, word sw) +{ + int i=0; + + switch(sw) + { + case 1: + dire+=2; + break; + case 2: + dire+=1; + break; +// case 3: +// dire=dire; +// break; + case 4: + dire+=2; + break; + } + if(pip[0].video->rs<2) + { + i = set_anim_by_id(player[pn].ent->spri, dire); if (i == -1) return; + //printf("RS<2\n"); + } + + switch(pip[0].video->rs) + { + case 0: + animate_spri(player[pn].ent->spri, pip->video); + break; + case 1: + oldanimate_spri(player[pn].ent->spri, pip->video); + break; + case 2: + modexClearRegion(&(pip[0].page[0]), x, y, 16, 32, dire); + break; + } +} + +/*void ZC_odrawframe() +{ + +}*/ + #ifdef SPRITE #define FRAME1 modexDrawSpriteRegion(pip[/*!*/(pip->video->p)].page, x, y, 48, dire, 24, 32, PLAYERBMPDATAPTR); #define FRAME2 modexDrawSpriteRegion(pip[/*!*/(pip->video->p)].page, x, y, 24, dire, 24, 32, PLAYERBMPDATAPTR); @@ -1205,7 +1247,6 @@ void near animatePlayer(map_view_t *pip, player_t *player, word pn, sword scroll pip->video->r=1; } - void near ZC_animatePlayer(map_view_t *pip, player_t *player, word pn, sword scrollswitch) { sword x = player[pn].enti.x; @@ -1213,9 +1254,7 @@ void near ZC_animatePlayer(map_view_t *pip, player_t *player, word pn, sword scr word dire=10; //direction sword qq; //scroll offset word ls = player[pn].enti.persist_aniframe; -#ifndef SPRITO - int i=0; -#endif + switch(scrollswitch) { case 0: @@ -1225,9 +1264,8 @@ void near ZC_animatePlayer(map_view_t *pip, player_t *player, word pn, sword scr qq = ((player[pn].enti.q)*(player[pn].enti.speed)); break; } -#ifdef SPRITE - x-=4; -#endif + if(pip[0].video->rs<2) + x-=4; y-=pip[0].map->tiles->tileHeight; switch (player[pn].enti.d) { @@ -1263,33 +1301,20 @@ void near ZC_animatePlayer(map_view_t *pip, player_t *player, word pn, sword scr //#define FRAME2 modexClearRegion(pip[/*!*/(pip->video->p)].page, x, y, 24, 32, 1+dire); //#define FRAME3 modexClearRegion(pip[/*!*/(pip->video->p)].page, x, y, 24, 32, dire); //#define FRAME4 modexClearRegion(pip[/*!*/(pip->video->p)].page, x, y, 24, 32, 1+dire); -#ifndef SPRITO -//#define DRAWFRAME if (i == -1) return; oldanimate_spri(player[pn].ent->spri, pip->video) -#define DRAWFRAME if (i == -1) return; animate_spri(player[pn].ent->spri, pip->video) -#define NFRAME1 i = set_anim_by_id(player[pn].ent->spri, 2+dire); DRAWFRAME; -#define NFRAME2 i = set_anim_by_id(player[pn].ent->spri, 1+dire); DRAWFRAME; -#define NFRAME3 i = set_anim_by_id(player[pn].ent->spri, dire); DRAWFRAME; -#define NFRAME4 i = set_anim_by_id(player[pn].ent->spri, 2+dire); DRAWFRAME; -#else -#define NFRAME1 modexClearRegion(pip[/*!*/(pip->video->p)].page, x, y, 16, 32, 2+dire); -#define NFRAME2 modexClearRegion(pip[/*!*/(pip->video->p)].page, x, y, 16, 32, 1+dire); -#define NFRAME3 modexClearRegion(pip[/*!*/(pip->video->p)].page, x, y, 16, 32, dire); -#define NFRAME4 modexClearRegion(pip[/*!*/(pip->video->p)].page, x, y, 16, 32, 1+dire); -#endif switch(ls) { case 1: - NFRAME1 + ZC_drawframe(pip, player, pn, x, y, dire, ls); break; case 2: - NFRAME2 + ZC_drawframe(pip, player, pn, x, y, dire, ls); break; case 3: - NFRAME3 + ZC_drawframe(pip, player, pn, x, y, dire, ls); break; case 4: - NFRAME4 + ZC_drawframe(pip, player, pn, x, y, dire, ls); break; } pip->video->r=1; diff --git a/src/lib/scroll16.h b/src/lib/scroll16.h index fe3fe4eb..eb6693dd 100755 --- a/src/lib/scroll16.h +++ b/src/lib/scroll16.h @@ -42,7 +42,6 @@ #include #define SPRITE -//#define SPRITO //#define TILERENDER //modexDrawSpritePBufRegion @@ -161,6 +160,7 @@ 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(global_game_variables_t *gv); +void near ZC_drawframe(map_view_t *pip, player_t *player, word pn, sword x, sword y, word dire, word sw); void near animatePlayer(map_view_t *pip, player_t *player, word pn, sword scrollswitch); void near ZC_animatePlayer(map_view_t *pip, player_t *player, word pn, sword scrollswitch); @@ -174,3 +174,89 @@ void walk_player(player_t *player, map_view_t *map_v); void near mapScroll(map_view_t *mv, player_t *player); #endif /*__SCROLL16_H_*/ +//older zc_animate +//#define SPRITO +/*void near ZC_animatePlayer_(map_view_t *pip, player_t *player, word pn, sword scrollswitch) +{ + sword x = player[pn].enti.x; + sword y = player[pn].enti.y; + word dire=10; //direction + sword qq; //scroll offset + word ls = player[pn].enti.persist_aniframe; +#ifndef SPRITO + int i=0; +#endif + switch(scrollswitch) + { + case 0: + qq = 0; + break; + default: + qq = ((player[pn].enti.q)*(player[pn].enti.speed)); + break; + } +#ifdef SPRITE + x-=4; +#endif + y-=pip[0].map->tiles->tileHeight; + switch (player[pn].enti.d) + { + case 0: + //up + dire*=player[pn].enti.d+1; + y-=qq; + break; + case 3: + // right + dire*=(player[pn].enti.d-1); + x+=qq; + break; + case 2: + break; + case 4: + //down + dire*=(player[pn].enti.d-1); + y+=qq; + break; + case 1: + //left + dire*=(player[pn].enti.d+3); + x-=qq; + break; + } + + //setting xy position + player[pn].ent->spri->x = x; + player[pn].ent->spri->y = y; + +#ifndef SPRITO +//#define DRAWFRAME if (i == -1) return; oldanimate_spri(player[pn].ent->spri, pip->video) +#define DRAWFRAME if (i == -1) return; animate_spri(player[pn].ent->spri, pip->video) +#define NFRAME1 i = set_anim_by_id(player[pn].ent->spri, 2+dire); DRAWFRAME; +#define NFRAME2 i = set_anim_by_id(player[pn].ent->spri, 1+dire); DRAWFRAME; +#define NFRAME3 i = set_anim_by_id(player[pn].ent->spri, dire); DRAWFRAME; +#define NFRAME4 i = set_anim_by_id(player[pn].ent->spri, 2+dire); DRAWFRAME; +#else +#define NFRAME1 modexClearRegion(pip[(pip->video->p)].page, x, y, 16, 32, 2+dire); +#define NFRAME2 modexClearRegion(pip[(pip->video->p)].page, x, y, 16, 32, 1+dire); +#define NFRAME3 modexClearRegion(pip[(pip->video->p)].page, x, y, 16, 32, dire); +#define NFRAME4 modexClearRegion(pip[(pip->video->p)].page, x, y, 16, 32, 1+dire); +#endif + + switch(ls) + { + case 1: + NFRAME1 + break; + case 2: + NFRAME2 + break; + case 3: + NFRAME3 + break; + case 4: + NFRAME4 + break; + } + pip->video->r=1; +}*/ diff --git a/src/scroll.c b/src/scroll.c index 3b317745..6baefa2a 100755 --- a/src/scroll.c +++ b/src/scroll.c @@ -112,6 +112,8 @@ void main(int argc, char *argv[]) modexHiganbanaPageSetup(&gvar.video); ZC_MVSetup(&mv, &map, &gvar); + //renderswitch + gvar.video.rs=2; /* set up paging */ //TODO: LOAD map data and position the map in the middle of the screen if smaller then screen @@ -119,6 +121,9 @@ void main(int argc, char *argv[]) playerXYpos(0, 0, &player, &mv, 0); IN_initplayer(&player, 0); + player[0].ent->spri->x = player[0].enti.x-4; + player[0].ent->spri->y = player[0].enti.y-16; + player[0].ent->spri->delay = 0; #ifndef SPRITE modexClearRegion(mv[0].page, player[0].enti.x, player[0].enti.y-TILEWH, 16, 32, 15); diff --git a/src/zcroll.c b/src/zcroll.c index 7b6c03b9..9e3c0b58 100755 --- a/src/zcroll.c +++ b/src/zcroll.c @@ -100,6 +100,9 @@ void main(int argc, char *argv[]) // setup camera and screen~ modexHiganbanaPageSetup(&gvar.video); ZC_MVSetup(&mv, &map, &gvar); + + //renderswitch + gvar.video.rs=0; //player[0].ent->spri->x = player[0].ent->spri->y = TILEWH; // set up paging