Skip to content

Commit

Permalink
- SW: Remove all remaining angle wrapper usage and the wrappers thems…
Browse files Browse the repository at this point in the history
…elves.
  • Loading branch information
mjr4077au committed Nov 26, 2022
1 parent 690b283 commit 9d62627
Show file tree
Hide file tree
Showing 13 changed files with 97 additions and 102 deletions.
6 changes: 0 additions & 6 deletions source/core/gameinput.h
Expand Up @@ -17,12 +17,6 @@ struct PlayerAngles
// Holder of current yaw spin state for the 180 degree turn.
DAngle YawSpin;

// Temporary wrappers.
DAngle& ZzHORIZON() { return pActor->spr.Angles.Pitch; }
DAngle& ZzOLDHORIZON() { return pActor->PrevAngles.Pitch; }
DAngle& ZzANGLE() { return pActor->spr.Angles.Yaw; }
DAngle& ZzOLDANGLE() { return pActor->PrevAngles.Yaw; }

friend FSerializer& Serialize(FSerializer& arc, const char* keyname, PlayerAngles& w, PlayerAngles* def);

// Prototypes for applying input.
Expand Down
2 changes: 1 addition & 1 deletion source/games/sw/src/game.h
Expand Up @@ -1955,7 +1955,7 @@ inline bool SectorIsUnderwaterArea(sectortype* sect)

inline bool PlayerFacingRange(PLAYER* pp, DSWActor* a, DAngle range)
{
return absangle((a->spr.pos.XY() - pp->actor->spr.pos.XY()).Angle(), pp->Angles.ZzANGLE()) < range;
return absangle((a->spr.pos.XY() - pp->actor->spr.pos.XY()).Angle(), pp->actor->spr.Angles.Yaw) < range;
}

