mirror of
https://github.com/YGGverse/hlsdk-portable.git
synced 2025-02-09 21:44:15 +00:00
Move global menu to new menu interface
This commit is contained in:
parent
16c9ac26ed
commit
7eda9d88d0
@ -329,23 +329,6 @@ void UTIL_CoopApplyData( void )
|
|||||||
|
|
||||||
int g_iMenu;
|
int g_iMenu;
|
||||||
|
|
||||||
|
|
||||||
void UTIL_CoopLocalConfirmMenu(CBasePlayer *pPlayer)
|
|
||||||
{
|
|
||||||
const char *menu[] = {
|
|
||||||
"No",
|
|
||||||
"Cancel",
|
|
||||||
"Do not confirm",
|
|
||||||
"Don't confirm",
|
|
||||||
"Единая Россия"
|
|
||||||
};
|
|
||||||
|
|
||||||
menu[pPlayer->gravgunmod_data.m_iConfirmKey = RANDOM_LONG(2,4)] = "Confirm";
|
|
||||||
UTIL_CoopShowMenu(pPlayer, "Confirm changing map BACK (NOT RECOMMENDED)?", ARRAYSIZE(menu), menu);
|
|
||||||
pPlayer->gravgunmod_data.m_iMenuState = MENUSTATE_LOCAL_CONFIRM;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void GlobalMenu::Process( CBasePlayer *pPlayer, int imenu )
|
void GlobalMenu::Process( CBasePlayer *pPlayer, int imenu )
|
||||||
{
|
{
|
||||||
if( pPlayer->pev->flags & FL_SPECTATOR )
|
if( pPlayer->pev->flags & FL_SPECTATOR )
|
||||||
@ -386,37 +369,12 @@ void GlobalMenu::Process( CBasePlayer *pPlayer, int imenu )
|
|||||||
UTIL_CoopKickPlayer( m_pPlayer );
|
UTIL_CoopKickPlayer( m_pPlayer );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 2: // vote by request
|
|
||||||
UTIL_CoopPrintMessage( "%s^7 selected ^3%s\n", UTIL_CoopPlayerName( pPlayer ), maps[imenu - 1] );
|
|
||||||
|
|
||||||
if( imenu < m_iConfirm )
|
|
||||||
{
|
|
||||||
votes[imenu-1]++;
|
|
||||||
m_iVoteCount++;
|
|
||||||
|
|
||||||
if( votes[1] >= 2 )
|
|
||||||
{
|
|
||||||
// two players vote for ban
|
|
||||||
UTIL_CoopKickPlayer( m_pPlayer );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( m_iVoteCount >= m_iMaxCount )
|
|
||||||
{
|
|
||||||
for( int i = 0; i <= m_iConfirm; i++ )
|
|
||||||
if( votes[i] >= m_iMaxCount )
|
|
||||||
{
|
|
||||||
UTIL_CoopActivateChangeLevel( triggers[i] );
|
|
||||||
g_iMenu = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void GlobalMenu::ShowGlobalMenu( const char *title, int count, const char **menu )
|
void GlobalMenu::ShowGlobalMenu( const char *title, int count, const char **menu )
|
||||||
{
|
{
|
||||||
int count2 = 0;
|
int count2 = 0;
|
||||||
|
|
||||||
for( int i = 1; i <= gpGlobals->maxClients; i++ )
|
for( int i = 1; i <= gpGlobals->maxClients; i++ )
|
||||||
{
|
{
|
||||||
CBaseEntity *plr = UTIL_PlayerByIndex( i );
|
CBaseEntity *plr = UTIL_PlayerByIndex( i );
|
||||||
@ -425,8 +383,14 @@ void GlobalMenu::ShowGlobalMenu( const char *title, int count, const char **menu
|
|||||||
{
|
{
|
||||||
count2++;
|
count2++;
|
||||||
CBasePlayer *player = (CBasePlayer *) plr;
|
CBasePlayer *player = (CBasePlayer *) plr;
|
||||||
UTIL_CoopShowMenu( player, title, count, menu, 30 );
|
GGM_PlayerMenu &m = player->gravgunmod_data.menu.New( title );
|
||||||
player->gravgunmod_data.m_iMenuState = MENUSTATE_GLOBAL;
|
for( int j = 0; j < count; j++ )
|
||||||
|
{
|
||||||
|
char cmd[32];
|
||||||
|
sprintf(cmd, "votemenu %d", i );
|
||||||
|
m.Add( menu[j], cmd );
|
||||||
|
}
|
||||||
|
m.Show();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -496,28 +460,7 @@ void UTIL_CoopNewCheckpoint( entvars_t *pevPlayer )
|
|||||||
UTIL_CoopHudMessage( 1, 5, 0xFF0000FF, 0xFF0000FF, 0, 0.7, "New checkpoint by %s!\n", STRING( pevPlayer->netname ) );
|
UTIL_CoopHudMessage( 1, 5, 0xFF0000FF, 0xFF0000FF, 0, 0.7, "New checkpoint by %s!\n", STRING( pevPlayer->netname ) );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
|
||||||
void UTIL_CoopVoteMenu( CBasePlayer *pPlayer )
|
|
||||||
{
|
|
||||||
int count = 0;
|
|
||||||
for( int i = 1; i <= gpGlobals->maxClients; i++ )
|
|
||||||
{
|
|
||||||
CBaseEntity *plr = UTIL_PlayerByIndex( i );
|
|
||||||
|
|
||||||
if( plr && plr->IsPlayer() )
|
|
||||||
{
|
|
||||||
count++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if( count < 4 )
|
|
||||||
{
|
|
||||||
UTIL_CoopPlayerMessage( pPlayer, 1, 5, 0xFFFFFFFF, 0xFFFFFFFF, 0, 0.7, "Need at least 4 players to vote changelevel!\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
g_GlobalMenu.VoteMenu(pPlayer);
|
|
||||||
}
|
|
||||||
|
|
||||||
void UTIL_CoopMenu( CBasePlayer *pPlayer )
|
void UTIL_CoopMenu( CBasePlayer *pPlayer )
|
||||||
{
|
{
|
||||||
if( pPlayer->gravgunmod_data.m_state == STATE_SPAWNED )
|
if( pPlayer->gravgunmod_data.m_state == STATE_SPAWNED )
|
||||||
@ -551,7 +494,7 @@ void UTIL_CoopMenu( CBasePlayer *pPlayer )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
bool UTIL_CoopPlayerDeath( CBasePlayer *pPlayer )
|
bool UTIL_CoopPlayerDeath( CBasePlayer *pPlayer )
|
||||||
{
|
{
|
||||||
@ -567,7 +510,7 @@ bool UTIL_CoopPlayerDeath( CBasePlayer *pPlayer )
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
void UTIL_CoopProcessMenu( CBasePlayer *pPlayer, int imenu )
|
void UTIL_CoopProcessMenu( CBasePlayer *pPlayer, int imenu )
|
||||||
{
|
{
|
||||||
switch( pPlayer->gravgunmod_data.m_iMenuState )
|
switch( pPlayer->gravgunmod_data.m_iMenuState )
|
||||||
@ -649,6 +592,7 @@ void UTIL_CoopProcessMenu( CBasePlayer *pPlayer, int imenu )
|
|||||||
}
|
}
|
||||||
//pPlayer->gravgunmod_data.m_iMenuState = MENUSTATE_NONE;
|
//pPlayer->gravgunmod_data.m_iMenuState = MENUSTATE_NONE;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
bool UTIL_CoopRestorePlayerCoords(CBaseEntity *player, Vector *origin, Vector *angles )
|
bool UTIL_CoopRestorePlayerCoords(CBaseEntity *player, Vector *origin, Vector *angles )
|
||||||
{
|
{
|
||||||
@ -1020,6 +964,11 @@ bool COOP_ClientCommand( edict_t *pEntity )
|
|||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
else if( FStrEq( pcmd, "votemenu" ) )
|
||||||
|
{
|
||||||
|
int i = atoi( CMD_ARGV(1) );
|
||||||
|
g_GlobalMenu.Process(pPlayer, i);
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -92,10 +92,8 @@ public:
|
|||||||
float m_flTime;
|
float m_flTime;
|
||||||
const char *maps[5];
|
const char *maps[5];
|
||||||
int votes[5];
|
int votes[5];
|
||||||
CBaseEntity *triggers[5];
|
|
||||||
EHANDLE m_pTrigger;
|
EHANDLE m_pTrigger;
|
||||||
EHANDLE m_pPlayer;
|
EHANDLE m_pPlayer;
|
||||||
void VoteMenu( CBasePlayer *pPlayer );
|
|
||||||
void ConfirmMenu( CBasePlayer *pPlayer, CBaseEntity *trigger, const char *mapname );
|
void ConfirmMenu( CBasePlayer *pPlayer, CBaseEntity *trigger, const char *mapname );
|
||||||
void ShowGlobalMenu( const char *title, int count, const char **menu );
|
void ShowGlobalMenu( const char *title, int count, const char **menu );
|
||||||
void Process( CBasePlayer *pPlayer, int imenu );
|
void Process( CBasePlayer *pPlayer, int imenu );
|
||||||
|
@ -483,11 +483,32 @@ void GGM_PlayerMenu::Show()
|
|||||||
char buf[256];
|
char buf[256];
|
||||||
#define MENU_STR(VAR) (#VAR)
|
#define MENU_STR(VAR) (#VAR)
|
||||||
sprintf( buf, MENU_STR(slot10\ntouch_hide _coops*\ntouch_show _coops\ntouch_addbutton "_coopst" "#%s" "" 0.16 0.11 0.41 0.3 0 255 0 255 78 1.5\n), m_sTitle);
|
sprintf( buf, MENU_STR(slot10\ntouch_hide _coops*\ntouch_show _coops\ntouch_addbutton "_coopst" "#%s" "" 0.16 0.11 0.41 0.3 0 255 0 255 78 1.5\n), m_sTitle);
|
||||||
|
|
||||||
|
if( pPlayer )
|
||||||
CLIENT_COMMAND( pPlayer->edict(), buf);
|
CLIENT_COMMAND( pPlayer->edict(), buf);
|
||||||
|
/*else
|
||||||
|
{
|
||||||
|
for( int i = 1; i <= gpGlobals->maxClients; i++ )
|
||||||
|
{
|
||||||
|
CBaseEntity *plr = UTIL_PlayerByIndex( i );
|
||||||
|
if( plr && plr->IsPlayer() )
|
||||||
|
CLIENT_COMMAND( plr->edict(), buf);
|
||||||
|
}
|
||||||
|
}*/
|
||||||
for( int i = 0; i < m_iCount; i++ )
|
for( int i = 0; i < m_iCount; i++ )
|
||||||
{
|
{
|
||||||
sprintf( buf, MENU_STR(touch_settexture _coops%d "#%d. %s"\ntouch_show _coops%d\n), i+1, i+1, m_items[i].name, i + 1 );
|
sprintf( buf, MENU_STR(touch_settexture _coops%d "#%d. %s"\ntouch_show _coops%d\n), i+1, i+1, m_items[i].name, i + 1 );
|
||||||
|
if( pPlayer )
|
||||||
CLIENT_COMMAND( pPlayer->edict(), buf);
|
CLIENT_COMMAND( pPlayer->edict(), buf);
|
||||||
|
/*else
|
||||||
|
{
|
||||||
|
for( int i = 1; i <= gpGlobals->maxClients; i++ )
|
||||||
|
{
|
||||||
|
CBaseEntity *plr = UTIL_PlayerByIndex( i );
|
||||||
|
if( plr && plr->IsPlayer() )
|
||||||
|
CLIENT_COMMAND( plr->edict(), buf);
|
||||||
|
}
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -500,6 +521,9 @@ void GGM_PlayerMenu::Show()
|
|||||||
pbuf += sprintf( pbuf, "^3%d.^7 %s\n", i+1, m_items[i].name);
|
pbuf += sprintf( pbuf, "^3%d.^7 %s\n", i+1, m_items[i].name);
|
||||||
flags |= 1<<i;
|
flags |= 1<<i;
|
||||||
}
|
}
|
||||||
|
/*if( !pPlayer )
|
||||||
|
MESSAGE_BEGIN( MSG_ALL, gmsgShowMenu, NULL );
|
||||||
|
else*/
|
||||||
MESSAGE_BEGIN( MSG_ONE, gmsgShowMenu, NULL, pPlayer->pev );
|
MESSAGE_BEGIN( MSG_ONE, gmsgShowMenu, NULL, pPlayer->pev );
|
||||||
WRITE_SHORT( flags ); // slots
|
WRITE_SHORT( flags ); // slots
|
||||||
WRITE_CHAR( 255 ); // show time
|
WRITE_CHAR( 255 ); // show time
|
||||||
|
@ -132,8 +132,8 @@ BOOL CHalfLifeMultiplay::ClientCommand( CBasePlayer *pPlayer, const char *pcmd )
|
|||||||
{
|
{
|
||||||
int imenu = atoi( CMD_ARGV( 1 ) );
|
int imenu = atoi( CMD_ARGV( 1 ) );
|
||||||
|
|
||||||
if( mp_coop.value )
|
// if( mp_coop.value )
|
||||||
UTIL_CoopProcessMenu( pPlayer, imenu );
|
// UTIL_CoopProcessMenu( pPlayer, imenu );
|
||||||
|
|
||||||
return pPlayer->gravgunmod_data.menu.MenuSelect(imenu);
|
return pPlayer->gravgunmod_data.menu.MenuSelect(imenu);
|
||||||
}
|
}
|
||||||
|
@ -1502,36 +1502,6 @@ void UTIL_CoopActivateChangeLevel( CBaseEntity *pTrigger )
|
|||||||
trigger->ChangeLevelNow( NULL );
|
trigger->ChangeLevelNow( NULL );
|
||||||
}
|
}
|
||||||
|
|
||||||
void GlobalMenu::VoteMenu( CBasePlayer *pPlayer )
|
|
||||||
{
|
|
||||||
if( g_iMenu && gpGlobals->time - m_flTime < 30 )
|
|
||||||
return; // wait 30s befor new confirm vote
|
|
||||||
CBaseEntity *pTrigger = NULL;
|
|
||||||
int i = 0;
|
|
||||||
g_iMenu = 2;
|
|
||||||
m_flTime = gpGlobals->time;
|
|
||||||
maps[i++] = "Keep this map";
|
|
||||||
maps[i++] = "BAN";
|
|
||||||
while( (pTrigger = UTIL_FindEntityByClassname( pTrigger, "trigger_changelevel" )) && (i < 5) )
|
|
||||||
{
|
|
||||||
CChangeLevel *ent = (CChangeLevel *)pTrigger;
|
|
||||||
votes[i] = 0;
|
|
||||||
triggers[i] = ent;
|
|
||||||
maps[i++] = ent->m_szMapName;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
votes[i] = 0;
|
|
||||||
triggers[i] = NULL;
|
|
||||||
m_iConfirm = i;
|
|
||||||
m_iVoteCount = 0;
|
|
||||||
m_pPlayer = pPlayer;
|
|
||||||
UTIL_CoopPrintMessage( "%s^7 opened vote menu\n", UTIL_CoopPlayerName( pPlayer ) );
|
|
||||||
ShowGlobalMenu(UTIL_VarArgs("%s requested to force change map", UTIL_CoopPlayerName( pPlayer ) ), i, maps);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void UTIL_CoopValidateOffset( void )
|
void UTIL_CoopValidateOffset( void )
|
||||||
{
|
{
|
||||||
if( !g_SavedCoords.validoffset)
|
if( !g_SavedCoords.validoffset)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user