#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