VoltMod
C++23 framework for CS2 server plugins
Loading...
Searching...
No Matches
VoltMod::Bindings Struct Reference

#include <Bindings.hpp>

Public Member Functions

Status Bind (const GameDataLookup &lookup)
 

Public Attributes

std::vector< std::string > Failures
 
Fn< CEntityInstance *(const char *, int)> CreateEntityByName
 
Fn< void(CEntityInstance *, CEntityKeyValues *)> DispatchSpawn
 
Fn< void(CEntityInstance *, const char *, CEntityInstance *, CEntityInstance *, void *)> AcceptInput
 
Fn< void(void *, CEntityInstance *, const char *, CEntityInstance *, CEntityInstance *, const void *, float, const void *, const void *)> AddEntityIOEvent
 
Fn< void(CEntityInstance *, const char *)> SetModel
 
Fn< void(CEntityInstance *, const char *, int, float, float)> EmitSoundParams
 
Fn< void(CEntityInstance *, const char *)> StopSound
 
Address EmitSoundFilter
 
Address LegacyGameEventListener
 
Fn< int64_t(CEntityInstance *, void *, void *)> TakeDamage
 
Fn< void(void *, CEntityInstance *, CEntityInstance *, CEntityInstance *, const Vector *, const Vector *, float, int, int, void *)> BuildDamageInfo
 
Fn< void(void *, float, uint32_t, void *)> TerminateRound
 
Fn< bool(EngineWeaponServices *, CEntityInstance *, bool)> DropWeapon
 
Fn< void(void *, const CUtlString *, const CUtlString *, int32_t)> CustomHudSetHasClass
 
Fn< void(void *, int32_t, const CUtlString *, const CUtlString *, int32_t)> CustomHudSetHasClassForPlayer
 
Fn< void(void *, const CUtlString *, const CUtlString *, const CUtlString *)> CustomHudSetDialogVariable
 
Fn< void(void *, int32_t, const CUtlString *, const CUtlString *, const CUtlString *)> CustomHudSetDialogVariableForPlayer
 
Fn< void(void *, int32_t, bool)> CustomHudSetInputCapture
 
VirtualFn< bool(INetworkMessageProcessingPreFilter *, const CNetMessage *, INetChannel *)> FilterMessage
 
Fn< void(CNetworkGameServerBase *, EngineClient *)> ReplyConnection
 
Address GameEventManager
 
VirtualFn< void(CEntityInstance *, bool, bool)> CommitSuicide
 
VirtualFn< void(CEntityInstance *, int)> ChangeTeam
 
VirtualFn< void(CEntityInstance *)> Respawn
 
VirtualFn< void(CEntityInstance *, const Vector *, const QAngle *, const Vector *)> Teleport
 
VirtualFn< bool(EngineNavPhysics *, const Vector *, const Vector *, CTraceFilter *, CGameTrace *)> NavTraceLine
 
VirtualFn< void(EngineNavPhysics *, const Ray_t *, const Vector *, const Vector *, CTraceFilter *, CGameTrace *)> NavTraceShape
 
VirtualFn< void *(EngineMovementServices *, void *)> RunCommand
 
VirtualFn< void *(void *, const char *)> GiveNamedItem
 
VirtualFn< void(void *, bool)> RemoveAllItems
 
VirtualFn< bool(EngineWeaponServices *, CEntityInstance *, int)> SelectItem
 
VirtualFn< bool(EngineClient *, const CNetMessage *)> ProcessRespondCvarValue
 
VirtualFn< bool(EngineClient *, const CNetMessage *, NetChannelBufType_t)> SendNetMessage
 
Offset< CGameEntitySystem * > GameEntitySystem
 
Offset< uint8_t > VisibilityRecipientSlot
 
Offset< int > ClientSlot
 
Offset< int64_t > ClientSteamId
 
Offset< void > ClientMessageFilter
 
Offset< void > ServerAddons
 
Offset< void > UserCmdProto
 
Offset< int32_t > UserCmdNumber
 

Detailed Description

Every engine function, slot and offset the framework calls, typed and bound from gamedata.

Definition at line 15 of file Bindings.hpp.

Member Function Documentation

◆ Bind()

Member Data Documentation

◆ AcceptInput

