Loading [MathJax]/extensions/tex2jax.js
Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
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
11class dRes_info_c {
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#ifdef DEBUG
56 /* 0x24 */ void* unk_0x24;
57#endif
58}; // Size: 0x24
59
60STATIC_ASSERT(sizeof(dRes_info_c) == 0x24);
61
62class dRes_control_c {
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 int getObjectResName2Index(char const* i_arcName, char const* i_resName);
71
72 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);
73 static int syncRes(char const* i_arcName, dRes_info_c* i_resInfo, int i_infoNum);
74 static int deleteRes(char const* i_arcName, dRes_info_c* i_resInfo, int i_infoNum);
75 static void* getRes(char const* i_arcName, char const* i_resName, dRes_info_c* i_resInfo, int i_infoNum);
76 static dRes_info_c* getResInfo(char const* i_arcName, dRes_info_c* i_resInfo, int i_infoNum);
77 static dRes_info_c* newResInfo(dRes_info_c* i_resInfo, int i_infoNum);
78 static dRes_info_c* getResInfoLoaded(char const* i_arcName, dRes_info_c* i_resInfo, int i_infoNum);
79 static void* getRes(char const* i_arcName, s32 i_index, dRes_info_c* i_resInfo, int i_infoNum);
80 static void* getIDRes(char const* i_arcName, u16 i_resID, dRes_info_c* i_resInfo, int i_infoNum);
81 static int syncAllRes(dRes_info_c* i_resInfo, int i_infoNum);
82
83 int setObjectRes(const char* i_arcName, u8 i_mountDirection, JKRHeap* i_heap) {
84 return setRes(i_arcName, mObjectInfo, ARRAY_SIZE(mObjectInfo), "/res/Object/", i_mountDirection,
85 i_heap);
86 }
87
88 void* getObjectRes(const char* i_arcName, const char* resName) {
89 return getRes(i_arcName, resName, mObjectInfo, ARRAY_SIZE(mObjectInfo));
90 }
91
92 void* getObjectRes(const char* i_arcName, s32 i_index) {
93 return getRes(i_arcName, i_index, mObjectInfo, ARRAY_SIZE(mObjectInfo));
94 }
95
96 void* getObjectIDRes(const char* i_arcName, u16 i_resID) {
97 return getIDRes(i_arcName, i_resID, mObjectInfo, ARRAY_SIZE(mObjectInfo));
98 }
99
100 int syncObjectRes(const char* i_arcName) {
101 return syncRes(i_arcName, mObjectInfo, ARRAY_SIZE(mObjectInfo));
102 }
103
104 int syncStageRes(const char* i_arcName) {
105 return syncRes(i_arcName, mStageInfo, ARRAY_SIZE(mStageInfo));
106 }
107
108 int syncAllObjectRes() { return syncAllRes(mObjectInfo, ARRAY_SIZE(mObjectInfo)); }
109
110 int deleteObjectRes(const char* i_arcName) {
111 return deleteRes(i_arcName, mObjectInfo, ARRAY_SIZE(mObjectInfo));
112 }
113
114 int deleteStageRes(const char* i_arcName) {
115 return deleteRes(i_arcName, mStageInfo, ARRAY_SIZE(mStageInfo));
116 }
117
118 void* getStageRes(const char* i_arcName, const char* i_resName) {
119 return getRes(i_arcName, i_resName, mStageInfo, ARRAY_SIZE(mStageInfo));
120 }
121
122 dRes_info_c* getObjectResInfo(const char* i_arcName) {
123 return getResInfo(i_arcName, mObjectInfo, ARRAY_SIZE(mObjectInfo));
124 }
125
126 dRes_info_c* getStageResInfo(const char* i_arcName) {
127 return getResInfo(i_arcName, mStageInfo, ARRAY_SIZE(mStageInfo));
128 }
129
130 /* 0x0000 */ dRes_info_c mObjectInfo[128];
131 /* 0x1200 */ dRes_info_c mStageInfo[64];
132}; // Size: 0x1B00
133
134#endif /* D_D_RESORCE_H */
Definition JKRArchive.h:57
virtual u32 countFile(const char *) const
Definition JKRArchivePub.cpp:339
Definition JKRHeap.h:16
Definition JKRSolidHeap.h:10
Definition m_Do_dvd_thread.h:81
STATIC_ASSERT(sizeof(dRes_info_c)==0x24)
Definition d_a_hozelda.cpp:52
Definition d_a_hozelda.cpp:20
Definition d_a_hozelda.cpp:142
int setObjectRes(char const *i_arcName, void *i_archiveRes, u32 i_bufferSize, JKRHeap *i_heap)
Definition d_resorce.cpp:926
void * getObjectRes(const char *i_arcName, s32 i_index)
Definition d_resorce.h:92
dRes_control_c()
Definition d_resorce.h:64
dRes_info_c * getStageResInfo(const char *i_arcName)
Definition d_resorce.h:126
int deleteStageRes(const char *i_arcName)
Definition d_resorce.h:114
static void * getIDRes(char const *i_arcName, u16 i_resID, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:896
~dRes_control_c()
Definition d_resorce.cpp:722
dRes_info_c mObjectInfo[128]
Definition d_resorce.h:130
static void * getRes(char const *i_arcName, s32 i_index, dRes_info_c *i_resInfo, int i_infoNum)
void dump()
Definition d_resorce.cpp:965
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:734
int syncStageRes(const char *i_arcName)
Definition d_resorce.h:104
static dRes_info_c * getResInfoLoaded(char const *i_arcName, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:835
int getObjectResName2Index(char const *i_arcName, char const *i_resName)
Definition d_resorce.cpp:977
void * getObjectRes(const char *i_arcName, const char *resName)
Definition d_resorce.h:88
static int deleteRes(char const *i_arcName, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:786
dRes_info_c * getObjectResInfo(const char *i_arcName)
Definition d_resorce.h:122
int setObjectRes(const char *i_arcName, u8 i_mountDirection, JKRHeap *i_heap)
Definition d_resorce.h:83
static int syncRes(char const *i_arcName, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:762
void * getObjectIDRes(const char *i_arcName, u16 i_resID)
Definition d_resorce.h:96
int deleteObjectRes(const char *i_arcName)
Definition d_resorce.h:110
static dRes_info_c * newResInfo(dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:822
void getRes(char const *, s32, dRes_info_c *, int)
Definition d_resorce.cpp:856
int setStageRes(char const *i_arcName, JKRHeap *i_heap)
Definition d_resorce.cpp:957
static dRes_info_c * getResInfo(char const *i_arcName, dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:807
int syncAllObjectRes()
Definition d_resorce.h:108
int syncObjectRes(const char *i_arcName)
Definition d_resorce.h:100
void * getStageRes(const char *i_arcName, const char *i_resName)
Definition d_resorce.h:118
static int syncAllRes(dRes_info_c *i_resInfo, int i_infoNum)
Definition d_resorce.cpp:913
dRes_info_c mStageInfo[64]
Definition d_resorce.h:131
Definition d_a_hozelda.cpp:140
int loadResource()
Definition d_resorce.cpp:318
int setRes()
Definition d_resorce.cpp:552
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:17
void ** mRes
Definition d_resorce.h:54
static J3DModelData * loaderBasicBmd(u32 i_tag, void *i_data)
Definition d_resorce.cpp:235
char * getArchiveName()
Definition d_resorce.h:37
~dRes_info_c()
Definition d_resorce.cpp:27
static void offWarpMaterial(J3DModelData *i_modelData)
Definition d_resorce.cpp:200
void deleteArchiveRes()
Definition d_resorce.cpp:498
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:217
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:636
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:682
static void onWarpMaterial(J3DModelData *i_modelData)
Definition d_resorce.cpp:182
u16 mCount
Definition d_resorce.h:49
unsigned long u32
Definition types.h:9
float f32
Definition types.h:22
unsigned short int u16
Definition types.h:7
signed long s32
Definition types.h:8
unsigned char u8
Definition types.h:5