mirror of
https://github.com/CookiePLMonster/SilentPatch.git
synced 2024-12-29 15:23:02 +05:00
Extras working correctly on bikes - VC
This commit is contained in:
parent
f853e96918
commit
fcc799645f
6 changed files with 71 additions and 0 deletions
|
@ -1,6 +1,8 @@
|
||||||
#ifndef __GENERAL
|
#ifndef __GENERAL
|
||||||
#define __GENERAL
|
#define __GENERAL
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
class CRGBA
|
class CRGBA
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
24
SilentPatchVC/ModelInfoVC.cpp
Normal file
24
SilentPatchVC/ModelInfoVC.cpp
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
#include "StdAfx.h"
|
||||||
|
#include "ModelInfoVC.h"
|
||||||
|
|
||||||
|
#include "VehicleVC.h"
|
||||||
|
|
||||||
|
auto GetFrameFromId = hook::get_pattern<RwFrame*(RpClump*,int)>( "8B 4C 24 0C 89 04 24", -7 );
|
||||||
|
|
||||||
|
RwFrame* CVehicleModelInfo::GetExtrasFrame( RpClump* clump )
|
||||||
|
{
|
||||||
|
RwFrame* frame;
|
||||||
|
if ( m_dwType == VEHICLE_AUTOMOBILE || m_dwType == VEHICLE_BIKE )
|
||||||
|
{
|
||||||
|
frame = GetFrameFromId( clump, 1 );
|
||||||
|
if ( frame == nullptr )
|
||||||
|
{
|
||||||
|
frame = RpClumpGetFrame( clump );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
frame = RpClumpGetFrame( clump );
|
||||||
|
}
|
||||||
|
return frame;
|
||||||
|
}
|
18
SilentPatchVC/ModelInfoVC.h
Normal file
18
SilentPatchVC/ModelInfoVC.h
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "General.h"
|
||||||
|
#include <rwcore.h>
|
||||||
|
#include <rpworld.h>
|
||||||
|
|
||||||
|
class CVehicleModelInfo
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
uint8_t __pad1[60];
|
||||||
|
unsigned int m_dwType;
|
||||||
|
uint8_t __pad2[308];
|
||||||
|
|
||||||
|
public:
|
||||||
|
RwFrame* GetExtrasFrame( RpClump* clump );
|
||||||
|
};
|
||||||
|
|
||||||
|
static_assert(sizeof(CVehicleModelInfo) == 0x174, "Wrong size: CvehicleModelInfo");
|
|
@ -5,6 +5,7 @@
|
||||||
#include "Common.h"
|
#include "Common.h"
|
||||||
#include "Common_ddraw.h"
|
#include "Common_ddraw.h"
|
||||||
#include "General.h"
|
#include "General.h"
|
||||||
|
#include "ModelInfoVC.h"
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
|
@ -146,6 +147,17 @@ void __declspec(naked) SubtitlesShadowFix()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void __declspec(naked) CreateInstance_BikeFix()
|
||||||
|
{
|
||||||
|
_asm
|
||||||
|
{
|
||||||
|
push eax
|
||||||
|
mov ecx, ebp
|
||||||
|
call CVehicleModelInfo::GetExtrasFrame
|
||||||
|
retn
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
extern char** ppUserFilesDir = AddressByVersion<char**>(0x6022AA, 0x60228A, 0x601ECA);
|
extern char** ppUserFilesDir = AddressByVersion<char**>(0x6022AA, 0x60228A, 0x601ECA);
|
||||||
|
|
||||||
static LARGE_INTEGER FrameTime;
|
static LARGE_INTEGER FrameTime;
|
||||||
|
@ -666,6 +678,13 @@ void Patch_VC_Common()
|
||||||
InjectHook( give_weapon, GiveWeapon_SP );
|
InjectHook( give_weapon, GiveWeapon_SP );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Extras working correctly on bikes
|
||||||
|
{
|
||||||
|
auto createInstance = get_pattern( "89 C1 8B 41 04" );
|
||||||
|
InjectHook( createInstance, CreateInstance_BikeFix, PATCH_CALL );
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
||||||
|
|
|
@ -181,6 +181,7 @@
|
||||||
<ClInclude Include="..\SilentPatch\StdAfx.h" />
|
<ClInclude Include="..\SilentPatch\StdAfx.h" />
|
||||||
<ClInclude Include="..\SilentPatch\StoredCar.h" />
|
<ClInclude Include="..\SilentPatch\StoredCar.h" />
|
||||||
<ClInclude Include="..\SilentPatch\Timer.h" />
|
<ClInclude Include="..\SilentPatch\Timer.h" />
|
||||||
|
<ClInclude Include="ModelInfoVC.h" />
|
||||||
<ClInclude Include="VehicleVC.h" />
|
<ClInclude Include="VehicleVC.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -201,6 +202,7 @@
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\SilentPatch\StoredCar.cpp" />
|
<ClCompile Include="..\SilentPatch\StoredCar.cpp" />
|
||||||
<ClCompile Include="..\SilentPatch\Timer.cpp" />
|
<ClCompile Include="..\SilentPatch\Timer.cpp" />
|
||||||
|
<ClCompile Include="ModelInfoVC.cpp" />
|
||||||
<ClCompile Include="SilentPatchVC.cpp" />
|
<ClCompile Include="SilentPatchVC.cpp" />
|
||||||
<ClCompile Include="StdAfxVC.cpp">
|
<ClCompile Include="StdAfxVC.cpp">
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||||
|
|
|
@ -39,6 +39,9 @@
|
||||||
<ClInclude Include="..\SilentPatch\Common_ddraw.h">
|
<ClInclude Include="..\SilentPatch\Common_ddraw.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="ModelInfoVC.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\SilentPatch\Timer.cpp">
|
<ClCompile Include="..\SilentPatch\Timer.cpp">
|
||||||
|
@ -62,6 +65,9 @@
|
||||||
<ClCompile Include="..\SilentPatch\Common_ddraw.cpp">
|
<ClCompile Include="..\SilentPatch\Common_ddraw.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="ModelInfoVC.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="..\SilentPatch\SilentPatch.rc">
|
<ResourceCompile Include="..\SilentPatch\SilentPatch.rc">
|
||||||
|
|
Loading…
Reference in a new issue