loadVersion

This commit is contained in:
Pistonight 2024-08-08 20:29:50 -07:00
parent 3ff5c64f9d
commit 490077a463
4 changed files with 62 additions and 26 deletions

View File

@ -88328,8 +88328,8 @@ Address,Quality,Size,Name
0x00000071010a2294,U,000008, 0x00000071010a2294,U,000008,
0x00000071010a229c,U,000040, 0x00000071010a229c,U,000040,
0x00000071010a22c4,U,000372, 0x00000071010a22c4,U,000372,
0x00000071010a2438,U,000112, 0x00000071010a2438,W,000112,_ZN4ksys2ui17LayoutResourceMgr18SingletonDisposer_D0Ev
0x00000071010a24a8,U,000120, 0x00000071010a24a8,W,000120,_ZN4ksys2ui17LayoutResourceMgr18SingletonDisposer_D1Ev
0x00000071010a2520,O,000284,_ZN4ksys2ui17LayoutResourceMgr14createInstanceEPN4sead4HeapE 0x00000071010a2520,O,000284,_ZN4ksys2ui17LayoutResourceMgr14createInstanceEPN4sead4HeapE
0x00000071010a263c,O,000268,_ZN4ksys2ui17LayoutResourceMgr4initEPN4sead4HeapE 0x00000071010a263c,O,000268,_ZN4ksys2ui17LayoutResourceMgr4initEPN4sead4HeapE
0x00000071010a2748,O,000424,_ZN4ksys2ui17LayoutResourceMgr11loadMsgPackEPj 0x00000071010a2748,O,000424,_ZN4ksys2ui17LayoutResourceMgr11loadMsgPackEPj
@ -88339,20 +88339,20 @@ Address,Quality,Size,Name
0x00000071010a2cf8,W,000680,_ZN4ksys2ui17LayoutResourceMgr18loadExtraLangFontsEPN4sead4HeapE 0x00000071010a2cf8,W,000680,_ZN4ksys2ui17LayoutResourceMgr18loadExtraLangFontsEPN4sead4HeapE
0x00000071010a2fa0,O,000188,_ZN4ksys2ui17LayoutResourceMgr18checkLangFontReadyEv 0x00000071010a2fa0,O,000188,_ZN4ksys2ui17LayoutResourceMgr18checkLangFontReadyEv
0x00000071010a305c,O,000136,_ZNK4ksys2ui17LayoutResourceMgr24checkExtraLangFontsReadyEv 0x00000071010a305c,O,000136,_ZNK4ksys2ui17LayoutResourceMgr24checkExtraLangFontsReadyEv
0x00000071010a30e4,U,000136,LayoutResourceMgr::loadVersion 0x00000071010a30e4,O,000136,_ZN4ksys2ui17LayoutResourceMgr11loadVersionEv
0x00000071010a316c,U,000372,LayoutResourceMgr::ready_1 0x00000071010a316c,U,000372,LayoutResourceMgr::ready_1
0x00000071010a32e0,U,001584, 0x00000071010a32e0,U,001584,LayoutResourceMgr::loadALotOfResources
0x00000071010a3910,W,000064,_ZN4sead12PerfJobQueue13measureEndRunEv 0x00000071010a3910,W,000064,_ZN4sead12PerfJobQueue13measureEndRunEv
0x00000071010a3950,U,000072,LayoutResourceMgr::loadLayoutCommonArchive 0x00000071010a3950,U,000072,LayoutResourceMgr::loadLayoutCommonArchive
0x00000071010a3998,U,000288,LayoutResourceMgr::loadArcResource 0x00000071010a3998,U,000288,LayoutResourceMgr::loadArcResource
0x00000071010a3ab8,U,000104, 0x00000071010a3ab8,U,000104,LayoutResourceMgr::deleteSOmething
0x00000071010a3b20,U,000208, 0x00000071010a3b20,U,000208,LayoutResourceMgr::loadTitleResource
0x00000071010a3bf0,U,000016, 0x00000071010a3bf0,U,000016,LayoutResourceMgr::loadTitleResource2
0x00000071010a3c00,U,000104, 0x00000071010a3c00,U,000104,LayoutResourceMgr::deleteSomethingElse
0x00000071010a3c68,U,000264,LayoutResourceMgr::x 0x00000071010a3c68,U,000264,LayoutResourceMgr::x
0x00000071010a3d70,U,000076, 0x00000071010a3d70,U,000076,LayoutResourceMgr::x_0
0x00000071010a3dbc,U,000068, 0x00000071010a3dbc,U,000068,LayoutResourceMgr::checkHorse
0x00000071010a3e00,U,000168, 0x00000071010a3e00,U,000168,LayoutResourceMgr::pending
0x00000071010a3ea8,U,000104,ScreenLoadSaveIcon::ctor 0x00000071010a3ea8,U,000104,ScreenLoadSaveIcon::ctor
0x00000071010a3f10,U,000044, 0x00000071010a3f10,U,000044,
0x00000071010a3f3c,U,000048, 0x00000071010a3f3c,U,000048,

