isle-portable/LEGO1/mxdsobject.h

42 lines
1 KiB
C
Raw Normal View History

#ifndef MXDSOBJECT_H
#define MXDSOBJECT_H
#include "mxcore.h"
#include "mxatomid.h"
class MxDSObject : public MxCore
{
public:
__declspec(dllexport) void SetObjectName(const char *);
MxDSObject();
inline const MxAtomId& GetAtomId() { return this->m_atomId; }
inline int GetUnknown1c() { return this->m_unk1c; }
inline void SetUnknown1c(int p_unk1c) { this->m_unk1c = p_unk1c; }
inline void SetUnknown24(unsigned short p_unk24) { this->m_unk24 = p_unk24; }
void SetAtomId(MxAtomId p_atomId);
private:
int m_unk08;
short m_unk0c;
char* m_unk10;
int m_unk14;
char *m_name;
int m_unk1c;
MxAtomId m_atomId;
// So far, implementing MxDSObject::MxDSObject correctly required that m_unk24 is declared a (signed) short.
// Most of the other game's code appears to treat it as unsigned short, however.
// This union is a workaround until we have figured this out.
union {
unsigned short m_unk24;
short m_unk24signed;
};
unsigned short m_unk26;
int m_unk28;
};
#endif // MXDSOBJECT_H