- renamed angle stuff.

This commit is contained in:
Christoph Oelckers 2022-09-03 23:46:43 +02:00
parent 8a320f6fa7
commit d2253a3aec
7 changed files with 82 additions and 82 deletions

View file

@ -1497,19 +1497,19 @@ struct SECTOR_OBJECT
point, // the point on the track that the sector object is headed toward
vel_rate, // rate at which velocity aproaches target
dir, // direction traveling on the track
ang, // angle facing
ang_moving, // angle the SO is facing
clipdist, // cliping distance for operational sector objects
clipbox_dist[MAX_CLIPBOX]; // mult-clip box variables (clipdist equivalent)
double clipbox_vdist[MAX_CLIPBOX]; // mult-clip box variables
DAngle clipbox_ang[MAX_CLIPBOX]; // mult-clip box variables
int16_t clipbox_num,
ang_tgt, // target angle
ang_orig, // original angle
last_ang, // last angle before started spinning
old_ang, // holding variable for the old angle
spin_speed, // spin_speed
spin_ang, // spin angle
__i_ang, // angle facing
__i_ang_moving, // angle the SO is facing
__i_ang_tgt, // target angle
__i_ang_orig, // original angle
__i_last_ang, // last angle before started spinning
__i_old_ang, // holding variable for the old angle
__i_spin_speed, // spin_speed
__i_spin_ang, // spin angle
turn_speed, // shift value determines how fast SO turns to match new angle
bob_sine_ndx, // index into sine table
bob_speed, // shift value for speed

View file

@ -250,7 +250,7 @@ short RectClipTurn(PLAYER* pp, DAngle new_angl, DVector2* qpos, DVector2* opos)
DAngle rot_angl;
int point_num;
rot_angl = new_angl + DAngle::fromBuild(sop->spin_ang - sop->ang_orig);
rot_angl = new_angl + DAngle::fromBuild(sop->__i_spin_ang - sop->__i_ang_orig);
for (i = 0; i < 4; i++)
{
xy[i] = rotatepoint(pp->pos.XY(), opos[i], rot_angl);

View file

@ -129,7 +129,7 @@ short DoSOevent(short match, short state)
{
sop->flags &= ~(SOBJ_WAIT_FOR_EVENT);
sop->vel = sop->save_vel;
sop->spin_speed = sop->save_spin_speed;
sop->__i_spin_speed = sop->save_spin_speed;
}
}
@ -163,7 +163,7 @@ short DoSOevent(short match, short state)
vel_adj = -SP_TAG7(me_act);
}
sop->spin_speed += spin_adj;
sop->__i_spin_speed += spin_adj;
if (TEST_BOOL1(me_act))
sop->vel_tgt += vel_adj;

View file

@ -4816,7 +4816,7 @@ void DoPlayerBeginOperate(PLAYER* pp)
pp->sop = pp->sop_control = sop;
sop->controller = pp->actor;
pp->angle.oang = pp->angle.ang = DAngle::fromBuild(sop->ang);
pp->angle.oang = pp->angle.ang = DAngle::fromBuild(sop->__i_ang);
pp->pos.XY() = sop->pmid.XY();
updatesector(pp->pos, &pp->cursector);
getzsofslopeptr(pp->cursector, pp->pos, &cz, &fz);
@ -4900,7 +4900,7 @@ void DoPlayerBeginRemoteOperate(PLAYER* pp, SECTOR_OBJECT* sop)
auto save_sect = pp->cursector;
pp->angle.oang = pp->angle.ang = DAngle::fromBuild(sop->ang);
pp->angle.oang = pp->angle.ang = DAngle::fromBuild(sop->__i_ang);
pp->pos.XY() = sop->pmid.XY();
updatesector(pp->pos, &pp->cursector);
getzsofslopeptr(pp->cursector, pp->pos, &cz, &fz);

View file