Fn<void(CEntityInstance*, const char*, CEntityInstance*, CEntityInstance*, void*)> VoltMod::Bindings::AcceptInput

(entity, input, activator, caller, variant_t* value).

Definition at line 29 of file Bindings.hpp.

Referenced by Bind().

◆ AddEntityIOEvent

Fn<void(void*, CEntityInstance*, const char*, CEntityInstance*, CEntityInstance*, const void*, float, const void*, const void*)> VoltMod::Bindings::AddEntityIOEvent

(entity system, target, input, activator, caller, value, delay, nullptr, nullptr). The queue copies the input and value.

Definition at line 34 of file Bindings.hpp.

Referenced by Bind(), and VoltMod::Entity::RemoveAfter().

◆ BuildDamageInfo

Fn<void(void*, CEntityInstance*, CEntityInstance*, CEntityInstance*, const Vector*, const Vector*, float, int, int, void*)> VoltMod::Bindings::BuildDamageInfo

CTakeDamageInfo(info, inflictor, attacker, ability, force, position, damage, type, custom, nullptr).

Definition at line 49 of file Bindings.hpp.

Referenced by VoltMod::Damage::Apply(), VoltMod::Damage::Available(), and Bind().

◆ ChangeTeam

VirtualFn<void(CEntityInstance*, int)> VoltMod::Bindings::ChangeTeam

Definition at line 74 of file Bindings.hpp.

Referenced by Bind(), and VoltMod::Controller::ChangeTeam().

◆ ClientMessageFilter

Offset<void> VoltMod::Bindings::ClientMessageFilter

From CServerSideClient to the base FilterMessage runs on.

Definition at line 101 of file Bindings.hpp.

Referenced by VoltMod::ScreenManager::Available(), and Bind().

◆ ClientSlot

Offset<int> VoltMod::Bindings::ClientSlot

Definition at line 97 of file Bindings.hpp.

Referenced by VoltMod::ScreenManager::Available(), and Bind().

◆ ClientSteamId

Offset<int64_t> VoltMod::Bindings::ClientSteamId

Unaligned inside CServerSideClient.

Definition at line 99 of file Bindings.hpp.

Referenced by Bind().

◆ CommitSuicide

VirtualFn<void(CEntityInstance*, bool, bool)> VoltMod::Bindings::CommitSuicide

The (bool explode, bool force) overload, counted in CCSPlayerPawn.

Definition at line 73 of file Bindings.hpp.

Referenced by Bind(), and VoltMod::Pawn::Slay().

◆ CreateEntityByName

Fn<CEntityInstance*(const char*, int)> VoltMod::Bindings::CreateEntityByName

(className, forceEdictIndex).

Definition at line 25 of file Bindings.hpp.

Referenced by VoltMod::EntitySystem::Available(), Bind(), and VoltMod::EntitySystem::Create().

◆ CustomHudSetDialogVariable

Fn<void(void*, const CUtlString*, const CUtlString*, const CUtlString*)> VoltMod::Bindings::CustomHudSetDialogVariable

Definition at line 58 of file Bindings.hpp.

Referenced by VoltMod::ScreenManager::Available(), and Bind().

◆ CustomHudSetDialogVariableForPlayer

Fn<void(void*, int32_t, const CUtlString*, const CUtlString*, const CUtlString*)> VoltMod::Bindings::CustomHudSetDialogVariableForPlayer

Definition at line 60 of file Bindings.hpp.

Referenced by VoltMod::ScreenManager::Available(), and Bind().

◆ CustomHudSetHasClass

Fn<void(void*, const CUtlString*, const CUtlString*, int32_t)> VoltMod::Bindings::CustomHudSetHasClass

Definition at line 56 of file Bindings.hpp.

Referenced by VoltMod::ScreenManager::Available(), and Bind().

◆ CustomHudSetHasClassForPlayer

Fn<void(void*, int32_t, const CUtlString*, const CUtlString*, int32_t)> VoltMod::Bindings::CustomHudSetHasClassForPlayer

Definition at line 57 of file Bindings.hpp.

Referenced by VoltMod::ScreenManager::Available(), and Bind().

◆ CustomHudSetInputCapture

Fn<void(void*, int32_t, bool)> VoltMod::Bindings::CustomHudSetInputCapture

