mirror of https://github.com/zeldaret/botw.git
ksys/world: Fix WorldInfo, DungeonEnv, Manager structs
This commit is contained in:
parent
92ed3dbddb
commit
34c85c322e
|
@ -89538,9 +89538,9 @@
|
|||
0x00000071010f220c,sub_71010F220C,60,
|
||||
0x00000071010f2248,sub_71010F2248,1536,
|
||||
0x00000071010f2848,sub_71010F2848,8,
|
||||
0x00000071010f2850,WorldMgr::destroyInstance,100,
|
||||
0x00000071010f28b4,WorldMgr::destroyInstanceDelete,108,
|
||||
0x00000071010f2920,WorldMgr::createInstance,136,
|
||||
0x00000071010f2850,WorldMgr::destroyInstance,100,_ZN4ksys5world7Manager18SingletonDisposer_D1Ev
|
||||
0x00000071010f28b4,WorldMgr::destroyInstanceDelete,108,_ZN4ksys5world7Manager18SingletonDisposer_D0Ev
|
||||
0x00000071010f2920,WorldMgr::createInstance,136,_ZN4ksys5world7Manager14createInstanceEPN4sead4HeapE
|
||||
0x00000071010f29a8,nullsub_5567,4,
|
||||
0x00000071010f29ac,nullsub_5568,4,
|
||||
0x00000071010f29b0,nullsub_5569,4,
|
||||
|
@ -89576,7 +89576,7 @@
|
|||
0x00000071010f3cdc,WorldMgr::isCurrentClimateForbidComeback,96,
|
||||
0x00000071010f3d3c,WorldMgr::isClimateForbidComeback,92,
|
||||
0x00000071010f3d98,WorldMgr::unloadDgnenvAndGetWeatherMgr,76,
|
||||
0x00000071010f3de4,WorldMgr::ctor,728,
|
||||
0x00000071010f3de4,WorldMgr::ctor,728,_ZN4ksys5world7ManagerC1Ev!
|
||||
0x00000071010f40bc,WorldMgr::init,836,
|
||||
0x00000071010f4400,WorldMgr::resetForStageUnload,84,
|
||||
0x00000071010f4454,WorldMgr::loadBwinfo,148,
|
||||
|
@ -89584,8 +89584,8 @@
|
|||
0x00000071010f66c4,WorldMgr::updateRemainsType,268,
|
||||
0x00000071010f67d0,WorldMgr::updateGraphicsMap,164,
|
||||
0x00000071010f6874,sub_71010F6874,680,
|
||||
0x00000071010f6b1c,sub_71010F6B1C,116,
|
||||
0x00000071010f6b90,sub_71010F6B90,76,
|
||||
0x00000071010f6b1c,sub_71010F6B1C,116,_ZN4ksys5world10DungeonEnvD2Ev
|
||||
0x00000071010f6b90,sub_71010F6B90,76,_ZN4ksys5world9WorldInfoD2Ev
|
||||
0x00000071010f6bdc,sub_71010F6BDC,36,
|
||||
0x00000071010f6c00,WorldMgr::initBeforeStageGenB,32,
|
||||
0x00000071010f6c20,WorldMgr::__auto4,32,
|
||||
|
@ -89630,8 +89630,8 @@
|
|||
0x00000071010f8438,WorldMgr::setIgnitedLevel,188,
|
||||
0x00000071010f84f4,WorldMgr::__auto7,48,
|
||||
0x00000071010f8524,WorldMgr::__auto17,32,
|
||||
0x00000071010f8544,sub_71010F8544,64,
|
||||
0x00000071010f8584,sub_71010F8584,104,
|
||||
0x00000071010f8544,sub_71010F8544,64,_ZN4ksys5world9WorldInfoD0Ev
|
||||
0x00000071010f8584,sub_71010F8584,104,_ZN4ksys5world10DungeonEnvD0Ev
|
||||
0x00000071010f85ec,getDungeonSizeText,428,
|
||||
0x00000071010f8798,j__ZdlPv_1204,4,
|
||||
0x00000071010f879c,_ZN4sead15FixedSafeStringILi9EEaSERKNS_14SafeStringBaseIcEE,240,
|
||||
|
|
Can't render this file because it is too large.
|
|
@ -1,3 +1,4 @@
|
|||
target_sources(uking PRIVATE
|
||||
worldManager.cpp
|
||||
worldManager.h
|
||||
)
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
#include "KingSystem/World/worldManager.h"
|
||||
|
||||
namespace ksys::world {
|
||||
|
||||
SEAD_SINGLETON_DISPOSER_IMPL(Manager)
|
||||
|
||||
// NON_MATCHING: stores in a different order (handwritten assignments?) but should be equivalent
|
||||
Manager::Manager() = default;
|
||||
|
||||
} // namespace ksys::world
|
|
@ -1,45 +1,43 @@
|
|||
#pragma once
|
||||
|
||||
#include <agl/Utils/aglAtomicPtrArray.h>
|
||||
#include <agl/Utils/aglParameter.h>
|
||||
#include <agl/Utils/aglParameterIO.h>
|
||||
#include <agl/Utils/aglParameterObj.h>
|
||||
#include <container/seadBuffer.h>
|
||||
#include <container/seadPtrArray.h>
|
||||
#include <hostio/seadHostIONode.h>
|
||||
#include <mc/seadJobQueue.h>
|
||||
#include "KingSystem/Resource/resHandle.h"
|
||||
#include "KingSystem/Utils/ParamIO.h"
|
||||
#include "agl/Utils/aglAtomicPtrArray.h"
|
||||
#include "agl/Utils/aglParameter.h"
|
||||
#include "agl/Utils/aglParameterObj.h"
|
||||
#include "KingSystem/Utils/Types.h"
|
||||
|
||||
namespace ksys::world {
|
||||
|
||||
// FIXME
|
||||
class Climate {};
|
||||
|
||||
class WorldInfo : public ParamIO {
|
||||
class WorldInfo : public agl::utl::IParameterIO, public sead::hostio::Node {
|
||||
public:
|
||||
WorldInfo() : ParamIO("winfo", 0) {}
|
||||
~WorldInfo();
|
||||
|
||||
bool ParamIO_m0() override { return true; }
|
||||
WorldInfo() : agl::utl::IParameterIO("winfo", 0) {}
|
||||
|
||||
u8 _1d8[0x20];
|
||||
res::Handle mResHandle;
|
||||
u32 mNumClimates = 0;
|
||||
Climate* mClimates = nullptr;
|
||||
sead::Buffer<Climate> mClimates;
|
||||
};
|
||||
KSYS_CHECK_SIZE_NX150(WorldInfo, 0x258);
|
||||
|
||||
class DungeonEnv : public ParamIO {
|
||||
class DungeonEnv : public agl::utl::IParameterIO, public sead::hostio::Node {
|
||||
public:
|
||||
DungeonEnv() : ParamIO("dgenv", 0) {}
|
||||
~DungeonEnv();
|
||||
|
||||
bool ParamIO_m0() override { return true; }
|
||||
DungeonEnv() : agl::utl::IParameterIO("dgnenv", 0) {}
|
||||
|
||||
u8 _1d8[0x20];
|
||||
res::Handle mResHandle;
|
||||
|
||||
agl::utl::Parameter<f32> mLightLongitude;
|
||||
agl::utl::Parameter<float> mLightLongitude;
|
||||
agl::utl::Parameter<sead::FixedSafeString<32>> mDungeonSize;
|
||||
agl::utl::Parameter<sead::FixedSafeString<32>> mString538;
|
||||
agl::utl::ParameterObj mDungeonEnvObj;
|
||||
sead::PtrArray<void*> mgrs{};
|
||||
sead::DirectResource* mInfoRes = nullptr;
|
||||
};
|
||||
KSYS_CHECK_SIZE_NX150(DungeonEnv, 0x338);
|
||||
|
||||
// FIXME: incomplete
|
||||
class Manager : public sead::hostio::Node {
|
||||
|
@ -48,41 +46,102 @@ class Manager : public sead::hostio::Node {
|
|||
virtual ~Manager();
|
||||
|
||||
public:
|
||||
enum class CalcType {
|
||||
_3 = 3,
|
||||
};
|
||||
|
||||
enum class StageType {
|
||||
|
||||
};
|
||||
|
||||
enum class RemainsType {
|
||||
|
||||
};
|
||||
|
||||
enum class FieldType {
|
||||
|
||||
};
|
||||
|
||||
enum class ScalingMode {
|
||||
|
||||
};
|
||||
|
||||
bool isRaining(const sead::Vector3f& pos) const;
|
||||
|
||||
WorldInfo mWorldInfo;
|
||||
DungeonEnv mDungeonEnv;
|
||||
sead::DirectResource* mInfoRes{};
|
||||
|
||||
agl::utl::AtomicPtrArray<void*> mAtomicPtrArray{0, 0};
|
||||
u32 _5e0 = 1;
|
||||
u32 mCalcType = 3;
|
||||
sead::PtrArray<void*> mMgrs;
|
||||
agl::utl::AtomicPtrArray<void*> mAtomicPtrArray;
|
||||
sead::BitFlag32 _5e0 = 1;
|
||||
CalcType mCalcType = CalcType::_3;
|
||||
sead::FixedSizeJQ mJobQueue;
|
||||
f32 mWindPowerIf78C = 5.0;
|
||||
f32 mTempDirectDayExtra = 100000.0;
|
||||
f32 mTempDirectNightExtra = 100000.0;
|
||||
f32 mTempDirectDay = 100000.0;
|
||||
f32 mTempDirectNight = 100000.0;
|
||||
s32 _794;
|
||||
s32 mStageType = 0;
|
||||
s32 mStageType2 = 0;
|
||||
u8 mGameSceneInitialised = 0;
|
||||
sead::Vector3f mPrevPlayerPos{};
|
||||
sead::Vector3f mPlayerPos{};
|
||||
sead::Vector3f mPrevCameraPos{};
|
||||
sead::Vector3f mCameraPos{};
|
||||
f32 _770 = 0.0;
|
||||
s32 _778 = 0;
|
||||
s32 _78c = 0;
|
||||
s32 _7ac = 0;
|
||||
void* _7a4 = nullptr;
|
||||
void* _79c = nullptr;
|
||||
f32 mWindPowerAocField = 0.75;
|
||||
u8 mWorldInfoLoaded = 0;
|
||||
|
||||
sead::Vector3f mCameraPos{0, 0, 0};
|
||||
sead::Vector3f mPrevCameraPos{0, 0, 0};
|
||||
sead::Vector3f mPlayerPos{0, 0, 0};
|
||||
sead::Vector3f mPrevPlayerPos{0, 0, 0};
|
||||
|
||||
StageType mStageType{};
|
||||
StageType mStageType2{};
|
||||
|
||||
u32 _6c0 = 0;
|
||||
u32 _6c4 = 30;
|
||||
u32 _6c8 = 0;
|
||||
bool _6cc = false;
|
||||
bool mGameSceneInitialized = false;
|
||||
|
||||
float mFloatsPerClimate[20];
|
||||
u32 _720 = 0;
|
||||
sead::Vector3f mWindDir{0, 0, -1};
|
||||
sead::Vector3f mDirectionalLightVecA{0, 1, 0};
|
||||
sead::Vector3f mDirectionalLightVecB{0, 1, 0};
|
||||
sead::Vector3f _748{0, 0, 0};
|
||||
float _754 = 1.0;
|
||||
float mWindPowerIf7D4 = 1.0;
|
||||
float mWindPowerIf78C = 5.0;
|
||||
float mTempDirectDayExtra = 99999.9;
|
||||
float mTempDirectNightExtra = 99999.9;
|
||||
float mTempDirectDay = 99999.9;
|
||||
float mTempDirectNight = 99999.9;
|
||||
float _770 = 0.0;
|
||||
float mFocusDist = 100.0;
|
||||
float _778 = -1.0;
|
||||
u32 _77c = 9;
|
||||
u32 mCurrentArea = 0;
|
||||
u32 mPrevArea = 0;
|
||||
u32 _788 = 0;
|
||||
u32 _78c = 0;
|
||||
u32 _790 = 0;
|
||||
u32 _794 = 0;
|
||||
int _798 = -1;
|
||||
u32 _79c = 0;
|
||||
u32 _7a0 = 0;
|
||||
u32 _7a4 = 0;
|
||||
u32 _7a8 = 0;
|
||||
u32 _7ac = 0;
|
||||
u32 _7b0 = 0;
|
||||
u32 mIgnitedLevel = 0;
|
||||
u32 _7b8 = 0;
|
||||
RemainsType mRemainsType{};
|
||||
FieldType mFieldType{};
|
||||
ScalingMode mScalingMode{};
|
||||
u32 _7c8 = 0;
|
||||
float mWindPowerAocField = 0.75;
|
||||
bool mWorldInfoLoaded = false;
|
||||
u8 mWeatherType = 0xFF;
|
||||
u8 _7d2 = 0;
|
||||
u8 _7d3 = 1;
|
||||
u8 _7d4 = 0;
|
||||
u8 mInFinalTrialBossBattleArea = 0;
|
||||
u8 _7d5 = 0;
|
||||
u8 _7d6 = 0;
|
||||
u8 _7d7 = 0;
|
||||
bool mIsDemo = false;
|
||||
bool mIsMainField = false;
|
||||
bool mIsBattleCurseR = false;
|
||||
bool mInFinalTrialBossBattleArea = false;
|
||||
};
|
||||
KSYS_CHECK_SIZE_NX150(Manager, 0x7e0);
|
||||
|
||||
} // namespace ksys::world
|
||||
|
|
Loading…
Reference in New Issue