mirror of
https://github.com/DrBeef/Raze.git
synced 2025-02-22 03:31:26 +00:00
- eel.cpp.
This commit is contained in:
parent
e192f4d40f
commit
0f60e3b4ec
2 changed files with 16 additions and 24 deletions
|
@ -357,11 +357,10 @@ ACTOR_ACTION_SET EelActionSet =
|
||||||
int DoEelMatchPlayerZ(DSWActor* actor);
|
int DoEelMatchPlayerZ(DSWActor* actor);
|
||||||
|
|
||||||
|
|
||||||
void
|
void EelCommon(DSWActor* actor)
|
||||||
EelCommon(short SpriteNum)
|
|
||||||
{
|
{
|
||||||
SPRITEp sp = &sprite[SpriteNum];
|
SPRITEp sp = &actor->s();
|
||||||
USERp u = User[SpriteNum].Data();
|
USERp u = actor->u();
|
||||||
|
|
||||||
sp->clipdist = (100) >> 2;
|
sp->clipdist = (100) >> 2;
|
||||||
u->floor_dist = Z(16);
|
u->floor_dist = Z(16);
|
||||||
|
@ -375,22 +374,20 @@ EelCommon(short SpriteNum)
|
||||||
u->Radius = 400;
|
u->Radius = 400;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int SetupEel(DSWActor* actor)
|
||||||
SetupEel(short SpriteNum)
|
|
||||||
{
|
{
|
||||||
auto actor = &swActors[SpriteNum];
|
SPRITEp sp = &actor->s();
|
||||||
SPRITEp sp = &sprite[SpriteNum];
|
|
||||||
USERp u;
|
USERp u;
|
||||||
ANIMATOR DoActorDecide;
|
ANIMATOR DoActorDecide;
|
||||||
|
|
||||||
if (TEST(sp->cstat, CSTAT_SPRITE_RESTORE))
|
if (TEST(sp->cstat, CSTAT_SPRITE_RESTORE))
|
||||||
{
|
{
|
||||||
u = User[SpriteNum].Data();
|
u = actor->u();
|
||||||
ASSERT(u);
|
ASSERT(u);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
u = SpawnUser(SpriteNum,EEL_RUN_R0,s_EelRun[0]);
|
u = SpawnUser(actor,EEL_RUN_R0,s_EelRun[0]);
|
||||||
u->Health = 40;
|
u->Health = 40;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -404,7 +401,7 @@ SetupEel(short SpriteNum)
|
||||||
|
|
||||||
SET(u->Flags, SPR_NO_SCAREDZ|SPR_XFLIP_TOGGLE);
|
SET(u->Flags, SPR_NO_SCAREDZ|SPR_XFLIP_TOGGLE);
|
||||||
|
|
||||||
EelCommon(SpriteNum);
|
EelCommon(actor);
|
||||||
|
|
||||||
RESET(u->Flags, SPR_SHADOW); // Turn off shadows
|
RESET(u->Flags, SPR_SHADOW); // Turn off shadows
|
||||||
u->zclip = Z(8);
|
u->zclip = Z(8);
|
||||||
|
@ -416,7 +413,6 @@ SetupEel(short SpriteNum)
|
||||||
int NullEel(DSWActor* actor)
|
int NullEel(DSWActor* actor)
|
||||||
{
|
{
|
||||||
USER* u = actor->u();
|
USER* u = actor->u();
|
||||||
int SpriteNum = u->SpriteNum;
|
|
||||||
|
|
||||||
if (TEST(u->Flags,SPR_SLIDING))
|
if (TEST(u->Flags,SPR_SLIDING))
|
||||||
DoActorSlide(actor);
|
DoActorSlide(actor);
|
||||||
|
@ -431,7 +427,6 @@ int NullEel(DSWActor* actor)
|
||||||
int DoEelMatchPlayerZ(DSWActor* actor)
|
int DoEelMatchPlayerZ(DSWActor* actor)
|
||||||
{
|
{
|
||||||
USER* u = actor->u();
|
USER* u = actor->u();
|
||||||
int SpriteNum = u->SpriteNum;
|
|
||||||
SPRITEp sp = &actor->s();
|
SPRITEp sp = &actor->s();
|
||||||
SPRITEp tsp = &u->targetActor->s();
|
SPRITEp tsp = &u->targetActor->s();
|
||||||
int zdiff,zdist;
|
int zdiff,zdist;
|
||||||
|
@ -469,7 +464,7 @@ int DoEelMatchPlayerZ(DSWActor* actor)
|
||||||
u->sz -= 160 * ACTORMOVETICS;
|
u->sz -= 160 * ACTORMOVETICS;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define EEL_BOB_AMT (Z(4))
|
const int EEL_BOB_AMT = (Z(4));
|
||||||
|
|
||||||
// save off lo and hi z
|
// save off lo and hi z
|
||||||
loz = u->loz;
|
loz = u->loz;
|
||||||
|
@ -529,12 +524,10 @@ int DoEelMatchPlayerZ(DSWActor* actor)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int DoEelDeath(DSWActor* actor)
|
||||||
DoEelDeath(DSWActor* actor)
|
|
||||||
{
|
{
|
||||||
USER* u = actor->u();
|
USER* u = actor->u();
|
||||||
int SpriteNum = u->SpriteNum;
|
SPRITEp sp = &actor->s();
|
||||||
SPRITEp sp = &sprite[SpriteNum];
|
|
||||||
int nx, ny;
|
int nx, ny;
|
||||||
if (TEST(u->Flags, SPR_FALLING))
|
if (TEST(u->Flags, SPR_FALLING))
|
||||||
{
|
{
|
||||||
|
@ -554,7 +547,7 @@ DoEelDeath(DSWActor* actor)
|
||||||
nx = MulScale(sp->xvel, bcos(sp->ang), 14);
|
nx = MulScale(sp->xvel, bcos(sp->ang), 14);
|
||||||
ny = MulScale(sp->xvel, bsin(sp->ang), 14);
|
ny = MulScale(sp->xvel, bsin(sp->ang), 14);
|
||||||
|
|
||||||
SetCollision(u, move_sprite(SpriteNum, nx, ny, 0L, u->ceiling_dist, u->floor_dist, CLIPMASK_MISSILE, ACTORMOVETICS));
|
SetCollision(u, move_sprite(actor->GetSpriteIndex(), nx, ny, 0L, u->ceiling_dist, u->floor_dist, CLIPMASK_MISSILE, ACTORMOVETICS));
|
||||||
DoFindGroundPoint(actor);
|
DoFindGroundPoint(actor);
|
||||||
|
|
||||||
// on the ground
|
// on the ground
|
||||||
|
@ -575,18 +568,17 @@ DoEelDeath(DSWActor* actor)
|
||||||
int DoEelMove(DSWActor* actor)
|
int DoEelMove(DSWActor* actor)
|
||||||
{
|
{
|
||||||
USER* u = actor->u();
|
USER* u = actor->u();
|
||||||
int SpriteNum = u->SpriteNum;
|
|
||||||
|
|
||||||
ASSERT(u->Rot != nullptr);
|
ASSERT(u->Rot != nullptr);
|
||||||
|
|
||||||
if (SpriteOverlap(SpriteNum, u->targetActor->GetSpriteIndex()))
|
if (SpriteOverlap(actor->GetSpriteIndex(), u->targetActor->GetSpriteIndex()))
|
||||||
NewStateGroup(actor, u->ActorActionSet->CloseAttack[0]);
|
NewStateGroup(actor, u->ActorActionSet->CloseAttack[0]);
|
||||||
|
|
||||||
if (TEST(u->Flags,SPR_SLIDING))
|
if (TEST(u->Flags,SPR_SLIDING))
|
||||||
DoActorSlide(actor);
|
DoActorSlide(actor);
|
||||||
|
|
||||||
if (u->track >= 0)
|
if (u->track >= 0)
|
||||||
ActorFollowTrack(SpriteNum, ACTORMOVETICS);
|
ActorFollowTrack(actor->GetSpriteIndex(), ACTORMOVETICS);
|
||||||
else
|
else
|
||||||
(*u->ActorActionFunc)(actor);
|
(*u->ActorActionFunc)(actor);
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@ int SetupCoolie(DSWActor*);
|
||||||
int SetupNinja(short);
|
int SetupNinja(short);
|
||||||
int SetupGoro(short);
|
int SetupGoro(short);
|
||||||
int SetupCoolg(DSWActor*);
|
int SetupCoolg(DSWActor*);
|
||||||
int SetupEel(short);
|
int SetupEel(DSWActor*);
|
||||||
int SetupSumo(short);
|
int SetupSumo(short);
|
||||||
int SetupZilla(short);
|
int SetupZilla(short);
|
||||||
int SetupToiletGirl(short);
|
int SetupToiletGirl(short);
|
||||||
|
@ -1253,7 +1253,7 @@ ActorSpawn(SPRITEp sp)
|
||||||
}
|
}
|
||||||
|
|
||||||
PicAnimOff(sp->picnum);
|
PicAnimOff(sp->picnum);
|
||||||
SetupEel(SpriteNum);
|
SetupEel(actor);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue