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
37
38 int getCount() { return mCount; }
39 char* getArchiveName() { return mArchiveName; }
42 u32 incCount() { return ++mCount; }
43 u32 decCount() { return --mCount; }
44
45#if DEBUG
46 int getSize() { return mSize; }
47#endif
48
49#ifdef __MWERKS__
50 static const int NAME_MAX = 9;
51#endif
52
53private:
54 /* 0x00 */ char mArchiveName[11];
55 /* 0x0C */ u16 mCount;
57 /* 0x14 */ JKRArchive* mArchive;
58 /* 0x18 */ JKRHeap* heap;
60 /* 0x20 */ void** mRes;
61#if DEBUG
62 /* 0x24 */ int mSize;
63#endif
64}; // Size: 0x24
65
66STATIC_ASSERT(sizeof(dRes_info_c) == 0x24);
67
69public:
72
73 int getSize(const char*, dRes_info_c*, int);
74 int getStageAllSize();
75 int getObjectAllSize();
76 int setObjectRes(char const* i_arcName, void* i_archiveRes, u32 i_bufferSize, JKRHeap* i_heap);
77 int setStageRes(char const* i_arcName, JKRHeap* i_heap);
78 void dump();
79 void dumpTag();
80 void dump(char*);
81 int getObjectResName2Index(char const* i_arcName, char const* i_resName);
82
83 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);
84 static int syncRes(char const* i_arcName, dRes_info_c* i_resInfo, int i_infoNum);
85 static int deleteRes(char const* i_arcName, dRes_info_c* i_resInfo, int i_infoNum);
86 static void* getRes(char const* i_arcName, char const* i_resName, dRes_info_c* i_resInfo, int i_infoNum);
87 static dRes_info_c* getResInfo(char const* i_arcName, dRes_info_c* i_resInfo, int i_infoNum);
88 static dRes_info_c* newResInfo(dRes_info_c* i_resInfo, int i_infoNum);
89 static dRes_info_c* getResInfoLoaded(char const* i_arcName, dRes_info_c* i_resInfo, int i_infoNum);
90 static void* getRes(char const* i_arcName, s32 i_index, dRes_info_c* i_resInfo, int i_infoNum);
91 static void* getIDRes(char const* i_arcName, u16 i_resID, dRes_info_c* i_resInfo, int i_infoNum);
92 static int syncAllRes(dRes_info_c* i_resInfo, int i_infoNum);
93
94 int setObjectRes(const char* i_arcName, u8 i_mountDirection, JKRHeap* i_heap) {
95 return setRes(i_arcName, mObjectInfo, ARRAY_SIZEU(mObjectInfo), "/res/Object/", i_mountDirection,
96 i_heap);
97 }
98
99 void* getObjectRes(const char* i_arcName, const char* resName) {
100 return getRes(i_arcName, resName, mObjectInfo, ARRAY_SIZEU(mObjectInfo));
101 }
102
103 void* getObjectRes(const char* i_arcName, s32 i_index) {
104 return getRes(i_arcName, i_index, mObjectInfo, ARRAY_SIZEU(mObjectInfo));
105 }
106
107 void* getObjectIDRes(const char* i_arcName, u16 i_resID) {
108 return getIDRes(i_arcName, i_resID, mObjectInfo, ARRAY_SIZEU(mObjectInfo));
109 }
110
111 int syncObjectRes(const char* i_arcName) {
112 return syncRes(i_arcName, mObjectInfo, ARRAY_SIZEU(mObjectInfo));
113 }
114
115 int syncStageRes(const char* i_arcName) {
116 return syncRes(i_arcName, mStageInfo, ARRAY_SIZEU(mStageInfo));
117 }
118
119 int syncAllObjectRes() { return syncAllRes(mObjectInfo, ARRAY_SIZEU(mObjectInfo)); }
120
121 int deleteObjectRes(const char* i_arcName) {
122 return deleteRes(i_arcName, mObjectInfo, ARRAY_SIZEU(mObjectInfo));
123 }
124
125 int deleteStageRes(const char* i_arcName) {
126 return deleteRes(i_arcName, mStageInfo, ARRAY_SIZEU(mStageInfo));
127 }
128
129 void* getStageRes(const char* i_arcName, const char* i_resName) {
130 return getRes(i_arcName, i_resName, mStageInfo, ARRAY_SIZEU(mStageInfo));
131 }
132
133 dRes_info_c* getObjectResInfo(const char* i_arcName) {
134 return getResInfo(i_arcName, mObjectInfo, ARRAY_SIZEU(mObjectInfo));
135 }
136
137 dRes_info_c* getStageResInfo(const char* i_arcName) {
138 return getResInfo(i_arcName, mStageInfo, ARRAY_SIZEU(mStageInfo));
139 }
140
141 /* 0x0000 */ dRes_info_c mObjectInfo[128];
142 /* 0x1200 */ dRes_info_c mStageInfo[64];
143}; // Size: 0x1B00
144
145#endif /* D_D_RESORCE_H */
Definition J3DModelData.h:15
Definition JKRArchive.h:57
virtual u32 countFile(const char *) const
Definition JKRArchivePub.cpp:300
Definition JKRHeap.h:23
Definition JKRSolidHeap.h:10
Definition d_resorce.h:68
int setObjectRes(char const *i_arcName, void *i_archiveRes, u32 i_bufferSize, JKRHeap *i_heap)
Definition d_resorce.cpp:977
int getSize(const char *, dRes_info_c *, int)
Definition d_resorce.cpp:940
void * getObjectRes(const char *i_arcName, s32 i_index)
Definition d_resorce.h:103
dRes_control_c()
Definition d_resorce.h:70
dRes_info_c * getStageResInfo(const char *i_arcName)
Definition d_resorce.h:137
int deleteStageRes(const char *i_arcName)
Definition d_resorce.h:125
static void * getIDRes(char const *i_arcName, u16 i_resID, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:913
int getObjectAllSize()
Definition d_resorce.cpp:962
~dRes_control_c()
Definition d_resorce.cpp:758
dRes_info_c mObjectInfo[128]
Definition d_resorce.h:141
void dump()
Definition d_resorce.cpp:1013
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:768
int syncStageRes(const char *i_arcName)
Definition d_resorce.h:115
static dRes_info_c * getResInfoLoaded(char const *i_arcName, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:858
int getObjectResName2Index(char const *i_arcName, char const *i_resName)
Definition d_resorce.cpp:1037
void * getObjectRes(const char *i_arcName, const char *resName)
Definition d_resorce.h:99
static int deleteRes(char const *i_arcName, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:815
int getStageAllSize()
Definition d_resorce.cpp:948
dRes_info_c * getObjectResInfo(const char *i_arcName)
Definition d_resorce.h:133
int setObjectRes(const char *i_arcName, u8 i_mountDirection, JKRHeap *i_heap)
Definition d_resorce.h:94
static int syncRes(char const *i_arcName, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:793
void * getObjectIDRes(const char *i_arcName, u16 i_resID)
Definition d_resorce.h:107
int deleteObjectRes(const char *i_arcName)
Definition d_resorce.h:121
static dRes_info_c * newResInfo(dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:847
int setStageRes(char const *i_arcName, JKRHeap *i_heap)
Definition d_resorce.cpp:1006
static dRes_info_c * getResInfo(char const *i_arcName, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:834
int syncAllObjectRes()
Definition d_resorce.h:119
int syncObjectRes(const char *i_arcName)
Definition d_resorce.h:111
static void * getRes(char const *i_arcName, char const *i_resName, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:895
void * getStageRes(const char *i_arcName, const char *i_resName)
Definition d_resorce.h:129
void dumpTag()
Definition d_resorce.cpp:1024
static int syncAllRes(dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:928
dRes_info_c mStageInfo[64]
Definition d_resorce.h:142
Definition d_resorce.h:11
int loadResource()
Definition d_resorce.cpp:301
int setRes()
Definition d_resorce.cpp:569
mDoDvdThd_mountArchive_c * mDMCommand
Definition d_resorce.h:56
JKRSolidHeap * mDataHeap
Definition d_resorce.h:59
u32 incCount()
Definition d_resorce.h:42
static const int NAME_MAX
Definition d_resorce.h:50
dRes_info_c()
Definition d_resorce.cpp:21
void ** mRes
Definition d_resorce.h:60
int getSize()
Definition d_resorce.h:46
static J3DModelData * loaderBasicBmd(u32 i_tag, void *i_data)
Definition d_resorce.cpp:220
char * getArchiveName()
Definition d_resorce.h:39
~dRes_info_c()
Definition d_resorce.cpp:30
static void offWarpMaterial(J3DModelData *i_modelData)
Definition d_resorce.cpp:190
void deleteArchiveRes()
Definition d_resorce.cpp:514
int mSize
Definition d_resorce.h:62
JKRArchive * getArchive()
Definition d_resorce.h:41
char mArchiveName[11]
Definition d_resorce.h:54
JKRHeap * heap
Definition d_resorce.h:58
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:205
static void dumpTag(dRes_info_c *, int, int, int)
Definition d_resorce.cpp:737
int getCount()
Definition d_resorce.h:38
s32 getResNum()
Definition d_resorce.h:36
u32 decCount()
Definition d_resorce.h:43
JKRArchive * mArchive
Definition d_resorce.h:57
static void dump_long(dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:663
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:46
static void dump(dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:700
static void onWarpMaterial(J3DModelData *i_modelData)
Definition d_resorce.cpp:174
u16 mCount
Definition d_resorce.h:55
Definition m_Do_dvd_thread.h:60
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