chore(profile): a lot of work having to do with graphics

This commit is contained in:
phaneron 2025-06-04 17:42:08 -04:00
parent ebf88595d9
commit 2363e04c76
153 changed files with 2402 additions and 566 deletions

View file

@ -0,0 +1,8 @@
#ifndef OBJECT_GUID_H
#define OBJECT_GUID_H
#include "system/types.h"
typedef uint64_t WOWGUID;
#endif

View file

@ -0,0 +1,49 @@
#ifndef OBJECT_OBJECT_H
#define OBJECT_OBJECT_H
DECLARE_STRUCT(CGObjectData);
DECLARE_STRUCT(CGObject);
DECLARE_STRUCT(CGObject_C__v_table);
#include "object/guid.h"
#include "object/type.h"
struct CGObjectData {
WOWGUID m_guid;
OBJECT_TYPE m_type;
int32_t m_entryID;
float m_scale;
uint32_t pad;
};
struct CGObject {
uint32_t* m_data;
CGObjectData* m_obj;
};
struct CGObject_C__v_table {
void* unk;
};
// class CGObject_C : CGObject {
struct CGObject_C {
CGObject_C__v_table* v_table;
CGObject b_base;
uint32_t unk[42];
float m_renderScale;
uint32_t unki;
// HMODEL m_model;
void* m_model;
uint32_t m_highlightTypes;
float m_objectHeight;
uint32_t m_worldObject;
uint32_t m_flags;
uint32_t m_fadeStartTime;
uint32_t m_fadeDuration;
uint8_t m_alpha;
uint8_t m_startAlpha;
uint8_t m_endAlpha;
uint8_t m_maxAlpha;
};
#endif

View file

@ -0,0 +1,29 @@
#ifndef OBJECT_TYPE_H
#define OBJECT_TYPE_H
DECLARE_ENUM(OBJECT_TYPE);
enum OBJECT_TYPE {
TYPE_OBJECT = 0x1,
TYPE_ITEM = 0x2,
TYPE_CONTAINER = 0x4,
TYPE_UNIT = 0x8,
TYPE_PLAYER = 0x10,
TYPE_GAMEOBJECT = 0x20,
TYPE_DYNAMICOBJECT = 0x40,
TYPE_CORPSE = 0x80,
TYPE_AIGROUP = 0x100,
TYPE_AREATRIGGER = 0x200,
HIER_TYPE_OBJECT = TYPE_OBJECT,
HIER_TYPE_ITEM = TYPE_OBJECT | TYPE_ITEM,
HIER_TYPE_CONTAINER = TYPE_OBJECT | TYPE_ITEM | TYPE_CONTAINER,
HIER_TYPE_UNIT = TYPE_OBJECT | TYPE_UNIT,
HIER_TYPE_PLAYER = TYPE_OBJECT | TYPE_UNIT | TYPE_PLAYER,
HIER_TYPE_GAMEOBJECT = TYPE_OBJECT | TYPE_GAMEOBJECT,
HIER_TYPE_DYNAMICOBJECT = TYPE_OBJECT | TYPE_GAMEOBJECT,
HIER_TYPE_CORPSE = TYPE_OBJECT | TYPE_CORPSE,
HIER_TYPE_AIGROUP = TYPE_OBJECT | TYPE_AIGROUP,
HIER_TYPE_AREATRIGGER = TYPE_OBJECT | TYPE_AREATRIGGER
};
#endif

View file

@ -0,0 +1,21 @@
#ifndef OBJECT_TYPEID_H
#define OBJECT_TYPEID_H
DECLARE_ENUM(OBJECT_TYPE_ID);
enum OBJECT_TYPE_ID {
ID_OBJECT = 0x0,
ID_ITEM = 0x1,
ID_CONTAINER = 0x2,
ID_UNIT = 0x3,
ID_PLAYER = 0x4,
ID_GAMEOBJECT = 0x5,
ID_DYNAMICOBJECT = 0x6,
ID_CORPSE = 0x7,
NUM_CLIENT_OBJECT_TYPES = 0x8,
ID_AIGROUP = 0x8,
ID_AREATRIGGER = 0x9,
NUM_OBJECT_TYPES = 0xA
};
#endif

View file

@ -0,0 +1,141 @@
#ifndef OBJECT_UNIT_H
#define OBJECT_UNIT_H
struct CGUnit {
}
DECLARE_STRUCT(CGUnit_C);
DECLARE_STRUCT(CGUnit);
struct __cppobj __declspec(align(8)) CGUnit_C : CGObject_C, CGUnit
{
int m_questCountKilled;
int m_questCountNeeded;
HMODEL__ *m_resEffectModel;
unsigned __int64 m_meleeTargetDeathHold;
int m_precastSheatheHoldTimer;
int m_customAttackSound;
NTempest::C3Vector m_customAttackPosition;
unsigned int m_splashSoundID;
unsigned int m_disengageLookAtTimer;
TSGrowableArray<ANIMENDDATA> m_animEndCallbackList;
ANIMENDDATA *m_callbackList[135];
CreatureStats_C *m_stats;
CreatureDisplayInfoRec *m_displayInfo;
CreatureDisplayInfoExtraRec *m_displayInfoExtra;
CreatureModelDataRec *m_modelData;
CreatureSoundDataRec *m_soundData;
CreatureSoundDataRec *m_mountedSoundData;
UnitBloodLevelsRec *m_bloodRec;
AuraVisual m_auraVisual[12];
TSList<ACTIVEAURAINFO,TSGetLink<ACTIVEAURAINFO> > m_activeAuraInfo;
ANIMENUMERATION m_pendingImpactAnim;
HMODEL__ *m_tempCharModel;
TSGrowableArray<char> m_deathHoldBuffer;
TSGrowableArray<unsigned int> m_deathHoldBufferIndices;
int m_lastDeathTime;
int m_nextDeathHoldCheckTime;
TSGrowableArray<QUESTGIVEREMOTENODE> m_emoteQueue;
HMODEL__ *m_interactIconModel;
TSList<BLOODSPLATNODE,TSGetLink<BLOODSPLATNODE> > m_bloodSplatNodes;
unsigned int m_nextAllowableBloodPool;
TSList<ANIMQUEUENODE,TSGetLink<ANIMQUEUENODE> > m_animQueue;
CCombatClient m_combat;
ANIMQUEUENODE *m_currentDamageInfo;
unsigned int m_readySequence;
unsigned int m_animEndTime;
unsigned int m_animBaseDuration;
unsigned int m_animStartTime;
unsigned int m_flags;
unsigned int m_animFlags;
unsigned int m_footprintTextureID;
unsigned int m_terrain;
NTempest::C2Vector m_footprintSize;
float m_footprintParticleScale;
DEBUGHITROLLINFO m_hitInformation;
ANIMENUMERATION m_spellPrecastingAnim;
ANIMENUMERATION m_spellCastingAnim;
ANIMENUMERATION m_deferredPrecastAnim;
int m_animatingAura;
unsigned int m_emoteID;
unsigned int m_spellCastingEffectKit;
unsigned int m_spellCastingSoundID;
int m_spellCastingCameraShakeID;
MISSILESTRUCT m_spellMissileStruct;
float m_lastSentFacing;
float m_lastSentPitch;
HPLAYERNAME__ *m_unitNameHandle;
int m_accumulatedXPDrop;
int m_castingSpell;
int m_interruptedSpell;
int m_lastSpellCastAnimTime;
int m_nextBreath;
int m_nextMountBreath;
int m_scriptRegistered;
float m_displayFacing;
float m_smoothFacing;
float m_savedFacingDeltas[4];
float m_forcedDisplayFacing;
unsigned int m_deathTime;
unsigned __int64 m_lastCombatTarget;
unsigned __int64 m_targetUnit;
unsigned int m_currentBaseAnimState;
unsigned int m_currentBaseAnim;
unsigned int m_currentTorsoAnimState;
unsigned int m_currentTorsoAnim;
unsigned int m_currentMountAnimState;
unsigned int m_currentWoundStartTime;
unsigned int m_currentWoundAnimDuration;
unsigned int m_spellFizzleTimer;
unsigned int m_deathHolds;
QUEST_GIVER_STATUS m_questGiverStatus;
NTempest::C3Vector m_serverLoc;
TSGrowableArray<NTempest::C3Vector> m_debugPathPoints;
unsigned int m_numDebugPathNodes;
Sound *m_spellLoopedSound;
Sound *m_creatureLoopSound;
unsigned int m_mountedFootprintID;
NTempest::C2Vector m_mountedFootprintSize;
HMODEL__ *m_fadingPureMountModel;
PUREMOUNTFADEMODE m_pureMountFadeMode;
unsigned int m_pureMountFadeStartTime;
float m_fadingMountFacing;
NTempest::C3Vector m_fadingMountPos;
float m_fadingMountScale;
NPCSoundsRec *m_NPCSoundsRec;
unsigned int m_lastGlobalClickCount;
unsigned int m_pissedCount;
unsigned int m_numNPCPissedSounds;
HCHARGEOSET__ *m_geosetHandle;
HTEXCOMPONENT__ *m_texComponent;
unsigned int m_preferredGeosets[15];
int m_displayHealth;
TSList<IMPACTEFFECTDESC,TSGetLink<IMPACTEFFECTDESC> > m_impactEffectsDesc;
TSList<SPELLEFFECTDESC,TSGetLink<SPELLEFFECTDESC> > m_spellEffectLists[11];
NTempest::C3iVector m_currentEmissive;
int m_pendingHitSpellID;
TSGrowableArray<unsigned __int64> m_pendingHitAnimVictims;
int m_auraFlags[56];
int m_walkStateAnim;
int m_standStateAnim;
float m_baseRadius;
unsigned int m_ammoDisplayID;
unsigned int m_ammoInvType;
unsigned int m_rangedStandTimer;
ACTIVEATTACHMENTINFO *m_attachments[5];
ACTIVEATTACHMENTINFO *m_deferredAttachments[5];
int m_weaponTrails[5];
HMODEL__ *m_paperDollModel;
int m_sheatheReasons;
ANIMENUMERATION m_handAnim[2];
unsigned int m_deferredSheatheFlags;
SHEATHEREASONS m_deferredSheatheReason;
int m_savedChannelSpellID;
TSGrowableArray<unsigned __int64> m_savedChannelSpellTargets;
SPELLEFFECTDESC *m_channelSpellEffect;
SpellRec *m_shapeShiftPoof;
FishingLineObject *m_fishingLineObject;
};
#endif