Just remembered there's supposed to be a flag to determine if a waypoint can be spawned at

This commit is contained in:
Sryder 2019-06-30 22:14:20 +01:00
parent 20f8037351
commit 19a2962413
3 changed files with 47 additions and 7 deletions

View file

@ -5882,8 +5882,8 @@ static void K_UpdateDistanceFromFinishLine(player_t *const player)
aimwaypoint = nextwaypoint->nextwaypoints[i]; aimwaypoint = nextwaypoint->nextwaypoints[i];
if ((i == nextwaypoint->numnextwaypoints - 1U) if ((i == nextwaypoint->numnextwaypoints - 1U)
|| ((K_GetWaypointIsShortcut(aimwaypoint) == false) || ((K_GetWaypointIsEnabled(aimwaypoint) == true)
&& (K_GetWaypointIsEnabled(aimwaypoint) == true))) && (K_GetWaypointIsSpawnpoint(aimwaypoint) == true)))
{ {
player->starpostangle = R_PointToAngle2( player->starpostangle = R_PointToAngle2(
nextwaypoint->mobj->x, nextwaypoint->mobj->y, aimwaypoint->mobj->x, aimwaypoint->mobj->y); nextwaypoint->mobj->x, nextwaypoint->mobj->y, aimwaypoint->mobj->x, aimwaypoint->mobj->y);

View file

@ -51,7 +51,7 @@ boolean K_GetWaypointIsFinishline(waypoint_t *waypoint)
{ {
CONS_Debug(DBG_GAMELOGIC, "NULL waypoint in K_GetWaypointIsShortcut.\n"); CONS_Debug(DBG_GAMELOGIC, "NULL waypoint in K_GetWaypointIsShortcut.\n");
} }
else if (waypoint->mobj == NULL) else if ((waypoint->mobj == NULL) || (P_MobjWasRemoved(waypoint->mobj) == false))
{ {
CONS_Debug(DBG_GAMELOGIC, "NULL waypoint mobj in K_GetWaypointIsShortcut.\n"); CONS_Debug(DBG_GAMELOGIC, "NULL waypoint mobj in K_GetWaypointIsShortcut.\n");
} }
@ -76,7 +76,7 @@ boolean K_GetWaypointIsShortcut(waypoint_t *waypoint)
{ {
CONS_Debug(DBG_GAMELOGIC, "NULL waypoint in K_GetWaypointIsShortcut.\n"); CONS_Debug(DBG_GAMELOGIC, "NULL waypoint in K_GetWaypointIsShortcut.\n");
} }
else if (waypoint->mobj == NULL) else if ((waypoint->mobj == NULL) || (P_MobjWasRemoved(waypoint->mobj) == false))
{ {
CONS_Debug(DBG_GAMELOGIC, "NULL waypoint mobj in K_GetWaypointIsShortcut.\n"); CONS_Debug(DBG_GAMELOGIC, "NULL waypoint mobj in K_GetWaypointIsShortcut.\n");
} }
@ -101,7 +101,7 @@ boolean K_GetWaypointIsEnabled(waypoint_t *waypoint)
{ {
CONS_Debug(DBG_GAMELOGIC, "NULL waypoint in K_GetWaypointIsEnabled.\n"); CONS_Debug(DBG_GAMELOGIC, "NULL waypoint in K_GetWaypointIsEnabled.\n");
} }
else if (waypoint->mobj == NULL) else if ((waypoint->mobj == NULL) || (P_MobjWasRemoved(waypoint->mobj) == false))
{ {
CONS_Debug(DBG_GAMELOGIC, "NULL waypoint mobj in K_GetWaypointIsEnabled.\n"); CONS_Debug(DBG_GAMELOGIC, "NULL waypoint mobj in K_GetWaypointIsEnabled.\n");
} }
@ -113,6 +113,31 @@ boolean K_GetWaypointIsEnabled(waypoint_t *waypoint)
return waypointisenabled; return waypointisenabled;
} }
/*--------------------------------------------------
boolean K_GetWaypointIsSpawnpoint(waypoint_t *waypoint)
See header file for description.
--------------------------------------------------*/
boolean K_GetWaypointIsSpawnpoint(waypoint_t *waypoint)
{
boolean waypointisspawnpoint = true;
if (waypoint == NULL)
{
CONS_Debug(DBG_GAMELOGIC, "NULL waypoint in K_GetWaypointIsEnabled.\n");
}
else if ((waypoint->mobj == NULL) || (P_MobjWasRemoved(waypoint->mobj) == false))
{
CONS_Debug(DBG_GAMELOGIC, "NULL waypoint mobj in K_GetWaypointIsEnabled.\n");
}
else
{
waypointisspawnpoint = (waypoint->mobj->reactiontime == 1);
}
return waypointisspawnpoint;
}
/*-------------------------------------------------- /*--------------------------------------------------
INT32 K_GetWaypointNextID(waypoint_t *waypoint) INT32 K_GetWaypointNextID(waypoint_t *waypoint)
@ -126,7 +151,7 @@ INT32 K_GetWaypointNextID(waypoint_t *waypoint)
{ {
CONS_Debug(DBG_GAMELOGIC, "NULL waypoint in K_GetWaypointNextID.\n"); CONS_Debug(DBG_GAMELOGIC, "NULL waypoint in K_GetWaypointNextID.\n");
} }
else if (waypoint->mobj == NULL) else if ((waypoint->mobj == NULL) || (P_MobjWasRemoved(waypoint->mobj) == false))
{ {
CONS_Debug(DBG_GAMELOGIC, "NULL waypoint mobj in K_GetWaypointNextID.\n"); CONS_Debug(DBG_GAMELOGIC, "NULL waypoint mobj in K_GetWaypointNextID.\n");
} }
@ -151,7 +176,7 @@ INT32 K_GetWaypointID(waypoint_t *waypoint)
{ {
CONS_Debug(DBG_GAMELOGIC, "NULL waypoint in K_GetWaypointID.\n"); CONS_Debug(DBG_GAMELOGIC, "NULL waypoint in K_GetWaypointID.\n");
} }
else if (waypoint->mobj == NULL) else if ((waypoint->mobj == NULL) || (P_MobjWasRemoved(waypoint->mobj) == false))
{ {
CONS_Debug(DBG_GAMELOGIC, "NULL waypoint mobj in K_GetWaypointID.\n"); CONS_Debug(DBG_GAMELOGIC, "NULL waypoint mobj in K_GetWaypointID.\n");
} }

View file

@ -80,6 +80,21 @@ boolean K_GetWaypointIsShortcut(waypoint_t *waypoint);
boolean K_GetWaypointIsEnabled(waypoint_t *waypoint); boolean K_GetWaypointIsEnabled(waypoint_t *waypoint);
/*--------------------------------------------------
boolean K_GetWaypointIsSpawnpoint(waypoint_t *waypoint)
Returns whether the waypoint is a spawnpoint.
Input Arguments:-
waypoint - The waypoint to return spawnpoint status of.
Return:-
true if the waypoint is a spawnpoint, false if it isn't.
--------------------------------------------------*/
boolean K_GetWaypointIsSpawnpoint(waypoint_t *waypoint);
/*-------------------------------------------------- /*--------------------------------------------------
INT32 K_GetWaypointNextID(waypoint_t *waypoint) INT32 K_GetWaypointNextID(waypoint_t *waypoint)