summaryrefslogtreecommitdiff
path: root/src/Game/Actor/AI
AgeCommit message (Collapse)Author
2026-10-19uking: fix class and function namesLéo Lam
Wrong or placeholder class and function names (GameSceneSubsys12, Root4, IceBlockMgr...) take the IDB names; for instance GameScene's *Reenter handlers are actually *ReceiveMessage. Also declares isStageSelectState in namespace uking in E3Mgr.cpp, since it sits among the GameScene free functions. (AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-10-13Action, AI, Query: sort the source lists by file nameLéo Lam
These objects are linked in case-insensitive file name order, but the lists kept renamed files at their old positions, so the decomp linked them out of order. (AI assisted using Claude Opus 5.5)
2026-10-11ksys/act: rename the actor accessor to ActorLinkConstDataAccessLéo Lam
The 0x18-sized accessor appears to be named ActorLinkConstDataAccess based on a source path string in the Wii U build. The 0x10-sized base class (which we had given the name to) only holds a BaseProc and its dtor/acquire functions live in a separate TU so let's rename it BaseProcAccessor (unofficial name). acquireActor is a header inline whose one copy landed in the BeamBase object. Nothing in BeamBase calls it, so the BeamBase function that used it was probably dead-stripped by the linker. (AI assisted using Claude Opus 5.5)
2026-10-06ActorSystem: Fork AIs, DemoRootAI and queries are ksysLéo Lam
They form one run in the ActorSystem block (DemoRootAI at 0x7100d61e68, right after VillagerMgr). (AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-10-06aoc: Manager is ksys, the DLC managers stay game-sideLéo Lam
aoc::Manager is created during engine start-up and called by gdt, map and StarterPackMgr; only game code uses HardModeManager and ChampionBalladManager. (AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-10-06snd: move sound actions and AIs to KingSystem/SoundLéo Lam
They link with KingSystem/Sound (0x7100fe8b54-0x7101060ed4) as sorted Action/AI passes of their own. The three area tag actions keep their game base AreaTagAction, which links in the Game/Actor/Area block. (AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-10-04AI: rename misordered base classesLéo Lam
AI and Action TUs link in case-insensitive file-name order, so a guessed base name that breaks it is wrong. Each new name sorts into the slot where the class's TU sits (neighbouring TUs and an address in the TU below) and comes from the class's params, child states and derived classes. ai:: | Old | New | Links between | In TU | |---|---|---|---| | AddViewTargetPosBase | AddViewTarget | AddSwarmMove – AddViewTargetPos | 0x71002f9c68 | | AncientNecklaceBallBase | PlayASSwitch | PipeDrawing – PlayerSetTarget | 0x71004f6a78 | | AnimalRoamBase | AnimalRndMove | AnimalRangeKeepMoveWithLOS – AnimalRoam | 0x710030a6c0 | | AppearNearTarget | AppearFromTarget | AnimalTimelineAI – AppearFromTargetFrontAfterChase | 0x710030d868 | | AssassinFieldShooterBattleBase | AssassinShooterBattle | AssassinRoot – AssassinShooterJuniorAzitoRoot | 0x7100321dc4 | | AssassinMagicTgtSelect | TargetHeightAreaSelect | TargetExistSelect – TargetHomeDir | 0x71005bef5c | | AssassinNormal | GuardHomePosNormal | GuardFrequencySelect – GuardianAI | 0x710040cd68 | | BeamExplodeBase | SimpleBeamExplode | SimpleASBridge – SimpleEnemyNormal | 0x710056c5fc | | ChildFavoriteSelectorBase | ChildSelector | ChildHaveSelect – ChmCheck | 0x710034aad0 | | DragonRootBase | ControlRailRoot | ConditionMoveActionSelect – CookPotRoot | 0x7100356664 | | EnemyChemTargetActionBase | EnemyTargetAction | EnemySyncAttack – EnemyTargetGearSelect | 0x71003bf75c | | FlyingEnemyKeepMove | FlyingEnemyDistanceKeepMove | FlyingEnemyDiagonallyKeepMove – FlyingEnemyFindPlayer | 0x71003d1694 | | GoronCannonBase | BigCannon | BezierRailMove – BirdDead | 0x710032cd80 | | GuardNearTarget | InvincibleNearTargetBase | InvincibleNearTarget – InvisibleKorokRailMove | 0x710044c6b8 | | GuardianBeamAttackBase | GuardianCommonBeamAttack | GuardianCloseBattle – GuardianDown | 0x7100411da0 | | HorseCheckLineOfSightSelectorBase | CheckLineOfSightSelector | ChaseSound – ChemicalEnemyFindPlayer | 0x7100346868 | | LargeEnemyFindPlayer | GiantEnemyFindPlayer | GiantEarthReleaseAttack – GiantEscapeFromDamageWater | 0x71003f69c8 | | MimicCliffStopEnemyNormalBase | CliffStopEnemyNormal | CliffDistanceSelectThreeAction – CloseSmallAttackBase | 0x71003522f4 | | MiniBeamAttack | GuideBeamAttackEnemyBattle | GuardianWait – GyroActivateTerminal | 0x710042cae8 | | MotorcycleRootBase | HorseRiddenStatusSelector | HorseRiddenByNPC – HorseRideChargeAttack | 0x710043ea88 | | NPCTravelBase | NPCScheduleMove | NPCRunaway – NPCSearch | 0x71004df66c | | NonPlayerHorseRide | RideHorseNonPlayer | RideHorseAI – WildHorseDefWanderAI (Horse) | 0x7100e60178 | | OctarockEscape | OctarockHideEscapeBase | OctarockHideEscape – OctarockOptionRoot | 0x71004ec368 | | OctarockRootBase | VacuumEnemyRoot | VacuumedBombDamageSelect – VehicleSelector | 0x71005e3348 | | OneMemoryMagicBattleBase | MagicBattle | LynelWarp – MagneGearRoot | 0x710049d0d8 | | PriestBossMode | PriestBoss | PreyStun – PriestBossActorCloneRoot | 0x7100505b7c | | RailMove | BezierRailMove | BeeSwarmRoot – BigCannon | 0x710032bbf0 | | RangeSelect | NewRangeSelect | NewMannequinRoot – NormalHumanEquipableShield | 0x71004bc0e8 | | RegistedActorNumTwoSelectBase | RegistedActor | ReflectableThrown – RegistedActorNumTwoSelect | 0x710053dfcc | | RemainElectricCannonRootBase | LargeCannonRoot | LargeCannonAttackRoot – LastAttackerSelect | 0x71004741e4 | | SandwormNormalBase | AwnSeal | AwarenessScale – BackAttackEnemyBattle | 0x71003258b4 | | SeqTwoLineReachableTargetActionBase | SeqTwoLineReachableTarget | SeqTwoAction – SeqTwoLineReachableTargetAction | 0x7100567460 | | SimpleWildlifeRoot | CapturedActorRoot | CapturedActorReactionChemical – CarryBox | 0x7100342690 | | SiteBossChemicalProjectile | GanonFlameBall | GanonFarAttackRootOnWall – GanonGrudgeNormal | 0x71003e996c | | SiteBossRecognizeRootBase | LastBossRecognizeRoot | LastBossRailWarpRoot – LastBossRoot | 0x7100478930 | | SpecialEnemySleep | SleepNormal | SleepBedRoot – SleepSelect | 0x710059a8c0 | | TargetAttackAttitudeTgtSelectBase | TargetAttackAttitudeTgt | TargetAngerSelect – TargetAttackAttitudeTgtSelect | 0x71005bb3ac | | TargetPosAI | TargetActorPos | TargetActorGrabAdapter – TargetAngerSelect | 0x71005bab4c | | TargetPosDynParamRot | TargetPosDynParamRotFromMyPos | TargetPosDynParamRotFromCtrPos – TargetPosLostCheck | 0x71005c4f8c | | TargetPosOffset | OffsetTargetPos | OctarockWaterWait – OnCliffEnemyBattle | 0x71004f16d8 | | TimedGuardNearTarget | InvincibleNearTarget | InvincibleHiddenOctarock – InvincibleNearTargetBase | 0x710044c1a4 | | UnarmedEnemySearch | NavMove | NavMeshTurnAwayFromHitPos – NavMoveNearTarget | 0x71004b5ec0 | | UnarmedEnemySearchWeapon | EnemySearch | EnemyRoot – EnemySearchHorse | 0x71003b6460 | | WholeDungeonRotateTag | DungeonRotateTagApp | DungeonRotateTag4WindApp – DungeonRotateTagCont | 0x7100379554 | action:: | Old | New | Links between | In TU | |---|---|---|---| | AirOctaFloatBase | AirOctaMoveBase | AirOctaMgr – AirOctaNoticeTurn | 0x71000880f8 | | AtkTackleMove | TackleAttack | SystemWarp – TackleMove | 0x71002910a4 | | BasicSignalEnemy | BasicSignalEnemyNotice | BasicSignalEnemyForceNotice – BattleCloseDangerAvoidRun* | 0x71000ba65c | | BattleCloseAction | AvoidingCloseMoveBase | AvoidingCloseMoveActionWithAcc – AwarenessShareOnePartsASPlay | 0x71000aed44 | | BattleCloseActionWithAcc | AvoidingCloseMoveActionWithAcc | AttackPartBind – AvoidingCloseMoveBase* | 0x71000ae8ec | | BattleCloseSlippedWalkBase | BattleCloseSlippedMoveBase | BattleCloseMoveAction – BattleCloseSlippedWalk | 0x71000becc8 | | CameraLockOnBase | CameraTrackBase | CameraTail – CameraWakeboard (Camera) | 0x71007850e4 | | ChargeAndShoot | ArrowChargeAndShoot | AreaRoot – ArrowShootHoming | 0x71000a17a4 | | ChemicalAttack | EmitAttackBase | ElectricParalysis – EmitElectricWaterBall | 0x7100104f54 | | ChemicalAttackBall | ChemicalAttack | CheckHorseCustomizeEdit – ChemicalElectricWaterBall | 0x71000db0e8 | | FlyingCharacterReaction | FlyingCharacterFreeFallBase | FlyingCharacterFreeFall – FlyingCharacterFreeFallDie | 0x7100132590 | | FollowChallenge | AppearFollowChallenge | AnimeDrivenTurn – AppearNumHeroSeal | 0x710004d0b4 | | ForkASTrgEmitShockWave | ForkEmitShockWave | ForkEmitExpandFieldWithCreate – ForkEmitShockWaveByContact | 0x710014f188 | | GolemThrowPartsToTargetBase | GolemThrowPartsBase | GolemRepairParts – GolemThrowPartsToTarget | 0x710018d678 | | HorseRideMoveCommand | HorseRideSetGearCommand | HorseRideSearch – HorseRideShoot | 0x71001b0828 | | OctarockBalloonBase | BalloonRopeBase | BalloonBase – BasicSignalBossAwakeSleep | 0x71000b8b9c | | PlayerGlide | PlayerParashawlGlideBase | PlayerParashawlGlide – PlayerPickUp (Player) | 0x710080352c | | PriestBossWarpOrVanish | PriestBossCloneFastWarp | PreJumpAttack – PriestBossClonesSpawn | 0x7100221304 | | RotateTurnToTarget | ASPlayRotateTurnToTarget | AscendingCurrentFixedSize – ASPlaySimpleAnmDriven | 0x71000a7bec | | SetGetFlagBase | SetFlag | SetExtraLifeOfPlayer – SetFrameASPlay | 0x7100247990 | | SimpleMessageDialogCtrl | ForkBasicMessageDialogCtrl | ForkAttackWithWeaponOrWithout – ForkBattleNodeForAttackGround | 0x71001471cc | | SiteBossBlowOff | LastBossBlowOff | LargeDamage – LastBossChemicalPillarAttack | 0x71001cf0ec | | SiteBossLswordAtk | SiteBossLswordAttack | SiteBossLswordAtkWithChemical – SiteBossLswordFireBall | 0x710025c470 | | WaitOnObjBase | StopOnObj | StopJump – StorePlayerPosAndRotate* | 0x710027f974 | | WaterUpDownMoveBase | WaterDepthMoveBase | WarpToStaticAnchor – WaterEmitter | 0x71002b33cc | Neighbours marked * are the nearest correctly placed TU; a TU that is itself still misnamed sits in between. (AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-10-04Move aiCameraEvent, AirOctaDataMgr, scenes, CameraMgrLéo Lam
Put each where link order does: aiCameraEvent in the camera AI run, AirOctaDataMgr right before aiAirOctaFlyUp, CameraMgr between the ActorSystem and Chemical runs. (AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-09-14Actor: move all AI code under Game/ActorLéo Lam
Link order shows one sorted actor tree, not a separate AI project: the Action/AI/Query folders and per-feature folders (Camera, Player, Horse, ...) come out of the same archive rounds as the actor classes. (AI assisted using Claude Fable 5.1 and Claude Opus 5.5)