inline bool FacingRange(DSWActor* a1, DSWActor* a2, DAngle range)
Expand Down
2 changes: 1 addition & 1 deletion source/games/sw/src/input.cpp
Expand Up @@ -206,7 +206,7 @@ void GameInterface::GetInput(ControlInfo* const hidInput, double const scaleAdju
if (packet)
{
*packet = loc;
auto velvect = DVector2(loc.fvel, loc.svel).Rotated(pp->Angles.ZzANGLE());
auto velvect = DVector2(loc.fvel, loc.svel).Rotated(pp->actor->spr.Angles.Yaw);
packet->fvel = (float)velvect.X;
packet->svel = (float)velvect.Y;
loc = {};
Expand Down
2 changes: 1 addition & 1 deletion source/games/sw/src/jsector.cpp
Expand Up @@ -612,7 +612,7 @@ void JS_DrawCameras(PLAYER* pp, const DVector3& campos, double smoothratio)

if (TEST_BOOL11(camactor) && numplayers > 1)
{
drawroomstotile(cp->actor->getPosWithOffsetZ(), cp->Angles.ZzANGLE(), cp->Angles.ZzHORIZON(), cp->cursector, mirror[cnt].campic, smoothratio);
drawroomstotile(cp->actor->getPosWithOffsetZ(), cp->actor->spr.Angles.Yaw, cp->actor->spr.Angles.Pitch, cp->cursector, mirror[cnt].campic, smoothratio);
}
else
{
Expand Down
10 changes: 5 additions & 5 deletions source/games/sw/src/jweapon.cpp
Expand Up @@ -1260,7 +1260,7 @@ int PlayerInitChemBomb(PLAYER* pp)

// Spawn a shot
// Inserting and setting up variables
auto actorNew = SpawnActor(STAT_MISSILE, CHEMBOMB, s_ChemBomb, pp->cursector, pos, pp->Angles.ZzANGLE(), CHEMBOMB_VELOCITY);
auto actorNew = SpawnActor(STAT_MISSILE, CHEMBOMB, s_ChemBomb, pp->cursector, pos, pp->actor->spr.Angles.Yaw, CHEMBOMB_VELOCITY);

// don't throw it as far if crawling
if (pp->Flags & (PF_CRAWLING))
Expand All @@ -1285,7 +1285,7 @@ int PlayerInitChemBomb(PLAYER* pp)
if (pp->Flags & (PF_DIVING) || SpriteInUnderwaterArea(actorNew))
actorNew->user.Flags |= (SPR_UNDERWATER);

setFreeAimVelocity(actorNew->vel.X, actorNew->vel.Z, pp->Angles.ZzHORIZON(), HORIZ_MULTF);
setFreeAimVelocity(actorNew->vel.X, actorNew->vel.Z, pp->actor->spr.Angles.Pitch, HORIZ_MULTF);

double oclipdist = plActor->clipdist;
plActor->clipdist = 0;
Expand Down Expand Up @@ -1632,7 +1632,7 @@ int PlayerInitCaltrops(PLAYER* pp)

auto pos = pp->actor->getPosWithOffsetZ().plusZ(pp->bob_z + 8);

auto actorNew = SpawnActor(STAT_DEAD_ACTOR, CALTROPS, s_Caltrops, pp->cursector, pos, pp->Angles.ZzANGLE(), (CHEMBOMB_VELOCITY + RandomRangeF(CHEMBOMB_VELOCITY)) / 2);
auto actorNew = SpawnActor(STAT_DEAD_ACTOR, CALTROPS, s_Caltrops, pp->cursector, pos, pp->actor->spr.Angles.Yaw, (CHEMBOMB_VELOCITY + RandomRangeF(CHEMBOMB_VELOCITY)) / 2);

// don't throw it as far if crawling
if (pp->Flags & (PF_CRAWLING))
Expand All @@ -1655,7 +1655,7 @@ int PlayerInitCaltrops(PLAYER* pp)
if (pp->Flags & (PF_DIVING) || SpriteInUnderwaterArea(actorNew))
actorNew->user.Flags |= (SPR_UNDERWATER);

setFreeAimVelocity(actorNew->vel.X, actorNew->vel.Z, pp->Angles.ZzHORIZON(), HORIZ_MULTF);
setFreeAimVelocity(actorNew->vel.X, actorNew->vel.Z, pp->actor->spr.Angles.Pitch, HORIZ_MULTF);

double oclipdist = plActor->clipdist;
plActor->clipdist = 0;
Expand Down Expand Up @@ -2198,7 +2198,7 @@ int SpawnShell(DSWActor* actor, int ShellNum)

if (actor->user.PlayerP)
{
setFreeAimVelocity(actorNew->vel.X, actorNew->vel.Z, actor->user.PlayerP->Angles.ZzHORIZON(), HORIZ_MULTF * (1. / 3.));
setFreeAimVelocity(actorNew->vel.X, actorNew->vel.Z, actor->user.PlayerP->actor->spr.Angles.Pitch, HORIZ_MULTF * (1. / 3.));
}

switch (actorNew->user.ID)
Expand Down
2 changes: 1 addition & 1 deletion source/games/sw/src/mclip.cpp
Expand Up @@ -59,7 +59,7 @@ Collision MultiClipMove(PLAYER* pp, double zz, double floordist)
{
// move the box to position instead of using offset- this prevents small rounding errors
// allowing you to move through wall
DAngle ang = (pp->Angles.ZzANGLE() + sop->clipbox_ang[i]);
DAngle ang = (pp->actor->spr.Angles.Yaw + sop->clipbox_ang[i]);
DVector3 spos(pp->actor->getPosWithOffsetZ(), zz);

DVector2 vect = ang.ToVector() * sop->clipbox_vdist[i];
Expand Down
2 changes: 1 addition & 1 deletion source/games/sw/src/ninja.cpp
Expand Up @@ -2477,7 +2477,7 @@ void SpawnPlayerUnderSprite(PLAYER* pp)
int pnum = int(pp - Player);

pp->PlayerUnderActor = SpawnActor(STAT_PLAYER_UNDER0 + pnum,
NINJA_RUN_R0, nullptr, pp->cursector, pp->actor->getPosWithOffsetZ(), pp->Angles.ZzANGLE());
NINJA_RUN_R0, nullptr, pp->cursector, pp->actor->getPosWithOffsetZ(), pp->actor->spr.Angles.Yaw);

DSWActor* actor = pp->PlayerUnderActor;

Expand Down
5 changes: 3 additions & 2 deletions source/games/sw/src/osdcmds.cpp
Expand Up @@ -62,12 +62,13 @@ void GameInterface::WarpToCoords(double x, double y, double z, DAngle ang)
if (!ppActor) return;

ppActor->spr.pos = DVector3(x,y,z);
ppActor->backuppos();

if (ang != DAngle::fromDeg(INT_MIN))
{
Player->Angles.ZzOLDANGLE() = Player->Angles.ZzANGLE() = ang;
Player->actor->spr.Angles.Yaw = ang;
}

ppActor->backuploc();
}

//---------------------------------------------------------------------------
Expand Down
44 changes: 22 additions & 22 deletions source/games/sw/src/player.cpp
Expand Up @@ -1311,9 +1311,9 @@ void DoPlayerTeleportPause(PLAYER* pp)

void DoPlayerTeleportToSprite(PLAYER* pp, DVector3& pos, DAngle ang)
{
pp->Angles.ZzANGLE() = pp->Angles.ZzOLDANGLE() = ang;
pp->actor->spr.Angles.Yaw = ang;
pp->actor->spr.pos = pos;
pp->actor->backuppos();
pp->actor->backuploc();

updatesector(pp->actor->getPosWithOffsetZ(), &pp->cursector);
pp->Flags2 |= (PF2_TELEPORTED);
Expand Down Expand Up @@ -1637,7 +1637,7 @@ void DoPlayerTurnTurret(PLAYER* pp, float avel)
pp->actor->spr.Angles.Yaw = new_ang;
}

OperateSectorObject(pp->sop, pp->Angles.ZzANGLE(), pp->sop->pmid);
OperateSectorObject(pp->sop, pp->actor->spr.Angles.Yaw, pp->sop->pmid);
}

//---------------------------------------------------------------------------
Expand Down Expand Up @@ -1670,7 +1670,7 @@ void SlipSlope(PLAYER* pp)
void DoPlayerSlopeTilting(PLAYER* pp)
{
bool const canslopetilt = !(pp->Flags & (PF_FLYING|PF_SWIMMING|PF_DIVING|PF_CLIMBING|PF_JUMPING|PF_FALLING)) && pp->cursector && (pp->cursector->floorstat & CSTAT_SECTOR_SLOPE);
pp->Angles.doViewPitch(pp->actor->spr.pos.XY(), pp->Angles.ZzANGLE(), pp->input.actions & SB_AIMMODE, canslopetilt, pp->cursector, (pp->Flags & PF_CLIMBING));
pp->Angles.doViewPitch(pp->actor->spr.pos.XY(), pp->actor->spr.Angles.Yaw, pp->input.actions & SB_AIMMODE, canslopetilt, pp->cursector, (pp->Flags & PF_CLIMBING));
}

//---------------------------------------------------------------------------
Expand Down Expand Up @@ -2357,7 +2357,7 @@ void DoTankTreads(PLAYER* pp)
return;

int vel = int(pp->vect.Length() * 1024);
double dot = pp->vect.dot(pp->Angles.ZzANGLE().ToVector());
double dot = pp->vect.dot(pp->actor->spr.Angles.Yaw.ToVector());
if (dot < 0)
reverse = true;

Expand Down Expand Up @@ -2555,7 +2555,7 @@ void DriveCrush(PLAYER* pp, DVector2* quad)
continue;

damage = -(actor->user.Health + 100);
PlayerDamageSlide(actor->user.PlayerP, damage, pp->Angles.ZzANGLE());
PlayerDamageSlide(actor->user.PlayerP, damage, pp->actor->spr.Angles.Yaw);
PlayerUpdateHealth(actor->user.PlayerP, damage);
PlayerCheckDeath(actor->user.PlayerP, pp->actor);
}
Expand Down Expand Up @@ -2675,7 +2675,7 @@ void DoPlayerMoveVehicle(PLAYER* pp)
}

