0
0
Fork 0
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:
Christoph Oelckers 2021-12-24 16:47:29 +01:00
parent 0d0d5366b1
commit f58d4e2604

View file

@ -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);