mirror of
https://github.com/CookiePLMonster/SilentPatch.git
synced 2024-12-29 15:23:02 +05:00
Disable the radio station change anim on boats where CJ stands upright
Contributed by Wesser
This commit is contained in:
parent
8cf5157941
commit
3ba84ad1c0
1 changed files with 34 additions and 0 deletions
|
@ -299,6 +299,7 @@ void (*GTAdelete)(void*) = AddressByVersion<void(*)(void*)>(0x82413F, 0x824E
|
||||||
const char* (*GetFrameNodeName)(RwFrame*) = AddressByVersion<const char*(*)(RwFrame*)>(0x72FB30, 0x730360, 0x769C20);
|
const char* (*GetFrameNodeName)(RwFrame*) = AddressByVersion<const char*(*)(RwFrame*)>(0x72FB30, 0x730360, 0x769C20);
|
||||||
RpHAnimHierarchy* (*GetAnimHierarchyFromSkinClump)(RpClump*) = AddressByVersion<RpHAnimHierarchy*(*)(RpClump*)>(0x734A40, 0x735270, 0x7671B0);
|
RpHAnimHierarchy* (*GetAnimHierarchyFromSkinClump)(RpClump*) = AddressByVersion<RpHAnimHierarchy*(*)(RpClump*)>(0x734A40, 0x735270, 0x7671B0);
|
||||||
auto InitializeUtrax = AddressByVersion<void(__thiscall*)(void*)>(0x4F35B0, 0x4F3A10, 0x4FFA80);
|
auto InitializeUtrax = AddressByVersion<void(__thiscall*)(void*)>(0x4F35B0, 0x4F3A10, 0x4FFA80);
|
||||||
|
auto RpAnimBlendClumpGetAssociation = AddressByVersion<void*(*)(RpClump*, uint32_t)>(0x4D68B0, { "8B 0D ? ? ? ? 8B 14 01 8B 02 85 C0 74 11 8B 4D 0C", -6 });
|
||||||
|
|
||||||
static void (__thiscall* SetVolume)(void*,float);
|
static void (__thiscall* SetVolume)(void*,float);
|
||||||
static BOOL (*IsAlreadyRunning)();
|
static BOOL (*IsAlreadyRunning)();
|
||||||
|
@ -1774,6 +1775,20 @@ namespace QuadbikeHandlebarAnims
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ======= Disable the radio station change anim on boats where CJ stands upright =======
|
||||||
|
namespace UprightBoatRadioStationChange
|
||||||
|
{
|
||||||
|
static void* (*orgAnimManagerBlendAnimation)(RpClump*, uint32_t, uint32_t, float);
|
||||||
|
void* AnimManagerBlendAnimation_SkipIfBoatDrive(RpClump* clump, uint32_t assocGroupId, uint32_t animationId, float rate)
|
||||||
|
{
|
||||||
|
if (RpAnimBlendClumpGetAssociation(clump, 81) != nullptr) // ANIM_STD_BOAT_DRIVE
|
||||||
|
{
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
return orgAnimManagerBlendAnimation(clump, assocGroupId, animationId, rate);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// ============= LS-RP Mode stuff =============
|
// ============= LS-RP Mode stuff =============
|
||||||
namespace LSRPMode
|
namespace LSRPMode
|
||||||
{
|
{
|
||||||
|
@ -4378,6 +4393,15 @@ void Patch_SA_10()
|
||||||
InjectHook(0x6B7932+1, &QuadbikeHandlebarAnims::ProcessRiderAnims_FixInterp, HookType::Call);
|
InjectHook(0x6B7932+1, &QuadbikeHandlebarAnims::ProcessRiderAnims_FixInterp, HookType::Call);
|
||||||
|
|
||||||
|
|
||||||
|
// Disable the radio station change anim on boats where CJ stands upright
|
||||||
|
// By Wesser
|
||||||
|
{
|
||||||
|
using namespace UprightBoatRadioStationChange;
|
||||||
|
|
||||||
|
InterceptCall(0x6DF4F4, orgAnimManagerBlendAnimation, AnimManagerBlendAnimation_SkipIfBoatDrive);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#if FULL_PRECISION_D3D
|
#if FULL_PRECISION_D3D
|
||||||
// Test - full precision D3D device
|
// Test - full precision D3D device
|
||||||
Patch<uint8_t>( 0x7F672B+1, *(uint8_t*)(0x7F672B+1) | D3DCREATE_FPU_PRESERVE );
|
Patch<uint8_t>( 0x7F672B+1, *(uint8_t*)(0x7F672B+1) | D3DCREATE_FPU_PRESERVE );
|
||||||
|
@ -5906,6 +5930,16 @@ void Patch_SA_NewBinaries_Common()
|
||||||
Nop(saveDriveByAnim.get<void>(), 1);
|
Nop(saveDriveByAnim.get<void>(), 1);
|
||||||
InjectHook(saveDriveByAnim.get<void>(1), &QuadbikeHandlebarAnims::SaveDriveByAnim_Steam, HookType::Call);
|
InjectHook(saveDriveByAnim.get<void>(1), &QuadbikeHandlebarAnims::SaveDriveByAnim_Steam, HookType::Call);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Disable the radio station change anim on boats where CJ stands upright
|
||||||
|
// By Wesser
|
||||||
|
{
|
||||||
|
using namespace UprightBoatRadioStationChange;
|
||||||
|
|
||||||
|
auto blendAnimation = get_pattern("E8 ? ? ? ? 83 C4 10 85 C0 0F 85 ? ? ? ? D9 47 48");
|
||||||
|
InterceptCall(blendAnimation, orgAnimManagerBlendAnimation, AnimManagerBlendAnimation_SkipIfBoatDrive);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue