mirror of https://github.com/zeldaret/botw.git
ksys/res: Give better names to Handle flags and status enum values
This commit is contained in:
parent
f90fb23060
commit
d3d474b969
|
@ -93045,13 +93045,13 @@
|
||||||
0x0000007101201af4,Res::getError,8,_ZNK4ksys3res6Handle9getStatusEv
|
0x0000007101201af4,Res::getError,8,_ZNK4ksys3res6Handle9getStatusEv
|
||||||
0x0000007101201afc,Res::setError,12,_ZN4ksys3res6Handle24setStatusForResourceMgr_ERKNS1_6StatusE
|
0x0000007101201afc,Res::setError,12,_ZN4ksys3res6Handle24setStatusForResourceMgr_ERKNS1_6StatusE
|
||||||
0x0000007101201b08,Res::submitLoadForSyncRequestAndGetResource,444,_ZN4ksys3res6Handle4loadERKN4sead14SafeStringBaseIcEEPKNS0_12ILoadRequestEPNS1_6StatusE
|
0x0000007101201b08,Res::submitLoadForSyncRequestAndGetResource,444,_ZN4ksys3res6Handle4loadERKN4sead14SafeStringBaseIcEEPKNS0_12ILoadRequestEPNS1_6StatusE
|
||||||
0x0000007101201cc4,Res::isStartedLoadAndFailed,12,_ZNK4ksys3res6Handle10isFlag2SetEv
|
0x0000007101201cc4,Res::isStartedLoadAndFailed,12,_ZNK4ksys3res6Handle13requestedLoadEv
|
||||||
0x0000007101201cd0,ResourceLoadArg::dtor,20,_ZN4ksys3res11LoadRequestD2Ev
|
0x0000007101201cd0,ResourceLoadArg::dtor,20,_ZN4ksys3res11LoadRequestD2Ev
|
||||||
0x0000007101201ce4,Res::submitLoadRequest,380,_ZN4ksys3res6Handle11requestLoadERKN4sead14SafeStringBaseIcEEPKNS0_12ILoadRequestEPNS1_6StatusE
|
0x0000007101201ce4,Res::submitLoadRequest,380,_ZN4ksys3res6Handle11requestLoadERKN4sead14SafeStringBaseIcEEPKNS0_12ILoadRequestEPNS1_6StatusE
|
||||||
0x0000007101201e60,Res::waitForReady,68,_ZN4ksys3res6Handle12waitForReadyEv
|
0x0000007101201e60,Res::waitForReady,68,_ZN4ksys3res6Handle12waitForReadyEv
|
||||||
0x0000007101201ea4,sub_7101201EA4,104,_ZN4ksys3res6Handle12waitForReadyERKN4sead8TickSpanE
|
0x0000007101201ea4,sub_7101201EA4,104,_ZN4ksys3res6Handle12waitForReadyERKN4sead8TickSpanE
|
||||||
0x0000007101201f0c,Res::parseResource,404,_ZN4ksys3res6Handle13parseResourceEPNS0_7ContextE
|
0x0000007101201f0c,Res::parseResource,404,_ZN4ksys3res6Handle13parseResourceEPNS0_7ContextE
|
||||||
0x00000071012020a0,Res::k,12,_ZNK4ksys3res6Handle10isFlag8SetEv
|
0x00000071012020a0,Res::k,12,_ZNK4ksys3res6Handle17hasParsedResourceEv
|
||||||
0x00000071012020ac,Res::setSomeFlagOnResMgrDependingOnPath,784,_ZN4ksys3res6Handle22updateResourceMgrFlag_Ev!
|
0x00000071012020ac,Res::setSomeFlagOnResMgrDependingOnPath,784,_ZN4ksys3res6Handle22updateResourceMgrFlag_Ev!
|
||||||
0x00000071012023bc,Res::c,260,_ZN4ksys3res6Handle22updateStatusAndUnload_Ev
|
0x00000071012023bc,Res::c,260,_ZN4ksys3res6Handle22updateStatusAndUnload_Ev
|
||||||
0x00000071012024c0,Res::submitUnloadRequest,136,_ZN4ksys3res6Handle14requestUnload2Ev
|
0x00000071012024c0,Res::submitUnloadRequest,136,_ZN4ksys3res6Handle14requestUnload2Ev
|
||||||
|
|
Can't render this file because it is too large.
|
|
@ -471,7 +471,7 @@ void Manager::checkVersion() {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Manager::VersionFile::readVersion() {
|
bool Manager::VersionFile::readVersion() {
|
||||||
if (!file_handle.isFlag2Set())
|
if (!file_handle.requestedLoad())
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (file_handle.isSuccess()) {
|
if (file_handle.isSuccess()) {
|
||||||
|
|
|
@ -201,7 +201,7 @@ T* ActorParamMgr::handleAsyncFileLoad(ActorParam* param, s32* idx, ActorParam::R
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (handle.isFlag8Set())
|
if (handle.hasParsedResource())
|
||||||
return sead::DynamicCast<T>(handle.getResource());
|
return sead::DynamicCast<T>(handle.getResource());
|
||||||
|
|
||||||
if (!handle.isReadyOrNeedsParse())
|
if (!handle.isReadyOrNeedsParse())
|
||||||
|
@ -427,7 +427,7 @@ bool ActorParamMgr::finishLoadingExtraRes(ActorParam* param, void* x) {
|
||||||
++idx;
|
++idx;
|
||||||
} else {
|
} else {
|
||||||
const res::Handle& handle = param->mHandles[1][idx];
|
const res::Handle& handle = param->mHandles[1][idx];
|
||||||
if (handle.isFlag8Set()) {
|
if (handle.hasParsedResource()) {
|
||||||
++idx;
|
++idx;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -455,7 +455,7 @@ bool ActorParamMgr::finishLoadingExtraRes(ActorParam* param, void* x) {
|
||||||
++idx;
|
++idx;
|
||||||
} else {
|
} else {
|
||||||
const res::Handle& handle = param->mHandles[1][idx];
|
const res::Handle& handle = param->mHandles[1][idx];
|
||||||
if (handle.isFlag8Set()) {
|
if (handle.hasParsedResource()) {
|
||||||
++idx;
|
++idx;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -482,7 +482,7 @@ bool ActorParamMgr::finishLoadingExtraRes(ActorParam* param, void* x) {
|
||||||
++idx;
|
++idx;
|
||||||
} else {
|
} else {
|
||||||
const res::Handle& handle = param->mHandles[1][idx];
|
const res::Handle& handle = param->mHandles[1][idx];
|
||||||
if (handle.isFlag8Set()) {
|
if (handle.hasParsedResource()) {
|
||||||
++idx;
|
++idx;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,17 +65,17 @@ Handle::~Handle() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Handle::requestUnload() {
|
void Handle::requestUnload() {
|
||||||
if (!mFlags.isOn(Flag::_2))
|
if (!mFlags.isOn(Flag::LoadRequested))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mFlags.reset(Flag::_7);
|
mFlags.reset(Flag::LoadUnloadFlags);
|
||||||
mFlags.set(Flag::_4);
|
mFlags.set(Flag::UnloadRequested);
|
||||||
|
|
||||||
if (mTaskHandle.hasTask()) {
|
if (mTaskHandle.hasTask()) {
|
||||||
mTaskHandle.removeTaskFromQueue();
|
mTaskHandle.removeTaskFromQueue();
|
||||||
if (!mUnit) {
|
if (!mUnit) {
|
||||||
stubbedLogFunction();
|
stubbedLogFunction();
|
||||||
mStatus = Status::_14;
|
mStatus = Status::Cancelled;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -94,7 +94,7 @@ sead::DirectResource* Handle::getResource() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Handle::isSuccess() const {
|
bool Handle::isSuccess() const {
|
||||||
if (mFlags.isOff(Flag::_2))
|
if (mFlags.isOff(Flag::LoadRequested))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (isBusy())
|
if (isBusy())
|
||||||
|
@ -119,7 +119,7 @@ void Handle::setStatusForResourceMgr_(const Status& status) {
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool Handle::checkPathChange_(const sead::SafeString& path) {
|
inline bool Handle::checkPathChange_(const sead::SafeString& path) {
|
||||||
if (!mFlags.isOn(Flag::_2))
|
if (!mFlags.isOn(Flag::LoadRequested))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
stubbedLogFunction();
|
stubbedLogFunction();
|
||||||
|
@ -132,9 +132,9 @@ inline bool Handle::checkPathChange_(const sead::SafeString& path) {
|
||||||
sead::DirectResource* Handle::load(const sead::SafeString& path, const ILoadRequest* request,
|
sead::DirectResource* Handle::load(const sead::SafeString& path, const ILoadRequest* request,
|
||||||
Handle::Status* out_status) {
|
Handle::Status* out_status) {
|
||||||
if (checkPathChange_(path)) {
|
if (checkPathChange_(path)) {
|
||||||
mFlags.reset(Flag::_F);
|
mFlags.reset(Flag::AllStatusFlags);
|
||||||
mFlags.set(Flag::_2);
|
mFlags.set(Flag::LoadRequested);
|
||||||
mStatus = Status::_0;
|
mStatus = Status::NoFile;
|
||||||
if (request) {
|
if (request) {
|
||||||
ResourceMgrTask::instance()->requestLoadForSync(this, path, *request);
|
ResourceMgrTask::instance()->requestLoadForSync(this, path, *request);
|
||||||
} else {
|
} else {
|
||||||
|
@ -151,16 +151,16 @@ sead::DirectResource* Handle::load(const sead::SafeString& path, const ILoadRequ
|
||||||
return getResource();
|
return getResource();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Handle::isFlag2Set() const {
|
bool Handle::requestedLoad() const {
|
||||||
return mFlags.isOn(Flag::_2);
|
return mFlags.isOn(Flag::LoadRequested);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Handle::requestLoad(const sead::SafeString& path, const ILoadRequest* request,
|
bool Handle::requestLoad(const sead::SafeString& path, const ILoadRequest* request,
|
||||||
Handle::Status* out_status) {
|
Handle::Status* out_status) {
|
||||||
if (checkPathChange_(path)) {
|
if (checkPathChange_(path)) {
|
||||||
mFlags.reset(Flag::_F);
|
mFlags.reset(Flag::AllStatusFlags);
|
||||||
mFlags.set(Flag::_2);
|
mFlags.set(Flag::LoadRequested);
|
||||||
mStatus = Status::_0;
|
mStatus = Status::NoFile;
|
||||||
|
|
||||||
Handle::Status ret;
|
Handle::Status ret;
|
||||||
if (request) {
|
if (request) {
|
||||||
|
@ -203,33 +203,34 @@ bool Handle::waitForReady(const sead::TickSpan& span) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Handle::parseResource(Context* context) {
|
bool Handle::parseResource(Context* context) {
|
||||||
if (mFlags.isOn(Flag::_8))
|
if (mFlags.isOn(Flag::Parsed))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (mFlags.isOn(Flag::_4))
|
if (mFlags.isOn(Flag::UnloadRequested))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (mTaskHandle.getStatus() == util::ManagedTaskHandle::Status::TaskRemoved ||
|
if (mTaskHandle.getStatus() == util::ManagedTaskHandle::Status::TaskRemoved ||
|
||||||
(mUnit && mUnit->isTask1NotQueued())) {
|
(mUnit && mUnit->isTask1NotQueued())) {
|
||||||
stubbedLogFunction();
|
stubbedLogFunction();
|
||||||
mStatus = Status::_14;
|
mStatus = Status::Cancelled;
|
||||||
updateResourceMgrFlag_();
|
updateResourceMgrFlag_();
|
||||||
requestUnload();
|
requestUnload();
|
||||||
mFlags.set(Flag::_8);
|
mFlags.set(Flag::Parsed);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mStatus == Status::_1 || mStatus == Status::_2 || mStatus == Status::_3 ||
|
if (mStatus == Status::_1 || mStatus == Status::SizeZero || mStatus == Status::_3 ||
|
||||||
mStatus == Status::_8 || mStatus == Status::_9 || mStatus == Status::_10 ||
|
mStatus == Status::_8 || mStatus == Status::ParseFailed ||
|
||||||
mStatus == Status::_11 || mStatus == Status::_12 || mStatus == Status::_13 ||
|
mStatus == Status::BadAllocSize || mStatus == Status::Edited ||
|
||||||
mStatus == Status::_14) {
|
mStatus == Status::BadHeapSize || mStatus == Status::FileDeviceError ||
|
||||||
|
mStatus == Status::Cancelled) {
|
||||||
updateResourceMgrFlag_();
|
updateResourceMgrFlag_();
|
||||||
requestUnload();
|
requestUnload();
|
||||||
mFlags.set(Flag::_8);
|
mFlags.set(Flag::Parsed);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mStatus == Status::_0)
|
if (mStatus == Status::NoFile)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!mUnit) {
|
if (!mUnit) {
|
||||||
|
@ -252,10 +253,10 @@ bool Handle::parseResource(Context* context) {
|
||||||
break;
|
break;
|
||||||
case ResourceUnit::Status::_12:
|
case ResourceUnit::Status::_12:
|
||||||
case ResourceUnit::Status::_15:
|
case ResourceUnit::Status::_15:
|
||||||
mStatus = Status::_9;
|
mStatus = Status::ParseFailed;
|
||||||
updateResourceMgrFlag_();
|
updateResourceMgrFlag_();
|
||||||
requestUnload();
|
requestUnload();
|
||||||
mFlags.set(Flag::_8);
|
mFlags.set(Flag::Parsed);
|
||||||
return true;
|
return true;
|
||||||
case ResourceUnit::Status::_14:
|
case ResourceUnit::Status::_14:
|
||||||
if (mStatus == Status::_7)
|
if (mStatus == Status::_7)
|
||||||
|
@ -266,12 +267,12 @@ bool Handle::parseResource(Context* context) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
mFlags.set(Flag::_8);
|
mFlags.set(Flag::Parsed);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Handle::isFlag8Set() const {
|
bool Handle::hasParsedResource() const {
|
||||||
return mFlags.isOn(Flag::_8);
|
return mFlags.isOn(Flag::Parsed);
|
||||||
}
|
}
|
||||||
|
|
||||||
// NON_MATCHING: switch
|
// NON_MATCHING: switch
|
||||||
|
@ -329,17 +330,17 @@ void Handle::updateStatusAndUnload_() {
|
||||||
if (unit->mStatusFlags.isOn(ResourceUnit::StatusFlag::FailedMaybe))
|
if (unit->mStatusFlags.isOn(ResourceUnit::StatusFlag::FailedMaybe))
|
||||||
return Status::_1;
|
return Status::_1;
|
||||||
if (unit->mStatusFlags.isOn(ResourceUnit::StatusFlag::FileSizeIsZero))
|
if (unit->mStatusFlags.isOn(ResourceUnit::StatusFlag::FileSizeIsZero))
|
||||||
return Status::_2;
|
return Status::SizeZero;
|
||||||
if (unit->mStatusFlags.isOn(ResourceUnit::StatusFlag::_400))
|
if (unit->mStatusFlags.isOn(ResourceUnit::StatusFlag::_400))
|
||||||
return Status::_9;
|
return Status::ParseFailed;
|
||||||
if (unit->mStatusFlags.isOn(ResourceUnit::StatusFlag::FileSizeExceedsAllocSize))
|
if (unit->mStatusFlags.isOn(ResourceUnit::StatusFlag::FileSizeExceedsAllocSize))
|
||||||
return Status::_10;
|
return Status::BadAllocSize;
|
||||||
if (unit->mStatusFlags.isOn(ResourceUnit::StatusFlag::_1000))
|
if (unit->mStatusFlags.isOn(ResourceUnit::StatusFlag::Edited))
|
||||||
return Status::_11;
|
return Status::Edited;
|
||||||
if (unit->mStatusFlags.isOn(ResourceUnit::StatusFlag::FileOrResInstanceTooLargeForHeap))
|
if (unit->mStatusFlags.isOn(ResourceUnit::StatusFlag::FileOrResInstanceTooLargeForHeap))
|
||||||
return Status::_12;
|
return Status::BadHeapSize;
|
||||||
if (unit->mStatusFlags.isOn(ResourceUnit::StatusFlag::LoadFailed))
|
if (unit->mStatusFlags.isOn(ResourceUnit::StatusFlag::LoadFailed))
|
||||||
return Status::_13;
|
return Status::FileDeviceError;
|
||||||
|
|
||||||
#ifdef MATCHING_HACK_NX_CLANG
|
#ifdef MATCHING_HACK_NX_CLANG
|
||||||
asm("");
|
asm("");
|
||||||
|
@ -356,17 +357,17 @@ void Handle::requestUnload2() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Handle::unload() {
|
void Handle::unload() {
|
||||||
if (!mFlags.isOn(Flag::_2))
|
if (!mFlags.isOn(Flag::LoadRequested))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mFlags.reset(Flag::_7);
|
mFlags.reset(Flag::LoadUnloadFlags);
|
||||||
mFlags.set(Flag::_4);
|
mFlags.set(Flag::UnloadRequested);
|
||||||
|
|
||||||
if (mTaskHandle.hasTask()) {
|
if (mTaskHandle.hasTask()) {
|
||||||
mTaskHandle.removeTaskFromQueue();
|
mTaskHandle.removeTaskFromQueue();
|
||||||
if (!mUnit) {
|
if (!mUnit) {
|
||||||
stubbedLogFunction();
|
stubbedLogFunction();
|
||||||
mStatus = Status::_14;
|
mStatus = Status::Cancelled;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -376,17 +377,17 @@ void Handle::unload() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Handle::unloadAndResetUnitFlag20000() {
|
void Handle::unloadAndResetUnitFlag20000() {
|
||||||
if (!mFlags.isOn(Flag::_2))
|
if (!mFlags.isOn(Flag::LoadRequested))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mFlags.reset(Flag::_7);
|
mFlags.reset(Flag::LoadUnloadFlags);
|
||||||
mFlags.set(Flag::_4);
|
mFlags.set(Flag::UnloadRequested);
|
||||||
|
|
||||||
if (mTaskHandle.hasTask()) {
|
if (mTaskHandle.hasTask()) {
|
||||||
mTaskHandle.removeTaskFromQueue();
|
mTaskHandle.removeTaskFromQueue();
|
||||||
if (!mUnit) {
|
if (!mUnit) {
|
||||||
stubbedLogFunction();
|
stubbedLogFunction();
|
||||||
mStatus = Status::_14;
|
mStatus = Status::Cancelled;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -401,7 +402,7 @@ void Handle::unloadAndResetUnitFlag20000() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Handle::resetUnitFlag20000IfSuccess() {
|
void Handle::resetUnitFlag20000IfSuccess() {
|
||||||
if (mFlags.isOff(Flag::_2))
|
if (mFlags.isOff(Flag::LoadRequested))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ResourceUnit* unit = mUnit;
|
ResourceUnit* unit = mUnit;
|
||||||
|
@ -420,14 +421,14 @@ bool Handle::isBusy() const {
|
||||||
if (mTaskHandle.isTaskAttached())
|
if (mTaskHandle.isTaskAttached())
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (mFlags.isOn(Flag::_2) && mUnit)
|
if (mFlags.isOn(Flag::LoadRequested) && mUnit)
|
||||||
return mUnit->isTask1ActiveOrStatus7();
|
return mUnit->isTask1ActiveOrStatus7();
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Handle::isReadyOrNeedsParse() const {
|
bool Handle::isReadyOrNeedsParse() const {
|
||||||
if ((mFlags.getDirect() & 0xA) != u32(Flag::_2) || isBusy())
|
if ((mFlags.getDirect() & 0xA) != u32(Flag::LoadRequested) || isBusy())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (isReady())
|
if (isReady())
|
||||||
|
@ -448,13 +449,14 @@ bool Handle::checkLoadStatus() const {
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
bool ok = false;
|
bool ok = false;
|
||||||
if (mFlags.isOn(Flag::_2) && mUnit)
|
if (mFlags.isOn(Flag::LoadRequested) && mUnit)
|
||||||
ok = mUnit->isStatus9_12_15();
|
ok = mUnit->isStatus9_12_15();
|
||||||
|
|
||||||
ok |= mStatus == Status::_1 || mStatus == Status::_2 || mStatus == Status::_3 ||
|
ok |= mStatus == Status::_1 || mStatus == Status::SizeZero || mStatus == Status::_3 ||
|
||||||
mStatus == Status::_8 || mStatus == Status::_9 || mStatus == Status::_10 ||
|
mStatus == Status::_8 || mStatus == Status::ParseFailed ||
|
||||||
mStatus == Status::_11 || mStatus == Status::_12 || mStatus == Status::_13 ||
|
mStatus == Status::BadAllocSize || mStatus == Status::Edited ||
|
||||||
mStatus == Status::_14;
|
mStatus == Status::BadHeapSize || mStatus == Status::FileDeviceError ||
|
||||||
|
mStatus == Status::Cancelled;
|
||||||
|
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
@ -476,7 +478,7 @@ void Handle::waitForResourceAndParse_(Context* context) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mStatus = Status::_9;
|
mStatus = Status::ParseFailed;
|
||||||
updateResourceMgrFlag_();
|
updateResourceMgrFlag_();
|
||||||
requestUnload();
|
requestUnload();
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,21 +21,29 @@ class Handle {
|
||||||
SEAD_RTTI_BASE(Handle)
|
SEAD_RTTI_BASE(Handle)
|
||||||
public:
|
public:
|
||||||
enum class Status {
|
enum class Status {
|
||||||
_0 = 0,
|
/// "No File" (2)
|
||||||
|
NoFile = 0,
|
||||||
_1 = 1,
|
_1 = 1,
|
||||||
_2 = 2,
|
/// "Size Zero" (8)
|
||||||
|
SizeZero = 2,
|
||||||
_3 = 3,
|
_3 = 3,
|
||||||
_4 = 4,
|
_4 = 4,
|
||||||
_5 = 5,
|
_5 = 5,
|
||||||
_6 = 6,
|
_6 = 6,
|
||||||
_7 = 7,
|
_7 = 7,
|
||||||
_8 = 8,
|
_8 = 8,
|
||||||
_9 = 9,
|
/// "Compose NG" (9)
|
||||||
_10 = 10,
|
ParseFailed = 9,
|
||||||
_11 = 11,
|
/// "AllocSizeNG" (10)
|
||||||
_12 = 12,
|
BadAllocSize = 10,
|
||||||
_13 = 13,
|
/// "Edited" (11)?
|
||||||
_14 = 14,
|
Edited = 11,
|
||||||
|
/// "HeapSizeNG" (12)
|
||||||
|
BadHeapSize = 12,
|
||||||
|
/// "FileDeviceNG" (13)
|
||||||
|
FileDeviceError = 13,
|
||||||
|
/// "Canceled" (16)
|
||||||
|
Cancelled = 14,
|
||||||
};
|
};
|
||||||
|
|
||||||
Handle();
|
Handle();
|
||||||
|
@ -49,7 +57,7 @@ public:
|
||||||
|
|
||||||
sead::DirectResource* load(const sead::SafeString& path, const ILoadRequest* request,
|
sead::DirectResource* load(const sead::SafeString& path, const ILoadRequest* request,
|
||||||
Status* out_status = nullptr);
|
Status* out_status = nullptr);
|
||||||
bool isFlag2Set() const;
|
bool requestedLoad() const;
|
||||||
bool requestLoad(const sead::SafeString& path, const ILoadRequest* request,
|
bool requestLoad(const sead::SafeString& path, const ILoadRequest* request,
|
||||||
Status* out_status = nullptr);
|
Status* out_status = nullptr);
|
||||||
|
|
||||||
|
@ -57,7 +65,7 @@ public:
|
||||||
bool waitForReady(const sead::TickSpan& span);
|
bool waitForReady(const sead::TickSpan& span);
|
||||||
|
|
||||||
bool parseResource(Context* context);
|
bool parseResource(Context* context);
|
||||||
bool isFlag8Set() const;
|
bool hasParsedResource() const;
|
||||||
|
|
||||||
void requestUnload();
|
void requestUnload();
|
||||||
void unload();
|
void unload();
|
||||||
|
@ -84,12 +92,12 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
enum class Flag : u8 {
|
enum class Flag : u8 {
|
||||||
_1 = 0x1,
|
Dummy = 0x1,
|
||||||
_2 = 0x2,
|
LoadRequested = 0x2,
|
||||||
_4 = 0x4,
|
UnloadRequested = 0x4,
|
||||||
_7 = 0x7,
|
LoadUnloadFlags = Dummy | LoadRequested | UnloadRequested,
|
||||||
_8 = 0x8,
|
Parsed = 0x8,
|
||||||
_F = 0xF,
|
AllStatusFlags = LoadUnloadFlags | Parsed,
|
||||||
};
|
};
|
||||||
|
|
||||||
void updateResourceMgrFlag_();
|
void updateResourceMgrFlag_();
|
||||||
|
@ -98,8 +106,8 @@ private:
|
||||||
|
|
||||||
inline bool checkPathChange_(const sead::SafeString& path);
|
inline bool checkPathChange_(const sead::SafeString& path);
|
||||||
|
|
||||||
sead::TypedBitFlag<Flag> mFlags = Flag::_1;
|
sead::TypedBitFlag<Flag> mFlags = Flag::Dummy;
|
||||||
Status mStatus = Status::_0;
|
Status mStatus = Status::NoFile;
|
||||||
ResourceUnit* mUnit = nullptr;
|
ResourceUnit* mUnit = nullptr;
|
||||||
util::ManagedTaskHandle mTaskHandle;
|
util::ManagedTaskHandle mTaskHandle;
|
||||||
sead::ListNode mListNode;
|
sead::ListNode mListNode;
|
||||||
|
|
|
@ -74,7 +74,7 @@ void TempResourceLoader::requestLoad(LoadArg& arg) {
|
||||||
}
|
}
|
||||||
|
|
||||||
sead::DirectResource* TempResourceLoader::getResourceForLoadRequest(Context* context) {
|
sead::DirectResource* TempResourceLoader::getResourceForLoadRequest(Context* context) {
|
||||||
if (!mLoadArg.use_handle || !mHandle.isFlag2Set() || mHandle.isFlag8Set() ||
|
if (!mLoadArg.use_handle || !mHandle.requestedLoad() || mHandle.hasParsedResource() ||
|
||||||
!mHandle.isReadyOrNeedsParse()) {
|
!mHandle.isReadyOrNeedsParse()) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
|
@ -177,7 +177,7 @@ private:
|
||||||
FileSizeIsZero = 0x200,
|
FileSizeIsZero = 0x200,
|
||||||
_400 = 0x400,
|
_400 = 0x400,
|
||||||
FileSizeExceedsAllocSize = 0x800,
|
FileSizeExceedsAllocSize = 0x800,
|
||||||
_1000 = 0x1000,
|
Edited = 0x1000,
|
||||||
FileOrResInstanceTooLargeForHeap = 0x2000,
|
FileOrResInstanceTooLargeForHeap = 0x2000,
|
||||||
LoadFailed = 0x4000,
|
LoadFailed = 0x4000,
|
||||||
NeedToIncrementRefCount = 0x8000,
|
NeedToIncrementRefCount = 0x8000,
|
||||||
|
|
Loading…
Reference in New Issue