Skip to content

Commit

Permalink
1.Add HeapPatch.dll
Browse files Browse the repository at this point in the history
2.Connect vbo_studio_t with model_t * instead of studiohdr_t *
  • Loading branch information
hzqst committed Mar 30, 2024
1 parent 811ec64 commit 7b796ad
Show file tree
Hide file tree
Showing 22 changed files with 711 additions and 47 deletions.
4 changes: 3 additions & 1 deletion Build/svencoop/metahook/configs/plugins_goldsrc.lst
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@ Renderer.dll
BulletPhysics.dll
StudioEvents.dll
PrecacheManager.dll
ThreadGuard.dll
ThreadGuard.dll
HeapPatch.dll
ResourceReplacer.dll
4 changes: 2 additions & 2 deletions Plugins/BulletPhysics/privatehook.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@

typedef struct walk_context_s
{
walk_context_s(PVOID a, size_t l, int d) : address(a), len(l), depth(d)
walk_context_s(void *a, size_t l, int d) : address(a), len(l), depth(d)
{

}
PVOID address;
void* address;
size_t len;
int depth;
}walk_context_t;
Expand Down
4 changes: 2 additions & 2 deletions Plugins/CaptionMod/privatefuncs.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ class KeyValues;

typedef struct walk_context_s
{
walk_context_s(PVOID a, size_t l, int d) : address(a), len(l), depth(d)
walk_context_s(void* a, size_t l, int d) : address(a), len(l), depth(d)
{

}
PVOID address;
void* address;
size_t len;
int depth;
}walk_context_t;
Expand Down
136 changes: 136 additions & 0 deletions Plugins/HeapPatch/HeapPatch.vcxproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{8FD80D25-1AFA-44BC-A8EE-DC2BFC9F345F}</ProjectGuid>
<RootNamespace>HeapPatch</RootNamespace>
<Keyword>Win32Proj</Keyword>
<ProjectName>HeapPatch</ProjectName>
<WindowsTargetPlatformVersion>$([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion('Windows', '10.0'))</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(SolutionDir)tools\global.props" Condition="exists('$(SolutionDir)tools\global.props')" />
<Import Project="$(SolutionDir)tools\global_template.props" Condition="!exists('$(SolutionDir)tools\global.props') and exists('$(SolutionDir)tools\global_template.props')" />
<Import Project="$(SolutionDir)tools\global_common.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release_AVX2|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(SolutionDir)tools\global.props" Condition="exists('$(SolutionDir)tools\global.props')" />
<Import Project="$(SolutionDir)tools\global_template.props" Condition="!exists('$(SolutionDir)tools\global.props') and exists('$(SolutionDir)tools\global_template.props')" />
<Import Project="$(SolutionDir)tools\global_common.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(SolutionDir)tools\global.props" Condition="exists('$(SolutionDir)tools\global.props')" />
<Import Project="$(SolutionDir)tools\global_template.props" Condition="!exists('$(SolutionDir)tools\global.props') and exists('$(SolutionDir)tools\global_template.props')" />
<Import Project="$(SolutionDir)tools\global_common.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>15.0.28127.55</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(SolutionDir)include;$(SolutionDir)include\HLSDK\cl_dll;$(SolutionDir)include\HLSDK\common;$(SolutionDir)include\HLSDK\engine;$(SolutionDir)include\HLSDK\pm_shared;$(SolutionDir)include\HLSDK\public;$(SolutionDir)include\SourceSDK;$(SolutionDir)include\SourceSDK\tier0;$(SolutionDir)include\SourceSDK\tier1;$(SolutionDir)include\SourceSDK\tier3;$(SolutionDir)include\SourceSDK\vstdlib;$(SolutionDir)include\Interface;$(CapstoneIncludeDirectory);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;NO_MALLOC_OVERRIDE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader />
<WarningLevel>TurnOffAllWarnings</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<DisableSpecificWarnings>4311;4312;4819;4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
<AdditionalLibraryDirectories>
</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>$(PluginPostBuildCommand)</Command>
</PostBuildEvent>
<PreBuildEvent>
<Command>$(CapstoneCheckRequirements)</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>$(SolutionDir)include;$(SolutionDir)include\HLSDK\cl_dll;$(SolutionDir)include\HLSDK\common;$(SolutionDir)include\HLSDK\engine;$(SolutionDir)include\HLSDK\pm_shared;$(SolutionDir)include\HLSDK\public;$(SolutionDir)include\SourceSDK;$(SolutionDir)include\SourceSDK\tier0;$(SolutionDir)include\SourceSDK\tier1;$(SolutionDir)include\SourceSDK\tier3;$(SolutionDir)include\SourceSDK\vstdlib;$(SolutionDir)include\Interface;$(CapstoneIncludeDirectory);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;NO_MALLOC_OVERRIDE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4311;4312;4819;4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
<AdditionalLibraryDirectories>
</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>$(PluginPostBuildCommand)</Command>
</PostBuildEvent>
<PreBuildEvent>
<Command>$(CapstoneCheckRequirements)</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\include\HLSDK\common\interface.cpp" />
<ClCompile Include="exportfuncs.cpp" />
<ClCompile Include="plugins.cpp" />
<ClCompile Include="privatehook.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="enginedef.h" />
<ClInclude Include="exportfuncs.h" />
<ClInclude Include="plugins.h" />
<ClInclude Include="privatehook.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
134 changes: 134 additions & 0 deletions Plugins/HeapPatch/HeapPatch.vcxproj.filters
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="HLSDK">
<UniqueIdentifier>{5d3687a2-f491-42b9-b273-062e5b432622}</UniqueIdentifier>
</Filter>
<Filter Include="SourceSDK">
<UniqueIdentifier>{9631caec-9849-4cda-9c1b-af45c73cc50b}</UniqueIdentifier>
</Filter>
<Filter Include="SourceSDK\tier0">
<UniqueIdentifier>{c7c845d4-943f-48e8-8085-5c3b6426de66}</UniqueIdentifier>
</Filter>
<Filter Include="SourceSDK\tier1">
<UniqueIdentifier>{40fc4667-af8f-4d53-bc63-fce4e0b8435c}</UniqueIdentifier>
</Filter>
<Filter Include="SourceSDK\vstdlib">
<UniqueIdentifier>{55f7b74e-35f9-4341-a977-4a3cf87e3b2a}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="exportfuncs.cpp">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="plugins.cpp">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="privatehook.cpp">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\include\HLSDK\common\interface.cpp">
<Filter>HLSDK</Filter>
</ClCompile>
<ClCompile Include="ResourceReplacer.cpp">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\tier0\vcrmode.cpp">
<Filter>SourceSDK\tier0</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\tier0\threadtools.cpp">
<Filter>SourceSDK\tier0</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\tier0\platform.cpp">
<Filter>SourceSDK\tier0</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\tier0\minidump.cpp">
<Filter>SourceSDK\tier0</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\tier0\memstd.cpp">
<Filter>SourceSDK\tier0</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\tier0\memdbg.cpp">
<Filter>SourceSDK\tier0</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\tier0\mem_helpers.cpp">
<Filter>SourceSDK\tier0</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\tier0\mem.cpp">
<Filter>SourceSDK\tier0</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\tier0\fasttimer.cpp">
<Filter>SourceSDK\tier0</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\tier0\dbg.cpp">
<Filter>SourceSDK\tier0</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\tier0\cpu.cpp">
<Filter>SourceSDK\tier0</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\tier0\assert_dialog.cpp">
<Filter>SourceSDK\tier0</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\tier1\utlsymbol.cpp">
<Filter>SourceSDK\tier1</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\tier1\utlstring.cpp">
<Filter>SourceSDK\tier1</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\tier1\utlbuffer.cpp">
<Filter>SourceSDK\tier1</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\tier1\strtools.cpp">
<Filter>SourceSDK\tier1</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\tier1\stringpool.cpp">
<Filter>SourceSDK\tier1</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\tier1\memstack.cpp">
<Filter>SourceSDK\tier1</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\tier1\mempool.cpp">
<Filter>SourceSDK\tier1</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\tier1\KeyValues.cpp">
<Filter>SourceSDK\tier1</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\tier1\generichash.cpp">
<Filter>SourceSDK\tier1</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\tier1\characterset.cpp">
<Filter>SourceSDK\tier1</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\vstdlib\KeyValuesSystem.cpp">
<Filter>SourceSDK\vstdlib</Filter>
</ClCompile>
<ClCompile Include="..\..\include\SourceSDK\vstdlib\random.cpp">
<Filter>SourceSDK\vstdlib</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="exportfuncs.h">
<Filter>Header</Filter>
</ClInclude>
<ClInclude Include="plugins.h">
<Filter>Header</Filter>
</ClInclude>
<ClInclude Include="privatehook.h">
<Filter>Header</Filter>
</ClInclude>
<ClInclude Include="ResourceReplacer.h">
<Filter>Header</Filter>
</ClInclude>
<ClInclude Include="enginedef.h">
<Filter>Header</Filter>
</ClInclude>
</ItemGroup>
</Project>
40 changes: 40 additions & 0 deletions Plugins/HeapPatch/enginedef.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#pragma once

#include <com_model.h>

#define MAX_QPATH 64 // max length of a quake game pathname

typedef struct sfx_s
{
char name[MAX_QPATH];
cache_user_t cache;
int servercount;
}sfx_t;

typedef struct sfxcache_s
{
int length;
int loopstart;
int speed;
int width;
int stereo;
byte data[1]; // variable sized
} sfxcache_t;

typedef struct
{
sfx_t* sfx; // sfx number
int leftvol; // 0-255 volume
int rightvol; // 0-255 volume
int end; // end time in global paintsamples
int pos; // sample position in sfx
int looping; // where to loop, -1 = no looping
int entnum; // to allow overriding a specific sound
int entchannel; //
vec3_t origin; // origin of sound effect
vec_t dist_mult; // distance multiplier (attenuation/clipK)
int master_vol; // 0-255 master volume
int isentence;
int iword;
int pitch; // real-time pitch after any modulation or shift by dynamic data
} channel_t;
24 changes: 24 additions & 0 deletions Plugins/HeapPatch/exportfuncs.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#include <metahook.h>
#include <studio.h>
#include <r_studioint.h>
#include "plugins.h"

cl_enginefunc_t gEngfuncs;
engine_studio_api_t IEngineStudio;
r_studio_interface_t **gpStudioInterface;

int HUD_VidInit(void)
{

return gExportfuncs.HUD_VidInit();
}

void HUD_Init(void)
{
return gExportfuncs.HUD_Init();
}

void HUD_Shutdown(void)
{
return gExportfuncs.HUD_Shutdown();
}
8 changes: 8 additions & 0 deletions Plugins/HeapPatch/exportfuncs.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#include <metahook.h>
#include <studio.h>
#include <r_studioint.h>
#include <string>

int HUD_VidInit(void);
void HUD_Init(void);
void HUD_Shutdown(void);
Loading

0 comments on commit 7b796ad

Please sign in to comment.