From 3c89cff81bd78546629af7fda864c3074f79ce38 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Sat, 6 Dec 2014 18:16:43 -0600 Subject: [PATCH] modified: Project 16.bfproject modified: scroll.exe modified: src/scroll.c --- Project 16.bfproject | 4 +- scroll.exe | Bin 49211 -> 48920 bytes src/scroll.c | 108 ++++++++++++++++++++++--------------------- 3 files changed, 57 insertions(+), 55 deletions(-) diff --git a/Project 16.bfproject b/Project 16.bfproject index ebde19af..83e32842 100644 --- a/Project 16.bfproject +++ b/Project 16.bfproject @@ -2,8 +2,8 @@ c2e.convert_special: 0 e2c.convert_num: 0 openfiles: /dos/z/16/doc/project.txt:60:0:0: openfiles: /dos/z/16/16.c:0:0:0: -openfiles: /dos/z/16/src/scroll.c:17044:16836:1: -openfiles: /dos/z/16/src/lib/scroll.c:1666:0:0: +openfiles: /dos/z/16/src/scroll.c:17553:16983:1: +openfiles: /dos/z/16/src/lib/scroll.c:359:0:0: openfiles: /dos/z/16/src/lib/scroll.h:1961:241:0: openfiles: /dos/z/16/src/v2/source/ENGINE/CONTROLS.C:2441:1179:0: openfiles: /dos/z/16/src/lib/modex16.c:13778:13034:0: diff --git a/scroll.exe b/scroll.exe index 7fb7acbbee447ff1ca794e4a538cc8a7b73dc5bd..28cab8a6678f1e526702de7bb6ba4900fbff7bb1 100644 GIT binary patch delta 14765 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 delta 14225 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 E-xEF$-~a#s diff --git a/src/scroll.c b/src/scroll.c index eca090f9..f511073c 100644 --- a/src/scroll.c +++ b/src/scroll.c @@ -32,8 +32,7 @@ typedef struct { word dyThresh; //???? } map_view_t; -//TODO: make this into actor_t -struct { +typedef struct { int x; //player exact position on the viewable map int y; //player exact position on the viewable map int tx; //player tile position on the viewable map @@ -43,7 +42,7 @@ struct { word q; //loop variable word d; //direction int hp; //hitpoints of the player -} player; +} actor_t; map_t allocMap(int w, int h); @@ -55,8 +54,8 @@ void mapScrollDown(map_view_t *mv, byte offset); void mapGoTo(map_view_t *mv, int tx, int ty); void mapDrawTile(tiles_t *t, word i, page_t *page, word x, word y); void mapDrawRow(map_view_t *mv, int tx, int ty, word y); -void mapDrawCol(map_view_t *mv, int tx, int ty, word x); -void dpad(sword k); +void mapDrawCol(map_view_t *mv, int tx, int ty, word x); +sword dpad(actor_t *qd); void animatePlayer(map_view_t *src, map_view_t *dest, /*map_view_t *top, */short d1, short d2, int x, int y, int ls, int lp, bitmap_t *bmp); #define TILEWH 16 @@ -77,12 +76,11 @@ void main() { page_t screen, screen2, screen3; map_t map; map_view_t mv, mv2, mv3; - map_view_t *bg, *spri, *mask;//, *tmp; + map_view_t *bg, *spri, *mask;//, *tmp; byte *pal; byte *ptr; + actor_t player; - player.q=1; - player.d=0; /* save the palette */ pal = modexNewPal(); @@ -126,16 +124,17 @@ void main() { //mapGoTo(mask, 0, 0); //TODO: put player in starting position of spot - //default player position on the viewable map + //default player position on the viewable map player.tx = bg->tx + 10; player.ty = bg->ty + 8; player.x = player.tx*TILEWH; player.y = player.ty*TILEWH; player.triggerx = player.tx; player.triggery = player.ty+1; - //TODO: erase player initial draw + player.q=0; + player.d=0; modexDrawSpriteRegion(spri->page, player.x-4, player.y-TILEWH, 24, 64, 24, 32, &ptmp); - //temp draw trigger box + modexClearRegion(spri->page, player.triggerx*16, player.triggery*16, 16, 16, 1); modexClearRegion(bg->page, player.triggerx*16, player.triggery*16, 16, 16, 1); modexShowPage(spri->page); @@ -146,10 +145,12 @@ void main() { //when player.tx or player.ty == 0 or player.tx == 20 or player.ty == 15 then stop because that is edge of map and you do not want to walk of the map - //TODO: make this better like rpg maker 2000 better - if(player.q == 1) + //TODO: make this better like rpg maker 2000 better + if(player.q <= 1) { - dpad(0/*, 0*/); + dpad(&player); + if(player.d>0) dpad(&player); + if(player.q<1) player.q++; } #define INC_PER_FRAME if(player.q&1) persist_aniframe++; if(persist_aniframe>4) persist_aniframe = 1; @@ -158,7 +159,6 @@ void main() { { if(bg->tx >= 0 && bg->tx+20 < MAPX && player.tx == bg->tx + 10 && !(player.tx+1 == TRIGGX && player.ty == TRIGGY)) { - //for(q=1; q<=(TILEWH/SPEED); q++) if(player.q<=(TILEWH/SPEED)) { INC_PER_FRAME; @@ -169,11 +169,10 @@ void main() { //mapScrollRight(mask, SPEED); modexShowPage(spri->page); player.q++; - } else { player.q = 1; player.d = 0; player.tx++; } + } else { player.q = 0; player.d = 0; player.tx++; } } else if(player.tx < MAPX && !(player.tx+1 == TRIGGX && player.ty == TRIGGY)) { - //for(q=1; q<=(TILEWH/SPEED); q++) if(player.q<=(TILEWH/SPEED)) { INC_PER_FRAME; @@ -182,7 +181,7 @@ void main() { animatePlayer(bg, spri, 1, 0, player.x, player.y, persist_aniframe, player.q, &ptmp); modexShowPage(spri->page); player.q++; - } else { player.q = 1; player.d = 0; player.tx++; } + } else { player.q = 0; player.d = 0; player.tx++; } } else { @@ -199,7 +198,6 @@ void main() { { if(bg->tx > 0 && bg->tx+20 <= MAPX && player.tx == bg->tx + 10 && !(player.tx-1 == TRIGGX && player.ty == TRIGGY)) { - //for(q=1; q<=(TILEWH/SPEED); q++) if(player.q<=(TILEWH/SPEED)) { INC_PER_FRAME; @@ -210,11 +208,10 @@ void main() { //mapScrollLeft(mask, SPEED); modexShowPage(spri->page); player.q++; - } else { player.q = 1; player.d = 0; player.tx--; } + } else { player.q = 0; player.d = 0; player.tx--; } } else if(player.tx > 1 && !(player.tx-1 == TRIGGX && player.ty == TRIGGY)) { - //for(q=1; q<=(TILEWH/SPEED); q++) if(player.q<=(TILEWH/SPEED)) { INC_PER_FRAME; @@ -223,7 +220,7 @@ void main() { animatePlayer(bg, spri, 3, 0, player.x, player.y, persist_aniframe, player.q, &ptmp); modexShowPage(spri->page); player.q++; - } else { player.q = 1; player.d = 0; player.tx--; } + } else { player.q = 0; player.d = 0; player.tx--; } } else { @@ -240,7 +237,6 @@ void main() { { if(bg->ty >= 0 && bg->ty+15 < MAPY && player.ty == bg->ty + 8 && !(player.tx == TRIGGX && player.ty+1 == TRIGGY)) { - //for(q=1; q<=(TILEWH/SPEED); q++) if(player.q<=(TILEWH/SPEED)) { INC_PER_FRAME; @@ -251,11 +247,10 @@ void main() { //mapScrollDown(mask, SPEED); modexShowPage(spri->page); player.q++; - } else { player.q = 1; player.d = 0; player.ty++; } + } else { player.q = 0; player.d = 0; player.ty++; } } else if(player.ty < MAPY && !(player.tx == TRIGGX && player.ty+1 == TRIGGY)) { - //for(q=1; q<=(TILEWH/SPEED); q++) if(player.q<=(TILEWH/SPEED)) { INC_PER_FRAME; @@ -264,7 +259,7 @@ void main() { animatePlayer(bg, spri, 2, 0, player.x, player.y, persist_aniframe, player.q, &ptmp); modexShowPage(spri->page); player.q++; - } else { player.q = 1; player.d = 0; player.ty++; } + } else { player.q = 0; player.d = 0; player.ty++; } } else { @@ -281,7 +276,6 @@ void main() { { if(bg->ty > 0 && bg->ty+15 <= MAPY && player.ty == bg->ty + 8 && !(player.tx == TRIGGX && player.ty-1 == TRIGGY)) { - //for(q=1; q<=(TILEWH/SPEED); q++) if(player.q<=(TILEWH/SPEED)) { INC_PER_FRAME; @@ -292,11 +286,10 @@ void main() { //mapScrollUp(mask, SPEED); modexShowPage(spri->page); player.q++; - } else { player.q = 1; player.d = 0; player.ty--; } + } else { player.q = 0; player.d = 0; player.ty--; } } else if(player.ty > 1 && !(player.tx == TRIGGX && player.ty-1 == TRIGGY)) { - //for(q=1; q<=(TILEWH/SPEED); q++) if(player.q<=(TILEWH/SPEED)) { INC_PER_FRAME; @@ -305,7 +298,7 @@ void main() { modexShowPage(spri->page); animatePlayer(bg, spri, 0, 0, player.x, player.y, persist_aniframe, player.q, &ptmp); player.q++; - } else { player.q = 1; player.d = 0; player.ty--; } + } else { player.q = 0; player.d = 0; player.ty--; } } else { @@ -449,7 +442,7 @@ mapScrollLeft(map_view_t *mv, byte offset) { if(mv->page->dx == 0) { /* go backward one tile */ mv->tx--; - + /* Snap the origin backward */ mv->page->data -= 4; mv->page->dx = mv->map->tiles->tileWidth; @@ -577,32 +570,41 @@ mapDrawCol(map_view_t *mv, int tx, int ty, word x) { i += mv->map->width; } } - -//sword -void -dpad(sword k/*, sword q*/) -{ - //printf("p1: %d\n", k); - //keypressed=0; - //if(q>1){ q=0; return q; } - //if(keypressed>1){ keypressed=0; return keypressed; } - if(k==0) + +sword +dpad(actor_t *qd) +{ + if((keyp(75) && !keyp(77))) qd->d = 4; //left + if((keyp(80) && !keyp(72))) qd->d = 3; //down + if((keyp(77) && !keyp(75))) qd->d = 2; //right + if((keyp(72) && !keyp(80))) qd->d = 1; //up +/* if(qd->d==0) { - if(keyp(75) && !keyp(77)){ player.d = 4; k++; } - if(keyp(80) && !keyp(72)){ player.d = 3; k++; } - if(keyp(77) && !keyp(75)){ player.d = 2; k++; } - if(keyp(72) && !keyp(80)){ player.d = 1; k++; } + //if((keyp(80) || keyp(72))) + //{ + if((keyp(72) && !keyp(80))&&qd->d==0) qd->d = 1; //up + if((keyp(80) && !keyp(72))&&qd->d==0) qd->d = 3; //down + //} + //if((keyp(75) || keyp(77))) + //{ + if((keyp(75) && !keyp(77))&&qd->d==0) qd->d = 4; //left + if((keyp(77) && !keyp(75))&&qd->d==0) qd->d = 2; //right + //} } else { - if(keyp(72) && !keyp(80)){ player.d = 1; k--; } - if(keyp(77) && !keyp(75)){ player.d = 2; k--; } - if(keyp(80) && !keyp(72)){ player.d = 3; k--; } - if(keyp(75) && !keyp(77)){ player.d = 4; k--; } - } - //printf("p2: %d\n", k); - if(k>1/* || k<-1*/){ dpad(k); } - //return keypressed=0; + if((qd->d==2 || qd->d==4)) + { + if(keyp(72) && !keyp(80)) qd->d = 1; //up + if(keyp(80) && !keyp(72)) qd->d = 3; //down + } + else if((qd->d==1 || qd->d==3)) + { + if(keyp(75) && !keyp(77)) qd->d = 4; //left + if(keyp(77) && !keyp(75)) qd->d = 2; //right + } + }*/ + return qd->d; } void -- 2.39.2