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 static void dumpTag(dRes_info_c*, int, int, int);
29 static void dump(char*, dRes_info_c*, int);
30
31 void* getRes(s32 i_index) {
32 JUT_ASSERT(25, i_index >= 0 && i_index < getResNum());
33 return *(mRes + i_index);
34 }
35
36 s32 getResNum() { return mArchive->countFile(); }
37
38 int getCount() { return mCount; }
39 char* getArchiveName() { return mArchiveName; }
41 JKRArchive* getArchive() { return mArchive; }
42 JKRSolidHeap* getDataHeap() { return mDataHeap; }
43 u32 incCount() { return ++mCount; }
44 u32 decCount() { return --mCount; }
45
46#if DEBUG
47 int getSize() { return mSize; }
48#endif
49
50#ifdef __MWERKS__
51 static const int NAME_MAX = 9;
52#endif
53
54private:
55 /* 0x00 */ char mArchiveName[11];
56 /* 0x0C */ u16 mCount;
58 /* 0x14 */ JKRArchive* mArchive;
59 /* 0x18 */ JKRHeap* heap;
60 /* 0x1C */ JKRSolidHeap* mDataHeap;
61 /* 0x20 */ void** mRes;
62#if DEBUG
63 /* 0x24 */ int mSize;
64#endif
65}; // Size: 0x24
66
67STATIC_ASSERT(sizeof(dRes_info_c) == 0x24);
68
70public:
73
74 int getSize(const char*, dRes_info_c*, int);
75 int getStageAllSize();
76 int getObjectAllSize();
77 int setObjectRes(char const* i_arcName, void* i_archiveRes, u32 i_bufferSize, JKRHeap* i_heap);
78 int setStageRes(char const* i_arcName, JKRHeap* i_heap);
79 void dump();
80 void dumpTag();
81 void dump(char*);
82 int getObjectResName2Index(char const* i_arcName, char const* i_resName);
83
84 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);
85 static int syncRes(char const* i_arcName, dRes_info_c* i_resInfo, int i_infoNum);
86 static int deleteRes(char const* i_arcName, dRes_info_c* i_resInfo, int i_infoNum);
87 static void* getRes(char const* i_arcName, char const* i_resName, dRes_info_c* i_resInfo, int i_infoNum);
88 static dRes_info_c* getResInfo(char const* i_arcName, dRes_info_c* i_resInfo, int i_infoNum);
89 static dRes_info_c* newResInfo(dRes_info_c* i_resInfo, int i_infoNum);
90 static dRes_info_c* getResInfoLoaded(char const* i_arcName, dRes_info_c* i_resInfo, int i_infoNum);
91 static void* getRes(char const* i_arcName, s32 i_index, dRes_info_c* i_resInfo, int i_infoNum);
92 static void* getIDRes(char const* i_arcName, u16 i_resID, dRes_info_c* i_resInfo, int i_infoNum);
93 static int syncAllRes(dRes_info_c* i_resInfo, int i_infoNum);
94
95 int setObjectRes(const char* i_arcName, u8 i_mountDirection, JKRHeap* i_heap) {
96 return setRes(i_arcName, mObjectInfo, ARRAY_SIZEU(mObjectInfo), "/res/Object/", i_mountDirection,
97 i_heap);
98 }
99
100 void* getObjectRes(const char* i_arcName, const char* resName) {
101 return getRes(i_arcName, resName, mObjectInfo, ARRAY_SIZEU(mObjectInfo));
102 }
103
104 void* getObjectRes(const char* i_arcName, s32 i_index) {
105 return getRes(i_arcName, i_index, mObjectInfo, ARRAY_SIZEU(mObjectInfo));
106 }
107
108 void* getObjectIDRes(const char* i_arcName, u16 i_resID) {
109 return getIDRes(i_arcName, i_resID, mObjectInfo, ARRAY_SIZEU(mObjectInfo));
110 }
111
112 int syncObjectRes(const char* i_arcName) {
113 return syncRes(i_arcName, mObjectInfo, ARRAY_SIZEU(mObjectInfo));
114 }
115
116 int syncStageRes(const char* i_arcName) {
117 return syncRes(i_arcName, mStageInfo, ARRAY_SIZEU(mStageInfo));
118 }
119
120 int syncAllObjectRes() { return syncAllRes(mObjectInfo, ARRAY_SIZEU(mObjectInfo)); }
121
122 int deleteObjectRes(const char* i_arcName) {
123 return deleteRes(i_arcName, mObjectInfo, ARRAY_SIZEU(mObjectInfo));
124 }
125
126 int deleteStageRes(const char* i_arcName) {
127 return deleteRes(i_arcName, mStageInfo, ARRAY_SIZEU(mStageInfo));
128 }
129
130 void* getStageRes(const char* i_arcName, const char* i_resName) {
131 return getRes(i_arcName, i_resName, mStageInfo, ARRAY_SIZEU(mStageInfo));
132 }
133
134 dRes_info_c* getObjectResInfo(const char* i_arcName) {
135 return getResInfo(i_arcName, mObjectInfo, ARRAY_SIZEU(mObjectInfo));
136 }
137
138 dRes_info_c* getStageResInfo(const char* i_arcName) {
139 return getResInfo(i_arcName, mStageInfo, ARRAY_SIZEU(mStageInfo));
140 }
141
142 u32 getObjectSize(const char* i_arcName) {
143 return getSize(i_arcName, mObjectInfo, ARRAY_SIZEU(mObjectInfo));
144 }
145
146 u32 getStageSize(const char* i_arcName) {
147 return getSize(i_arcName, mStageInfo, ARRAY_SIZEU(mStageInfo));
148 }
149
150 /* 0x0000 */ dRes_info_c mObjectInfo[128];
151 /* 0x1200 */ dRes_info_c mStageInfo[64];
152}; // Size: 0x1B00
153
154#endif /* D_D_RESORCE_H */
Definition d_resorce.h:69
int setObjectRes(char const *i_arcName, void *i_archiveRes, u32 i_bufferSize, JKRHeap *i_heap)
Definition d_resorce.cpp:978
int getSize(const char *, dRes_info_c *, int)
Definition d_resorce.cpp:941
void * getObjectRes(const char *i_arcName, s32 i_index)
Definition d_resorce.h:104
dRes_control_c()
Definition d_resorce.h:71
dRes_info_c * getStageResInfo(const char *i_arcName)
Definition d_resorce.h:138
int deleteStageRes(const char *i_arcName)
Definition d_resorce.h:126
static void * getIDRes(char const *i_arcName, u16 i_resID, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:914
int getObjectAllSize()
Definition d_resorce.cpp:963
~dRes_control_c()
Definition d_resorce.cpp:759
dRes_info_c mObjectInfo[128]
Definition d_resorce.h:150
void dump()
Definition d_resorce.cpp:1014
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:769
int syncStageRes(const char *i_arcName)
Definition d_resorce.h:116
static dRes_info_c * getResInfoLoaded(char const *i_arcName, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:859
int getObjectResName2Index(char const *i_arcName, char const *i_resName)
Definition d_resorce.cpp:1038
void * getObjectRes(const char *i_arcName, const char *resName)
Definition d_resorce.h:100
static int deleteRes(char const *i_arcName, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:816
int getStageAllSize()
Definition d_resorce.cpp:949
dRes_info_c * getObjectResInfo(const char *i_arcName)
Definition d_resorce.h:134
int setObjectRes(const char *i_arcName, u8 i_mountDirection, JKRHeap *i_heap)
Definition d_resorce.h:95
static int syncRes(char const *i_arcName, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:794
void * getObjectIDRes(const char *i_arcName, u16 i_resID)
Definition d_resorce.h:108
int deleteObjectRes(const char *i_arcName)
Definition d_resorce.h:122
static dRes_info_c * newResInfo(dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:848
u32 getObjectSize(const char *i_arcName)
Definition d_resorce.h:142
int setStageRes(char const *i_arcName, JKRHeap *i_heap)
Definition d_resorce.cpp:1007
static dRes_info_c * getResInfo(char const *i_arcName, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:835
int syncAllObjectRes()
Definition d_resorce.h:120
int syncObjectRes(const char *i_arcName)
Definition d_resorce.h:112
static void * getRes(char const *i_arcName, char const *i_resName, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:896
u32 getStageSize(const char *i_arcName)
Definition d_resorce.h:146
void * getStageRes(const char *i_arcName, const char *i_resName)
Definition d_resorce.h:130
void dumpTag()
Definition d_resorce.cpp:1025
static int syncAllRes(dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:929
dRes_info_c mStageInfo[64]
Definition d_resorce.h:151
Definition d_resorce.h:11
int loadResource()
Definition d_resorce.cpp:302
int setRes()
Definition d_resorce.cpp:570
mDoDvdThd_mountArchive_c * mDMCommand
Definition d_resorce.h:57
JKRSolidHeap * mDataHeap
Definition d_resorce.h:60
JKRSolidHeap * getDataHeap()
Definition d_resorce.h:42
u32 incCount()
Definition d_resorce.h:43
static const int NAME_MAX
Definition d_resorce.h:51
dRes_info_c()
Definition d_resorce.cpp:22
void ** mRes
Definition d_resorce.h:61
int getSize()
Definition d_resorce.h:47
static J3DModelData * loaderBasicBmd(u32 i_tag, void *i_data)
Definition d_resorce.cpp:221
char * getArchiveName()
Definition d_resorce.h:39
~dRes_info_c()
Definition d_resorce.cpp:31
static void offWarpMaterial(J3DModelData *i_modelData)
Definition d_resorce.cpp:191
void deleteArchiveRes()
Definition d_resorce.cpp:515
int mSize
Definition d_resorce.h:63
JKRArchive * getArchive()
Definition d_resorce.h:41
char mArchiveName[11]
Definition d_resorce.h:55
JKRHeap * heap
Definition d_resorce.h:59
void * getRes(s32 i_index)
Definition d_resorce.h:31
static void setWarpSRT(J3DModelData *i_modelData, const cXyz &i_pos, f32 i_transX, f32 i_transY)
Definition d_resorce.cpp:206
static void dumpTag(dRes_info_c *, int, int, int)
Definition d_resorce.cpp:738
int getCount()
Definition d_resorce.h:38
s32 getResNum()
Definition d_resorce.h:36
u32 decCount()
Definition d_resorce.h:44
JKRArchive * mArchive
Definition d_resorce.h:58
static void dump_long(dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:664
mDoDvdThd_mountArchive_c * getDMCommand()
Definition d_resorce.h:40
int set(char const *i_arcName, char const *i_path, u8 i_mountDirection, JKRHeap *i_heap)
Definition d_resorce.cpp:47
static void dump(dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:701
static void onWarpMaterial(J3DModelData *i_modelData)
Definition d_resorce.cpp:175
u16 mCount
Definition d_resorce.h:56
Definition m_Do_dvd_thread.h:60
STATIC_ASSERT(sizeof(dRes_info_c)==0x24)
Definition c_xyz.h:7