re3/src/modelinfo/PedModelInfo.h

67 lines
1.5 KiB
C
Raw Normal View History

2019-05-15 14:52:37 +00:00
#pragma once
#include "ClumpModelInfo.h"
#include "ColModel.h"
2020-02-16 02:15:58 +00:00
#include "PedType.h"
2019-05-15 14:52:37 +00:00
enum PedNode {
PED_TORSO,
PED_MID, // Smid on PS2/PC, Storso on mobile/xbox
2019-05-15 14:52:37 +00:00
PED_HEAD,
PED_UPPERARML,
PED_UPPERARMR,
PED_HANDL,
PED_HANDR,
PED_UPPERLEGL,
PED_UPPERLEGR,
PED_FOOTL,
PED_FOOTR,
PED_LOWERLEGR,
PED_NODE_MAX// Not valid: PED_LOWERLEGL
2019-05-15 14:52:37 +00:00
};
class CPedModelInfo : public CClumpModelInfo
{
public:
uint32 m_animGroup;
2020-02-16 02:15:58 +00:00
ePedType m_pedType;
2020-03-17 18:03:13 +00:00
ePedStats m_pedStatType;
2019-05-15 14:52:37 +00:00
uint32 m_carsCanDrive;
CColModel *m_hitColModel;
#ifdef PED_SKIN
2019-05-15 14:52:37 +00:00
RpAtomic *m_head;
RpAtomic *m_lhand;
RpAtomic *m_rhand;
#endif
2019-05-15 14:52:37 +00:00
static RwObjectNameIdAssocation m_pPedIds[PED_NODE_MAX];
2019-05-15 14:52:37 +00:00
2020-05-17 13:16:12 +00:00
CPedModelInfo(void) : CClumpModelInfo(MITYPE_PED) {
m_hitColModel = nil;
#ifdef PED_SKIN
m_head = nil;
m_lhand = nil;
m_rhand = nil;
#endif
}
2020-05-10 15:09:57 +00:00
~CPedModelInfo(void) { delete m_hitColModel; }
2019-05-15 14:52:37 +00:00
void DeleteRwObject(void);
void SetClump(RpClump *);
void SetLowDetailClump(RpClump*);
void CreateHitColModel(void);
void CreateHitColModelSkinned(RpClump *clump);
2019-06-22 23:01:21 +00:00
CColModel *GetHitColModel(void) { return m_hitColModel; }
static CColModel *AnimatePedColModel(CColModel* colmodel, RwFrame* frame);
CColModel *AnimatePedColModelSkinned(RpClump *clump);
#ifdef PED_SKIN
static RpAtomic *findLimbsCb(RpAtomic *atomic, void *data);
RpAtomic *getHead(void) { return m_head; }
RpAtomic *getLeftHand(void) { return m_lhand; }
RpAtomic *getRightHand(void) { return m_rhand; }
#endif
2019-05-15 14:52:37 +00:00
};
#ifndef PED_SKIN
VALIDATE_SIZE(CPedModelInfo, 0x48);
#endif