Table of Contents

Updated to commit 30dd93e73c0aa1694abc00bddf2210326a66f3ef

Breaking Changes

  • MaterialResourceHandle
    • Redefined inheritance to be from DefaultResourceHandle
  • ShaderPackageResourceHandle
    • Redefined inheritance to be from DefaultResourceHandle
  • ShaderGroupResourceHandle
    • Redefined inheritance to be from DefaultResourceHandle
  • SkeletonResourceHandle
    • Redefined inheritance to be from DefaultResourceHandle
  • Thread
    • Removed args field
  • AgentSatisfactionSupplyResult
    • CurrentSatisfactionNpcRowId is no longer off by one based on the sheet row id. This was something that wasn't caught before 7.3 breaking changes were merged and was behaviorally wrong compared to the game.
  • AgentSatisfactionSupply
    • DeliveryInfo sub structure moved places
    • Combined fields
      • Item*Row -> ItemRows
      • Item*Reward*Row -> ItemRewardRows*
      • CrafterScripRow* -> CrafterScripRow
      • GathererScripRow* -> GathererScripRow
      • CrafterScripId* -> CrafterScripIds
      • GathererScripId* -> GathererScripIds
  • AgentDeliveryItemInfo
    • Moved from Client.UI.Agent to Client.UI.Agent.AgentSatisfactionSupply
    • Renamed to DeliveryItemInfo
  • InventoryContainer
    • Field Size changed type from uint to int
    • Function GetSize changed return type from uint to int
  • InventoryItem
    • Function Dtor added param freeFlags which was previously missing
  • PaladinGuage
    • Field ConfiteorComboStep changed type from ushort to byte
  • PartyMember
    • Fields X, Y, Z has been combined to a Position field
  • HouseId
    • Field Id changed type from long to ulong
    • Implicit cast changed type from long to ulong
  • WKSManager
    • Field Research renamed to ResearchModule change type from WKSResearch to WKSResearchModule
  • WKSResearch
    • Renamed to WKSResearchModule
  • Framework
    • Fields Ex(1-5)Version removed
    • Added ExVersions
  • GameWindow
    • Field ArgumentCount changed type from ulong to int
    • Field Arguments changed type from byte** to CStringPointer*
    • Method GetArgument removed
  • AgentChatLog
    • Field LinkedItem changed type from InventoryItem to AgentChatLog.LinkedInventoryItem
    • Field LinkedItemQuality removed
    • Method SetTabName got inlined in 7.3 and thus removed
  • AgentChatLog.LinkedInventoryItem
    • Field Quality renamed to LinkedItemQuality
  • AgentInventoryContext
    • Method OpenForItemSlot now only accepts InventoryType as first param
  • AgentMap
    • Field FlagMapMarker renamed to FlagMapMarkers changed type from FlagMapMarker to Span<FlagMapMarker>
    • Field IsFlagMarkerSet renamed to FlagMarkerCount changed form bool to byte
  • PouchInventoryItem
    • Moved into AgentMJIPouch
  • RaptureAtkModule
    • Method OpenAddon param parentAgent renamed to eventInterface changed type from AgentInterface* to AtkModuleInterface.AtkEventInterface*
    • Method OpenAddonByAgent param eventKind changed type from nint to ulong
  • AtkCollisionNode
    • Field CollisionType changed type from ushort to CollisionType
  • AtkComponentBase
    • Method GetImageNodeById changed return type from AtkResNode* to AtkImageNode*
    • Method GetTextNodeById changed return type from AtkResNode* to AtkTextNode*
  • AtkComponentTextInput
    • Field InputSanitizationFlags changed type from ushort to AllowedEntities
  • AtkImageNode
    • Method LoadTexture param scale changed type from uint to int
  • AtkTextInput
    • Field CompletionDepth changed type from uint to ushort
  • AtkTexture
    • Method LoadIconTexture param version renamed to iconSubFolder changed type from int to IconSubFolder
  • AtkTimeline
    • Method GetInterpolatedValue changed return type from void to bool
  • AtkUldComponentDataTextInput
    • Field Flags1 changed type from byte to TextInputFlags1
    • Field Flags2 changed type from byte to TextInputFlags2
  • TextInputFlags1
    • Changed underlying type to byte
  • TextInputFlags2
    • Changed underlying type to byte
  • AtkUldManager
    • Method CreateAtkComponent param type changed type from ComponentType to uint
      • Overload method taking old type still exists for now
    • Method CreateAtkNode param type changed type from NodeType to uint
      • Overload method taking old type still exists for now
  • AtkUnitBase
    • Method FireCallbackInt changed return type from byte to bool
    • Method FireCallback changed return type from byte to bool
  • StringArrayData
    • Field StringArray changed type from byte** to CStringPointer*
    • Field ManagedStringArray changed type from byte** to CStringPointer*
  • ActionManager
    • UseActionLocation param byte a7 added
  • InventoryManager
    • MoveItemSlot unk param renamed to a6 and changed to bool from byte
  • AddonAetherCurrent
    • SetTab changed return type from void to bool
  • InfoProxyItemSearch
    • ProcessRequestResult return type changed from nint to void
  • CharaViewPortrait
    • ExportPortraitData return type changed from nint to void
    • ImportPortraitData return type changed from nint to void
    • ToggleGearVisibility param bool hideVieraEars added
  • AtkTextNode
    • Field TextFlags2 removed
    • Field TextFlags changed type from TextFlags
  • TextFlags
    • Changed underlying type from int to ushort
  • TextFlags2
    • Removed and values moved into TextFlags

The following structs with Is(A-Z), Has(A-Z), Can(A-Z) fields and functions regex matched has had their types changed type from byte to bool

  • RecastDetail
  • CastInfo
  • MJIManager
  • BannerData
  • InstanceContent
  • PlayerState
  • PvPProfile
  • Telepo
  • CharacterBase
  • AddonNamePlate
  • AgentActionDetail
  • AgentContentsFinder
  • AgentHUD
  • AgentLookingForGroup
  • AgentMonsterNote
  • AgentSatisfactionSupply
  • InfoProxyCrossRealm
  • LogViewer
  • BannerModule
  • RaptureHotbarModule.HotbarSlot
  • AtkUldComponentDataListItemRenderer

Changes

  • Thread
    • Added 3 virtual functions
      • Dtor
      • RequestStop
      • Run
  • Telepo
    • Added 4 new fields
      • AddonId
      • EstateType
      • HouseId
      • IsFreeAetheryte
  • Framework
    • Added field ExVersions
  • GameWindow
    • Added method ArgumentsSpan
  • RaptureAtkModule
    • Added 2 new fields
      • AudioClientRpcTagSize
      • AudioClientRpcTag
  • UIModuleInterface
    • Added method ShouldLimitFps
  • ConfigOption
    • To many config options added to list sanely
  • AgentInspect
    • Added field GlamourItems
  • AgentInspect.ItemData
    • Added 4 fields
      • GlamourItemId
      • IconId
      • CanCompare
      • CanTryOn

New Structs and Enums

  • DefaultResourceHandle
  • ContentInventoryContainer
  • ContentInventoryItem
  • ContentInventoryManager
  • ContentInventoryProvider
  • WKSContentInventoryContainer
  • WKSContentInventoryItem
  • WKSContentInventoryProvider
  • Framework.ExVersionStrings

Obsolete slated for removal in 7.31

These have been marked with error on compile

  • Client.Graphics.Scene.Human
    • HeadDecal
    • TopDecal
    • ArmsDecal
    • LegsDecal
    • FeetDecal
    • EarDecal
    • NeckDecal
    • WristDecal
    • RFingerDecal
    • LFingerDecal
  • Client.Game.Conditions
    • Crafting40
    • Gathering42
    • AutorunActive
    • UsingParasol
  • Client.Game.Fate.FateContext
    • TerritoryId
  • Client.Game.Fate.FateContext.FateMapMarker
    • IconId
    • Position
    • Radius
    • TerritoryId
  • Client.Game.InstanceContent.OccultCrescentMKDData
    • CipherItemId
    • CipherNameId
  • Client.Game.InventoryType
    • DamagedGear
  • Client.Game.Object.ObjectKind
    • MjiObject
  • Client.Game.Object.MJIObject
    • Struct marked
  • Client.Game.ReconstructionBoxManager
    • Struct marked
  • Client.Game.StatusManager
    • SetStatus(int statusIndex, ushort statusId, float remaining, ushort param, uint sourceId, bool refreshFlags)
  • Client.Game.StatusManager
    • SourceId
  • Client.Game.UI.MapMarkerData
    • X
    • Y
    • Z
  • Client.Graphics.Physics.BoneSimulator
    • Spring
  • Client.System.Resource.Handle.SharedGroupResourceHandle
    • SceneChunk
  • Client.UI.AddonCharacter
    • CharacterPreviewCollisionNode
  • Client.UI.AddonCharacterInspect
    • PreviewComponent
  • Client.UI.Agent.AgentContentsFinder
    • SelectedDutyId
  • Client.UI.Agent.AgentInspect.FreeCompanyData
    • IsPartOfFreeCompany
  • Client.UI.Agent.AgentItemDetail
    • ItemKind
  • Client.UI.Agent.PouchInventoryItem
    • SlotIndex
  • Client.UI.Agent.AgentRecipeNote
    • OpenRecipeByItemId(uint itemId)
  • Component.GUI.AtkComponentBase
    • GetScrollBarNodeById(uint id)
    • IsAnimated()
    • OnUldUpdate(float delta)
  • Component.GUI.AtkComponentIcon
    • IconAdditionsContainer
  • Component.GUI.AtkComponentTextInput
    • MaxTextLength
    • MaxTextLength2
  • Component.GUI.AtkCursor.CursorType
    • ResizeNWSR
  • Component.GUI.AtkEventType
    • DragDropCancel
  • Component.GUI.AtkEventStateFlags
    • Forwarded
    • Completed
  • Component.GUI.AtkModule
    • UnitBaseCallbackHandler(AtkValue* returnValue, AtkValue* values, uint valueCount)
  • Component.GUI.AtkResNode
    • GetAsAtkTextNineGrid()
    • GetAsAtkJournalCanvas()
    • GetAsAtkHoldButton()
  • Component.GUI.AtkStage
    • RegisteredEvents
  • Component.GUI.AtkTextureResourceManager
    • DefaultTextureVersion
  • Component.GUI.AtkTooltipArgs
    • Text
    • TypeSpecificId
    • Flags
  • Component.GUI.AtkTooltipType
    • TextItem
  • Component.GUI.AtkUldManager
    • Flags1
  • Component.GUI.AtkUldWidgetInfo
    • AlignmentType
    • X
    • Y
  • Component.GUI.AtkUnitBase
    • GetButtonNodeById(uint nodeId)
  • ItemDetailKind
    • Enum marked
  • AddonCharacterClass
    • ButtonNodes
  • WKSResearchModule
    • RatePercentage

Other notes

As usual any Unk field is ignored with this changelog as these are volatile until their properly named and as such should not be used without further research done to them.

Last non breaking change commit 2942549605a0b1c7dfb274afabfe7db0332415bc