mirror of
https://github.com/ZDoom/Raze.git
synced 2025-01-31 12:30:40 +00:00
- eliminated the last wrapper call for track points
This commit is contained in:
parent
23a0433b95
commit
0767ffe41b
2 changed files with 5 additions and 8 deletions
|
@ -1403,9 +1403,6 @@ struct TRACK_POINT
|
||||||
DVector3 pos;
|
DVector3 pos;
|
||||||
DAngle angle;
|
DAngle angle;
|
||||||
int16_t tag_low, tag_high;
|
int16_t tag_low, tag_high;
|
||||||
|
|
||||||
int int_tx() const { return pos.X * worldtoint; }
|
|
||||||
int int_ty() const { return pos.Y * worldtoint; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct TRACK
|
struct TRACK
|
||||||
|
@ -1484,6 +1481,7 @@ struct SECTOR_OBJECT
|
||||||
* morph_wall_point; // actual wall point to drag
|
* morph_wall_point; // actual wall point to drag
|
||||||
|
|
||||||
double
|
double
|
||||||
|
target_dist, // distance to next point
|
||||||
zdelta; // z delta from original
|
zdelta; // z delta from original
|
||||||
|
|
||||||
|
|
||||||
|
@ -1498,7 +1496,6 @@ struct SECTOR_OBJECT
|
||||||
update, // Distance from player at which you continue updating
|
update, // Distance from player at which you continue updating
|
||||||
// only works for single player.
|
// only works for single player.
|
||||||
bob_diff, // bobbing difference for the frame
|
bob_diff, // bobbing difference for the frame
|
||||||
target_dist, // distance to next point
|
|
||||||
floor_loz, // floor low z
|
floor_loz, // floor low z
|
||||||
floor_hiz, // floor hi z
|
floor_hiz, // floor hi z
|
||||||
morph_z, // morphing point z
|
morph_z, // morphing point z
|
||||||
|
|
|
@ -2222,7 +2222,7 @@ void DoTrack(SECTOR_OBJECT* sop, short locktics, int *nx, int *ny)
|
||||||
// NOTE: Jittery ride - try new value out here
|
// NOTE: Jittery ride - try new value out here
|
||||||
// NOTE: Put a loop around this (locktics) to make it more acuruate
|
// NOTE: Put a loop around this (locktics) to make it more acuruate
|
||||||
const int TRACK_POINT_SIZE = 200;
|
const int TRACK_POINT_SIZE = 200;
|
||||||
if (sop->target_dist < 100)
|
if (sop->target_dist < 100 * maptoworld)
|
||||||
{
|
{
|
||||||
switch (tpoint->tag_low)
|
switch (tpoint->tag_low)
|
||||||
{
|
{
|
||||||
|
@ -2472,8 +2472,8 @@ void DoTrack(SECTOR_OBJECT* sop, short locktics, int *nx, int *ny)
|
||||||
NextTrackPoint(sop);
|
NextTrackPoint(sop);
|
||||||
tpoint = Track[sop->track].TrackPoint + sop->point;
|
tpoint = Track[sop->track].TrackPoint + sop->point;
|
||||||
|
|
||||||
// calculate distance to target poing
|
// calculate distance to target point
|
||||||
sop->target_dist = Distance(sop->int_pmid().X, sop->int_pmid().Y, tpoint->int_tx(), tpoint->int_ty());
|
sop->target_dist = (sop->pmid.XY() - tpoint->pos.XY()).Length();
|
||||||
|
|
||||||
// calculate a new angle to the target
|
// calculate a new angle to the target
|
||||||
sop->ang_moving = sop->ang_tgt = getangle(tpoint->pos - sop->pmid);
|
sop->ang_moving = sop->ang_tgt = getangle(tpoint->pos - sop->pmid);
|
||||||
|
@ -2534,7 +2534,7 @@ void DoTrack(SECTOR_OBJECT* sop, short locktics, int *nx, int *ny)
|
||||||
*nx = ((sop->vel) >> 8) * locktics * bcos(sop->ang_moving) >> 14;
|
*nx = ((sop->vel) >> 8) * locktics * bcos(sop->ang_moving) >> 14;
|
||||||
*ny = ((sop->vel) >> 8) * locktics * bsin(sop->ang_moving) >> 14;
|
*ny = ((sop->vel) >> 8) * locktics * bsin(sop->ang_moving) >> 14;
|
||||||
|
|
||||||
auto dist = Distance(0, 0, *nx, *ny);
|
auto dist = Distance(0, 0, *nx, *ny) * inttoworld;
|
||||||
sop->target_dist -= dist;
|
sop->target_dist -= dist;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue