mirror of
https://github.com/mapbase-source/source-sdk-2013.git
synced 2025-01-29 15:17:56 +03:00
Reworked Mapbase console groups to use script files and separate server/client commands instead of cvars and tier1 commands
This commit is contained in:
parent
ebec14d2b6
commit
15d04c0b9b
@ -461,7 +461,7 @@ CAI_Expresser::~CAI_Expresser()
|
|||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
g_nExpressers--;
|
g_nExpressers--;
|
||||||
if ( g_nExpressers == 0 && pSemaphore->GetOwner() )
|
if ( g_nExpressers == 0 && pSemaphore->GetOwner() )
|
||||||
DevMsg( 2, "Speech semaphore being held by non-talker entity\n" );
|
CGMsg( 2, CON_GROUP_SPEECH_AI, "Speech semaphore being held by non-talker entity\n" );
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -826,7 +826,7 @@ bool CAI_Expresser::SpeakDispatchResponse( AIConcept_t &concept, AI_Response *re
|
|||||||
{
|
{
|
||||||
entityName = ToBasePlayer( GetOuter() )->GetPlayerName();
|
entityName = ToBasePlayer( GetOuter() )->GetPlayerName();
|
||||||
}
|
}
|
||||||
DevMsg( 2, "SpeakDispatchResponse: Entity ( %i/%s ) already speaking, forcing '%s'\n", GetOuter()->entindex(), entityName ? entityName : "UNKNOWN", (const char*)concept );
|
CGMsg( 2, CON_GROUP_SPEECH_AI, "SpeakDispatchResponse: Entity ( %i/%s ) already speaking, forcing '%s'\n", GetOuter()->entindex(), entityName ? entityName : "UNKNOWN", (const char*)concept );
|
||||||
|
|
||||||
// Tracker 15911: Can break the game if we stop an imported map placed lcs here, so only
|
// Tracker 15911: Can break the game if we stop an imported map placed lcs here, so only
|
||||||
// cancel actor out of instanced scripted scenes. ywb
|
// cancel actor out of instanced scripted scenes. ywb
|
||||||
@ -835,7 +835,7 @@ bool CAI_Expresser::SpeakDispatchResponse( AIConcept_t &concept, AI_Response *re
|
|||||||
|
|
||||||
if ( IsRunningScriptedScene( GetOuter() ) )
|
if ( IsRunningScriptedScene( GetOuter() ) )
|
||||||
{
|
{
|
||||||
DevMsg( "SpeakDispatchResponse: Entity ( %i/%s ) refusing to speak due to scene entity, tossing '%s'\n", GetOuter()->entindex(), entityName ? entityName : "UNKNOWN", (const char*)concept );
|
CGMsg( 1, CON_GROUP_SPEECH_AI, "SpeakDispatchResponse: Entity ( %i/%s ) refusing to speak due to scene entity, tossing '%s'\n", GetOuter()->entindex(), entityName ? entityName : "UNKNOWN", (const char*)concept );
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -858,7 +858,7 @@ bool CAI_Expresser::SpeakDispatchResponse( AIConcept_t &concept, AI_Response *re
|
|||||||
float speakTime = GetResponseDuration( result );
|
float speakTime = GetResponseDuration( result );
|
||||||
GetOuter()->EmitSound( response );
|
GetOuter()->EmitSound( response );
|
||||||
|
|
||||||
DevMsg( 2, "SpeakDispatchResponse: Entity ( %i/%s ) playing sound '%s'\n", GetOuter()->entindex(), STRING( GetOuter()->GetEntityName() ), response );
|
CGMsg( 2, CON_GROUP_SPEECH_AI, "SpeakDispatchResponse: Entity ( %i/%s ) playing sound '%s'\n", GetOuter()->entindex(), STRING( GetOuter()->GetEntityName() ), response );
|
||||||
NoteSpeaking( speakTime, delay );
|
NoteSpeaking( speakTime, delay );
|
||||||
spoke = true;
|
spoke = true;
|
||||||
#ifdef MAPBASE
|
#ifdef MAPBASE
|
||||||
@ -1079,7 +1079,7 @@ bool CAI_Expresser::FireEntIOFromResponse( char *response, CBaseEntity *pInitiat
|
|||||||
CBaseEntity *pTarget = gEntList.FindEntityByName( NULL, pszEntname, pInitiator );
|
CBaseEntity *pTarget = gEntList.FindEntityByName( NULL, pszEntname, pInitiator );
|
||||||
if ( !pTarget )
|
if ( !pTarget )
|
||||||
{
|
{
|
||||||
Msg( "Response rule targeted %s with entityio, but that doesn't exist.\n", pszEntname );
|
CGMsg( 0, CON_GROUP_SPEECH_AI, "Response rule targeted %s with entityio, but that doesn't exist.\n", pszEntname );
|
||||||
// but this is actually a legit use case, so return true (below).
|
// but this is actually a legit use case, so return true (below).
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1528,7 +1528,7 @@ void CAI_Expresser::DumpHistories()
|
|||||||
{
|
{
|
||||||
ConceptHistory_t *h = &m_ConceptHistories[ i ];
|
ConceptHistory_t *h = &m_ConceptHistories[ i ];
|
||||||
|
|
||||||
DevMsg( "%i: %s at %f\n", c++, m_ConceptHistories.GetElementName( i ), h->timeSpoken );
|
CGMsg( 1, CON_GROUP_SPEECH_AI, "%i: %s at %f\n", c++, m_ConceptHistories.GetElementName( i ), h->timeSpoken );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1571,7 +1571,7 @@ void CAI_Expresser::SpeechMsg( CBaseEntity *pFlex, const char *pszFormat, ... )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DevMsg( CFmtStr( &pszFormat ) );
|
CGMsg( 1, CON_GROUP_SPEECH_AI, CFmtStr( &pszFormat ) );
|
||||||
}
|
}
|
||||||
UTIL_LogPrintf( (char *) ( (const char *) CFmtStr( &pszFormat ) ) );
|
UTIL_LogPrintf( (char *) ( (const char *) CFmtStr( &pszFormat ) ) );
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
#include "cbase.h"
|
#include "cbase.h"
|
||||||
|
|
||||||
#include "tier0/icommandline.h"
|
#include "tier0/icommandline.h"
|
||||||
|
#include "tier1/mapbase_con_groups.h"
|
||||||
#include "igamesystem.h"
|
#include "igamesystem.h"
|
||||||
#include "filesystem.h"
|
#include "filesystem.h"
|
||||||
#include <vgui_controls/Controls.h>
|
#include <vgui_controls/Controls.h>
|
||||||
@ -151,6 +152,8 @@ public:
|
|||||||
|
|
||||||
virtual bool Init()
|
virtual bool Init()
|
||||||
{
|
{
|
||||||
|
InitConsoleGroups( g_pFullFileSystem );
|
||||||
|
|
||||||
// Checks gameinfo.txt for additional command line options
|
// Checks gameinfo.txt for additional command line options
|
||||||
KeyValues *gameinfo = new KeyValues("GameInfo");
|
KeyValues *gameinfo = new KeyValues("GameInfo");
|
||||||
if (GetGameInfoKeyValues(gameinfo))
|
if (GetGameInfoKeyValues(gameinfo))
|
||||||
@ -626,3 +629,38 @@ BEGIN_DATADESC( CMapbaseManifestEntity )
|
|||||||
|
|
||||||
END_DATADESC()
|
END_DATADESC()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void CV_IncludeNameChanged( IConVar *pConVar, const char *pOldString, float flOldValue );
|
||||||
|
|
||||||
|
#ifdef CLIENT_DLL
|
||||||
|
ConVar con_group_include_name_client( "con_group_include_name_client", "0", FCVAR_NONE, "Includes groups when printing on the client.", CV_IncludeNameChanged );
|
||||||
|
|
||||||
|
void CV_IncludeNameChanged( IConVar *pConVar, const char *pOldString, float flOldValue )
|
||||||
|
{
|
||||||
|
SetConsoleGroupIncludeNames( con_group_include_name_client.GetBool() );
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
ConVar con_group_include_name( "con_group_include_name", "0", FCVAR_NONE, "Includes groups when printing.", CV_IncludeNameChanged );
|
||||||
|
|
||||||
|
void CV_IncludeNameChanged( IConVar *pConVar, const char *pOldString, float flOldValue )
|
||||||
|
{
|
||||||
|
SetConsoleGroupIncludeNames( con_group_include_name.GetBool() );
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
CON_COMMAND_SHARED( con_group_reload, "Reloads all console groups." )
|
||||||
|
{
|
||||||
|
InitConsoleGroups( g_pFullFileSystem );
|
||||||
|
}
|
||||||
|
|
||||||
|
CON_COMMAND_SHARED( con_group_list, "Prints a list of all console groups." )
|
||||||
|
{
|
||||||
|
PrintAllConsoleGroups();
|
||||||
|
}
|
||||||
|
|
||||||
|
CON_COMMAND_SHARED( con_group_toggle, "Toggles a console group." )
|
||||||
|
{
|
||||||
|
ToggleConsoleGroups( args.Arg( 1 ) );
|
||||||
|
}
|
||||||
|
@ -16,25 +16,48 @@
|
|||||||
|
|
||||||
//static const Color CON_COLOR_DEV_VERBOSE( 192, 128, 192, 255 );
|
//static const Color CON_COLOR_DEV_VERBOSE( 192, 128, 192, 255 );
|
||||||
|
|
||||||
// General
|
enum ConGroupID_t
|
||||||
#define CON_GROUP_MAPBASE_MISC 0 // "Mapbase Misc."
|
{
|
||||||
#define CON_GROUP_PHYSICS 1 // "Physics"
|
// General
|
||||||
|
CON_GROUP_MAPBASE_MISC, // "Mapbase misc."
|
||||||
|
CON_GROUP_PHYSICS, // "Physics"
|
||||||
|
CON_GROUP_IO_SYSTEM, // "Entity I/O"
|
||||||
|
CON_GROUP_RESPONSE_SYSTEM, // "Response System"
|
||||||
|
|
||||||
// Server
|
// Game
|
||||||
#define CON_GROUP_IO_SYSTEM 2 // "Entity I/O"
|
CON_GROUP_NPC_AI, // "NPC AI"
|
||||||
#define CON_GROUP_NPC_AI 3 // "NPC AI"
|
CON_GROUP_NPC_SCRIPTS, // "NPC scripts"
|
||||||
#define CON_GROUP_NPC_SCRIPTS 4 // "NPC Scripts"
|
CON_GROUP_SPEECH_AI, // "Speech AI"
|
||||||
#define CON_GROUP_CHOREO 5 // "Choreo"
|
CON_GROUP_CHOREO, // "Choreo"
|
||||||
|
|
||||||
// VScript
|
// VScript
|
||||||
#define CON_GROUP_VSCRIPT 6 // "VScript"
|
CON_GROUP_VSCRIPT, // "VScript"
|
||||||
#define CON_GROUP_VSCRIPT_PRINT 7 // "VScript Print"
|
CON_GROUP_VSCRIPT_PRINT, // "VScript print"
|
||||||
|
|
||||||
#define CON_GROUP_MAX 8 // must always be at the end
|
//--------------------------
|
||||||
|
|
||||||
|
//
|
||||||
|
// Mod groups can be inserted here
|
||||||
|
//
|
||||||
|
|
||||||
|
//--------------------------
|
||||||
|
|
||||||
|
CON_GROUP_MAX, // Keep this at the end
|
||||||
|
};
|
||||||
|
|
||||||
// Mapbase console group message.
|
// Mapbase console group message.
|
||||||
void CGMsg( int level, int nGroup, PRINTF_FORMAT_STRING const tchar* pMsg, ... ) FMTFUNCTION( 3, 4 );
|
void CGMsg( int level, ConGroupID_t nGroup, PRINTF_FORMAT_STRING const tchar* pMsg, ... ) FMTFUNCTION( 3, 4 );
|
||||||
|
|
||||||
#define CGWarning CGMsg
|
#define CGWarning CGMsg
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class IBaseFileSystem;
|
||||||
|
|
||||||
|
void InitConsoleGroups( IBaseFileSystem *filesystem );
|
||||||
|
|
||||||
|
void PrintAllConsoleGroups();
|
||||||
|
void ToggleConsoleGroups( const char *pszQuery );
|
||||||
|
void SetConsoleGroupIncludeNames( bool bToggle );
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -11,102 +11,116 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "basetypes.h"
|
#include "basetypes.h"
|
||||||
#include "tier1/tier1.h"
|
#include "tier1.h"
|
||||||
#include "tier1/utldict.h"
|
#include "utldict.h"
|
||||||
#include "Color.h"
|
#include "Color.h"
|
||||||
#include "tier1/mapbase_con_groups.h"
|
#include "mapbase_con_groups.h"
|
||||||
|
#include "KeyValues.h"
|
||||||
void CV_ColorChanged( IConVar *pConVar, const char *pOldString, float flOldValue );
|
#include "filesystem.h"
|
||||||
|
#include "mapbase_matchers_base.h"
|
||||||
|
|
||||||
struct ConGroup_t
|
struct ConGroup_t
|
||||||
{
|
{
|
||||||
ConGroup_t( const char *_pszName, ConVar *pCvar )
|
ConGroup_t( const char *_pszName, const char *_pszDescription )
|
||||||
{
|
{
|
||||||
pszName = _pszName;
|
pszName = _pszName;
|
||||||
cvar = pCvar;
|
pszDescription = _pszDescription;
|
||||||
|
_clr.SetColor( 224, 224, 224, 255 ); // Default to a shade of gray
|
||||||
}
|
}
|
||||||
|
|
||||||
const Color &GetColor()
|
const Color &GetColor()
|
||||||
{
|
{
|
||||||
if (_clr.a() == 0)
|
|
||||||
{
|
|
||||||
// Read the cvar
|
|
||||||
int clr[3];
|
|
||||||
sscanf( cvar->GetString(), "%i %i %i", &clr[0], &clr[1], &clr[2] );
|
|
||||||
_clr.SetColor( clr[0], clr[1], clr[2], 255 );
|
|
||||||
}
|
|
||||||
return _clr;
|
return _clr;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *pszName;
|
const char *pszName;
|
||||||
|
const char *pszDescription;
|
||||||
Color _clr;
|
Color _clr;
|
||||||
ConVar *cvar;
|
|
||||||
|
|
||||||
//bool bDisabled;
|
bool bDisabled;
|
||||||
};
|
};
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
// TODO: Something more reliable?
|
||||||
// To define a console group,
|
static bool g_bIncludeConGroupNames = false;
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#define DEFINE_CON_GROUP_CVAR(name, def, desc) static ConVar con_group_##name##_color( "con_group_" #name "_color", def, FCVAR_ARCHIVE | FCVAR_REPLICATED, desc, CV_ColorChanged )
|
|
||||||
|
|
||||||
DEFINE_CON_GROUP_CVAR( mapbase_misc, "192 128 224", "Messages from misc. Mapbase functions, like map-specific files." );
|
|
||||||
DEFINE_CON_GROUP_CVAR( physics, "159 209 159", "Messages from physics-related events." );
|
|
||||||
|
|
||||||
DEFINE_CON_GROUP_CVAR( inputoutput, "220 170 220", "Messages from I/O events. (these display in developer 2)" );
|
|
||||||
DEFINE_CON_GROUP_CVAR( npc_ai, "240 160 200", "Messages from NPC AI, etc. which display at various verbse levels." );
|
|
||||||
DEFINE_CON_GROUP_CVAR( npc_scripts, "255 115 215", "Messages from scripted_sequence, etc. (these display in developer 2)" );
|
|
||||||
DEFINE_CON_GROUP_CVAR( choreo, "240 224 180", "Messages from choreographed scenes and response expressers. (these display in developer 1, 2, etc.)" );
|
|
||||||
|
|
||||||
DEFINE_CON_GROUP_CVAR( vscript, "192 224 240", "Internal messages from VScript not produced by the user's scripts." );
|
|
||||||
DEFINE_CON_GROUP_CVAR( vscript_print, "80 186 255", "Messages from VScript's 'print' function." );
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
#define DEFINE_CON_GROUP(id, name, codename) { name, &con_group_##codename##_color }
|
//#define DEFINE_CON_GROUP(id, name, codename) { name, &con_group_##codename##_color }
|
||||||
|
#define DEFINE_CON_GROUP(id, name, description) { name, description }
|
||||||
|
|
||||||
ConGroup_t g_ConGroups[CON_GROUP_MAX] = {
|
ConGroup_t g_ConGroups[CON_GROUP_MAX] = {
|
||||||
|
|
||||||
// General
|
// General
|
||||||
DEFINE_CON_GROUP( CON_GROUP_MAPBASE_MISC, "Mapbase misc.", mapbase_misc ),
|
DEFINE_CON_GROUP( CON_GROUP_MAPBASE_MISC, "Mapbase misc.", "Messages from misc. Mapbase functions, like map-specific files." ),
|
||||||
DEFINE_CON_GROUP( CON_GROUP_PHYSICS, "Physics", physics ),
|
DEFINE_CON_GROUP( CON_GROUP_PHYSICS, "Physics", "Messages from physics-related events." ),
|
||||||
|
DEFINE_CON_GROUP( CON_GROUP_IO_SYSTEM, "Entity IO", "Messages from I/O events. (these display in developer 2)" ),
|
||||||
|
DEFINE_CON_GROUP( CON_GROUP_RESPONSE_SYSTEM, "Response System", "Messages from the Response System, a library primarily used for NPC speech." ),
|
||||||
|
|
||||||
// Server
|
// Game
|
||||||
DEFINE_CON_GROUP( CON_GROUP_IO_SYSTEM, "Entity IO", inputoutput ),
|
DEFINE_CON_GROUP( CON_GROUP_NPC_AI, "NPC AI", "Messages from NPC AI, etc. which display at various verbose levels." ),
|
||||||
DEFINE_CON_GROUP( CON_GROUP_NPC_AI, "NPC AI", npc_ai ),
|
DEFINE_CON_GROUP( CON_GROUP_NPC_SCRIPTS, "NPC scripts", "Messages from scripted_sequence, etc. (these display in developer 2)" ),
|
||||||
DEFINE_CON_GROUP( CON_GROUP_NPC_SCRIPTS, "NPC scripts", npc_scripts ),
|
DEFINE_CON_GROUP( CON_GROUP_SPEECH_AI, "Speech AI", "Messages from response expressers. (these display in developer 1, 2, etc.)" ),
|
||||||
DEFINE_CON_GROUP( CON_GROUP_CHOREO, "Choreo", choreo ),
|
DEFINE_CON_GROUP( CON_GROUP_CHOREO, "Choreo", "Messages from choreographed scenes. (these display in developer 1, 2, etc.)" ),
|
||||||
|
|
||||||
// VScript
|
// VScript
|
||||||
DEFINE_CON_GROUP( CON_GROUP_VSCRIPT, "VScript", vscript ),
|
DEFINE_CON_GROUP( CON_GROUP_VSCRIPT, "VScript", "Internal messages from VScript not produced by actual scripts." ),
|
||||||
DEFINE_CON_GROUP( CON_GROUP_VSCRIPT_PRINT, "VScript print", vscript_print ),
|
DEFINE_CON_GROUP( CON_GROUP_VSCRIPT_PRINT, "VScript print", "Messages from VScript's 'print' function." ),
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void CV_ColorChanged( IConVar *pConVar, const char *pOldString, float flOldValue )
|
int FindConGroup( const char *pszName )
|
||||||
{
|
{
|
||||||
for (int i = 0; i < CON_GROUP_MAX; i++)
|
for (int i = 0; i < CON_GROUP_MAX; i++)
|
||||||
{
|
{
|
||||||
// Reset the alpha to indicate it needs to be refreshed
|
if (Q_stricmp( pszName, g_ConGroups[i].pszName ) == 0)
|
||||||
g_ConGroups[i]._clr[3] = 0;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
// Loads console groups
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
void LoadConsoleGroupsFromFile( IBaseFileSystem *filesystem, const char *pszFileName, const char *pathID )
|
||||||
|
{
|
||||||
|
KeyValues *pGroupRoot = new KeyValues( "ConsoleGroups" );
|
||||||
|
|
||||||
ConVar con_group_include_name( "con_group_include_name", "0", FCVAR_NONE, "Includes groups when printing." );
|
pGroupRoot->LoadFromFile( filesystem, pszFileName, pathID );
|
||||||
|
|
||||||
CON_COMMAND( con_group_list, "Prints a list of all console groups." )
|
KeyValues *pGroup = NULL;
|
||||||
|
for ( pGroup = pGroupRoot->GetFirstTrueSubKey(); pGroup; pGroup = pGroup->GetNextTrueSubKey() )
|
||||||
|
{
|
||||||
|
int index = FindConGroup( pGroup->GetName() );
|
||||||
|
if (index != -1)
|
||||||
|
{
|
||||||
|
g_ConGroups[index]._clr = pGroup->GetColor( "MessageColor" );
|
||||||
|
//g_ConGroups[index].bDisabled = pGroup->GetBool( "Disabled", false );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Warning( "Invalid console group %s (new groups should be defined in the code)\n", pGroup->GetName() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pGroupRoot->deleteThis();
|
||||||
|
}
|
||||||
|
|
||||||
|
void InitConsoleGroups( IBaseFileSystem *filesystem )
|
||||||
|
{
|
||||||
|
LoadConsoleGroupsFromFile( filesystem, "scripts/mapbase_con_groups.txt", "MOD" );
|
||||||
|
LoadConsoleGroupsFromFile( filesystem, "scripts/mod_con_groups.txt", "MOD" );
|
||||||
|
}
|
||||||
|
|
||||||
|
void PrintAllConsoleGroups()
|
||||||
{
|
{
|
||||||
Msg( "============================================================\n" );
|
Msg( "============================================================\n" );
|
||||||
for (int i = 0; i < CON_GROUP_MAX; i++)
|
for (int i = 0; i < CON_GROUP_MAX; i++)
|
||||||
{
|
{
|
||||||
Msg( " # " );
|
Msg( " # " );
|
||||||
ConColorMsg( g_ConGroups[i].GetColor(), "%s", g_ConGroups[i].pszName );
|
ConColorMsg( g_ConGroups[i].GetColor(), "%s", g_ConGroups[i].pszName );
|
||||||
Msg( " - %s ", g_ConGroups[i].cvar->GetHelpText() );
|
Msg( " - %s ", g_ConGroups[i].pszDescription );
|
||||||
|
|
||||||
//if (g_ConGroups[i].bDisabled)
|
//if (g_ConGroups[i].bDisabled)
|
||||||
// Msg("(DISABLED)");
|
// Msg("(DISABLED)");
|
||||||
@ -116,26 +130,33 @@ CON_COMMAND( con_group_list, "Prints a list of all console groups." )
|
|||||||
Msg( "============================================================\n" );
|
Msg( "============================================================\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Figure out how this can be done without server/client disparity issues
|
void ToggleConsoleGroups( const char *pszQuery )
|
||||||
/*
|
|
||||||
CON_COMMAND( con_group_toggle, "Toggles a console group." )
|
|
||||||
{
|
{
|
||||||
const char *pszGroup = args.Arg( 1 );
|
bool bMatched = false;
|
||||||
|
|
||||||
for (int i = 0; i < ARRAYSIZE( g_ConGroups ); i++)
|
for (int i = 0; i < ARRAYSIZE( g_ConGroups ); i++)
|
||||||
{
|
{
|
||||||
if (V_stricmp(pszGroup, g_ConGroups[i].pszName) == 0)
|
if (Matcher_NamesMatch( pszQuery, g_ConGroups[i].pszName ))
|
||||||
{
|
{
|
||||||
Msg( "%s is now %s\n", g_ConGroups[i].pszName, g_ConGroups[i].bDisabled ? "enabled" : "disabled" );
|
Msg( "%s is now %s\n", g_ConGroups[i].pszName, g_ConGroups[i].bDisabled ? "enabled" : "disabled" );
|
||||||
g_ConGroups[i].bDisabled = !g_ConGroups[i].bDisabled;
|
g_ConGroups[i].bDisabled = !g_ConGroups[i].bDisabled;
|
||||||
return;
|
bMatched = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Msg( "No group named \"%s\"\n", pszGroup );
|
if (!bMatched)
|
||||||
|
Msg( "No groups matching \"%s\"\n", pszQuery );
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
void CGMsg( int level, int nGroup, const tchar* pMsg, ... )
|
void SetConsoleGroupIncludeNames( bool bToggle )
|
||||||
|
{
|
||||||
|
g_bIncludeConGroupNames = bToggle;
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void CGMsg( int level, ConGroupID_t nGroup, const tchar* pMsg, ... )
|
||||||
{
|
{
|
||||||
// Return early if we're not at this level
|
// Return early if we're not at this level
|
||||||
if (!IsSpewActive("developer", level))
|
if (!IsSpewActive("developer", level))
|
||||||
@ -152,11 +173,11 @@ void CGMsg( int level, int nGroup, const tchar* pMsg, ... )
|
|||||||
|
|
||||||
ConGroup_t *pGroup = &g_ConGroups[nGroup];
|
ConGroup_t *pGroup = &g_ConGroups[nGroup];
|
||||||
|
|
||||||
/*if (pGroup->bDisabled)
|
if (pGroup->bDisabled)
|
||||||
{
|
{
|
||||||
// Do nothing
|
// Do nothing
|
||||||
}
|
}
|
||||||
else*/ if (con_group_include_name.GetBool())
|
else if (g_bIncludeConGroupNames)
|
||||||
{
|
{
|
||||||
ConColorMsg(level, pGroup->GetColor(), "[%s] %s", pGroup->pszName, string);
|
ConColorMsg(level, pGroup->GetColor(), "[%s] %s", pGroup->pszName, string);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user