mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-20 18:42:26 +00:00
- added wrappers, part 1
This commit is contained in:
parent
d2253a3aec
commit
d4a0972733
4 changed files with 32 additions and 21 deletions
|
@ -1501,6 +1501,17 @@ struct SECTOR_OBJECT
|
|||
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
|
||||
|
||||
int int_i_ang() const { return __i_ang; }
|
||||
int int_i_ang_moving() const { return __i_ang_moving; }
|
||||
int int_i_ang_tgt() const { return __i_ang_tgt; }
|
||||
int int_i_ang_orig() const { return __i_ang_orig; }
|
||||
int int_i_last_ang() const { return __i_last_ang; }
|
||||
int int_i_old_ang() const { return __i_old_ang; }
|
||||
int int_i_spin_ang() const { return __i_spin_ang; }
|
||||
int int_i_spin_speed() const { return __i_spin_speed; }
|
||||
|
||||
|
||||
int16_t clipbox_num,
|
||||
__i_ang, // angle facing
|
||||
__i_ang_moving, // angle the SO is facing
|
||||
|
|
|
@ -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->__i_spin_ang - sop->__i_ang_orig);
|
||||
rot_angl = new_angl + DAngle::fromBuild(sop->__i_spin_ang - sop->int_i_ang_orig());
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
xy[i] = rotatepoint(pp->pos.XY(), opos[i], rot_angl);
|
||||
|
|
|
@ -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->__i_ang);
|
||||
pp->angle.oang = pp->angle.ang = DAngle::fromBuild(sop->int_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->__i_ang);
|
||||
pp->angle.oang = pp->angle.ang = DAngle::fromBuild(sop->int_i_ang());
|
||||
pp->pos.XY() = sop->pmid.XY();
|
||||
updatesector(pp->pos, &pp->cursector);
|
||||
getzsofslopeptr(pp->cursector, pp->pos, &cz, &fz);
|
||||
|
|
|
@ -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->__i_ang));
|
||||
sop->clipbox_ang[sop->clipbox_num] = deltaangle(ang2, DAngle::fromBuild(sop->int_i_ang()));
|
||||
|
||||
sop->clipbox_num++;
|
||||
KillActor(itActor);
|
||||
|
@ -1072,7 +1072,7 @@ void SetupSectorObject(sectortype* sectp, short tag)
|
|||
sop->scale_type = SO_SCALE_CYCLE;
|
||||
// spin stuff
|
||||
sop->__i_spin_speed = 16;
|
||||
sop->__i_last_ang = sop->__i_ang;
|
||||
sop->__i_last_ang = sop->int_i_ang();
|
||||
// animators
|
||||
sop->Animator = DoTornadoObject;
|
||||
sop->PreMoveAnimator = ScaleSectorObject;
|
||||
|
@ -1196,19 +1196,19 @@ void SetupSectorObject(sectortype* sectp, short tag)
|
|||
if (sop->__i_spin_speed)
|
||||
break;
|
||||
sop->__i_spin_speed = actor->spr.lotag;
|
||||
sop->__i_last_ang = sop->__i_ang;
|
||||
sop->__i_last_ang = sop->int_i_ang();
|
||||
KillActor(actor);
|
||||
break;
|
||||
case SO_ANGLE:
|
||||
sop->__i_ang = sop->__i_ang_moving = actor->int_ang();
|
||||
sop->__i_last_ang = sop->__i_ang_orig = sop->__i_ang;
|
||||
sop->__i_last_ang = sop->__i_ang_orig = sop->int_i_ang();
|
||||
sop->__i_spin_ang = 0;
|
||||
KillActor(actor);
|
||||
break;
|
||||
case SO_SPIN_REVERSE:
|
||||
|
||||
sop->__i_spin_speed = actor->spr.lotag;
|
||||
sop->__i_last_ang = sop->__i_ang;
|
||||
sop->__i_last_ang = sop->int_i_ang();
|
||||
|
||||
if (sop->__i_spin_speed >= 0)
|
||||
sop->__i_spin_speed = -sop->__i_spin_speed;
|
||||
|
@ -1384,7 +1384,7 @@ void PlaceSectorObjectsOnTracks(void)
|
|||
|
||||
sop->__i_ang = getangle((tpoint + sop->point)->pos - sop->pmid);
|
||||
|
||||
sop->__i_ang_moving = sop->__i_ang_tgt = sop->__i_ang;
|
||||
sop->__i_ang_moving = sop->__i_ang_tgt = sop->int_i_ang();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1817,13 +1817,13 @@ void RefreshPoints(SECTOR_OBJECT* sop, const DVector2& move, bool dynamic)
|
|||
{
|
||||
// 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->__i_last_ang + sop->__i_spin_ang - sop->__i_ang_orig);
|
||||
delta_ang_from_orig = NORM_ANGLE(sop->__i_last_ang + sop->__i_spin_ang - sop->int_i_ang_orig());
|
||||
}
|
||||
else
|
||||
{
|
||||
// angle traveling + the new spin angle all offset from the original
|
||||
// angle
|
||||
delta_ang_from_orig = NORM_ANGLE(sop->__i_ang + sop->__i_spin_ang - sop->__i_ang_orig);
|
||||
delta_ang_from_orig = NORM_ANGLE(sop->int_i_ang() + sop->__i_spin_ang - sop->int_i_ang_orig());
|
||||
}
|
||||
|
||||
// Note that this delta angle is from the original angle
|
||||
|
@ -2126,9 +2126,9 @@ void MoveSectorObjects(SECTOR_OBJECT* sop, short locktics)
|
|||
npos = DoTrack(sop, locktics);
|
||||
|
||||
// get delta to target angle
|
||||
delta_ang = getincangle(sop->__i_ang, sop->__i_ang_tgt);
|
||||
delta_ang = getincangle(sop->int_i_ang(), sop->__i_ang_tgt);
|
||||
|
||||
sop->__i_ang = NORM_ANGLE(sop->__i_ang + (delta_ang >> sop->turn_speed));
|
||||
sop->__i_ang = NORM_ANGLE(sop->int_i_ang() + (delta_ang >> sop->turn_speed));
|
||||
delta_ang = delta_ang >> sop->turn_speed;
|
||||
|
||||
// move z values
|
||||
|
@ -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->__i_ang != sop->__i_ang_tgt) ||
|
||||
(sop->int_i_ang() != sop->__i_ang_tgt) ||
|
||||
GlobSpeedSO.Degrees())
|
||||
{
|
||||
sop->flags &= ~(SOBJ_UPDATE_ONCE);
|
||||
|
@ -2202,7 +2202,7 @@ DVector2 DoTrack(SECTOR_OBJECT* sop, short locktics)
|
|||
break;
|
||||
|
||||
sop->__i_spin_speed = tpoint->tag_high;
|
||||
sop->__i_last_ang = sop->__i_ang;
|
||||
sop->__i_last_ang = sop->int_i_ang();
|
||||
break;
|
||||
|
||||
case TRACK_SPIN_REVERSE:
|
||||
|
@ -2598,9 +2598,9 @@ void TornadoSpin(SECTOR_OBJECT* sop)
|
|||
short locktics = synctics;
|
||||
|
||||
// get delta to target angle
|
||||
delta_ang = getincangle(sop->__i_ang, sop->__i_ang_tgt);
|
||||
delta_ang = getincangle(sop->int_i_ang(), sop->__i_ang_tgt);
|
||||
|
||||
sop->__i_ang = NORM_ANGLE(sop->__i_ang + (delta_ang >> sop->turn_speed));
|
||||
sop->__i_ang = NORM_ANGLE(sop->int_i_ang() + (delta_ang >> sop->turn_speed));
|
||||
delta_ang = delta_ang >> sop->turn_speed;
|
||||
|
||||
// move z values
|
||||
|
@ -2720,15 +2720,15 @@ void DoAutoTurretObject(SECTOR_OBJECT* sop)
|
|||
sop->__i_ang_tgt = getangle(actor->user.targetActor->spr.pos - sop->pmid);
|
||||
|
||||
// get delta to target angle
|
||||
delta_ang = getincangle(sop->__i_ang, sop->__i_ang_tgt);
|
||||
delta_ang = getincangle(sop->int_i_ang(), sop->__i_ang_tgt);
|
||||
|
||||
//sop->__i_ang += delta_ang >> 4;
|
||||
sop->__i_ang = NORM_ANGLE(sop->__i_ang + (delta_ang >> 3));
|
||||
sop->__i_ang = NORM_ANGLE(sop->int_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->__i_ang));
|
||||
diff = deltaangle(sop->limit_ang_center, DAngle::fromBuild(sop->int_i_ang()));
|
||||
|
||||
if (abs(diff) >= sop->limit_ang_delta)
|
||||
{
|
||||
|
@ -2740,7 +2740,7 @@ void DoAutoTurretObject(SECTOR_OBJECT* sop)
|
|||
}
|
||||
}
|
||||
|
||||
OperateSectorObjectForTics(sop, sop->__i_ang, sop->pmid, 2*synctics);
|
||||
OperateSectorObjectForTics(sop, sop->int_i_ang(), sop->pmid, 2*synctics);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue