mirror of
https://github.com/DrBeef/Raze.git
synced 2025-03-30 20:51:22 +00:00
- SW: Change RevolveAng
, RevolveDeltaAng
and GlobSpeedSO
to DAngle
objects.
* For now, SW is as `binangle` free as it can be until other backend parts are changed.
This commit is contained in:
parent
3242b8fd81
commit
8912d7d6cc
4 changed files with 22 additions and 24 deletions
|
@ -38,7 +38,7 @@ Prepared for public release: 03/28/2005 - Charlie Wiederhold, 3D Realms
|
|||
|
||||
BEGIN_SW_NS
|
||||
|
||||
extern int GlobSpeedSO;
|
||||
extern DAngle GlobSpeedSO;
|
||||
|
||||
void CopySectorWalls(sectortype* dest_sect, sectortype* src_sect)
|
||||
{
|
||||
|
@ -189,7 +189,7 @@ void CopySectorMatch(int match)
|
|||
|
||||
// update sprites postions so they aren't in the
|
||||
// wrong place for one frame
|
||||
GlobSpeedSO = 0;
|
||||
GlobSpeedSO = DAngle::fromDeg(0.);
|
||||
RefreshPoints(sop, 0, 0, true);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -633,8 +633,8 @@ struct PLAYER
|
|||
fixed_t recoil_ohorizoff, recoil_horizoff;
|
||||
|
||||
vec3_t Revolve;
|
||||
int16_t RevolveDeltaAng;
|
||||
binangle RevolveAng;
|
||||
DAngle RevolveDeltaAng;
|
||||
DAngle RevolveAng;
|
||||
|
||||
int16_t pnum; // carry along the player number
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ DSWActor* FindNearSprite(DSWActor, short);
|
|||
ANIMATOR NinjaJumpActionFunc;
|
||||
|
||||
#define ACTOR_STD_JUMP (-384)
|
||||
int GlobSpeedSO;
|
||||
DAngle GlobSpeedSO;
|
||||
|
||||
// determine if moving down the track will get you closer to the player
|
||||
short TrackTowardPlayer(DSWActor* actor, TRACK* t, TRACK_POINT* start_point)
|
||||
|
@ -723,10 +723,10 @@ void SectorObjectSetupBounds(SECTOR_OBJECT* sop)
|
|||
|
||||
if (pp->posx > xlow && pp->posx < xhigh && pp->posy > ylow && pp->posy < yhigh)
|
||||
{
|
||||
pp->RevolveAng = pp->angle.ang;
|
||||
pp->RevolveAng = DAngle::fromBam(pp->angle.ang.asbam());
|
||||
pp->Revolve.X = pp->pos.X;
|
||||
pp->Revolve.Y = pp->pos.Y;
|
||||
pp->RevolveDeltaAng = 0;
|
||||
pp->RevolveDeltaAng = DAngle::fromDeg(0.);
|
||||
pp->Flags |= (PF_PLAYER_RIDING);
|
||||
|
||||
pp->sop_riding = sop;
|
||||
|
@ -1514,12 +1514,12 @@ void MovePlayer(PLAYER* pp, SECTOR_OBJECT* sop, int nx, int ny)
|
|||
{
|
||||
pp->Flags |= (PF_PLAYER_RIDING);
|
||||
|
||||
pp->RevolveAng = pp->angle.ang;
|
||||
pp->RevolveAng = DAngle::fromBam(pp->angle.ang.asbam());
|
||||
pp->Revolve.X = pp->pos.X;
|
||||
pp->Revolve.Y = pp->pos.Y;
|
||||
|
||||
// set the delta angle to 0 when moving
|
||||
pp->RevolveDeltaAng = 0;
|
||||
pp->RevolveDeltaAng = DAngle::fromDeg(0.);
|
||||
}
|
||||
|
||||
pp->pos.X += nx;
|
||||
|
@ -1538,12 +1538,12 @@ void MovePlayer(PLAYER* pp, SECTOR_OBJECT* sop, int nx, int ny)
|
|||
// save the current information so when Player stops
|
||||
// moving then you
|
||||
// know where he was last
|
||||
pp->RevolveAng = pp->angle.ang;
|
||||
pp->RevolveAng = DAngle::fromBam(pp->angle.ang.asbam());
|
||||
pp->Revolve.X = pp->pos.X;
|
||||
pp->Revolve.Y = pp->pos.Y;
|
||||
|
||||
// set the delta angle to 0 when moving
|
||||
pp->RevolveDeltaAng = 0;
|
||||
pp->RevolveDeltaAng = DAngle::fromDeg(0.);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1554,20 +1554,20 @@ void MovePlayer(PLAYER* pp, SECTOR_OBJECT* sop, int nx, int ny)
|
|||
pp->Revolve.Y += ny;
|
||||
|
||||
// Last known angle is now adjusted by the delta angle
|
||||
pp->RevolveAng = pp->angle.ang - buildang(pp->RevolveDeltaAng);
|
||||
pp->RevolveAng = DAngle::fromBam(pp->angle.ang.asbam()) - pp->RevolveDeltaAng;
|
||||
}
|
||||
|
||||
// increment Players delta angle
|
||||
pp->RevolveDeltaAng = NORM_ANGLE(pp->RevolveDeltaAng + GlobSpeedSO);
|
||||
pp->RevolveDeltaAng = (pp->RevolveDeltaAng + GlobSpeedSO).Normalized360();
|
||||
|
||||
rotatepoint(sop->pmid.vec2, *(vec2_t *)&pp->Revolve.X, pp->RevolveDeltaAng, &pp->pos.vec2);
|
||||
rotatepoint(sop->pmid.vec2, *(vec2_t *)&pp->Revolve.X, pp->RevolveDeltaAng.Buildang(), &pp->pos.vec2);
|
||||
|
||||
// THIS WAS CAUSING PROLEMS!!!!
|
||||
// Sectors are still being manipulated so you can end up in a void (-1) sector
|
||||
|
||||
// New angle is formed by taking last known angle and
|
||||
// adjusting by the delta angle
|
||||
pp->angle.addadjustment(pp->angle.ang - (pp->RevolveAng + buildang(pp->RevolveDeltaAng)));
|
||||
pp->angle.addadjustment(pp->angle.ang - bamang((pp->RevolveAng + pp->RevolveDeltaAng).BAMs()));
|
||||
|
||||
UpdatePlayerSprite(pp);
|
||||
}
|
||||
|
@ -2204,13 +2204,12 @@ void MoveSectorObjects(SECTOR_OBJECT* sop, short locktics)
|
|||
if (sop->spin_speed)
|
||||
{
|
||||
// ignore delta angle if spinning
|
||||
GlobSpeedSO = speed;
|
||||
GlobSpeedSO = DAngle::fromBuild(speed);
|
||||
}
|
||||
else
|
||||
{
|
||||
// The actual delta from the last frame
|
||||
GlobSpeedSO = speed;
|
||||
GlobSpeedSO += delta_ang;
|
||||
GlobSpeedSO = DAngle::fromBuild(speed + delta_ang);
|
||||
}
|
||||
|
||||
if ((sop->flags & SOBJ_DYNAMIC))
|
||||
|
@ -2224,7 +2223,7 @@ void MoveSectorObjects(SECTOR_OBJECT* sop, short locktics)
|
|||
if ((sop->flags & (SOBJ_UPDATE|SOBJ_UPDATE_ONCE)) ||
|
||||
sop->vel ||
|
||||
(sop->ang != sop->ang_tgt) ||
|
||||
GlobSpeedSO)
|
||||
GlobSpeedSO.Degrees())
|
||||
{
|
||||
sop->flags &= ~(SOBJ_UPDATE_ONCE);
|
||||
RefreshPoints(sop, nx, ny, false);
|
||||
|
@ -2600,7 +2599,7 @@ void OperateSectorObjectForTics(SECTOR_OBJECT* sop, short newang, int newx, int
|
|||
}
|
||||
}
|
||||
|
||||
GlobSpeedSO = 0;
|
||||
GlobSpeedSO = DAngle::fromDeg(0.);
|
||||
|
||||
//sop->ang_tgt = newang;
|
||||
sop->ang_moving = newang;
|
||||
|
@ -2683,13 +2682,12 @@ void TornadoSpin(SECTOR_OBJECT* sop)
|
|||
if (sop->spin_speed)
|
||||
{
|
||||
// ignore delta angle if spinning
|
||||
GlobSpeedSO = speed;
|
||||
GlobSpeedSO = DAngle::fromBuild(speed);
|
||||
}
|
||||
else
|
||||
{
|
||||
// The actual delta from the last frame
|
||||
GlobSpeedSO = speed;
|
||||
GlobSpeedSO += delta_ang;
|
||||
GlobSpeedSO = DAngle::fromBuild(speed + delta_ang);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -213,7 +213,7 @@ struct SWPlayer native
|
|||
native int16 recoil_ndx;
|
||||
native int recoil_horizoff;
|
||||
|
||||
native int16 RevolveDeltaAng;
|
||||
native double RevolveDeltaAng;
|
||||
|
||||
native int16 pnum; // carry along the player number
|
||||
|
||||
|
|
Loading…
Reference in a new issue