Automatically generated, so types are up to you.
Code:
//2nd comment value = flags
struct CGObjectData
{
ulong m_guid; //0x0 | 0x1
ulong m_data; //0x8 | 0x1
uint m_type; //0x10 | 0x1
uint m_entryID; //0x14 | 0x80
uint m_dynamicFlags; //0x18 | 0x180
uint m_scale; //0x1C | 0x1
}; //0x20
struct CGItemData
{
struct CGObjectData;
ulong m_owner; //0x0 | 0x1
ulong m_containedIn; //0x8 | 0x1
ulong m_creator; //0x10 | 0x1
ulong m_giftCreator; //0x18 | 0x1
uint m_stackCount; //0x20 | 0x4
uint m_expiration; //0x24 | 0x4
uint m_spellCharges[5]; //0x28 | 0x4
uint m_dynamicFlags; //0x3C | 0x1
uint m_enchantment[39]; //0x40 | 0x1
uint m_propertySeed; //0xDC | 0x1
uint m_randomPropertiesID; //0xE0 | 0x1
uint m_durability; //0xE4 | 0x4
uint m_maxDurability; //0xE8 | 0x4
uint m_createPlayedTime; //0xEC | 0x1
uint m_modifiersMask; //0xF0 | 0x4
}; //0xF4
struct CGContainerData
{
struct CGItemData;
uint m_slots[72]; //0x0 | 0x1
uint m_numSlots; //0x120 | 0x1
}; //0x124
struct CGUnitData
{
struct CGObjectData;
ulong charm; //0x0 | 0x1
ulong summon; //0x8 | 0x1
ulong critter; //0x10 | 0x2
ulong charmedBy; //0x18 | 0x1
ulong summonedBy; //0x20 | 0x1
ulong createdBy; //0x28 | 0x1
ulong target; //0x30 | 0x1
ulong battlePetCompanionGUID; //0x38 | 0x1
ulong channelObject; //0x40 | 0x101
uint channelSpell; //0x48 | 0x101
uint summonedByHomeRealm; //0x4C | 0x1
uint displayPower; //0x50 | 0x1
uint overrideDisplayPowerID; //0x54 | 0x1
uint health; //0x58 | 0x1
uint power[5]; //0x5C | 0x1
uint maxHealth; //0x70 | 0x1
uint maxPower[5]; //0x74 | 0x1
uint powerRegenFlatModifier[5]; //0x88 | 0x46
uint powerRegenInterruptedFlatModifier[5]; //0x9C | 0x46
uint level; //0xB0 | 0x1
uint effectiveLevel; //0xB4 | 0x1
uint factionTemplate; //0xB8 | 0x1
uint virtualItemID[3]; //0xBC | 0x1
uint flags; //0xC8 | 0x1
uint flags2; //0xCC | 0x1
uint auraState; //0xD0 | 0x1
ulong attackRoundBaseTime; //0xD4 | 0x1
uint rangedAttackRoundBaseTime; //0xDC | 0x2
uint boundingRadius; //0xE0 | 0x1
uint combatReach; //0xE4 | 0x1
uint displayID; //0xE8 | 0x180
uint nativeDisplayID; //0xEC | 0x101
uint mountDisplayID; //0xF0 | 0x101
uint minDamage; //0xF4 | 0x16
uint maxDamage; //0xF8 | 0x16
uint minOffHandDamage; //0xFC | 0x16
uint maxOffHandDamage; //0x100 | 0x16
uint animTier; //0x104 | 0x1
uint petNumber; //0x108 | 0x1
uint petNameTimestamp; //0x10C | 0x1
uint petExperience; //0x110 | 0x4
uint petNextLevelExperience; //0x114 | 0x4
uint modCastingSpeed; //0x118 | 0x1
uint modSpellHaste; //0x11C | 0x1
uint modHaste; //0x120 | 0x1
uint modHasteRegen; //0x124 | 0x1
uint createdBySpell; //0x128 | 0x1
uint npcFlags[UMNW0]; //0x12C | 0x81
ulong npcFlags; //0x130 | 0x1
uint stats[5]; //0x138 | 0x6
uint statPosBuff[5]; //0x14C | 0x6
uint statNegBuff[5]; //0x160 | 0x6
uint resistances[7]; //0x174 | 0x16
uint resistanceBuffModsPositive[7]; //0x190 | 0x6
uint resistanceBuffModsNegative[7]; //0x1AC | 0x6
uint baseMana; //0x1C8 | 0x1
uint baseHealth; //0x1CC | 0x6
uint shapeshiftForm; //0x1D0 | 0x1
uint attackPower; //0x1D4 | 0x6
uint attackPowerModPos; //0x1D8 | 0x6
uint attackPowerModNeg; //0x1DC | 0x6
uint attackPowerMultiplier; //0x1E0 | 0x6
uint rangedAttackPower; //0x1E4 | 0x6
uint rangedAttackPowerModPos; //0x1E8 | 0x6
uint rangedAttackPowerModNeg; //0x1EC | 0x6
uint rangedAttackPowerMultiplier; //0x1F0 | 0x6
uint minRangedDamage; //0x1F4 | 0x6
uint maxRangedDamage; //0x1F8 | 0x6
uint powerCostModifier[7]; //0x1FC | 0x6
uint powerCostMultiplier[7]; //0x218 | 0x6
uint maxHealthModifier; //0x234 | 0x6
uint hoverHeight; //0x238 | 0x1
uint minItemLevel; //0x23C | 0x1
uint maxItemLevel; //0x240 | 0x1
uint wildBattlePetLevel; //0x244 | 0x1
uint battlePetCompanionNameTimestamp; //0x248 | 0x1
}; //0x24C
struct CGPlayerData
{
struct CGUnitData;
ulong duelArbiter; //0x0 | 0x1
uint playerFlags; //0x8 | 0x1
uint guildRankID; //0xC | 0x1
uint guildDeleteDate; //0x10 | 0x1
uint guildLevel; //0x14 | 0x1
uint hairColorID; //0x18 | 0x1
uint restState; //0x1C | 0x1
uint arenaFaction; //0x20 | 0x1
uint duelTeam; //0x24 | 0x1
uint guildTimeStamp; //0x28 | 0x1
uint questLog[750]; //0x2C | 0x20
uint visibleItems[38]; //0xBE4 | 0x1
uint playerTitle; //0xC7C | 0x1
uint fakeInebriation; //0xC80 | 0x1
uint virtualPlayerRealm; //0xC84 | 0x1
uint currentSpecID; //0xC88 | 0x1
uint taxiMountAnimKitID; //0xC8C | 0x1
uint currentBattlePetBreedQuality; //0xC90 | 0x1
uint invSlots[172]; //0xC94 | 0x2
ulong farsightObject; //0xF44 | 0x2
uint knownTitles[8]; //0xF4C | 0x2
ulong coinage; //0xF6C | 0x2
uint XP; //0xF74 | 0x2
uint nextLevelXP; //0xF78 | 0x2
uint skill[448]; //0xF7C | 0x2
uint characterPoints; //0x167C | 0x2
uint maxTalentTiers; //0x1680 | 0x2
uint trackCreatureMask; //0x1684 | 0x2
uint trackResourceMask; //0x1688 | 0x2
uint mainhandExpertise; //0x168C | 0x2
uint offhandExpertise; //0x1690 | 0x2
uint rangedExpertise; //0x1694 | 0x2
uint combatRatingExpertise; //0x1698 | 0x2
uint blockPercentage; //0x169C | 0x2
uint dodgePercentage; //0x16A0 | 0x2
uint parryPercentage; //0x16A4 | 0x2
uint critPercentage; //0x16A8 | 0x2
uint rangedCritPercentage; //0x16AC | 0x2
uint offhandCritPercentage; //0x16B0 | 0x2
uint spellCritPercentage[7]; //0x16B4 | 0x2
uint shieldBlock; //0x16D0 | 0x2
uint shieldBlockCritPercentage; //0x16D4 | 0x2
uint mastery; //0x16D8 | 0x2
uint pvpPowerDamage; //0x16DC | 0x2
uint pvpPowerHealing; //0x16E0 | 0x2
uint exploredZones[200]; //0x16E4 | 0x2
uint restStateBonusPool; //0x1A04 | 0x2
uint modDamageDonePos[7]; //0x1A08 | 0x2
uint modDamageDoneNeg[7]; //0x1A24 | 0x2
uint modDamageDonePercent[7]; //0x1A40 | 0x2
uint modHealingDonePos; //0x1A5C | 0x2
uint modHealingPercent; //0x1A60 | 0x2
uint modHealingDonePercent; //0x1A64 | 0x2
uint modPeriodicHealingDonePercent; //0x1A68 | 0x2
uint weaponDmgMultipliers[3]; //0x1A6C | 0x2
uint modSpellPowerPercent; //0x1A78 | 0x2
uint modResiliencePercent; //0x1A7C | 0x2
uint overrideSpellPowerByAPPercent; //0x1A80 | 0x2
uint overrideAPBySpellPowerPercent; //0x1A84 | 0x2
uint modTargetResistance; //0x1A88 | 0x2
uint modTargetPhysicalResistance; //0x1A8C | 0x2
uint lifetimeMaxRank; //0x1A90 | 0x2
uint selfResSpell; //0x1A94 | 0x2
uint pvpMedals; //0x1A98 | 0x2
uint buybackPrice[12]; //0x1A9C | 0x2
uint buybackTimestamp[12]; //0x1ACC | 0x2
uint yesterdayHonorableKills; //0x1AFC | 0x2
uint lifetimeHonorableKills; //0x1B00 | 0x2
uint watchedFactionIndex; //0x1B04 | 0x2
uint combatRatings[27]; //0x1B08 | 0x2
uint arenaTeams[21]; //0x1B74 | 0x2
uint battlegroundRating; //0x1BC8 | 0x2
uint maxLevel; //0x1BCC | 0x2
uint runeRegen[4]; //0x1BD0 | 0x2
uint noReagentCostMask[4]; //0x1BE0 | 0x2
uint glyphSlots[6]; //0x1BF0 | 0x2
uint glyphs[6]; //0x1C08 | 0x2
uint glyphSlotsEnabled; //0x1C20 | 0x2
uint petSpellPower; //0x1C24 | 0x2
uint researching[8]; //0x1C28 | 0x2
ulong professionSkillLine; //0x1C48 | 0x2
uint uiHitModifier; //0x1C50 | 0x2
uint uiSpellHitModifier; //0x1C54 | 0x2
uint homeRealmTimeOffset; //0x1C58 | 0x2
uint modRangedHaste; //0x1C5C | 0x2
uint modPetHaste; //0x1C60 | 0x2
ulong summonedBattlePetGUID; //0x1C64 | 0x2
uint overrideSpellsID; //0x1C6C | 0x202
uint lfgBonusFactionID; //0x1C70 | 0x2
uint lootSpecID; //0x1C74 | 0x2
uint overrideZonePVPType; //0x1C78 | 0x202
uint itemLevelDelta; //0x1C7C | 0x2
}; //0x1C80
struct CGGameObjectData
{
struct CGObjectData;
ulong m_createdBy; //0x0 | 0x1
uint m_displayID; //0x8 | 0x1
uint m_flags; //0xC | 0x101
uint m_parentRotation[4]; //0x10 | 0x1
uint m_factionTemplate; //0x20 | 0x1
uint m_level; //0x24 | 0x1
uint m_percentHealth; //0x28 | 0x101
uint m_stateSpellVisualID; //0x2C | 0x101
}; //0x30
struct CGDynamicObjectData
{
struct CGObjectData;
ulong m_caster; //0x0 | 0x1
uint m_typeAndVisualID; //0x8 | 0x80
uint m_spellID; //0xC | 0x1
uint m_radius; //0x10 | 0x1
uint m_castTime; //0x14 | 0x1
}; //0x18
struct CGCorpseData
{
struct CGObjectData;
ulong m_owner; //0x0 | 0x1
ulong m_partyGUID; //0x8 | 0x1
uint m_displayID; //0x10 | 0x1
uint m_items[19]; //0x14 | 0x1
uint m_skinID; //0x60 | 0x1
uint m_facialHairStyleID; //0x64 | 0x1
uint m_flags; //0x68 | 0x1
uint m_dynamicFlags; //0x6C | 0x80
}; //0x70
struct CGAreaTriggerData
{
struct CGObjectData;
ulong m_caster; //0x0 | 0x1
uint m_duration; //0x8 | 0x1
uint m_spellID; //0xC | 0x1
uint m_spellVisualID; //0x10 | 0x80
}; //0x14
struct CGSceneObjectData
{
struct CGObjectData;
uint m_scriptPackageID; //0x0 | 0x1
uint m_rndSeedVal; //0x4 | 0x1
ulong m_createdBy; //0x8 | 0x1
uint m_sceneType; //0x10 | 0x1
}; //0x14