00001 00002 // 00004 00013 #if !defined(AFX_PECKERMODEL_H__52A881C0_7C0D_4258_82B8_F3E3BC9436F5__INCLUDED_) 00014 #define AFX_PECKERMODEL_H__52A881C0_7C0D_4258_82B8_F3E3BC9436F5__INCLUDED_ 00015 00016 #if _MSC_VER > 1000 00017 #pragma once 00018 #endif // _MSC_VER > 1000 00019 00020 // Engine includes 00021 #include <ltengineobjects.h> 00022 00024 class LTCollisionSphere; 00025 00026 00028 #define MAX_STARTANIMS 4 00029 00030 #define ANIMTRACKER_2 1 00031 #define ANIMTRACKER_3 2 00032 #define ANIMTRACKER_4 3 00033 00034 00036 class CPeckerModel : public BaseClass 00037 { 00038 public: 00039 // Construction / destruction 00040 CPeckerModel(); 00041 virtual ~CPeckerModel(); 00042 00043 // Overridden functions 00044 00045 uint32 EngineMessageFn(uint32 messageID, void *pData, float fData); 00046 00047 // Accessors 00048 00049 // Birdy things 00051 void setBeatAndTime(long avgBeatTime,long lastBeat, int updateInterval); 00052 void setIdle(); 00053 void setPeck(); 00054 00055 protected: 00056 // EngineMessageFn handlers 00057 00058 uint32 PreCreate(void *pData, float fData); 00059 void ObjectCreated(); 00060 void Update(); 00061 00062 // Other functions 00063 00064 void ReadProps(ObjectCreateStruct* pStruct); 00065 void PostReadProps(); 00066 00067 // Members 00068 00069 char m_szModelFile[MAX_CS_FILENAME_LEN]; 00070 // char m_szTexListFile[MAX_CS_FILENAME_LEN]; 00071 char m_szTexFile[MAX_CS_FILENAME_LEN]; 00072 // char m_szTexSet[MAX_CS_FILENAME_LEN]; 00073 // char m_szRSSet[MAX_CS_FILENAME_LEN]; 00074 00075 float m_fScale; 00076 float m_fMass; 00077 00078 /* 00079 char m_szStartAnims[MAX_STARTANIMS][MAX_CS_FILENAME_LEN]; 00080 char m_szWeightSets[MAX_STARTANIMS][MAX_CS_FILENAME_LEN]; 00081 */ 00082 char m_szStartAnim[MAX_CS_FILENAME_LEN]; 00083 char m_szIdleAnim[MAX_CS_FILENAME_LEN]; 00084 00085 uint8 m_nNumExtraTrackers; 00086 LTVector3f m_vStartAnimDims; 00087 00088 float m_fOrigPeckLength; 00089 float m_fOrigPeckTime; 00090 float m_fOrigPeckRatio; 00091 00092 LTCollisionSphere* m_pCollSphere; 00093 00094 protected: 00095 bool m_Idling; 00096 private: 00097 00098 }; 00099 00100 00101 00102 #endif // !defined(AFX_PECKERMODEL_H__52A881C0_7C0D_4258_82B8_F3E3BC9436F5__INCLUDED_)