Definition at line 61 of file Bindings.hpp.

Referenced by VoltMod::ScreenManager::Available(), and Bind().

◆ DispatchSpawn

Fn<void(CEntityInstance*, CEntityKeyValues*)> VoltMod::Bindings::DispatchSpawn

keyvalues may be null.

Definition at line 27 of file Bindings.hpp.

Referenced by VoltMod::EntitySystem::Available(), Bind(), and VoltMod::Entity::Spawn().

◆ DropWeapon

Fn<bool(EngineWeaponServices*, CEntityInstance*, bool)> VoltMod::Bindings::DropWeapon

(weapon, swapping); a player's own drop. The drop key passes a null weapon: the one in hand.

Definition at line 53 of file Bindings.hpp.

Referenced by Bind().

◆ EmitSoundFilter

Address VoltMod::Bindings::EmitSoundFilter

Returns its result through a hidden pointer, so Entity.cpp declares the prototype.

Definition at line 41 of file Bindings.hpp.

Referenced by Bind(), and VoltMod::Entity::EmitSound().

◆ EmitSoundParams

Fn<void(CEntityInstance*, const char*, int, float, float)> VoltMod::Bindings::EmitSoundParams

(entity, soundEvent, pitch, volume, delay).

Definition at line 37 of file Bindings.hpp.

Referenced by VoltMod::Entity::EmitSound().

◆ Failures

std::vector<std::string> VoltMod::Bindings::Failures

key: reason for each member the last Bind left unbound.

Definition at line 22 of file Bindings.hpp.

Referenced by Bind().

◆ FilterMessage

Counted in CServerSideClient's message-filter base, which the hook receives.

Definition at line 65 of file Bindings.hpp.

Referenced by VoltMod::ScreenManager::Available(), and Bind().

◆ GameEntitySystem

Offset<CGameEntitySystem*> VoltMod::Bindings::GameEntitySystem

Inside IGameResourceService.

Definition at line 94 of file Bindings.hpp.

Referenced by VoltMod::EntitySystem::Available(), Bind(), and VoltMod::EntitySystem::EntitySystem().

◆ GameEventManager

Address VoltMod::Bindings::GameEventManager

IGameEventManager2** inside CSource2Server.

Definition at line 70 of file Bindings.hpp.

Referenced by VoltMod::GameEvents::Available(), Bind(), and VoltMod::GameEvents::GameEvents().

◆ GiveNamedItem

VirtualFn<void*(void*, const char*)> VoltMod::Bindings::GiveNamedItem

Definition at line 85 of file Bindings.hpp.

Referenced by Bind(), and VoltMod::Pawn::GiveItem().

◆ LegacyGameEventListener

Address VoltMod::Bindings::LegacyGameEventListener

IGameEventListener2* (CPlayerSlot); GameEvents.cpp declares the prototype.

Definition at line 43 of file Bindings.hpp.

Referenced by Bind(), and VoltMod::GameEvents::GameEvents().

◆ NavTraceLine

VirtualFn<bool(EngineNavPhysics*, const Vector*, const Vector*, CTraceFilter*, CGameTrace*)> VoltMod::Bindings::NavTraceLine

The overloads taking a filter, called on the stateless class table.

Definition at line 80 of file Bindings.hpp.

Referenced by VoltMod::Trace::Available(), Bind(), and VoltMod::Trace::Line().

◆ NavTraceShape

VirtualFn<void(EngineNavPhysics*, const Ray_t*, const Vector*, const Vector*, CTraceFilter*, CGameTrace*)> VoltMod::Bindings::NavTraceShape

Definition at line 82 of file Bindings.hpp.

Referenced by Bind(), and VoltMod::Trace::Box().

◆ ProcessRespondCvarValue

VirtualFn<bool(EngineClient*, const CNetMessage*)> VoltMod::Bindings::ProcessRespondCvarValue

Definition at line 90 of file Bindings.hpp.

Referenced by Bind().

◆ RemoveAllItems

VirtualFn<void(void*, bool)> VoltMod::Bindings::RemoveAllItems

(bool removeSuit).

Definition at line 87 of file Bindings.hpp.

Referenced by Bind(), and VoltMod::Pawn::StripWeapons().

◆ ReplyConnection

Fn<void(CNetworkGameServerBase*, EngineClient*)> VoltMod::Bindings::ReplyConnection

CNetworkGameServer::ReplyConnection, which names the addons a connecting client mounts.

Definition at line 67 of file Bindings.hpp.

Referenced by Bind().

◆ Respawn

VirtualFn<void(CEntityInstance*)> VoltMod::Bindings::Respawn

Definition at line 75 of file Bindings.hpp.

Referenced by Bind(), and VoltMod::Controller::Respawn().

◆ RunCommand

VirtualFn<void*(EngineMovementServices*, void*)> VoltMod::Bindings::RunCommand

(CUserCmd*), counted in CCSPlayer_MovementServices.

Definition at line 84 of file Bindings.hpp.

Referenced by VoltMod::Movement::Available(), and Bind().

◆ SelectItem

VirtualFn<bool(EngineWeaponServices*, CEntityInstance*, int)> VoltMod::Bindings::SelectItem

(weapon, 0), counted in CCSPlayer_WeaponServices.

Definition at line 89 of file Bindings.hpp.

Referenced by Bind(), and VoltMod::Pawn::SelectWeapon().

◆ SendNetMessage

VirtualFn<bool(EngineClient*, const CNetMessage*, NetChannelBufType_t)> VoltMod::Bindings::SendNetMessage

Definition at line 91 of file Bindings.hpp.

Referenced by Bind().

◆ ServerAddons

Offset<void> VoltMod::Bindings::ServerAddons

CNetworkGameServer::m_szAddons, a CUtlString.

Definition at line 103 of file Bindings.hpp.

Referenced by Bind().

◆ SetModel

Fn<void(CEntityInstance*, const char*)> VoltMod::Bindings::SetModel

Definition at line 35 of file Bindings.hpp.

Referenced by Bind(), and VoltMod::Entity::SetModel().

◆ StopSound

Fn<void(CEntityInstance*, const char*)> VoltMod::Bindings::StopSound

(entity, soundEvent).

Definition at line 39 of file Bindings.hpp.

Referenced by Bind(), and VoltMod::Entity::StopSound().

◆ TakeDamage

Fn<int64_t(CEntityInstance*, void*, void*)> VoltMod::Bindings::TakeDamage

CBaseEntity::TakeDamageOld(CTakeDamageInfo*, CTakeDamageResult*); see src/Hooks/DamageLayout.hpp.

Definition at line 45 of file Bindings.hpp.

Referenced by VoltMod::Damage::Apply(), VoltMod::Damage::Available(), and Bind().

◆ Teleport

VirtualFn<void(CEntityInstance*, const Vector*, const QAngle*, const Vector*)> VoltMod::Bindings::Teleport

(origin, angles, velocity), each nullable; counted in CCSPlayerPawn.

Definition at line 77 of file Bindings.hpp.

Referenced by VoltMod::Teleport::Available(), and VoltMod::Entity::Teleport().

◆ TerminateRound

Fn<void(void*, float, uint32_t, void*)> VoltMod::Bindings::TerminateRound

(CCSGameRules*, delay, CSRoundEndReason, int* team).

Definition at line 51 of file Bindings.hpp.

Referenced by VoltMod::Rounds::Available(), Bind(), and VoltMod::Rounds::End().

◆ UserCmdNumber

Offset<int32_t> VoltMod::Bindings::UserCmdNumber

CUserCmd's own counter; live clients leave the protobuf one at zero.

Definition at line 107 of file Bindings.hpp.

Referenced by Bind(), and VoltMod::PlayerCommands::PlayerCommands().

◆ UserCmdProto

Offset<void> VoltMod::Bindings::UserCmdProto

The CSGOUserCmdPB inside CUserCmd.

Definition at line 105 of file Bindings.hpp.

Referenced by VoltMod::Movement::Available(), and Bind().

◆ VisibilityRecipientSlot

Offset<uint8_t> VoltMod::Bindings::VisibilityRecipientSlot

The recipient's slot inside CCheckTransmitInfo.

Definition at line 96 of file Bindings.hpp.

Referenced by VoltMod::Visibility::Available(), Bind(), and VoltMod::Visibility::OnCheckTransmit().


The documentation for this struct was generated from the following files: