mirror of
https://github.com/DrBeef/Raze.git
synced 2025-02-01 05:20:43 +00:00
- renamed angle stuff.
This commit is contained in:
parent
8a320f6fa7
commit
d2253a3aec
7 changed files with 82 additions and 82 deletions
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue