- handle track typedefs.

This commit is contained in:
Christoph Oelckers 2021-12-31 15:13:05 +01:00
parent f43f63adec
commit 10187e892f
2 changed files with 37 additions and 37 deletions

View file

@ -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
{ {

View file

@ -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;