auto save_sect = pp->cursector;
OperateSectorObject(pp->sop, pp->Angles.ZzANGLE(), { MAXSO, MAXSO });
OperateSectorObject(pp->sop, pp->actor->spr.Angles.Yaw, { MAXSO, MAXSO });
pp->setcursector(pp->sop->op_main_sector); // for speed

double floordist = abs(zz - pp->sop->floor_loz);
Expand Down Expand Up @@ -2703,7 +2703,7 @@ void DoPlayerMoveVehicle(PLAYER* pp)
DVector3 hitpos((pos[0] + pos[1]) * 0.5, pp->cursector->floorz - 10);

hitscan(hitpos, pp->cursector,
DVector3(pp->Angles.ZzANGLE().ToVector() * 16, 0),
DVector3(pp->actor->spr.Angles.Yaw.ToVector() * 16, 0),
hit, CLIPMASK_PLAYER);

if ((hit.hitpos.XY() - hitpos.XY()).LengthSquared() < 50 * 50)
Expand Down Expand Up @@ -2776,7 +2776,7 @@ void DoPlayerMoveVehicle(PLAYER* pp)
}
}

OperateSectorObject(pp->sop, pp->Angles.ZzANGLE(), pp->actor->spr.pos.XY());
OperateSectorObject(pp->sop, pp->actor->spr.Angles.Yaw, pp->actor->spr.pos.XY());
pp->cursector = save_sect; // for speed

