From af07b711274e5f0eb5971ca4838e46633e7783fb Mon Sep 17 00:00:00 2001 From: staphen Date: Tue, 30 Apr 2024 15:25:25 -0400 Subject: [PATCH] Fix crash loading game with Search missile --- Source/loadsave.cpp | 2 +- Source/missiles.cpp | 10 +++++++--- Source/missiles.h | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Source/loadsave.cpp b/Source/loadsave.cpp index b940160db..3da407ad0 100644 --- a/Source/loadsave.cpp +++ b/Source/loadsave.cpp @@ -2532,7 +2532,7 @@ void LoadGame(bool firstflag) } } - missiles_process_charge(); + SetUpMissileAnimationData(); RedoMissileFlags(); NewCursor(CURSOR_HAND); gbProcessPlayers = IsDiabloAlive(!firstflag); diff --git a/Source/missiles.cpp b/Source/missiles.cpp index f9acd02f6..713c153c2 100644 --- a/Source/missiles.cpp +++ b/Source/missiles.cpp @@ -4175,13 +4175,17 @@ void ProcessMissiles() DeleteMissiles(); } -void missiles_process_charge() +void SetUpMissileAnimationData() { for (auto &missile : Missiles) { - missile._miAnimData = GetMissileSpriteData(missile._miAnimType).spritesForDirection(missile._mimfnum); - if (missile._mitype != MissileID::Rhino) + if (missile._miAnimType == MissileGraphicID::None) continue; + if (missile._mitype != MissileID::Rhino) { + missile._miAnimData = GetMissileSpriteData(missile._miAnimType).spritesForDirection(missile._mimfnum); + continue; + } + const CMonster &mon = Monsters[missile._misource].type(); MonsterGraphic graphic; diff --git a/Source/missiles.h b/Source/missiles.h index 7ab4e9dee..444f12d3a 100644 --- a/Source/missiles.h +++ b/Source/missiles.h @@ -454,7 +454,7 @@ void ProcessBoneSpirit(Missile &missile); void ProcessResurrectBeam(Missile &missile); void ProcessRedPortal(Missile &missile); void ProcessMissiles(); -void missiles_process_charge(); +void SetUpMissileAnimationData(); void RedoMissileFlags(); #ifdef BUILD_TESTING