19 [[nodiscard]]
Model* Copy()
const override;
22 void Load(
const std::string& sFile);
24 void LoadPieces(
const std::string& sMeshesPath,
25 const std::string& sMaterialsPath,
26 const std::string& sBomesPath);
27 void LoadMilkshapeAscii(
const std::string& sFile);
28 void LoadMaterialsFromMilkshapeAscii(
const std::string& sPath);
29 bool LoadMilkshapeAsciiBones(
const std::string& sAniName,
30 const std::string& sPath);
32 void LoadFromNode(
const XNode* pNode)
override;
34 void PlayAnimation(
const std::string& sAniName,
float fPlayRate = 1);
35 void SetRate(
float fRate) { m_fCurAnimationRate = fRate; }
36 void SetLoop(
bool b) { m_bLoop = b; }
37 void SetPosition(
float fSeconds);
39 void Update(
float fDelta)
override;
44 void SetCelShading(
bool bShading) { m_bDrawCelShaded = bShading; }
46 [[nodiscard]]
int GetNumStates()
const override;
47 void SetState(
int iNewState)
override;
49 [[nodiscard]]
float GetAnimationLengthSeconds()
const override
51 return m_animation_length_seconds;
53 virtual void RecalcAnimationLengthSeconds();
54 void SetSecondsIntoAnimation(
float fSeconds)
override;
56 [[nodiscard]] std::string GetDefaultAnimation()
const
58 return m_sDefaultAnimation;
60 void SetDefaultAnimation(
const std::string& sAnimation,
63 [[nodiscard]]
bool MaterialsNeedNormals()
const;
66 void PushSelf(lua_State* L)
override;
71 float m_animation_length_seconds;
72 std::vector<msMaterial> m_Materials;
73 std::map<std::string, msAnimation> m_mapNameToAnimation;
78 std::vector<myBone_t>& vpBones);
79 std::vector<myBone_t> m_vpBones;
84 void UpdateTempGeometry();
89 std::vector<msMesh> m_vTempMeshes;
91 void DrawMesh(
int i)
const;
92 void AdvanceFrame(
float fDeltaTime);
95 std::string m_sDefaultAnimation;
96 float m_fDefaultAnimationRate;
97 float m_fCurAnimationRate;
99 bool m_bDrawCelShaded;