mirror of
https://github.com/CookiePLMonster/SilentPatch.git
synced 2024-12-29 15:23:02 +05:00
Hooked up debugmenu.dll
Don't include an extra D3DLIGHT on vehicles since we fixed directional already
This commit is contained in:
parent
d3cb0bb72c
commit
2e85ac3dec
4 changed files with 227 additions and 0 deletions
157
SilentPatch/debugmenu_public.h
Normal file
157
SilentPatch/debugmenu_public.h
Normal file
|
@ -0,0 +1,157 @@
|
|||
|
||||
extern "C" {
|
||||
|
||||
typedef void (*TriggerFunc)(void);
|
||||
|
||||
struct DebugMenuEntry;
|
||||
|
||||
typedef DebugMenuEntry *(*DebugMenuAddInt8_TYPE)(const char *path, const char *name, int8_t *ptr, TriggerFunc triggerFunc, int8_t step, int8_t lowerBound, int8_t upperBound, const char * const *strings);
|
||||
typedef DebugMenuEntry *(*DebugMenuAddInt16_TYPE)(const char *path, const char *name, int16_t *ptr, TriggerFunc triggerFunc, int16_t step, int16_t lowerBound, int16_t upperBound, const char * const *strings);
|
||||
typedef DebugMenuEntry *(*DebugMenuAddInt32_TYPE)(const char *path, const char *name, int32_t *ptr, TriggerFunc triggerFunc, int32_t step, int32_t lowerBound, int32_t upperBound, const char * const *strings);
|
||||
typedef DebugMenuEntry *(*DebugMenuAddInt64_TYPE)(const char *path, const char *name, int64_t *ptr, TriggerFunc triggerFunc, int64_t step, int64_t lowerBound, int64_t upperBound, const char * const *strings);
|
||||
typedef DebugMenuEntry *(*DebugMenuAddUInt8_TYPE)(const char *path, const char *name, uint8_t *ptr, TriggerFunc triggerFunc, uint8_t step, uint8_t lowerBound, uint8_t upperBound, const char * const *strings);
|
||||
typedef DebugMenuEntry *(*DebugMenuAddUInt16_TYPE)(const char *path, const char *name, uint16_t *ptr, TriggerFunc triggerFunc, uint16_t step, uint16_t lowerBound, uint16_t upperBound, const char * const *strings);
|
||||
typedef DebugMenuEntry *(*DebugMenuAddUInt32_TYPE)(const char *path, const char *name, uint32_t *ptr, TriggerFunc triggerFunc, uint32_t step, uint32_t lowerBound, uint32_t upperBound, const char * const *strings);
|
||||
typedef DebugMenuEntry *(*DebugMenuAddUInt64_TYPE)(const char *path, const char *name, uint64_t *ptr, TriggerFunc triggerFunc, uint64_t step, uint64_t lowerBound, uint64_t upperBound, const char * const *strings);
|
||||
typedef DebugMenuEntry *(*DebugMenuAddFloat32_TYPE)(const char *path, const char *name, float *ptr, TriggerFunc triggerFunc, float step, float lowerBound, float upperBound);
|
||||
typedef DebugMenuEntry *(*DebugMenuAddFloat64_TYPE)(const char *path, const char *name, double *ptr, TriggerFunc triggerFunc, double step, double lowerBound, double upperBound);
|
||||
typedef DebugMenuEntry *(*DebugMenuAddCmd_TYPE)(const char *path, const char *name, TriggerFunc triggerFunc);
|
||||
typedef void (*DebugMenuEntrySetWrap_TYPE)(DebugMenuEntry *e, bool wrap);
|
||||
typedef void (*DebugMenuEntrySetStrings_TYPE)(DebugMenuEntry *e, const char **strings);
|
||||
typedef void (*DebugMenuEntrySetAddress_TYPE)(DebugMenuEntry *e, void *addr);
|
||||
|
||||
struct DebugMenuAPI
|
||||
{
|
||||
bool isLoaded;
|
||||
DebugMenuAddInt8_TYPE addint8;
|
||||
DebugMenuAddInt16_TYPE addint16;
|
||||
DebugMenuAddInt32_TYPE addint32;
|
||||
DebugMenuAddInt64_TYPE addint64;
|
||||
DebugMenuAddUInt8_TYPE adduint8;
|
||||
DebugMenuAddUInt16_TYPE adduint16;
|
||||
DebugMenuAddUInt32_TYPE adduint32;
|
||||
DebugMenuAddUInt64_TYPE adduint64;
|
||||
DebugMenuAddFloat32_TYPE addfloat32;
|
||||
DebugMenuAddFloat64_TYPE addfloat64;
|
||||
DebugMenuAddCmd_TYPE addcmd;
|
||||
DebugMenuEntrySetWrap_TYPE setwrap;
|
||||
DebugMenuEntrySetStrings_TYPE setstrings;
|
||||
DebugMenuEntrySetAddress_TYPE setaddress;
|
||||
};
|
||||
extern DebugMenuAPI gDebugMenuAPI;
|
||||
|
||||
inline DebugMenuEntry *DebugMenuAddInt8(const char *path, const char *name, int8_t *ptr, TriggerFunc triggerFunc, int8_t step, int8_t lowerBound, int8_t upperBound, const char **strings)
|
||||
{ return gDebugMenuAPI.addint8(path, name, ptr, triggerFunc, step, lowerBound, upperBound, strings); }
|
||||
inline DebugMenuEntry *DebugMenuAddInt16(const char *path, const char *name, int16_t *ptr, TriggerFunc triggerFunc, int16_t step, int16_t lowerBound, int16_t upperBound, const char **strings)
|
||||
{ return gDebugMenuAPI.addint16(path, name, ptr, triggerFunc, step, lowerBound, upperBound, strings); }
|
||||
inline DebugMenuEntry *DebugMenuAddInt32(const char *path, const char *name, int32_t *ptr, TriggerFunc triggerFunc, int32_t step, int32_t lowerBound, int32_t upperBound, const char **strings)
|
||||
{ return gDebugMenuAPI.addint32(path, name, ptr, triggerFunc, step, lowerBound, upperBound, strings); }
|
||||
inline DebugMenuEntry *DebugMenuAddInt64(const char *path, const char *name, int64_t *ptr, TriggerFunc triggerFunc, int64_t step, int64_t lowerBound, int64_t upperBound, const char **strings)
|
||||
{ return gDebugMenuAPI.addint64(path, name, ptr, triggerFunc, step, lowerBound, upperBound, strings); }
|
||||
inline DebugMenuEntry *DebugMenuAddUInt8(const char *path, const char *name, uint8_t *ptr, TriggerFunc triggerFunc, uint8_t step, uint8_t lowerBound, uint8_t upperBound, const char **strings)
|
||||
{ return gDebugMenuAPI.adduint8(path, name, ptr, triggerFunc, step, lowerBound, upperBound, strings); }
|
||||
inline DebugMenuEntry *DebugMenuAddUInt16(const char *path, const char *name, uint16_t *ptr, TriggerFunc triggerFunc, uint16_t step, uint16_t lowerBound, uint16_t upperBound, const char **strings)
|
||||
{ return gDebugMenuAPI.adduint16(path, name, ptr, triggerFunc, step, lowerBound, upperBound, strings); }
|
||||
inline DebugMenuEntry *DebugMenuAddUInt32(const char *path, const char *name, uint32_t *ptr, TriggerFunc triggerFunc, uint32_t step, uint32_t lowerBound, uint32_t upperBound, const char **strings)
|
||||
{ return gDebugMenuAPI.adduint32(path, name, ptr, triggerFunc, step, lowerBound, upperBound, strings); }
|
||||
inline DebugMenuEntry *DebugMenuAddUInt64(const char *path, const char *name, uint64_t *ptr, TriggerFunc triggerFunc, uint64_t step, uint64_t lowerBound, uint64_t upperBound, const char **strings)
|
||||
{ return gDebugMenuAPI.adduint64(path, name, ptr, triggerFunc, step, lowerBound, upperBound, strings); }
|
||||
inline DebugMenuEntry *DebugMenuAddFloat32(const char *path, const char *name, float *ptr, TriggerFunc triggerFunc, float step, float lowerBound, float upperBound)
|
||||
{ return gDebugMenuAPI.addfloat32(path, name, ptr, triggerFunc, step, lowerBound, upperBound); }
|
||||
inline DebugMenuEntry *DebugMenuAddFloat64(const char *path, const char *name, double *ptr, TriggerFunc triggerFunc, double step, double lowerBound, double upperBound)
|
||||
{ return gDebugMenuAPI.addfloat64(path, name, ptr, triggerFunc, step, lowerBound, upperBound); }
|
||||
inline DebugMenuEntry *DebugMenuAddCmd(const char *path, const char *name, TriggerFunc triggerFunc)
|
||||
{ return gDebugMenuAPI.addcmd(path, name, triggerFunc); }
|
||||
inline void DebugMenuEntrySetWrap(DebugMenuEntry *e, bool wrap)
|
||||
{ gDebugMenuAPI.setwrap(e, wrap); }
|
||||
inline void DebugMenuEntrySetStrings(DebugMenuEntry *e, const char **strings)
|
||||
{ gDebugMenuAPI.setstrings(e, strings); }
|
||||
inline void DebugMenuEntrySetAddress(DebugMenuEntry *e, void *addr)
|
||||
{ gDebugMenuAPI.setaddress(e, addr); }
|
||||
|
||||
#include <tchar.h>
|
||||
|
||||
inline bool DebugMenuLoad(void)
|
||||
{
|
||||
if(gDebugMenuAPI.isLoaded)
|
||||
return true;
|
||||
HMODULE mod = LoadLibrary( TEXT("debugmenu") );
|
||||
if( mod == nullptr )
|
||||
{
|
||||
TCHAR modulePath[MAX_PATH];
|
||||
GetModuleFileName( GetModuleHandle(NULL), modulePath, MAX_PATH );
|
||||
PathRemoveFileSpec( modulePath );
|
||||
PathAppend( modulePath, TEXT("debugmenu") );
|
||||
mod = LoadLibrary( modulePath );
|
||||
|
||||
if( mod == nullptr ) return false;
|
||||
}
|
||||
gDebugMenuAPI.addint8 = (DebugMenuAddInt8_TYPE)GetProcAddress(mod, "DebugMenuAddInt8");
|
||||
gDebugMenuAPI.addint16 = (DebugMenuAddInt16_TYPE)GetProcAddress(mod, "DebugMenuAddInt16");
|
||||
gDebugMenuAPI.addint32 = (DebugMenuAddInt32_TYPE)GetProcAddress(mod, "DebugMenuAddInt32");
|
||||
gDebugMenuAPI.addint64 = (DebugMenuAddInt64_TYPE)GetProcAddress(mod, "DebugMenuAddInt64");
|
||||
gDebugMenuAPI.adduint8 = (DebugMenuAddUInt8_TYPE)GetProcAddress(mod, "DebugMenuAddUInt8");
|
||||
gDebugMenuAPI.adduint16 = (DebugMenuAddUInt16_TYPE)GetProcAddress(mod, "DebugMenuAddUInt16");
|
||||
gDebugMenuAPI.adduint32 = (DebugMenuAddUInt32_TYPE)GetProcAddress(mod, "DebugMenuAddUInt32");
|
||||
gDebugMenuAPI.adduint64 = (DebugMenuAddUInt64_TYPE)GetProcAddress(mod, "DebugMenuAddUInt64");
|
||||
gDebugMenuAPI.addfloat32 = (DebugMenuAddFloat32_TYPE)GetProcAddress(mod, "DebugMenuAddFloat32");
|
||||
gDebugMenuAPI.addfloat64 = (DebugMenuAddFloat64_TYPE)GetProcAddress(mod, "DebugMenuAddFloat64");
|
||||
gDebugMenuAPI.addcmd = (DebugMenuAddCmd_TYPE)GetProcAddress(mod, "DebugMenuAddCmd");
|
||||
gDebugMenuAPI.setwrap = (DebugMenuEntrySetWrap_TYPE)GetProcAddress(mod, "DebugMenuEntrySetWrap");
|
||||
gDebugMenuAPI.setstrings = (DebugMenuEntrySetStrings_TYPE)GetProcAddress(mod, "DebugMenuEntrySetStrings");
|
||||
gDebugMenuAPI.setaddress = (DebugMenuEntrySetAddress_TYPE)GetProcAddress(mod, "DebugMenuEntrySetAddress");
|
||||
gDebugMenuAPI.isLoaded = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Also overload them for simplicity
|
||||
|
||||
inline DebugMenuEntry *DebugMenuAddVar(const char *path, const char *name, int8_t *ptr, TriggerFunc triggerFunc, int8_t step, int8_t lowerBound, int8_t upperBound, const char * const *strings)
|
||||
{ return gDebugMenuAPI.addint8(path, name, ptr, triggerFunc, step, lowerBound, upperBound, strings); }
|
||||
inline DebugMenuEntry *DebugMenuAddVar(const char *path, const char *name, int16_t *ptr, TriggerFunc triggerFunc, int16_t step, int16_t lowerBound, int16_t upperBound, const char * const *strings)
|
||||
{ return gDebugMenuAPI.addint16(path, name, ptr, triggerFunc, step, lowerBound, upperBound, strings); }
|
||||
inline DebugMenuEntry *DebugMenuAddVar(const char *path, const char *name, int32_t *ptr, TriggerFunc triggerFunc, int32_t step, int32_t lowerBound, int32_t upperBound, const char * const *strings)
|
||||
{ return gDebugMenuAPI.addint32(path, name, ptr, triggerFunc, step, lowerBound, upperBound, strings); }
|
||||
inline DebugMenuEntry *DebugMenuAddVar(const char *path, const char *name, int64_t *ptr, TriggerFunc triggerFunc, int64_t step, int64_t lowerBound, int64_t upperBound, const char * const *strings)
|
||||
{ return gDebugMenuAPI.addint64(path, name, ptr, triggerFunc, step, lowerBound, upperBound, strings); }
|
||||
inline DebugMenuEntry *DebugMenuAddVar(const char *path, const char *name, uint8_t *ptr, TriggerFunc triggerFunc, uint8_t step, uint8_t lowerBound, uint8_t upperBound, const char * const *strings)
|
||||
{ return gDebugMenuAPI.adduint8(path, name, ptr, triggerFunc, step, lowerBound, upperBound, strings); }
|
||||
inline DebugMenuEntry *DebugMenuAddVar(const char *path, const char *name, uint16_t *ptr, TriggerFunc triggerFunc, uint16_t step, uint16_t lowerBound, uint16_t upperBound, const char * const *strings)
|
||||
{ return gDebugMenuAPI.adduint16(path, name, ptr, triggerFunc, step, lowerBound, upperBound, strings); }
|
||||
inline DebugMenuEntry *DebugMenuAddVar(const char *path, const char *name, uint32_t *ptr, TriggerFunc triggerFunc, uint32_t step, uint32_t lowerBound, uint32_t upperBound, const char * const *strings)
|
||||
{ return gDebugMenuAPI.adduint32(path, name, ptr, triggerFunc, step, lowerBound, upperBound, strings); }
|
||||
inline DebugMenuEntry *DebugMenuAddVar(const char *path, const char *name, uint64_t *ptr, TriggerFunc triggerFunc, uint64_t step, uint64_t lowerBound, uint64_t upperBound, const char * const *strings)
|
||||
{ return gDebugMenuAPI.adduint64(path, name, ptr, triggerFunc, step, lowerBound, upperBound, strings); }
|
||||
inline DebugMenuEntry *DebugMenuAddVar(const char *path, const char *name, float *ptr, TriggerFunc triggerFunc, float step, float lowerBound, float upperBound)
|
||||
{ return gDebugMenuAPI.addfloat32(path, name, ptr, triggerFunc, step, lowerBound, upperBound); }
|
||||
inline DebugMenuEntry *DebugMenuAddVar(const char *path, const char *name, double *ptr, TriggerFunc triggerFunc, double step, double lowerBound, double upperBound)
|
||||
{ return gDebugMenuAPI.addfloat64(path, name, ptr, triggerFunc, step, lowerBound, upperBound); }
|
||||
|
||||
inline DebugMenuEntry *DebugMenuAddVarBool32(const char *path, const char *name, int32_t *ptr, TriggerFunc triggerFunc)
|
||||
{
|
||||
static const char * const boolstr[] = { "Off", "On" };
|
||||
DebugMenuEntry *e = DebugMenuAddVar(path, name, ptr, triggerFunc, 1, 0, 1, boolstr);
|
||||
DebugMenuEntrySetWrap(e, true);
|
||||
return e;
|
||||
}
|
||||
inline DebugMenuEntry *DebugMenuAddVarBool16(const char *path, const char *name, int16_t *ptr, TriggerFunc triggerFunc)
|
||||
{
|
||||
static const char * const boolstr[] = { "Off", "On" };
|
||||
DebugMenuEntry *e = DebugMenuAddVar(path, name, ptr, triggerFunc, 1, 0, 1, boolstr);
|
||||
DebugMenuEntrySetWrap(e, true);
|
||||
return e;
|
||||
}
|
||||
inline DebugMenuEntry *DebugMenuAddVarBool8(const char *path, const char *name, int8_t *ptr, TriggerFunc triggerFunc)
|
||||
{
|
||||
static const char * const boolstr[] = { "Off", "On" };
|
||||
DebugMenuEntry *e = DebugMenuAddVar(path, name, ptr, triggerFunc, 1, 0, 1, boolstr);
|
||||
DebugMenuEntrySetWrap(e, true);
|
||||
return e;
|
||||
}
|
||||
|
||||
inline DebugMenuEntry *DebugMenuAddVar(const char *path, const char *name, bool *ptr, TriggerFunc triggerFunc)
|
||||
{
|
||||
return DebugMenuAddVarBool8( path, name, reinterpret_cast<int8_t*>(ptr), triggerFunc );
|
||||
}
|
|
@ -21,6 +21,8 @@
|
|||
#include "DelimStringReader.h"
|
||||
#include "ASIModuleHandle.h"
|
||||
|
||||
#include "debugmenu_public.h"
|
||||
|
||||
#pragma warning(disable:4733)
|
||||
|
||||
// RW wrappers
|
||||
|
@ -301,6 +303,10 @@ RpLight*& pAmbient = **AddressByVersion<RpLight***>(0x5BA53A, 0x735D11, 0x5D9
|
|||
CLinkListSA<CPed*>& ms_weaponPedsForPC = **AddressByVersion<CLinkListSA<CPed*>**>(0x53EACA, 0x53EF6A, 0x551101);
|
||||
CLinkListSA<AlphaObjectInfo>& m_alphaList = **AddressByVersion<CLinkListSA<AlphaObjectInfo>**>(0x733A4D, 0x73427D, 0x76DCA3);
|
||||
|
||||
#ifndef NDEBUG
|
||||
DebugMenuAPI gDebugMenuAPI;
|
||||
#endif
|
||||
|
||||
|
||||
// Custom variables
|
||||
static float fSunFarClip;
|
||||
|
@ -1175,6 +1181,10 @@ static void DoPCScreenChange_Mod()
|
|||
}
|
||||
}
|
||||
|
||||
#ifndef NDEBUG
|
||||
static bool bUseAaronSun = true;
|
||||
static bool bFixedPCVehLight = true;
|
||||
#endif
|
||||
static CVector curVecToSun;
|
||||
static void (*orgSetLightsWithTimeOfDayColour)( RpWorld* );
|
||||
static void SetLightsWithTimeOfDayColour_SilentPatch( RpWorld* world )
|
||||
|
@ -1182,7 +1192,13 @@ static void SetLightsWithTimeOfDayColour_SilentPatch( RpWorld* world )
|
|||
static CVector* const VectorToSun = *AddressByVersion<CVector**>( 0x6FC5B7 + 3, 0, 0 ); // TODO: DO
|
||||
static int& CurrentStoredValue = **AddressByVersion<int**>( 0x6FC632 + 1, 0, 0 ); // TODO: DO
|
||||
|
||||
#ifndef NDEBUG
|
||||
static CVector& vecDirnLightToSun = *(CVector*)0xB7CB14;
|
||||
curVecToSun = bUseAaronSun ? VectorToSun[CurrentStoredValue] : vecDirnLightToSun;
|
||||
#else
|
||||
curVecToSun = VectorToSun[CurrentStoredValue];
|
||||
#endif
|
||||
|
||||
orgSetLightsWithTimeOfDayColour( world );
|
||||
}
|
||||
|
||||
|
@ -2345,6 +2361,12 @@ BOOL InjectDelayedPatches_10()
|
|||
ReadRotorFixExceptions(wcModulePath);
|
||||
bool bHookDoubleRwheels = ReadDoubleRearWheels(wcModulePath);
|
||||
|
||||
#ifndef NDEBUG
|
||||
const bool bHasDebugMenu = DebugMenuLoad();
|
||||
#else
|
||||
constexpr bool bHasDebugMenu = false;
|
||||
#endif
|
||||
|
||||
if ( GetPrivateProfileIntW(L"SilentPatch", L"SunSizeHack", -1, wcModulePath) == 1 )
|
||||
{
|
||||
// PS2 sun - more
|
||||
|
@ -2583,6 +2605,39 @@ BOOL InjectDelayedPatches_10()
|
|||
Patch<const void*>( 0x735618 + 2, &curVecToSun.x );
|
||||
Patch<const void*>( 0x73561E + 2, &curVecToSun.y );
|
||||
Patch<const void*>( 0x735624 + 1, &curVecToSun.z );
|
||||
#ifndef NDEBUG
|
||||
if ( bHasDebugMenu )
|
||||
{
|
||||
DebugMenuAddVar( "SilentPatch", "Directional from sun", &bUseAaronSun, nullptr );
|
||||
|
||||
// Switch for fixed PC vehicle lighting
|
||||
DebugMenuAddVar( "SilentPatch", "Fixed PC vehicle light", &bFixedPCVehLight, []() {
|
||||
if ( bFixedPCVehLight )
|
||||
{
|
||||
Memory::VP::Patch<float>(0x5D88D1 + 6, 0);
|
||||
Memory::VP::Patch<float>(0x5D88DB + 6, 0);
|
||||
Memory::VP::Patch<float>(0x5D88E5 + 6, 0);
|
||||
|
||||
Memory::VP::Patch<float>(0x5D88F9 + 6, 0);
|
||||
Memory::VP::Patch<float>(0x5D8903 + 6, 0);
|
||||
Memory::VP::Patch<float>(0x5D890D + 6, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
Memory::VP::Patch<float>(0x5D88D1 + 6, 0.25f);
|
||||
Memory::VP::Patch<float>(0x5D88DB + 6, 0.25f);
|
||||
Memory::VP::Patch<float>(0x5D88E5 + 6, 0.25f);
|
||||
|
||||
Memory::VP::Patch<float>(0x5D88F9 + 6, 0.75f);
|
||||
Memory::VP::Patch<float>(0x5D8903 + 6, 0.75f);
|
||||
Memory::VP::Patch<float>(0x5D890D + 6, 0.75f);
|
||||
}
|
||||
} );
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
FLAUtils::Init();
|
||||
|
||||
|
@ -3560,6 +3615,17 @@ void Patch_SA_10()
|
|||
Nop( 0x590ADE, 1 );
|
||||
InjectHook( 0x590ADE + 1, DoPCScreenChange_Mod, PATCH_CALL );
|
||||
Patch<const void*>( 0x590042 + 2, &currDisplayedSplash_ForLastSplash );
|
||||
|
||||
|
||||
// Don't include an extra D3DLIGHT on vehicles since we fixed directional already
|
||||
// By aap
|
||||
Patch<float>(0x5D88D1 + 6, 0);
|
||||
Patch<float>(0x5D88DB + 6, 0);
|
||||
Patch<float>(0x5D88E5 + 6, 0);
|
||||
|
||||
Patch<float>(0x5D88F9 + 6, 0);
|
||||
Patch<float>(0x5D8903 + 6, 0);
|
||||
Patch<float>(0x5D890D + 6, 0);
|
||||
}
|
||||
|
||||
void Patch_SA_11()
|
||||
|
|
|
@ -236,6 +236,7 @@ copy /y "$(TargetPath)" "D:\gry\GTA San Andreas clean\scripts\newsteam_r2_lowvio
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\SilentPatch\ASIModuleHandle.h" />
|
||||
<ClInclude Include="..\SilentPatch\debugmenu_public.h" />
|
||||
<ClInclude Include="..\SilentPatch\DelimStringReader.h" />
|
||||
<ClInclude Include="..\SilentPatch\FLAC\callback.h" />
|
||||
<ClInclude Include="..\SilentPatch\FLAC\export.h" />
|
||||
|
|
|
@ -155,6 +155,9 @@
|
|||
<ClInclude Include="..\SilentPatch\ASIModuleHandle.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\SilentPatch\debugmenu_public.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="Shaders.rc">
|
||||
|
|
Loading…
Reference in a new issue