From 481fc0423570dc96df0da12189360d12ae6ee47f Mon Sep 17 00:00:00 2001 From: obligaron Date: Mon, 12 Jul 2021 11:35:49 +0200 Subject: [PATCH] InitMonster: Get AnimData only once --- Source/monster.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Source/monster.cpp b/Source/monster.cpp index 89511b569..6c21ed230 100644 --- a/Source/monster.cpp +++ b/Source/monster.cpp @@ -529,6 +529,8 @@ void InitMonster(int i, Direction rd, int mtype, Point position) { CMonster *monst = &LevelMonsterTypes[mtype]; + auto &animData = monst->Anims[MA_STAND]; + Monsters[i]._mdir = rd; Monsters[i].position.tile = position; Monsters[i].position.future = position; @@ -539,10 +541,10 @@ void InitMonster(int i, Direction rd, int mtype, Point position) Monsters[i].MType = monst; Monsters[i].MData = monst->MData; Monsters[i].AnimInfo = {}; - Monsters[i].AnimInfo.pCelSprite = monst->Anims[MA_STAND].CelSpritesForDirections[rd] ? &*monst->Anims[MA_STAND].CelSpritesForDirections[rd] : nullptr; - Monsters[i].AnimInfo.TicksPerFrame = monst->Anims[MA_STAND].Rate; + Monsters[i].AnimInfo.pCelSprite = animData.CelSpritesForDirections[rd] ? &*animData.CelSpritesForDirections[rd] : nullptr; + Monsters[i].AnimInfo.TicksPerFrame = animData.Rate; Monsters[i].AnimInfo.TickCounterOfCurrentFrame = GenerateRnd(Monsters[i].AnimInfo.TicksPerFrame - 1); - Monsters[i].AnimInfo.NumberOfFrames = monst->Anims[MA_STAND].Frames; + Monsters[i].AnimInfo.NumberOfFrames = animData.Frames; Monsters[i].AnimInfo.CurrentFrame = GenerateRnd(Monsters[i].AnimInfo.NumberOfFrames - 1) + 1; Monsters[i].mLevel = monst->MData->mLevel;