|
|
|
@ -72,6 +72,7 @@ void ennemiDisplay(ennemi_t const * e)
|
|
|
|
|
{
|
|
|
|
|
extern image_t img_plante;
|
|
|
|
|
t.sheet=&img_plante;
|
|
|
|
|
t.width*=2;
|
|
|
|
|
dsx=-4;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -79,22 +80,22 @@ void ennemiDisplay(ennemi_t const * e)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void plante_tour(ennemi_t *e)
|
|
|
|
|
void plante_tour(ennemi_t *e)
|
|
|
|
|
{
|
|
|
|
|
if (e->type==PLANTE_ID)
|
|
|
|
|
{
|
|
|
|
|
e->p1++;
|
|
|
|
|
e->p1%=93;
|
|
|
|
|
e->p1%=PLANTE_NLAPS;
|
|
|
|
|
if (0<=e->p1 && e->p1<35) // (plante en bas, en attente)
|
|
|
|
|
{
|
|
|
|
|
if (abs(mario.p.x-e->b.x)<15) e->p1=0;
|
|
|
|
|
}
|
|
|
|
|
if (35<=e->p1 && e->p1<52)
|
|
|
|
|
if (35<=e->p1 && e->p1<58)
|
|
|
|
|
{
|
|
|
|
|
if ((e->p1+1)%3==0) e->b.y++;
|
|
|
|
|
}
|
|
|
|
|
if (52<=e->p1 && e->p1<75){} // plante en attente en haut
|
|
|
|
|
if (75<=e->p1 && e->p1<92)
|
|
|
|
|
if (58<=e->p1 && e->p1<75){} // plante en attente en haut
|
|
|
|
|
if (75<=e->p1 && e->p1<98)
|
|
|
|
|
{
|
|
|
|
|
if (e->p1%3==0) e->b.y--;
|
|
|
|
|
}
|
|
|
|
@ -267,7 +268,7 @@ void ennemiMove(ennemi_t *e)
|
|
|
|
|
e->p1=2;
|
|
|
|
|
e->b.vx=0;
|
|
|
|
|
scoreAdd(KILL_ENNEMI);
|
|
|
|
|
mario.p.vy=4;
|
|
|
|
|
mario.p.vy=6;
|
|
|
|
|
mario.p.y=e->b.y+ennemi_heights[e->type]+1;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
@ -279,19 +280,21 @@ void ennemiMove(ennemi_t *e)
|
|
|
|
|
if (mario.p.x<=e->b.x) e->p1=1;
|
|
|
|
|
e->b.vx=6*e->p1;
|
|
|
|
|
|
|
|
|
|
mario.p.vy=4;
|
|
|
|
|
mario.p.vy=6;
|
|
|
|
|
mario.p.y=e->b.y+ennemi_heights[CARAPACE_VERTE];
|
|
|
|
|
boxMove(&e->b);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
e->p1=e->b.vx=0;
|
|
|
|
|
mario.p.vy=4;
|
|
|
|
|
e->p1=e->b.vx=mario.p.vx=0;
|
|
|
|
|
mario.p.vy=6;
|
|
|
|
|
mario.p.y=e->b.y+ennemi_heights[CARAPACE_VERTE]+1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case PLANTE_ID:
|
|
|
|
|
hurtMario();
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else if (e_hitMario) switch (e->type) // hurt mario
|
|
|
|
|
{
|
|
|
|
@ -310,17 +313,22 @@ void ennemiMove(ennemi_t *e)
|
|
|
|
|
e->b.vx=6*e->p1;
|
|
|
|
|
if (mario_fatal_hit)
|
|
|
|
|
{
|
|
|
|
|
mario.p.vy=4;
|
|
|
|
|
mario.p.vy=6;
|
|
|
|
|
mario.p.y=e->b.y+ennemi_heights[CARAPACE_VERTE];
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{ // mario bounce
|
|
|
|
|
if (mario.p.x>=e->b.x) mario.p.x=e->b.x+e->b.w;
|
|
|
|
|
else mario.p.x=e->b.x-mario.p.w;
|
|
|
|
|
mario.p.vx=0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else hurtMario();
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case PLANTE_ID:
|
|
|
|
|
hurtMario();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|