mirror of https://github.com/zeldaret/botw.git
loadMsgPack
This commit is contained in:
parent
cecb84bd2f
commit
d41d55ebd4
|
@ -88332,7 +88332,7 @@ Address,Quality,Size,Name
|
||||||
0x00000071010a24a8,U,000120,
|
0x00000071010a24a8,U,000120,
|
||||||
0x00000071010a2520,O,000284,_ZN4ksys2ui17LayoutResourceMgr14createInstanceEPN4sead4HeapE
|
0x00000071010a2520,O,000284,_ZN4ksys2ui17LayoutResourceMgr14createInstanceEPN4sead4HeapE
|
||||||
0x00000071010a263c,O,000268,_ZN4ksys2ui17LayoutResourceMgr4initEPN4sead4HeapE
|
0x00000071010a263c,O,000268,_ZN4ksys2ui17LayoutResourceMgr4initEPN4sead4HeapE
|
||||||
0x00000071010a2748,U,000424,LayoutResourceMgr::loadMsgPack
|
0x00000071010a2748,O,000424,_ZN4ksys2ui17LayoutResourceMgr11loadMsgPackEPj
|
||||||
0x00000071010a28f0,U,000384,LayoutResourceMgr::__auto2
|
0x00000071010a28f0,U,000384,LayoutResourceMgr::__auto2
|
||||||
0x00000071010a2a70,U,000260,LayoutResourceMgr::loadLangFont
|
0x00000071010a2a70,U,000260,LayoutResourceMgr::loadLangFont
|
||||||
0x00000071010a2b74,U,000388,LayoutResourceMgr::__auto0
|
0x00000071010a2b74,U,000388,LayoutResourceMgr::__auto0
|
||||||
|
|
Can't render this file because it is too large.
|
|
@ -1,13 +1,15 @@
|
||||||
|
#include <devenv/seadEnvUtil.h>
|
||||||
|
#include "KingSystem/Resource/resLoadRequest.h"
|
||||||
|
#include "KingSystem/System/StarterPackMgr.h"
|
||||||
|
|
||||||
#include "LayoutResourceMgr.h"
|
#include "LayoutResourceMgr.h"
|
||||||
#include "devenv/seadEnvUtil.h"
|
|
||||||
|
|
||||||
namespace ksys::ui {
|
namespace ksys::ui {
|
||||||
|
|
||||||
SEAD_SINGLETON_DISPOSER_IMPL(LayoutResourceMgr)
|
SEAD_SINGLETON_DISPOSER_IMPL(LayoutResourceMgr)
|
||||||
|
|
||||||
void LayoutResourceMgr::init(sead::Heap* heap) {
|
void LayoutResourceMgr::init(sead::Heap* heap) {
|
||||||
mHandleAtx28 = new (heap) res::Handle;
|
mMsgPackHandle = new (heap) res::Handle;
|
||||||
mLangFontTodo = new (heap) res::Handle;
|
mLangFontTodo = new (heap) res::Handle;
|
||||||
mVersionRes = new (heap) res::Handle;
|
mVersionRes = new (heap) res::Handle;
|
||||||
int count;
|
int count;
|
||||||
|
@ -30,4 +32,28 @@ void LayoutResourceMgr::init(sead::Heap* heap) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u8* LayoutResourceMgr::loadMsgPack(u32* size) {
|
||||||
|
mMsgPackHandle->resetUnitFlag20000IfSuccess();
|
||||||
|
mMsgPackHandle->unload();
|
||||||
|
|
||||||
|
res::LoadRequest req;
|
||||||
|
req.mRequester = "LayoutResourceMgr";
|
||||||
|
req._22 = true;
|
||||||
|
req._21 = true;
|
||||||
|
req.mLoadDataAlignment = 0x80;
|
||||||
|
req._26 = false;
|
||||||
|
req.mPackHandle = StarterPackMgr::instance()->getBootupLangPack();
|
||||||
|
|
||||||
|
sead::FixedSafeString<0x20> path;
|
||||||
|
path.format("Message/Msg_%s.product.sarc", sead::EnvUtil::getRegionLanguage().text());
|
||||||
|
|
||||||
|
res::Handle::Status status;
|
||||||
|
auto* resource = sead::DynamicCast<sead::DirectResource>(
|
||||||
|
mMsgPackHandle->load(path, &req, &status)
|
||||||
|
);
|
||||||
|
|
||||||
|
*size = resource->getRawSize();
|
||||||
|
return resource->getRawData();
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace ksys::ui
|
} // namespace ksys::ui
|
||||||
|
|
|
@ -19,8 +19,9 @@ class LayoutResourceMgr {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
void init(sead::Heap* heap);
|
void init(sead::Heap* heap);
|
||||||
|
u8* loadMsgPack(u32* size);
|
||||||
private:
|
private:
|
||||||
res::Handle* mHandleAtx28 = nullptr;
|
res::Handle* mMsgPackHandle = nullptr;
|
||||||
res::Handle* mLangFontTodo = nullptr;
|
res::Handle* mLangFontTodo = nullptr;
|
||||||
res::Handle* mVersionRes = nullptr;
|
res::Handle* mVersionRes = nullptr;
|
||||||
sead::FixedPtrArray<res::Handle, 8> mArray;
|
sead::FixedPtrArray<res::Handle, 8> mArray;
|
||||||
|
|
Loading…
Reference in New Issue