Can't render this file because it is too large.

View File

@ -0,0 +1,21 @@
#pragma once
#include <heap/seadDisposer.h>
#include <prim/seadSafeString.h>
#include "KingSystem/System/UI/ArcResourceMgr.h"
namespace ksys::ui {
class ArcResourceMgr;
class ArcResource : public sead::IDisposer {
private:
void* _20;
void* _28;
ArcResourceMgr* mArcResourceMgr;
sead::FixedSafeString<0x40> mName;
u8* mData;
void* mResource;
};
}

View File

@ -9,6 +9,7 @@
namespace ksys::ui { namespace ksys::ui {
SEAD_SINGLETON_DISPOSER_IMPL(LayoutResourceMgr) SEAD_SINGLETON_DISPOSER_IMPL(LayoutResourceMgr)
LayoutResourceMgr::~LayoutResourceMgr() = default;
void LayoutResourceMgr::init(sead::Heap* heap) { void LayoutResourceMgr::init(sead::Heap* heap) {
mMsgPackHandle = new (heap) res::Handle; mMsgPackHandle = new (heap) res::Handle;
@ -75,13 +76,14 @@ void LayoutResourceMgr::loadLangFont(sead::Heap* heap) {
mLangFontHandle->load(path, &req, nullptr); mLangFontHandle->load(path, &req, nullptr);
} }
constexpr const char* cExtraFontFiles[12] = { constexpr const char* cExtraFontFiles[3][4] = {
"AsiaKCUBE-R", "AsiaKDREAM2R", "AsiaKDREAM4R", "AsiaKDREAM7R", "DFP_GBZY9", "DFP_GB_H3", {"AsiaKCUBE-R", "AsiaKDREAM2R", "AsiaKDREAM4R", "AsiaKDREAM7R"},
"DFP_GB_H5", "DFHEI5A", "DFT_ZY9", "DFT_B3", "DFT_B5", "DFT_B9"}; {"DFP_GBZY9", "DFP_GB_H3", "DFP_GB_H5", "DFHEI5A", },
{ "DFT_ZY9", "DFT_B3", "DFT_B5", "DFT_B9"}};
void LayoutResourceMgr::loadExtraLangFonts(sead::Heap* heap) { void LayoutResourceMgr::loadExtraLangFonts(sead::Heap* heap) {
sead::RegionLanguageID lang_id = sead::EnvUtil::getRegionLanguage(); sead::RegionLanguageID lang_id = sead::EnvUtil::getRegionLanguage();
const char* const* fonts = cExtraFontFiles; auto* fonts = cExtraFontFiles;
for (int i = 0; i <= 2; i++) { for (int i = 0; i <= 2; i++) {
if (lang_id.value() == sead::RegionLanguageID::KRko + i) { if (lang_id.value() == sead::RegionLanguageID::KRko + i) {
break; break;
@ -89,7 +91,7 @@ void LayoutResourceMgr::loadExtraLangFonts(sead::Heap* heap) {
if (i == 2) { if (i == 2) {
return; return;
} }
fonts += 4; fonts++;
} }
res::LoadRequest req; res::LoadRequest req;
@ -104,6 +106,7 @@ void LayoutResourceMgr::loadExtraLangFonts(sead::Heap* heap) {
path.format("Font/Font_%s.bfttf", fonts[i]); path.format("Font/Font_%s.bfttf", fonts[i]);
handle->requestLoad(path, &req, &status); handle->requestLoad(path, &req, &status);
} }
mZeldaGlyphHandle->requestLoad("Font/ZeldaGlyphs-v2-Deco.bfotf", &req, &status); mZeldaGlyphHandle->requestLoad("Font/ZeldaGlyphs-v2-Deco.bfotf", &req, &status);
nn::pl::RequestSharedFontLoad(nn::pl::SharedFontType::Unknown); nn::pl::RequestSharedFontLoad(nn::pl::SharedFontType::Unknown);
} }
@ -139,4 +142,12 @@ bool LayoutResourceMgr::checkExtraLangFontsReady() const {
return false; return false;
} }
void LayoutResourceMgr::loadVersion() {
res::LoadRequest req;
req.mRequester = "LayoutResourceMgr";
req._26 = false;
mVersionHandle->requestLoad("System/Version.txt", &req, nullptr);
}
} // namespace ksys::ui } // namespace ksys::ui

View File

@ -23,14 +23,24 @@ class LayoutResourceMgr {
virtual ~LayoutResourceMgr(); virtual ~LayoutResourceMgr();
public: public:
void init(sead::Heap* heap); void init(sead::Heap* heap);
u8* loadMsgPack(u32* size); u8* loadMsgPack(u32* size);
void loadLangFont(sead::Heap* heap); void loadLangFont(sead::Heap* heap);
void loadExtraLangFonts(sead::Heap* heap); void loadExtraLangFonts(sead::Heap* heap);
bool checkLangFontReady(); bool checkLangFontReady();
bool checkExtraLangFontsReady() const; bool checkExtraLangFontsReady() const;
void loadVersion();
private: private:
class Archive {
public:
res::Handle* mHandle = nullptr;
void* _8 = nullptr;
void* _sizeA8Buf = nullptr;
};
res::Handle* mMsgPackHandle = nullptr; res::Handle* mMsgPackHandle = nullptr;
res::Handle* mLangFontHandle = nullptr; res::Handle* mLangFontHandle = nullptr;
res::Handle* mVersionHandle = nullptr; res::Handle* mVersionHandle = nullptr;
@ -38,19 +48,13 @@ private:
res::Handle* mZeldaGlyphHandle = nullptr; res::Handle* mZeldaGlyphHandle = nullptr;
ArcResourceMgr* mArcResourceMgr = nullptr; ArcResourceMgr* mArcResourceMgr = nullptr;
sead::DirectResource* mLangFontResource = nullptr; sead::DirectResource* mLangFontResource = nullptr;
void* _a8 = nullptr; Archive _a8;
void* _b0 = nullptr; Archive mTitleLayout;
void* _b8 = nullptr; Archive mHorseLayout;
void* mTitleLayoutArchiveTodo = nullptr;
void* _c8 = nullptr;
u64 mSizexA8BufTodo = 0;
res::Handle* mHorseLayoutResu = nullptr;
u64 _e0 = 0;
u64 _e8 = 0;
u16 mMaxDefArtLen = 0; u16 mMaxDefArtLen = 0;
u16 mMaxIndefArtLen = 0; u16 mMaxIndefArtLen = 0;
sead::FixedSafeString<16> mVersionString; sead::FixedSafeString<16> mVersionString;
int _120 = 0; int mHorseLayoutLoadCount = 0;
sead::CriticalSection mCriticalSection; sead::CriticalSection mCriticalSection;
}; };
KSYS_CHECK_SIZE_NX150(LayoutResourceMgr, 0x168); KSYS_CHECK_SIZE_NX150(LayoutResourceMgr, 0x168);