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)
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)
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)
Both link in the game archive, and NXArgs uses game classes such as
GameScene. The engine only calls SystemPauseMgr's virtuals, so it now
goes through ksys::ISystemPauseMgr and no longer includes Game/.
(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
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)
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)
setCamera's only caller passes the camera actor, a ksys::act::Actor;
ksys::act::Camera is only forward-declared.
(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
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)
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)
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)
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)
* 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.
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)
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)
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)
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)
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)
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)
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)
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)