summaryrefslogtreecommitdiff
path: root/src/Game/Actor/Player
AgeCommit message (Collapse)Author
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-08Action: rename 56 base classes to fit link orderLéo Lam
Action TUs link in case-insensitive file-name order, so a guessed base name that does not sort into the slot where the class's TU sits is wrong. Each new name sorts between the neighbouring TUs below and is coined from the class's params, derived classes and code. | Old | New | Links between | TU start | |---|---|---|---| | GiantAttackWithAS | AttackWithAS | AttackPartBind – AvoidingCloseMoveActionBase | 0x71000adf4c | | BattleCloseMoveActionBase | AvoidingCloseMoveActionBase | AttackWithAS – AvoidingCloseMoveBase | 0x71000ae354 | | ForbidTag | BasicSignalForbidTag | BasicSignalEnemyNotice – BattleCloseDangerAvoidRun | 0x71000ba90c | | NeckSpinBeam | BeamNeckSpin | BeamMove – NeckSpin | 0x71000c1eb8 | | PlayerStoleOpenBase | BindPlayerNodeBase | BindParentAction – BindPlayerNodeEx | 0x71000c6300 | | PlayerStoleOpenEx | BindPlayerNodeEx | BindPlayerNodeBase – BirdEscape | 0x71000c68a8 | | KokkoCreateDropBase | CreateDropBase | CreateAndReplaceAssassin – CreateEpona | 0x71000e3500 | | MoveToTargetCurveBase | CurveMoveToTargetBase | CreateObjectsOfOwnedHorse – DamagedTurn | 0x71000e4f8c | | ApplyDamageForPlayer | DemoApplyDamageBase | DeletePorchItemIncludeEquip – DemoApplyDamageForPlayer | 0x71000e78fc | | WarpPlayerBase | DestPlayerWarpBase | DemoVisibleOn – DestPointMoveBase | 0x71000ec7c8 | | RailMoveBase | DestPointMoveBase | DestPlayerWarpBase – DgnObj_DLC_CogWheel_Rotate | 0x71000ecff8 | | ChuchuDissappearEscapeBase | DisappearAndEscapeBase | DisableAutoSavePausing – DisappearDeathCounter | 0x71000f04b4 | | AttackPowerExplode | EitherSideExplode | EatWithAS – ElectricAttack | 0x7100102b3c | | EnemyFortressChatTurnBase | EnemyFortressChatLookBase | EnemyFortressChatCall – EnemyFortressChatSpeak | 0x7100107860 | | HornUseBase | EquipHornUseBase | EquipedWithScale – Escape | 0x71001131f4 | | EventHoverNullASPlayBase | EventNullASPlayBase | EventMiniGameTimerWrite – EventOpenGetDemo | 0x710011c8c8 | | FireWoodBase | FireBurnBase | FallAttack – FireWood | 0x710012d258 | | AreaFireObserveBase | FireObserveBase | AreaRecreateActorAction – OwnedHorseObserveAction (Area) | 0x7100e23d88 | | FlyingCharacterDamageBase | FlyingActorDamageBase | FlowingDust – FlyingCharacterFreeFallBase | 0x7100130748 | | ForkDynActorNoTargetSelfBase | ForkEndByConditionBase | ForkEmitShockWaveByContact – ForkEndByDistance | 0x71001503b0 | | ForkSimpleGrabBase | ForkGrabBase | ForkGolemMaterialASPlay – ForkGravityScaleChange | 0x71001579b8 | | ForkHoverKeepRotateTurnBase | ForkKeepRotateTurn | ForkJumpToTargetOnDownEnd – ForkKnockBackNoRot | 0x7100159c08 | | ForkEmitChmField | ForkTrgEmitChmFieldBase | ForkTimerForceResetCondition – ForkTurnASHold | 0x7100167ea0 | | ChuchuPreAttackBase | GelJumpBase | GelEnemySystemHideChase – GelJumpTackle | 0x71001806dc | | GiantEnemyWalkWithVibration | GiantEnemyMoveWithVibration | GiantDownSwingAttack – GiantEnemyWalk | 0x71001892d4 | | GiantNavMeshWalkWithVibration | GiantNavMeshMoveWithVibration | GiantHandClapToTarget – GiantNavMeshWalk | 0x7100189c64 | | GuardianMoveTo | GuardianActionBase | GuardBreak – GuardianAimBeam | 0x71001926f4 | | AnimalFollowBase | HorseFollowBase | HorseFollow – HorseFreeze | 0x71001a082c | | HorseRide | HorseRideBase | HorseRideAttack – HorseRideCancelCommand | 0x71001ad7ac | | HorseRideCommandBase | HorseRideOneTimeCommandBase | HorseRideOneTimeASPlay – HorseRideOneTimeViewASPlay | 0x71001aff3c | | OctarockReloadWigBase | IgniteActorReloadBase | IceBroken – IgnitedThrown | 0x71001b5258 | | TakeHitImpactForce | KnockBackHitImpactForce | Kick* – KokkoCreateDrop* | 0x71001c9268 | | SiteBossSwordWhirlSlashChargeBase | LastBossSwordWhirlSlashChargeBase | LastBossStun – LastBossThunderAppear | 0x71001d8210 | | Move2HomePosBase | MoveHomePosBase | MoveByAnimeDrivenToTarget – MoveKeyFramed | 0x71001ea488 | | MultiVacuumRotScaleTimeByDistWithTgtBase | MultiVacuumBase | Msg2CameraResetNoConnect – MultiVacuumRotBase | 0x71001edb88 | | MultiVacuumRotScaleTimeByDistWithTgt | MultiVacuumRotBase | MultiVacuumBase – MultiVacuumRotScaleTimeByDist | 0x71001eec0c | | NavMeshAction | NavMeshMoveBase | NavMeshLiftWalk – NavMeshMoveWithAS | 0x71001f0518 | | BackWalkEx | NormalBackWalk | NoDeleteCurrentActor – Notice | 0x71001f2f78 | | GiantOneHandActionWithLegTurn | OneHandActionWithLegTurn | OnCorrect – OnEnterSwapActorBase | 0x7100211194 | | ForkOnEnterSwapDropTableActorBase | OnEnterSwapActorBase | OneHandActionWithLegTurn – OnEnterSwapDropTable | 0x71002117ec | | ForkOnEnterSwapDropTableActor | OnEnterSwapDropTable | OnEnterSwapActorBase – OnEnterSwapDropTableActor | 0x7100211d0c | | RegistedActorDeadCheckBase | RegistedActorAllDeadCheckBase | ReflectThrown – RegistedActorBroadCastMessage | 0x7100229a34 | | RegistedActorActionBase | RegistedActorSetActionBase | RegistedActorDeadCheck – ReloadArrow | 0x710022a3a8 | | SendPlayerNoticeMessageBase | SendNoticeMessageBase | SendMessageBroadCast – SendPlayerNoticeMessage | 0x7100243cf0 | | SendMessageToTargetActor | SendTargetActorMessageBase | SendSignalForSignalFlowAct – SendTargetActorRequestShareAwn | 0x710024487c | | SideWalkBase | SideMoveBase | ShutterOpenWait – SideStep | 0x71002525a0 | | SimpleGrabWithASBase | SimpleGrabBase | SilentKilled – SimpleGrabWithAS | 0x71002544d4 | | KnockBackShock | SimpleKnockBackShock | SimpleGrabWithAS – SimpleLineBeam | 0x7100254ac8 | | SlippedCircleWalkBase | SlippedCircleMoveBase | SlippedBackWalkBase – SlippedCircleWalk | 0x710026fe88 | | SlippedWalkBase | SlippedMoveBase | SlippedCircleWalk – SlippedWalk | 0x7100270b68 | | ActionWithPosAngReduce | StopBase | StopASPlay – StopCliffTongueAttack | 0x710027e328 | | AttackBase | StoppingAttackBase | StopOnObj – StorePlayerPosAndRotate | 0x7100280554 | | SwimEnemyAnmBackBlownOffBase | SwimEnemyBlownOffBase | SwimEnemyAnmBackBlownOffToPL – SwimGetUp | 0x71002890d0 | | LookAtObjectBase | TurnAndLookToObjBase | TurnAndLookAtToObjectNow – TurnAndLookToObject | 0x710029e794 | | GiantAttack | TurnGiantAttack | TurnBase – TurnIgnite | 0x71002a1738 | | WillBallAction | WillBallBase | WillBallAvoidCenterDist – WillBallParabolaAttack | 0x71002bb4ec | \* The nearest correctly placed neighbour; the TUs in between are still misnamed. (AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-10-06Actor: PlayerInfo/PlayerBase are game, GameConfig ksysLéo Lam
Every decomp user of PlayerInfo is game code, and PlayerBase sits right above Player. GameConfig.h models the engine base that links at GameConfig's slot in KingSystem/System. (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-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)