mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'dont-cheese-fault' into 'master'
Fault again if you spectate then respawn during a fault See merge request KartKrew/Kart!315
This commit is contained in:
commit
e1c5acffb9
6 changed files with 18 additions and 18 deletions
|
|
@ -57,7 +57,7 @@ typedef enum
|
|||
typedef enum
|
||||
{
|
||||
// Flip camera angle with gravity flip prefrence.
|
||||
PF_FLIPCAM = 1,
|
||||
PF_FAULT = 1,
|
||||
|
||||
// Cheats
|
||||
PF_GODMODE = 1<<1,
|
||||
|
|
@ -113,7 +113,8 @@ typedef enum
|
|||
// Spill rings after falling
|
||||
PF_NIGHTSFALL = 1<<24,
|
||||
PF_DRILLING = 1<<25,
|
||||
PF_SKIDDOWN = 1<<26,
|
||||
|
||||
// free: 1<<26
|
||||
|
||||
/*** TAG STUFF ***/
|
||||
PF_TAGGED = 1<<27, // Player has been tagged and awaits the next round in hide and seek.
|
||||
|
|
|
|||
|
|
@ -8515,7 +8515,7 @@ static const char *const MAPTHINGFLAG_LIST[4] = {
|
|||
|
||||
static const char *const PLAYERFLAG_LIST[] = {
|
||||
// Flip camera angle with gravity flip prefrence.
|
||||
"FLIPCAM",
|
||||
"FAULT",
|
||||
|
||||
// Cheats
|
||||
"GODMODE",
|
||||
|
|
@ -8571,7 +8571,8 @@ static const char *const PLAYERFLAG_LIST[] = {
|
|||
// Spill rings after falling
|
||||
"NIGHTSFALL",
|
||||
"DRILLING",
|
||||
"SKIDDOWN",
|
||||
|
||||
"\x01", // free: 1<<26 (name un-matchable)
|
||||
|
||||
/*** TAG STUFF ***/
|
||||
"TAGGED", // Player has been tagged and awaits the next round in hide and seek.
|
||||
|
|
|
|||
11
src/g_game.c
11
src/g_game.c
|
|
@ -2610,7 +2610,7 @@ void G_PlayerReborn(INT32 player)
|
|||
jointime = players[player].jointime;
|
||||
splitscreenindex = players[player].splitscreenindex;
|
||||
spectator = players[player].spectator;
|
||||
pflags = (players[player].pflags & (PF_TIMEOVER|PF_TAGIT|PF_TAGGED|PF_WANTSTOJOIN));
|
||||
pflags = (players[player].pflags & (PF_TIMEOVER|PF_TAGIT|PF_TAGGED|PF_WANTSTOJOIN|PF_FAULT));
|
||||
|
||||
// As long as we're not in multiplayer, carry over cheatcodes from map to map
|
||||
if (!(netgame || multiplayer))
|
||||
|
|
@ -2782,11 +2782,6 @@ void G_PlayerReborn(INT32 player)
|
|||
if (songcredit)
|
||||
S_ShowMusicCredit();
|
||||
|
||||
if (leveltime > (starttime + (TICRATE/2)) && !p->spectator)
|
||||
{
|
||||
K_DoIngameRespawn(p);
|
||||
}
|
||||
|
||||
if (gametype == GT_COOP)
|
||||
P_FindEmerald(); // scan for emeralds to hunt for
|
||||
|
||||
|
|
@ -2885,7 +2880,7 @@ void G_SpawnPlayer(INT32 playernum, boolean starpost)
|
|||
|
||||
P_SpawnPlayer(playernum);
|
||||
|
||||
if (starpost) //Don't even bother with looking for a place to spawn.
|
||||
if (starpost || ( players[playernum].pflags & PF_FAULT )) //Don't even bother with looking for a place to spawn.
|
||||
{
|
||||
P_MovePlayerToStarpost(playernum);
|
||||
#ifdef HAVE_BLUA
|
||||
|
|
@ -4636,7 +4631,7 @@ void G_InitNew(UINT8 pencoremode, const char *mapname, boolean resetplayer, bool
|
|||
memset(&players[i].respawn, 0, sizeof (players[i].respawn));
|
||||
|
||||
// The latter two should clear by themselves, but just in case
|
||||
players[i].pflags &= ~(PF_TAGIT|PF_TAGGED|PF_FULLSTASIS);
|
||||
players[i].pflags &= ~(PF_FAULT|PF_TAGIT|PF_TAGGED|PF_FULLSTASIS);
|
||||
|
||||
// Clear cheatcodes too, just in case.
|
||||
players[i].pflags &= ~(PF_GODMODE|PF_NOCLIP|PF_INVIS);
|
||||
|
|
|
|||
|
|
@ -3649,7 +3649,7 @@ void K_DriftDustHandling(mobj_t *spawner)
|
|||
|
||||
if (spawner->player)
|
||||
{
|
||||
if (spawner->player->pflags & PF_SKIDDOWN)
|
||||
if (spawner->player->pflags & PF_FAULT)
|
||||
{
|
||||
anglediff = abs((signed)(spawner->angle - spawner->player->frameangle));
|
||||
if (leveltime % 6 == 0)
|
||||
|
|
@ -5471,7 +5471,7 @@ void K_KartPlayerHUDUpdate(player_t *player)
|
|||
if (player->karthud[khud_tauntvoices])
|
||||
player->karthud[khud_tauntvoices]--;
|
||||
|
||||
if (!(player->pflags & PF_SKIDDOWN))
|
||||
if (!(player->pflags & PF_FAULT))
|
||||
player->karthud[khud_fault] = 0;
|
||||
else if (player->karthud[khud_fault] > 0 && player->karthud[khud_fault] < 2*TICRATE)
|
||||
player->karthud[khud_fault]++;
|
||||
|
|
|
|||
|
|
@ -97,7 +97,8 @@ void K_DoIngameRespawn(player_t *player)
|
|||
return;
|
||||
}
|
||||
|
||||
if (player->respawn.state != RESPAWNST_NONE)
|
||||
if (player->respawn.state != RESPAWNST_NONE &&
|
||||
( player->pflags & PF_FAULT ) == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -110,7 +111,7 @@ void K_DoIngameRespawn(player_t *player)
|
|||
if (leveltime < starttime) // FAULT
|
||||
{
|
||||
player->powers[pw_nocontrol] = (starttime - leveltime) + 50;
|
||||
player->pflags |= PF_SKIDDOWN; // cheeky pflag reuse
|
||||
player->pflags |= PF_FAULT;
|
||||
S_StartSound(player->mo, sfx_s3k83);
|
||||
player->karthud[khud_fault] = 1;
|
||||
}
|
||||
|
|
@ -192,6 +193,8 @@ void K_DoIngameRespawn(player_t *player)
|
|||
player->respawn.pointx = beststart->x << FRACBITS;
|
||||
player->respawn.pointy = beststart->y << FRACBITS;
|
||||
|
||||
player->mo->angle = ( beststart->angle * ANG1 );
|
||||
|
||||
s = R_PointInSubsector(beststart->x << FRACBITS, beststart->y << FRACBITS)->sector;
|
||||
|
||||
player->respawn.flip = (beststart->options & MTF_OBJECTFLIP);
|
||||
|
|
|
|||
|
|
@ -5785,7 +5785,7 @@ static void P_MovePlayer(player_t *player)
|
|||
else
|
||||
player->frameangle -= (ANGLE_11hh * speed);
|
||||
}
|
||||
else if (player->powers[pw_nocontrol] && player->pflags & PF_SKIDDOWN)
|
||||
else if (player->powers[pw_nocontrol] && player->pflags & PF_FAULT)
|
||||
{
|
||||
if (player->mo->state != &states[S_KART_SPIN])
|
||||
P_SetPlayerMobjState(player->mo, S_KART_SPIN);
|
||||
|
|
@ -8957,7 +8957,7 @@ void P_PlayerThink(player_t *player)
|
|||
if (player->powers[pw_nocontrol] & ((1<<15)-1) && player->powers[pw_nocontrol] < UINT16_MAX)
|
||||
{
|
||||
if (!(--player->powers[pw_nocontrol]))
|
||||
player->pflags &= ~PF_SKIDDOWN;
|
||||
player->pflags &= ~PF_FAULT;
|
||||
}
|
||||
else
|
||||
player->powers[pw_nocontrol] = 0;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue