Store Bob's facing, to restore when resetting.
This commit is contained in:
parent
4d086a5136
commit
dd7188afc7
|
@ -49,6 +49,7 @@ static Sprite *walkSprite[3];
|
||||||
static Sprite *swimSprite[3];
|
static Sprite *swimSprite[3];
|
||||||
static Sprite *flySprite[3];
|
static Sprite *flySprite[3];
|
||||||
static int checkpointTimer;
|
static int checkpointTimer;
|
||||||
|
static int oldFacing;
|
||||||
|
|
||||||
Entity *initBob(void)
|
Entity *initBob(void)
|
||||||
{
|
{
|
||||||
|
@ -98,6 +99,8 @@ Entity *initBob(void)
|
||||||
|
|
||||||
checkpointTimer = 0;
|
checkpointTimer = 0;
|
||||||
|
|
||||||
|
oldFacing = 0;
|
||||||
|
|
||||||
return (Entity*)b;
|
return (Entity*)b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -201,8 +204,7 @@ static void handeImmunity(void)
|
||||||
|
|
||||||
if (world.bob->outTimer > 0)
|
if (world.bob->outTimer > 0)
|
||||||
{
|
{
|
||||||
world.bob->outTimer--;
|
if (--world.bob->outTimer <= 0)
|
||||||
if (world.bob->outTimer <= 0)
|
|
||||||
{
|
{
|
||||||
world.betweenTimer = FPS / 2;
|
world.betweenTimer = FPS / 2;
|
||||||
resetAtCheckpoint();
|
resetAtCheckpoint();
|
||||||
|
@ -210,8 +212,7 @@ static void handeImmunity(void)
|
||||||
}
|
}
|
||||||
else if (world.bob->stunTimer > 0)
|
else if (world.bob->stunTimer > 0)
|
||||||
{
|
{
|
||||||
world.bob->stunTimer--;
|
if (--world.bob->stunTimer <= 0)
|
||||||
if (world.bob->stunTimer <= 0)
|
|
||||||
{
|
{
|
||||||
if (!world.bob->isOnGround && world.bob->environment != ENV_WATER)
|
if (!world.bob->isOnGround && world.bob->environment != ENV_WATER)
|
||||||
{
|
{
|
||||||
|
@ -219,6 +220,7 @@ static void handeImmunity(void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
world.bob->facing = oldFacing;
|
||||||
world.bob->spriteFrame = 0;
|
world.bob->spriteFrame = 0;
|
||||||
world.bob->spriteTime = 0;
|
world.bob->spriteTime = 0;
|
||||||
world.bob->dy = 0;
|
world.bob->dy = 0;
|
||||||
|
@ -229,8 +231,7 @@ static void handeImmunity(void)
|
||||||
}
|
}
|
||||||
else if (world.bob->immuneTimer > 0)
|
else if (world.bob->immuneTimer > 0)
|
||||||
{
|
{
|
||||||
world.bob->immuneTimer--;
|
if (--world.bob->immuneTimer <= 0)
|
||||||
if (world.bob->immuneTimer <= 0)
|
|
||||||
{
|
{
|
||||||
world.bob->flags &= ~(EF_FLICKER | EF_IMMUNE);
|
world.bob->flags &= ~(EF_FLICKER | EF_IMMUNE);
|
||||||
}
|
}
|
||||||
|
@ -359,9 +360,7 @@ static void doBobInWater(void)
|
||||||
|
|
||||||
static void doDying(void)
|
static void doDying(void)
|
||||||
{
|
{
|
||||||
world.bob->health--;
|
if (--world.bob->health <= -(FPS * 2))
|
||||||
|
|
||||||
if (world.bob->health <= -(FPS * 2))
|
|
||||||
{
|
{
|
||||||
world.bob->flags |= EF_GONE;
|
world.bob->flags |= EF_GONE;
|
||||||
|
|
||||||
|
@ -600,6 +599,7 @@ void resetAtCheckpoint(void)
|
||||||
world.bob->x = world.bob->checkpoints[0].x;
|
world.bob->x = world.bob->checkpoints[0].x;
|
||||||
world.bob->y = world.bob->checkpoints[0].y;
|
world.bob->y = world.bob->checkpoints[0].y;
|
||||||
|
|
||||||
|
world.bob->facing = oldFacing;
|
||||||
world.bob->outTimer = 0;
|
world.bob->outTimer = 0;
|
||||||
world.bob->flags |= EF_FLICKER;
|
world.bob->flags |= EF_FLICKER;
|
||||||
world.bob->flags &= ~EF_WEIGHTLESS;
|
world.bob->flags &= ~EF_WEIGHTLESS;
|
||||||
|
@ -665,6 +665,11 @@ static void animate(void)
|
||||||
{
|
{
|
||||||
if (world.bob->stunTimer > 0 || world.bob->alive != ALIVE_ALIVE)
|
if (world.bob->stunTimer > 0 || world.bob->alive != ALIVE_ALIVE)
|
||||||
{
|
{
|
||||||
|
if (world.bob->facing != FACING_DIE)
|
||||||
|
{
|
||||||
|
oldFacing = world.bob->facing;
|
||||||
|
}
|
||||||
|
|
||||||
world.bob->facing = FACING_DIE;
|
world.bob->facing = FACING_DIE;
|
||||||
|
|
||||||
superAnimate();
|
superAnimate();
|
||||||
|
|
Loading…
Reference in New Issue