Skip to content

Commit 3d0a7b0

Browse files
Revert "[Random Crash] PointerExpired"
This reverts commit e91510d.
1 parent e91510d commit 3d0a7b0

2 files changed

Lines changed: 3 additions & 19 deletions

File tree

src/Ext/WeaponType/Body.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ class WeaponTypeExt
1212

1313
static constexpr DWORD Canary = 0x22222222;
1414
static constexpr size_t ExtPointerOffset = 0x18;
15-
static constexpr bool ShouldConsiderInvalidatePointer = true;
1615

1716
class ExtData final : public Extension<WeaponTypeClass>
1817
{
@@ -204,14 +203,13 @@ class WeaponTypeExt
204203

205204
virtual void LoadFromINIFile(CCINIClass* pINI) override;
206205
virtual void Initialize() override;
207-
virtual void InvalidatePointer(void* ptr, bool bRemoved) override;
206+
virtual void InvalidatePointer(void* ptr, bool bRemoved) override { }
208207
virtual void LoadFromStream(PhobosStreamReader& Stm) override;
209208
virtual void SaveToStream(PhobosStreamWriter& Stm) override;
210209

211210
private:
212211
template <typename T>
213212
void Serialize(T& Stm);
214-
static void LaserTrackerPointerExpired(AbstractClass* pInvalid, bool removed);
215213
};
216214

217215
class ExtContainer final : public Container<WeaponTypeExt>

src/Misc/Hooks.LaserDraw.cpp

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -88,20 +88,6 @@ namespace LaserRT
8888
}
8989
}
9090

91-
void WeaponTypeExt::ExtData::InvalidatePointer(void* ptr, bool bRemoved)
92-
{
93-
LaserTrackerPointerExpired(static_cast<AbstractClass*>(ptr), bRemoved);
94-
}
95-
96-
void WeaponTypeExt::ExtData::LaserTrackerPointerExpired(AbstractClass* pInvalid, bool removed)
97-
{
98-
for (auto& [pLaser, data] : LaserRT::g_Trackers)
99-
{
100-
if (data.Shooter == pInvalid || data.Target == pInvalid)
101-
data.IsActive = false;
102-
}
103-
}
104-
10591
static void RemoveLaserTracking(LaserDrawClass* pLaser)
10692
{
10793
LaserRT::g_Trackers.erase(pLaser);
@@ -327,7 +313,7 @@ DEFINE_HOOK(0x550173, LaserDrawClass_Update_UpdateCoords, 6)
327313

328314
if (followFirer)
329315
{
330-
if (!info.Shooter->IsDead())
316+
if (ObjectClass::Array.FindItemIndex(info.Shooter) != -1 && !info.Shooter->IsDead())
331317
{
332318
CoordStruct flh = TechnoExt::GetFLHAbsoluteCoords(info.Shooter, info.SavedRelativeFLH, true);
333319
pLaser->Source = flh;
@@ -341,7 +327,7 @@ DEFINE_HOOK(0x550173, LaserDrawClass_Update_UpdateCoords, 6)
341327

342328
if (followTarget)
343329
{
344-
if (!info.IsFloorTarget && !info.Target->IsDead())
330+
if (!info.IsFloorTarget && ObjectClass::Array.FindItemIndex(info.Target) != -1 && !info.Target->IsDead())
345331
{
346332
CoordStruct tgt;
347333
info.Target->GetTargetCoords(&tgt);

0 commit comments

Comments
 (0)