@ -659,15 +659,15 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, SECTOR_OBJECT& w,
("point", w.point, def->point)
("vel_rate", w.vel_rate, def->vel_rate)
("dir", w.dir, def->dir)
("ang", w.ang, def->ang)
("ang_moving", w.ang_moving, def->ang_moving)
("ang", w.__i_ang, def->__i_ang)
("ang_moving", w.__i_ang_moving, def->__i_ang_moving)
("clipdist", w.clipdist, def->clipdist)
("ang_tgt", w.ang_tgt, def->ang_tgt)
("ang_orig", w.ang_orig, def->ang_orig)
("last_ang", w.last_ang, def->last_ang)
("old_ang", w.old_ang, def->old_ang)
("spin_speed", w.spin_speed, def->spin_speed)
("spin_ang", w.spin_ang, def->spin_ang)
("ang_tgt", w.__i_ang_tgt, def->__i_ang_tgt)
("ang_orig", w.__i_ang_orig, def->__i_ang_orig)
("last_ang", w.__i_last_ang, def->__i_last_ang)
("old_ang", w.__i_old_ang, def->__i_old_ang)
("spin_speed", w.__i_spin_speed, def->__i_spin_speed)
("spin_ang", w.__i_spin_ang, def->__i_spin_ang)
("turn_speed", w.turn_speed, def->turn_speed)
("bob_sine_ndx", w.bob_sine_ndx, def->bob_sine_ndx)
("bob_speed", w.bob_speed, def->bob_speed)

View file

@ -1663,7 +1663,7 @@ int OperateSprite(DSWActor* actor, short player_is_operating)
sop = &SectorObject[so_num];
sop->ang_tgt = NORM_ANGLE(sop->ang_tgt + 512);
sop->__i_ang_tgt = NORM_ANGLE(sop->__i_ang_tgt + 512);
PlaySound(DIGI_BIGSWITCH, actor, v3df_none);

View file

@ -809,7 +809,7 @@ void SectorObjectSetupBounds(SECTOR_OBJECT* sop)
sop->clipbox_vdist[sop->clipbox_num] = (sop->pmid.XY() - itActor->spr.pos.XY()).Length();
auto ang2 = VecToAngle(itActor->spr.pos.XY() - sop->pmid.XY());
sop->clipbox_ang[sop->clipbox_num] = deltaangle(ang2, DAngle::fromBuild(sop->ang));
sop->clipbox_ang[sop->clipbox_num] = deltaangle(ang2, DAngle::fromBuild(sop->__i_ang));
sop->clipbox_num++;
KillActor(itActor);
@ -942,15 +942,15 @@ void SetupSectorObject(sectortype* sectp, short tag)
sop->z_tgt = 0;
sop->zdelta = 0;
sop->wait_tics = 0;
sop->spin_speed = 0;
sop->spin_ang = 0;
sop->ang_orig = 0;
sop->__i_spin_speed = 0;
sop->__i_spin_ang = 0;
sop->__i_ang_orig = 0;
sop->clipdist = 1024;
sop->target_dist = 0;
sop->turn_speed = 4;
sop->floor_loz = -9999999;
sop->floor_hiz = 9999999;
sop->ang_tgt = sop->ang = sop->ang_moving = 0;
sop->__i_ang_tgt = sop->__i_ang = sop->__i_ang_moving = 0;
sop->op_main_sector = nullptr;
sop->ram_damage = 0;
sop->max_damage = -9999;
@ -1071,8 +1071,8 @@ void SetupSectorObject(sectortype* sectp, short tag)
sop->flags |= (SOBJ_DYNAMIC);
sop->scale_type = SO_SCALE_CYCLE;
// spin stuff
sop->spin_speed = 16;
sop->last_ang = sop->ang;
sop->__i_spin_speed = 16;
sop->__i_last_ang = sop->__i_ang;
// animators
sop->Animator = DoTornadoObject;
sop->PreMoveAnimator = ScaleSectorObject;
@ -1193,25 +1193,25 @@ void SetupSectorObject(sectortype* sectp, short tag)
KillActor(actor);
break;
case SO_SPIN:
if (sop->spin_speed)
if (sop->__i_spin_speed)
break;
sop->spin_speed = actor->spr.lotag;
sop->last_ang = sop->ang;
sop->__i_spin_speed = actor->spr.lotag;
sop->__i_last_ang = sop->__i_ang;
KillActor(actor);
break;
case SO_ANGLE:
sop->ang = sop->ang_moving = actor->int_ang();
sop->last_ang = sop->ang_orig = sop->ang;
sop->spin_ang = 0;
sop->__i_ang = sop->__i_ang_moving = actor->int_ang();
sop->__i_last_ang = sop->__i_ang_orig = sop->__i_ang;
sop->__i_spin_ang = 0;
KillActor(actor);
break;
case SO_SPIN_REVERSE:
sop->spin_speed = actor->spr.lotag;
sop->last_ang = sop->ang;
sop->__i_spin_speed = actor->spr.lotag;
sop->__i_last_ang = sop->__i_ang;
if (sop->spin_speed >= 0)
sop->spin_speed = -sop->spin_speed;
if (sop->__i_spin_speed >= 0)
sop->__i_spin_speed = -sop->__i_spin_speed;
KillActor(actor);
break;
@ -1382,9 +1382,9 @@ void PlaceSectorObjectsOnTracks(void)
NextTrackPoint(sop);
sop->ang = getangle((tpoint + sop->point)->pos - sop->pmid);
sop->__i_ang = getangle((tpoint + sop->point)->pos - sop->pmid);
sop->ang_moving = sop->ang_tgt = sop->ang;
sop->__i_ang_moving = sop->__i_ang_tgt = sop->__i_ang;
}
}
@ -1813,17 +1813,17 @@ void RefreshPoints(SECTOR_OBJECT* sop, const DVector2& move, bool dynamic)
}
}
if (sop->spin_speed)
if (sop->__i_spin_speed)
{
// same as below - ignore the objects angle
// last_ang is the last true angle before SO started spinning
delta_ang_from_orig = NORM_ANGLE(sop->last_ang + sop->spin_ang - sop->ang_orig);
delta_ang_from_orig = NORM_ANGLE(sop->__i_last_ang + sop->__i_spin_ang - sop->__i_ang_orig);
}
else
{
// angle traveling + the new spin angle all offset from the original
// angle
delta_ang_from_orig = NORM_ANGLE(sop->ang + sop->spin_ang - sop->ang_orig);
delta_ang_from_orig = NORM_ANGLE(sop->__i_ang + sop->__i_spin_ang - sop->__i_ang_orig);
}
// Note that this delta angle is from the original angle
@ -2126,20 +2126,20 @@ void MoveSectorObjects(SECTOR_OBJECT* sop, short locktics)
npos = DoTrack(sop, locktics);
// get delta to target angle
delta_ang = getincangle(sop->ang, sop->ang_tgt);
delta_ang = getincangle(sop->__i_ang, sop->__i_ang_tgt);
sop->ang = NORM_ANGLE(sop->ang + (delta_ang >> sop->turn_speed));
sop->__i_ang = NORM_ANGLE(sop->__i_ang + (delta_ang >> sop->turn_speed));
delta_ang = delta_ang >> sop->turn_speed;
// move z values
MoveZ(sop);
// calculate the spin speed
speed = sop->spin_speed * locktics;
speed = sop->__i_spin_speed * locktics;
// spin_ang is incremented by the spin_speed
sop->spin_ang = NORM_ANGLE(sop->spin_ang + speed);
sop->__i_spin_ang = NORM_ANGLE(sop->__i_spin_ang + speed);
if (sop->spin_speed)
if (sop->__i_spin_speed)
{
// ignore delta angle if spinning
GlobSpeedSO = DAngle::fromBuild(speed);
@ -2160,7 +2160,7 @@ void MoveSectorObjects(SECTOR_OBJECT* sop, short locktics)
// Update the points so there will be no warping
if ((sop->flags & (SOBJ_UPDATE|SOBJ_UPDATE_ONCE)) ||
sop->vel ||
(sop->ang != sop->ang_tgt) ||
(sop->__i_ang != sop->__i_ang_tgt) ||
GlobSpeedSO.Degrees())
{
sop->flags &= ~(SOBJ_UPDATE_ONCE);
@ -2178,7 +2178,7 @@ DVector2 DoTrack(SECTOR_OBJECT* sop, short locktics)
// calculate an angle to the target
if (sop->vel)
sop->ang_moving = sop->ang_tgt = getangle(tpoint->pos - sop->pmid);
sop->__i_ang_moving = sop->__i_ang_tgt = getangle(tpoint->pos - sop->pmid);
// NOTE: Jittery ride - try new value out here
// NOTE: Put a loop around this (locktics) to make it more acuruate
@ -2198,30 +2198,30 @@ DVector2 DoTrack(SECTOR_OBJECT* sop, short locktics)
break;
case TRACK_SPIN:
if (sop->spin_speed)
if (sop->__i_spin_speed)
break;
sop->spin_speed = tpoint->tag_high;
sop->last_ang = sop->ang;
sop->__i_spin_speed = tpoint->tag_high;
sop->__i_last_ang = sop->__i_ang;
break;
case TRACK_SPIN_REVERSE:
{
if (!sop->spin_speed)
if (!sop->__i_spin_speed)
break;
if (sop->spin_speed >= 0)
if (sop->__i_spin_speed >= 0)
{
sop->spin_speed = -sop->spin_speed;
sop->__i_spin_speed = -sop->__i_spin_speed;
}
}
break;
case TRACK_SPIN_STOP:
if (!sop->spin_speed)
if (!sop->__i_spin_speed)
break;
sop->spin_speed = 0;
sop->__i_spin_speed = 0;
break;
case TRACK_BOB_START:
@ -2384,9 +2384,9 @@ DVector2 DoTrack(SECTOR_OBJECT* sop, short locktics)
sop->flags |= (SOBJ_WAIT_FOR_EVENT);
sop->save_vel = sop->vel;
sop->save_spin_speed = sop->spin_speed;
sop->save_spin_speed = sop->__i_spin_speed;
sop->vel = sop->spin_speed = 0;
sop->vel = sop->__i_spin_speed = 0;
// only set event if non-zero
if (tpoint->tag_high)
sop->match_event = tpoint->tag_high;
@ -2437,7 +2437,7 @@ DVector2 DoTrack(SECTOR_OBJECT* sop, short locktics)
sop->target_dist = (sop->pmid.XY() - tpoint->pos.XY()).Length();
// calculate a new angle to the target
sop->ang_moving = sop->ang_tgt = getangle(tpoint->pos - sop->pmid);
sop->__i_ang_moving = sop->__i_ang_tgt = getangle(tpoint->pos - sop->pmid);
if ((sop->flags & SOBJ_ZDIFF_MODE))
{
@ -2493,8 +2493,8 @@ DVector2 DoTrack(SECTOR_OBJECT* sop, short locktics)
if (sop->vel && !(sop->flags & SOBJ_MOVE_VERTICAL))
{
DVector2 n;
n.X = (((sop->vel) >> 8) * locktics * bcos(sop->ang_moving) >> 14) * inttoworld;
n.Y = (((sop->vel) >> 8) * locktics * bsin(sop->ang_moving) >> 14) * inttoworld;
n.X = (((sop->vel) >> 8) * locktics * bcos(sop->__i_ang_moving) >> 14) * inttoworld;
n.Y = (((sop->vel) >> 8) * locktics * bsin(sop->__i_ang_moving) >> 14) * inttoworld;
sop->target_dist -= n.Length();
return n;
@ -2534,10 +2534,10 @@ void OperateSectorObjectForTics(SECTOR_OBJECT* sop, short newang, const DVector2
GlobSpeedSO = nullAngle;
//sop->ang_tgt = newang;
sop->ang_moving = newang;
sop->__i_ang_moving = newang;
sop->spin_ang = 0;
sop->ang = newang;
sop->__i_spin_ang = 0;
sop->__i_ang = newang;
RefreshPoints(sop, pos - sop->pmid.XY(), false);
}
@ -2598,20 +2598,20 @@ void TornadoSpin(SECTOR_OBJECT* sop)
short locktics = synctics;
// get delta to target angle
delta_ang = getincangle(sop->ang, sop->ang_tgt);
delta_ang = getincangle(sop->__i_ang, sop->__i_ang_tgt);
sop->ang = NORM_ANGLE(sop->ang + (delta_ang >> sop->turn_speed));
sop->__i_ang = NORM_ANGLE(sop->__i_ang + (delta_ang >> sop->turn_speed));
delta_ang = delta_ang >> sop->turn_speed;
// move z values
MoveZ(sop);
// calculate the spin speed
speed = sop->spin_speed * locktics;
speed = sop->__i_spin_speed * locktics;
// spin_ang is incremented by the spin_speed
sop->spin_ang = NORM_ANGLE(sop->spin_ang + speed);
sop->__i_spin_ang = NORM_ANGLE(sop->__i_spin_ang + speed);
if (sop->spin_speed)
if (sop->__i_spin_speed)
{
// ignore delta angle if spinning
GlobSpeedSO = DAngle::fromBuild(speed);
@ -2629,7 +2629,7 @@ void DoTornadoObject(SECTOR_OBJECT* sop)
// this made them move together more or less - cool!
//static short ang = 1024;
int ret;
short *ang = &sop->ang_moving;
short *ang = &sop->__i_ang_moving;
xvect = sop->vel * bcos(*ang);
yvect = sop->vel * bcos(*ang);
@ -2717,30 +2717,30 @@ void DoAutoTurretObject(SECTOR_OBJECT* sop)
}
}
sop->ang_tgt = getangle(actor->user.targetActor->spr.pos - sop->pmid);
sop->__i_ang_tgt = getangle(actor->user.targetActor->spr.pos - sop->pmid);
// get delta to target angle
delta_ang = getincangle(sop->ang, sop->ang_tgt);
delta_ang = getincangle(sop->__i_ang, sop->__i_ang_tgt);
//sop->ang += delta_ang >> 4;
sop->ang = NORM_ANGLE(sop->ang + (delta_ang >> 3));
//sop->ang += delta_ang >> 2;
//sop->__i_ang += delta_ang >> 4;
sop->__i_ang = NORM_ANGLE(sop->__i_ang + (delta_ang >> 3));
//sop->__i_ang += delta_ang >> 2;
if (sop->limit_ang_center >= nullAngle)
{
diff = deltaangle(sop->limit_ang_center, DAngle::fromBuild(sop->ang));
diff = deltaangle(sop->limit_ang_center, DAngle::fromBuild(sop->__i_ang));
if (abs(diff) >= sop->limit_ang_delta)
{
if (diff < nullAngle)
sop->ang = (sop->limit_ang_center - sop->limit_ang_delta).Buildang();
sop->__i_ang = (sop->limit_ang_center - sop->limit_ang_delta).Buildang();
else
sop->ang = (sop->limit_ang_center + sop->limit_ang_delta).Buildang();
sop->__i_ang = (sop->limit_ang_center + sop->limit_ang_delta).Buildang();
}
}
OperateSectorObjectForTics(sop, sop->ang, sop->pmid, 2*synctics);
OperateSectorObjectForTics(sop, sop->__i_ang, sop->pmid, 2*synctics);
}
}