Subversion Repositories WoWGM

Rev

Rev 38 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
37 tristanc 1
/******************************************************************************
2
*
3
*   Object_C.h
4
*
5
*
6
*
7
*   By tomrus88 - 03/26/2013
8
*
9
***/
10
 
11
 
40 tristanc 12
#ifndef  OBJECT_C_H
13
#define  OBJECT_C_H
14
 
15
 
37 tristanc 16
typedef enum {
38 tristanc 17
    TYPE_OBJECT = 0x1,
18
    HIER_TYPE_OBJECT = 0x1,
19
    TYPE_ITEM = 0x2,
20
    HIER_TYPE_ITEM = 0x3,
21
    TYPE_CONTAINER = 0x4,
22
    HIER_TYPE_CONTAINER = 0x7,
23
    TYPE_UNIT = 0x8,
24
    HIER_TYPE_UNIT = 0x9,
25
    TYPE_PLAYER = 0x10,
26
    HIER_TYPE_PLAYER = 0x19,
27
    TYPE_GAMEOBJECT = 0x20,
28
    HIER_TYPE_GAMEOBJECT = 0x21,
29
    TYPE_DYNAMICOBJECT = 0x40,
30
    HIER_TYPE_DYNAMICOBJECT = 0x41,
31
    TYPE_CORPSE = 0x80,
32
    HIER_TYPE_CORPSE = 0x81,
33
    TYPE_AIGROUP = 0x100,
34
    HIER_TYPE_AIGROUP = 0x101,
35
    TYPE_AREATRIGGER = 0x200,
36
    HIER_TYPE_AREATRIGGER = 0x201,
37
} OBJECT_TYPE;
37 tristanc 38
 
38 tristanc 39
typedef enum {
40
    ID_OBJECT = 0x0,
41
    ID_ITEM = 0x1,
42
    ID_CONTAINER = 0x2,
43
    ID_UNIT = 0x3,
44
    ID_PLAYER = 0x4,
45
    ID_GAMEOBJECT = 0x5,
46
    ID_DYNAMICOBJECT = 0x6,
47
    ID_CORPSE = 0x7,
48
    NUM_CLIENT_OBJECT_TYPES = 0x8,
49
    ID_AIGROUP = 0x8,
50
    ID_AREATRIGGER = 0x9,
51
    NUM_OBJECT_TYPES = 0xA,
52
} OBJECT_TYPE_ID;
53
 
37 tristanc 54
// TODO:
55
struct C3Vector {
56
    float x, y, z;
57
};
58
 
59
class CGObject_C // sizeof(CGObject_C) == 0xD0
60
{
61
public:
62
    template <typename T> T& GetValue(uint32 index) const { return *((T*)&m_data[index]); }
63
 
64
    virtual ~CGObject_C(); // 0
65
    virtual void Disable(); // 1
66
    virtual void Reenable(); // 2 Reenable(CClientObjCreate  const&)
67
    virtual void PostReenable(); // 3 PostReenable(CClientObjCreate  const&)
68
    virtual void HandleOutOfRange(); // 4 HandleOutOfRange(OUT_OF_RANGE_TYPE)
69
    virtual void UpdateWorldObject(); // 5 UpdateWorldObject(int)
70
    virtual void ShouldFadeout(); // 6
71
    virtual void UpdateDisplayInfo(); // 7 UpdateDisplayInfo(int)
72
    virtual void GetNamePosition(); // 8
73
    virtual void GetBag(); // 9
74
    virtual void GetBag2(); // 10
75
    virtual C3Vector& GetPosition(C3Vector &pos); // 11 GetPosition(C3Vector &)
76
    virtual C3Vector& GetRawPosition(C3Vector &pos); // 12 GetRawPosition(C3Vector &)
77
    virtual float GetFacing(); // 13
78
    virtual float GetRawFacing(); // 14
79
    virtual float GetScale(); // 15
80
    virtual unsigned long long GetTransportGUID(); // 16
81
    virtual void GetRotation(); // 17 returns C4Quaternion
82
    virtual void SetFrameOfReference(); // 18 SetFrameOfReference(C44Matrix  const*)
83
    virtual BOOL IsQuestGiver(); // 19
84
    virtual void RefreshInteractIcon(); // 20
85
    virtual void UpdateInteractIcon(); // 21
86
    virtual void UpdateInteractIconAttach(); // 22
87
    virtual void UpdateInteractIconScale(); // 23
88
    virtual BOOL GetModelFileName(char const** modelFileName); // 24 GetModelFileName(char  const**)
89
    virtual void ScaleChangeUpdate(); // 25
90
    virtual void ScaleChangeFinished(); // 26
91
    virtual void RenderTargetSelection(); // 27
92
    virtual void RenderPetTargetSelection(); // 28
93
    virtual void Render(); // 29
94
    virtual void GetSelectionHighlightColor(); // 30 GetSelectionHighlightColor(CImVector *)
95
    virtual float GetTrueScale(); // 31
96
    virtual void ModelLoaded(); // 32 ModelLoaded(CM2Model *)
97
    virtual void ApplyAlpha(); // 33 ApplyAlpha(uint)
98
    virtual void PreAnimate(); // 34 PreAnimate(CGWorldFrame *)
99
    virtual void Animate(); // 35 Animate(float)
100
    virtual void ShouldRender(); // 36 ShouldRender(uint,int &,int &)
101
    virtual float GetRenderFacing(); // 37
102
    virtual void OnSpecialMountAnim(); // 38
103
    virtual BOOL IsSolidSelectable(); // 39
104
    virtual void Dummy40(); // 40
105
    virtual BOOL CanHighlight(); // 41
106
    virtual BOOL CanBeTargetted(); // 42
107
    virtual void FloatingTooltip(); // 43
108
    virtual void OnRightClick(); // 44
109
    virtual BOOL IsHighlightSuppressed(); // 45
110
    virtual void OnSpellEffectClear(); // 46 OnSpellEffectClear(CEffect *)
111
    virtual void GetAppropriateSpellVisual(); // 47 GetAppropriateSpellVisual(SpellRec  const*,SpellVisualRec &,int,int)
112
    virtual void ConnectToLightningThisFrame(); // 48 ConnectToLightningThisFrame(uint,int)
113
    virtual void GetMatrix(); // 49
114
    virtual void ObjectNameVisibilityChanged(); // 50 
115
    virtual void UpdateObjectNameString(); // 51 UpdateObjectNameString(int,char *,uint)
116
    virtual void ShouldRenderObjectName(); // 52 ShouldRenderObjectName(int)
117
    virtual void GetObjectModel(); // 53
118
    virtual const char* GetObjectName(); // 54
119
    virtual void GetPageTextID(); // 55 GetPageTextID(void (*)(int,ulong long  const&,void *,bool))
120
    virtual void CleanUpVehicleBoneAnimsBeforeObjectModelChange(); // 56
121
    virtual void ShouldFadeIn(); // 57
122
    virtual float GetBaseAlpha(); // 58
123
    virtual BOOL IsTransport(); // 59
124
    virtual BOOL IsPointInside(); // 60 IsPointInside(C3Vector  const&)
125
    virtual void AddPassenger(); // 61 AddPassenger(CPassenger *,int)
126
    virtual float GetSpeed(); // 62
127
    virtual void PlaySpellVisualKit_PlayAnims(); // 63 PlaySpellVisualKit_PlayAnims(SpellRec  const*,SpellVisualKitRec  const*,SPELL_VISUAL_KIT_TYPE,C3Vector  const*,int,int,ulong long,ulong,SpellVisualRec  const*,uint,int)
128
    virtual void PlaySpellVisualKit_HandleWeapons(); // 64 PlaySpellVisualKit_HandleWeapons(SpellRec  const*,SpellVisualKitRec  const*,C3Vector  const*,ulong long,ulong,uint,void (*)(CM2Model *,uint,uint,int,uint,ulong long,int),int *,uint,int)
129
    virtual void PlaySpellVisualKit_DelayLightningEffects(); // 65 PlaySpellVisualKit_DelayLightningEffects(SpellRec  const*,SpellVisualKitRec  const*,SPELL_VISUAL_KIT_TYPE,C3Vector  const*,ulong long,int,int,int,int,uint,SpellVisualRec  const*,uint,int)
130
 
38 tristanc 131
    OBJECT_TYPE_ID GetTypeID() const { return m_typeID; }
37 tristanc 132
private:
133
    // void* vtable;        // 0x0
134
    uint32 m_field4;        // 0x4
135
    uint32 *m_data;         // 0x8
136
    uint32 m_fieldC;        // 0xC
137
    uint32 m_field10;       // 0x10
38 tristanc 138
    OBJECT_TYPE_ID m_typeID;// 0x14
37 tristanc 139
    uint32 m_field18[46];   // 0x18
140
};
40 tristanc 141
 
142
 
143
#endif//OBJECT_C_H