Skip to content

Commit

Permalink
Streamline BulletClass extra logics (ExtraWarheads et al) hook to pot…
Browse files Browse the repository at this point in the history
…entially fix some edge cases crashes
  • Loading branch information
Starkku committed Aug 30, 2024
1 parent 3402e22 commit 8ba0425
Showing 1 changed file with 1 addition and 13 deletions.
14 changes: 1 addition & 13 deletions src/Ext/Bullet/Hooks.DetonateLogics.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,6 @@
#include <AircraftClass.h>
#include <TacticalClass.h>

namespace LogicsTemp
{
BulletClass* pThis = nullptr;
}

DEFINE_HOOK(0x4692BD, BulletClass_Logics_ApplyMindControl, 0x6)
{
GET(BulletClass*, pThis, ESI);
Expand All @@ -30,12 +25,9 @@ DEFINE_HOOK(0x4690D4, BulletClass_Logics_ScreenShake, 0x6)
{
enum { SkipShaking = 0x469130 };

GET(BulletClass*, pThis, ESI);
GET(WarheadTypeClass*, pWarhead, EAX);
GET_BASE(CoordStruct*, pCoords, 0x8);

LogicsTemp::pThis = pThis;

if (auto const pExt = WarheadTypeExt::ExtMap.Find(pWarhead))
{
auto&& [_, visible] = TacticalClass::Instance->CoordsToClient(*pCoords);
Expand Down Expand Up @@ -295,15 +287,11 @@ DEFINE_HOOK(0x469C46, BulletClass_Logics_DamageAnimSelected, 0x8)
return SkipGameCode;
}

DEFINE_HOOK_AGAIN(0x46A2FB, BulletClass_Logics_Extras, 0x5)
DEFINE_HOOK(0x46A290, BulletClass_Logics_Extras, 0x5)
DEFINE_HOOK(0x469AA4, BulletClass_Logics_Extras, 0x5)
{
GET(BulletClass*, pThis, ESI);
GET_BASE(CoordStruct*, coords, 0x8);

if (R->Origin() == 0x46A2FB)
pThis = LogicsTemp::pThis; // 0x46A2FB has ESI overwritten so need to set this in an earlier hook that is always entered.

// Extra warheads
if (pThis->WeaponType)
{
Expand Down

0 comments on commit 8ba0425

Please sign in to comment.