Commit Graph

1651 Commits

Author SHA1 Message Date
Léo Lam a168b93bbc snd: move sound actions and AIs to KingSystem/Sound
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-06 03:19:38 +02:00
Léo Lam 7bc225838a Name placeholder declarations after the IDB
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-06 03:19:37 +02:00
Léo Lam 891c0a8494 Merge pull request #216 from leoetlino/stack/03a-ai-base-renames
AI: rename misordered base classes
2026-10-06 01:57:14 +01:00
Flatener 9595c31c7f world: implement Manager::isRaining (#214)
* world: implement Manager::isRaining

Implement the position-based rain check for Rain, HeavyRain, ThunderRain,
and BlueskyRain. Declare the climate weather lookup dependency and name
both functions in the function table.

The rain check matches the original function at 0x71010f33a4.

* world: keep rainfall queries const

Restore const on Manager::isRaining and make its climate weather helper
const. Both queries only read Manager state. Update their function-table
symbols; the rain check still matches the original.
2026-10-05 11:09:41 -07:00
Léo Lam b12306210c AI: rename misordered base classes
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-04 23:40:26 +02:00
Léo Lam b9c6e58791 Remove the AI class status lists
Decompilation progress is tracked per function in uking_functions.csv
and on the kanban board. These per-class lists stopped being updated
long ago (20 of 1927 actions "done") and only cost upkeep on renames.

(AI assisted using Claude Opus 5.5)
2026-10-04 23:40:13 +02:00
Léo Lam 732b8d3962 Merge pull request #215 from leoetlino/stack/02-small-fixes
Minor fixes for issues found during AI-assisted naming passes
2026-10-04 21:57:57 +01:00
Léo Lam 88b478ac37 Merge pull request #211 from leoetlino/stack/01-moves
Move source files around to better match link order
2026-10-04 21:14:43 +01:00
Michael Zhao a005c77334 docs: improve agent instructions (#213) 2026-10-04 12:19:20 -07:00
Léo Lam ec2ec9ad6d Damage: move Game/Damage under Game/Actor
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-04 06:50:35 +02:00
Léo Lam a0245d4696 Move aiCameraEvent, AirOctaDataMgr, scenes, CameraMgr
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-10-04 06:50:35 +02:00
Léo Lam e70ecefe40 vlt: move the heap helpers into vltLayerMgrTask.cpp
The binary defines the HeapUtil.h helpers at the start of the
LayerMgrTask TU: their statics sit just before LayerMgrTask::sInstance.

(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
2026-10-04 06:50:35 +02:00
Léo Lam 98c1e3bdbf OverlayArenaSystem: S2's delegate is a task delegate
The vtable its ctor installs (0x710251A960) is a
Delegate1R<void*, bool>, and the callback returns bool.

(AI assisted using Claude Opus 5.5)
2026-09-29 03:50:01 +02:00
Léo Lam 8b562cb791 gdt: rename IncreaseLogger to DeferredFlagWriter
It logs nothing: it queues flag increments per core and
GameDataMgr::calc0 applies them once per frame. The IDB already uses
this name.

(AI assisted using Claude Opus 5.5)
2026-10-04 06:50:36 +02:00
Léo Lam b0404a3630 data: fix O rows tools/check cannot tell apart
Each pair differs only in the vtable it installs or slot it fills, which
tools/check ignores. E.g. 0x7100b15bf4 installs FileDeviceReadStream's
vtable, and the ASAssetResource/ASAssetExResource D0 rows were swapped.

(AI assisted using Claude Opus 5.5)
2026-09-29 03:50:01 +02:00
Léo Lam a5fb0a1632 aoc: fix the HardMode flag name
The flag is "AoC_HardMode_Enabled", as 0x71008e3dbc returns; tools/check
ignores string literals, so the misspelling still matched.

(AI assisted using Claude Opus 5.5)
2026-09-29 03:50:00 +02:00
Léo Lam 5b26254bfe Merge pull request #209 from Pistonight/update_binaries
tools: update nx2elf
2026-09-26 10:44:57 +01:00
Pistonight dd5ab84d04 tools: update nx2elf 2026-09-25 21:27:07 -07:00
Léo Lam de0a313d16 Merge pull request #198 from tarun-bandi/docs/contact-point-callback-contract
Document ContactPointInfo callback contract
2026-09-24 23:59:56 +02:00
Michael Zhao 22b09dcc18 Merge pull request #206 from Pistonight/update_xlink2
lib: update xlink2
2026-09-20 14:01:39 -07:00
Pistonight 4eb51c96aa lib: update xlink2 2026-09-20 13:56:17 -07:00
Léo Lam 328a69ab1b Merge pull request #205 from Pistonight/update_many_libs
lib: update sead, sdk, agl, musl, tools
2026-09-20 22:33:02 +02:00
Léo Lam 7a2c29bde8 Merge pull request #203 from Pistonight/1.6.0_setup_script
setup: add 1.6.0 back
2026-09-20 22:10:25 +02:00
Léo Lam 24388af5af Merge pull request #204 from Pistonight/just_agent_doc
setup: add agent instructions
2026-09-20 22:08:35 +02:00
Pistonight 21d20529a8 update libs 2026-09-20 13:03:47 -07:00
Pistonight ba34644fcf setup: add agent instructions 2026-09-20 13:00:48 -07:00
Pistonight 507802f1f3 setup: add 1.6.0 nso 2026-09-20 12:50:38 -07:00
Léo Lam f4cd38c43b Actor: move all AI code under Game/Actor
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)
2026-09-14 00:02:22 +02:00
Tarun Bandi 8495c4214b Document ContactPointInfo callback contract 2026-09-08 21:23:28 -07:00
Michael Zhao 7c65472576 Merge pull request #185 from RobbyV2/phys-system-heap-accessors
Match phys::System heap accessors
2026-07-30 17:06:14 -07:00
Michael Zhao 4f1f92f132 Merge pull request #184 from RobbyV2/phys-system-contact-listeners
Match phys::System contact listener and group handler forwarders
2026-07-30 17:04:47 -07:00
Michael Zhao 77a8d05cff Merge pull request #181 from Nitr4m12/functions
data: fix function sizes
2026-07-30 17:03:40 -07:00
Nitr4m12 31a894a4ff data: fix function sizes 2026-07-30 10:37:52 -04:00
RobbyV2 1e080b32eb phys: match System contact listener and group handler functions 2026-07-30 09:09:55 -04:00
RobbyV2 c6c8beaf58 phys: match System heap accessors 2026-07-30 09:07:17 -04:00
Michael Zhao cd3e7a9fbd Merge pull request #182 from RobbyV2/actor-get-character-controller
Match Actor::getCharacterController
2026-07-29 20:52:36 -07:00
Michael Zhao 4caa1241f3 Merge pull request #179 from Nitr4m12/symbols
data: add aal symbols
2026-07-29 20:49:22 -07:00
Michael Zhao 157dcbc7e2 Merge pull request #180 from mairokaizo/pr/physsystem
ksys::phys::System: implement isPaused and collision/handler helpers
2026-07-29 20:46:17 -07:00
RobbyV2 ab0fe61df9 Match Actor::getCharacterController 2026-07-28 21:08:32 -04:00
Nitr4m12 7edfb11683 data: add aal symbols 2026-07-27 22:12:23 -04:00
mairokaizo c99e6cfe94 ksys::phys::System: implement isPaused and collision/handler helpers 2026-07-24 09:43:16 -03:00
Michael Zhao 88da953350 Merge pull request #178 from Nitr4m12/xlink2
lib: Add xlink2 decomp as submodule
2026-07-11 23:07:31 -07:00
Nitr4m12 5094381e62 lib: Add xlink2 decomp as submodule 2026-07-11 23:40:06 -04:00
Michael Zhao 87cd98b1fc Merge pull request #177 from Pistonight/tool/update_viking
tools: update viking, llvm-objdump, setup (enable python venv)
2026-07-01 00:05:22 -07:00
Pistonight f27eb36f7d tools: update viking, llvm-objdump, setup 2026-07-01 00:01:20 -07:00
Michael Zhao cbb0ffa129 Merge pull request #171 from alexgsonic1-pixel/master
various: fix mismatches in some action stubs and ResourceMgrTask
2026-06-30 23:44:53 -07:00
root 003de4ab9f various: fix mismatches in some action stubs and ResourceMgrTask 2026-06-23 03:05:43 -06:00
Michael Zhao 5c4f52d5ba Merge pull request #167 from german77/submodule
data: Fill symbols
2026-06-01 18:47:21 -07:00
Narr the Reg 9ee5f0e4c4 data: Fill symbols 2026-06-01 10:04:08 -06:00
Michael Zhao 77d7046669 Merge pull request #170 from Pistonight/fix/new_viking_mismatches
take new viking and update mismatches
2026-05-31 14:26:22 -07:00