1
0
forked from 0ad/0ad

Fix initial animation sync.

UpdateAnimationID → PickAnimationID

Reviewed by: @wraitii
Differential Revision: https://code.wildfiregames.com/D3747
This was SVN commit r25205.
This commit is contained in:
Stan 2021-04-07 08:35:02 +00:00
parent a7d777d69b
commit 48d6b84c62
2 changed files with 6 additions and 7 deletions

View File

@ -90,7 +90,6 @@ void CUnitAnimation::AddModel(CModel* model, const CObjectEntry* object)
void CUnitAnimation::ReloadAnimation() void CUnitAnimation::ReloadAnimation()
{ {
UpdateAnimationID();
ReloadUnit(m_Model, m_Object); ReloadUnit(m_Model, m_Object);
} }
@ -101,6 +100,7 @@ void CUnitAnimation::ReloadUnit(CModel* model, const CObjectEntry* object)
m_AnimStates.clear(); m_AnimStates.clear();
m_AnimStatesAreStatic = true; m_AnimStatesAreStatic = true;
PickAnimationID();
AddModel(m_Model, m_Object); AddModel(m_Model, m_Object);
} }
@ -237,7 +237,7 @@ void CUnitAnimation::Update(float time)
// we're handling the root model // we're handling the root model
// choose animations from the complete state // choose animations from the complete state
CStr oldID = m_AnimationID; CStr oldID = m_AnimationID;
UpdateAnimationID(); PickAnimationID();
anim = it->object->GetRandomAnimation(m_State, m_AnimationID); anim = it->object->GetRandomAnimation(m_State, m_AnimationID);
if (oldID != m_AnimationID) if (oldID != m_AnimationID)
for (SModelAnimState animState : m_AnimStates) for (SModelAnimState animState : m_AnimStates)
@ -282,8 +282,7 @@ void CUnitAnimation::Update(float time)
cmpSoundManager->PlaySoundGroup(m_ActionSound, m_Entity); cmpSoundManager->PlaySoundGroup(m_ActionSound, m_Entity);
} }
void CUnitAnimation::UpdateAnimationID() void CUnitAnimation::PickAnimationID()
{ {
CStr& ID = m_Object->GetRandomAnimation(m_State)->m_ID; m_AnimationID = m_Object->GetRandomAnimation(m_State)->m_ID;
m_AnimationID = ID;
} }

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2020 Wildfire Games. /* Copyright (C) 2021 Wildfire Games.
* This file is part of 0 A.D. * This file is part of 0 A.D.
* *
* 0 A.D. is free software: you can redistribute it and/or modify * 0 A.D. is free software: you can redistribute it and/or modify
@ -103,7 +103,7 @@ private:
/** /**
* Picks a new animation ID from our current state * Picks a new animation ID from our current state
*/ */
void UpdateAnimationID(); void PickAnimationID();
struct SModelAnimState struct SModelAnimState
{ {