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];
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(
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");
}
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");
}
@ -76,7 +76,7 @@ boolean K_GetWaypointIsShortcut(waypoint_t *waypoint)
{
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");
}
@ -101,7 +101,7 @@ boolean K_GetWaypointIsEnabled(waypoint_t *waypoint)
{
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");
}
@ -113,6 +113,31 @@ boolean K_GetWaypointIsEnabled(waypoint_t *waypoint)
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)
@ -126,7 +151,7 @@ INT32 K_GetWaypointNextID(waypoint_t *waypoint)
{
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");
}
@ -151,7 +176,7 @@ INT32 K_GetWaypointID(waypoint_t *waypoint)
{
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");
}

View file

@ -80,6 +80,21 @@ boolean K_GetWaypointIsShortcut(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)