summaryrefslogtreecommitdiff
path: root/src/Game/UI
AgeCommit message (Collapse)Author
48 hoursuking/ui: write getRealArrowCount properlyLéo Lam
The status variable compared with 2 was clang's cleanup destination slot written out by hand; returning from the loop produces the same code. (AI assisted using 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-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-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-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-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)
2025-09-13fix pmdm comment about cook dataPistonight
2025-07-10fix clang-tidy warnings in PMDMPistonight
2025-06-19CreatePlayerEquipActorMgrPistonight
2025-05-04matched (thanks to TheGreatB3 :)Pistonight
2025-05-02PauseMenuDataMgr createPlayerEquipmentPistonight
2025-05-02match PMDM autoEquip and unequipAllPistonight
2024-12-25Rename PouchItem::CookData::getStaminaRecoverValue -> getEffectDurationFramesPistonight
2024-03-09rename CookData and WeaponData fieldsPistonight
2023-09-03PauseMenuDataMgr: use better variable names (#123)Kinak338
2023-01-27Implement CookingMgr class (#113)Briggs Baltzell
* Added CookingMgr fields and started on ctor * Implemented CookItem::copy * Implemented CookingMgr dtor * Marked CookingMgr createInstance as matching * Implemented CookingMgr::getCookItem * Added CookingMgr::cook decl * Added CookingMgr method decls * Replaced part of CookingMgr with sead::FixedObjArray * Added line separators in cookManager.h * Defined structs Ingredient and BoostArg in CookingMgr * Defined structs CookArg and CookIngredient * Renamed some fields of CookingMgr * Added struct CookingMgr::CookingEffectEntry * Started implementing CookingMgr::init * Set more entries in init * Set field _548 * Set field default values in init * Loaded string values from config * Set mCookingEffectEntries in init * Added conditional mConfig allocation * Added FixedTreeMap class to sead * Used FixedTreeMap in CookingMgr * Set CookingMgr constructor to default and marked it as matching * Removed field _31C from CookingMgr * Updated sead * Cleared _548 before filling * Used name hash for _548 keys * Fixed path setup * Changed type of _548 to sead::FixedTreeMap<u32, u32, 13> * Set mNMSSR to correct values * Fixed field init order * Rearranged variables * Swapped entry_hash comparisons * Changed CRC32 names and index values * Cast i to u64 * Renamed static crc32 variables * Renamed _548 to mCookingEffectNameIdMap * Marked static vars as const and used decimal numbers * Used sead::SafeArray for mNMMR and mNMSSR * Rearranged mNMMR and mNMSSR conditions * Removed size check from mNMMR and mNMSSR conditions * Removed size check from CEI conditions * Renamed mRes2 to mResHandle * Renamed cook args * Moved crc32 statics into Constants struct * Marked CookingMgr::init as matching * Renamed Constants to Crc32Constants * Added cookFail and cookFailForMissingConfig * Added NumIngredientsMax, NumEffects, and NumEffectSlots constants * Renamed getCookItem to setCookItem * Renamed x to getCookItem * Implemented getCookItem * Made setCookItem take a const ref * Decompiled cookCalcItemPrice * Marked cookCalcItemPrice as const * Fixed both cookFail and cookFailForMissingConfig * Added CookItem::reset * Added CookingMgr::resetCookItem * Moved ctor and dtor below static variables * Changed cookFailForMissingConfig arg to sead::SafeString * Started on cookCalcBoost * Moved CookItem into cookManager.h * Moved Cooking into Game * Moved CookingMgr to uking namespace * Inlined CookItem::reset * Renamed CookItem members * Fixed CookItem mangled names in uking_functions.csv * Added enum class CookEffectId * Moved CookingMgr ctor below disposer impl * Updated sead * Started on cookHandleBoostSuccessInner * Made changes to cookCalcBoost and cookHandleBoostSuccessInner * Extracted cookHandleBoostMonsterExtractInner * Removed found_monster_extract in cookCalcBoost * Marked cookCalcBoost as matching * Got cookHandleBoostMonsterExtractInner matching * Made changes to cookHandleBoostSuccessInner * Renamed discriminator to bonus in cookHandleBoostSuccessInner * Added CookingMgr::cookCalcSpiceBoost * Made changes to CookingMgr::cookCalcSpiceBoost * Added CookingMgr::cookCalcPotencyBoost * Mostly matched CookingMgr::cookCalcPotencyBoost * Added CookingMgr::getCookEffectId * Used getCookEffectId in cookCalcPotencyBoost * Set access modifiers in CookingMgr * Made cookCalcPotencyBoost const-correct * Marked global init as mismatching * Renamed CookingMgr functions in uking_functions.csv * Added CookingMgr::prepareCookArg * Added IngredientArray type * Added cookWithItems * Added CookingMgr::prepareCookArg * Fixed getCookEffectId * Fixed cookCalcPotencyBoost * Made changes to prepareCookArg * Got cookWithItems matching * Marked vars const * Removed commented-out destructor and UnkItem * Renamed CookIngredient._58 to count * Started on CookingMgr::cook * Extracted cookAdjustItem * Fixed ingredient setup * Extracted actor_info_data * Fixed some control flow for single ingredients * Fixed more control flow for single ingredients * Handled no effect and empty actor name * Renamed Ingredient::_10 to used_in_recipe * Fixed recipe control flow * Matched cookAdjustItem * Fixed InfoData instance uses * Removed BAD_RECIPE label * Rearranged to remove goto * Added cookCalcRecipeBoost * Extracted getCookEffectId * Extracted isCookFailure and isMedicine * Extracted getCookEffectIdFromTreeMap * Extracted findIngredientByName and findIngredientByTag * Marked nonmatching functions * Added resetArgCookData * Matched resetArgCookData and prepareCookArg * Added fields and handleMessage to CookPotRoot * Started on CookPotRoot::init_ * Added hasMonsterExtract * Added to CookPotRoot::handleMessage_ * Removed Ingredient::_4 field * Renamed CookItem::_224 to is_crit * Renamed CookingEffectEntry members * Renamed CookingMgr fields * Changed comparison in cook * Renamed actor_tag_iter to hash_iter and added num checks * Got cookCalcSpiceBoost closer to matching * Removed int_val init from cookCalcSpiceBoost * Inlined actor_data * Added `using namespace ksys::act` * Moved int_val outside loop * Marked cookCalcSpiceBoost as matching * Rearranged cookHandleBoostSuccessInner * Renamed cookCalcPotencyBoost to cookCalcIngredientsBoost * Renamed stamina_recover to vitality_boost * Renamed CookItem args to cook_item * Renamed cookFailForMissingConfig arg * Used IngredientArray in findIngredient functions * Renamed crit functions * Renamed getCookEffectId arg * Renamed getCookEffectId to getCookEffectIdByName * Added SetCookItemInDemo::oneShot_ * Matched SetCookItemInDemo::oneShot_ * Added comment about CookArg constructor and formatted * Removed TODO from CookingMgr * Marked WIP functions as non-matching * Fixed formatting * Matched sead::SafeArray<uking::CookIngredient, 5>::SafeArray * Added BoostArg default member initializers * Used auto for cooking_mgr in CookPotRoot::handleMessage_ * Used designated initializers for boost_arg and added whitespace * Used angle brackets for sead import * Removed [[maybe_unused]] from declaration * Used safeDelete * Inverted condition in CookingMgr::cookCalcCritBoost * Added getCookingEffectEntry getter and moved CookingEffectEntry up * Cleaned up CookingMgr::cookCalcSpiceBoost * Used loops to init ingredient num members * Converted CookingMgr fields to s32 * Cleaned up CookingMgr::cookCalcItemPrice * Renamed CookItem::item_price to sell_price * Used min and max in CookingMgr::cookCalcItemPrice * Inlined count vars in CookingMgr::cookCalcItemPrice * Removed explicit casts in CookingMgr::cookCalcItemPrice * Cleaned up and reformatted CookingMgr::cookCalcIngredientsBoost * Added casts back into CookingMgr::cookCalcItemPrice to silence warnings
2023-01-08Implement FadeProgress class (#110)oxixes
2022-10-18Decompile some Action classes (#104)notyourav
* various action classes * rename instanceset fns * rename isFork -> isChangeable
2022-02-27UI/PauseMenuDataMgr: Use getItems() instead of mItemLists.list1Léo Lam
2022-02-27Match PauseMenuDataMgr::removeGrabbedItemLéo Lam
2022-02-27Rename PauseMenuDataMgr addGrabbedItem to removeGrabbedItemLéo Lam
The previous name was completely wrong, whoops.
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-26Add PauseMenuDataMgr::grabbedItemStuff() (#88)savage13
2022-02-26Add PauseMenuDataMgr::x_28 (#87)savage13
2022-02-26Match two small functions in PauseMenuDataMgr (#86)savage13
2021-07-26Add #ifdef declarations for NON_MATCHING codeAlexApps99
2021-07-01match some ai::Querytheo3
2021-04-20Rename aoc2 to HardModeManagerLéo Lam
It seems to have been called HardModeManager according to a leftover context name for loading Aoc/0010/Ecosystem/HardMode.byml (which also doesn't exist anymore).
2021-01-22uking/ui: Implement getWeaponStatsLéo Lam
2021-01-22uking/ui: Implement weapon and bow sorting in inventoryLéo Lam
2021-01-22uking/ui: Implement food sorting in inventoryLéo Lam
2021-01-22uking/ui: Implement material sorting for inventoryLéo Lam
2021-01-22uking/ui: Implement shield sorting for inventoryLéo Lam
2021-01-21uking/ui: Clean up PauseMenuDataMgr::getItemByIndexLéo Lam
Deduplicate the nullptr checks.
2021-01-21uking/ui: Add even more inventory functionsLéo Lam
2021-01-21uking/ui: Add more PauseMenuDataMgr functionsLéo Lam
2021-01-20uking/ui: Add even more inventory functionsLéo Lam
2021-01-19uking/ui: Add more inventory functionsLéo Lam
2021-01-19uking/ui: Rename mItem_44488 to mLastAddedItemLéo Lam
That's what it is
2021-01-18uking/ui: Implement PauseMenuDataMgr::addToPouchLéo Lam
2021-01-17uking/ui: Remove setValue() for consistencyLéo Lam
2021-01-17uking/ui: Add inventory loading functionLéo Lam
2021-01-17uking/ui: Fix some clang-tidy warningsLéo Lam
2021-01-17uking/ui: Add inventory saving functionLéo Lam
2021-01-16uking/ui: Implement "item get" PauseMenuDataMgr functionLéo Lam
2021-01-11uking/ui: Add "can get item" inventory functionsLéo Lam
2021-01-11uking/ui: Implement PauseMenuDataMgr::countItemsLéo Lam
2021-01-11uking/ui: Fix PouchConstants structLéo Lam