Browse Source

Help message feature

gravgun
mittorn 6 years ago
parent
commit
a7cd5b0565
  1. 77
      dlls/gravgunmod.cpp

77
dlls/gravgunmod.cpp

@ -535,6 +535,28 @@ void GGM_Say( edict_t *pEntity ) @@ -535,6 +535,28 @@ void GGM_Say( edict_t *pEntity )
}
bool GGM_ClearHelpMessage( CBasePlayer *pPlayer )
{
hudtextparms_t params;
params.x = 0.5, params.y = 0.3;
params.fadeinTime = params.fadeoutTime = 0;
params.holdTime = 0;
int color2 = 0xFF0000FF, color1 = 0x00FF00FF;
params.r1 = (color1 >> 24) & 0xFF, params.g1 = (color1 >> 16) & 0xFF, params.b1 = (color1 >> 8) & 0xFF, params.a1 = color1 & 0xFF;
params.r2 = (color2 >> 24) & 0xFF, params.g2 = (color2 >> 16) & 0xFF, params.b2 = (color2 >> 8) & 0xFF, params.a2 = color2 & 0xFF;
params.channel = 7;
params.effect = 0;
UTIL_HudMessage( pPlayer, params, "" );
return true;
}
GGM_PlayerMenu &GGM_PlayerMenu::Add(const char *name, const char *command)
{
if( m_fShow )
@ -629,7 +651,11 @@ bool GGM_PlayerMenu::MenuSelect( int select ) @@ -629,7 +651,11 @@ bool GGM_PlayerMenu::MenuSelect( int select )
if( !m_items[select-1].command[0] )
{
// cancel menu item
GGM_ClearHelpMessage( pPlayer );
return true;
}
GGM::Cmd_TokenizeString( m_items[select-1].command );
ClientCommand( pPlayer->edict() );
@ -746,6 +772,52 @@ bool GGM_MOTDCommand( CBasePlayer *player, const char *name ) @@ -746,6 +772,52 @@ bool GGM_MOTDCommand( CBasePlayer *player, const char *name )
return true;
}
bool GGM_HelpCommand( CBasePlayer *pPlayer, const char *name )
{
char buf[256] = "ggm/help/";
char *file, *pFileList;
int char_count = 0;
if( !pPlayer )
return false;
if( !GGM_FilterFileName( name ) )
return false;
hudtextparms_t params;
strncat( buf, name, sizeof(buf) - 1 );
file = (char*)LOAD_FILE_FOR_ME( buf, NULL );
if( !file )
return false;
params.x = 0.5, params.y = 0.3;
params.fadeinTime = params.fadeoutTime = 0.05f;
params.holdTime = 30;
int color2 = 0xFF0000FF, color1 = 0x00FF00FF;
params.r1 = (color1 >> 24) & 0xFF, params.g1 = (color1 >> 16) & 0xFF, params.b1 = (color1 >> 8) & 0xFF, params.a1 = color1 & 0xFF;
params.r2 = (color2 >> 24) & 0xFF, params.g2 = (color2 >> 16) & 0xFF, params.b2 = (color2 >> 8) & 0xFF, params.a2 = color2 & 0xFF;
params.channel = 7;
params.effect = 2;
char *pstr = file;
// set line breaks
for( int i = 0; *pstr; pstr++,i++ )
{
if( *pstr == '\n' )
i = 0;
if( i >= 79 )
*pstr = '\n', i = 0;
}
UTIL_HudMessage( pPlayer, params, file );
FREE_FILE(file);
return true;
}
void GGM_InitialMenus( CBasePlayer *pPlayer )
{
pPlayer->gravgunmod_data.touch_loading = false;
@ -756,6 +828,8 @@ void GGM_InitialMenus( CBasePlayer *pPlayer ) @@ -756,6 +828,8 @@ void GGM_InitialMenus( CBasePlayer *pPlayer )
.Add("Spectate", "spectate")
.Show();
GGM_HelpCommand( pPlayer, "init" );
if( mp_maxdecals.value >= 0 )
CLIENT_COMMAND( pPlayer->edict(), UTIL_VarArgs("r_decals %f\n", mp_maxdecals.value ) );
}
@ -812,6 +886,7 @@ void DumpProps(); // prop.cpp @@ -812,6 +886,7 @@ void DumpProps(); // prop.cpp
bool GGM_ClientCommand( CBasePlayer *pPlayer, const char *pcmd )
{
bool ret = GGM_HelpCommand( pPlayer, pcmd );
if( FStrEq( pcmd, "menuselect" ) )
{
@ -844,7 +919,7 @@ bool GGM_ClientCommand( CBasePlayer *pPlayer, const char *pcmd ) @@ -844,7 +919,7 @@ bool GGM_ClientCommand( CBasePlayer *pPlayer, const char *pcmd )
else if( Ent_ProcessClientCommand( pPlayer->edict() ) )
return true;
return false;
return ret;
}

Loading…
Cancel
Save