VoltMod
C++23 framework for CS2 server plugins
Loading...
Searching...
No Matches
EngineTypes.hpp
Go to the documentation of this file.
1#pragma once
2
3// VoltMod's only forward declarations, for three reasons:
4// 1. SDK types passed by pointer or reference, so consumers never include the SDK.
5// 2. Framework types defined under src/, which have no public header.
6// 3. One side of a pair of headers that would otherwise include each other.
7
8#include <cstdint>
9
10// 1. SDK and KHook types.
11class CCheckTransmitInfo;
12class CCommand;
13class CEntityIdentity;
14class CEntityInstance;
15class CEntityKeyValues;
16class CGameEntitySystem;
17class CGameTrace;
18class CGlobalVars;
19class CNetMessage;
20class CNetworkGameServerBase;
21class CSchemaSystemTypeScope;
22class CTraceFilter;
23class CUtlString; // the custom HUD setters take `const CUtlString*`
24class CPlayerSlot;
25class ICvar;
27class IFileSystem;
28class IGameEvent;
29class IGameEventManager2;
30class IGameEventSystem;
31class IGameResourceService;
32class INetChannel;
33class INetChannelInfo;
34class INetworkMessageInternal;
35class INetworkMessageProcessingPreFilter;
36class INetworkMessages;
37class INetworkServerService;
38class IRecipientFilter;
39class ISchemaSystem;
40class ISource2GameClients; // IServerGameClients
41class ISource2GameEntities;
42class ISource2Server; // IServerGameDLL
43class ISource2WorldSession;
44class IVEngineServer2;
45class QAngle;
46struct Ray_t;
47class Vector;
48union CVValue_t;
49enum EConVarType : int16_t;
50enum NetChannelBufType_t : int8_t;
51
52namespace KHook
53{
54/** The loader's hook dispatcher, handed to each plugin through @ref VoltMod::IPluginContext. */
55class IKHook;
56} // namespace KHook
57
58namespace VoltMod
59{
60
61/** Tags for engine classes the SDK does not declare; only ever pointed to. */
62class EnginePawn // CCSPlayerPawn and the pawns sharing its vtable
63{};
64class EngineClient // CServerSideClient
65{};
66class EngineMovementServices // CCSPlayer_MovementServices
67{};
68class EngineWeaponServices // CCSPlayer_WeaponServices
69{};
70class EngineNavPhysics // the nav mesh's physics interface, used by @ref Trace
71{};
72
73// 2. Defined under src/.
74class ScreenEntity; // Ui/ScreenEntity.hpp
75class PendingConVarQueries; // Hooks/PendingConVarQueries.hpp
76class CommandRouter; // Commands/CommandRouter.hpp
77class EngineArgBinder; // Commands/ArgBinding.hpp
78
79// 3. Include cycles.
80class EntitySystem; // Entity.hpp points to it; EntitySystem.hpp returns entities by value
81class Controller; // Pawn.hpp returns it; Controller.hpp includes Pawn.hpp
82class Pawn; // Player.hpp returns both without pulling the schema headers into SDK-free tests
83class GlowVision; // Visibility.hpp returns it; GlowVision.hpp includes Visibility.hpp
84
85} // namespace VoltMod
The registered commands, their usage lines, and the dispatch that runs one.
A player's identity behind a slot: name, money, team, scoreboard row. It survives death and respawn; ...
runtime.Entities: finds and creates entities. Everything it returns is valid for this frame only; see...
Players as team-colored outlines through walls, for one client or one team alone.
A player's body: health, armor, movement, aim, weapons. The engine replaces it on every spawn; the Co...
Definition Pawn.hpp:19
Bookkeeping for ClientConVars: per-slot, cookie-keyed queries awaiting an answer.
The custom_hud_layout entity behind a Screen: spawning, removal, and every write.
::QAngle QAngle
Definition Math.hpp:14
::Vector Vector
Definition Math.hpp:11