diff --git a/data/uking_functions.csv b/data/uking_functions.csv index cf9a8b1d..61e5f028 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -73872,7 +73872,7 @@ 0x0000007100d4d0cc,PlacementObj::setRevivalGameDataFlagValue,24,_ZN4ksys3map6Object19setRevivalFlagValueEb 0x0000007100d4d0e4,PlacementObj::x_17_dragonCheck,876, 0x0000007100d4d450,PlacementObj::x_18,400,_ZNK4ksys3map6Object4x_18Ev! -0x0000007100d4d5e0,PlacementObj::setupTargetLinks,176,_ZN4ksys3map6Object16setupTargetLinksEPS1_PNS0_10ObjectLinkEPN4sead4HeapE? +0x0000007100d4d5e0,PlacementObj::setupTargetLinks,176,_ZN4ksys3map6Object16setupTargetLinksEPS1_PNS0_10ObjectLinkEPN4sead4HeapE 0x0000007100d4d690,PlacementObj::checkCreateOrDeleteLinkObjRevival,72,_ZNK4ksys3map6Object33checkCreateOrDeleteLinkObjRevivalEv 0x0000007100d4d6d8,PlacementObj::shouldSkipSpawn,112,_ZNK4ksys3map6Object15shouldSkipSpawnEv 0x0000007100d4d748,PlacementObj::x_20_checkTraverseFlags,24,_ZNK4ksys3map6Object18checkTraverseFlagsEv @@ -92335,8 +92335,8 @@ 0x00000071011e4890,PlacementMgr::threadFn,1120, 0x00000071011e4cf0,PlacementMgr::invoked1,184, 0x00000071011e4da8,PlacementMgr::invoked2,24, -0x00000071011e4dc0,sub_71011E4DC0,112,_ZN4ksys3map12PlacementMgrD1Ev? -0x00000071011e4e30,sub_71011E4E30,120,_ZN4ksys3map12PlacementMgrD0Ev? +0x00000071011e4dc0,sub_71011E4DC0,112,_ZN4ksys3map12PlacementMgrD1Ev +0x00000071011e4e30,sub_71011E4E30,120,_ZN4ksys3map12PlacementMgrD0Ev 0x00000071011e4ea8,PlacementMgr::__auto2,584, 0x00000071011e50f0,sub_71011E50F0,56,_ZN4ksys3map12PlacementMgr11releaseTreeEv 0x00000071011e5128,PlacementMgr::x_3,236,_ZN4ksys3map12PlacementMgr3x_3Ev! @@ -92356,7 +92356,7 @@ 0x00000071011e645c,PlacementMgr::preCalc,1760, 0x00000071011e6b3c,PlacementMgr::requestDraw,292, 0x00000071011e6c60,PlacementMgr::x_5,268, -0x00000071011e6d6c,PlacementMgr::printDebugInfo,248,_ZN4ksys3map12PlacementMgr14printDebugInfoEv? +0x00000071011e6d6c,PlacementMgr::printDebugInfo,248,_ZN4ksys3map12PlacementMgr14printDebugInfoEv 0x00000071011e6e64,PlacementMgr::isStaticCompoundReady,40, 0x00000071011e6e8c,sub_71011E6E8C,84, 0x00000071011e6ee0,sub_71011E6EE0,204, @@ -92432,7 +92432,7 @@ 0x00000071011ed3d8,OpenWorldSceneNavigator::getJpName,12, 0x00000071011ed3e4,nullsub_4651,4, 0x00000071011ed3e8,nullsub_4652,4, -0x00000071011ed3ec,PlacementTree::ctor,60,_ZN4ksys3map13PlacementTreeC1Ev? +0x00000071011ed3ec,PlacementTree::ctor,60,_ZN4ksys3map13PlacementTreeC1Ev 0x00000071011ed428,sub_71011ED428,84,_ZN4ksys3map13PlacementTreeD1Ev 0x00000071011ed47c,PlacementTree::x,940, 0x00000071011ed828,PlacementTree::resetPlacementObjPtrs,160, diff --git a/src/KingSystem/Map/mapObject.cpp b/src/KingSystem/Map/mapObject.cpp index e693439a..d0671bdf 100644 --- a/src/KingSystem/Map/mapObject.cpp +++ b/src/KingSystem/Map/mapObject.cpp @@ -420,7 +420,6 @@ bool Object::x_18() const { return !id->sub_7100D30DF8(info, temp); } -// NON_MATCHING bool Object::setupTargetLinks(Object* src, ObjectLink* link, sead::Heap* heap) { if (mNumLinksPointingToMe == 0) return false; @@ -431,11 +430,10 @@ bool Object::setupTargetLinks(Object* src, ObjectLink* link, sead::Heap* heap) { return false; } - if (mLinkData->mLinksToSelf.links.isBufferReady()) - return mLinkData->sub_7100D4EC40(src, link, this); - - if (!mLinkData->allocLinksToSelf(mNumLinksPointingToMe, heap)) - return false; + if (!mLinkData->mLinksToSelf.links.isBufferReady()) { + if (!mLinkData->allocLinksToSelf(mNumLinksPointingToMe, heap)) + return false; + } return mLinkData->sub_7100D4EC40(src, link, this); } diff --git a/src/KingSystem/Map/mapPlacementActors.h b/src/KingSystem/Map/mapPlacementActors.h index 49552ae9..a2e55a8f 100644 --- a/src/KingSystem/Map/mapPlacementActors.h +++ b/src/KingSystem/Map/mapPlacementActors.h @@ -118,9 +118,10 @@ public: PlacementStruct1* mStruct1; u8 _e8[0x538 - 0xe8]; sead::SafeArray mActorData; - // u8 _261b38[0x2a80d0 - 0x261b38]; + u8 _261b38[0x2a8058 - 0x261b38]; u32 mActorDataMapSize; + u8 _2a805c[0x2a80d0 - 0x2a805c]; }; -// KSYS_CHECK_SIZE_NX150(PlacementActors, 0x2A80D0); +KSYS_CHECK_SIZE_NX150(PlacementActors, 0x2A80D0); } // namespace ksys::map diff --git a/src/KingSystem/Map/mapPlacementMgr.cpp b/src/KingSystem/Map/mapPlacementMgr.cpp index 807dc199..931e6531 100644 --- a/src/KingSystem/Map/mapPlacementMgr.cpp +++ b/src/KingSystem/Map/mapPlacementMgr.cpp @@ -94,7 +94,7 @@ void PlacementMgr::printDebugInfo() { mMassMemoryUsage / 1024, mClusteredMemoryUsage / 1024); // Dynamic heap remaining:%dk sead::FormatFixedSafeString<128> s4("動的ヒープ残り:%dk", - int(mDynamicHeap->getFreeSize()) / 1024); + u32(mDynamicHeap->getFreeSize() / 1024)); } void PlacementMgr::incrementCounter() { diff --git a/src/KingSystem/Map/mapPlacementMgr.h b/src/KingSystem/Map/mapPlacementMgr.h index d8189dfd..28ac2700 100644 --- a/src/KingSystem/Map/mapPlacementMgr.h +++ b/src/KingSystem/Map/mapPlacementMgr.h @@ -77,7 +77,7 @@ public: u8 TEMP[0x108]; sead::Delegate2 mThreadParams; sead::DelegateThread* mThread; - u32 mTraverseResultIdx; + int mTraverseResultIdx; u16 mRequestedMsg = 0; sead::Vector3f mCameraPos{}; @@ -106,6 +106,8 @@ public: u8 TEMP2[0x70]; u32 _278; + sead::Vector3f _27c; + u32 _288; u32 mPreActorNumDone; u32 mLoadActorNumTotal; @@ -117,7 +119,7 @@ public: sead::CriticalSection mCS{}; u64 mStartTick; - u8 TEMP3[0x5c]; + u8 TEMP3[0x4c]; sead::TypedBitFlag> mFlags; bool mThreadStarted = false; @@ -146,5 +148,6 @@ public: u8 TEMP5[0x10]; }; KSYS_CHECK_SIZE_NX150(PlacementMgr, 0x818); +static_assert(offsetof(PlacementMgr, mThreadStarted) == 0x688); } // namespace ksys::map diff --git a/src/KingSystem/Map/mapPlacementTree.h b/src/KingSystem/Map/mapPlacementTree.h index f88bd25a..9dc50987 100644 --- a/src/KingSystem/Map/mapPlacementTree.h +++ b/src/KingSystem/Map/mapPlacementTree.h @@ -33,8 +33,8 @@ public: u32 _30{}; f32 _34 = F32Limits::max(); f32 _38 = F32Limits::max(); - f32 _3c = F32Limits::max(); - f32 _40 = F32Limits::max(); + f32 _3c = F32Limits::lowest(); + f32 _40 = F32Limits::lowest(); sead::ReadWriteLock mLock{}; };