* Restart Metal recording from beginning if retry is used.

* Disable lives when Metal recording (and have a big flashing REC instead, because I'm a riot).
* Correct some minor directionchar issues (some introduced in this branch, some not).
This commit is contained in:
toaster 2019-11-02 11:56:51 +00:00
parent 04f400e048
commit fc22d1adc3
3 changed files with 20 additions and 10 deletions

View File

@ -2755,6 +2755,8 @@ void G_DoReborn(INT32 playernum)
LUAh_MapChange(gamemap);
#endif
G_DoLoadLevel(true);
if (metalrecording)
G_BeginMetal();
return;
}
}
@ -2922,7 +2924,7 @@ boolean G_GametypeUsesLives(void)
{
// Coop, Competitive
if ((gametype == GT_COOP || gametype == GT_COMPETITION)
&& !modeattacking // No lives in Time Attack
&& !(modeattacking || metalrecording) // No lives in Time Attack
//&& !G_IsSpecialStage(gamemap)
&& !(maptol & TOL_NIGHTS)) // No lives in NiGHTS
return true;
@ -5510,8 +5512,10 @@ void G_BeginMetal(void)
{
mobj_t *mo = players[consoleplayer].mo;
#if 0
if (demo_p)
return;
#endif
demo_p = demobuffer;

View File

@ -11463,6 +11463,13 @@ void P_PlayerThink(player_t *player)
player->drawangle = player->mo->angle;
else if (P_PlayerInPain(player))
;
else if (player->powers[pw_justsprung]) // restricted, potentially by lua
{
#ifdef SPRINGSPIN
if (player->powers[pw_justsprung] & (1<<15))
player->drawangle += (player->powers[pw_justsprung] & ~(1<<15))*(ANG2+ANG1);
#endif
}
else if (player->powers[pw_carry] && player->mo->tracer) // carry
{
switch (player->powers[pw_carry])
@ -11500,13 +11507,6 @@ void P_PlayerThink(player_t *player)
break;
}
}
else if (player->powers[pw_justsprung])
{
#ifdef SPRINGSPIN
if (player->powers[pw_justsprung] & (1<<15))
player->drawangle += (player->powers[pw_justsprung] & ~(1<<15))*(ANG2+ANG1);
#endif
}
else if ((player->skidtime > (TICRATE/2 - 2) || ((player->pflags & (PF_SPINNING|PF_STARTDASH)) == PF_SPINNING)) && (abs(player->rmomx) > 5*player->mo->scale || abs(player->rmomy) > 5*player->mo->scale)) // spin/skid force
player->drawangle = R_PointToAngle2(0, 0, player->rmomx, player->rmomy);
else if (((player->charability2 == CA2_GUNSLINGER || player->charability2 == CA2_MELEE) && player->panim == PA_ABILITY2) || player->pflags & PF_STASIS || player->skidtime)
@ -11578,7 +11578,7 @@ void P_PlayerThink(player_t *player)
statenum_t stat = player->mo->state-states;
if (stat == S_PLAY_WAIT)
P_SetPlayerMobjState(player->mo, S_PLAY_STND);
else if (stat == S_PLAY_STND)
else if (stat == S_PLAY_STND && player->mo->tics != -1)
player->mo->tics++;
}
}

View File

@ -837,7 +837,13 @@ static void ST_drawLivesArea(void)
}
// Lives number
if (G_GametypeUsesLives() || gametype == GT_RACE)
if (metalrecording)
{
if (((2*leveltime)/TICRATE) & 1)
V_DrawRightAlignedString(hudinfo[HUD_LIVES].x+58, hudinfo[HUD_LIVES].y+8,
hudinfo[HUD_LIVES].f|V_PERPLAYER|V_REDMAP|V_HUDTRANS, "REC");
}
else if (G_GametypeUsesLives() || gametype == GT_RACE)
{
// x
V_DrawScaledPatch(hudinfo[HUD_LIVES].x+22, hudinfo[HUD_LIVES].y+10,