Browse Source

Automatic changelevel confirmation without touching trigger again

gravgun
mittorn 6 years ago
parent
commit
31de8a8b5c
  1. 12
      dlls/coop.cpp
  2. 1
      dlls/gravgunmod.h

12
dlls/coop.cpp

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

1
dlls/gravgunmod.h

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

Loading…
Cancel
Save