Index: binaries/data/mods/public/art/actors/props/special/common/waypoint_flag.xml =================================================================== --- binaries/data/mods/public/art/actors/props/special/common/waypoint_flag.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - props/waypoint_flag.dae - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - basic_trans.xml - Index: binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_athen.xml =================================================================== --- /dev/null +++ binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_athen.xml @@ -0,0 +1,17 @@ + + + + + + + + + + props/waypoint_flag.dae + + + + + + basic_trans.xml + Index: binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_brit.xml =================================================================== --- /dev/null +++ binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_brit.xml @@ -0,0 +1,17 @@ + + + + + + + + + + props/waypoint_flag.dae + + + + + + basic_trans.xml + Index: binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_cart.xml =================================================================== --- /dev/null +++ binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_cart.xml @@ -0,0 +1,17 @@ + + + + + + + + + + props/waypoint_flag.dae + + + + + + basic_trans.xml + Index: binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_gaul.xml =================================================================== --- /dev/null +++ binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_gaul.xml @@ -0,0 +1,17 @@ + + + + + + + + + + props/waypoint_flag.dae + + + + + + basic_trans.xml + Index: binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_iber.xml =================================================================== --- /dev/null +++ binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_iber.xml @@ -0,0 +1,17 @@ + + + + + + + + + + props/waypoint_flag.dae + + + + + + basic_trans.xml + Index: binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_kush.xml =================================================================== --- /dev/null +++ binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_kush.xml @@ -0,0 +1,17 @@ + + + + + + + + + + props/waypoint_flag.dae + + + + + + basic_trans.xml + Index: binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_mace.xml =================================================================== --- /dev/null +++ binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_mace.xml @@ -0,0 +1,17 @@ + + + + + + + + + + props/waypoint_flag.dae + + + + + + basic_trans.xml + Index: binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_maur.xml =================================================================== --- /dev/null +++ binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_maur.xml @@ -0,0 +1,17 @@ + + + + + + + + + + props/waypoint_flag.dae + + + + + + basic_trans.xml + Index: binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_pers.xml =================================================================== --- /dev/null +++ binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_pers.xml @@ -0,0 +1,17 @@ + + + + + + + + + + props/waypoint_flag.dae + + + + + + basic_trans.xml + Index: binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_ptol.xml =================================================================== --- /dev/null +++ binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_ptol.xml @@ -0,0 +1,17 @@ + + + + + + + + + + props/waypoint_flag.dae + + + + + + basic_trans.xml + Index: binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_rome.xml =================================================================== --- /dev/null +++ binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_rome.xml @@ -0,0 +1,17 @@ + + + + + + + + + + props/waypoint_flag.dae + + + + + + basic_trans.xml + Index: binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_sele.xml =================================================================== --- /dev/null +++ binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_sele.xml @@ -0,0 +1,17 @@ + + + + + + + + + + props/waypoint_flag.dae + + + + + + basic_trans.xml + Index: binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_spart.xml =================================================================== --- /dev/null +++ binaries/data/mods/public/art/actors/props/special/common/waypoint_flag_spart.xml @@ -0,0 +1,17 @@ + + + + + + + + + + props/waypoint_flag.dae + + + + + + basic_trans.xml + Index: binaries/data/mods/public/simulation/templates/special/rallypoint.xml =================================================================== --- binaries/data/mods/public/simulation/templates/special/rallypoint.xml +++ binaries/data/mods/public/simulation/templates/special/rallypoint.xml @@ -4,6 +4,6 @@ true - props/special/common/waypoint_flag.xml + props/special/common/waypoint_flag_{civ}.xml Index: source/simulation2/components/CCmpVisualActor.cpp =================================================================== --- source/simulation2/components/CCmpVisualActor.cpp +++ source/simulation2/components/CCmpVisualActor.cpp @@ -467,7 +467,7 @@ if (!m_Unit || !m_Unit->GetAnimation() || !m_Unit->GetID()) return; - m_Unit->GetAnimation()->SetAnimationState(m_AnimName, m_AnimOnce, m_AnimSpeed.ToFloat(), m_AnimDesync.ToFloat(), m_SoundGroup.c_str()); + m_Unit->GetAnimation()->SetAnimationState(m_AnimName, m_AnimOnce, m_AnimSpeed.ToFloat(), m_AnimDesync.ToFloat(), m_SoundGroup.c_str()); } virtual void SelectMovementAnimation(const std::string& name, fixed speed) @@ -568,17 +568,26 @@ void CCmpVisualActor::ParseActorName(std::wstring base) { CmpPtr cmpIdentity(GetEntityHandle()); - const std::wstring pattern = L"{phenotype}"; + const std::wstring phenotypePattern = L"{phenotype}"; if (cmpIdentity) { - size_t pos = base.find(pattern); + size_t pos = base.find(phenotypePattern); while (pos != std::string::npos) { - base.replace(pos, pattern.size(), cmpIdentity->GetPhenotype()); - pos = base.find(pattern, pos + pattern.size()); + base.replace(pos, phenotypePattern.size(), cmpIdentity->GetPhenotype()); + pos = base.find(phenotypePattern, pos + phenotypePattern.size()); + } + } + const std::wstring civPattern = L"{civ}"; + if (cmpIdentity) + { + size_t pos = base.find(civPattern); + while (pos != std::string::npos) + { + base.replace(pos, civPattern.size(), cmpIdentity->GetCiv()); + pos = base.find(civPattern, pos + civPattern.size()); } } - m_ActorName = base; } Index: source/simulation2/components/ICmpIdentity.h =================================================================== --- source/simulation2/components/ICmpIdentity.h +++ source/simulation2/components/ICmpIdentity.h @@ -31,6 +31,8 @@ virtual std::wstring GetPhenotype() = 0; + virtual std::wstring GetCiv() = 0; + DECLARE_INTERFACE_TYPE(Identity) }; Index: source/simulation2/components/ICmpIdentity.cpp =================================================================== --- source/simulation2/components/ICmpIdentity.cpp +++ source/simulation2/components/ICmpIdentity.cpp @@ -40,6 +40,11 @@ { return m_Script.Call("GetPhenotype"); } + + virtual std::wstring GetCiv() + { + return m_Script.Call("GetCiv"); + } }; REGISTER_COMPONENT_SCRIPT_WRAPPER(IdentityScripted)