summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2021-07-07 14:10:14 +0200
committerLéo Lam <leo@leolam.fr>2021-07-07 14:34:02 +0200
commit48e70b92bfb82cd0dad6d4f795c36f491be0f2eb (patch)
treee624b6bc646543147cbfaf391b8ee468e2e80ef1
parent1b6c549a38de8fb27d2eb6584888feed972570a2 (diff)
ksys/map: Fix more matching or equivalency issues
-rw-r--r--data/uking_functions.csv10
-rw-r--r--src/KingSystem/Map/mapObject.cpp10
-rw-r--r--src/KingSystem/Map/mapPlacementActors.h5
-rw-r--r--src/KingSystem/Map/mapPlacementMgr.cpp2
-rw-r--r--src/KingSystem/Map/mapPlacementMgr.h7
-rw-r--r--src/KingSystem/Map/mapPlacementTree.h4
6 files changed, 20 insertions, 18 deletions
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<ActorData, 6000> 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<PlacementMgr, sead::Thread*, sead::MessageQueue::Element> 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<MgrFlag, sead::Atomic<u32>> 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{};
};