Misc changes

This commit is contained in:
Silent 2016-09-12 00:11:17 +02:00
parent b27ec3a264
commit afd6fc49ea
8 changed files with 16 additions and 22 deletions

View File

@ -193,10 +193,9 @@ void PatchIAT()
IMAGE_NT_HEADERS* ntHeader = (IMAGE_NT_HEADERS*)((DWORD)hInstance + ((IMAGE_DOS_HEADER*)hInstance)->e_lfanew);
// Give _rwcseg proper access rights
WORD NumberOfSections = ntHeader->FileHeader.NumberOfSections;
IMAGE_SECTION_HEADER* pSection = IMAGE_FIRST_SECTION(ntHeader);
for ( WORD i = 0; i < NumberOfSections; i++, pSection++ )
for ( SIZE_T i = 0, j = ntHeader->FileHeader.NumberOfSections; i < j; i++, pSection++ )
{
if ( *(uint64_t*)(pSection->Name) == 0x006765736377725F ) // _rwcseg
{

View File

@ -317,7 +317,6 @@ static char aNoDesktopMode[64];
void Patch_III_10(const RECT& desktop)
{
using namespace Memory;
ScopedUnprotect::Section Protect( (HINSTANCE)0x400000, ".text" );
DrawRect = (void(*)(const CRect&,const CRGBA&))0x51F970;
SetScale = (void(*)(float,float))0x501B80;
@ -498,7 +497,6 @@ void Patch_III_10(const RECT& desktop)
void Patch_III_11(const RECT& desktop)
{
using namespace Memory;
ScopedUnprotect::Section Protect( (HINSTANCE)0x400000, ".text" );
DrawRect = (void(*)(const CRect&,const CRGBA&))0x51FBA0;
SetScale = (void(*)(float,float))0x501C60;
@ -658,7 +656,6 @@ void Patch_III_11(const RECT& desktop)
void Patch_III_Steam(const RECT& desktop)
{
using namespace Memory;
ScopedUnprotect::Section Protect( (HINSTANCE)0x400000, ".text" );
DrawRect = (void(*)(const CRect&,const CRGBA&))0x51FB30;
SetScale = (void(*)(float,float))0x501BF0;
@ -814,6 +811,8 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
GetWindowRect(GetDesktopWindow(), &desktop);
sprintf_s(aNoDesktopMode, "Cannot find %dx%dx32 video mode", desktop.right, desktop.bottom);
ScopedUnprotect::Section Protect( (HINSTANCE)0x400000, ".text" );
if (*(DWORD*)0x5C1E75 == 0xB85548EC) Patch_III_10(desktop);
else if (*(DWORD*)0x5C2135 == 0xB85548EC) Patch_III_11(desktop);
else if (*(DWORD*)0x5C6FD5 == 0xB85548EC) Patch_III_Steam(desktop);

View File

@ -72,6 +72,7 @@
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>StdAfx.h</PrecompiledHeaderFile>
<EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
<FloatingPointModel>Fast</FloatingPointModel>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
@ -100,6 +101,7 @@
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>StdAfx.h</PrecompiledHeaderFile>
<EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
<FloatingPointModel>Fast</FloatingPointModel>
</ClCompile>
<Link>
<GenerateDebugInformation>false</GenerateDebugInformation>

View File

@ -116,7 +116,7 @@ void CEscalator::SwitchOffNoRemove()
if ( !m_bExists )
return;
for ( int i = 0, j = field_7C + field_80 + field_84; i < j; ++i )
for ( ptrdiff_t i = 0, j = field_7C + field_80 + field_84; i < j; ++i )
{
if ( m_pSteps[i] != nullptr )
{

View File

@ -2614,9 +2614,6 @@ static char aNoDesktopMode[64];
void Patch_SA_10()
{
using namespace Memory;
ScopedUnprotect::Section Protect( (HINSTANCE)0x400000, ".text" );
ScopedUnprotect::Section Protect2( (HINSTANCE)0x400000, ".rdata" );
// IsAlreadyRunning needs to be read relatively late - the later, the better
int pIsAlreadyRunning = AddressByRegion_10<int>(0x74872D);
@ -3028,8 +3025,6 @@ void Patch_SA_10()
void Patch_SA_11()
{
using namespace Memory;
ScopedUnprotect::Section Protect( (HINSTANCE)0x400000, ".text" );
ScopedUnprotect::Section Protect2( (HINSTANCE)0x400000, ".rdata" );
// IsAlreadyRunning needs to be read relatively late - the later, the better
int pIsAlreadyRunning = AddressByRegion_11<int>(0x749000);
@ -3369,8 +3364,6 @@ void Patch_SA_11()
void Patch_SA_Steam()
{
using namespace Memory;
ScopedUnprotect::Section Protect( (HINSTANCE)0x400000, ".text" );
ScopedUnprotect::Section Protect2( (HINSTANCE)0x400000, ".rdata" );
// IsAlreadyRunning needs to be read relatively late - the later, the better
ReadCall( 0x7826ED, IsAlreadyRunning );
@ -3725,8 +3718,6 @@ void Patch_SA_Steam()
void Patch_SA_NewSteam_r1()
{
using namespace Memory::DynBase;
ScopedUnprotect::Section Protect( GetModuleHandle( nullptr ), ".text" );
ScopedUnprotect::Section Protect2( GetModuleHandle( nullptr ), ".rdata" );
// Nazi EXE?
if ( *(DWORD*)DynBaseAddress(0x49F810) == 0x64EC8B55 )
@ -3808,8 +3799,6 @@ void Patch_SA_NewSteam_r1()
void Patch_SA_NewSteam_r2()
{
using namespace Memory::DynBase;
ScopedUnprotect::Section Protect( GetModuleHandle( nullptr ), ".text" );
ScopedUnprotect::Section Protect2( GetModuleHandle( nullptr ), ".rdata" );
// (Hopefully) more precise frame limiter
ReadCall( DynBaseAddress(0x77D55F), RsEventHandler );
@ -3997,8 +3986,6 @@ void Patch_SA_NewSteam_r2()
void Patch_SA_NewSteam_r2_lv()
{
using namespace Memory::DynBase;
ScopedUnprotect::Section Protect( GetModuleHandle( nullptr ), ".text" );
ScopedUnprotect::Section Protect2( GetModuleHandle( nullptr ), ".rdata" );
// (Hopefully) more precise frame limiter
ReadCall( DynBaseAddress(0x77D44F), RsEventHandler );
@ -4192,6 +4179,10 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
hDLLModule = hinstDLL;
HINSTANCE hGameHandle = GetModuleHandle( nullptr );
ScopedUnprotect::Section Protect( hGameHandle, ".text" );
ScopedUnprotect::Section Protect2( hGameHandle, ".rdata" );
if (*(DWORD*)DynBaseAddress(0x82457C) == 0x94BF || *(DWORD*)DynBaseAddress(0x8245BC) == 0x94BF) Patch_SA_10();
else if (*(DWORD*)DynBaseAddress(0x8252FC) == 0x94BF || *(DWORD*)DynBaseAddress(0x82533C) == 0x94BF) Patch_SA_11(), MessageBox( nullptr, "You're using a 1.01 executable which is no longer supported by SilentPatch!\n\nI have no idea if anyone was still using it, so if you do - shoot me an e-mail!", "SilentPatch", MB_OK | MB_ICONWARNING );
else if (*(DWORD*)DynBaseAddress(0x85EC4A) == 0x94BF) Patch_SA_Steam();

View File

@ -60,6 +60,7 @@
<PrecompiledHeaderFile>StdAfxSA.h</PrecompiledHeaderFile>
<EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
<AdditionalOptions>/Zc:threadSafeInit- %(AdditionalOptions)</AdditionalOptions>
<FloatingPointModel>Fast</FloatingPointModel>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
@ -92,6 +93,7 @@ copy /y "$(TargetPath)" "D:\gry\GTA San Andreas clean\scripts\newsteam_r2_lowvio
<PrecompiledHeaderFile>StdAfxSA.h</PrecompiledHeaderFile>
<EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
<AdditionalOptions>/Zc:threadSafeInit- %(AdditionalOptions)</AdditionalOptions>
<FloatingPointModel>Fast</FloatingPointModel>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>

View File

@ -195,7 +195,6 @@ static char aNoDesktopMode[64];
void Patch_VC_10(const RECT& desktop)
{
using namespace Memory;
ScopedUnprotect::Section Protect( (HINSTANCE)0x400000, ".text" );
AudioResetTimers = (void(__stdcall*)(unsigned int))0x5F98D0;
PrintString = (void(*)(float,float,const wchar_t*))0x551040;
@ -344,7 +343,6 @@ void Patch_VC_10(const RECT& desktop)
void Patch_VC_11(const RECT& desktop)
{
using namespace Memory;
ScopedUnprotect::Section Protect( (HINSTANCE)0x400000, ".text" );
AudioResetTimers = (void(__stdcall*)(unsigned int))0x5F98F0;
PrintString = (void(*)(float,float,const wchar_t*))0x551060;
@ -484,7 +482,6 @@ void Patch_VC_11(const RECT& desktop)
void Patch_VC_Steam(const RECT& desktop)
{
using namespace Memory;
ScopedUnprotect::Section Protect( (HINSTANCE)0x400000, ".text" );
AudioResetTimers = (void(__stdcall*)(unsigned int))0x5F9530;
PrintString = (void(*)(float,float,const wchar_t*))0x550F30;
@ -645,6 +642,8 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
GetWindowRect(GetDesktopWindow(), &desktop);
sprintf_s(aNoDesktopMode, "Cannot find %dx%dx32 video mode", desktop.right, desktop.bottom);
ScopedUnprotect::Section Protect( (HINSTANCE)0x400000, ".text" );
if(*(DWORD*)0x667BF5 == 0xB85548EC) Patch_VC_10(desktop);
else if(*(DWORD*)0x667C45 == 0xB85548EC) Patch_VC_11(desktop);
else if (*(DWORD*)0x666BA5 == 0xB85548EC) Patch_VC_Steam(desktop);

View File

@ -58,6 +58,7 @@
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>StdAfx.h</PrecompiledHeaderFile>
<EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
<FloatingPointModel>Fast</FloatingPointModel>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
@ -84,6 +85,7 @@
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>StdAfx.h</PrecompiledHeaderFile>
<EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
<FloatingPointModel>Fast</FloatingPointModel>
</ClCompile>
<Link>
<GenerateDebugInformation>false</GenerateDebugInformation>