Add YAML file builder and automatically resolve offsets in tests

This commit is contained in:
a2x 2023-12-07 21:46:35 +10:00
parent bc2b8d27b0
commit 6dc4f54ef2
26 changed files with 16054 additions and 45 deletions

View File

@ -1,6 +1,6 @@
[package]
name = "cs2-dumper"
version = "1.1.4"
version = "1.1.5"
authors = ["a2x"]
edition = "2021"
readme = "README.md"

File diff suppressed because it is too large Load Diff

3336
generated/client.dll.yaml Normal file

File diff suppressed because it is too large Load Diff

141
generated/engine2.dll.yaml Normal file
View File

@ -0,0 +1,141 @@
---
CEmptyEntityInstance:
CEntityComponent:
CEntityComponentHelper:
m_flags: 8 # uint32_t
m_pInfo: 16 # EntComponentInfo_t*
m_nPriority: 24 # int32_t
m_pNext: 32 # CEntityComponentHelper*
CEntityIOOutput:
m_Value: 24 # CVariantBase<CVariantDefaultAllocator>
CEntityIdentity:
m_nameStringableIndex: 20 # int32_t
m_name: 24 # CUtlSymbolLarge
m_designerName: 32 # CUtlSymbolLarge
m_flags: 48 # uint32_t
m_worldGroupId: 56 # WorldGroupId_t
m_fDataObjectTypes: 60 # uint32_t
m_PathIndex: 64 # ChangeAccessorFieldPathIndex_t
m_pPrev: 88 # CEntityIdentity*
m_pNext: 96 # CEntityIdentity*
m_pPrevByClass: 104 # CEntityIdentity*
m_pNextByClass: 112 # CEntityIdentity*
CEntityInstance:
m_iszPrivateVScripts: 8 # CUtlSymbolLarge
m_pEntity: 16 # CEntityIdentity*
m_CScriptComponent: 40 # CScriptComponent*
CNetworkVarChainer:
m_PathIndex: 32 # ChangeAccessorFieldPathIndex_t
CScriptComponent: # CEntityComponent
m_scriptClassName: 48 # CUtlSymbolLarge
CVariantDefaultAllocator:
EngineLoopState_t:
m_nPlatWindowWidth: 24 # int32_t
m_nPlatWindowHeight: 28 # int32_t
m_nRenderWidth: 32 # int32_t
m_nRenderHeight: 36 # int32_t
EntComponentInfo_t:
m_pName: 0 # char*
m_pCPPClassname: 8 # char*
m_pNetworkDataReferencedDescription: 16 # char*
m_pNetworkDataReferencedPtrPropDescription: 24 # char*
m_nRuntimeIndex: 32 # int32_t
m_nFlags: 36 # uint32_t
m_pBaseClassComponentHelper: 96 # CEntityComponentHelper*
EntInput_t:
EntOutput_t:
EventAdvanceTick_t: # EventSimulate_t
m_nCurrentTick: 48 # int32_t
m_nCurrentTickThisFrame: 52 # int32_t
m_nTotalTicksThisFrame: 56 # int32_t
m_nTotalTicks: 60 # int32_t
EventAppShutdown_t:
m_nDummy0: 0 # int32_t
EventClientAdvanceTick_t: # EventAdvanceTick_t
EventClientFrameSimulate_t:
m_LoopState: 0 # EngineLoopState_t
m_flRealTime: 40 # float
m_flFrameTime: 44 # float
EventClientOutput_t:
m_LoopState: 0 # EngineLoopState_t
m_flRenderTime: 40 # float
m_flRealTime: 44 # float
m_flRenderFrameTimeUnbounded: 48 # float
m_bRenderOnly: 52 # bool
EventClientPauseSimulate_t: # EventSimulate_t
EventClientPollInput_t:
m_LoopState: 0 # EngineLoopState_t
m_flRealTime: 40 # float
EventClientPollNetworking_t:
m_nTickCount: 0 # int32_t
EventClientPostAdvanceTick_t: # EventPostAdvanceTick_t
EventClientPostOutput_t:
m_LoopState: 0 # EngineLoopState_t
m_flRenderTime: 40 # double
m_flRenderFrameTime: 48 # float
m_flRenderFrameTimeUnbounded: 52 # float
m_bRenderOnly: 56 # bool
EventClientPostSimulate_t: # EventSimulate_t
EventClientPreOutput_t:
m_LoopState: 0 # EngineLoopState_t
m_flRenderTime: 40 # double
m_flRenderFrameTime: 48 # double
m_flRenderFrameTimeUnbounded: 56 # double
m_flRealTime: 64 # float
m_bRenderOnly: 68 # bool
EventClientPreSimulate_t: # EventSimulate_t
EventClientPredictionPostNetupdate_t:
EventClientProcessGameInput_t:
m_LoopState: 0 # EngineLoopState_t
m_flRealTime: 40 # float
m_flFrameTime: 44 # float
EventClientProcessInput_t:
m_LoopState: 0 # EngineLoopState_t
m_flRealTime: 40 # float
m_flTickInterval: 44 # float
m_flTickStartTime: 48 # double
EventClientProcessNetworking_t:
EventClientSceneSystemThreadStateChange_t:
m_bThreadsActive: 0 # bool
EventClientSendInput_t:
m_bFinalClientCommandTick: 0 # bool
m_nAdditionalClientCommandsToCreate: 4 # int32_t
EventClientSimulate_t: # EventSimulate_t
EventFrameBoundary_t:
m_flFrameTime: 0 # float
EventModInitialized_t:
EventPostAdvanceTick_t: # EventSimulate_t
m_nCurrentTick: 48 # int32_t
m_nCurrentTickThisFrame: 52 # int32_t
m_nTotalTicksThisFrame: 56 # int32_t
m_nTotalTicks: 60 # int32_t
EventPostDataUpdate_t:
m_nCount: 0 # int32_t
EventPreDataUpdate_t:
m_nCount: 0 # int32_t
EventProfileStorageAvailable_t:
m_nSplitScreenSlot: 0 # CSplitScreenSlot
EventServerAdvanceTick_t: # EventAdvanceTick_t
EventServerPollNetworking_t: # EventSimulate_t
EventServerPostAdvanceTick_t: # EventPostAdvanceTick_t
EventServerPostSimulate_t: # EventSimulate_t
EventServerProcessNetworking_t: # EventSimulate_t
EventServerSimulate_t: # EventSimulate_t
EventSetTime_t:
m_LoopState: 0 # EngineLoopState_t
m_nClientOutputFrames: 40 # int32_t
m_flRealTime: 48 # double
m_flRenderTime: 56 # double
m_flRenderFrameTime: 64 # double
m_flRenderFrameTimeUnbounded: 72 # double
m_flRenderFrameTimeUnscaled: 80 # double
m_flTickRemainder: 88 # double
EventSimpleLoopFrameUpdate_t:
m_LoopState: 0 # EngineLoopState_t
m_flRealTime: 40 # float
m_flFrameTime: 44 # float
EventSimulate_t:
m_LoopState: 0 # EngineLoopState_t
m_bFirstTick: 40 # bool
m_bLastTick: 41 # bool
EventSplitScreenStateChanged_t:

5
generated/host.dll.yaml Normal file
View File

@ -0,0 +1,5 @@
---
CAnimScriptBase:
m_bIsValid: 8 # bool
EmptyTestScript: # CAnimScriptBase
m_hTest: 16 # CAnimScriptParam<float>

168
generated/interfaces.yaml Normal file
View File

@ -0,0 +1,168 @@
---
animationsystem_dll: # animationsystem.dll
AnimationSystemUtils_001: 411248
AnimationSystem_001: 389584
client_dll: # client.dll
LegacyGameUI001: 9044288
Source2ClientUI001: 8975232
Source2ClientPrediction001: 8025264
ClientToolsInfo_001: 7549536
Source2Client002: 7549568
GameClientExports001: 7549552
EmptyWorldService001_Client: 4785552
Source2ClientConfig001: 4682960
engine2_dll: # engine2.dll
SimpleEngineLoopService_001: 1984448
ClientServerEngineLoopService_001: 1942208
KeyValueCache001: 1927424
HostStateMgr001: 1917184
GameEventSystemServerV001: 1898400
GameEventSystemClientV001: 1898384
EngineServiceMgr001: 1881184
VProfService_001: 1805664
ToolService_001: 1800880
StatsService_001: 1781040
SplitScreenService_001: 1769168
SoundService_001: 1747376
ScreenshotService001: 1730688
RenderService_001: 1719264
NetworkService_001: 1718000
NetworkServerService_001: 1697184
NetworkP2PService_001: 1679440
NetworkClientService_001: 1653984
MapListService_001: 1625264
InputService_001: 1551760
GameUIService_001: 1529024
GameResourceServiceServerV001: 1520160
GameResourceServiceClientV001: 1520144
BugService001: 1491456
BenchmarkService001: 1485216
VENGINE_GAMEUIFUNCS_VERSION005: 1148080
EngineGameUI001: 1144896
INETSUPPORT_001: 945792
Source2EngineToServerStringTable001: 664320
Source2EngineToServer001: 570128
Source2EngineToClientStringTable001: 540128
Source2EngineToClient001: 370032
filesystem_stdio_dll: # filesystem_stdio.dll
VAsyncFileSystem2_001: 421168
VFileSystem017: 421152
host_dll: # host.dll
Source2Host001: 101904
SinglePlayerSharedMemory001: 101008
SaveRestoreDataVersion001: 100992
PredictionDiffManager001: 93728
HostUtils001: 75088
GameSystem2HostHook: 73120
GameModelInfo001: 72896
DebugDrawQueueManager001: 71440
imemanager_dll: # imemanager.dll
IMEManager001: 50288
inputsystem_dll: # inputsystem.dll
InputSystemVersion001: 10448
InputStackSystemVersion001: 5872
localize_dll: # localize.dll
Localize_001: 14384
matchmaking_dll: # matchmaking.dll
GameTypes001: 328448
MATCHFRAMEWORK_001: 1054672
materialsystem2_dll: # materialsystem2.dll
MaterialUtils_001: 318640
TextLayout_001: 304128
PostProcessingSystem_001: 273280
FontManager_001: 227872
VMaterialSystem2_001: 155584
meshsystem_dll: # meshsystem.dll
MeshSystem001: 29296
navsystem_dll: # navsystem.dll
NavSystem001: 30448
networksystem_dll: # networksystem.dll
SerializedEntitiesVersion001: 857520
NetworkSystemVersion001: 769856
NetworkMessagesVersion001: 640656
FlattenedSerializersVersion001: 508928
panorama_dll: # panorama.dll
PanoramaUIEngine001: 360160
panorama_text_pango_dll: # panorama_text_pango.dll
PanoramaTextServices001: 314320
panoramauiclient_dll: # panoramauiclient.dll
PanoramaUIClient001: 75648
particles_dll: # particles.dll
ParticleSystemMgr003: 339232
pulse_system_dll: # pulse_system.dll
IPulseSystem_001: 23344
rendersystemdx11_dll: # rendersystemdx11.dll
RenderUtils_001: 340224
VRenderDeviceMgrBackdoor001: 304784
RenderDeviceMgr001: 304768
resourcesystem_dll: # resourcesystem.dll
ResourceSystem013: 67152
scenefilecache_dll: # scenefilecache.dll
SceneFileCache002: 26848
ResponseRulesCache001: 12688
scenesystem_dll: # scenesystem.dll
SceneUtils_001: 1296864
SceneSystem_002: 830000
RenderingPipelines_001: 583840
schemasystem_dll: # schemasystem.dll
SchemaSystem_001: 43312
server_dll: # server.dll
NavGameTest001: 10733536
ServerToolsInfo_001: 8648224
Source2GameClients001: 8648240
Source2GameEntities001: 8648256
Source2Server001: 8648272
EmptyWorldService001_Server: 5840000
Source2ServerConfig001: 5708720
EntitySubclassUtilsV001: 2951248
customnavsystem001: 2414560
Source2GameDirector001: 1332608
soundsystem_dll: # soundsystem.dll
SoundOpSystem001: 1402848
SoundOpSystemEdit001: 572352
VMixEditTool001: 464704
SoundSystem001: 288064
steamaudio_dll: # steamaudio.dll
SteamAudio001: 77536
steamclient64_dll: # steamclient64.dll
IVALIDATE001: 8717216
CLIENTENGINE_INTERFACE_VERSION005: 8700496
SteamClient021: 6579920
SteamClient020: 6579904
SteamClient019: 6579888
SteamClient018: 6579872
SteamClient017: 6579856
SteamClient016: 6579840
SteamClient015: 6579824
SteamClient014: 6579808
SteamClient013: 6579792
SteamClient012: 6579776
SteamClient011: 6579760
SteamClient010: 6579744
SteamClient009: 6579728
SteamClient008: 6579712
SteamClient007: 6579696
SteamClient006: 6579680
p2pvoice002: 890832
p2pvoicesingleton002: 877056
tier0_dll: # tier0.dll
VStringTokenSystem001: 1622704
TestScriptMgr001: 1308176
VProcessUtils002: 1243024
VEngineCvar007: 399648
v8system_dll: # v8system.dll
Source2V8System001: 5744
valve_avi_dll: # valve_avi.dll
VAvi001: 12176
valve_wmf_dll: # valve_wmf.dll
VMediaFoundation001: 4816
vphysics2_dll: # vphysics2.dll
VPhysics2_Handle_Interface_001: 397600
VPhysics2_Interface_001: 378688
vscript_dll: # vscript.dll
VScriptManager010: 204192
vstdlib_s64_dll: # vstdlib_s64.dll
IVALIDATE001: 151552
VEngineCvar002: 22368
worldrenderer_dll: # worldrenderer.dll
WorldRendererMgr001: 136784

