mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
Implement fully mapped out ConCommandBase VFTable interface class
This commit is contained in:
parent
19d264ec11
commit
25e2581f2b
35
r5dev/public/include/iconcommand.h
Normal file
35
r5dev/public/include/iconcommand.h
Normal file
@ -0,0 +1,35 @@
|
||||
#ifndef ICONCOMMAND_H
|
||||
#define ICONCOMMAND_H
|
||||
#include "icvar.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Abstract interface for ConVars
|
||||
//-----------------------------------------------------------------------------
|
||||
abstract_class IConCommandBase
|
||||
{
|
||||
public:
|
||||
virtual ~IConCommandBase(void) = 0;
|
||||
|
||||
virtual bool IsCommand(void) const = 0;
|
||||
|
||||
virtual bool IsFlagSet(int flag) const = 0; // Check flag
|
||||
virtual void AddFlags(int flags) = 0; // Set flag
|
||||
virtual void RemoveFlags(int flags) = 0; // Clear flag
|
||||
virtual int GetFlags() const = 0; // Get flag
|
||||
|
||||
virtual const char* GetName(void) const = 0; // Return name of cvar
|
||||
virtual const char* GetHelpText(void) const = 0; // Return help text for cvar
|
||||
virtual const char* GetUsageText(void) const = 0; // Return usage text for cvar
|
||||
virtual void SetAccessor(char* bAccessors) const = 0;
|
||||
|
||||
virtual bool IsRegistered(void) const = 0;
|
||||
virtual CVarDLLIdentifier_t GetDLLIdentifier() const = 0; // Returns the DLL identifier
|
||||
|
||||
protected:
|
||||
virtual void Create(const char* pName, const char* pHelpString = 0,
|
||||
int flags = 0) = 0;
|
||||
virtual void Init() = 0; // Used internally by OneTimeInit to initialize/shutdown
|
||||
};
|
||||
|
||||
|
||||
#endif // ICONCOMMAND_H
|
9
r5dev/public/include/icvar.h
Normal file
9
r5dev/public/include/icvar.h
Normal file
@ -0,0 +1,9 @@
|
||||
#ifndef ICVAR_H
|
||||
#define ICVAR_H
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// ConVars/ComCommands are marked as having a particular DLL identifier
|
||||
//-----------------------------------------------------------------------------
|
||||
typedef int CVarDLLIdentifier_t;
|
||||
|
||||
#endif // ICVAR_H
|
@ -11,6 +11,8 @@
|
||||
#include "tier1/cvar.h"
|
||||
#include "mathlib/bits.h"
|
||||
#include "vstdlib/callback.h"
|
||||
#include "public/include/iconvar.h"
|
||||
#include "public/include/iconcommand.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: construct/allocate
|
||||
@ -20,7 +22,7 @@ ConVar::ConVar(const char* pszName, const char* pszDefaultValue, int nFlags, con
|
||||
ConVar* pNewConVar = MemAllocSingleton()->Alloc<ConVar>(sizeof(ConVar)); // Allocate new memory with StdMemAlloc else we crash.
|
||||
memset(pNewConVar, '\0', sizeof(ConVar)); // Set all to null.
|
||||
|
||||
pNewConVar->m_pConCommandBaseVFTable = g_pConVarVFTable.RCast<void*>();
|
||||
pNewConVar->m_pConCommandBaseVFTable = g_pConVarVFTable.RCast<IConCommandBase*>();
|
||||
pNewConVar->m_pIConVarVFTable = g_pIConVarVFTable.RCast<IConVar*>();
|
||||
|
||||
ConVar_Register(pNewConVar, pszName, pszDefaultValue, nFlags, pszHelpString, bMin, fMin, bMax, fMax, pCallback, pszUsageString);
|
||||
|
@ -101,7 +101,7 @@ ConCommand::ConCommand(const char* pszName, const char* pszHelpString, int nFlag
|
||||
ConCommand* pCommand = MemAllocSingleton()->Alloc<ConCommand>(sizeof(ConCommand));
|
||||
memset(pCommand, '\0', sizeof(ConCommand));
|
||||
|
||||
pCommand->m_pConCommandBaseVTable = g_pConCommandVtable.RCast<void*>();
|
||||
pCommand->m_pConCommandBaseVFTable = g_pConCommandVtable.RCast<IConCommandBase*>();
|
||||
pCommand->m_pszName = pszName;
|
||||
pCommand->m_pszHelpString = pszHelpString;
|
||||
pCommand->m_nFlags = nFlags;
|
||||
@ -266,7 +266,7 @@ bool ConCommand::IsCommand(void) const
|
||||
//-----------------------------------------------------------------------------
|
||||
bool ConCommandBase::IsCommand(void) const
|
||||
{
|
||||
return m_pConCommandBaseVTable != g_pConVarVtable.RCast<void*>();
|
||||
return m_pConCommandBaseVFTable != g_pConVarVFTable.RCast<void*>();
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@ -1,4 +1,5 @@
|
||||
#pragma once
|
||||
#include "public/include/iconcommand.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Forward declarations
|
||||
@ -99,7 +100,7 @@ public:
|
||||
|
||||
char* CopyString(const char* szFrom) const;
|
||||
|
||||
void* m_pConCommandBaseVTable; //0x0000
|
||||
IConCommandBase* m_pConCommandBaseVFTable; //0x0000
|
||||
ConCommandBase* m_pNext; //0x0008
|
||||
bool m_bRegistered; //0x0010
|
||||
char pad_0011[7]; //0x0011
|
||||
|
@ -243,6 +243,7 @@
|
||||
<ClInclude Include="..\public\include\iclientthinkable.h" />
|
||||
<ClInclude Include="..\public\include\iclientunknown.h" />
|
||||
<ClInclude Include="..\public\include\icommandline.h" />
|
||||
<ClInclude Include="..\public\include\iconcommand.h" />
|
||||
<ClInclude Include="..\public\include\iconvar.h" />
|
||||
<ClInclude Include="..\public\include\idebugoverlay.h" />
|
||||
<ClInclude Include="..\public\include\ihandleentity.h" />
|
||||
|
@ -1646,8 +1646,11 @@
|
||||
<ClInclude Include="..\game\client\view.h">
|
||||
<Filter>sdk\game\client</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\public\include\iconcommand.h">
|
||||
<Filter>sdk\public\include</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\public\include\iconvar.h">
|
||||
<Filter>sdk\tier1</Filter>
|
||||
<Filter>sdk\public\include</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
@ -216,7 +216,9 @@
|
||||
<ClInclude Include="..\public\include\edict.h" />
|
||||
<ClInclude Include="..\public\include\globalvars_base.h" />
|
||||
<ClInclude Include="..\public\include\icommandline.h" />
|
||||
<ClInclude Include="..\public\include\iconcommand.h" />
|
||||
<ClInclude Include="..\public\include\iconvar.h" />
|
||||
<ClInclude Include="..\public\include\icvar.h" />
|
||||
<ClInclude Include="..\public\include\inetchannel.h" />
|
||||
<ClInclude Include="..\public\include\inetmsghandler.h" />
|
||||
<ClInclude Include="..\public\include\iserver.h" />
|
||||
|
@ -1179,6 +1179,12 @@
|
||||
<ClInclude Include="..\public\include\iconvar.h">
|
||||
<Filter>sdk\public\include</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\public\include\iconcommand.h">
|
||||
<Filter>sdk\public\include</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\public\include\icvar.h">
|
||||
<Filter>sdk\public\include</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\common\opcodes.cpp">
|
||||
|
@ -267,7 +267,9 @@
|
||||
<ClInclude Include="..\public\include\iclientthinkable.h" />
|
||||
<ClInclude Include="..\public\include\iclientunknown.h" />
|
||||
<ClInclude Include="..\public\include\icommandline.h" />
|
||||
<ClInclude Include="..\public\include\iconcommand.h" />
|
||||
<ClInclude Include="..\public\include\iconvar.h" />
|
||||
<ClInclude Include="..\public\include\icvar.h" />
|
||||
<ClInclude Include="..\public\include\idebugoverlay.h" />
|
||||
<ClInclude Include="..\public\include\ihandleentity.h" />
|
||||
<ClInclude Include="..\public\include\inetchannel.h" />
|
||||
|
@ -1739,6 +1739,12 @@
|
||||
<ClInclude Include="..\public\include\iconvar.h">
|
||||
<Filter>sdk\public\include</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\public\include\iconcommand.h">
|
||||
<Filter>sdk\public\include</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\public\include\icvar.h">
|
||||
<Filter>sdk\public\include</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Image Include="..\shared\resource\lockedserver.png">
|
||||
|
Loading…
x
Reference in New Issue
Block a user