From 1a877773f7174fac42890fa58afd8aea45654f30 Mon Sep 17 00:00:00 2001 From: Milang Date: Sat, 14 Mar 2020 15:02:12 +0100 Subject: [PATCH] opimisations about mario --- SuperCbr.g1a | Bin 64000 -> 64176 bytes include/mario.h | 19 ++++++-------- src/bonus.c | 8 +++--- src/bullet.c | 4 +-- src/ennemi.c | 6 ++--- src/keyboard.c | 2 +- src/levelchanger.c | 8 +++--- src/mario.c | 61 ++++++++++++++++----------------------------- src/score.c | 4 +-- src/world.c | 2 +- 10 files changed, 46 insertions(+), 68 deletions(-) diff --git a/SuperCbr.g1a b/SuperCbr.g1a index eaaeb31defac424e81fd2ce1b1a55994d2f01c45..b617e6dab439ecdc09ed8786984ba999b156a593 100644 GIT binary patch delta 6500 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 delta 6374 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 JT|cXt{|D~c8>RpN diff --git a/include/mario.h b/include/mario.h index b70f45b..decb2eb 100755 --- a/include/mario.h +++ b/include/mario.h @@ -1,8 +1,8 @@ #ifndef MARIO_H #define MARIO_H -#define M_SMALL 0 -#define M_BIG 1 +#define M_SMALL 8 +#define M_BIG 16 #define M_LEFT1 0 #define M_LEFT2 1 @@ -21,10 +21,11 @@ typedef struct { box_t p; - int size; // small, big - int type1; // left1 left2, right1, right2, - int type2; // jump, down... - int running; + unsigned starMode :9; + unsigned immunity :6; + unsigned last_vx_sgn :1; + unsigned dead :1; + unsigned bullets :1; } pnj; extern pnj mario; extern int coins; @@ -37,12 +38,6 @@ void marioSmaller(); extern int global_quit; extern int numero_frame; -extern int mario_xMax; -extern int mario_dead; -extern int mario_immunity; -extern int mario_has_bullets; -extern int last_vx_sign; -extern int mario_starMode; #endif diff --git a/src/bonus.c b/src/bonus.c index a69394f..ffed65c 100644 --- a/src/bonus.c +++ b/src/bonus.c @@ -15,7 +15,7 @@ static bonus_t bonus ={BONUS_NONE, {0,0,TILE_W,TILE_H,0,0,0,1}, 0}; void bonusSet(bonus_id t, int x, int y) { bonus.type=t; - if (mario.size==M_BIG && t==BONUS_CHAMPI) + if (mario.p.h==M_BIG && t==BONUS_CHAMPI) bonus.type=BONUS_FLEUR; bonus.b.x=x; bonus.b.y=y; @@ -61,8 +61,8 @@ void bonusMove() //+collision { case BONUS_CHAMPI: case BONUS_FLEUR: - if (mario.size==M_SMALL) marioBigger(); - else mario_has_bullets=1; + if (mario.p.h==M_SMALL) marioBigger(); + else mario.bullets=1; break; case BONUS_1UP: @@ -71,7 +71,7 @@ void bonusMove() //+collision case BONUS_STAR: bonusSet(BONUS_NONE,0,0); - mario_starMode=1; + mario.starMode=1; } scoreAdd(1000); bonusSet(BONUS_NONE,0,0); diff --git a/src/bullet.c b/src/bullet.c index f67b2fe..bab3cc5 100644 --- a/src/bullet.c +++ b/src/bullet.c @@ -24,12 +24,12 @@ void bulletThrow() bullets[i].type=1; bullets[i].b.x=mario.p.x; bullets[i].b.y=mario.p.y+8; - if (last_vx_sign==0) + if (mario.last_vx_sgn==0) bullets[i].b.vx=-9; //speed = 9 else bullets[i].b.vx=9; bullets[i].b.vy=0; - bullets[i].p1=last_vx_sign; + bullets[i].p1=mario.last_vx_sgn; return; } } diff --git a/src/ennemi.c b/src/ennemi.c index d068720..b67c936 100644 --- a/src/ennemi.c +++ b/src/ennemi.c @@ -106,8 +106,8 @@ bool ennemi_check_collision(ennemi_t *e) { return (boxContact(&e->b, &mario.p)); void hurtMario() { - if (mario.size==M_SMALL && mario_immunity==0) - {mario_dead=1;finish_level=0;} + if (mario.p.h==M_SMALL && mario.immunity==0) + {mario.dead=1;finish_level=0;} else marioSmaller(); } @@ -142,7 +142,7 @@ void ennemiMove(ennemi_t *e) return; bool e_hitMario=ennemi_check_collision(e); - if (e_hitMario&&mario_starMode) + if (e_hitMario&&mario.starMode) { e->life=DEAD; e->p1=0; diff --git a/src/keyboard.c b/src/keyboard.c index 4cba447..1413636 100755 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -100,7 +100,7 @@ static int menu_pause() // 1 exit, 0 continue if (a==10) // Cheat code { marioBigger(); - mario_has_bullets=1; + mario.bullets=1; lifesAdd(20); extern image_t img_dev; diff --git a/src/levelchanger.c b/src/levelchanger.c index 14a2031..4d16385 100644 --- a/src/levelchanger.c +++ b/src/levelchanger.c @@ -258,7 +258,7 @@ int PlayLevel(int w, int l) initRefreshTimer(); //int finish_status=0; // FAil - finish_level=0; mario_dead=0; + finish_level=0; mario.dead=0; setLevel(w, l); if (map_current==0) { @@ -267,7 +267,7 @@ int PlayLevel(int w, int l) } cameraAdjust(); bonusSet(0, 0, 0); - + mario.last_vx_sgn=1; while(global_quit==0) @@ -282,9 +282,9 @@ int PlayLevel(int w, int l) scoreDisplay(); dupdate(); - if (mario_dead) + if (mario.dead) { - mario_immunity=0; + mario.immunity=0; int i=6; while(mario.p.y>=0) { diff --git a/src/mario.c b/src/mario.c index 87b2681..e378d55 100755 --- a/src/mario.c +++ b/src/mario.c @@ -14,58 +14,41 @@ pnj mario= { {26,17,6,8,0,0,0,1}, - M_SMALL, - M_RIGHT1, M_WALK, 0 }; -// if mario is able to throw fire bullets -int mario_has_bullets=0; - -// If mario is dead -int mario_dead=0; - -// Used to draw mario (mario direction) -int last_vx_sign=1; - -// After he becomes little -int mario_immunity=0; - -// Time during mario is invincible -int mario_starMode=0; - void marioBigger() { mario.p.h=16; - mario.size=M_BIG; - mario_has_bullets=0; + mario.p.h=M_BIG; + mario.bullets=0; } void marioSmaller() { mario.p.h=8; - mario.size=M_SMALL; - mario_has_bullets=0; - if (mario_immunity==0) mario_immunity=1; + mario.p.h=M_SMALL; + mario.bullets=0; + if (mario.immunity==0) mario.immunity=1; } void marioDraw() { - if ( (mario_immunity==0 || (mario_immunity/7)%2==0) && (mario_starMode/2)%2==0) + if ( (mario.immunity==0 || (mario.immunity/7)%2==0) && (mario.starMode/2)%2==0) { const int mx=mario.p.x-cameraX(mario.p.x)-1; const int my=mario.p.y-cameraY(mario.p.y); - if (mario.size==M_SMALL) + if (mario.p.h==M_SMALL) { - if (abs(mario.p.vx)>=3) tileDraw(mx, my, &mario_small, 2*last_vx_sign+(time_id/4)%2, 0); - else if (abs(mario.p.vx)>=1) tileDraw(mx, my, &mario_small, 2*last_vx_sign+(time_id/8)%2, 0); - else tileDraw(mx, my, &mario_small, 2*last_vx_sign, 0); + if (abs(mario.p.vx)>=3) tileDraw(mx, my, &mario_small, 2*mario.last_vx_sgn+(time_id/4)%2, 0); + else if (abs(mario.p.vx)>=1) tileDraw(mx, my, &mario_small, 2*mario.last_vx_sgn+(time_id/8)%2, 0); + else tileDraw(mx, my, &mario_small, 2*mario.last_vx_sgn, 0); } else { - if (abs(mario.p.vx)>=3) tileDraw(mx, my, &mario_big, 1+3*last_vx_sign+(time_id/4)%2, mario_has_bullets); - else if (abs(mario.p.vx)>=1) tileDraw(mx, my, &mario_big, 1+3*last_vx_sign+(time_id/8)%2, mario_has_bullets); - else tileDraw(mx, my, &mario_big, 3*last_vx_sign, mario_has_bullets); + if (abs(mario.p.vx)>=3) tileDraw(mx, my, &mario_big, 1+3*mario.last_vx_sgn+(time_id/4)%2, mario.bullets); + else if (abs(mario.p.vx)>=1) tileDraw(mx, my, &mario_big, 1+3*mario.last_vx_sgn+(time_id/8)%2, mario.bullets); + else tileDraw(mx, my, &mario_big, 3*mario.last_vx_sgn, mario.bullets); } } } @@ -83,14 +66,14 @@ int global_quit=0; void marioMove() { { // Mario star mode & immunity counters - if (mario_starMode==200) mario_starMode=0; - else if (mario_starMode) mario_starMode++; + if (mario.starMode==200) mario.starMode=0; + else if (mario.starMode) mario.starMode++; - if (mario_immunity==60) mario_immunity=0; - else if (mario_immunity) mario_immunity++; + if (mario.immunity==60) mario.immunity=0; + else if (mario.immunity) mario.immunity++; } - if (mario_has_bullets==1 && MKB_getKeyState(MK_RUN)==2) bulletThrow(); + if (mario.bullets==1 && MKB_getKeyState(MK_RUN)==2) bulletThrow(); { // Jump (with coyote time & jump buffering) if (MKB_getKeyState(MK_JUMP)==2 || jump_buffering) //|| keys[MK_JUMP2]==2) @@ -147,8 +130,8 @@ void marioMove() } { // last vx sign determination - if (vx>0 && (c1==CTG_SOIL || c2==CTG_SOIL)) last_vx_sign=1; - if (vx<0 && (c1==CTG_SOIL || c2==CTG_SOIL)) last_vx_sign=0; + if (vx>0 && (c1==CTG_SOIL || c2==CTG_SOIL)) mario.last_vx_sgn=1; + if (vx<0 && (c1==CTG_SOIL || c2==CTG_SOIL)) mario.last_vx_sgn=0; } if (mario.p.x+mario.p.vxnumber--; bonusSet(BONUS_STAR,((mario.p.x+mario.p.w/2)/8)*8,mario.p.y+mario.p.h+8); break; } } - else if (c->content==0 && mario.size==M_BIG && c->type==BRICK) + else if (c->content==0 && mario.p.h==M_BIG && c->type==BRICK) { c->state=c->time_hit_id=1; mario.p.vy=3; diff --git a/src/score.c b/src/score.c index ba33341..054b9a1 100644 --- a/src/score.c +++ b/src/score.c @@ -33,7 +33,7 @@ void gameNew() combo=0; combo_id=-10; marioSmaller(); - mario_immunity=0; + mario.immunity=0; levelNew(); time_spent=0; } @@ -111,7 +111,7 @@ void scoreDisplay() dtext(50,0,str, C_BLACK, C_WHITE); } - if ((mario_dead|finish_level)==0) + if ((mario.dead|finish_level)==0) { if (0==(time_id++)%8) { diff --git a/src/world.c b/src/world.c index d9ad47a..d6b9ba1 100755 --- a/src/world.c +++ b/src/world.c @@ -169,7 +169,7 @@ void worldDraw() for (int i=0, mx=mx0; i<=17; i++, mx+=8) for (int j=0, my=my0; j<=9; j++, my+=8) cellDraw(mx, my, 8*i-sx0, 8*j-sy0,1); // draw immunity remaining time [It's a progress bar on the left side of the screen] - if (mario_immunity) drect(0,64-MARIO_IMMUNITY_TIME+mario_immunity,2,64, C_BLACK); + if (mario.immunity) drect(0,64-MARIO_IMMUNITY_TIME+mario.immunity,2,64, C_BLACK); }