Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_resorce.h
Go to the documentation of this file.
1#ifndef D_D_RESORCE_H
2#define D_D_RESORCE_H
3
5#include "m_Do/m_Do_ext.h"
6
7class JKRArchive;
8class JKRHeap;
9class JKRSolidHeap;
10
12public:
15
16 int set(char const* i_arcName, char const* i_path, u8 i_mountDirection, JKRHeap* i_heap);
17 int loadResource();
18 void deleteArchiveRes();
19 int setRes(JKRArchive* i_archive, JKRHeap* i_heap);
20 int setRes();
21
22 static void onWarpMaterial(J3DModelData* i_modelData);
23 static void offWarpMaterial(J3DModelData* i_modelData);
24 static void setWarpSRT(J3DModelData* i_modelData, const cXyz& i_pos, f32 i_transX, f32 i_transY);
25 static J3DModelData* loaderBasicBmd(u32 i_tag, void* i_data);
26 static void dump_long(dRes_info_c* i_resInfo, int i_infoNum);
27 static void dump(dRes_info_c* i_resInfo, int i_infoNum);
28
29 void* getRes(s32 i_index) {
30 JUT_ASSERT(25, i_index >= 0 && i_index < getResNum());
31 return *(mRes + i_index);
32 }
33
35
36 int getCount() { return mCount; }
37 char* getArchiveName() { return mArchiveName; }
40 void incCount() { mCount++; }
42 return --mCount;
43 }
44
45 static const int NAME_MAX = 9;
46
47private:
48 /* 0x00 */ char mArchiveName[11];
49 /* 0x0C */ u16 mCount;
51 /* 0x14 */ JKRArchive* mArchive;
52 /* 0x18 */ JKRHeap* heap;
54 /* 0x20 */ void** mRes;
55#if DEBUG
56 /* 0x24 */ void* unk_0x24;
57#endif
58}; // Size: 0x24
59
60STATIC_ASSERT(sizeof(dRes_info_c) == 0x24);
61
63public:
66
67 int setObjectRes(char const* i_arcName, void* i_archiveRes, u32 i_bufferSize, JKRHeap* i_heap);
68 int setStageRes(char const* i_arcName, JKRHeap* i_heap);
69 void dump();
70 void dump(char*);
71 int getObjectResName2Index(char const* i_arcName, char const* i_resName);
72
73 static int setRes(char const* i_arcName, dRes_info_c* i_resInfo, int i_infoNum, char const* i_path, u8 i_mountDirection, JKRHeap* i_heap);
74 static int syncRes(char const* i_arcName, dRes_info_c* i_resInfo, int i_infoNum);
75 static int deleteRes(char const* i_arcName, dRes_info_c* i_resInfo, int i_infoNum);
76 static void* getRes(char const* i_arcName, char const* i_resName, dRes_info_c* i_resInfo, int i_infoNum);
77 static dRes_info_c* getResInfo(char const* i_arcName, dRes_info_c* i_resInfo, int i_infoNum);
78 static dRes_info_c* newResInfo(dRes_info_c* i_resInfo, int i_infoNum);
79 static dRes_info_c* getResInfoLoaded(char const* i_arcName, dRes_info_c* i_resInfo, int i_infoNum);
80 static void* getRes(char const* i_arcName, s32 i_index, dRes_info_c* i_resInfo, int i_infoNum);
81 static void* getIDRes(char const* i_arcName, u16 i_resID, dRes_info_c* i_resInfo, int i_infoNum);
82 static int syncAllRes(dRes_info_c* i_resInfo, int i_infoNum);
83
84 int setObjectRes(const char* i_arcName, u8 i_mountDirection, JKRHeap* i_heap) {
85 return setRes(i_arcName, mObjectInfo, ARRAY_SIZEU(mObjectInfo), "/res/Object/", i_mountDirection,
86 i_heap);
87 }
88
89 void* getObjectRes(const char* i_arcName, const char* resName) {
90 return getRes(i_arcName, resName, mObjectInfo, ARRAY_SIZEU(mObjectInfo));
91 }
92
93 void* getObjectRes(const char* i_arcName, s32 i_index) {
94 return getRes(i_arcName, i_index, mObjectInfo, ARRAY_SIZEU(mObjectInfo));
95 }
96
97 void* getObjectIDRes(const char* i_arcName, u16 i_resID) {
98 return getIDRes(i_arcName, i_resID, mObjectInfo, ARRAY_SIZEU(mObjectInfo));
99 }
100
101 int syncObjectRes(const char* i_arcName) {
102 return syncRes(i_arcName, mObjectInfo, ARRAY_SIZEU(mObjectInfo));
103 }
104
105 int syncStageRes(const char* i_arcName) {
106 return syncRes(i_arcName, mStageInfo, ARRAY_SIZEU(mStageInfo));
107 }
108
109 int syncAllObjectRes() { return syncAllRes(mObjectInfo, ARRAY_SIZEU(mObjectInfo)); }
110
111 int deleteObjectRes(const char* i_arcName) {
112 return deleteRes(i_arcName, mObjectInfo, ARRAY_SIZEU(mObjectInfo));
113 }
114
115 int deleteStageRes(const char* i_arcName) {
116 return deleteRes(i_arcName, mStageInfo, ARRAY_SIZEU(mStageInfo));
117 }
118
119 void* getStageRes(const char* i_arcName, const char* i_resName) {
120 return getRes(i_arcName, i_resName, mStageInfo, ARRAY_SIZEU(mStageInfo));
121 }
122
123 dRes_info_c* getObjectResInfo(const char* i_arcName) {
124 return getResInfo(i_arcName, mObjectInfo, ARRAY_SIZEU(mObjectInfo));
125 }
126
127 dRes_info_c* getStageResInfo(const char* i_arcName) {
128 return getResInfo(i_arcName, mStageInfo, ARRAY_SIZEU(mStageInfo));
129 }
130
131 #if DEBUG
132 void dumpTag() {
133 // TODO
134 }
135 #endif
136
137 /* 0x0000 */ dRes_info_c mObjectInfo[128];
138 /* 0x1200 */ dRes_info_c mStageInfo[64];
139}; // Size: 0x1B00
140
141#endif /* D_D_RESORCE_H */
Definition J3DModelData.h:17
Definition JKRArchive.h:57
virtual u32 countFile(const char *) const
Definition JKRArchivePub.cpp:311
Definition JKRHeap.h:20
Definition JKRSolidHeap.h:10
Definition d_resorce.h:62
int setObjectRes(char const *i_arcName, void *i_archiveRes, u32 i_bufferSize, JKRHeap *i_heap)
Definition d_resorce.cpp:876
void * getObjectRes(const char *i_arcName, s32 i_index)
Definition d_resorce.h:93
dRes_control_c()
Definition d_resorce.h:64
dRes_info_c * getStageResInfo(const char *i_arcName)
Definition d_resorce.h:127
int deleteStageRes(const char *i_arcName)
Definition d_resorce.h:115
static void * getIDRes(char const *i_arcName, u16 i_resID, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:850
~dRes_control_c()
Definition d_resorce.cpp:694
void dump(char *)
dRes_info_c mObjectInfo[128]
Definition d_resorce.h:137
void dump()
Definition d_resorce.cpp:912
static int setRes(char const *i_arcName, dRes_info_c *i_resInfo, int i_infoNum, char const *i_path, u8 i_mountDirection, JKRHeap *i_heap)
Definition d_resorce.cpp:704
int syncStageRes(const char *i_arcName)
Definition d_resorce.h:105
static dRes_info_c * getResInfoLoaded(char const *i_arcName, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:795
int getObjectResName2Index(char const *i_arcName, char const *i_resName)
Definition d_resorce.cpp:922
void * getObjectRes(const char *i_arcName, const char *resName)
Definition d_resorce.h:89
static int deleteRes(char const *i_arcName, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:752
dRes_info_c * getObjectResInfo(const char *i_arcName)
Definition d_resorce.h:123
int setObjectRes(const char *i_arcName, u8 i_mountDirection, JKRHeap *i_heap)
Definition d_resorce.h:84
static int syncRes(char const *i_arcName, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:730
void * getObjectIDRes(const char *i_arcName, u16 i_resID)
Definition d_resorce.h:97
int deleteObjectRes(const char *i_arcName)
Definition d_resorce.h:111
static dRes_info_c * newResInfo(dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:784
int setStageRes(char const *i_arcName, JKRHeap *i_heap)
Definition d_resorce.cpp:905
static dRes_info_c * getResInfo(char const *i_arcName, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:771
int syncAllObjectRes()
Definition d_resorce.h:109
int syncObjectRes(const char *i_arcName)
Definition d_resorce.h:101
static void * getRes(char const *i_arcName, char const *i_resName, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:832
void * getStageRes(const char *i_arcName, const char *i_resName)
Definition d_resorce.h:119
void dumpTag()
Definition d_resorce.h:132
static int syncAllRes(dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:865
dRes_info_c mStageInfo[64]
Definition d_resorce.h:138
Definition d_resorce.h:11
int loadResource()
Definition d_resorce.cpp:302
int setRes()
Definition d_resorce.cpp:530
mDoDvdThd_mountArchive_c * mDMCommand
Definition d_resorce.h:50
JKRSolidHeap * mDataHeap
Definition d_resorce.h:53
static const int NAME_MAX
Definition d_resorce.h:45
dRes_info_c()
Definition d_resorce.cpp:19
void ** mRes
Definition d_resorce.h:54
static J3DModelData * loaderBasicBmd(u32 i_tag, void *i_data)
Definition d_resorce.cpp:220
char * getArchiveName()
Definition d_resorce.h:37
~dRes_info_c()
Definition d_resorce.cpp:28
static void offWarpMaterial(J3DModelData *i_modelData)
Definition d_resorce.cpp:189
void deleteArchiveRes()
Definition d_resorce.cpp:480
void * unk_0x24
Definition d_resorce.h:56
void incCount()
Definition d_resorce.h:40
JKRArchive * getArchive()
Definition d_resorce.h:39
char mArchiveName[11]
Definition d_resorce.h:48
JKRHeap * heap
Definition d_resorce.h:52
u16 decCount()
Definition d_resorce.h:41
void * getRes(s32 i_index)
Definition d_resorce.h:29
static void setWarpSRT(J3DModelData *i_modelData, const cXyz &i_pos, f32 i_transX, f32 i_transY)
Definition d_resorce.cpp:204
int getCount()
Definition d_resorce.h:36
s32 getResNum()
Definition d_resorce.h:34
JKRArchive * mArchive
Definition d_resorce.h:51
static void dump_long(dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:611
mDoDvdThd_mountArchive_c * getDMCommand()
Definition d_resorce.h:38
int set(char const *i_arcName, char const *i_path, u8 i_mountDirection, JKRHeap *i_heap)
Definition d_resorce.cpp:44
static void dump(dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:655
static void onWarpMaterial(J3DModelData *i_modelData)
Definition d_resorce.cpp:173
u16 mCount
Definition d_resorce.h:49
Definition m_Do_dvd_thread.h:81
STATIC_ASSERT(sizeof(dRes_info_c)==0x24)
unsigned long u32
Definition types.h:12
float f32
Definition types.h:25
unsigned short int u16
Definition types.h:10
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
Definition c_xyz.h:7