mirror of https://github.com/zeldaret/botw.git
Moved functions to correct places/files, formatting
This commit is contained in:
parent
d61a13e4bd
commit
7d97bb6f40
|
@ -73748,8 +73748,8 @@ Address,Quality,Size,Name
|
||||||
0x0000007100d406e4,O,000028,_ZNK4ksys3act14PhysicsUserTag8getName2Ev
|
0x0000007100d406e4,O,000028,_ZNK4ksys3act14PhysicsUserTag8getName2Ev
|
||||||
0x0000007100d40700,O,000204,_ZNK4ksys3act14PhysicsUserTag27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE
|
0x0000007100d40700,O,000204,_ZNK4ksys3act14PhysicsUserTag27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE
|
||||||
0x0000007100d407cc,O,000092,_ZNK4ksys3act14PhysicsUserTag18getRuntimeTypeInfoEv
|
0x0000007100d407cc,O,000092,_ZNK4ksys3act14PhysicsUserTag18getRuntimeTypeInfoEv
|
||||||
0x0000007100d40828,O,000360,_ZN4ksys3map12PlacementMapC2Ev
|
0x0000007100d40828,O,000360,_ZN4ksys3map12PlacementMapC1Ev
|
||||||
0x0000007100d40990,O,000644,_ZN4ksys3map12PlacementMapD2Ev
|
0x0000007100d40990,O,000644,_ZN4ksys3map12PlacementMapD1Ev
|
||||||
0x0000007100d40c14,U,000072,PlacementMap::loadStaticMap_
|
0x0000007100d40c14,U,000072,PlacementMap::loadStaticMap_
|
||||||
0x0000007100d40c5c,U,001692,PlacementMap::doLoadStaticMap_
|
0x0000007100d40c5c,U,001692,PlacementMap::doLoadStaticMap_
|
||||||
0x0000007100d412f8,U,000104,PlacementMap::parseStaticMap_
|
0x0000007100d412f8,U,000104,PlacementMap::parseStaticMap_
|
||||||
|
|
Can't render this file because it is too large.
|
|
@ -14,6 +14,10 @@ target_sources(uking PRIVATE
|
||||||
mapObjectLink.h
|
mapObjectLink.h
|
||||||
mapPlacementActors.cpp
|
mapPlacementActors.cpp
|
||||||
mapPlacementActors.h
|
mapPlacementActors.h
|
||||||
|
mapPlacementMap.cpp
|
||||||
|
mapPlacementMap.h
|
||||||
|
mapPlacementMapMgr.cpp
|
||||||
|
mapPlacementMapMgr.h
|
||||||
mapPlacementMgr.cpp
|
mapPlacementMgr.cpp
|
||||||
mapPlacementMgr.h
|
mapPlacementMgr.h
|
||||||
mapPlacementTree.cpp
|
mapPlacementTree.cpp
|
||||||
|
@ -22,6 +26,4 @@ target_sources(uking PRIVATE
|
||||||
mapRail.h
|
mapRail.h
|
||||||
mapStagePreActorCache.cpp
|
mapStagePreActorCache.cpp
|
||||||
mapStagePreActorCache.h
|
mapStagePreActorCache.h
|
||||||
mapPlacementMap.cpp
|
|
||||||
mapPlacementMap.h
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -2,14 +2,35 @@
|
||||||
|
|
||||||
namespace ksys::map {
|
namespace ksys::map {
|
||||||
|
|
||||||
SEAD_SINGLETON_DISPOSER_IMPL(PlacementMapMgr)
|
PlacementMap::PlacementMap() {
|
||||||
|
mInitStatus = InitStatus::None;
|
||||||
|
mParsedNumStaticObjs = 0xFFFFFFFF;
|
||||||
|
mStaticMapLoaded = StaticMap_None;
|
||||||
|
mNumStaticObjs = 0xFFFFFFFF;
|
||||||
|
mMat = sead::Matrix34f::ident;
|
||||||
|
mDistanceToCurrentMapUnit = 0;
|
||||||
|
mSkipLoadStaticMap = 0;
|
||||||
|
_38c = 0xFFFFFFFF;
|
||||||
|
mIdx = 0;
|
||||||
|
_388 = 0;
|
||||||
|
mCol = 0;
|
||||||
|
mRow = 0;
|
||||||
|
mNumRoutes = 0;
|
||||||
|
mP18 = 0;
|
||||||
|
mMgr = 0;
|
||||||
|
mPa = 0;
|
||||||
|
mDynamicGroupIdx = 0xFFFFFFFF;
|
||||||
|
mRes[0].mStatus = HkscRes::Status::_0;
|
||||||
|
mRes[1].mStatus = HkscRes::Status::_0;
|
||||||
|
mRes[2].mStatus = HkscRes::Status::_0;
|
||||||
|
mRes[3].mStatus = HkscRes::Status::_0;
|
||||||
|
}
|
||||||
|
|
||||||
void PlacementMapMgr::junk() {
|
PlacementMap::~PlacementMap() {
|
||||||
/* Here to force the compiler to include PlacementMap */
|
mRoutes.freeBuffer();
|
||||||
PlacementMap x;
|
for (auto& r : mRes) {
|
||||||
auto y = new PlacementMap;
|
r.cleanup();
|
||||||
(void)(x);
|
}
|
||||||
(void)(y);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace ksys::map
|
} // namespace ksys::map
|
||||||
|
|
|
@ -1,91 +1,72 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <basis/seadTypes.h>
|
||||||
#include <container/seadBuffer.h>
|
#include <container/seadBuffer.h>
|
||||||
#include <container/seadPtrArray.h>
|
#include <container/seadPtrArray.h>
|
||||||
#include <heap/seadDisposer.h>
|
#include <container/seadSafeArray.h>
|
||||||
#include <heap/seadExpHeap.h>
|
#include <heap/seadHeap.h>
|
||||||
#include <math/seadMatrix.h>
|
#include <math/seadMatrix.h>
|
||||||
|
#include <prim/seadSafeString.h>
|
||||||
#include "KingSystem/Map/mapPlacementActors.h"
|
#include "KingSystem/Map/mapPlacementActors.h"
|
||||||
|
#include "KingSystem/Map/mapPlacementMapMgr.h"
|
||||||
#include "KingSystem/Physics/StaticCompound/physStaticCompound.h"
|
#include "KingSystem/Physics/StaticCompound/physStaticCompound.h"
|
||||||
#include "KingSystem/Resource/resHandle.h"
|
#include "KingSystem/Resource/resHandle.h"
|
||||||
|
#include "KingSystem/Utils/Types.h"
|
||||||
|
|
||||||
namespace ksys::map {
|
namespace ksys::map {
|
||||||
|
|
||||||
class PlacementMapMgr; /* See Below */
|
class PlacementMapMgr;
|
||||||
class MapProperties;
|
|
||||||
class Placement18;
|
|
||||||
class FarActorMerge;
|
|
||||||
|
|
||||||
class PlacementMapHkscRes {
|
|
||||||
enum {
|
|
||||||
Status_2 = 2, // Call cleanupHkscMaybe(), if ok, set to 3
|
|
||||||
Status_3 = 3,
|
|
||||||
Status_4 = 4, // Call staticCompoundStuff, if ok, set to 5
|
|
||||||
Status_5 = 5,
|
|
||||||
};
|
|
||||||
|
|
||||||
public:
|
|
||||||
PlacementMapHkscRes() = default;
|
|
||||||
~PlacementMapHkscRes() = default;
|
|
||||||
|
|
||||||
ksys::res::Handle res;
|
|
||||||
s32 statusMaybe;
|
|
||||||
bool _54;
|
|
||||||
bool _55;
|
|
||||||
bool _56;
|
|
||||||
bool _57;
|
|
||||||
|
|
||||||
void cleanup() {
|
|
||||||
auto r = res.getResource();
|
|
||||||
if (auto ptr = sead::DynamicCast<ksys::phys::StaticCompound>(r)) {
|
|
||||||
if (ptr->calledFromMapDtor()) {
|
|
||||||
ptr->cleanUp();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
KSYS_CHECK_SIZE_NX150(PlacementMapHkscRes, 0x58);
|
|
||||||
|
|
||||||
class PlacementMap {
|
class PlacementMap {
|
||||||
enum { StaticMap_None = 0, StaticMap_Loaded = 1 << 0, StaticMap_Parsed = 1 << 8 };
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
__attribute__((noinline)) PlacementMap() {
|
struct HkscRes {
|
||||||
initStatus = PlacementMap::InitStatus_None;
|
enum class Status {
|
||||||
parsedNumStaticObjs = 0xFFFFFFFF;
|
_0 = 0,
|
||||||
staticMapLoaded = StaticMap_None;
|
_1 = 1,
|
||||||
numStaticObjs = 0xFFFFFFFF;
|
_2 = 2, // Call cleanupHkscMaybe(), if ok, set to 3
|
||||||
mat = sead::Matrix34f::ident;
|
_3 = 3,
|
||||||
distanceToCurrentMapUnit = 0;
|
_4 = 4, // Call staticCompoundStuff, if ok, set to 5
|
||||||
skipLoadStaticMap = 0;
|
_5 = 5,
|
||||||
_38c = 0xFFFFFFFF;
|
};
|
||||||
idx = 0;
|
|
||||||
_388 = 0;
|
|
||||||
col = 0;
|
|
||||||
row = 0;
|
|
||||||
numRoutes = 0;
|
|
||||||
p18 = 0;
|
|
||||||
mgr = 0;
|
|
||||||
pa = 0;
|
|
||||||
dynamicGroupIdx = 0xFFFFFFFF;
|
|
||||||
res[0].statusMaybe = 0;
|
|
||||||
res[1].statusMaybe = 0;
|
|
||||||
res[2].statusMaybe = 0;
|
|
||||||
res[3].statusMaybe = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
~PlacementMap() {
|
HkscRes() = default;
|
||||||
routes.freeBuffer();
|
~HkscRes() = default;
|
||||||
for (auto& r : res) {
|
|
||||||
r.cleanup();
|
res::Handle mRes;
|
||||||
|
Status mStatus;
|
||||||
|
// bool _pad[4];
|
||||||
|
|
||||||
|
void cleanup() {
|
||||||
|
auto* r = mRes.getResource();
|
||||||
|
if (auto sc = sead::DynamicCast<phys::StaticCompound>(r)) {
|
||||||
|
if (sc->calledFromMapDtor()) {
|
||||||
|
sc->cleanUp();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
KSYS_CHECK_SIZE_NX150(HkscRes, 0x58);
|
||||||
|
|
||||||
s32 loadStaticMap_(u8 load);
|
// This enum is used on a u16. enum classses are 32 bit
|
||||||
|
enum { StaticMap_None = 0, StaticMap_Loaded = 1 << 0, StaticMap_Parsed = 1 << 8 };
|
||||||
|
enum class InitStatus {
|
||||||
|
None = 0,
|
||||||
|
StaticLoaded = 1,
|
||||||
|
DynamicLoadStarted = 2,
|
||||||
|
DynamicLoaded = 3,
|
||||||
|
_4 = 4,
|
||||||
|
_5 = 5, // x_9 takes initStatus from 4 to 5 in pmm->updateHkscLoadStatuesMaybe()
|
||||||
|
};
|
||||||
|
KSYS_CHECK_SIZE_NX150(InitStatus, 4);
|
||||||
|
|
||||||
|
PlacementMap();
|
||||||
|
~PlacementMap();
|
||||||
|
|
||||||
|
s32 loadStaticMap_(bool load);
|
||||||
void doLoadStaticMap_(bool load);
|
void doLoadStaticMap_(bool load);
|
||||||
|
|
||||||
bool parseStaticMap_(sead::ExpHeap* heap, u8* data);
|
bool parseStaticMap_(sead::Heap* heap, u8* data);
|
||||||
void parseMap_(sead::ExpHeap* heap, u8* data, int group, u32 idx);
|
void parseMap_(sead::Heap* heap, u8* data, int group, u32 idx);
|
||||||
|
|
||||||
bool loadDynamicMap();
|
bool loadDynamicMap();
|
||||||
|
|
||||||
|
@ -96,109 +77,55 @@ public:
|
||||||
void unloadStaticMubin();
|
void unloadStaticMubin();
|
||||||
s32 x_6();
|
s32 x_6();
|
||||||
void x_5();
|
void x_5();
|
||||||
s64 traverseStuff(sead::Vector3f vec, map::PlacementActors* pa, int a4);
|
s64 traverseStuff(sead::Vector3f* vec, PlacementActors* pa, int id);
|
||||||
|
|
||||||
phys::BodyGroup* getFieldBodyGroup(u32 a2);
|
phys::BodyGroup* getFieldBodyGroup(u32 field_body_group_id);
|
||||||
void cleanupPhysics();
|
void cleanupPhysics();
|
||||||
bool loadStaticCompound(int wl_0, bool a3, bool a4);
|
bool loadStaticCompound(int id, bool is_auto_gen_mu, bool load_maybe);
|
||||||
s32 x_2(s32 a2);
|
s32 x_2(s32 id);
|
||||||
void x(int a2, map::Object* obj);
|
void x(int id, Object* obj);
|
||||||
void unloadHksc(s32 a2);
|
void unloadHksc(s32 id);
|
||||||
s32 x_4(s64 a2);
|
s32 x_4(s64 id);
|
||||||
s32 x_1(s64 a2);
|
s32 x_1(s64 id);
|
||||||
bool staticCompoundStuff(s32 scId, bool cleanup);
|
bool staticCompoundStuff(s32 sc_id, bool cleanup);
|
||||||
s64 cleanHkscMaybe(s32 a2);
|
s64 cleanHkscMaybe(s32 id);
|
||||||
bool sub_7100D43F18(sead::Vector3f* pos);
|
bool sub_7100D43F18(sead::Vector3f& pos);
|
||||||
void doDisableObjStaticCompound(map::Object* obj, bool disable);
|
void doDisableObjStaticCompound(Object* obj, bool disable);
|
||||||
void x_9();
|
void x_9();
|
||||||
|
|
||||||
void x_7(int idx, int a3, char column, char row, sead::SafeString* mubinPath,
|
void x_7(int idx, int unknown, char column, char row, sead::SafeString* mubinPath,
|
||||||
sead::SafeString* folderAndFile, int a8, bool a9);
|
sead::SafeString* folderAndFile, int map_id_maybe, bool skip_load_static_map);
|
||||||
|
|
||||||
enum {
|
u16 mSkipLoadStaticMap;
|
||||||
InitStatus_None = 0,
|
u16 mStaticMapLoaded;
|
||||||
InitStatus_StaticLoaded = 1,
|
|
||||||
InitStatus_DynamicLoadStarted = 2,
|
|
||||||
InitStatus_DynamicLoaded = 3,
|
|
||||||
InitStatus_4 = 4,
|
|
||||||
InitStatus_5 = 5, // x_9 takes initStatus from 4 to 5 in pmm->updateHkscLoadStatuesMaybe()
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
u16 skipLoadStaticMap;
|
|
||||||
u16 staticMapLoaded;
|
|
||||||
u16 _04;
|
u16 _04;
|
||||||
s16 _06;
|
s16 _06;
|
||||||
sead::FixedSafeString<128> mubinPath; // 008
|
sead::FixedSafeString<128> mMubinPath;
|
||||||
sead::FixedSafeString<128> folderAndFile; // 0a0
|
sead::FixedSafeString<128> mFolderAndFile;
|
||||||
u32 idx; //
|
u32 mIdx;
|
||||||
sead::SafeArray<PlacementMapHkscRes, 4> res; // 140
|
sead::SafeArray<HkscRes, 4> mRes;
|
||||||
ksys::res::Handle staticMubinRes; // 2a0
|
res::Handle mStaticMubinRes;
|
||||||
ksys::res::Handle dynamicMubinRes; // 2f0
|
res::Handle mDynamicMubinRes;
|
||||||
s32 dynamicGroupIdx; // 340
|
s32 mDynamicGroupIdx;
|
||||||
s32 parsedNumStaticObjs; // 344
|
s32 mParsedNumStaticObjs;
|
||||||
s32 numStaticObjs; // 348
|
s32 mNumStaticObjs;
|
||||||
u32 initStatus; // 34c
|
InitStatus mInitStatus;
|
||||||
s8 col; // 350
|
s8 mCol;
|
||||||
s8 row; // 351
|
s8 mRow;
|
||||||
u16 field_352; // 352
|
u16 _352;
|
||||||
sead::Matrix34f mat; // 354
|
sead::Matrix34f mMat;
|
||||||
s32 distanceToCurrentMapUnit; // 384
|
s32 mDistanceToCurrentMapUnit;
|
||||||
u32 _388; // 388 check x_7() called ....
|
u32 _388; // 388 check x_7() called ....
|
||||||
u32 _38c; // 38c ... from MapMgr::ctor (a8)
|
u32 _38c; // 38c ... from MapMgr::ctor (a8)
|
||||||
ksys::map::PlacementActors* pa; // 390
|
PlacementActors* mPa;
|
||||||
ksys::map::PlacementMapMgr* mgr; // 398
|
PlacementMapMgr* mMgr;
|
||||||
void* p18; // 3a0
|
void* mP18;
|
||||||
sead::Buffer<void*> routes; // 3a8 Raw Object Data
|
sead::Buffer<void*> mRoutes;
|
||||||
s32 numRoutes; // 3b8
|
s32 mNumRoutes;
|
||||||
s32 gap_38c; // 3bc
|
s32 gap_38c;
|
||||||
sead::CriticalSection cs; // 3c0
|
sead::CriticalSection mCs;
|
||||||
};
|
};
|
||||||
|
|
||||||
KSYS_CHECK_SIZE_NX150(PlacementMap, 0x400);
|
KSYS_CHECK_SIZE_NX150(PlacementMap, 0x400);
|
||||||
|
|
||||||
/* NOT WORKING */
|
|
||||||
class PlacementMapMgrMapArray {
|
|
||||||
public:
|
|
||||||
PlacementMapMgrMapArray() = default;
|
|
||||||
~PlacementMapMgrMapArray() = default;
|
|
||||||
|
|
||||||
sead::PtrArray<PlacementMap> maps; /* 0x00 */
|
|
||||||
sead::PtrArray<PlacementMap> ptrs; /* 0x10 */
|
|
||||||
map::PlacementActors* pa; /* 0x20 */
|
|
||||||
s64 _28; /* 0x28 */
|
|
||||||
ksys::res::Handle res; /* 0x30 */
|
|
||||||
Placement18* p18; /* 0x80 */
|
|
||||||
s32 _88; /* 0x88 */
|
|
||||||
s32 _8c; /* 0x8c */
|
|
||||||
void* _90; /* 0x90 */
|
|
||||||
};
|
|
||||||
KSYS_CHECK_SIZE_NX150(PlacementMapMgrMapArray, 0x98);
|
|
||||||
|
|
||||||
/* NOT WORKING */
|
|
||||||
class PlacementMapMgr {
|
|
||||||
SEAD_SINGLETON_DISPOSER(PlacementMapMgr)
|
|
||||||
public:
|
|
||||||
PlacementMapMgr() = default;
|
|
||||||
~PlacementMapMgr() = default;
|
|
||||||
|
|
||||||
void junk(); // Here to make compiler include MapPlacement - REMOVE
|
|
||||||
|
|
||||||
s32 numMaps; /* 0x00 */
|
|
||||||
s32 _4; /* 0x04 */
|
|
||||||
ksys::map::PlacementMap* maps; /* 0x08 */
|
|
||||||
ksys::map::MapProperties* mapProps; /* 0x10 */
|
|
||||||
s32 _18; /* 0x18 */
|
|
||||||
s32 _1c; /* 0x1c */
|
|
||||||
ksys::map::PlacementMapMgrMapArray mapArray; /* 0x20 */
|
|
||||||
ksys::map::FarActorMerge* farActorMerge; /* 0xB8 */
|
|
||||||
s32 needLoadDynMap; /* 0xC0 */
|
|
||||||
s32 needLoadDynMapPhysics; /* 0xC4 */
|
|
||||||
char isShrineOrDivineBeast; /* 0xC8 */
|
|
||||||
char isShrine; /* 0xC9 */
|
|
||||||
char _ca[6]; /* 0xCA */
|
|
||||||
};
|
|
||||||
/* Size - D0 ? */
|
|
||||||
KSYS_CHECK_SIZE_NX150(PlacementMapMgr, 0xF0);
|
|
||||||
|
|
||||||
} // namespace ksys::map
|
} // namespace ksys::map
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
#include "KingSystem/Map/mapPlacementMapMgr.h"
|
||||||
|
|
||||||
|
namespace ksys::map {
|
||||||
|
|
||||||
|
SEAD_SINGLETON_DISPOSER_IMPL(PlacementMapMgr)
|
||||||
|
|
||||||
|
} // namespace ksys::map
|
|
@ -0,0 +1,63 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <basis/seadTypes.h>
|
||||||
|
#include <container/seadPtrArray.h>
|
||||||
|
#include <heap/seadDisposer.h>
|
||||||
|
#include "KingSystem/Map/mapPlacementMap.h"
|
||||||
|
#include "KingSystem/Resource/resHandle.h"
|
||||||
|
#include "KingSystem/Utils/Types.h"
|
||||||
|
|
||||||
|
namespace ksys::map {
|
||||||
|
|
||||||
|
class MapProperties;
|
||||||
|
class Placement18;
|
||||||
|
class FarActorMerge;
|
||||||
|
|
||||||
|
class PlacementMap;
|
||||||
|
|
||||||
|
/* NOT WORKING */
|
||||||
|
class PlacementMapArray {
|
||||||
|
public:
|
||||||
|
PlacementMapArray() = default;
|
||||||
|
~PlacementMapArray() = default;
|
||||||
|
|
||||||
|
sead::PtrArray<PlacementMap> mMaps;
|
||||||
|
sead::PtrArray<PlacementMap> mPtrs;
|
||||||
|
PlacementActors* mPa;
|
||||||
|
s64 _28;
|
||||||
|
res::Handle mRes;
|
||||||
|
Placement18* mP18;
|
||||||
|
s32 _88;
|
||||||
|
s32 _8c;
|
||||||
|
void* _90;
|
||||||
|
};
|
||||||
|
KSYS_CHECK_SIZE_NX150(PlacementMapArray, 0x98);
|
||||||
|
|
||||||
|
/* NOT WORKING */
|
||||||
|
class PlacementMapMgr {
|
||||||
|
SEAD_SINGLETON_DISPOSER(PlacementMapMgr)
|
||||||
|
|
||||||
|
public:
|
||||||
|
PlacementMapMgr() = default;
|
||||||
|
~PlacementMapMgr() = default;
|
||||||
|
|
||||||
|
void junk(); // Here to make compiler include MapPlacement - REMOVE
|
||||||
|
|
||||||
|
s32 mNumMaps;
|
||||||
|
s32 _4;
|
||||||
|
PlacementMap* mMaps;
|
||||||
|
MapProperties* mMapProps;
|
||||||
|
s32 _18;
|
||||||
|
s32 _1c;
|
||||||
|
PlacementMapArray mMapArray;
|
||||||
|
FarActorMerge* mFarActorMerge;
|
||||||
|
s32 mNeedLoadDynMap;
|
||||||
|
s32 mNeedLoadDynMapPhysics;
|
||||||
|
bool mIsShrineOrDivineBeast;
|
||||||
|
bool mIsShrine;
|
||||||
|
// char pad[6];
|
||||||
|
};
|
||||||
|
/* Size - D0 ? */
|
||||||
|
KSYS_CHECK_SIZE_NX150(PlacementMapMgr, 0xF0);
|
||||||
|
|
||||||
|
} // namespace ksys::map
|
Loading…
Reference in New Issue