if (!SyncInput())
Expand Down Expand Up @@ -3273,7 +3273,7 @@ void DoPlayerClimb(PLAYER* pp)
pp->vect.X = pp->vect.Y = 0;

double climbVel = pp->vect.Length();
double dot = pp->vect.dot(pp->Angles.ZzANGLE().ToVector());
double dot = pp->vect.dot(pp->actor->spr.Angles.Yaw.ToVector());
if (dot < 0)
climbVel = -climbVel;

Expand Down Expand Up @@ -3416,7 +3416,7 @@ void DoPlayerClimb(PLAYER* pp)
HitInfo near;

// constantly look for new ladder sector because of warping at any time
neartag(pp->actor->getPosWithOffsetZ(), pp->cursector, pp->Angles.ZzANGLE(), near, 50., NT_Lotag | NT_Hitag | NT_NoSpriteCheck);
neartag(pp->actor->getPosWithOffsetZ(), pp->cursector, pp->actor->spr.Angles.Yaw, near, 50., NT_Lotag | NT_Hitag | NT_NoSpriteCheck);

if (near.hitWall)
{
Expand Down Expand Up @@ -3456,7 +3456,7 @@ int DoPlayerWadeSuperJump(PLAYER* pp)

//for (i = 0; i < SIZ(angs); i++)
{
FAFhitscan(DVector3(pp->actor->spr.pos.XY(), zh), pp->cursector, DVector3(pp->Angles.ZzANGLE().ToVector() * 1024, 0), hit, CLIPMASK_MISSILE);
FAFhitscan(DVector3(pp->actor->spr.pos.XY(), zh), pp->cursector, DVector3(pp->actor->spr.Angles.Yaw.ToVector() * 1024, 0), hit, CLIPMASK_MISSILE);

if (hit.hitWall != nullptr && hit.hitSector != nullptr)
{
Expand Down Expand Up @@ -3769,9 +3769,9 @@ bool PlayerOnLadder(PLAYER* pp)
if (Prediction)
return false;

neartag(pp->actor->getPosWithOffsetZ(), pp->cursector, pp->Angles.ZzANGLE(), near, 64. + 48., NT_Lotag | NT_Hitag);
neartag(pp->actor->getPosWithOffsetZ(), pp->cursector, pp->actor->spr.Angles.Yaw, near, 64. + 48., NT_Lotag | NT_Hitag);

double dir = pp->vect.dot(pp->Angles.ZzANGLE().ToVector());
double dir = pp->vect.dot(pp->actor->spr.Angles.Yaw.ToVector());

if (dir < 0)
return false;
Expand All @@ -3781,12 +3781,12 @@ bool PlayerOnLadder(PLAYER* pp)

for (i = 0; i < SIZ(angles); i++)
{
neartag(pp->actor->getPosWithOffsetZ(), pp->cursector, pp->Angles.ZzANGLE() + angles[i], near, 37.5, NT_Lotag | NT_Hitag | NT_NoSpriteCheck);
neartag(pp->actor->getPosWithOffsetZ(), pp->cursector, pp->actor->spr.Angles.Yaw + angles[i], near, 37.5, NT_Lotag | NT_Hitag | NT_NoSpriteCheck);

if (near.hitWall == nullptr || near.hitpos.X < 6.25 || near.hitWall->lotag != TAG_WALL_CLIMB)
return false;

FAFhitscan(pp->actor->getPosWithOffsetZ(), pp->cursector, DVector3((pp->Angles.ZzANGLE() + angles[i]).ToVector() * 1024, 0), hit, CLIPMASK_MISSILE);
FAFhitscan(pp->actor->getPosWithOffsetZ(), pp->cursector, DVector3((pp->actor->spr.Angles.Yaw + angles[i]).ToVector() * 1024, 0), hit, CLIPMASK_MISSILE);

if (hit.actor() != nullptr)
{
Expand Down Expand Up @@ -5132,7 +5132,7 @@ void DoPlayerBeginOperate(PLAYER* pp)
pp->sop = pp->sop_control = sop;
sop->controller = pp->actor;

pp->Angles.ZzOLDANGLE() = pp->Angles.ZzANGLE() = sop->ang;
pp->actor->PrevAngles.Yaw = pp->actor->spr.Angles.Yaw = sop->ang;
pp->actor->spr.pos.XY() = sop->pmid.XY();
updatesector(pp->actor->getPosWithOffsetZ(), &pp->cursector);
calcSlope(pp->cursector, pp->actor->getPosWithOffsetZ(), &cz, &fz);
Expand Down Expand Up @@ -5222,7 +5222,7 @@ void DoPlayerBeginRemoteOperate(PLAYER* pp, SECTOR_OBJECT* sop)

auto save_sect = pp->cursector;

pp->Angles.ZzOLDANGLE() = pp->Angles.ZzANGLE() = sop->ang;
pp->actor->PrevAngles.Yaw = pp->actor->spr.Angles.Yaw = sop->ang;
pp->actor->spr.pos.XY() = sop->pmid.XY();
updatesector(pp->actor->getPosWithOffsetZ(), &pp->cursector);
calcSlope(pp->cursector, pp->actor->getPosWithOffsetZ(), &cz, &fz);
Expand Down Expand Up @@ -5883,7 +5883,7 @@ void DoPlayerBeginDie(PLAYER* pp)

static inline void DoPlayerDeathHoriz(PLAYER* pp, const DAngle target, const double speed)
{
auto targetdelta = deltaangle(pp->Angles.ZzHORIZON(), target);
auto targetdelta = deltaangle(pp->actor->spr.Angles.Pitch, target);

if (abs(targetdelta.Degrees()) > 1)
{
Expand Down Expand Up @@ -5975,7 +5975,7 @@ void DoPlayerDeathFollowKiller(PLAYER* pp)
{
if (FAFcansee(ActorVectOfTop(killer), killer->sector(), pp->actor->getPosWithOffsetZ(), pp->cursector))
{
pp->Angles.addToYaw(deltaangle(pp->Angles.ZzANGLE(), (killer->spr.pos.XY() - pp->actor->spr.pos.XY()).Angle()) * (1. / 16.));
pp->Angles.addToYaw(deltaangle(pp->actor->spr.Angles.Yaw, (killer->spr.pos.XY() - pp->actor->spr.pos.XY()).Angle()) * (1. / 16.));
}
}
}
Expand Down Expand Up @@ -6029,7 +6029,7 @@ void DoPlayerDeathCheckKeys(PLAYER* pp)
pp->input.actions |= SB_CENTERVIEW;
plActor->spr.scale = DVector2(PLAYER_NINJA_XREPEAT, PLAYER_NINJA_YREPEAT);

pp->Angles.ZzHORIZON() = nullAngle;
pp->actor->spr.Angles.Pitch = nullAngle;
plActor->user.ID = NINJA_RUN_R0;
PlayerDeathReset(pp);

Expand Down Expand Up @@ -7559,7 +7559,7 @@ DEFINE_ACTION_FUNCTION(_SWPlayer, MaxUserHealth)
DEFINE_ACTION_FUNCTION(_SWPlayer, GetBuildAngle)
{
PARAM_SELF_STRUCT_PROLOGUE(PLAYER);
ACTION_RETURN_INT(self->Angles.ZzANGLE().Buildang());
ACTION_RETURN_INT(self->actor->spr.Angles.Yaw.Buildang());
}

DEFINE_ACTION_FUNCTION(_SW, WeaponMaxAmmo)
Expand Down
6 changes: 3 additions & 3 deletions source/games/sw/src/sector.cpp
Expand Up @@ -2140,7 +2140,7 @@ bool NearThings(PLAYER* pp)
return false;
}

neartag(pp->actor->getPosWithOffsetZ(), pp->cursector, pp->Angles.ZzANGLE(), near, 64., NT_Lotag | NT_Hitag);
neartag(pp->actor->getPosWithOffsetZ(), pp->cursector, pp->actor->spr.Angles.Yaw, near, 64., NT_Lotag | NT_Hitag);


// hit a sprite? Check to see if it has sound info in it!
Expand Down Expand Up @@ -2173,7 +2173,7 @@ bool NearThings(PLAYER* pp)
{
HitInfo hit{};

FAFhitscan(pp->actor->getPosWithOffsetZ().plusZ(-30), pp->cursector, DVector3(pp->Angles.ZzANGLE().ToVector() * 1024, 0), hit, CLIPMASK_MISSILE);
FAFhitscan(pp->actor->getPosWithOffsetZ().plusZ(-30), pp->cursector, DVector3(pp->actor->spr.Angles.Yaw.ToVector() * 1024, 0), hit, CLIPMASK_MISSILE);

if (hit.hitSector == nullptr)
return false;
Expand Down Expand Up @@ -2221,7 +2221,7 @@ void NearTagList(NEAR_TAG_INFO* ntip, PLAYER* pp, double z, double dist, int typ
HitInfo near;


neartag(DVector3(pp->actor->spr.pos.XY(), z), pp->cursector, pp->Angles.ZzANGLE(), near, dist, type);
neartag(DVector3(pp->actor->spr.pos.XY(), z), pp->cursector, pp->actor->spr.Angles.Yaw, near, dist, type);

if (near.hitSector != nullptr)
{
Expand Down
8 changes: 4 additions & 4 deletions source/games/sw/src/track.cpp
Expand Up @@ -1480,7 +1480,7 @@ void MovePlayer(PLAYER* pp, SECTOR_OBJECT* sop, const DVector2& move)
{
pp->Flags |= (PF_PLAYER_RIDING);

pp->RevolveAng = pp->Angles.ZzANGLE();
pp->RevolveAng = pp->actor->spr.Angles.Yaw;
pp->Revolve.XY() = pp->actor->spr.pos.XY();

// set the delta angle to 0 when moving
Expand All @@ -1502,7 +1502,7 @@ void MovePlayer(PLAYER* pp, SECTOR_OBJECT* sop, const DVector2& move)
// save the current information so when Player stops
// moving then you
// know where he was last
pp->RevolveAng = pp->Angles.ZzANGLE();
pp->RevolveAng = pp->actor->spr.Angles.Yaw;
pp->Revolve.XY() = pp->actor->spr.pos.XY();

// set the delta angle to 0 when moving
Expand All @@ -1516,7 +1516,7 @@ void MovePlayer(PLAYER* pp, SECTOR_OBJECT* sop, const DVector2& move)
pp->Revolve += move;

// Last known angle is now adjusted by the delta angle
pp->RevolveAng = deltaangle(pp->RevolveDeltaAng, pp->Angles.ZzANGLE());
pp->RevolveAng = deltaangle(pp->RevolveDeltaAng, pp->actor->spr.Angles.Yaw);
}

// increment Players delta angle
Expand All @@ -1529,7 +1529,7 @@ void MovePlayer(PLAYER* pp, SECTOR_OBJECT* sop, const DVector2& move)

// New angle is formed by taking last known angle and
// adjusting by the delta angle
pp->Angles.addToYaw(deltaangle(pp->RevolveAng + pp->RevolveDeltaAng, pp->Angles.ZzANGLE()));
pp->Angles.addToYaw(deltaangle(pp->RevolveAng + pp->RevolveDeltaAng, pp->actor->spr.Angles.Yaw));

UpdatePlayerSprite(pp);
}
Expand Down

0 comments on commit 9d62627

Please sign in to comment.