summaryrefslogtreecommitdiffstats
path: root/src/modelinfo/PedModelInfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/modelinfo/PedModelInfo.h')
-rw-r--r--src/modelinfo/PedModelInfo.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/modelinfo/PedModelInfo.h b/src/modelinfo/PedModelInfo.h
new file mode 100644
index 00000000..e917b6b2
--- /dev/null
+++ b/src/modelinfo/PedModelInfo.h
@@ -0,0 +1,47 @@
+#pragma once
+
+#include "ClumpModelInfo.h"
+
+enum PedNode {
+ PED_WAIST,
+ PED_TORSO, // Smid on PS2/PC, Storso on mobile/xbox
+ PED_HEAD,
+ PED_UPPERARML,
+ PED_UPPERARMR,
+ PED_HANDL,
+ PED_HANDR,
+ PED_UPPERLEGL,
+ PED_UPPERLEGR,
+ PED_FOOTL,
+ PED_FOOTR,
+ PED_LOWERLEGR,
+ // This is not valid apparently
+ PED_LOWERLEGL,
+};
+
+class CPedModelInfo : public CClumpModelInfo
+{
+public:
+ void *m_animGroup; // TODO
+ int32 m_pedType;
+ int32 m_pedStatType;
+ uint32 m_carsCanDrive;
+ CColModel *m_hitColModel;
+ RpAtomic *m_head;
+ RpAtomic *m_lhand;
+ RpAtomic *m_rhand;
+
+ static RwObjectNameIdAssocation m_pPedIds[12];
+
+ CPedModelInfo(void) : CClumpModelInfo(MITYPE_PED) { }
+ void DeleteRwObject(void);
+ void SetClump(RpClump *);
+
+ void SetLowDetailClump(RpClump*);
+ void CreateHitColModel(void);
+
+
+ void DeleteRwObject_(void) { this->CPedModelInfo::DeleteRwObject(); }
+ void SetClump_(RpClump *clump) { this->CPedModelInfo::SetClump(clump); }
+};
+static_assert(sizeof(CPedModelInfo) == 0x54, "CPedModelInfo: error");