diff options
Diffstat (limited to 'src/modelinfo')
-rw-r--r-- | src/modelinfo/BaseModelInfo.h | 8 | ||||
-rw-r--r-- | src/modelinfo/ModelInfo.cpp | 4 | ||||
-rw-r--r-- | src/modelinfo/TimeModelInfo.cpp | 2 |
3 files changed, 9 insertions, 5 deletions
diff --git a/src/modelinfo/BaseModelInfo.h b/src/modelinfo/BaseModelInfo.h index 44f4c47a..9f828e7f 100644 --- a/src/modelinfo/BaseModelInfo.h +++ b/src/modelinfo/BaseModelInfo.h @@ -22,18 +22,17 @@ class C2dEffect; class CBaseModelInfo { protected: - // TODO?: make more things protected char m_name[MAX_MODEL_NAME]; CColModel *m_colModel; C2dEffect *m_twodEffects; int16 m_objectId; -public: uint16 m_refCount; int16 m_txdSlot; ModelInfoType m_type; uint8 m_num2dEffects; bool m_bOwnsColModel; +public: CBaseModelInfo(ModelInfoType type); virtual ~CBaseModelInfo() {} virtual void Shutdown(void); @@ -42,6 +41,8 @@ public: virtual RwObject *CreateInstance(void) = 0; virtual RwObject *GetRwObject(void) = 0; + // one day it becomes virtual + ModelInfoType GetModelType() const { return m_type; } bool IsSimple(void) { return m_type == MITYPE_SIMPLE || m_type == MITYPE_TIME; } bool IsClump(void) { return m_type == MITYPE_CLUMP || m_type == MITYPE_PED || m_type == MITYPE_VEHICLE || m_type == MITYPE_MLO || m_type == MITYPE_XTRACOMPS; // unused but what the heck @@ -51,6 +52,7 @@ public: void SetColModel(CColModel *col, bool owns = false){ m_colModel = col; m_bOwnsColModel = owns; } CColModel *GetColModel(void) { return m_colModel; } + bool DoesOwnColModel(void) { return m_bOwnsColModel; } void DeleteCollisionModel(void); void ClearTexDictionary(void) { m_txdSlot = -1; } short GetObjectID(void) { return m_objectId; } @@ -64,6 +66,8 @@ public: void Init2dEffects(void); void Add2dEffect(C2dEffect *fx); C2dEffect *Get2dEffect(int n); + uint8 GetNum2dEffects() const { return m_num2dEffects; } + uint16 GetNumRefs() const { return m_refCount; } }; static_assert(sizeof(CBaseModelInfo) == 0x30, "CBaseModelInfo: error"); diff --git a/src/modelinfo/ModelInfo.cpp b/src/modelinfo/ModelInfo.cpp index 812a8749..62deae2b 100644 --- a/src/modelinfo/ModelInfo.cpp +++ b/src/modelinfo/ModelInfo.cpp @@ -217,14 +217,14 @@ CModelInfo::GetModelInfo(const char *name, int minIndex, int maxIndex) bool CModelInfo::IsBoatModel(int32 id) { - return GetModelInfo(id)->m_type == MITYPE_VEHICLE && + return GetModelInfo(id)->GetModelType() == MITYPE_VEHICLE && ((CVehicleModelInfo*)GetModelInfo(id))->m_vehicleType == VEHICLE_TYPE_BOAT; } bool CModelInfo::IsBikeModel(int32 id) { - return GetModelInfo(id)->m_type == MITYPE_VEHICLE && + return GetModelInfo(id)->GetModelType() == MITYPE_VEHICLE && ((CVehicleModelInfo*)GetModelInfo(id))->m_vehicleType == VEHICLE_TYPE_BIKE; } diff --git a/src/modelinfo/TimeModelInfo.cpp b/src/modelinfo/TimeModelInfo.cpp index fec3f6e5..d4f92293 100644 --- a/src/modelinfo/TimeModelInfo.cpp +++ b/src/modelinfo/TimeModelInfo.cpp @@ -22,7 +22,7 @@ CTimeModelInfo::FindOtherTimeModel(void) for(i = 0; i < MODELINFOSIZE; i++){ CBaseModelInfo *mi = CModelInfo::GetModelInfo(i); - if(mi && mi->m_type == MITYPE_TIME && + if (mi && mi->GetModelType() == MITYPE_TIME && strncmp(name, mi->GetName(), 24) == 0){ m_otherTimeModelID = i; return (CTimeModelInfo*)mi; |