Automatic changelevel confirmation without touching trigger again

This commit is contained in:
mittorn 2018-11-07 16:21:06 +07:00
parent d9a68cf5e2
commit 31de8a8b5c
2 changed files with 13 additions and 0 deletions

View File

@ -863,6 +863,7 @@ bool COOP_ConfirmMenu(CBaseEntity *pTrigger, CBaseEntity *pActivator, int count2
pPlayer->m_ggm.iLocalConfirm = 1; pPlayer->m_ggm.iLocalConfirm = 1;
if( pPlayer->m_ggm.iLocalConfirm < 3 ) if( pPlayer->m_ggm.iLocalConfirm < 3 )
{ {
pPlayer->m_ggm.pChangeLevel = pTrigger->edict();
pPlayer->m_ggm.menu.New("This will change map back", false) pPlayer->m_ggm.menu.New("This will change map back", false)
.Add("Confirm", "confirmchangelevel") .Add("Confirm", "confirmchangelevel")
.Add("Cancel", "") .Add("Cancel", "")
@ -872,6 +873,7 @@ bool COOP_ConfirmMenu(CBaseEntity *pTrigger, CBaseEntity *pActivator, int count2
{ {
g_GlobalVote.ConfirmMenu(pPlayer, pTrigger, mapname ); g_GlobalVote.ConfirmMenu(pPlayer, pTrigger, mapname );
pPlayer->m_ggm.iLocalConfirm = 0; pPlayer->m_ggm.iLocalConfirm = 0;
pPlayer->m_ggm.pChangeLevel = NULL;
} }
} }
return false; return false;
@ -1000,7 +1002,17 @@ bool COOP_ClientCommand( edict_t *pEntity )
else if( FStrEq( pcmd, "confirmchangelevel" ) ) else if( FStrEq( pcmd, "confirmchangelevel" ) )
{ {
if( pPlayer->m_ggm.iLocalConfirm ) if( pPlayer->m_ggm.iLocalConfirm )
{
pPlayer->m_ggm.iLocalConfirm++; pPlayer->m_ggm.iLocalConfirm++;
if( pPlayer->m_ggm.pChangeLevel )
{
edict_t *pChangeLevel = pPlayer->m_ggm.pChangeLevel;
pPlayer->m_ggm.pChangeLevel = NULL;
DispatchTouch( pChangeLevel, pPlayer->edict() );
}
return true;
}
else else
return false; return false;
} }

View File

@ -172,6 +172,7 @@ struct GGMData
PlayerState iState; PlayerState iState;
bool fTouchMenu; bool fTouchMenu;
int iLocalConfirm; int iLocalConfirm;
edict_t *pChangeLevel;
float flEntScore; float flEntScore;
float flEntTime; float flEntTime;
GGM_PlayerMenu menu; GGM_PlayerMenu menu;