mirror of
https://github.com/DrBeef/Raze.git
synced 2025-03-05 17:01:56 +00:00
- globally replaced sp-> in skull.cpp
This commit is contained in:
parent
0d0d5366b1
commit
f58d4e2604
1 changed files with 66 additions and 66 deletions
|
@ -213,7 +213,7 @@ int SetupSkull(DSWActor* actor)
|
||||||
USERp u;
|
USERp u;
|
||||||
ANIMATOR DoActorDecide;
|
ANIMATOR DoActorDecide;
|
||||||
|
|
||||||
if (TEST(sp->cstat, CSTAT_SPRITE_RESTORE))
|
if (TEST(actor->spr.cstat, CSTAT_SPRITE_RESTORE))
|
||||||
{
|
{
|
||||||
u = actor->u();
|
u = actor->u();
|
||||||
ASSERT(u);
|
ASSERT(u);
|
||||||
|
@ -233,24 +233,24 @@ int SetupSkull(DSWActor* actor)
|
||||||
u->ID = SKULL_R0;
|
u->ID = SKULL_R0;
|
||||||
|
|
||||||
EnemyDefaults(actor, nullptr, nullptr);
|
EnemyDefaults(actor, nullptr, nullptr);
|
||||||
sp->clipdist = (128+64) >> 2;
|
actor->spr.clipdist = (128+64) >> 2;
|
||||||
SET(u->Flags, SPR_XFLIP_TOGGLE);
|
SET(u->Flags, SPR_XFLIP_TOGGLE);
|
||||||
SET(sp->cstat, CSTAT_SPRITE_YCENTER);
|
SET(actor->spr.cstat, CSTAT_SPRITE_YCENTER);
|
||||||
|
|
||||||
u->Radius = 400;
|
u->Radius = 400;
|
||||||
|
|
||||||
if (GetSpriteZOfBottom(sp) > u->loz - Z(16))
|
if (GetSpriteZOfBottom(sp) > u->loz - Z(16))
|
||||||
{
|
{
|
||||||
sp->pos.Z = u->loz + Z(tileTopOffset(sp->picnum));
|
actor->spr.pos.Z = u->loz + Z(tileTopOffset(actor->spr.picnum));
|
||||||
|
|
||||||
u->loz = sp->pos.Z;
|
u->loz = actor->spr.pos.Z;
|
||||||
// leave 8 pixels above the ground
|
// leave 8 pixels above the ground
|
||||||
sp->pos.Z += GetSpriteSizeToTop(sp) - Z(3);;
|
actor->spr.pos.Z += GetSpriteSizeToTop(sp) - Z(3);;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
u->Counter = RANDOM_P2(2048);
|
u->Counter = RANDOM_P2(2048);
|
||||||
u->sz = sp->pos.Z;
|
u->sz = actor->spr.pos.Z;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -263,9 +263,9 @@ int DoSkullMove(DSWActor* actor)
|
||||||
SPRITEp sp = &actor->s();
|
SPRITEp sp = &actor->s();
|
||||||
int32_t dax, day, daz;
|
int32_t dax, day, daz;
|
||||||
|
|
||||||
dax = MOVEx(sp->xvel, sp->ang);
|
dax = MOVEx(actor->spr.xvel, actor->spr.ang);
|
||||||
day = MOVEy(sp->xvel, sp->ang);
|
day = MOVEy(actor->spr.xvel, actor->spr.ang);
|
||||||
daz = sp->zvel;
|
daz = actor->spr.zvel;
|
||||||
|
|
||||||
u->coll = move_missile(actor, dax, day, daz, Z(16), Z(16), CLIPMASK_MISSILE, ACTORMOVETICS);
|
u->coll = move_missile(actor, dax, day, daz, Z(16), Z(16), CLIPMASK_MISSILE, ACTORMOVETICS);
|
||||||
|
|
||||||
|
@ -286,28 +286,28 @@ int DoSkullBeginDeath(DSWActor* actor)
|
||||||
|
|
||||||
// starts the explosion that does the actual damage
|
// starts the explosion that does the actual damage
|
||||||
|
|
||||||
switch (sp->hitag)
|
switch (actor->spr.hitag)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
if (sp->lotag) num_ord = sp->lotag;
|
if (actor->spr.lotag) num_ord = actor->spr.lotag;
|
||||||
else
|
else
|
||||||
num_ord = 2;
|
num_ord = 2;
|
||||||
if (num_ord > 3) num_ord = 3;
|
if (num_ord > 3) num_ord = 3;
|
||||||
for (i=0; i<num_ord; i++)
|
for (i=0; i<num_ord; i++)
|
||||||
{
|
{
|
||||||
sp->ang = NORM_ANGLE(sp->ang+(i*1024));
|
actor->spr.ang = NORM_ANGLE(actor->spr.ang+(i*1024));
|
||||||
InitSpriteChemBomb(actor);
|
InitSpriteChemBomb(actor);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
if (sp->lotag) num_ord = sp->lotag;
|
if (actor->spr.lotag) num_ord = actor->spr.lotag;
|
||||||
else
|
else
|
||||||
num_ord = 5;
|
num_ord = 5;
|
||||||
if (num_ord > 10) num_ord = 10;
|
if (num_ord > 10) num_ord = 10;
|
||||||
for (i=0; i<num_ord; i++)
|
for (i=0; i<num_ord; i++)
|
||||||
{
|
{
|
||||||
sp->ang = NORM_ANGLE(RandomRange(2048));
|
actor->spr.ang = NORM_ANGLE(RandomRange(2048));
|
||||||
InitCaltrops(actor);
|
InitCaltrops(actor);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -318,13 +318,13 @@ int DoSkullBeginDeath(DSWActor* actor)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
if (sp->lotag) num_ord = sp->lotag;
|
if (actor->spr.lotag) num_ord = actor->spr.lotag;
|
||||||
else
|
else
|
||||||
num_ord = 5;
|
num_ord = 5;
|
||||||
if (num_ord > 10) num_ord = 10;
|
if (num_ord > 10) num_ord = 10;
|
||||||
for (i=0; i<num_ord; i++)
|
for (i=0; i<num_ord; i++)
|
||||||
{
|
{
|
||||||
sp->ang = NORM_ANGLE(sp->ang+(i*(2048/num_ord)));
|
actor->spr.ang = NORM_ANGLE(actor->spr.ang+(i*(2048/num_ord)));
|
||||||
InitSpriteGrenade(actor);
|
InitSpriteGrenade(actor);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -332,20 +332,20 @@ int DoSkullBeginDeath(DSWActor* actor)
|
||||||
SpawnMineExp(actor);
|
SpawnMineExp(actor);
|
||||||
for (i=0; i<3; i++)
|
for (i=0; i<3; i++)
|
||||||
{
|
{
|
||||||
sp->ang = NORM_ANGLE(RandomRange(2048));
|
actor->spr.ang = NORM_ANGLE(RandomRange(2048));
|
||||||
InitPhosphorus(actor);
|
InitPhosphorus(actor);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
RESET(sp->cstat, CSTAT_SPRITE_BLOCK|CSTAT_SPRITE_BLOCK_HITSCAN);
|
RESET(actor->spr.cstat, CSTAT_SPRITE_BLOCK|CSTAT_SPRITE_BLOCK_HITSCAN);
|
||||||
u->RotNum = 0;
|
u->RotNum = 0;
|
||||||
u->Tics = 0;
|
u->Tics = 0;
|
||||||
u->ID = SKULL_R0;
|
u->ID = SKULL_R0;
|
||||||
u->Radius = DamageData[DMG_SKULL_EXP].radius; //*DamageRadiusSkull;
|
u->Radius = DamageData[DMG_SKULL_EXP].radius; //*DamageRadiusSkull;
|
||||||
u->OverlapZ = Z(64);
|
u->OverlapZ = Z(64);
|
||||||
change_actor_stat(actor, STAT_DEAD_ACTOR);
|
change_actor_stat(actor, STAT_DEAD_ACTOR);
|
||||||
sp->shade = -40;
|
actor->spr.shade = -40;
|
||||||
|
|
||||||
SpawnLittleExp(actor);
|
SpawnLittleExp(actor);
|
||||||
SetSuicide(actor);
|
SetSuicide(actor);
|
||||||
|
@ -358,10 +358,10 @@ int DoSkullJump(DSWActor* actor)
|
||||||
USER* u = actor->u();
|
USER* u = actor->u();
|
||||||
SPRITEp sp = &actor->s();
|
SPRITEp sp = &actor->s();
|
||||||
|
|
||||||
if (sp->xvel)
|
if (actor->spr.xvel)
|
||||||
DoSkullMove(actor);
|
DoSkullMove(actor);
|
||||||
else
|
else
|
||||||
sp->ang = NORM_ANGLE(sp->ang + (64 * ACTORMOVETICS));
|
actor->spr.ang = NORM_ANGLE(actor->spr.ang + (64 * ACTORMOVETICS));
|
||||||
|
|
||||||
if (TEST(u->Flags,SPR_JUMPING))
|
if (TEST(u->Flags,SPR_JUMPING))
|
||||||
{
|
{
|
||||||
|
@ -372,12 +372,12 @@ int DoSkullJump(DSWActor* actor)
|
||||||
DoFall(actor);
|
DoFall(actor);
|
||||||
|
|
||||||
// jump/fall type
|
// jump/fall type
|
||||||
if (sp->xvel)
|
if (actor->spr.xvel)
|
||||||
{
|
{
|
||||||
|
|
||||||
int dist,a,b,c;
|
int dist,a,b,c;
|
||||||
|
|
||||||
DISTANCE(sp->pos.X, sp->pos.Y, u->targetActor->spr.pos.X, u->targetActor->spr.pos.Y, dist, a, b, c);
|
DISTANCE(actor->spr.pos.X, actor->spr.pos.Y, u->targetActor->spr.pos.X, u->targetActor->spr.pos.Y, dist, a, b, c);
|
||||||
|
|
||||||
if (dist < 1000 &&
|
if (dist < 1000 &&
|
||||||
SpriteOverlapZ(actor, u->targetActor, Z(32)))
|
SpriteOverlapZ(actor, u->targetActor, Z(32)))
|
||||||
|
@ -387,9 +387,9 @@ int DoSkullJump(DSWActor* actor)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((sp->pos.Z > u->loz - Z(36)))
|
if ((actor->spr.pos.Z > u->loz - Z(36)))
|
||||||
{
|
{
|
||||||
sp->pos.Z = u->loz - Z(36);
|
actor->spr.pos.Z = u->loz - Z(36);
|
||||||
UpdateSinglePlayKills(actor);
|
UpdateSinglePlayKills(actor);
|
||||||
DoSkullBeginDeath(actor);
|
DoSkullBeginDeath(actor);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -424,7 +424,7 @@ int DoSkullBob(DSWActor* actor)
|
||||||
const int SKULL_BOB_AMT = (Z(16));
|
const int SKULL_BOB_AMT = (Z(16));
|
||||||
|
|
||||||
u->Counter = (u->Counter + (ACTORMOVETICS << 3) + (ACTORMOVETICS << 1)) & 2047;
|
u->Counter = (u->Counter + (ACTORMOVETICS << 3) + (ACTORMOVETICS << 1)) & 2047;
|
||||||
sp->pos.Z = u->sz + MulScale(SKULL_BOB_AMT, bsin(u->Counter), 14) +
|
actor->spr.pos.Z = u->sz + MulScale(SKULL_BOB_AMT, bsin(u->Counter), 14) +
|
||||||
MulScale(DIV2(SKULL_BOB_AMT), bsin(u->Counter), 14);
|
MulScale(DIV2(SKULL_BOB_AMT), bsin(u->Counter), 14);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -444,7 +444,7 @@ int DoSkullWait(DSWActor* actor)
|
||||||
SPRITEp sp = &actor->s();
|
SPRITEp sp = &actor->s();
|
||||||
int a,b,c,dist;
|
int a,b,c,dist;
|
||||||
|
|
||||||
DISTANCE(sp->pos.X, sp->pos.Y, u->targetActor->spr.pos.X, u->targetActor->spr.pos.Y, dist, a, b, c);
|
DISTANCE(actor->spr.pos.X, actor->spr.pos.Y, u->targetActor->spr.pos.X, u->targetActor->spr.pos.Y, dist, a, b, c);
|
||||||
|
|
||||||
DoActorPickClosePlayer(actor);
|
DoActorPickClosePlayer(actor);
|
||||||
|
|
||||||
|
@ -458,12 +458,12 @@ int DoSkullWait(DSWActor* actor)
|
||||||
}
|
}
|
||||||
|
|
||||||
// below the floor type
|
// below the floor type
|
||||||
if (sp->pos.Z > u->loz)
|
if (actor->spr.pos.Z > u->loz)
|
||||||
{
|
{
|
||||||
// look for closest player every once in a while
|
// look for closest player every once in a while
|
||||||
if (dist < 3500)
|
if (dist < 3500)
|
||||||
{
|
{
|
||||||
sp->xvel = 0;
|
actor->spr.xvel = 0;
|
||||||
u->jump_speed = -600;
|
u->jump_speed = -600;
|
||||||
NewStateGroup(actor, sg_SkullJump);
|
NewStateGroup(actor, sg_SkullJump);
|
||||||
DoBeginJump(actor);
|
DoBeginJump(actor);
|
||||||
|
@ -472,14 +472,14 @@ int DoSkullWait(DSWActor* actor)
|
||||||
else
|
else
|
||||||
// above the floor type
|
// above the floor type
|
||||||
{
|
{
|
||||||
sp->ang = NORM_ANGLE(sp->ang + (48 * ACTORMOVETICS));
|
actor->spr.ang = NORM_ANGLE(actor->spr.ang + (48 * ACTORMOVETICS));
|
||||||
|
|
||||||
DoSkullBob(actor);
|
DoSkullBob(actor);
|
||||||
|
|
||||||
if (dist < 8000)
|
if (dist < 8000)
|
||||||
{
|
{
|
||||||
sp->ang = getangle(u->targetActor->spr.pos.X - sp->pos.X, u->targetActor->spr.pos.Y - sp->pos.Y);
|
actor->spr.ang = getangle(u->targetActor->spr.pos.X - actor->spr.pos.X, u->targetActor->spr.pos.Y - actor->spr.pos.Y);
|
||||||
sp->xvel = 128 + (RANDOM_P2(256<<8)>>8);
|
actor->spr.xvel = 128 + (RANDOM_P2(256<<8)>>8);
|
||||||
u->jump_speed = -700;
|
u->jump_speed = -700;
|
||||||
NewStateGroup(actor, sg_SkullJump);
|
NewStateGroup(actor, sg_SkullJump);
|
||||||
DoBeginJump(actor);
|
DoBeginJump(actor);
|
||||||
|
@ -617,7 +617,7 @@ int SetupBetty(DSWActor* actor)
|
||||||
USERp u;
|
USERp u;
|
||||||
ANIMATOR DoActorDecide;
|
ANIMATOR DoActorDecide;
|
||||||
|
|
||||||
if (TEST(sp->cstat, CSTAT_SPRITE_RESTORE))
|
if (TEST(actor->spr.cstat, CSTAT_SPRITE_RESTORE))
|
||||||
{
|
{
|
||||||
u = actor->u();
|
u = actor->u();
|
||||||
ASSERT(u);
|
ASSERT(u);
|
||||||
|
@ -637,24 +637,24 @@ int SetupBetty(DSWActor* actor)
|
||||||
u->ID = BETTY_R0;
|
u->ID = BETTY_R0;
|
||||||
|
|
||||||
EnemyDefaults(actor, nullptr, nullptr);
|
EnemyDefaults(actor, nullptr, nullptr);
|
||||||
sp->clipdist = (128+64) >> 2;
|
actor->spr.clipdist = (128+64) >> 2;
|
||||||
SET(u->Flags, SPR_XFLIP_TOGGLE);
|
SET(u->Flags, SPR_XFLIP_TOGGLE);
|
||||||
SET(sp->cstat, CSTAT_SPRITE_YCENTER);
|
SET(actor->spr.cstat, CSTAT_SPRITE_YCENTER);
|
||||||
|
|
||||||
u->Radius = 400;
|
u->Radius = 400;
|
||||||
|
|
||||||
if (GetSpriteZOfBottom(sp) > u->loz - Z(16))
|
if (GetSpriteZOfBottom(sp) > u->loz - Z(16))
|
||||||
{
|
{
|
||||||
sp->pos.Z = u->loz + Z(tileTopOffset(sp->picnum));
|
actor->spr.pos.Z = u->loz + Z(tileTopOffset(actor->spr.picnum));
|
||||||
|
|
||||||
u->loz = sp->pos.Z;
|
u->loz = actor->spr.pos.Z;
|
||||||
// leave 8 pixels above the ground
|
// leave 8 pixels above the ground
|
||||||
sp->pos.Z += GetSpriteSizeToTop(sp) - Z(3);;
|
actor->spr.pos.Z += GetSpriteSizeToTop(sp) - Z(3);;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
u->Counter = RANDOM_P2(2048);
|
u->Counter = RANDOM_P2(2048);
|
||||||
u->sz = sp->pos.Z;
|
u->sz = actor->spr.pos.Z;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -667,9 +667,9 @@ int DoBettyMove(DSWActor* actor)
|
||||||
SPRITEp sp = &actor->s();
|
SPRITEp sp = &actor->s();
|
||||||
int32_t dax, day, daz;
|
int32_t dax, day, daz;
|
||||||
|
|
||||||
dax = MOVEx(sp->xvel, sp->ang);
|
dax = MOVEx(actor->spr.xvel, actor->spr.ang);
|
||||||
day = MOVEy(sp->xvel, sp->ang);
|
day = MOVEy(actor->spr.xvel, actor->spr.ang);
|
||||||
daz = sp->zvel;
|
daz = actor->spr.zvel;
|
||||||
|
|
||||||
u->coll = move_missile(actor, dax, day, daz, Z(16), Z(16), CLIPMASK_MISSILE, ACTORMOVETICS);
|
u->coll = move_missile(actor, dax, day, daz, Z(16), Z(16), CLIPMASK_MISSILE, ACTORMOVETICS);
|
||||||
|
|
||||||
|
@ -685,28 +685,28 @@ int DoBettyBeginDeath(DSWActor* actor)
|
||||||
|
|
||||||
// starts the explosion that does the actual damage
|
// starts the explosion that does the actual damage
|
||||||
|
|
||||||
switch (sp->hitag)
|
switch (actor->spr.hitag)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
if (sp->lotag) num_ord = sp->lotag;
|
if (actor->spr.lotag) num_ord = actor->spr.lotag;
|
||||||
else
|
else
|
||||||
num_ord = 2;
|
num_ord = 2;
|
||||||
if (num_ord > 3) num_ord = 3;
|
if (num_ord > 3) num_ord = 3;
|
||||||
for (i=0; i<num_ord; i++)
|
for (i=0; i<num_ord; i++)
|
||||||
{
|
{
|
||||||
sp->ang = NORM_ANGLE(sp->ang+(i*1024));
|
actor->spr.ang = NORM_ANGLE(actor->spr.ang+(i*1024));
|
||||||
InitSpriteChemBomb(actor);
|
InitSpriteChemBomb(actor);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
if (sp->lotag) num_ord = sp->lotag;
|
if (actor->spr.lotag) num_ord = actor->spr.lotag;
|
||||||
else
|
else
|
||||||
num_ord = 5;
|
num_ord = 5;
|
||||||
if (num_ord > 10) num_ord = 10;
|
if (num_ord > 10) num_ord = 10;
|
||||||
for (i=0; i<num_ord; i++)
|
for (i=0; i<num_ord; i++)
|
||||||
{
|
{
|
||||||
sp->ang = NORM_ANGLE(RandomRange(2048));
|
actor->spr.ang = NORM_ANGLE(RandomRange(2048));
|
||||||
InitCaltrops(actor);
|
InitCaltrops(actor);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -716,34 +716,34 @@ int DoBettyBeginDeath(DSWActor* actor)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
if (sp->lotag) num_ord = sp->lotag;
|
if (actor->spr.lotag) num_ord = actor->spr.lotag;
|
||||||
else
|
else
|
||||||
num_ord = 5;
|
num_ord = 5;
|
||||||
if (num_ord > 10) num_ord = 10;
|
if (num_ord > 10) num_ord = 10;
|
||||||
for (i=0; i<num_ord; i++)
|
for (i=0; i<num_ord; i++)
|
||||||
{
|
{
|
||||||
sp->ang = NORM_ANGLE(sp->ang + (i*(2048/num_ord)));
|
actor->spr.ang = NORM_ANGLE(actor->spr.ang + (i*(2048/num_ord)));
|
||||||
InitSpriteGrenade(actor);
|
InitSpriteGrenade(actor);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
for (i=0; i<5; i++)
|
for (i=0; i<5; i++)
|
||||||
{
|
{
|
||||||
sp->ang = NORM_ANGLE(RandomRange(2048));
|
actor->spr.ang = NORM_ANGLE(RandomRange(2048));
|
||||||
InitPhosphorus(actor);
|
InitPhosphorus(actor);
|
||||||
SpawnMineExp(actor);
|
SpawnMineExp(actor);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
RESET(sp->cstat, CSTAT_SPRITE_BLOCK|CSTAT_SPRITE_BLOCK_HITSCAN);
|
RESET(actor->spr.cstat, CSTAT_SPRITE_BLOCK|CSTAT_SPRITE_BLOCK_HITSCAN);
|
||||||
u->RotNum = 0;
|
u->RotNum = 0;
|
||||||
u->Tics = 0;
|
u->Tics = 0;
|
||||||
u->ID = BETTY_R0;
|
u->ID = BETTY_R0;
|
||||||
u->Radius = DamageData[DMG_SKULL_EXP].radius; //*DamageRadiusBetty;
|
u->Radius = DamageData[DMG_SKULL_EXP].radius; //*DamageRadiusBetty;
|
||||||
u->OverlapZ = Z(64);
|
u->OverlapZ = Z(64);
|
||||||
change_actor_stat(actor, STAT_DEAD_ACTOR);
|
change_actor_stat(actor, STAT_DEAD_ACTOR);
|
||||||
sp->shade = -40;
|
actor->spr.shade = -40;
|
||||||
|
|
||||||
SpawnLittleExp(actor);
|
SpawnLittleExp(actor);
|
||||||
SetSuicide(actor);
|
SetSuicide(actor);
|
||||||
|
@ -756,10 +756,10 @@ int DoBettyJump(DSWActor* actor)
|
||||||
USER* u = actor->u();
|
USER* u = actor->u();
|
||||||
SPRITEp sp = &actor->s();
|
SPRITEp sp = &actor->s();
|
||||||
|
|
||||||
if (sp->xvel)
|
if (actor->spr.xvel)
|
||||||
DoBettyMove(actor);
|
DoBettyMove(actor);
|
||||||
else
|
else
|
||||||
sp->ang = NORM_ANGLE(sp->ang + (64 * ACTORMOVETICS));
|
actor->spr.ang = NORM_ANGLE(actor->spr.ang + (64 * ACTORMOVETICS));
|
||||||
|
|
||||||
if (TEST(u->Flags,SPR_JUMPING))
|
if (TEST(u->Flags,SPR_JUMPING))
|
||||||
{
|
{
|
||||||
|
@ -770,11 +770,11 @@ int DoBettyJump(DSWActor* actor)
|
||||||
DoFall(actor);
|
DoFall(actor);
|
||||||
|
|
||||||
// jump/fall type
|
// jump/fall type
|
||||||
if (sp->xvel)
|
if (actor->spr.xvel)
|
||||||
{
|
{
|
||||||
int dist,a,b,c;
|
int dist,a,b,c;
|
||||||
|
|
||||||
DISTANCE(sp->pos.X, sp->pos.Y, u->targetActor->spr.pos.X, u->targetActor->spr.pos.Y, dist, a, b, c);
|
DISTANCE(actor->spr.pos.X, actor->spr.pos.Y, u->targetActor->spr.pos.X, u->targetActor->spr.pos.Y, dist, a, b, c);
|
||||||
|
|
||||||
if (dist < 1000 &&
|
if (dist < 1000 &&
|
||||||
SpriteOverlapZ(actor, u->targetActor, Z(32)))
|
SpriteOverlapZ(actor, u->targetActor, Z(32)))
|
||||||
|
@ -784,9 +784,9 @@ int DoBettyJump(DSWActor* actor)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((sp->pos.Z > u->loz - Z(36)))
|
if ((actor->spr.pos.Z > u->loz - Z(36)))
|
||||||
{
|
{
|
||||||
sp->pos.Z = u->loz - Z(36);
|
actor->spr.pos.Z = u->loz - Z(36);
|
||||||
UpdateSinglePlayKills(actor);
|
UpdateSinglePlayKills(actor);
|
||||||
DoBettyBeginDeath(actor);
|
DoBettyBeginDeath(actor);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -820,7 +820,7 @@ int DoBettyBob(DSWActor* actor)
|
||||||
const int BETTY_BOB_AMT = (Z(16));
|
const int BETTY_BOB_AMT = (Z(16));
|
||||||
|
|
||||||
u->Counter = (u->Counter + (ACTORMOVETICS << 3) + (ACTORMOVETICS << 1)) & 2047;
|
u->Counter = (u->Counter + (ACTORMOVETICS << 3) + (ACTORMOVETICS << 1)) & 2047;
|
||||||
sp->pos.Z = u->sz + MulScale(BETTY_BOB_AMT, bsin(u->Counter), 14) +
|
actor->spr.pos.Z = u->sz + MulScale(BETTY_BOB_AMT, bsin(u->Counter), 14) +
|
||||||
MulScale(DIV2(BETTY_BOB_AMT), bsin(u->Counter), 14);
|
MulScale(DIV2(BETTY_BOB_AMT), bsin(u->Counter), 14);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -839,7 +839,7 @@ int DoBettyWait(DSWActor* actor)
|
||||||
SPRITEp sp = &actor->s();
|
SPRITEp sp = &actor->s();
|
||||||
int a,b,c,dist;
|
int a,b,c,dist;
|
||||||
|
|
||||||
DISTANCE(sp->pos.X, sp->pos.Y, u->targetActor->spr.pos.X, u->targetActor->spr.pos.Y, dist, a, b, c);
|
DISTANCE(actor->spr.pos.X, actor->spr.pos.Y, u->targetActor->spr.pos.X, u->targetActor->spr.pos.Y, dist, a, b, c);
|
||||||
|
|
||||||
DoActorPickClosePlayer(actor);
|
DoActorPickClosePlayer(actor);
|
||||||
|
|
||||||
|
@ -853,12 +853,12 @@ int DoBettyWait(DSWActor* actor)
|
||||||
}
|
}
|
||||||
|
|
||||||
// below the floor type
|
// below the floor type
|
||||||
if (sp->pos.Z > u->loz)
|
if (actor->spr.pos.Z > u->loz)
|
||||||
{
|
{
|
||||||
// look for closest player every once in a while
|
// look for closest player every once in a while
|
||||||
if (dist < 3500)
|
if (dist < 3500)
|
||||||
{
|
{
|
||||||
sp->xvel = 0;
|
actor->spr.xvel = 0;
|
||||||
u->jump_speed = -600;
|
u->jump_speed = -600;
|
||||||
NewStateGroup(actor, sg_BettyJump);
|
NewStateGroup(actor, sg_BettyJump);
|
||||||
DoBeginJump(actor);
|
DoBeginJump(actor);
|
||||||
|
@ -867,14 +867,14 @@ int DoBettyWait(DSWActor* actor)
|
||||||
else
|
else
|
||||||
// above the floor type
|
// above the floor type
|
||||||
{
|
{
|
||||||
sp->ang = NORM_ANGLE(sp->ang + (48 * ACTORMOVETICS));
|
actor->spr.ang = NORM_ANGLE(actor->spr.ang + (48 * ACTORMOVETICS));
|
||||||
|
|
||||||
DoBettyBob(actor);
|
DoBettyBob(actor);
|
||||||
|
|
||||||
if (dist < 8000)
|
if (dist < 8000)
|
||||||
{
|
{
|
||||||
sp->ang = getangle(u->targetActor->spr.pos.X - sp->pos.X, u->targetActor->spr.pos.Y - sp->pos.Y);
|
actor->spr.ang = getangle(u->targetActor->spr.pos.X - actor->spr.pos.X, u->targetActor->spr.pos.Y - actor->spr.pos.Y);
|
||||||
sp->xvel = 128 + (RANDOM_P2(256<<8)>>8);
|
actor->spr.xvel = 128 + (RANDOM_P2(256<<8)>>8);
|
||||||
u->jump_speed = -700;
|
u->jump_speed = -700;
|
||||||
NewStateGroup(actor, sg_BettyJump);
|
NewStateGroup(actor, sg_BettyJump);
|
||||||
DoBeginJump(actor);
|
DoBeginJump(actor);
|
||||||
|
|
Loading…
Reference in a new issue