summaryrefslogtreecommitdiff
path: root/src/KingSystem/ActorSystem
AgeCommit message (Collapse)Author
2026-10-15ksys/act: make calcHash a free function in actAwarenessMiscUtilsLéo Lam
calcHash is linked between AwarenessInstance's sinit and the next one, together with two AwarenessSourcePool helpers and the job queue functions of Awareness::Unk1, so it's a shared helper rather than an Awareness member, declared in the new file's own header. actAwareness.cpp calls this 4-byte function out of line, so it's likely not defined there. The file name sorts between actAwarenessInstance and the sensor files, which is where it is linked. (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-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-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-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-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-06ksys: small declaration fixesLéo Lam
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)
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-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-07-28Match Actor::getCharacterControllerRobbyV2
2026-07-11lib: Add xlink2 decomp as submoduleNitr4m12
2026-05-31fix new viking and update mismatchesPistonight
2025-06-19CreatePlayerEquipActorMgrPistonight
2025-06-18rename _c to lane_idPistonight
2025-05-17add at param helpersPistonight
2025-05-15merge BaseProcHandle and BaseProcUnit TUPistonight
2024-12-30PlayerInfo stuff that doesn't require PlayerBasePistonight
2024-08-28Update agl, nnSdk, seadThePixelGamer
2024-03-18most of AirOctaFlyUp is done, some of AirOctaDataMgr is done (#121)bomba1749
2023-05-14Add uking::ai::ActorWaterDepthSelect functions (#117)Martin Aguayo
2022-12-22Improve rebuild times by removing unnecessary includes in AI headersLéo Lam
2022-12-22ksys/act: Clean up RootAiFlag/RootAiFlag2 definitions and usageLéo Lam
2022-10-18Decompile some Action classes (#104)notyourav
* various action classes * rename instanceset fns * rename isFork -> isChangeable
2022-04-02lib: Update aglLéo Lam
2022-03-26ksys/phys: Add RigidBodyRequestMgr::calc1Léo Lam
2022-03-23ksys/phys: Rename BodyGroup -> StaticCompoundRigidBodyGroupLéo Lam
Makes it obvious that it is related to StaticCompound stuff Also fixes the relative ordering (BodyGroup is located after Mgr code).
2022-03-20ksys/phys: Add PhantomLéo Lam
2022-03-16auto placement worktheo3
2022-03-15AddAutoPlacementCreator actiontheo3
2022-03-06ksys/phys: Move Constraint stuff to a separate folderLéo Lam
2022-03-05Use sead::OffsetList::robustRange() when possible to simplify iterationLéo Lam
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-08ksys/act: Fix matching issues in BaseProcJobQueLéo Lam
2022-02-08Remove unnecessary usages of sead::StorageForLéo Lam
Turns out they are just value-initialised aggregates.
2022-02-06ksys/map: Implement PlacementAreaMgrThePixelGamer
2022-01-29ksys/phys: Rename RigidBody/UserTag broadphase border callbacksLéo Lam
2022-01-27ksys/phys: Add more RigidBody functionsLéo Lam
2022-01-22ksys/act: Document some BaseProcMgr iteration functionsLéo Lam
2022-01-17ksys/phys: Add a bunch of easy RigidBody functionsLéo Lam
2022-01-16ksys: Declutter Utils by creating new Utils/Container folderLéo Lam
2022-01-06ksys/phys: Implement more StaticCompound functionsLéo Lam
The other functions require RE'ing BodyGroup, which in turn requires RigidBody stuff
2021-11-24ksys: Add act::getRandomAreaItemLéo Lam
2021-11-24ksys: Merge EcoUtil into ActorUtilLéo Lam
The "is in Satori mountain area" function actually appears to be part of ActorUtil (which contains a bunch of actor-related helper functions)
2021-10-17ksys/act: Add more Actor membersLéo Lam
2021-10-17ksys: Forward declare Actor where possibleLéo Lam
Reduces build times when Actor.h is modified.
2021-10-16ksys/act/AI: Take const ref for messagesLéo Lam
2021-10-16ksys/act/AI: Rename AI handleMessage2_ and fix parameter typeLéo Lam