Merge branch 'fix-flight-indicator' into 'next'
Remove flight indicator when AI Tails is taken over by second player See merge request STJr/SRB2!611
This commit is contained in:
commit
2a9a3b9760
48
src/b_bot.c
48
src/b_bot.c
|
@ -335,27 +335,6 @@ static void B_BuildTailsTiccmd(mobj_t *sonic, mobj_t *tails, ticcmd_t *cmd)
|
||||||
jump_last = jump;
|
jump_last = jump;
|
||||||
spin_last = spin;
|
spin_last = spin;
|
||||||
|
|
||||||
// ********
|
|
||||||
// Thinkfly overlay
|
|
||||||
if (thinkfly)
|
|
||||||
{
|
|
||||||
if (!tails->hnext)
|
|
||||||
{
|
|
||||||
P_SetTarget(&tails->hnext, P_SpawnMobjFromMobj(tails, 0, 0, 0, MT_OVERLAY));
|
|
||||||
if (tails->hnext)
|
|
||||||
{
|
|
||||||
P_SetTarget(&tails->hnext->target, tails);
|
|
||||||
P_SetTarget(&tails->hnext->hprev, tails);
|
|
||||||
P_SetMobjState(tails->hnext, S_FLIGHTINDICATOR);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (tails->hnext && tails->hnext->type == MT_OVERLAY && tails->hnext->state == states+S_FLIGHTINDICATOR)
|
|
||||||
{
|
|
||||||
P_RemoveMobj(tails->hnext);
|
|
||||||
P_SetTarget(&tails->hnext, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Turn the virtual keypresses into ticcmd_t.
|
// Turn the virtual keypresses into ticcmd_t.
|
||||||
B_KeysToTiccmd(tails, cmd, forward, backward, left, right, false, false, jump, spin);
|
B_KeysToTiccmd(tails, cmd, forward, backward, left, right, false, false, jump, spin);
|
||||||
|
|
||||||
|
@ -565,3 +544,30 @@ void B_RespawnBot(INT32 playernum)
|
||||||
P_SetScale(tails, sonic->scale);
|
P_SetScale(tails, sonic->scale);
|
||||||
tails->destscale = sonic->destscale;
|
tails->destscale = sonic->destscale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void B_HandleFlightIndicator(player_t *player)
|
||||||
|
{
|
||||||
|
mobj_t *tails = player->mo;
|
||||||
|
|
||||||
|
if (!tails)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (thinkfly && player->bot == 1 && tails->health)
|
||||||
|
{
|
||||||
|
if (!tails->hnext)
|
||||||
|
{
|
||||||
|
P_SetTarget(&tails->hnext, P_SpawnMobjFromMobj(tails, 0, 0, 0, MT_OVERLAY));
|
||||||
|
if (tails->hnext)
|
||||||
|
{
|
||||||
|
P_SetTarget(&tails->hnext->target, tails);
|
||||||
|
P_SetTarget(&tails->hnext->hprev, tails);
|
||||||
|
P_SetMobjState(tails->hnext, S_FLIGHTINDICATOR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (tails->hnext && tails->hnext->type == MT_OVERLAY && tails->hnext->state == states+S_FLIGHTINDICATOR)
|
||||||
|
{
|
||||||
|
P_RemoveMobj(tails->hnext);
|
||||||
|
P_SetTarget(&tails->hnext, NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -15,3 +15,4 @@ void B_KeysToTiccmd(mobj_t *mo, ticcmd_t *cmd, boolean forward, boolean backward
|
||||||
boolean B_CheckRespawn(player_t *player);
|
boolean B_CheckRespawn(player_t *player);
|
||||||
void B_MoveBlocked(player_t *player);
|
void B_MoveBlocked(player_t *player);
|
||||||
void B_RespawnBot(INT32 playernum);
|
void B_RespawnBot(INT32 playernum);
|
||||||
|
void B_HandleFlightIndicator(player_t *player);
|
||||||
|
|
|
@ -1718,6 +1718,7 @@ void G_BuildTiccmd2(ticcmd_t *cmd, INT32 realtics)
|
||||||
G_CopyTiccmd(cmd, I_BaseTiccmd2(), 1); // empty, or external driver
|
G_CopyTiccmd(cmd, I_BaseTiccmd2(), 1); // empty, or external driver
|
||||||
B_BuildTiccmd(player, cmd);
|
B_BuildTiccmd(player, cmd);
|
||||||
}
|
}
|
||||||
|
B_HandleFlightIndicator(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cv_analog2.value) {
|
if (cv_analog2.value) {
|
||||||
|
|
Loading…
Reference in New Issue