summaryrefslogtreecommitdiff
path: root/src/Game/Actor
AgeCommit message (Collapse)Author
2026-10-19uking: name AutoPlacement::reset and AutoPlacementMgr creator functionsLéo Lam
The names come from the IDB. AddAutoPlacementCreator registers its actor with addCreator on enter and unregisters it with removeCreator on leave. (AI assisted using Claude Opus 5.5)
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-19uking/act: replace placeholder and wrong names, fix classesLéo Lam
Most rows replace placeholders (m<N>, x_N, nullsub_N, *Stuff). In the IDB, the Actor job virtuals are named preCalc/postCalc after TotK's calc stage names, and the Player virtuals after the GParamList fields they read. Some real names turned out to be wrong too, e.g. Enemy::kill is actually deleteAndCreateDropAndEmit. Rows move into uking::act, PlayerLinkBase/PlayerLink fold into PlayerBase/Player and PlayerOrEnemy into CombatActor. Also renames resetStuff and getMaxStaminaFromPlayerActor in the headers to resetDamageInfo and getMaxStamina to match. Also takes the IDB's names for some unnamed functions, mostly helper class members (IK controllers, Guardian parts, message receivers), and for other placeholders (x_N, nullsub_N, *Stuff). Some CarriedData rows move to the IDB's CarriedDataConstraint class. (AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-10-19data: fix class names in uking::actLéo Lam
Class names follow the IDB, e.g. PlayerOrEnemy is CombatActor and Root6 is CameraActorHolder. Some rows also take the IDB's function name, e.g. Weapon::isWeaponType4 is isShield. Also names ChemicalType's text table and updates a PlayerInfo comment for the CombatActor rename. (AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-10-15uking/scene: move the map getters to uking::StageInfoLéo Lam
They're linked before gameStageInfo.cpp's sinit with no other sinit in between, so they belong to gameStageInfo, not gameScene, and become StageInfo statics declared in gameStageInfo.h. Their GameScene owner was a guess. (AI assisted using Claude Opus 5.5)
2026-10-15ksys, uking: move four definitions to match link orderLéo Lam
calc_ goes before leave_ in ForceSetCameraPos and InWaterSelForkASPlay, and RailRoute's dtor goes after getCheckPointName (an unnamed row there is likely its D0). BaseProcJobHandler's ctor is linked right before BaseProc's ctor, so it moves into actBaseProc.cpp, and the class moves into actBaseProc.h so that its declaration stays with its definition. (AI assisted using Claude Opus 5.5)
2026-10-15Name placeholder virtuals from their overridesLéo Lam
Each base class virtual is named after what its overrides do and how callers use it, e.g. AttCheck::calcMtx (0x710108a614) is the virtual that AttClient calls before testing its checks. (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-13ksys: move AS setting, RootAi and three others to match link orderLéo Lam
Each file moves to where its code is linked, and namespaces follow the new paths. ASSettingMgr is an unofficial name. | Old | New | |---|---| | act::ASSetting (ActorSystem/actASSetting) | res::ASSettingMgr (Resource/Actor/resResourceASSettingMgr) | | Resource/resResourceASSetting, Resource/Actor/resResourceASResourceExtension | Resource/Actor/resResourceASSetting | | ksys::DebugFinder (System/DebugFinder) | ksys::act::DebugFinder (ActorSystem/actDebugFinder) | | ActorSystem/LOD/actLodState | ActorSystem/actLodState | | ActorSystem/actAiRoot | ActorSystem/aiRootAi | | Map/mapStagePreActorCache | System/StagePreActorCache (ksys) | (AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-10-13Move code to the TUs that match link order and rename filesLéo Lam
Rename classes and files so that they sort where their code is linked, and move code that is linked inside another TU into that TU's file. | Old | New | TU start | |---|---|---| | ActorAreaInOutSendMessage | AreaInOutSendMessage | 0x710009fa64 | | AreaTagAction | AreaActionBase | 0x7100e21e64 | | sndResource.{h,cpp} | sndSound.{h,cpp} | | | Code | From | To | |---|---|---| | SoundMgr | sndMgr.h | sndSound.h | | PlayReport | PlayReportMgr.cpp | PlayReport.cpp | | PlayReport::addPlayTimes, addPosition | PlayReportMgr.cpp | ProductReporter.cpp | (AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-10-11ksys/act: split IDamageManager out of DamageManagerBaseLéo Lam
DamageManagerBase's root base class (previously DamageManagerBase_UnknownBase1) holds the damage callback list, and its code is linked among the ActorSystem objects rather than with the Game/Actor/Damage files. It appears to be an engine-side abstract base, so let's move it to KingSystem/ActorSystem as ksys::act::IDamageManager (unofficial name, following the ksys IManager/Manager pattern and Actor::getDamageMgr), together with DamageCallback and Struct20Base, and have Actor::getDamageMgr return it. DamageManagerBase now overrides its getters and inherits addDamageCallback/removeDamageCallback from it. The rest of the damage code stays in Game/Actor/Damage but is regrouped to match link order: Struct20::combineMaybe moves into actDamageManagerBase.cpp, Struct20::reset becomes inline and dmgStruct20.cpp becomes actDamageMgr.cpp. The uking::dmg namespace is merged into uking::act, so the files there take the act prefix too, and dmgInfoManager becomes actDamageInfoMgr after the class it holds. (AI assisted using Claude Fable 5.1 and 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-08tools: drop the AI class generators and their aidef dataLéo Lam
The AI/Action/Query stub generators, the stub matcher and the IDA vfunc renamers are no longer useful now that: - every class has hand-edited source code - IDB naming work has superseded the placeholder names used by the scripts The scripts don't even import any more so we should just remove them. (AI assisted using Claude Opus 5.5)
2026-10-06Actor: ActorFactory is game, CurrentResNameMgr is ksysLéo Lam
ActorFactory's static initialiser fills its table with uking actor ctors. CurrentResNameMgr (0x71010b770c) links in KingSystem/System right before GameConfig. (AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-10-06The task and thread families are plain ksys::Léo Lam
They link in the same block as the plain-ksys:: Message family. getItemValue and applyScreenFade sit in engine UI TUs, hence ksys::ui. (AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-10-06eft: move the effect actions to KingSystem/EffectLéo Lam
Link order: FootStepCalcOn (0x7100da1968) lies in the KingSystem/Effect block. (AI assisted using Claude Fable 5.1 and 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-06AutoPlacement is game code: move it to Game/Léo Lam
It is created only from game code, no engine code calls it, and it hardcodes game actor names. (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-06AI: merge the duplicate DummyAction into ksysLéo Lam
The action factory uses the single ksys ctor for both entries and DummyDropTable's ctor calls it too; deriving from it makes DummyDropTable's five functions match. (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-06Name placeholder declarations after the IDBLéo Lam
Keeps source and CSV from drifting from the IDB. Names are read from the bodies, e.g. ActionBase::applyParams is what all 13 non-stub overrides of that slot do. (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-04Damage: move Game/Damage under Game/ActorLéo Lam
Link order: the damage code is interleaved with actor TUs inside the Game/Actor block, not in a block of its own. (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)
2025-06-19CreatePlayerEquipActorMgrPistonight
2025-05-02PauseMenuDataMgr createPlayerEquipmentPistonight
2024-03-09rename CookData and WeaponData fieldsPistonight
2022-02-27Revert "Add #ifdef declarations for NON_MATCHING code"Léo Lam
This reverts commit 42807160cfb33af9f3cf2fa6b0ba98f232208cdb. It makes searching for NON_MATCHING comment descriptions much less convenient in most text editors or IDEs, and we want the function CSV to be the single source of truth for function statuses. Having a function marked as matching but not built because of a stray #ifdef would be bad.
2022-02-19getDragonItemDropPosition (#84)savage13
getDragonItemDropPosition - NON_MATCHING fadd arguments mismatch
2021-07-26Add #ifdef declarations for NON_MATCHING codeAlexApps99
2021-06-15ksys: Move ActorParam classes into separate folder to declutter Resource/Léo Lam
2021-03-19Fix matching regressionLéo Lam
2021-01-22Add a script to generate actInfoCommonLéo Lam
It's too tedious to write by hand
2021-01-17uking/ui: Add inventory loading functionLéo Lam
2021-01-17uking: Mark WeaponModifierInfo member functions as const when possibleLéo Lam
2021-01-16uking/ui: Implement "item get" PauseMenuDataMgr functionLéo Lam
2021-01-10uking/act: Add most of the weapon modifier utilsLéo Lam