mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-21 19:11:06 +00:00
- handle track typedefs.
This commit is contained in:
parent
f43f63adec
commit
10187e892f
2 changed files with 37 additions and 37 deletions
|
@ -1387,15 +1387,15 @@ enum
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
typedef struct TRACK_POINT
|
struct TRACK_POINT
|
||||||
{
|
{
|
||||||
int x,y,z;
|
int x, y, z;
|
||||||
int16_t ang, tag_low, tag_high, filler;
|
int16_t ang, tag_low, tag_high, filler;
|
||||||
} *TRACK_POINTp;
|
};
|
||||||
|
|
||||||
typedef struct TRACK
|
struct TRACK
|
||||||
{
|
{
|
||||||
TRACK_POINTp TrackPoint;
|
TRACK_POINT* TrackPoint;
|
||||||
int ttflags;
|
int ttflags;
|
||||||
int flags;
|
int flags;
|
||||||
int NumPoints;
|
int NumPoints;
|
||||||
|
@ -1410,23 +1410,23 @@ typedef struct TRACK
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TRACK_POINTp SetTrackSize(unsigned newsize)
|
TRACK_POINT* SetTrackSize(unsigned newsize)
|
||||||
{
|
{
|
||||||
FreeTrackPoints();
|
FreeTrackPoints();
|
||||||
TrackPoint = (TRACK_POINTp)M_Calloc((newsize * sizeof(TRACK_POINT)), 1);
|
TrackPoint = (TRACK_POINT*)M_Calloc((newsize * sizeof(TRACK_POINT)), 1);
|
||||||
return TrackPoint;
|
return TrackPoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
}*TRACKp;
|
};
|
||||||
|
|
||||||
// Most track type flags are in tags.h
|
// Most track type flags are in tags.h
|
||||||
|
|
||||||
// Regular track flags
|
// Regular track flags
|
||||||
|
|
||||||
typedef struct
|
struct COLOR_MAP
|
||||||
{
|
{
|
||||||
uint8_t FromRange,ToRange,FromColor,ToColor;
|
uint8_t FromRange,ToRange,FromColor,ToColor;
|
||||||
} COLOR_MAP, *COLOR_MAPp;
|
};
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
|
|
@ -52,9 +52,9 @@ ANIMATOR NinjaJumpActionFunc;
|
||||||
int GlobSpeedSO;
|
int GlobSpeedSO;
|
||||||
|
|
||||||
// determine if moving down the track will get you closer to the player
|
// determine if moving down the track will get you closer to the player
|
||||||
short TrackTowardPlayer(DSWActor* actor, TRACKp t, TRACK_POINTp start_point)
|
short TrackTowardPlayer(DSWActor* actor, TRACK* t, TRACK_POINT* start_point)
|
||||||
{
|
{
|
||||||
TRACK_POINTp end_point;
|
TRACK_POINT* end_point;
|
||||||
int end_dist, start_dist;
|
int end_dist, start_dist;
|
||||||
|
|
||||||
// determine which end of the Track we are starting from
|
// determine which end of the Track we are starting from
|
||||||
|
@ -79,9 +79,9 @@ short TrackTowardPlayer(DSWActor* actor, TRACKp t, TRACK_POINTp start_point)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
short TrackStartCloserThanEnd(DSWActor* actor, TRACKp t, TRACK_POINTp start_point)
|
short TrackStartCloserThanEnd(DSWActor* actor, TRACK* t, TRACK_POINT* start_point)
|
||||||
{
|
{
|
||||||
TRACK_POINTp end_point;
|
TRACK_POINT* end_point;
|
||||||
int end_dist, start_dist;
|
int end_dist, start_dist;
|
||||||
|
|
||||||
// determine which end of the Track we are starting from
|
// determine which end of the Track we are starting from
|
||||||
|
@ -120,8 +120,8 @@ short ActorFindTrack(DSWActor* actor, int8_t player_dir, int track_type, int* tr
|
||||||
int i;
|
int i;
|
||||||
short end_point[2] = { 0,0 };
|
short end_point[2] = { 0,0 };
|
||||||
|
|
||||||
TRACKp t, near_track = nullptr;
|
TRACK* t, *near_track = nullptr;
|
||||||
TRACK_POINTp tp, near_tp = nullptr;
|
TRACK_POINT* tp, *near_tp = nullptr;
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
@ -281,9 +281,9 @@ void NextActorTrackPoint(DSWActor* actor)
|
||||||
actor->user.point = Track[actor->user.track].NumPoints - 1;
|
actor->user.point = Track[actor->user.track].NumPoints - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TrackAddPoint(TRACKp t, TRACK_POINTp tp, DSWActor* actor)
|
void TrackAddPoint(TRACK* t, TRACK_POINT* tp, DSWActor* actor)
|
||||||
{
|
{
|
||||||
TRACK_POINTp tpoint = (tp + t->NumPoints);
|
TRACK_POINT* tpoint = (tp + t->NumPoints);
|
||||||
|
|
||||||
tpoint->x = actor->spr.pos.X;
|
tpoint->x = actor->spr.pos.X;
|
||||||
tpoint->y = actor->spr.pos.Y;
|
tpoint->y = actor->spr.pos.Y;
|
||||||
|
@ -316,8 +316,8 @@ DSWActor* TrackClonePoint(DSWActor* actor)
|
||||||
void QuickJumpSetup(short stat, short lotag, short type)
|
void QuickJumpSetup(short stat, short lotag, short type)
|
||||||
{
|
{
|
||||||
int ndx;
|
int ndx;
|
||||||
TRACK_POINTp tp;
|
TRACK_POINT* tp;
|
||||||
TRACKp t;
|
TRACK* t;
|
||||||
DSWActor* start_sprite,* end_sprite;
|
DSWActor* start_sprite,* end_sprite;
|
||||||
|
|
||||||
// make short quick jump tracks
|
// make short quick jump tracks
|
||||||
|
@ -370,8 +370,8 @@ void QuickJumpSetup(short stat, short lotag, short type)
|
||||||
void QuickScanSetup(short stat, short lotag, short type)
|
void QuickScanSetup(short stat, short lotag, short type)
|
||||||
{
|
{
|
||||||
int ndx;
|
int ndx;
|
||||||
TRACK_POINTp tp;
|
TRACK_POINT* tp;
|
||||||
TRACKp t;
|
TRACK* t;
|
||||||
DSWActor* start_sprite,* end_sprite;
|
DSWActor* start_sprite,* end_sprite;
|
||||||
|
|
||||||
// make short quick jump tracks
|
// make short quick jump tracks
|
||||||
|
@ -427,8 +427,8 @@ void QuickScanSetup(short stat, short lotag, short type)
|
||||||
void QuickExitSetup(short stat, short type)
|
void QuickExitSetup(short stat, short type)
|
||||||
{
|
{
|
||||||
int ndx;
|
int ndx;
|
||||||
TRACK_POINTp tp;
|
TRACK_POINT* tp;
|
||||||
TRACKp t;
|
TRACK* t;
|
||||||
DSWActor* start_sprite,* end_sprite;
|
DSWActor* start_sprite,* end_sprite;
|
||||||
|
|
||||||
SWStatIterator it(stat);
|
SWStatIterator it(stat);
|
||||||
|
@ -478,8 +478,8 @@ void QuickExitSetup(short stat, short type)
|
||||||
void QuickLadderSetup(short stat, short lotag, short type)
|
void QuickLadderSetup(short stat, short lotag, short type)
|
||||||
{
|
{
|
||||||
int ndx;
|
int ndx;
|
||||||
TRACK_POINTp tp;
|
TRACK_POINT* tp;
|
||||||
TRACKp t;
|
TRACK* t;
|
||||||
DSWActor* start_sprite,* end_sprite;
|
DSWActor* start_sprite,* end_sprite;
|
||||||
|
|
||||||
SWStatIterator it(stat);
|
SWStatIterator it(stat);
|
||||||
|
@ -534,9 +534,9 @@ void QuickLadderSetup(short stat, short lotag, short type)
|
||||||
void TrackSetup(void)
|
void TrackSetup(void)
|
||||||
{
|
{
|
||||||
int ndx;
|
int ndx;
|
||||||
TRACK_POINTp tp;
|
TRACK_POINT* tp;
|
||||||
TRACKp t;
|
TRACK* t;
|
||||||
TRACK_POINTp New;
|
TRACK_POINT* New;
|
||||||
int size;
|
int size;
|
||||||
|
|
||||||
// put points on track
|
// put points on track
|
||||||
|
@ -548,7 +548,7 @@ void TrackSetup(void)
|
||||||
{
|
{
|
||||||
// for some reason I need at least one record allocated
|
// for some reason I need at least one record allocated
|
||||||
// can't remember why at this point
|
// can't remember why at this point
|
||||||
Track[ndx].TrackPoint = (TRACK_POINTp)CallocMem(sizeof(TRACK_POINT) * 1, 1);
|
Track[ndx].TrackPoint = (TRACK_POINT*)CallocMem(sizeof(TRACK_POINT) * 1, 1);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -556,7 +556,7 @@ void TrackSetup(void)
|
||||||
|
|
||||||
// make the track array rather large. I'll resize it to correct size
|
// make the track array rather large. I'll resize it to correct size
|
||||||
// later.
|
// later.
|
||||||
Track[ndx].TrackPoint = (TRACK_POINTp)CallocMem(sizeof(TRACK_POINT) * 500, 1);
|
Track[ndx].TrackPoint = (TRACK_POINT*)CallocMem(sizeof(TRACK_POINT) * 500, 1);
|
||||||
|
|
||||||
ASSERT(Track[ndx].TrackPoint != nullptr);
|
ASSERT(Track[ndx].TrackPoint != nullptr);
|
||||||
|
|
||||||
|
@ -626,7 +626,7 @@ void TrackSetup(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
size = (Track[ndx].NumPoints + 1) * sizeof(TRACK_POINT);
|
size = (Track[ndx].NumPoints + 1) * sizeof(TRACK_POINT);
|
||||||
New = (TRACK_POINTp)CallocMem(size, 1);
|
New = (TRACK_POINT*)CallocMem(size, 1);
|
||||||
memcpy(New, Track[ndx].TrackPoint, size);
|
memcpy(New, Track[ndx].TrackPoint, size);
|
||||||
FreeMem(Track[ndx].TrackPoint);
|
FreeMem(Track[ndx].TrackPoint);
|
||||||
Track[ndx].TrackPoint = New;
|
Track[ndx].TrackPoint = New;
|
||||||
|
@ -1386,7 +1386,7 @@ void PlaceSectorObjectsOnTracks(void)
|
||||||
{
|
{
|
||||||
int low_dist = 999999, dist;
|
int low_dist = 999999, dist;
|
||||||
SECTOR_OBJECTp sop = &SectorObject[i];
|
SECTOR_OBJECTp sop = &SectorObject[i];
|
||||||
TRACK_POINTp tpoint = nullptr;
|
TRACK_POINT* tpoint = nullptr;
|
||||||
|
|
||||||
if (SO_EMPTY(sop))
|
if (SO_EMPTY(sop))
|
||||||
continue;
|
continue;
|
||||||
|
@ -1449,7 +1449,7 @@ void PlaceSectorObjectsOnTracks(void)
|
||||||
void PlaceActorsOnTracks(void)
|
void PlaceActorsOnTracks(void)
|
||||||
{
|
{
|
||||||
short j, tag;
|
short j, tag;
|
||||||
TRACK_POINTp tpoint = nullptr;
|
TRACK_POINT* tpoint = nullptr;
|
||||||
|
|
||||||
// place each actor on the track
|
// place each actor on the track
|
||||||
SWStatIterator it(STAT_ENEMY);
|
SWStatIterator it(STAT_ENEMY);
|
||||||
|
@ -2240,7 +2240,7 @@ void MoveSectorObjects(SECTOR_OBJECTp sop, short locktics)
|
||||||
|
|
||||||
void DoTrack(SECTOR_OBJECTp sop, short locktics, int *nx, int *ny)
|
void DoTrack(SECTOR_OBJECTp sop, short locktics, int *nx, int *ny)
|
||||||
{
|
{
|
||||||
TRACK_POINTp tpoint;
|
TRACK_POINT* tpoint;
|
||||||
int dx, dy, dz;
|
int dx, dy, dz;
|
||||||
int dist;
|
int dist;
|
||||||
|
|
||||||
|
@ -2897,7 +2897,7 @@ void ActorLeaveTrack(DSWActor* actor)
|
||||||
actor->user.track = -1;
|
actor->user.track = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ActorTrackDecide(TRACK_POINTp tpoint, DSWActor* actor)
|
bool ActorTrackDecide(TRACK_POINT* tpoint, DSWActor* actor)
|
||||||
{
|
{
|
||||||
switch (tpoint->tag_low)
|
switch (tpoint->tag_low)
|
||||||
{
|
{
|
||||||
|
@ -3417,7 +3417,7 @@ int ActorFollowTrack(DSWActor* actor, short locktics)
|
||||||
{
|
{
|
||||||
PLAYERp pp;
|
PLAYERp pp;
|
||||||
|
|
||||||
TRACK_POINTp tpoint;
|
TRACK_POINT* tpoint;
|
||||||
short pnum;
|
short pnum;
|
||||||
int nx = 0, ny = 0, nz = 0, dx, dy, dz;
|
int nx = 0, ny = 0, nz = 0, dx, dy, dz;
|
||||||
int dist;
|
int dist;
|
||||||
|
|
Loading…
Reference in a new issue