View File

@ -0,0 +1,82 @@
---
MaterialParamBuffer_t: # MaterialParam_t
m_value: 8 # CUtlBinaryBlock
MaterialParamFloat_t: # MaterialParam_t
m_flValue: 8 # float
MaterialParamInt_t: # MaterialParam_t
m_nValue: 8 # int32_t
MaterialParamString_t: # MaterialParam_t
m_value: 8 # CUtlString
MaterialParamTexture_t: # MaterialParam_t
m_pValue: 8 # CStrongHandle<InfoForResourceTypeCTextureBase>
MaterialParamVector_t: # MaterialParam_t
m_value: 8 # Vector4D
MaterialParam_t:
m_name: 0 # CUtlString
MaterialResourceData_t:
m_materialName: 0 # CUtlString
m_shaderName: 8 # CUtlString
m_intParams: 16 # CUtlVector<MaterialParamInt_t>
m_floatParams: 40 # CUtlVector<MaterialParamFloat_t>
m_vectorParams: 64 # CUtlVector<MaterialParamVector_t>
m_textureParams: 88 # CUtlVector<MaterialParamTexture_t>
m_dynamicParams: 112 # CUtlVector<MaterialParamBuffer_t>
m_dynamicTextureParams: 136 # CUtlVector<MaterialParamBuffer_t>
m_intAttributes: 160 # CUtlVector<MaterialParamInt_t>
m_floatAttributes: 184 # CUtlVector<MaterialParamFloat_t>
m_vectorAttributes: 208 # CUtlVector<MaterialParamVector_t>
m_textureAttributes: 232 # CUtlVector<MaterialParamTexture_t>
m_stringAttributes: 256 # CUtlVector<MaterialParamString_t>
m_renderAttributesUsed: 280 # CUtlVector<CUtlString>
PostProcessingBloomParameters_t:
m_blendMode: 0 # BloomBlendMode_t
m_flBloomStrength: 4 # float
m_flScreenBloomStrength: 8 # float
m_flBlurBloomStrength: 12 # float
m_flBloomThreshold: 16 # float
m_flBloomThresholdWidth: 20 # float
m_flSkyboxBloomStrength: 24 # float
m_flBloomStartValue: 28 # float
m_flBlurWeight: 32 # float[5]
m_vBlurTint: 52 # Vector[5]
PostProcessingLocalContrastParameters_t:
m_flLocalContrastStrength: 0 # float
m_flLocalContrastEdgeStrength: 4 # float
m_flLocalContrastVignetteStart: 8 # float
m_flLocalContrastVignetteEnd: 12 # float
m_flLocalContrastVignetteBlur: 16 # float
PostProcessingResource_t:
m_bHasTonemapParams: 0 # bool
m_toneMapParams: 4 # PostProcessingTonemapParameters_t
m_bHasBloomParams: 64 # bool
m_bloomParams: 68 # PostProcessingBloomParameters_t
m_bHasVignetteParams: 180 # bool
m_vignetteParams: 184 # PostProcessingVignetteParameters_t
m_bHasLocalContrastParams: 220 # bool
m_localConstrastParams: 224 # PostProcessingLocalContrastParameters_t
m_nColorCorrectionVolumeDim: 244 # int32_t
m_colorCorrectionVolumeData: 248 # CUtlBinaryBlock
m_bHasColorCorrection: 272 # bool
PostProcessingTonemapParameters_t:
m_flExposureBias: 0 # float
m_flShoulderStrength: 4 # float
m_flLinearStrength: 8 # float
m_flLinearAngle: 12 # float
m_flToeStrength: 16 # float
m_flToeNum: 20 # float
m_flToeDenom: 24 # float
m_flWhitePoint: 28 # float
m_flLuminanceSource: 32 # float
m_flExposureBiasShadows: 36 # float
m_flExposureBiasHighlights: 40 # float
m_flMinShadowLum: 44 # float
m_flMaxShadowLum: 48 # float
m_flMinHighlightLum: 52 # float
m_flMaxHighlightLum: 56 # float
PostProcessingVignetteParameters_t:
m_flVignetteStrength: 0 # float
m_vCenter: 4 # Vector2D
m_flRadius: 12 # float
m_flRoundness: 16 # float
m_flFeather: 20 # float
m_vColorTint: 24 # Vector

View File

@ -0,0 +1,3 @@
---
ChangeAccessorFieldPathIndex_t:
m_Value: 0 # int16_t

36
generated/offsets.yaml Normal file
View File

@ -0,0 +1,36 @@
---
client_dll: # client.dll
dwEntityList: 24885344
dwForceAttack: 23838000
dwForceAttack2: 23838144
dwForceBackward: 23838720
dwForceCrouch: 23839440
dwForceForward: 23838576
dwForceJump: 23839296
dwForceLeft: 23838864
dwForceRight: 23839008
dwGameEntitySystem: 26112096
dwGameEntitySystem_getHighestEntityIndex: 5392
dwGameRules: 25261656
dwGlobalVars: 23821984
dwGlowManager: 25261688
dwInterfaceLinkList: 26299640
dwLocalPlayerController: 25210032
dwLocalPlayerPawn: 23866840
dwPlantedC4: 25292088
dwPrediction: 23866528
dwSensitivity: 25267560
dwSensitivity_sensitivity: 64
dwViewAngles: 25668688
dwViewMatrix: 25272272
dwViewRender: 25274448
engine2_dll: # engine2.dll
dwBuildNumber: 4764484
dwNetworkGameClient: 4761848
dwNetworkGameClient_getLocalPlayer: 240
dwNetworkGameClient_maxClients: 592
dwNetworkGameClient_signOnState: 576
dwWindowHeight: 5511788
dwWindowWidth: 5511784
inputsystem_dll: # inputsystem.dll
dwInputSystem: 218976

3152
generated/particles.dll.yaml Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,203 @@
---
CBasePulseGraphInstance:
CPulseCell_Base:
m_nEditorNodeID: 8 # PulseDocNodeID_t
CPulseCell_BaseFlow: # CPulseCell_Base
CPulseCell_BaseValue: # CPulseCell_Base
CPulseCell_BaseYieldingInflow: # CPulseCell_BaseFlow
CPulseCell_Inflow_BaseEntrypoint: # CPulseCell_BaseFlow
m_EntryChunk: 72 # PulseRuntimeChunkIndex_t
m_RegisterMap: 80 # PulseRegisterMap_t
CPulseCell_Inflow_EntOutputHandler: # CPulseCell_Inflow_BaseEntrypoint
m_SourceEntity: 112 # CUtlSymbolLarge
m_SourceOutput: 120 # CUtlSymbolLarge
m_TargetInput: 128 # CUtlSymbolLarge
m_ExpectedParamType: 136 # CPulseValueFullType
CPulseCell_Inflow_EventHandler: # CPulseCell_Inflow_BaseEntrypoint
m_EventName: 112 # CUtlSymbolLarge
CPulseCell_Inflow_GraphHook: # CPulseCell_Inflow_BaseEntrypoint
m_HookName: 112 # CUtlSymbolLarge
CPulseCell_Inflow_Method: # CPulseCell_Inflow_BaseEntrypoint
m_MethodName: 112 # CUtlSymbolLarge
m_Description: 120 # CUtlString
m_bIsPublic: 128 # bool
m_ReturnType: 136 # CPulseValueFullType
m_Args: 152 # CUtlVector<CPulseRuntimeMethodArg>
CPulseCell_Inflow_Wait: # CPulseCell_BaseYieldingInflow
m_WakeResume: 72 # CPulse_ResumePoint
CPulseCell_Inflow_Yield: # CPulseCell_BaseYieldingInflow
m_UnyieldResume: 72 # CPulse_ResumePoint
CPulseCell_Outflow_CycleOrdered: # CPulseCell_BaseFlow
m_Outputs: 72 # CUtlVector<CPulse_OutflowConnection>
CPulseCell_Outflow_CycleOrdered_InstanceState_t:
m_nNextIndex: 0 # int32_t
CPulseCell_Outflow_CycleRandom: # CPulseCell_BaseFlow
m_Outputs: 72 # CUtlVector<CPulse_OutflowConnection>
CPulseCell_Outflow_CycleShuffled: # CPulseCell_BaseFlow
m_Outputs: 72 # CUtlVector<CPulse_OutflowConnection>
CPulseCell_Outflow_CycleShuffled_InstanceState_t:
m_Shuffle: 0 # CUtlVectorFixedGrowable<uint8_t>
m_nNextShuffle: 32 # int32_t
CPulseCell_Outflow_IntSwitch: # CPulseCell_BaseFlow
m_DefaultCaseOutflow: 72 # CPulse_OutflowConnection
m_CaseOutflows: 88 # CUtlVector<CPulse_OutflowConnection>
CPulseCell_Outflow_SimultaneousParallel: # CPulseCell_BaseFlow
m_Outputs: 72 # CUtlVector<CPulse_OutflowConnection>
CPulseCell_Outflow_StringSwitch: # CPulseCell_BaseFlow
m_DefaultCaseOutflow: 72 # CPulse_OutflowConnection
m_CaseOutflows: 88 # CUtlVector<CPulse_OutflowConnection>
CPulseCell_Outflow_TestExplicitYesNo: # CPulseCell_BaseFlow
m_Yes: 72 # CPulse_OutflowConnection
m_No: 88 # CPulse_OutflowConnection
CPulseCell_Outflow_TestRandomYesNo: # CPulseCell_BaseFlow
m_Yes: 72 # CPulse_OutflowConnection
m_No: 88 # CPulse_OutflowConnection
CPulseCell_Step_CallExternalMethod: # CPulseCell_BaseFlow
m_MethodName: 72 # CUtlSymbolLarge
m_ExpectedArgs: 80 # CUtlVector<CPulseRuntimeMethodArg>
CPulseCell_Step_DebugLog: # CPulseCell_BaseFlow
CPulseCell_Step_PublicOutput: # CPulseCell_BaseFlow
m_OutputIndex: 72 # PulseRuntimeOutputIndex_t
CPulseCell_Step_TestDomainCreateFakeEntity: # CPulseCell_BaseFlow
CPulseCell_Step_TestDomainDestroyFakeEntity: # CPulseCell_BaseFlow
CPulseCell_Step_TestDomainEntFire: # CPulseCell_BaseFlow
m_Input: 72 # CUtlString
CPulseCell_Step_TestDomainTracepoint: # CPulseCell_BaseFlow
CPulseCell_Test_MultiInflow_NoDefault: # CPulseCell_BaseFlow
CPulseCell_Test_MultiInflow_WithDefault: # CPulseCell_BaseFlow
CPulseCell_Test_NoInflow: # CPulseCell_BaseFlow
CPulseCell_Val_TestDomainFindEntityByName: # CPulseCell_BaseValue
CPulseCell_Val_TestDomainGetEntityName: # CPulseCell_BaseValue
CPulseCell_Value_RandomInt: # CPulseCell_BaseValue
CPulseCell_Value_TestValue50: # CPulseCell_BaseValue
CPulseExecCursor:
CPulseGraphDef:
m_DomainIdentifier: 8 # CUtlSymbolLarge
m_ParentMapName: 16 # CUtlSymbolLarge
m_Chunks: 24 # CUtlVector<CPulse_Chunk*>
m_Cells: 48 # CUtlVector<CPulseCell_Base*>
m_Vars: 72 # CUtlVector<CPulse_Variable>
m_PublicOutputs: 96 # CUtlVector<CPulse_PublicOutput>
m_InvokeBindings: 120 # CUtlVector<CPulse_InvokeBinding*>
m_CallInfos: 144 # CUtlVector<CPulse_CallInfo*>
m_OutputConnections: 168 # CUtlVector<CPulse_OutputConnection*>
CPulseGraphInstance_TestDomain: # CBasePulseGraphInstance
m_bIsRunningUnitTests: 208 # bool
m_bExplicitTimeStepping: 209 # bool
m_bExpectingToDestroyWithYieldedCursors: 210 # bool
m_nNextValidateIndex: 212 # int32_t
m_Tracepoints: 216 # CUtlVector<CUtlString>
m_bTestYesOrNoPath: 240 # bool
CPulseGraphInstance_TestDomain_Derived: # CPulseGraphInstance_TestDomain
m_nInstanceValueX: 248 # int32_t
CPulseGraphInstance_TurtleGraphics: # CBasePulseGraphInstance
CPulseMathlib:
CPulseRuntimeMethodArg:
m_Name: 0 # CKV3MemberNameWithStorage
m_Description: 56 # CUtlString
m_Type: 64 # CPulseValueFullType
CPulseTestFuncs_DerivedDomain:
CPulseTestFuncs_LibraryA:
CPulseTestScriptLib:
CPulseTurtleGraphicsCursor: # CPulseExecCursor
m_Color: 392 # Color
m_vPos: 396 # Vector2D
m_flHeadingDeg: 404 # float
m_bPenUp: 408 # bool
CPulse_CallInfo:
m_PortName: 0 # CUtlSymbolLarge
m_nEditorNodeID: 8 # PulseDocNodeID_t
m_RegisterMap: 16 # PulseRegisterMap_t
m_CallMethodID: 48 # PulseDocNodeID_t
m_nSrcChunk: 52 # PulseRuntimeChunkIndex_t
m_nSrcInstruction: 56 # int32_t
CPulse_Chunk:
m_Instructions: 0 # CUtlLeanVector<PGDInstruction_t>
m_Registers: 16 # CUtlLeanVector<CPulse_RegisterInfo>
m_InstructionEditorIDs: 32 # CUtlLeanVector<PulseDocNodeID_t>
CPulse_InvokeBinding:
m_RegisterMap: 0 # PulseRegisterMap_t
m_FuncName: 32 # CUtlSymbolLarge
m_nCellIndex: 40 # PulseRuntimeCellIndex_t
m_InstanceType: 48 # CPulseValueFullType
m_nSrcChunk: 64 # PulseRuntimeChunkIndex_t
m_nSrcInstruction: 68 # int32_t
CPulse_OutflowConnection:
m_SourceOutflowName: 0 # CUtlSymbolLarge
m_nDestChunk: 8 # PulseRuntimeChunkIndex_t
m_nInstruction: 12 # int32_t
CPulse_OutputConnection:
m_SourceOutput: 0 # CUtlSymbolLarge
m_TargetEntity: 8 # CUtlSymbolLarge
m_TargetInput: 16 # CUtlSymbolLarge
m_Param: 24 # CUtlSymbolLarge
CPulse_PublicOutput:
m_Name: 0 # CUtlSymbolLarge
m_Description: 8 # CUtlString
m_ParamType: 16 # CPulseValueFullType
CPulse_RegisterInfo:
m_nReg: 0 # PulseRuntimeRegisterIndex_t
m_Type: 8 # CPulseValueFullType
m_OriginName: 24 # CKV3MemberNameWithStorage
m_nWrittenByInstruction: 80 # int32_t
m_nLastReadByInstruction: 84 # int32_t
CPulse_ResumePoint: # CPulse_OutflowConnection
CPulse_Variable:
m_Name: 0 # CUtlSymbolLarge
m_Description: 8 # CUtlString
m_Type: 16 # CPulseValueFullType
m_DefaultValue: 32 # KeyValues3
m_bIsPublic: 50 # bool
CTestDomainDerived_Cursor: # CPulseExecCursor
m_nCursorValueA: 392 # int32_t
m_nCursorValueB: 396 # int32_t
FakeEntity_t:
m_nHandle: 0 # PulseTestEHandle_t
m_Name: 8 # CUtlString
m_Class: 16 # CUtlString
m_bDestroyed: 24 # bool
m_pAssociatedGraphInstance: 32 # CPulseGraphInstance_TestDomain*
m_bFuncWasCalled: 40 # bool
m_fValue: 44 # float
PGDInstruction_t:
m_nCode: 0 # PulseInstructionCode_t
m_nVar: 4 # PulseRuntimeVarIndex_t
m_nReg0: 8 # PulseRuntimeRegisterIndex_t
m_nReg1: 10 # PulseRuntimeRegisterIndex_t
m_nReg2: 12 # PulseRuntimeRegisterIndex_t
m_nInvokeBindingIndex: 16 # PulseRuntimeInvokeIndex_t
m_nChunk: 20 # PulseRuntimeChunkIndex_t
m_nDestInstruction: 24 # int32_t
m_nCallInfoIndex: 28 # PulseRuntimeCallInfoIndex_t
m_Arg0Name: 32 # CUtlSymbolLarge
m_Arg1Name: 40 # CUtlSymbolLarge
m_bLiteralBool: 48 # bool
m_nLiteralInt: 52 # int32_t
m_flLiteralFloat: 56 # float
m_LiteralString: 64 # CBufferString
m_vLiteralVec3: 80 # Vector
PulseDocNodeID_t:
m_Value: 0 # int32_t
PulseRegisterMap_t:
m_Inparams: 0 # KeyValues3
m_Outparams: 16 # KeyValues3
PulseRuntimeCallInfoIndex_t:
m_Value: 0 # int32_t
PulseRuntimeCellIndex_t:
m_Value: 0 # int32_t
PulseRuntimeChunkIndex_t:
m_Value: 0 # int32_t
PulseRuntimeEntrypointIndex_t:
m_Value: 0 # int32_t
PulseRuntimeInvokeIndex_t:
m_Value: 0 # int32_t
PulseRuntimeOutputIndex_t:
m_Value: 0 # int32_t
PulseRuntimeRegisterIndex_t:
m_Value: 0 # int16_t
PulseRuntimeStateOffset_t:
m_Value: 0 # uint16_t
PulseRuntimeVarIndex_t:
m_Value: 0 # int32_t
PulseTestEHandle_t:
m_Value: 0 # int32_t

View File

@ -0,0 +1,16 @@
---
RenderInputLayoutField_t:
m_pSemanticName: 0 # uint8_t[32]
m_nSemanticIndex: 32 # int32_t
m_Format: 36 # uint32_t
m_nOffset: 40 # int32_t
m_nSlot: 44 # int32_t
m_nSlotType: 48 # RenderSlotType_t
m_nInstanceStepRate: 52 # int32_t
VsInputSignatureElement_t:
m_pName: 0 # char[64]
m_pSemantic: 64 # char[64]
m_pD3DSemanticName: 128 # char[64]
m_nD3DSemanticIndex: 192 # int32_t
VsInputSignature_t:
m_elems: 0 # CUtlVector<VsInputSignatureElement_t>

View File

@ -0,0 +1,94 @@
---
AABB_t:
m_vMinBounds: 0 # Vector
m_vMaxBounds: 12 # Vector
CFuseProgram:
m_programBuffer: 0 # CUtlVector<uint8_t>
m_variablesRead: 24 # CUtlVector<FuseVariableIndex_t>
m_variablesWritten: 48 # CUtlVector<FuseVariableIndex_t>
m_nMaxTempVarsUsed: 72 # int32_t
CFuseSymbolTable:
m_constants: 0 # CUtlVector<ConstantInfo_t>
m_variables: 24 # CUtlVector<VariableInfo_t>
m_functions: 48 # CUtlVector<FunctionInfo_t>
m_constantMap: 72 # CUtlHashtable<CUtlStringToken,int32_t>
m_variableMap: 104 # CUtlHashtable<CUtlStringToken,int32_t>
m_functionMap: 136 # CUtlHashtable<CUtlStringToken,int32_t>
ConstantInfo_t:
m_name: 0 # CUtlString
m_nameToken: 8 # CUtlStringToken
m_flValue: 12 # float
FourQuaternions:
x: 0 # fltx4
y: 16 # fltx4
z: 32 # fltx4
w: 48 # fltx4
FunctionInfo_t:
m_name: 8 # CUtlString
m_nameToken: 16 # CUtlStringToken
m_nParamCount: 20 # int32_t
m_nIndex: 24 # FuseFunctionIndex_t
m_bIsPure: 26 # bool
FuseFunctionIndex_t:
m_Value: 0 # uint16_t
FuseVariableIndex_t:
m_Value: 0 # uint16_t
InfoForResourceTypeCAnimData:
InfoForResourceTypeCAnimationGroup:
InfoForResourceTypeCCSGOEconItem:
InfoForResourceTypeCChoreoSceneFileData:
InfoForResourceTypeCCompositeMaterialKit:
InfoForResourceTypeCDACGameDefsData:
InfoForResourceTypeCDOTANovelsList:
InfoForResourceTypeCDOTAPatchNotesList:
InfoForResourceTypeCDotaItemDefinitionResource:
InfoForResourceTypeCEntityLump:
InfoForResourceTypeCJavaScriptResource:
InfoForResourceTypeCModel:
InfoForResourceTypeCMorphSetData:
InfoForResourceTypeCNmClip:
InfoForResourceTypeCNmSkeleton:
InfoForResourceTypeCPanoramaDynamicImages:
InfoForResourceTypeCPanoramaLayout:
InfoForResourceTypeCPanoramaStyle:
InfoForResourceTypeCPhysAggregateData:
InfoForResourceTypeCPostProcessingResource:
InfoForResourceTypeCRenderMesh:
InfoForResourceTypeCResponseRulesList:
InfoForResourceTypeCSequenceGroupData:
InfoForResourceTypeCSmartProp:
InfoForResourceTypeCTextureBase:
InfoForResourceTypeCTypeScriptResource:
InfoForResourceTypeCVDataResource:
InfoForResourceTypeCVMixListResource:
InfoForResourceTypeCVPhysXSurfacePropertiesList:
InfoForResourceTypeCVSoundEventScriptList:
InfoForResourceTypeCVSoundStackScriptList:
InfoForResourceTypeCVoxelVisibility:
InfoForResourceTypeCWorldNode:
InfoForResourceTypeIAnimGraphModelBinding:
InfoForResourceTypeIMaterial2:
InfoForResourceTypeIParticleSnapshot:
InfoForResourceTypeIParticleSystemDefinition:
InfoForResourceTypeIPulseGraphDef:
InfoForResourceTypeIVectorGraphic:
InfoForResourceTypeManifestTestResource_t:
InfoForResourceTypeProceduralTestResource_t:
InfoForResourceTypeTestResource_t:
InfoForResourceTypeVSound_t:
InfoForResourceTypeWorld_t:
ManifestTestResource_t:
m_name: 0 # CUtlString
m_child: 8 # CStrongHandle<InfoForResourceTypeManifestTestResource_t>
PackedAABB_t:
m_nPackedMin: 0 # uint32_t
m_nPackedMax: 4 # uint32_t
TestResource_t:
m_name: 0 # CUtlString
VariableInfo_t:
m_name: 0 # CUtlString
m_nameToken: 8 # CUtlStringToken
m_nIndex: 12 # FuseVariableIndex_t
m_nNumComponents: 14 # uint8_t
m_eVarType: 15 # FuseVariableType_t
m_eAccess: 16 # FuseVariableAccess_t

View File

@ -0,0 +1,36 @@
---
CSSDSEndFrameViewInfo:
m_nViewId: 0 # uint64_t
m_ViewName: 8 # CUtlString
CSSDSMsg_EndFrame:
m_Views: 0 # CUtlVector<CSSDSEndFrameViewInfo>
CSSDSMsg_LayerBase:
m_viewId: 0 # SceneViewId_t
m_ViewName: 16 # CUtlString
m_nLayerIndex: 24 # int32_t
m_nLayerId: 32 # uint64_t
m_LayerName: 40 # CUtlString
m_displayText: 48 # CUtlString
CSSDSMsg_PostLayer: # CSSDSMsg_LayerBase
CSSDSMsg_PreLayer: # CSSDSMsg_LayerBase
CSSDSMsg_ViewRender:
m_viewId: 0 # SceneViewId_t
m_ViewName: 16 # CUtlString
CSSDSMsg_ViewTarget:
m_Name: 0 # CUtlString
m_TextureId: 8 # uint64_t
m_nWidth: 16 # int32_t
m_nHeight: 20 # int32_t
m_nRequestedWidth: 24 # int32_t
m_nRequestedHeight: 28 # int32_t
m_nNumMipLevels: 32 # int32_t
m_nDepth: 36 # int32_t
m_nMultisampleNumSamples: 40 # int32_t
m_nFormat: 44 # int32_t
CSSDSMsg_ViewTargetList:
m_viewId: 0 # SceneViewId_t
m_ViewName: 16 # CUtlString
m_Targets: 24 # CUtlVector<CSSDSMsg_ViewTarget>
SceneViewId_t:
m_nViewId: 0 # uint64_t
m_nFrameCount: 8 # uint64_t

View File

@ -0,0 +1,36 @@
---
CExampleSchemaVData_Monomorphic:
m_nExample1: 0 # int32_t
m_nExample2: 4 # int32_t
CExampleSchemaVData_PolymorphicBase:
m_nBase: 8 # int32_t
CExampleSchemaVData_PolymorphicDerivedA: # CExampleSchemaVData_PolymorphicBase
m_nDerivedA: 16 # int32_t
CExampleSchemaVData_PolymorphicDerivedB: # CExampleSchemaVData_PolymorphicBase
m_nDerivedB: 16 # int32_t
CSchemaSystemInternalRegistration:
m_Vector2D: 0 # Vector2D
m_Vector: 8 # Vector
m_VectorAligned: 32 # VectorAligned
m_Quaternion: 48 # Quaternion
m_QAngle: 64 # QAngle
m_RotationVector: 76 # RotationVector
m_RadianEuler: 88 # RadianEuler
m_DegreeEuler: 100 # DegreeEuler
m_QuaternionStorage: 112 # QuaternionStorage
m_matrix3x4_t: 128 # matrix3x4_t
m_matrix3x4a_t: 176 # matrix3x4a_t
m_Color: 224 # Color
m_Vector4D: 228 # Vector4D
m_CTransform: 256 # CTransform
m_pKeyValues: 288 # KeyValues*
m_CUtlBinaryBlock: 296 # CUtlBinaryBlock
m_CUtlString: 320 # CUtlString
m_CUtlSymbol: 328 # CUtlSymbol
m_stringToken: 332 # CUtlStringToken
m_stringTokenWithStorage: 336 # CUtlStringTokenWithStorage
m_ResourceTypes: 360 # CResourceArray<CResourcePointer<CResourceString>>
m_KV3: 368 # KeyValues3
InfoForResourceTypeCResourceManifestInternal:
ResourceId_t:
m_Value: 0 # uint64_t

5671
generated/server.dll.yaml Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,232 @@
---
CDSPMixgroupModifier:
m_mixgroup: 0 # CUtlString
m_flModifier: 8 # float
m_flModifierMin: 12 # float
m_flSourceModifier: 16 # float
m_flSourceModifierMin: 20 # float
m_flListenerReverbModifierWhenSourceReverbIsActive: 24 # float
CDSPPresetMixgroupModifierTable:
m_table: 0 # CUtlVector<CDspPresetModifierList>
CDspPresetModifierList:
m_dspName: 0 # CUtlString
m_modifiers: 8 # CUtlVector<CDSPMixgroupModifier>
CSosGroupActionLimitSchema: # CSosGroupActionSchema
m_nMaxCount: 24 # int32_t
m_nStopType: 28 # SosActionStopType_t
m_nSortType: 32 # SosActionSortType_t
CSosGroupActionSchema:
m_name: 8 # CUtlString
m_actionType: 16 # ActionType_t
m_actionInstanceType: 20 # ActionType_t
CSosGroupActionSetSoundeventParameterSchema: # CSosGroupActionSchema
m_nMaxCount: 24 # int32_t
m_flMinValue: 28 # float
m_flMaxValue: 32 # float
m_opvarName: 40 # CUtlString
m_nSortType: 48 # SosActionSortType_t
CSosGroupActionTimeLimitSchema: # CSosGroupActionSchema
m_flMaxDuration: 24 # float
CSosGroupBranchPattern:
m_bMatchEventName: 8 # bool
m_bMatchEventSubString: 9 # bool
m_bMatchEntIndex: 10 # bool
m_bMatchOpvar: 11 # bool
CSosGroupMatchPattern: # CSosGroupBranchPattern
m_matchSoundEventName: 16 # CUtlString
m_matchSoundEventSubString: 24 # CUtlString
m_flEntIndex: 32 # float
m_flOpvar: 36 # float
CSosSoundEventGroupListSchema:
m_groupList: 0 # CUtlVector<CSosSoundEventGroupSchema>
CSosSoundEventGroupSchema:
m_name: 0 # CUtlString
m_nType: 8 # SosGroupType_t
m_bIsBlocking: 12 # bool
m_nBlockMaxCount: 16 # int32_t
m_bInvertMatch: 20 # bool
m_matchPattern: 24 # CSosGroupMatchPattern
m_branchPattern: 64 # CSosGroupBranchPattern
m_vActions: 176 # CSosGroupActionSchema*[4]
CSoundEventMetaData:
m_soundEventVMix: 0 # CStrongHandle<InfoForResourceTypeCVMixListResource>
SelectedEditItemInfo_t:
m_EditItems: 0 # CUtlVector<SosEditItemInfo_t>
SosEditItemInfo_t:
itemType: 0 # SosEditItemType_t
itemName: 8 # CUtlString
itemTypeName: 16 # CUtlString
itemKVString: 32 # CUtlString
itemPos: 40 # Vector2D
VMixAutoFilterDesc_t:
m_flEnvelopeAmount: 0 # float
m_flAttackTimeMS: 4 # float
m_flReleaseTimeMS: 8 # float
m_filter: 12 # VMixFilterDesc_t
m_flLFOAmount: 28 # float
m_flLFORate: 32 # float
m_flPhase: 36 # float
m_nLFOShape: 40 # VMixLFOShape_t
VMixBoxverbDesc_t:
m_flSizeMax: 0 # float
m_flSizeMin: 4 # float
m_flComplexity: 8 # float
m_flDiffusion: 12 # float
m_flModDepth: 16 # float
m_flModRate: 20 # float
m_bParallel: 24 # bool
m_filterType: 28 # VMixFilterDesc_t
m_flWidth: 44 # float
m_flHeight: 48 # float
m_flDepth: 52 # float
m_flFeedbackScale: 56 # float
m_flFeedbackWidth: 60 # float
m_flFeedbackHeight: 64 # float
m_flFeedbackDepth: 68 # float
m_flOutputGain: 72 # float
m_flTaps: 76 # float
VMixConvolutionDesc_t:
m_fldbGain: 0 # float
m_flPreDelayMS: 4 # float
m_flWetMix: 8 # float
m_fldbLow: 12 # float
m_fldbMid: 16 # float
m_fldbHigh: 20 # float
m_flLowCutoffFreq: 24 # float
m_flHighCutoffFreq: 28 # float
VMixDelayDesc_t:
m_feedbackFilter: 0 # VMixFilterDesc_t
m_bEnableFilter: 16 # bool
m_flDelay: 20 # float
m_flDirectGain: 24 # float
m_flDelayGain: 28 # float
m_flFeedbackGain: 32 # float
m_flWidth: 36 # float
VMixDiffusorDesc_t:
m_flSize: 0 # float
m_flComplexity: 4 # float
m_flFeedback: 8 # float
m_flOutputGain: 12 # float
VMixDynamics3BandDesc_t:
m_fldbGainOutput: 0 # float
m_flRMSTimeMS: 4 # float
m_fldbKneeWidth: 8 # float
m_flDepth: 12 # float
m_flWetMix: 16 # float
m_flTimeScale: 20 # float
m_flLowCutoffFreq: 24 # float
m_flHighCutoffFreq: 28 # float
m_bPeakMode: 32 # bool
m_bandDesc: 36 # VMixDynamicsBand_t[3]
VMixDynamicsBand_t:
m_fldbGainInput: 0 # float
m_fldbGainOutput: 4 # float
m_fldbThresholdBelow: 8 # float
m_fldbThresholdAbove: 12 # float
m_flRatioBelow: 16 # float
m_flRatioAbove: 20 # float
m_flAttackTimeMS: 24 # float
m_flReleaseTimeMS: 28 # float
m_bEnable: 32 # bool
m_bSolo: 33 # bool
VMixDynamicsCompressorDesc_t:
m_fldbOutputGain: 0 # float
m_fldbCompressionThreshold: 4 # float
m_fldbKneeWidth: 8 # float
m_flCompressionRatio: 12 # float
m_flAttackTimeMS: 16 # float
m_flReleaseTimeMS: 20 # float
m_flRMSTimeMS: 24 # float
m_flWetMix: 28 # float
m_bPeakMode: 32 # bool
VMixDynamicsDesc_t:
m_fldbGain: 0 # float
m_fldbNoiseGateThreshold: 4 # float
m_fldbCompressionThreshold: 8 # float
m_fldbLimiterThreshold: 12 # float
m_fldbKneeWidth: 16 # float
m_flRatio: 20 # float
m_flLimiterRatio: 24 # float
m_flAttackTimeMS: 28 # float
m_flReleaseTimeMS: 32 # float
m_flRMSTimeMS: 36 # float
m_flWetMix: 40 # float
m_bPeakMode: 44 # bool
VMixEQ8Desc_t:
m_stages: 0 # VMixFilterDesc_t[8]
VMixEffectChainDesc_t:
m_flCrossfadeTime: 0 # float
VMixEnvelopeDesc_t:
m_flAttackTimeMS: 0 # float
m_flHoldTimeMS: 4 # float
m_flReleaseTimeMS: 8 # float
VMixFilterDesc_t:
m_nFilterType: 0 # VMixFilterType_t
m_nFilterSlope: 2 # VMixFilterSlope_t
m_bEnabled: 3 # bool
m_fldbGain: 4 # float
m_flCutoffFreq: 8 # float
m_flQ: 12 # float
VMixFreeverbDesc_t:
m_flRoomSize: 0 # float
m_flDamp: 4 # float
m_flWidth: 8 # float
m_flLateReflections: 12 # float
VMixModDelayDesc_t:
m_feedbackFilter: 0 # VMixFilterDesc_t
m_bPhaseInvert: 16 # bool
m_flGlideTime: 20 # float
m_flDelay: 24 # float
m_flOutputGain: 28 # float
m_flFeedbackGain: 32 # float
m_flModRate: 36 # float
m_flModDepth: 40 # float
m_bApplyAntialiasing: 44 # bool
VMixOscDesc_t:
oscType: 0 # VMixLFOShape_t
m_freq: 4 # float
m_flPhase: 8 # float
VMixPannerDesc_t:
m_type: 0 # VMixPannerType_t
m_flStrength: 4 # float
VMixPitchShiftDesc_t:
m_nGrainSampleCount: 0 # int32_t
m_flPitchShift: 4 # float
m_nQuality: 8 # int32_t
m_nProcType: 12 # int32_t
VMixPlateverbDesc_t:
m_flPrefilter: 0 # float
m_flInputDiffusion1: 4 # float
m_flInputDiffusion2: 8 # float
m_flDecay: 12 # float
m_flDamp: 16 # float
m_flFeedbackDiffusion1: 20 # float
m_flFeedbackDiffusion2: 24 # float
VMixShaperDesc_t:
m_nShape: 0 # int32_t
m_fldbDrive: 4 # float
m_fldbOutputGain: 8 # float
m_flWetMix: 12 # float
m_nOversampleFactor: 16 # int32_t
VMixSubgraphSwitchDesc_t:
m_interpolationMode: 0 # VMixSubgraphSwitchInterpolationType_t
m_bOnlyTailsOnFadeOut: 4 # bool
m_flInterpolationTime: 8 # float
VMixUtilityDesc_t:
m_nOp: 0 # VMixChannelOperation_t
m_flInputPan: 4 # float
m_flOutputBalance: 8 # float
m_fldbOutputGain: 12 # float
m_bBassMono: 16 # bool
m_flBassFreq: 20 # float
VMixVocoderDesc_t:
m_nBandCount: 0 # int32_t
m_flBandwidth: 4 # float
m_fldBModGain: 8 # float
m_flFreqRangeStart: 12 # float
m_flFreqRangeEnd: 16 # float
m_fldBUnvoicedGain: 20 # float
m_flAttackTimeMS: 24 # float
m_flReleaseTimeMS: 28 # float
m_nDebugBand: 32 # int32_t
m_bPeakMode: 36 # bool

View File

@ -0,0 +1,572 @@
---
CFeIndexedJiggleBone:
m_nNode: 0 # uint32_t
m_nJiggleParent: 4 # uint32_t
m_jiggleBone: 8 # CFeJiggleBone
CFeJiggleBone:
m_nFlags: 0 # uint32_t
m_flLength: 4 # float
m_flTipMass: 8 # float
m_flYawStiffness: 12 # float
m_flYawDamping: 16 # float
m_flPitchStiffness: 20 # float
m_flPitchDamping: 24 # float
m_flAlongStiffness: 28 # float
m_flAlongDamping: 32 # float
m_flAngleLimit: 36 # float
m_flMinYaw: 40 # float
m_flMaxYaw: 44 # float
m_flYawFriction: 48 # float
m_flYawBounce: 52 # float
m_flMinPitch: 56 # float
m_flMaxPitch: 60 # float
m_flPitchFriction: 64 # float
m_flPitchBounce: 68 # float
m_flBaseMass: 72 # float
m_flBaseStiffness: 76 # float
m_flBaseDamping: 80 # float
m_flBaseMinLeft: 84 # float
m_flBaseMaxLeft: 88 # float
m_flBaseLeftFriction: 92 # float
m_flBaseMinUp: 96 # float
m_flBaseMaxUp: 100 # float
m_flBaseUpFriction: 104 # float
m_flBaseMinForward: 108 # float
m_flBaseMaxForward: 112 # float
m_flBaseForwardFriction: 116 # float
m_flRadius0: 120 # float
m_flRadius1: 124 # float
m_vPoint0: 128 # Vector
m_vPoint1: 140 # Vector
m_nCollisionMask: 152 # uint16_t
CFeMorphLayer:
m_Name: 0 # CUtlString
m_nNameHash: 8 # uint32_t
m_Nodes: 16 # CUtlVector<uint16_t>
m_InitPos: 40 # CUtlVector<Vector>
m_Gravity: 64 # CUtlVector<float>
m_GoalStrength: 88 # CUtlVector<float>
m_GoalDamping: 112 # CUtlVector<float>
CFeNamedJiggleBone:
m_strParentBone: 0 # CUtlString
m_transform: 16 # CTransform
m_nJiggleParent: 48 # uint32_t
m_jiggleBone: 52 # CFeJiggleBone
CFeVertexMapBuildArray:
m_Array: 0 # CUtlVector<FeVertexMapBuild_t*>
CRegionSVM:
m_Planes: 0 # CUtlVector<RnPlane_t>
m_Nodes: 24 # CUtlVector<uint32_t>
CastSphereSATParams_t:
m_vRayStart: 0 # Vector
m_vRayDelta: 12 # Vector
m_flRadius: 24 # float
m_flMaxFraction: 28 # float
m_flScale: 32 # float
m_pHull: 40 # RnHull_t*
CovMatrix3:
m_vDiag: 0 # Vector
m_flXY: 12 # float
m_flXZ: 16 # float
m_flYZ: 20 # float
Dop26_t:
m_flSupport: 0 # float[26]
FeAnimStrayRadius_t:
nNode: 0 # uint16_t[2]
flMaxDist: 4 # float
flRelaxationFactor: 8 # float
FeAxialEdgeBend_t:
te: 0 # float
tv: 4 # float
flDist: 8 # float
flWeight: 12 # float[4]
nNode: 28 # uint16_t[6]
FeBandBendLimit_t:
flDistMin: 0 # float
flDistMax: 4 # float
nNode: 8 # uint16_t[6]
FeBoxRigid_t:
tmFrame2: 0 # CTransform
nNode: 32 # uint16_t
nCollisionMask: 34 # uint16_t
vSize: 36 # Vector
nVertexMapIndex: 48 # uint16_t
nFlags: 50 # uint16_t
FeBuildBoxRigid_t: # FeBoxRigid_t
m_nPriority: 64 # int32_t
m_nVertexMapHash: 68 # uint32_t
FeBuildSphereRigid_t: # FeSphereRigid_t
m_nPriority: 32 # int32_t
m_nVertexMapHash: 36 # uint32_t
FeBuildTaperedCapsuleRigid_t: # FeTaperedCapsuleRigid_t
m_nPriority: 48 # int32_t
m_nVertexMapHash: 52 # uint32_t
FeCollisionPlane_t:
nCtrlParent: 0 # uint16_t
nChildNode: 2 # uint16_t
m_Plane: 4 # RnPlane_t
flStrength: 20 # float
FeCtrlOffset_t:
vOffset: 0 # Vector
nCtrlParent: 12 # uint16_t
nCtrlChild: 14 # uint16_t
FeCtrlOsOffset_t:
nCtrlParent: 0 # uint16_t
nCtrlChild: 2 # uint16_t
FeCtrlSoftOffset_t:
nCtrlParent: 0 # uint16_t
nCtrlChild: 2 # uint16_t
vOffset: 4 # Vector
flAlpha: 16 # float
FeEdgeDesc_t:
nEdge: 0 # uint16_t[2]
nSide: 4 # uint16_t[2][2]
nVirtElem: 12 # uint16_t[2]
FeEffectDesc_t:
sName: 0 # CUtlString
nNameHash: 8 # uint32_t
nType: 12 # int32_t
m_Params: 16 # KeyValues3
FeFitInfluence_t:
nVertexNode: 0 # uint32_t
flWeight: 4 # float
nMatrixNode: 8 # uint32_t
FeFitMatrix_t:
bone: 0 # CTransform
vCenter: 32 # Vector
nEnd: 44 # uint16_t
nNode: 46 # uint16_t
nBeginDynamic: 48 # uint16_t
FeFitWeight_t:
flWeight: 0 # float
nNode: 4 # uint16_t
nDummy: 6 # uint16_t
FeFollowNode_t:
nParentNode: 0 # uint16_t
nChildNode: 2 # uint16_t
flWeight: 4 # float
FeKelagerBend2_t:
flWeight: 0 # float[3]
flHeight0: 12 # float
nNode: 16 # uint16_t[3]
nReserved: 22 # uint16_t
FeMorphLayerDepr_t:
m_Name: 0 # CUtlString
m_nNameHash: 8 # uint32_t
m_Nodes: 16 # CUtlVector<uint16_t>
m_InitPos: 40 # CUtlVector<Vector>
m_Gravity: 64 # CUtlVector<float>
m_GoalStrength: 88 # CUtlVector<float>
m_GoalDamping: 112 # CUtlVector<float>
m_nFlags: 136 # uint32_t
FeNodeBase_t:
nNode: 0 # uint16_t
nDummy: 2 # uint16_t[3]
nNodeX0: 8 # uint16_t
nNodeX1: 10 # uint16_t
nNodeY0: 12 # uint16_t
nNodeY1: 14 # uint16_t
qAdjust: 16 # QuaternionStorage
FeNodeIntegrator_t:
flPointDamping: 0 # float
flAnimationForceAttraction: 4 # float
flAnimationVertexAttraction: 8 # float
flGravity: 12 # float
FeNodeReverseOffset_t:
vOffset: 0 # Vector
nBoneCtrl: 12 # uint16_t
nTargetNode: 14 # uint16_t
FeNodeWindBase_t:
nNodeX0: 0 # uint16_t
nNodeX1: 2 # uint16_t
nNodeY0: 4 # uint16_t
nNodeY1: 6 # uint16_t
FeProxyVertexMap_t:
m_Name: 0 # CUtlString
m_flWeight: 8 # float
FeQuad_t:
nNode: 0 # uint16_t[4]
flSlack: 8 # float
vShape: 12 # Vector4D[4]
FeRigidColliderIndices_t:
m_nTaperedCapsuleRigidIndex: 0 # uint16_t
m_nSphereRigidIndex: 2 # uint16_t
m_nBoxRigidIndex: 4 # uint16_t
m_nCollisionPlaneIndex: 6 # uint16_t
FeRodConstraint_t:
nNode: 0 # uint16_t[2]
flMaxDist: 4 # float
flMinDist: 8 # float
flWeight0: 12 # float
flRelaxationFactor: 16 # float
FeSimdAnimStrayRadius_t:
nNode: 0 # uint16_t[4][2]
flMaxDist: 16 # fltx4
flRelaxationFactor: 32 # fltx4
FeSimdNodeBase_t:
nNode: 0 # uint16_t[4]
nNodeX0: 8 # uint16_t[4]
nNodeX1: 16 # uint16_t[4]
nNodeY0: 24 # uint16_t[4]
nNodeY1: 32 # uint16_t[4]
nDummy: 40 # uint16_t[4]
qAdjust: 48 # FourQuaternions
FeSimdQuad_t:
nNode: 0 # uint16_t[4][4]
f4Slack: 32 # fltx4
vShape: 48 # FourVectors[4]
f4Weights: 240 # fltx4[4]
FeSimdRodConstraint_t:
nNode: 0 # uint16_t[4][2]
f4MaxDist: 16 # fltx4
f4MinDist: 32 # fltx4
f4Weight0: 48 # fltx4
f4RelaxationFactor: 64 # fltx4
FeSimdSpringIntegrator_t:
nNode: 0 # uint16_t[4][2]
flSpringRestLength: 16 # fltx4
flSpringConstant: 32 # fltx4
flSpringDamping: 48 # fltx4
flNodeWeight0: 64 # fltx4
FeSimdTri_t:
nNode: 0 # uint32_t[4][3]
w1: 48 # fltx4
w2: 64 # fltx4
v1x: 80 # fltx4
v2: 96 # FourVectors2D
FeSoftParent_t:
nParent: 0 # int32_t
flAlpha: 4 # float
FeSourceEdge_t:
nNode: 0 # uint16_t[2]
FeSphereRigid_t:
vSphere: 0 # fltx4
nNode: 16 # uint16_t
nCollisionMask: 18 # uint16_t
nVertexMapIndex: 20 # uint16_t
nFlags: 22 # uint16_t
FeSpringIntegrator_t:
nNode: 0 # uint16_t[2]
flSpringRestLength: 4 # float
flSpringConstant: 8 # float
flSpringDamping: 12 # float
flNodeWeight0: 16 # float
FeStiffHingeBuild_t:
flMaxAngle: 0 # float
flStrength: 4 # float
flMotionBias: 8 # float[3]
nNode: 20 # uint16_t[3]
FeTaperedCapsuleRigid_t:
vSphere: 0 # fltx4[2]
nNode: 32 # uint16_t
nCollisionMask: 34 # uint16_t
nVertexMapIndex: 36 # uint16_t
nFlags: 38 # uint16_t
FeTaperedCapsuleStretch_t:
nNode: 0 # uint16_t[2]
nCollisionMask: 4 # uint16_t
nDummy: 6 # uint16_t
flRadius: 8 # float[2]
FeTreeChildren_t:
nChild: 0 # uint16_t[2]
FeTri_t:
nNode: 0 # uint16_t[3]
w1: 8 # float
w2: 12 # float
v1x: 16 # float
v2: 20 # Vector2D
FeTwistConstraint_t:
nNodeOrient: 0 # uint16_t
nNodeEnd: 2 # uint16_t
flTwistRelax: 4 # float
flSwingRelax: 8 # float
FeVertexMapBuild_t:
m_VertexMapName: 0 # CUtlString
m_nNameHash: 8 # uint32_t
m_Color: 12 # Color
m_flVolumetricSolveStrength: 16 # float
m_nScaleSourceNode: 20 # int32_t
m_Weights: 24 # CUtlVector<float>
FeVertexMapDesc_t:
sName: 0 # CUtlString
nNameHash: 8 # uint32_t
nColor: 12 # uint32_t
nFlags: 16 # uint32_t
nVertexBase: 20 # uint16_t
nVertexCount: 22 # uint16_t
nMapOffset: 24 # uint32_t
nNodeListOffset: 28 # uint32_t
vCenterOfMass: 32 # Vector
flVolumetricSolveStrength: 44 # float
nScaleSourceNode: 48 # int16_t
nNodeListCount: 50 # uint16_t
FeWeightedNode_t:
nNode: 0 # uint16_t
nWeight: 2 # uint16_t
FeWorldCollisionParams_t:
flWorldFriction: 0 # float
flGroundFriction: 4 # float
nListBegin: 8 # uint16_t
nListEnd: 10 # uint16_t
FourCovMatrices3:
m_vDiag: 0 # FourVectors
m_flXY: 48 # fltx4
m_flXZ: 64 # fltx4
m_flYZ: 80 # fltx4
FourVectors2D:
x: 0 # fltx4
y: 16 # fltx4
IPhysicsPlayerController:
OldFeEdge_t:
m_flK: 0 # float[3]
invA: 12 # float
t: 16 # float
flThetaRelaxed: 20 # float
flThetaFactor: 24 # float
c01: 28 # float
c02: 32 # float
c03: 36 # float
c04: 40 # float
flAxialModelDist: 44 # float
flAxialModelWeights: 48 # float[4]
m_nNode: 64 # uint16_t[4]
PhysFeModelDesc_t:
m_CtrlHash: 0 # CUtlVector<uint32_t>
m_CtrlName: 24 # CUtlVector<CUtlString>
m_nStaticNodeFlags: 48 # uint32_t
m_nDynamicNodeFlags: 52 # uint32_t
m_flLocalForce: 56 # float
m_flLocalRotation: 60 # float
m_nNodeCount: 64 # uint16_t
m_nStaticNodes: 66 # uint16_t
m_nRotLockStaticNodes: 68 # uint16_t
m_nFirstPositionDrivenNode: 70 # uint16_t
m_nSimdTriCount1: 72 # uint16_t
m_nSimdTriCount2: 74 # uint16_t
m_nSimdQuadCount1: 76 # uint16_t
m_nSimdQuadCount2: 78 # uint16_t
m_nQuadCount1: 80 # uint16_t
m_nQuadCount2: 82 # uint16_t
m_nTreeDepth: 84 # uint16_t
m_nNodeBaseJiggleboneDependsCount: 86 # uint16_t
m_nRopeCount: 88 # uint16_t
m_Ropes: 96 # CUtlVector<uint16_t>
m_NodeBases: 120 # CUtlVector<FeNodeBase_t>
m_SimdNodeBases: 144 # CUtlVector<FeSimdNodeBase_t>
m_Quads: 168 # CUtlVector<FeQuad_t>
m_SimdQuads: 192 # CUtlVector<FeSimdQuad_t>
m_SimdTris: 216 # CUtlVector<FeSimdTri_t>
m_SimdRods: 240 # CUtlVector<FeSimdRodConstraint_t>
m_InitPose: 264 # CUtlVector<CTransform>
m_Rods: 288 # CUtlVector<FeRodConstraint_t>
m_Twists: 312 # CUtlVector<FeTwistConstraint_t>
m_AxialEdges: 336 # CUtlVector<FeAxialEdgeBend_t>
m_NodeInvMasses: 360 # CUtlVector<float>
m_CtrlOffsets: 384 # CUtlVector<FeCtrlOffset_t>
m_CtrlOsOffsets: 408 # CUtlVector<FeCtrlOsOffset_t>
m_FollowNodes: 432 # CUtlVector<FeFollowNode_t>
m_CollisionPlanes: 456 # CUtlVector<FeCollisionPlane_t>
m_NodeIntegrator: 480 # CUtlVector<FeNodeIntegrator_t>
m_SpringIntegrator: 504 # CUtlVector<FeSpringIntegrator_t>
m_SimdSpringIntegrator: 528 # CUtlVector<FeSimdSpringIntegrator_t>
m_WorldCollisionParams: 552 # CUtlVector<FeWorldCollisionParams_t>
m_LegacyStretchForce: 576 # CUtlVector<float>
m_NodeCollisionRadii: 600 # CUtlVector<float>
m_DynNodeFriction: 624 # CUtlVector<float>
m_LocalRotation: 648 # CUtlVector<float>
m_LocalForce: 672 # CUtlVector<float>
m_TaperedCapsuleStretches: 696 # CUtlVector<FeTaperedCapsuleStretch_t>
m_TaperedCapsuleRigids: 720 # CUtlVector<FeTaperedCapsuleRigid_t>
m_SphereRigids: 744 # CUtlVector<FeSphereRigid_t>
m_WorldCollisionNodes: 768 # CUtlVector<uint16_t>
m_TreeParents: 792 # CUtlVector<uint16_t>
m_TreeCollisionMasks: 816 # CUtlVector<uint16_t>
m_TreeChildren: 840 # CUtlVector<FeTreeChildren_t>
m_FreeNodes: 864 # CUtlVector<uint16_t>
m_FitMatrices: 888 # CUtlVector<FeFitMatrix_t>
m_FitWeights: 912 # CUtlVector<FeFitWeight_t>
m_ReverseOffsets: 936 # CUtlVector<FeNodeReverseOffset_t>
m_AnimStrayRadii: 960 # CUtlVector<FeAnimStrayRadius_t>
m_SimdAnimStrayRadii: 984 # CUtlVector<FeSimdAnimStrayRadius_t>
m_KelagerBends: 1008 # CUtlVector<FeKelagerBend2_t>
m_CtrlSoftOffsets: 1032 # CUtlVector<FeCtrlSoftOffset_t>
m_JiggleBones: 1056 # CUtlVector<CFeIndexedJiggleBone>
m_SourceElems: 1080 # CUtlVector<uint16_t>
m_GoalDampedSpringIntegrators: 1104 # CUtlVector<uint32_t>
m_Tris: 1128 # CUtlVector<FeTri_t>
m_nTriCount1: 1152 # uint16_t
m_nTriCount2: 1154 # uint16_t
m_nReservedUint8: 1156 # uint8_t
m_nExtraPressureIterations: 1157 # uint8_t
m_nExtraGoalIterations: 1158 # uint8_t
m_nExtraIterations: 1159 # uint8_t
m_BoxRigids: 1160 # CUtlVector<FeBoxRigid_t>
m_DynNodeVertexSet: 1184 # CUtlVector<uint8_t>
m_VertexSetNames: 1208 # CUtlVector<uint32_t>
m_RigidColliderPriorities: 1232 # CUtlVector<FeRigidColliderIndices_t>
m_MorphLayers: 1256 # CUtlVector<FeMorphLayerDepr_t>
m_MorphSetData: 1280 # CUtlVector<uint8_t>
m_VertexMaps: 1304 # CUtlVector<FeVertexMapDesc_t>
m_VertexMapValues: 1328 # CUtlVector<uint8_t>
m_Effects: 1352 # CUtlVector<FeEffectDesc_t>
m_LockToParent: 1376 # CUtlVector<FeCtrlOffset_t>
m_LockToGoal: 1400 # CUtlVector<uint16_t>
m_DynNodeWindBases: 1424 # CUtlVector<FeNodeWindBase_t>
m_flInternalPressure: 1448 # float
m_flDefaultTimeDilation: 1452 # float
m_flWindage: 1456 # float
m_flWindDrag: 1460 # float
m_flDefaultSurfaceStretch: 1464 # float
m_flDefaultThreadStretch: 1468 # float
m_flDefaultGravityScale: 1472 # float
m_flDefaultVelAirDrag: 1476 # float
m_flDefaultExpAirDrag: 1480 # float
m_flDefaultVelQuadAirDrag: 1484 # float
m_flDefaultExpQuadAirDrag: 1488 # float
m_flRodVelocitySmoothRate: 1492 # float
m_flQuadVelocitySmoothRate: 1496 # float
m_flAddWorldCollisionRadius: 1500 # float
m_flDefaultVolumetricSolveAmount: 1504 # float
m_nRodVelocitySmoothIterations: 1508 # uint16_t
m_nQuadVelocitySmoothIterations: 1510 # uint16_t
RnBlendVertex_t:
m_nWeight0: 0 # uint16_t
m_nIndex0: 2 # uint16_t
m_nWeight1: 4 # uint16_t
m_nIndex1: 6 # uint16_t
m_nWeight2: 8 # uint16_t
m_nIndex2: 10 # uint16_t
m_nFlags: 12 # uint16_t
m_nTargetIndex: 14 # uint16_t
RnBodyDesc_t:
m_sDebugName: 0 # CUtlString
m_vPosition: 8 # Vector
m_qOrientation: 20 # QuaternionStorage
m_vLinearVelocity: 36 # Vector
m_vAngularVelocity: 48 # Vector
m_vLocalMassCenter: 60 # Vector
m_LocalInertiaInv: 72 # Vector[3]
m_flMassInv: 108 # float
m_flGameMass: 112 # float
m_flInertiaScaleInv: 116 # float
m_flLinearDamping: 120 # float
m_flAngularDamping: 124 # float
m_flLinearDrag: 128 # float
m_flAngularDrag: 132 # float
m_flLinearBuoyancyDrag: 136 # float
m_flAngularBuoyancyDrag: 140 # float
m_vLastAwakeForceAccum: 144 # Vector
m_vLastAwakeTorqueAccum: 156 # Vector
m_flBuoyancyFactor: 168 # float
m_flGravityScale: 172 # float
m_flTimeScale: 176 # float
m_nBodyType: 180 # int32_t
m_nGameIndex: 184 # uint32_t
m_nGameFlags: 188 # uint32_t
m_nMinVelocityIterations: 192 # int8_t
m_nMinPositionIterations: 193 # int8_t
m_nMassPriority: 194 # int8_t
m_bEnabled: 195 # bool
m_bSleeping: 196 # bool
m_bIsContinuousEnabled: 197 # bool
m_bDragEnabled: 198 # bool
m_bBuoyancyDragEnabled: 199 # bool
m_bGravityDisabled: 200 # bool
m_bSpeculativeEnabled: 201 # bool
m_bHasShadowController: 202 # bool
RnCapsuleDesc_t: # RnShapeDesc_t
m_Capsule: 16 # RnCapsule_t
RnCapsule_t:
m_vCenter: 0 # Vector[2]
m_flRadius: 24 # float
RnFace_t:
m_nEdge: 0 # uint8_t
RnHalfEdge_t:
m_nNext: 0 # uint8_t
m_nTwin: 1 # uint8_t
m_nOrigin: 2 # uint8_t
m_nFace: 3 # uint8_t
RnHullDesc_t: # RnShapeDesc_t
m_Hull: 16 # RnHull_t
RnHull_t:
m_vCentroid: 0 # Vector
m_flMaxAngularRadius: 12 # float
m_Bounds: 16 # AABB_t
m_vOrthographicAreas: 40 # Vector
m_MassProperties: 52 # matrix3x4_t
m_flVolume: 100 # float
m_Vertices: 104 # CUtlVector<RnVertex_t>
m_VertexPositions: 128 # CUtlVector<Vector>
m_Edges: 152 # CUtlVector<RnHalfEdge_t>
m_Faces: 176 # CUtlVector<RnFace_t>
m_FacePlanes: 200 # CUtlVector<RnPlane_t>
m_nFlags: 224 # uint32_t
m_pRegionSVM: 232 # CRegionSVM*
RnMeshDesc_t: # RnShapeDesc_t
m_Mesh: 16 # RnMesh_t
RnMesh_t:
m_vMin: 0 # Vector
m_vMax: 12 # Vector
m_Nodes: 24 # CUtlVector<RnNode_t>
m_Vertices: 48 # CUtlVectorSIMDPaddedVector
m_Triangles: 72 # CUtlVector<RnTriangle_t>
m_Wings: 96 # CUtlVector<RnWing_t>
m_Materials: 120 # CUtlVector<uint8_t>
m_vOrthographicAreas: 144 # Vector
m_nFlags: 156 # uint32_t
m_nDebugFlags: 160 # uint32_t
RnNode_t:
m_vMin: 0 # Vector
m_nChildren: 12 # uint32_t
m_vMax: 16 # Vector
m_nTriangleOffset: 28 # uint32_t
RnPlane_t:
m_vNormal: 0 # Vector
m_flOffset: 12 # float
RnShapeDesc_t:
m_nCollisionAttributeIndex: 0 # uint32_t
m_nSurfacePropertyIndex: 4 # uint32_t
m_UserFriendlyName: 8 # CUtlString
RnSoftbodyCapsule_t:
m_vCenter: 0 # Vector[2]
m_flRadius: 24 # float
m_nParticle: 28 # uint16_t[2]
RnSoftbodyParticle_t:
m_flMassInv: 0 # float
RnSoftbodySpring_t:
m_nParticle: 0 # uint16_t[2]
m_flLength: 4 # float
RnSphereDesc_t: # RnShapeDesc_t
m_Sphere: 16 # RnSphere_t
RnSphere_t:
m_vCenter: 0 # Vector
m_flRadius: 12 # float
RnTriangle_t:
m_nIndex: 0 # int32_t[3]
RnVertex_t:
m_nEdge: 0 # uint8_t
RnWing_t:
m_nIndex: 0 # int32_t[3]
VertexPositionColor_t:
m_vPosition: 0 # Vector
VertexPositionNormal_t:
m_vPosition: 0 # Vector
m_vNormal: 12 # Vector
constraint_axislimit_t:
flMinRotation: 0 # float
flMaxRotation: 4 # float
flMotorTargetAngSpeed: 8 # float
flMotorMaxTorque: 12 # float
constraint_breakableparams_t:
strength: 0 # float
forceLimit: 4 # float
torqueLimit: 8 # float
bodyMassScale: 12 # float[2]
isActive: 20 # bool
constraint_hingeparams_t:
worldPosition: 0 # Vector
worldAxisDirection: 12 # Vector
hingeAxis: 24 # constraint_axislimit_t
constraint: 40 # constraint_breakableparams_t
vphysics_save_cphysicsbody_t: # RnBodyDesc_t
m_nOldPointer: 208 # uint64_t

View File

@ -0,0 +1,172 @@
---
AggregateLODSetup_t:
m_vLODOrigin: 0 # Vector
m_fMaxObjectScale: 12 # float
m_fSwitchDistances: 16 # CUtlVectorFixedGrowable<float>
AggregateMeshInfo_t:
m_nVisClusterMemberOffset: 0 # uint32_t
m_nVisClusterMemberCount: 4 # uint8_t
m_bHasTransform: 5 # bool
m_nDrawCallIndex: 6 # int16_t
m_nLODSetupIndex: 8 # int16_t
m_nLODGroupMask: 10 # uint8_t
m_vTintColor: 11 # Color
m_objectFlags: 16 # ObjectTypeFlags_t
m_nLightProbeVolumePrecomputedHandshake: 20 # int32_t
AggregateSceneObject_t:
m_allFlags: 0 # ObjectTypeFlags_t
m_anyFlags: 4 # ObjectTypeFlags_t
m_nLayer: 8 # int16_t
m_aggregateMeshes: 16 # CUtlVector<AggregateMeshInfo_t>
m_lodSetups: 40 # CUtlVector<AggregateLODSetup_t>
m_visClusterMembership: 64 # CUtlVector<uint16_t>
m_fragmentTransforms: 88 # CUtlVector<matrix3x4_t>
m_renderableModel: 112 # CStrongHandle<InfoForResourceTypeCModel>
BakedLightingInfo_t:
m_nLightmapVersionNumber: 0 # uint32_t
m_nLightmapGameVersionNumber: 4 # uint32_t
m_vLightmapUvScale: 8 # Vector2D
m_bHasLightmaps: 16 # bool
m_lightMaps: 24 # CUtlVector<CStrongHandle<InfoForResourceTypeCTextureBase>>
BaseSceneObjectOverride_t:
m_nSceneObjectIndex: 0 # uint32_t
CEntityComponent:
CEntityIdentity:
m_nameStringableIndex: 20 # int32_t
m_name: 24 # CUtlSymbolLarge
m_designerName: 32 # CUtlSymbolLarge
m_flags: 48 # uint32_t
m_worldGroupId: 56 # WorldGroupId_t
m_fDataObjectTypes: 60 # uint32_t
m_PathIndex: 64 # ChangeAccessorFieldPathIndex_t
m_pPrev: 88 # CEntityIdentity*
m_pNext: 96 # CEntityIdentity*
m_pPrevByClass: 104 # CEntityIdentity*
m_pNextByClass: 112 # CEntityIdentity*
CEntityInstance:
m_iszPrivateVScripts: 8 # CUtlSymbolLarge
m_pEntity: 16 # CEntityIdentity*
m_CScriptComponent: 40 # CScriptComponent*
CScriptComponent: # CEntityComponent
m_scriptClassName: 48 # CUtlSymbolLarge
CVoxelVisibility:
m_nBaseClusterCount: 64 # uint32_t
m_nPVSBytesPerCluster: 68 # uint32_t
m_vMinBounds: 72 # Vector
m_vMaxBounds: 84 # Vector
m_flGridSize: 96 # float
m_nSkyVisibilityCluster: 100 # uint32_t
m_nSunVisibilityCluster: 104 # uint32_t
m_NodeBlock: 108 # VoxelVisBlockOffset_t
m_RegionBlock: 116 # VoxelVisBlockOffset_t
m_EnclosedClusterListBlock: 124 # VoxelVisBlockOffset_t
m_EnclosedClustersBlock: 132 # VoxelVisBlockOffset_t
m_MasksBlock: 140 # VoxelVisBlockOffset_t
m_nVisBlocks: 148 # VoxelVisBlockOffset_t
ClutterSceneObject_t:
m_Bounds: 0 # AABB_t
m_flags: 24 # ObjectTypeFlags_t
m_nLayer: 28 # int16_t
m_instancePositions: 32 # CUtlVector<Vector>
m_instanceScales: 80 # CUtlVector<float>
m_instanceTintSrgb: 104 # CUtlVector<Color>
m_tiles: 128 # CUtlVector<ClutterTile_t>
m_renderableModel: 152 # CStrongHandle<InfoForResourceTypeCModel>
ClutterTile_t:
m_nFirstInstance: 0 # uint32_t
m_nLastInstance: 4 # uint32_t
m_BoundsWs: 8 # AABB_t
EntityIOConnectionData_t:
m_outputName: 0 # CUtlString
m_targetType: 8 # uint32_t
m_targetName: 16 # CUtlString
m_inputName: 24 # CUtlString
m_overrideParam: 32 # CUtlString
m_flDelay: 40 # float
m_nTimesToFire: 44 # int32_t
EntityKeyValueData_t:
m_connections: 8 # CUtlVector<EntityIOConnectionData_t>
m_keyValuesData: 32 # CUtlBinaryBlock
ExtraVertexStreamOverride_t: # BaseSceneObjectOverride_t
m_nSubSceneObject: 4 # uint32_t
m_nDrawCallIndex: 8 # uint32_t
m_nAdditionalMeshDrawPrimitiveFlags: 12 # MeshDrawPrimitiveFlags_t
m_extraBufferBinding: 16 # CRenderBufferBinding
InfoForResourceTypeVMapResourceData_t:
InfoOverlayData_t:
m_transform: 0 # matrix3x4_t
m_flWidth: 48 # float
m_flHeight: 52 # float
m_flDepth: 56 # float
m_vUVStart: 60 # Vector2D
m_vUVEnd: 68 # Vector2D
m_pMaterial: 80 # CStrongHandle<InfoForResourceTypeIMaterial2>
m_nRenderOrder: 88 # int32_t
m_vTintColor: 92 # Vector4D
m_nSequenceOverride: 108 # int32_t
MaterialOverride_t: # BaseSceneObjectOverride_t
m_nSubSceneObject: 4 # uint32_t
m_nDrawCallIndex: 8 # uint32_t
m_pMaterial: 16 # CStrongHandle<InfoForResourceTypeIMaterial2>
NodeData_t:
m_nParent: 0 # int32_t
m_vOrigin: 4 # Vector
m_vMinBounds: 16 # Vector
m_vMaxBounds: 28 # Vector
m_flMinimumDistance: 40 # float
m_ChildNodeIndices: 48 # CUtlVector<int32_t>
m_worldNodePrefix: 72 # CUtlString
PermEntityLumpData_t:
m_name: 8 # CUtlString
m_hammerUniqueId: 16 # CUtlString
m_childLumps: 24 # CUtlVector<CStrongHandleCopyable<InfoForResourceTypeCEntityLump>>
m_entityKeyValues: 48 # CUtlLeanVector<EntityKeyValueData_t>
SceneObject_t:
m_nObjectID: 0 # uint32_t
m_vTransform: 4 # Vector4D[3]
m_flFadeStartDistance: 52 # float
m_flFadeEndDistance: 56 # float
m_vTintColor: 60 # Vector4D
m_skin: 80 # CUtlString
m_nObjectTypeFlags: 88 # ObjectTypeFlags_t
m_vLightingOrigin: 92 # Vector
m_nOverlayRenderOrder: 104 # int16_t
m_nLODOverride: 106 # int16_t
m_nCubeMapPrecomputedHandshake: 108 # int32_t
m_nLightProbeVolumePrecomputedHandshake: 112 # int32_t
m_renderableModel: 120 # CStrongHandle<InfoForResourceTypeCModel>
m_renderable: 128 # CStrongHandle<InfoForResourceTypeCRenderMesh>
VMapResourceData_t:
VoxelVisBlockOffset_t:
m_nOffset: 0 # uint32_t
m_nElementCount: 4 # uint32_t
WorldBuilderParams_t:
m_flMinDrawVolumeSize: 0 # float
m_bBuildBakedLighting: 4 # bool
m_vLightmapUvScale: 8 # Vector2D
m_nCompileTimestamp: 16 # uint64_t
m_nCompileFingerprint: 24 # uint64_t
WorldNodeOnDiskBufferData_t:
m_nElementCount: 0 # int32_t
m_nElementSizeInBytes: 4 # int32_t
m_inputLayoutFields: 8 # CUtlVector<RenderInputLayoutField_t>
m_pData: 32 # CUtlVector<uint8_t>
WorldNode_t:
m_sceneObjects: 0 # CUtlVector<SceneObject_t>
m_infoOverlays: 24 # CUtlVector<InfoOverlayData_t>
m_visClusterMembership: 48 # CUtlVector<uint16_t>
m_aggregateSceneObjects: 72 # CUtlVector<AggregateSceneObject_t>
m_clutterSceneObjects: 96 # CUtlVector<ClutterSceneObject_t>
m_extraVertexStreamOverrides: 120 # CUtlVector<ExtraVertexStreamOverride_t>
m_materialOverrides: 144 # CUtlVector<MaterialOverride_t>
m_extraVertexStreams: 168 # CUtlVector<WorldNodeOnDiskBufferData_t>
m_layerNames: 192 # CUtlVector<CUtlString>
m_sceneObjectLayerIndices: 216 # CUtlVector<uint8_t>
m_overlayLayerIndices: 240 # CUtlVector<uint8_t>
m_grassFileName: 264 # CUtlString
m_nodeLightingInfo: 272 # BakedLightingInfo_t
World_t:
m_builderParams: 0 # WorldBuilderParams_t
m_worldNodes: 32 # CUtlVector<NodeData_t>
m_worldLightingInfo: 56 # BakedLightingInfo_t
m_entityLumps: 104 # CUtlVector<CStrongHandleCopyable<InfoForResourceTypeCEntityLump>>

View File

@ -43,8 +43,8 @@ impl FileBuilder for JsonFileBuilder {
name: &str,
comment: Option<&str>,
) -> Result<()> {
self.data.entry(name.to_string()).or_default().comment = comment.map(str::to_string);
self.current_namespace = name.to_string();
self.data.entry(name.to_string()).or_default().comment = comment.map(str::to_string);
Ok(())
}

View File

@ -4,6 +4,7 @@ pub use file_builder::FileBuilder;
pub use json_file_builder::JsonFileBuilder;
pub use python_file_builder::PythonFileBuilder;
pub use rust_file_builder::RustFileBuilder;
pub use yaml_file_builder::YamlFileBuilder;
pub use std::io::{Result, Write};
@ -13,6 +14,7 @@ pub mod file_builder;
pub mod json_file_builder;
pub mod python_file_builder;
pub mod rust_file_builder;
pub mod yaml_file_builder;
/// `FileBuilder` is an enum that defines different kinds of file builders.
/// Each variant corresponds to a builder for a particular type of file.
@ -32,6 +34,9 @@ pub enum FileBuilderEnum {
/// Represents a builder for Rust files.
RustFileBuilder(RustFileBuilder),
/// Represents a builder for YAML files.
YamlFileBuilder(YamlFileBuilder),
}
impl FileBuilder for FileBuilderEnum {
@ -77,6 +82,7 @@ impl FileBuilderEnum {
FileBuilderEnum::JsonFileBuilder(builder) => builder,
FileBuilderEnum::PythonFileBuilder(builder) => builder,
FileBuilderEnum::RustFileBuilder(builder) => builder,
FileBuilderEnum::YamlFileBuilder(builder) => builder,
}
}
}

View File

@ -0,0 +1,48 @@
use super::FileBuilder;
use std::io::{Result, Write};
/// A structure representing a builder for Yaml files.
/// The builder implements the `FileBuilder` trait.
#[derive(Clone, Debug, Default, PartialEq)]
pub struct YamlFileBuilder;
impl FileBuilder for YamlFileBuilder {
fn extension(&mut self) -> &str {
"yaml"
}
fn write_top_level(&mut self, output: &mut dyn Write) -> Result<()> {
write!(output, "---\n")
}
fn write_namespace(
&mut self,
output: &mut dyn Write,
name: &str,
comment: Option<&str>,
) -> Result<()> {
let comment = comment.map_or(String::new(), |c| format!(" # {}", c));
write!(output, "{}:{}\n", name, comment)
}
fn write_variable(
&mut self,
output: &mut dyn Write,
name: &str,
value: usize,
comment: Option<&str>,
indentation: Option<usize>,
) -> Result<()> {
let indentation = " ".repeat(indentation.unwrap_or(4));
let comment = comment.map_or(String::new(), |c| format!(" # {}", c));
write!(output, "{}{}: {}{}\n", indentation, name, value, comment)
}
fn write_closure(&mut self, _output: &mut dyn Write, _eof: bool) -> Result<()> {
Ok(())
}
}

View File

@ -14,7 +14,7 @@ use std::mem::offset_of;
#[derive(Debug)]
#[repr(C)]
struct InterfaceNode {
/// Function pointer used to instantiate an instance of the interface.
/// Used to instantiate an instance of the interface.
pub create_fn: *const (),
/// Pointer to the name of the interface.
@ -43,7 +43,7 @@ impl InterfaceNode {
.map(|ptr| ptr.into())
}
/// Returns the name of the interface.
/// Returns the name of the interface with the version number appended.
///
/// E.g. "Source2Client002".
///
@ -100,6 +100,7 @@ pub fn dump_interfaces(
) -> Result<()> {
let mut entries = Entries::new();
// Iterate over all modules in the process, excluding crashhandler64.dll.
for module in process
.modules()?
.iter()
@ -113,6 +114,7 @@ pub fn dump_interfaces(
let mut node = process.read_memory::<*mut InterfaceNode>(create_interface_address)?;
// Iterate over each node in the linked list.
while !node.is_null() {
let instance = unsafe { (*node).instance(process) }?;
let name = unsafe { (*node).name(process) }?;
@ -136,6 +138,7 @@ pub fn dump_interfaces(
indent: Some(indent),
});
// Get the next node in the linked list.
node = unsafe { (*node).next(process) }?;
}
}

View File

@ -140,6 +140,7 @@ fn write_banner_to_file(file: &mut File, file_extension: &str) -> Result<()> {
"'''\nCreated using {}\n{}\n'''\n\n",
REPO_URL, time_now
)),
"yaml" => None,
_ => Some(format!(
"/*\n * Created using {}\n * {}\n */\n\n",
REPO_URL, time_now

View File

@ -136,7 +136,10 @@ mod tests {
use core::arch::x86_64::_bittest;
use serde_json::Value;
use std::ffi::{c_char, c_void};
use std::fs;
use std::mem::offset_of;
use std::thread::sleep;
use std::time::Duration;
@ -149,6 +152,60 @@ mod tests {
Ok(process)
}
fn get_class_field(module_name: &str, class_name: &str, class_key: &str) -> Option<u64> {
let content = match fs::read_to_string(format!("generated/{}.json", module_name)) {
Ok(content) => content,
Err(e) => {
eprintln!("Error reading file: {}", e);
return None;
}
};
let value: Value = match serde_json::from_str(&content) {
Ok(parsed_value) => parsed_value,
Err(e) => {
eprintln!("Error parsing JSON: {}", e);
return None;
}
};
let class_value = &value[class_name];
let class_data = &class_value["data"];
let class_key_value = &class_data[class_key];
let value = class_key_value["value"].as_u64();
value
}
fn get_offset_value(module_name: &str, offset_name: &str) -> Option<u64> {
let content = match fs::read_to_string("generated/offsets.json") {
Ok(content) => content,
Err(e) => {
eprintln!("Error reading file: {}", e);
return None;
}
};
let value: Value = match serde_json::from_str(&content) {
Ok(parsed_value) => parsed_value,
Err(e) => {
eprintln!("Error parsing JSON: {}", e);
return None;
}
};
let class_value = &value[module_name.replace(".", "_")];
let class_data = &class_value["data"];
let class_key_value = &class_data[offset_name];
let value = class_key_value["value"].as_u64();
value
}
#[test]
fn build_number() -> Result<()> {
let process = setup()?;
@ -158,7 +215,11 @@ mod tests {
.expect("Failed to find engine2.dll")
.base();
let build_number = process.read_memory::<u32>(engine_base + 0x48B344)?; // dwBuildNumber
let build_number_offset = get_offset_value("engine2.dll", "dwBuildNumber")
.expect("Failed to find dwBuildNumber offset");
let build_number =
process.read_memory::<u32>(engine_base + build_number_offset as usize)?;
println!("Build number: {}", build_number);
@ -174,14 +235,16 @@ mod tests {
.expect("Failed to find client.dll")
.base();
let force_attack = process.read_memory::<u32>(client_base + 0x16BBD30)?; // dwForceAttack
let force_attack_2 = process.read_memory::<u32>(client_base + 0x16BBDC0)?; // dwForceAttack2
let force_backward = process.read_memory::<u32>(client_base + 0x16BC000)?; // dwForceBackward
let force_crouch = process.read_memory::<u32>(client_base + 0x16BC2D0)?; // dwForceCrouch
let force_forward = process.read_memory::<u32>(client_base + 0x16BBF70)?; // dwForceForward
let force_jump = process.read_memory::<u32>(client_base + 0x16BC240)?; // dwForceJump
let force_left = process.read_memory::<u32>(client_base + 0x16BC090)?; // dwForceLeft
let force_right = process.read_memory::<u32>(client_base + 0x16BC120)?; // dwForceRight
const BUTTONS: [&str; 8] = [
"dwForceAttack",
"dwForceAttack2",
"dwForceBackward",
"dwForceCrouch",
"dwForceForward",
"dwForceJump",
"dwForceLeft",
"dwForceRight",
];
let get_key_state = |value: u32| -> &str {
match value {
@ -191,14 +254,17 @@ mod tests {
}
};
println!("Force attack: {}", get_key_state(force_attack));
println!("Force attack 2: {}", get_key_state(force_attack_2));
println!("Force backward: {}", get_key_state(force_backward));
println!("Force crouch: {}", get_key_state(force_crouch));
println!("Force forward: {}", get_key_state(force_forward));
println!("Force jump: {}", get_key_state(force_jump));
println!("Force left: {}", get_key_state(force_left));
println!("Force right: {}", get_key_state(force_right));
// Sleep for a second so we're able to test.
sleep(Duration::from_secs(1));
for button in &BUTTONS {
let offset = get_offset_value("client.dll", button)
.expect(&format!("Failed to find {} offset", button));
let value = process.read_memory::<u32>(client_base + offset as usize)?;
println!("{}: {}", button, get_key_state(value));
}
Ok(())
}
@ -251,7 +317,11 @@ mod tests {
.expect("Failed to find client.dll")
.base();
let global_vars = process.read_memory::<*const GlobalVarsBase>(client_base + 0x16B7EA0)?; // dwGlobalVars
let global_vars_offset = get_offset_value("client.dll", "dwGlobalVars")
.expect("Failed to find dwGlobalVars offset");
let global_vars = process
.read_memory::<*const GlobalVarsBase>(client_base + global_vars_offset as usize)?;
let current_map_name = unsafe {
(*global_vars)
@ -273,7 +343,10 @@ mod tests {
.expect("Failed to find inputsystem.dll")
.base();
let input_system = input_system_base + 0x35760; // dwInputSystem
let input_system_offset = get_offset_value("inputsystem.dll", "dwInputSystem")
.expect("Failed to find dwInputSystem offset");
let input_system = input_system_base + input_system_offset as usize;
let is_key_down = |key_code: i32| -> bool {
let key_map_element = process
@ -283,10 +356,11 @@ mod tests {
unsafe { _bittest(&key_map_element, key_code & 0x1F) != 0 }
};
// Sleep for a second so we're able to test.
sleep(Duration::from_secs(1));
// See https://www.unknowncheats.me/forum/3855779-post889.html for button codes.
println!("Insert down: {}", is_key_down(73));
println!("INSERT down: {}", is_key_down(73));
Ok(())
}
@ -300,9 +374,19 @@ mod tests {
.expect("Failed to find client.dll")
.base();
let local_player_controller = process.read_memory::<usize>(client_base + 0x180ACB0)?; // dwLocalPlayerController
let local_player_controller_offset =
get_offset_value("client.dll", "dwLocalPlayerController")
.expect("Failed to find dwLocalPlayerController offset");
let player_name = process.read_string((local_player_controller + 0x640).into())?; // m_iszPlayerName
let player_name_offset =
get_class_field("client.dll", "CBasePlayerController", "m_iszPlayerName")
.expect("Failed to find m_iszPlayerName offset");
let local_player_controller =
process.read_memory::<usize>(client_base + local_player_controller_offset as usize)?;
let player_name =
process.read_string((local_player_controller + player_name_offset as usize).into())?;
println!("Local player name: {}", player_name);
@ -311,17 +395,6 @@ mod tests {
#[test]
fn local_player_pawn() -> Result<()> {
let process = setup()?;
let client_base = process
.get_module_by_name("client.dll")
.expect("Failed to find client.dll")
.base();
let local_player_pawn = process.read_memory::<usize>(client_base + 0x16C2DD8)?; // dwLocalPlayerPawn
let game_scene_node = process.read_memory::<usize>((local_player_pawn + 0x310).into())?; // m_pGameSceneNode
#[derive(Debug)]
#[repr(C)]
struct Vector3D {
@ -330,9 +403,34 @@ mod tests {
z: f32,
}
let origin = process.read_memory::<Vector3D>((game_scene_node + 0xC8).into())?; // m_vecAbsOrigin
let process = setup()?;
println!("Local player origin: {:?}", origin);
let client_base = process
.get_module_by_name("client.dll")
.expect("Failed to find client.dll")
.base();
let local_player_pawn_offset = get_offset_value("client.dll", "dwLocalPlayerPawn")
.expect("Failed to find dwLocalPlayerPawn offset");
let game_scene_node_offset =
get_class_field("client.dll", "C_BaseEntity", "m_pGameSceneNode")
.expect("Failed to find m_pGameSceneNode offset");
let absolute_origin_offset =
get_class_field("client.dll", "CGameSceneNode", "m_vecAbsOrigin")
.expect("Failed to find m_vecAbsOrigin offset");
let local_player_pawn =
process.read_memory::<usize>(client_base + local_player_pawn_offset as usize)?;
let game_scene_node = process
.read_memory::<usize>((local_player_pawn + game_scene_node_offset as usize).into())?;
let absolute_origin = process
.read_memory::<Vector3D>((game_scene_node + absolute_origin_offset as usize).into())?;
println!("Local player origin: {:?}", absolute_origin);
Ok(())
}
@ -346,8 +444,17 @@ mod tests {
.expect("Failed to find engine2.dll")
.base();
let window_width = process.read_memory::<u32>(engine_base + 0x541A68)?; // dwWindowWidth
let window_height = process.read_memory::<u32>(engine_base + 0x541A6C)?; // dwWindowHeight
let window_width_offset = get_offset_value("engine2.dll", "dwWindowWidth")
.expect("Failed to find dwLocalPlayerPawn offset");
let window_height_offset = get_offset_value("engine2.dll", "dwWindowHeight")
.expect("Failed to find dwLocalPlayerPawn offset");
let window_width =
process.read_memory::<u32>(engine_base + window_width_offset as usize)?;
let window_height =
process.read_memory::<u32>(engine_base + window_height_offset as usize)?;
println!("Window size: {}x{}", window_width, window_height);

View File

@ -28,7 +28,7 @@ mod util;
#[derive(Debug, Parser)]
#[command(name = "cs2-dumper")]
#[command(author = "a2x")]
#[command(version = "1.1.4")]
#[command(version = "1.1.5")]
struct Args {
/// Dump interfaces.
#[arg(short, long)]
@ -43,13 +43,13 @@ struct Args {
schemas: bool,
/// List of file builders to use.
/// Valid values are: `.cs`, `.hpp`, `.json`, `.py`, `.rs`.
/// Valid values are: `.cs`, `.hpp`, `.json`, `.py`, `.rs`, `.yaml`.
#[arg(
short,
long,
value_parser = parse_extension,
value_delimiter = ',',
default_values = [".cs", ".hpp", ".json", ".py", ".rs"],
default_values = [".cs", ".hpp", ".json", ".py", ".rs", ".yaml"],
)]
builders: Vec<FileBuilderEnum>,
@ -136,6 +136,7 @@ fn parse_extension(extension: &str) -> Result<FileBuilderEnum, &'static str> {
".json" => Ok(FileBuilderEnum::JsonFileBuilder(JsonFileBuilder::default())),
".py" => Ok(FileBuilderEnum::PythonFileBuilder(PythonFileBuilder)),
".rs" => Ok(FileBuilderEnum::RustFileBuilder(RustFileBuilder)),
_ => Err("Invalid extension"),
".yaml" => Ok(FileBuilderEnum::YamlFileBuilder(YamlFileBuilder)),
_ => Err("Invalid file extension"),
}
}