Home › Class layouts › Unit › Unit::Instance

Needs the Community Extension. Not available in the unmodified game; works while the Community Extension mod is active (its own functions, or raw memory access with Mem/ObjMem).

Unit::Instance

GameCore::Unit::Instance — class, size 3344 bytes (0xd10).

Bases: Unit::CInstance at 0x0

Linux offset Member Type Windows Lua methods (inferred)
0x2f8 m_aiController FAutoVariable<unsigned int, GameCore::Unit::Instance>
0x310 m_aiGoal FAutoVariable<GameCore::PlotCoord, GameCore::Unit::Instance>
0x328 m_bIsLevied FAutoVariable<bool, GameCore::Unit::Instance>
0x340 m_aiAbilitiesPossessed FAutoVariable<Types::Vector<int, Types::LinearAlloc::Default<1, 0> >, GameCore::Unit::Instance> reads: UnitAbility:AddAbilityCount, UnitAbility:ChangeAbilityCount, UnitAbility:GetAbilities, UnitAbility:GetAbilityCount (+2 more)
0x368 m_abInvalidTerrainTypes FAutoVariable<Types::Vector<bool, Types::LinearAlloc::Default<1, 0> >, GameCore::Unit::Instance>
0x390 m_abIgnoreTerrainTypes FAutoVariable<Types::Vector<bool, Types::LinearAlloc::Default<1, 0> >, GameCore::Unit::Instance>
0x3b8 m_abIgnoreFeatureTypes FAutoVariable<Types::Vector<bool, Types::LinearAlloc::Default<1, 0> >, GameCore::Unit::Instance>
0x3e0 m_aiBonusPointsPerKill FAutoVariable<Types::Vector<int, Types::LinearAlloc::Default<1, 0> >, GameCore::Unit::Instance>
0x408 m_aiBonusPointsPerKillStrength FAutoVariable<Types::Vector<int, Types::LinearAlloc::Default<1, 0> >, GameCore::Unit::Instance>
0x430 m_aiBypassWallsPromotionClass FAutoVariable<Types::HashTable<unsigned char, 1, 0>, GameCore::Unit::Instance>
0x468 m_aiEnableWallAttackPromotionClass FAutoVariable<Types::HashTable<unsigned char, 1, 0>, GameCore::Unit::Instance>
0x4a0 m_eMilitaryFormation FAutoVariable<GameCore::MilitaryFormationTypes, GameCore::Unit::Instance> writes: Unit:SetMilitaryFormation; reads: Unit:SetMilitaryFormation
0x4b8 m_iDamage FAutoVariable<int, GameCore::Unit::Instance> writes: Unit:ChangeDamage, Unit:SetDamage; reads: Unit:ChangeDamage, Unit:SetDamage, UnitExperience:ChangeExperience
0x4d0 m_iFortifyTurns FAutoVariable<int, GameCore::Unit::Instance> writes: Unit:SetFortifyTurns
0x4e8 m_xMovesRemaining FAutoVariable<FixedPointT<8>, GameCore::Unit::Instance> reads: Unit:IsReadyToAutomate, Unit:IsReadyToMove, Unit:IsReadyToSelect
0x500 m_iAttacksRemaining FAutoVariable<int, GameCore::Unit::Instance>
0x518 m_iOperationTimer FAutoVariable<int, GameCore::Unit::Instance> reads: Unit:IsReadyToMove, Unit:IsReadyToSelect
0x530 m_iBuildCharges FAutoVariable<int, GameCore::Unit::Instance> 0x528 (Windows = Linux − 8; verified)
0x548 m_iParkCharges FAutoVariable<int, GameCore::Unit::Instance>
0x560 m_iActionCharges FAutoVariable<int, GameCore::Unit::Instance> writes: Unit:ChangeActionCharges; reads: Unit:ChangeActionCharges
0x578 m_iAirSlotModifier FAutoVariable<int, GameCore::Unit::Instance>
0x590 m_bDominantConquer FAutoVariable<bool, GameCore::Unit::Religion>
0x5a8 m_iUpgradeDiscount FAutoVariable<int, GameCore::Unit::Instance>
0x5c0 m_iDisasterCharges FAutoVariable<int, GameCore::Unit::Instance>
0x5d8 m_iEraStrengthModifier FAutoVariable<int, GameCore::Unit::Instance>
0x5f0 m_iBarbarianTribeIndex FAutoVariable<int, GameCore::Unit::Instance> reads: Unit:IsReadyToSelect
0x608 m_eBarbarianPlayerTarget FAutoVariable<GameCore::PlayerTypes, GameCore::Unit::Instance>
0x620 m_bAttackAfterMoving FAutoVariable<bool, GameCore::Unit::Instance>
0x638 m_iMoveAfterAttacking FAutoVariable<int, GameCore::Unit::Instance>
0x650 m_bIgnoreTerrainCost FAutoVariable<bool, GameCore::Unit::Instance>
0x668 m_bIgnoreZOC FAutoVariable<bool, GameCore::Unit::Instance> reads: Unit:IgnoresZOC
0x680 m_bExertZOC FAutoVariable<bool, GameCore::Unit::Instance>
0x698 m_bCanSeeThroughFeatures FAutoVariable<bool, GameCore::Unit::Instance>
0x6b0 m_bCanSeeThroughTerrain FAutoVariable<bool, GameCore::Unit::Instance>
0x6c8 m_bNeedsMovementCompletion FAutoVariable<bool, GameCore::Unit::Instance>
0x6e0 m_bEligibleToHeal FAutoVariable<bool, GameCore::Unit::Instance>
0x6f8 m_bHasHiddenVisibility FAutoVariable<bool, GameCore::Unit::Instance> reads: Unit:HasHiddenVisibility
0x710 m_bHiddenVisibilityForfeited FAutoVariable<bool, GameCore::Unit::Instance> reads: Unit:HasHiddenVisibility
0x728 m_bNeedsAttention FAutoVariable<bool, GameCore::Unit::Instance> reads: Unit:IsReadyToSelect
0x740 m_bIgnoreResourceMaintenance FAutoVariable<bool, GameCore::Unit::Instance>
0x758 m_kHealthModifiers FAutoVariable<GameCore::Unit::HealthModifiers, GameCore::Unit::Instance>
0x778 m_kHealthReligionModifiers FAutoVariable<GameCore::Unit::HealthReligionModifiers, GameCore::Unit::Instance>
0x798 m_kCombatModifers FAutoVariable<GameCore::Unit::CombatModifiers, GameCore::Unit::Instance> 0x790 (Windows = Linux − 8; verified)
0x830 m_kMovementModifiers FAutoVariable<GameCore::Unit::MovementModifiers, GameCore::Unit::Instance> reads: Unit:GetExtraMoves, Unit:IsReadyToSelect
0x860 m_kSightModifiers FAutoVariable<GameCore::Unit::SightModifiers, GameCore::Unit::Instance>
0x878 m_kAttackRangeModifiers FAutoVariable<GameCore::Unit::AttackRangeModifiers, GameCore::Unit::Instance>
0x890 m_kArchaeology FAutoVariable<GameCore::Unit::Archaeology, GameCore::Unit::Instance>
0x8d0 m_kEspionage FAutoVariable<GameCore::Unit::Espionage, GameCore::Unit::Instance>
0x968 m_kExperience FAutoVariable<GameCore::Unit::Experience, GameCore::Unit::Instance>
0x9c8 m_kGreatPerson FAutoVariable<GameCore::Unit::GreatPerson, GameCore::Unit::Instance> reads: Unit:IsGreatPerson
0x9f0 m_kReligion FAutoVariable<GameCore::Unit::Religion, GameCore::Unit::Instance>
0xa60 m_kRockBand FAutoVariable<GameCore::Unit::RockBand, GameCore::Unit::Instance>
0xb40 m_kTrade FAutoVariable<GameCore::Unit::Trade, GameCore::Unit::Instance>
0xb80 m_kSightPlots FAutoVariable<Types::Vector<GameCore::Unit::Sight::PlotEntry, Types::LinearAlloc::Default<1, 0> >, GameCore::Unit::Instance>
0xba8 m_formationID FAutoVariable<unsigned int, GameCore::Unit::Instance>
0xbc0 m_pkFormation Formation::Instance*
0xbc8 m_aiPlanner AI::Planning::Instance*
0xbd0 m_kOperationsDisabled FAutoVariable<GameCore::IndexList<bool, GameCore::Definition::DefinitionCollectionWithTypeIndex<GameCore::Definition::UnitOperation>, &GameCore::Definitions::GetUnitOperationDefinitions, void>, GameCore::Unit::Instance>
0xc00 m_kOperations FAutoVariable<GameCore::Unit::Operations::OperationQueue, GameCore::Unit::Instance>
0xcd8 m_kHero FAutoVariable<GameCore::Unit::Hero, GameCore::Unit::Instance> reads: Unit:ChangeDamage, Unit:GetOperationParameter, Unit:GetOperationType, Unit:HasPendingOperations (+5 more)
0xd00 m_ModifierObject ModifierObjectReference reads: Unit:IsHero

The Windows column is filled in only for members that were checked against Windows code. For the rest, use the Linux offset with the rule above.