summaryrefslogtreecommitdiff
path: root/src/JSystem/JParticle/JPAResourceManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/JSystem/JParticle/JPAResourceManager.cpp')
-rw-r--r--src/JSystem/JParticle/JPAResourceManager.cpp84
1 files changed, 84 insertions, 0 deletions
diff --git a/src/JSystem/JParticle/JPAResourceManager.cpp b/src/JSystem/JParticle/JPAResourceManager.cpp
new file mode 100644
index 00000000..e06be753
--- /dev/null
+++ b/src/JSystem/JParticle/JPAResourceManager.cpp
@@ -0,0 +1,84 @@
+//
+// Generated By: dol2asm
+// Translation Unit: JPAResourceManager
+//
+
+#include "JSystem/JParticle/JPAResourceManager.h"
+#include "JSystem/JParticle/JPADynamicsBlock.h"
+#include "JSystem/JParticle/JPAResource.h"
+#include "string.h"
+
+struct JPAResourceLoader {
+ /* 8027D8A0 */ JPAResourceLoader(u8 const*, JPAResourceManager*);
+};
+
+/* 80273E10-80273E68 26E750 0058+00 0/0 2/2 0/0 .text __ct__18JPAResourceManagerFPCvP7JKRHeap */
+JPAResourceManager::JPAResourceManager(void const* pData, JKRHeap* pHeap) {
+ mpResArr = NULL;
+ mpTexArr = NULL;
+ mResMax = 0;
+ mResNum = 0;
+ mTexMax = 0;
+ mTexNum = 0;
+ mpHeap = pHeap;
+ JPAResourceLoader loader((u8 const*)pData, this);
+}
+
+/* 80273E68-80273EA8 26E7A8 0040+00 1/1 1/1 0/0 .text getResource__18JPAResourceManagerCFUs */
+JPAResource* JPAResourceManager::getResource(u16 usrIdx) const {
+ for (u16 i = 0; i < mResNum; i++)
+ if (mpResArr[i]->getUsrIdx() == usrIdx)
+ return mpResArr[i];
+ return NULL;
+}
+
+/* 80273EA8-80273EEC 26E7E8 0044+00 0/0 2/2 0/0 .text
+ * checkUserIndexDuplication__18JPAResourceManagerCFUs */
+bool JPAResourceManager::checkUserIndexDuplication(u16 usrIdx) const {
+ for (s32 i = 0; i < mResNum; i++)
+ if (mpResArr[i]->getUsrIdx() == usrIdx)
+ return true;
+ return false;
+}
+
+/* 80273EEC-80273F8C 26E82C 00A0+00 0/0 2/2 0/0 .text
+ * swapTexture__18JPAResourceManagerFPC7ResTIMGPCc */
+const ResTIMG* JPAResourceManager::swapTexture(ResTIMG const* img, char const* swapName) {
+ const ResTIMG* ret = NULL;
+
+ for (s32 i = 0; i < mTexNum; i++) {
+ if (strcmp(swapName, mpTexArr[i]->getName()) == 0) {
+ JUTTexture* tex = mpTexArr[i]->getJUTTexture();
+ ret = tex->getTexInfo();
+ tex->storeTIMG(img, (u8)0);
+ break;
+ }
+ }
+
+ return ret;
+}
+
+/* 80273F8C-80273FAC 26E8CC 0020+00 0/0 1/1 0/0 .text
+ * registRes__18JPAResourceManagerFP11JPAResource */
+void JPAResourceManager::registRes(JPAResource* res) {
+ mpResArr[mResNum] = res;
+ mResNum++;
+}
+
+/* 80273FAC-80273FCC 26E8EC 0020+00 0/0 1/1 0/0 .text
+ * registTex__18JPAResourceManagerFP10JPATexture */
+void JPAResourceManager::registTex(JPATexture* tex) {
+ mpTexArr[mTexNum] = tex;
+ mTexNum++;
+}
+
+/* 80273FCC-80274010 26E90C 0044+00 0/0 6/6 0/0 .text getResUserWork__18JPAResourceManagerCFUs */
+u32 JPAResourceManager::getResUserWork(u16 usrIdx) const {
+ u32 ret = 0;
+
+ JPAResource* res = getResource(usrIdx);
+ if (res != NULL)
+ ret = res->getDyn()->getResUserWork();
+
+ return ret;
+} \ No newline at end of file