mirror of
https://github.com/zeldaret/ss
synced 2026-07-09 06:13:17 -04:00
Small status/result cleanups for arc managers
This commit is contained in:
@@ -6,6 +6,13 @@
|
||||
#include "nw4r/g3d/res/g3d_resfile.h"
|
||||
#include "sized_string.h"
|
||||
|
||||
enum dArcResult_e {
|
||||
D_ARC_RESULT_WAIT = 1,
|
||||
D_ARC_RESULT_OK = 0,
|
||||
D_ARC_RESULT_ERROR_INTERNAL = -1,
|
||||
D_ARC_RESULT_ERROR_NOT_FOUND = -2,
|
||||
};
|
||||
|
||||
class ArcCallbackHandlerBase {
|
||||
public:
|
||||
ArcCallbackHandlerBase() : mPrefix(' ') {}
|
||||
@@ -26,8 +33,6 @@ public:
|
||||
|
||||
void BindSystemModelsAndLighting(nw4r::g3d::ResFile);
|
||||
|
||||
// TODO: loading status could be an enum (-2/-1/0/+1)
|
||||
|
||||
// Ghidra: ArcManagerEntry
|
||||
// size: 0x40
|
||||
class dRawArcEntry_c {
|
||||
@@ -41,10 +46,10 @@ public:
|
||||
static BOOL checkArcExistsOnDisk(const char *fileName, const char *dirName);
|
||||
static BOOL checkArcExistsOnDiskInner(SizedString<128> &path, const char *fileName, const char *dirName);
|
||||
|
||||
int mount(const char *name, void *data, ArcCallbackHandler *callbackArg, u8 mountDirection, EGG::Heap *heap);
|
||||
int onMount(void *callbackArg);
|
||||
dArcResult_e mount(const char *name, void *data, ArcCallbackHandler *callbackArg, u8 mountDirection, EGG::Heap *heap);
|
||||
dArcResult_e onMount(void *callbackArg);
|
||||
|
||||
int ensureLoadedMaybe(void *callbackArg);
|
||||
dArcResult_e ensureLoadedMaybe(void *callbackArg);
|
||||
|
||||
inline bool isReferenced() {
|
||||
return mRefCount != 0;
|
||||
@@ -105,14 +110,14 @@ public:
|
||||
bool init(u16 count, ArcCallbackHandler *callbackArg, EGG::Heap *heap);
|
||||
BOOL getArcOrLoadFromDisk(const char *name, const char *dirName, u8 mountDirection, EGG::Heap *heap);
|
||||
BOOL addEntryFromSuperArc(const char *name, void *data, u8 mountDirection, EGG::Heap *heap);
|
||||
int ensureLoadedMaybe2(const char *name);
|
||||
int ensureLoadedMaybe(const char *name);
|
||||
dArcResult_e ensureLoadedMaybe2(const char *name);
|
||||
dArcResult_e ensureLoadedMaybe(const char *name);
|
||||
bool hasEntry(const char *name);
|
||||
BOOL decreaseRefCount(const char *name);
|
||||
void *getDataFromOarc(const char *name, const char *path);
|
||||
void *getSubEntryData(const char *name, const char *path);
|
||||
void *getLoadedArcData(const char *name);
|
||||
int ensureAllEntriesLoaded();
|
||||
dArcResult_e ensureAllEntriesLoaded();
|
||||
dRawArcEntry_c *findEntry(const char *name) const;
|
||||
dRawArcEntry_c *findEmptySlot();
|
||||
dRawArcEntry_c *findLoadedEntry(const char *name);
|
||||
@@ -123,4 +128,4 @@ private:
|
||||
/* 0x8 */ ArcCallbackHandler *mCallbackArg;
|
||||
};
|
||||
|
||||
#endif;
|
||||
#endif
|
||||
|
||||
@@ -47,6 +47,7 @@ EGG::Heap *getArchiveHeap();
|
||||
} // namespace mDvd
|
||||
|
||||
class mDvd_command_c {
|
||||
friend class mDvd_param_c;
|
||||
public:
|
||||
mDvd_command_c();
|
||||
virtual ~mDvd_command_c();
|
||||
@@ -60,9 +61,14 @@ public:
|
||||
static void destroy(mDvd_command_c **cmd);
|
||||
void do_delete();
|
||||
|
||||
bool isDone() const {
|
||||
return mStatus != 0;
|
||||
}
|
||||
|
||||
void *operator new(size_t size);
|
||||
void operator delete(void *ptr);
|
||||
|
||||
protected:
|
||||
mDvd_command_c *mNext;
|
||||
u8 mStatus;
|
||||
u8 mMountDirection;
|
||||
|
||||
@@ -30,7 +30,7 @@ public:
|
||||
|
||||
EGG::ExpHeap *getHeap(s32 roomid);
|
||||
|
||||
inline int ensureAllEntriesLoaded() {
|
||||
inline dArcResult_e ensureAllEntriesLoaded() {
|
||||
return mArcTable.ensureAllEntriesLoaded();
|
||||
}
|
||||
|
||||
|
||||
@@ -14,13 +14,13 @@ public:
|
||||
|
||||
void init(EGG::Heap *heap);
|
||||
|
||||
inline int ensureAllEntriesLoaded() {
|
||||
inline dArcResult_e ensureAllEntriesLoaded() {
|
||||
return mArcTable.ensureAllEntriesLoaded();
|
||||
}
|
||||
|
||||
bool loadLayoutArcFromDisk(const char *object, EGG::Heap *heap);
|
||||
int ensureLoaded1(const char *object);
|
||||
int ensureLoaded2(const char *object);
|
||||
dArcResult_e ensureLoaded1(const char *object);
|
||||
dArcResult_e ensureLoaded2(const char *object);
|
||||
bool hasEntry(const char *object);
|
||||
bool decrement(const char *path);
|
||||
void *getData(const char *oarcName, const char *fileName);
|
||||
|
||||
@@ -13,15 +13,15 @@ public:
|
||||
|
||||
void init(EGG::Heap *heap);
|
||||
|
||||
inline int ensureAllEntriesLoaded() {
|
||||
inline dArcResult_e ensureAllEntriesLoaded() {
|
||||
return mArcTable.ensureAllEntriesLoaded();
|
||||
}
|
||||
|
||||
bool checkIfObjectArcExistsOnDisk(const char *object);
|
||||
bool loadObjectArcFromDisk(const char *object, EGG::Heap *heap);
|
||||
bool addEntryFromSuperArc(const char *object, void *data, EGG::Heap *heap);
|
||||
int ensureLoaded1(const char *object);
|
||||
void ensureLoaded2(const char *object);
|
||||
dArcResult_e ensureLoaded1(const char *object);
|
||||
dArcResult_e ensureLoaded2(const char *object);
|
||||
bool decrement(const char *path);
|
||||
void *getData(const char *oarcName, const char *fileName);
|
||||
|
||||
|
||||
+1
-1
@@ -197,7 +197,7 @@ BOOL DynamicModuleControl::do_load_async() {
|
||||
mDvdCallbackRequest = mDvd_callback_c::create(callback, this);
|
||||
}
|
||||
|
||||
if (mDvdCallbackRequest != nullptr && mDvdCallbackRequest->mStatus != 0) {
|
||||
if (mDvdCallbackRequest != nullptr && mDvdCallbackRequest->isDone()) {
|
||||
mDvdCallbackRequest->do_delete();
|
||||
mDvdCallbackRequest = nullptr;
|
||||
return true;
|
||||
|
||||
@@ -69,10 +69,10 @@ sFPhaseBase::sFPhaseState dScBoot_c::cb1() {
|
||||
}
|
||||
|
||||
sFPhaseBase::sFPhaseState dScBoot_c::cb2() {
|
||||
if (OarcManager::GetInstance()->ensureAllEntriesLoaded()) {
|
||||
if (OarcManager::GetInstance()->ensureAllEntriesLoaded() != D_ARC_RESULT_OK) {
|
||||
return sFPhaseBase::PHASE_RETRY;
|
||||
}
|
||||
if (LayoutArcManager::GetInstance()->ensureAllEntriesLoaded()) {
|
||||
if (LayoutArcManager::GetInstance()->ensureAllEntriesLoaded() != D_ARC_RESULT_OK) {
|
||||
return sFPhaseBase::PHASE_RETRY;
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ sFPhaseBase::sFPhaseState dScBoot_c::cb5() {
|
||||
return sFPhaseBase::PHASE_RETRY;
|
||||
}
|
||||
}
|
||||
if (mpDvdCallback->mStatus == 0) {
|
||||
if (!mpDvdCallback->isDone()) {
|
||||
return sFPhaseBase::PHASE_RETRY;
|
||||
} else {
|
||||
mpDvdCallback->do_delete();
|
||||
@@ -271,11 +271,11 @@ sFPhaseBase::sFPhaseState dScBoot_c::cb7() {
|
||||
return sFPhaseBase::PHASE_RETRY;
|
||||
}
|
||||
|
||||
if (OarcManager::GetInstance()->ensureAllEntriesLoaded()) {
|
||||
if (OarcManager::GetInstance()->ensureAllEntriesLoaded() != D_ARC_RESULT_OK) {
|
||||
return sFPhaseBase::PHASE_RETRY;
|
||||
}
|
||||
|
||||
if (LayoutArcManager::GetInstance()->ensureAllEntriesLoaded()) {
|
||||
if (LayoutArcManager::GetInstance()->ensureAllEntriesLoaded() != D_ARC_RESULT_OK) {
|
||||
return sFPhaseBase::PHASE_RETRY;
|
||||
}
|
||||
|
||||
@@ -341,7 +341,7 @@ dScBoot_c::strap_c::strap_c() {
|
||||
|
||||
bool dScBoot_c::strap_c::create() {
|
||||
if (!field_0x4EC) {
|
||||
if (LayoutArcManager::GetInstance()->ensureLoaded1(mArcName)) {
|
||||
if (LayoutArcManager::GetInstance()->ensureLoaded1(mArcName) != D_ARC_RESULT_OK) {
|
||||
return false;
|
||||
}
|
||||
void *data = LayoutArcManager::GetInstance()->getLoadedData(mArcName);
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "d/col/cc/d_cc_s.h"
|
||||
#include "d/d_light_env.h"
|
||||
#include "d/d_pouch.h"
|
||||
#include "d/d_rawarchive.h"
|
||||
#include "d/d_room.h"
|
||||
#include "d/d_stage.h"
|
||||
#include "d/flag/sceneflag_manager.h"
|
||||
@@ -1165,7 +1166,7 @@ int dAcTbox_c::doDelete() {
|
||||
}
|
||||
if (sCurrentObtainingItemOarcName != nullptr) {
|
||||
OarcManager *mng = OarcManager::GetInstance();
|
||||
if (!mng->ensureLoaded1(sCurrentObtainingItemOarcName)) {
|
||||
if (mng->ensureLoaded1(sCurrentObtainingItemOarcName) != D_ARC_RESULT_OK) {
|
||||
mng->decrement(sCurrentObtainingItemOarcName);
|
||||
sCurrentObtainingItemOarcName = nullptr;
|
||||
}
|
||||
@@ -1884,7 +1885,7 @@ void dAcTbox_c::initializeState_DeleteArchive() {
|
||||
void dAcTbox_c::executeState_DeleteArchive() {
|
||||
if (sCurrentObtainingItemOarcName != nullptr) {
|
||||
OarcManager *mng = OarcManager::GetInstance();
|
||||
if (!mng->ensureLoaded1(sCurrentObtainingItemOarcName)) {
|
||||
if (mng->ensureLoaded1(sCurrentObtainingItemOarcName) != D_ARC_RESULT_OK) {
|
||||
mng->decrement(sCurrentObtainingItemOarcName);
|
||||
sCurrentObtainingItemOarcName = nullptr;
|
||||
}
|
||||
@@ -1922,7 +1923,7 @@ void dAcTbox_c::initializeState_LoadArchive() {
|
||||
field_0x120C = 0;
|
||||
}
|
||||
void dAcTbox_c::executeState_LoadArchive() {
|
||||
if (!OarcManager::GetInstance()->ensureLoaded1(sCurrentObtainingItemOarcName)) {
|
||||
if (OarcManager::GetInstance()->ensureLoaded1(sCurrentObtainingItemOarcName) != D_ARC_RESULT_OK) {
|
||||
mStateMgr.changeState(StateID_Open);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -38,7 +38,7 @@ void *loader_c::request(const char *path, u8 mountDirection, EGG::Heap *heap) {
|
||||
}
|
||||
mpCommand = mDvd_toMainRam_normal_c::create(buf, mountDirection, heap);
|
||||
}
|
||||
if (mpCommand != nullptr && mpCommand->mStatus != 0) {
|
||||
if (mpCommand != nullptr && mpCommand->isDone()) {
|
||||
mpBuffer = mpCommand->mDataPtr;
|
||||
mSize = mpCommand->mAmountRead;
|
||||
mpCommand->mDataPtr = nullptr;
|
||||
|
||||
+1
-1
@@ -336,7 +336,7 @@ bool destroy() {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (DVD->mStatus != 0) {
|
||||
if (DVD->isDone()) {
|
||||
DVD->do_delete();
|
||||
DVD = nullptr;
|
||||
return true;
|
||||
|
||||
+26
-30
@@ -36,10 +36,10 @@ dRawArcEntry_c::dRawArcEntry_c() {
|
||||
|
||||
dRawArcEntry_c::~dRawArcEntry_c() {
|
||||
// Wait for request to complete before destroying
|
||||
if (mpDvdReq->mStatus == 0) {
|
||||
if (!mpDvdReq->isDone()) {
|
||||
do {
|
||||
VIWaitForRetrace();
|
||||
} while (mpDvdReq->mStatus == 0);
|
||||
} while (!mpDvdReq->isDone());
|
||||
}
|
||||
destroy(nullptr);
|
||||
}
|
||||
@@ -72,7 +72,7 @@ void dRawArcEntry_c::searchCallback2(void *a, void *b, const ARCDirEntry *c, con
|
||||
|
||||
bool dRawArcEntry_c::destroy(void *arg) {
|
||||
if (mpDvdReq != nullptr) {
|
||||
if (mpDvdReq->mStatus == 0) {
|
||||
if (!mpDvdReq->isDone()) {
|
||||
// Can't destroy if the request is still ongoing
|
||||
return false;
|
||||
}
|
||||
@@ -144,31 +144,27 @@ BOOL dRawArcEntry_c::checkArcExistsOnDiskInner(SizedString<128> &path, const cha
|
||||
return true;
|
||||
}
|
||||
|
||||
int dRawArcEntry_c::mount(
|
||||
dArcResult_e dRawArcEntry_c::mount(
|
||||
const char *name, void *data, ArcCallbackHandler *callbackArg, u8 mountDirection, EGG::Heap *heap
|
||||
) {
|
||||
mArcName = name;
|
||||
mpArc = EGG::Archive::mount(data, heap, (mountDirection == 0 || mountDirection == 1) ? 4 : -4);
|
||||
if (mpArc == nullptr) {
|
||||
return -1;
|
||||
return D_ARC_RESULT_ERROR_INTERNAL;
|
||||
} else {
|
||||
int result = onMount(callbackArg);
|
||||
int ret = 0;
|
||||
if (result == -1) {
|
||||
ret = result;
|
||||
}
|
||||
return ret;
|
||||
dArcResult_e result = onMount(callbackArg);
|
||||
return result == D_ARC_RESULT_ERROR_INTERNAL ? result : D_ARC_RESULT_OK;
|
||||
}
|
||||
}
|
||||
|
||||
int dRawArcEntry_c::ensureLoadedMaybe(void *callbackArg) {
|
||||
dArcResult_e dRawArcEntry_c::ensureLoadedMaybe(void *callbackArg) {
|
||||
if (mpArc == nullptr) {
|
||||
if (mpDvdReq == nullptr) {
|
||||
return -1;
|
||||
return D_ARC_RESULT_ERROR_INTERNAL;
|
||||
}
|
||||
|
||||
if (mpDvdReq->mStatus == 0) {
|
||||
return 1;
|
||||
if (!mpDvdReq->isDone()) {
|
||||
return D_ARC_RESULT_WAIT;
|
||||
}
|
||||
|
||||
mpArc = mpDvdReq->mDataPtr;
|
||||
@@ -185,31 +181,31 @@ int dRawArcEntry_c::ensureLoadedMaybe(void *callbackArg) {
|
||||
mpDvdReq->do_delete();
|
||||
mpDvdReq = nullptr;
|
||||
if (mpArc == nullptr) {
|
||||
return -1;
|
||||
return D_ARC_RESULT_ERROR_INTERNAL;
|
||||
}
|
||||
mpFrmHeap = mHeap::makeHeapOnCurrentGameHeap(-1, name(), 0x20, mHeap::OPT_NONE);
|
||||
if (mpFrmHeap == nullptr) {
|
||||
return -1;
|
||||
return D_ARC_RESULT_ERROR_INTERNAL;
|
||||
}
|
||||
int result = onMount(callbackArg);
|
||||
dArcResult_e result = onMount(callbackArg);
|
||||
mHeap::restoreCurrentHeap();
|
||||
mHeap::adjustFrmHeap(mpFrmHeap);
|
||||
mChecksum = computeChecksum(mpData, mAmountRead);
|
||||
if (result == -1) {
|
||||
if (result == D_ARC_RESULT_ERROR_INTERNAL) {
|
||||
return result;
|
||||
}
|
||||
DCStoreRange(mpFrmHeap, mpFrmHeap->mHeapHandle->end - (u8 *)mpFrmHeap);
|
||||
}
|
||||
|
||||
return 0;
|
||||
return D_ARC_RESULT_OK;
|
||||
}
|
||||
|
||||
int dRawArcEntry_c::onMount(void *callbackArg) {
|
||||
dArcResult_e dRawArcEntry_c::onMount(void *callbackArg) {
|
||||
mpArc->countFile();
|
||||
if (callbackArg != nullptr) {
|
||||
mpArc->searchInside(searchCallback1, callbackArg);
|
||||
}
|
||||
return 0;
|
||||
return D_ARC_RESULT_OK;
|
||||
}
|
||||
|
||||
dRawArcTable_c::dRawArcTable_c() {
|
||||
@@ -271,18 +267,18 @@ BOOL dRawArcTable_c::addEntryFromSuperArc(const char *name, void *data, u8 mount
|
||||
return true;
|
||||
}
|
||||
|
||||
int dRawArcTable_c::ensureLoadedMaybe2(const char *name) {
|
||||
dArcResult_e dRawArcTable_c::ensureLoadedMaybe2(const char *name) {
|
||||
dRawArcEntry_c *entry = findEntry(name);
|
||||
if (entry == nullptr) {
|
||||
return -2;
|
||||
return D_ARC_RESULT_ERROR_NOT_FOUND;
|
||||
}
|
||||
return entry->ensureLoadedMaybe(mCallbackArg);
|
||||
}
|
||||
|
||||
int dRawArcTable_c::ensureLoadedMaybe(const char *name) {
|
||||
dArcResult_e dRawArcTable_c::ensureLoadedMaybe(const char *name) {
|
||||
dRawArcEntry_c *entry = findEntry(name);
|
||||
if (entry == nullptr) {
|
||||
return -2;
|
||||
return D_ARC_RESULT_ERROR_NOT_FOUND;
|
||||
}
|
||||
return entry->ensureLoadedMaybe(mCallbackArg);
|
||||
}
|
||||
@@ -335,20 +331,20 @@ void *dRawArcTable_c::getLoadedArcData(const char *name) {
|
||||
return entry == nullptr ? nullptr : entry->getData();
|
||||
}
|
||||
|
||||
int dRawArcTable_c::ensureAllEntriesLoaded() {
|
||||
dArcResult_e dRawArcTable_c::ensureAllEntriesLoaded() {
|
||||
dRawArcEntry_c *entry = mpEntries;
|
||||
int result = 0;
|
||||
dArcResult_e result = D_ARC_RESULT_OK;
|
||||
for (int i = 0; i < mCount; i++) {
|
||||
if (entry->isLoading()) {
|
||||
result = entry->ensureLoadedMaybe(mCallbackArg);
|
||||
if (result != 0) {
|
||||
if (result != D_ARC_RESULT_OK) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
entry++;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return D_ARC_RESULT_OK;
|
||||
}
|
||||
|
||||
dRawArcEntry_c *dRawArcTable_c::findEntry(const char *name) const {
|
||||
|
||||
+2
-2
@@ -117,11 +117,11 @@ sFPhaseBase::sFPhaseState dScGame_c::cb2() {
|
||||
return sFPhaseBase::PHASE_RETRY;
|
||||
}
|
||||
|
||||
if (OarcManager::GetInstance()->ensureAllEntriesLoaded()) {
|
||||
if (OarcManager::GetInstance()->ensureAllEntriesLoaded() != D_ARC_RESULT_OK) {
|
||||
return sFPhaseBase::PHASE_RETRY;
|
||||
}
|
||||
|
||||
if (LayoutArcManager::GetInstance()->ensureAllEntriesLoaded()) {
|
||||
if (LayoutArcManager::GetInstance()->ensureAllEntriesLoaded() != D_ARC_RESULT_OK) {
|
||||
return sFPhaseBase::PHASE_RETRY;
|
||||
}
|
||||
|
||||
|
||||
@@ -112,32 +112,31 @@ int dScTitle_c::execute() {
|
||||
}
|
||||
|
||||
int dScTitle_c::doDelete() {
|
||||
// TODO return codes
|
||||
int result;
|
||||
result = LayoutArcManager::GetInstance()->ensureLoaded2(sFileSelect);
|
||||
if (result != -2) {
|
||||
if (result != 0) {
|
||||
if (result != D_ARC_RESULT_ERROR_NOT_FOUND) {
|
||||
if (result != D_ARC_RESULT_OK) {
|
||||
return NOT_READY;
|
||||
}
|
||||
LayoutArcManager::GetInstance()->decrement(sFileSelect);
|
||||
}
|
||||
|
||||
result = LayoutArcManager::GetInstance()->ensureLoaded2(sSkb);
|
||||
if (result != -2) {
|
||||
if (result != 0) {
|
||||
if (result != D_ARC_RESULT_ERROR_NOT_FOUND) {
|
||||
if (result != D_ARC_RESULT_OK) {
|
||||
return NOT_READY;
|
||||
}
|
||||
LayoutArcManager::GetInstance()->decrement(sSkb);
|
||||
}
|
||||
|
||||
// TODO here's the other half of the ::destroy fakematch...
|
||||
if (mpSkbArc->mStatus != 0) {
|
||||
if (mpSkbArc->isDone()) {
|
||||
mDvd_command_c::destroy((mDvd_command_c **)&mpSkbArc);
|
||||
} else {
|
||||
return NOT_READY;
|
||||
}
|
||||
|
||||
if (mpSkbFont->mStatus != 0) {
|
||||
if (mpSkbFont->isDone()) {
|
||||
mDvd_command_c::destroy((mDvd_command_c **)&mpSkbFont);
|
||||
} else {
|
||||
return NOT_READY;
|
||||
|
||||
@@ -45,7 +45,7 @@ void dStageMgr_c::initializeState_ReadStageRes() {
|
||||
}
|
||||
|
||||
void dStageMgr_c::executeState_ReadStageRes() {
|
||||
if (CurrentStageArcManager::GetInstance()->ensureAllEntriesLoaded() == 0) {
|
||||
if (CurrentStageArcManager::GetInstance()->ensureAllEntriesLoaded() == D_ARC_RESULT_OK) {
|
||||
mStateMgr.changeState(StateID_ReadRoomRes);
|
||||
}
|
||||
}
|
||||
@@ -62,8 +62,8 @@ void dStageMgr_c::finalizeState_ReadStageRes() {
|
||||
void dStageMgr_c::initializeState_ReadRoomRes() {}
|
||||
|
||||
void dStageMgr_c::executeState_ReadRoomRes() {
|
||||
if (CurrentStageArcManager::GetInstance()->ensureAllEntriesLoaded() == 0 &&
|
||||
LayoutArcManager::GetInstance()->ensureAllEntriesLoaded() == 0) {
|
||||
if (CurrentStageArcManager::GetInstance()->ensureAllEntriesLoaded() == D_ARC_RESULT_OK &&
|
||||
LayoutArcManager::GetInstance()->ensureAllEntriesLoaded() == D_ARC_RESULT_OK) {
|
||||
mStateMgr.changeState(StateID_ReadObjectRes);
|
||||
}
|
||||
}
|
||||
@@ -100,7 +100,7 @@ void dStageMgr_c::initializeState_ReadStageLayerRes() {
|
||||
}
|
||||
|
||||
void dStageMgr_c::executeState_ReadStageLayerRes() {
|
||||
if (CurrentStageArcManager::GetInstance()->ensureAllEntriesLoaded() == 0) {
|
||||
if (CurrentStageArcManager::GetInstance()->ensureAllEntriesLoaded() == D_ARC_RESULT_OK) {
|
||||
mStateMgr.changeState(StateID_ReadLayerObjectRes);
|
||||
}
|
||||
}
|
||||
@@ -142,7 +142,7 @@ void dStageMgr_c::initializeState_ReadLayerObjectRes() {
|
||||
}
|
||||
|
||||
void dStageMgr_c::executeState_ReadLayerObjectRes() {
|
||||
if (mLayerObjCtrl.isLoaded() && LayoutArcManager::GetInstance()->ensureAllEntriesLoaded() == 0) {
|
||||
if (mLayerObjCtrl.isLoaded() && LayoutArcManager::GetInstance()->ensureAllEntriesLoaded() == D_ARC_RESULT_OK) {
|
||||
mStateMgr.changeState(StateID_SoundLoadSceneData);
|
||||
}
|
||||
}
|
||||
@@ -172,7 +172,7 @@ void dStageMgr_c::initializeState_SoundLoadSceneData() {
|
||||
}
|
||||
|
||||
void dStageMgr_c::executeState_SoundLoadSceneData() {
|
||||
if (mpDvdCallback != nullptr && mpDvdCallback->mStatus != 0) {
|
||||
if (mpDvdCallback != nullptr && mpDvdCallback->isDone()) {
|
||||
mStateMgr.changeState(StateID_CreateObject);
|
||||
}
|
||||
}
|
||||
@@ -208,7 +208,7 @@ void dStageMgr_c::executeState_ReadObjectSound() {
|
||||
return;
|
||||
}
|
||||
|
||||
if (mpDvdCallback2->mStatus == 0) {
|
||||
if (!mpDvdCallback2->isDone()) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -91,7 +91,7 @@ void dThpPlayer_c::setupFile(char* filename, s32 loadAllAtOnce) {
|
||||
static const u8 SPECIAL_TYPES[] = {0x7A, 0x78, 0x78};
|
||||
|
||||
void dThpPlayer_c::reallyExecute() {
|
||||
if (mDvdCallback == nullptr || mDvdCallback->mStatus == 0 || !mFilenameSet || mSetupDone) {
|
||||
if (mDvdCallback == nullptr || !mDvdCallback->isDone() || !mFilenameSet || mSetupDone) {
|
||||
return;
|
||||
}
|
||||
if (mFilename == "THP/Demo01_01.thp") {
|
||||
@@ -139,7 +139,7 @@ s32 dThpPlayer_c::play() {
|
||||
|
||||
s32 dThpPlayer_c::destroy() {
|
||||
if (mDvdCallback != nullptr) {
|
||||
if (mDvdCallback->mStatus == 0) {
|
||||
if (!mDvdCallback->isDone()) {
|
||||
return NOT_READY;
|
||||
}
|
||||
THPPlayerStop();
|
||||
|
||||
@@ -24,11 +24,11 @@ bool LayoutArcManager::loadLayoutArcFromDisk(const char *object, EGG::Heap *heap
|
||||
return mArcTable.getArcOrLoadFromDisk(object, "Layout", 0, heap);
|
||||
}
|
||||
|
||||
int LayoutArcManager::ensureLoaded1(const char *object) {
|
||||
dArcResult_e LayoutArcManager::ensureLoaded1(const char *object) {
|
||||
return mArcTable.ensureLoadedMaybe2(object);
|
||||
}
|
||||
|
||||
int LayoutArcManager::ensureLoaded2(const char *object) {
|
||||
dArcResult_e LayoutArcManager::ensureLoaded2(const char *object) {
|
||||
return mArcTable.ensureLoadedMaybe(object);
|
||||
}
|
||||
|
||||
|
||||
@@ -34,12 +34,12 @@ bool OarcManager::addEntryFromSuperArc(const char *object, void *data, EGG::Heap
|
||||
return mArcTable.addEntryFromSuperArc(object, data, 0, heap);
|
||||
}
|
||||
|
||||
int OarcManager::ensureLoaded1(const char *object) {
|
||||
dArcResult_e OarcManager::ensureLoaded1(const char *object) {
|
||||
return mArcTable.ensureLoadedMaybe2(object);
|
||||
}
|
||||
|
||||
void OarcManager::ensureLoaded2(const char *object) {
|
||||
mArcTable.ensureLoadedMaybe(object);
|
||||
dArcResult_e OarcManager::ensureLoaded2(const char *object) {
|
||||
return mArcTable.ensureLoadedMaybe(object);
|
||||
}
|
||||
|
||||
bool OarcManager::decrement(const char *path) {
|
||||
|
||||
Reference in New Issue
Block a user