From e0ef3a23076ce630dee2f73b2f03259ebd6e8596 Mon Sep 17 00:00:00 2001 From: obligaron Date: Wed, 9 Mar 2022 18:59:18 +0100 Subject: [PATCH] Init monster TRN after monster load --- Source/monster.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/Source/monster.cpp b/Source/monster.cpp index f01c10cfc..94481c37d 100644 --- a/Source/monster.cpp +++ b/Source/monster.cpp @@ -3464,6 +3464,13 @@ bool IsRelativeMoveOK(const Monster &monster, Point position, Direction mdir) } // namespace +void InitTRNForUniqueMonster(Monster &monster) +{ + char filestr[64]; + sprintf(filestr, "Monsters\\Monsters\\%s.TRN", UniqueMonstersData[monster._uniqtype - 1].mTrnName); + monster.uniqueTRN = LoadFileInMem(filestr); +} + void PrepareUniqueMonst(Monster &monster, int uniqindex, int miniontype, int bosspacksize, const UniqueMonsterData &uniqueMonsterData) { monster._uniqtype = uniqindex + 1; @@ -3535,10 +3542,7 @@ void PrepareUniqueMonst(Monster &monster, int uniqindex, int miniontype, int bos monster.mMaxDamage2 = 4 * monster.mMaxDamage2 + 6; } - char filestr[64]; - sprintf(filestr, "Monsters\\Monsters\\%s.TRN", uniqueMonsterData.mTrnName); - monster.uniqueTRN = LoadFileInMem(filestr); - + InitTRNForUniqueMonster(monster); monster._uniqtrans = uniquetrans++; if (uniqueMonsterData.customToHit != 0) { @@ -4552,6 +4556,9 @@ void SyncMonsterAnim(Monster &monster) else monster.mName = pgettext("monster", monster.MData->mName); + if (monster._uniqtype != 0) + InitTRNForUniqueMonster(monster); + MonsterGraphic graphic = MonsterGraphic::Stand; switch (monster._mmode) {