mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'waypoints-disable' into 'master'
Linedef executor 499: Enable/Disable Waypoints in Tagged Sector See merge request KartKrew/Kart!357
This commit is contained in:
commit
7f944ce467
5 changed files with 69 additions and 3 deletions
|
|
@ -24431,7 +24431,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
100, // mass
|
100, // mass
|
||||||
0, // damage
|
0, // damage
|
||||||
sfx_None, // activesound
|
sfx_None, // activesound
|
||||||
MF_NOBLOCKMAP|MF_NOSECTOR|MF_NOCLIP|MF_NOGRAVITY|MF_SCENERY, // flags
|
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOGRAVITY|MF_SCENERY, // flags
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -633,6 +633,10 @@ static botprediction_t *K_CreateBotPrediction(player_t *player)
|
||||||
|
|
||||||
for (i = 0; i < wp->numnextwaypoints; i++)
|
for (i = 0; i < wp->numnextwaypoints; i++)
|
||||||
{
|
{
|
||||||
|
if (!K_GetWaypointIsEnabled(wp->nextwaypoints[i]))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (K_GetWaypointIsShortcut(wp->nextwaypoints[i]) && !K_BotCanTakeCut(player))
|
if (K_GetWaypointIsShortcut(wp->nextwaypoints[i]) && !K_BotCanTakeCut(player))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
10
src/k_kart.c
10
src/k_kart.c
|
|
@ -6581,6 +6581,11 @@ static waypoint_t *K_GetPlayerNextWaypoint(player_t *player)
|
||||||
{
|
{
|
||||||
for (i = 0U; i < waypoint->numnextwaypoints; i++)
|
for (i = 0U; i < waypoint->numnextwaypoints; i++)
|
||||||
{
|
{
|
||||||
|
if (!K_GetWaypointIsEnabled(waypoint->nextwaypoints[i]))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (K_PlayerUsesBotMovement(player) == true
|
if (K_PlayerUsesBotMovement(player) == true
|
||||||
&& K_GetWaypointIsShortcut(waypoint->nextwaypoints[i]) == true
|
&& K_GetWaypointIsShortcut(waypoint->nextwaypoints[i]) == true
|
||||||
&& K_BotCanTakeCut(player) == false)
|
&& K_BotCanTakeCut(player) == false)
|
||||||
|
|
@ -6636,6 +6641,11 @@ static waypoint_t *K_GetPlayerNextWaypoint(player_t *player)
|
||||||
{
|
{
|
||||||
for (i = 0U; i < waypoint->numprevwaypoints; i++)
|
for (i = 0U; i < waypoint->numprevwaypoints; i++)
|
||||||
{
|
{
|
||||||
|
if (!K_GetWaypointIsEnabled(waypoint->prevwaypoints[i]))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
angletowaypoint = R_PointToAngle2(
|
angletowaypoint = R_PointToAngle2(
|
||||||
player->mo->x, player->mo->y,
|
player->mo->x, player->mo->y,
|
||||||
waypoint->prevwaypoints[i]->mobj->x, waypoint->prevwaypoints[i]->mobj->y);
|
waypoint->prevwaypoints[i]->mobj->x, waypoint->prevwaypoints[i]->mobj->y);
|
||||||
|
|
|
||||||
|
|
@ -280,6 +280,11 @@ waypoint_t *K_GetBestWaypointForMobj(mobj_t *const mobj)
|
||||||
|
|
||||||
checkwaypoint = &waypointheap[i];
|
checkwaypoint = &waypointheap[i];
|
||||||
|
|
||||||
|
if (!K_GetWaypointIsEnabled(checkwaypoint))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
checkdist = P_AproxDistance(
|
checkdist = P_AproxDistance(
|
||||||
(mobj->x / FRACUNIT) - (checkwaypoint->mobj->x / FRACUNIT),
|
(mobj->x / FRACUNIT) - (checkwaypoint->mobj->x / FRACUNIT),
|
||||||
(mobj->y / FRACUNIT) - (checkwaypoint->mobj->y / FRACUNIT));
|
(mobj->y / FRACUNIT) - (checkwaypoint->mobj->y / FRACUNIT));
|
||||||
|
|
@ -447,7 +452,12 @@ static void K_DebugWaypointsSpawnLine(waypoint_t *const waypoint1, waypoint_t *c
|
||||||
I_Assert(waypoint2->mobj != NULL);
|
I_Assert(waypoint2->mobj != NULL);
|
||||||
I_Assert(cv_kartdebugwaypoints.value != 0);
|
I_Assert(cv_kartdebugwaypoints.value != 0);
|
||||||
|
|
||||||
linkcolour = K_GetWaypointID(waypoint1)%linkcolourssize;
|
linkcolour = linkcolours[K_GetWaypointID(waypoint1) % linkcolourssize];
|
||||||
|
|
||||||
|
if (!K_GetWaypointIsEnabled(waypoint1) || !K_GetWaypointIsEnabled(waypoint2))
|
||||||
|
{
|
||||||
|
linkcolour = SKINCOLOR_BLACK;
|
||||||
|
}
|
||||||
|
|
||||||
waypointmobj1 = waypoint1->mobj;
|
waypointmobj1 = waypoint1->mobj;
|
||||||
waypointmobj2 = waypoint2->mobj;
|
waypointmobj2 = waypoint2->mobj;
|
||||||
|
|
@ -474,7 +484,7 @@ static void K_DebugWaypointsSpawnLine(waypoint_t *const waypoint1, waypoint_t *c
|
||||||
spawnedmobj->state->nextstate = S_NULL;
|
spawnedmobj->state->nextstate = S_NULL;
|
||||||
spawnedmobj->state->tics = 1;
|
spawnedmobj->state->tics = 1;
|
||||||
spawnedmobj->frame = spawnedmobj->frame & ~FF_TRANSMASK;
|
spawnedmobj->frame = spawnedmobj->frame & ~FF_TRANSMASK;
|
||||||
spawnedmobj->color = linkcolours[linkcolour];
|
spawnedmobj->color = linkcolour;
|
||||||
spawnedmobj->scale = FixedMul(spawnedmobj->scale, FixedMul(FRACUNIT/4, FixedDiv((15 - ((leveltime + n) % 16))*FRACUNIT, 15*FRACUNIT)));
|
spawnedmobj->scale = FixedMul(spawnedmobj->scale, FixedMul(FRACUNIT/4, FixedDiv((15 - ((leveltime + n) % 16))*FRACUNIT, 15*FRACUNIT)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -586,6 +596,11 @@ void K_DebugWaypointsVisualise(void)
|
||||||
debugmobj->color = SKINCOLOR_BLUE;
|
debugmobj->color = SKINCOLOR_BLUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!K_GetWaypointIsEnabled(waypoint))
|
||||||
|
{
|
||||||
|
debugmobj->color = SKINCOLOR_GREY;
|
||||||
|
}
|
||||||
|
|
||||||
// Valid waypoint, so draw lines of SPARKLES to its next or previous waypoints
|
// Valid waypoint, so draw lines of SPARKLES to its next or previous waypoints
|
||||||
if (cv_kartdebugwaypoints.value == 1)
|
if (cv_kartdebugwaypoints.value == 1)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
37
src/p_spec.c
37
src/p_spec.c
|
|
@ -3917,6 +3917,40 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
|
||||||
PolyFade(line);
|
PolyFade(line);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// SRB2kart
|
||||||
|
case 499: // Enable/Disable Waypoints in Tagged Sectors
|
||||||
|
{
|
||||||
|
sector_t *sec;
|
||||||
|
mobj_t *thing;
|
||||||
|
|
||||||
|
if (waypointcap == NULL)
|
||||||
|
{
|
||||||
|
// No point in trying at all if no waypoints exist.
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
while ((secnum = P_FindSectorFromTag(line->tag, secnum)) >= 0)
|
||||||
|
{
|
||||||
|
sec = sectors + secnum;
|
||||||
|
|
||||||
|
for (thing = sec->thinglist; thing; thing = thing->snext)
|
||||||
|
{
|
||||||
|
if (thing->type == MT_WAYPOINT)
|
||||||
|
{
|
||||||
|
if (line->flags & ML_NOCLIMB)
|
||||||
|
{
|
||||||
|
thing->extravalue1 = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
thing->extravalue1 = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -6958,6 +6992,9 @@ void P_SpawnSpecials(boolean fromnetsave)
|
||||||
case 2004: // Bot controller
|
case 2004: // Bot controller
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 499: // Linedef Executor: Enable/Disable Waypoints
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue