mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-04-25 15:49:02 -05:00
Begin documenting TextureResourceManager
This commit is contained in:
parent
1ac80e5ead
commit
7e231694fb
|
|
@ -31,8 +31,8 @@ UnkStruct_02020C44 * ov5_021EDC8C(UnkStruct_ov5_021ED0A4 * param0);
|
|||
void ov5_021EDC94(UnkStruct_ov5_021ED0A4 * param0, int param1);
|
||||
ResourceManager * ov5_021EDC98(const UnkStruct_ov5_021ED0A4 * param0);
|
||||
ResourceManager * ov5_021EDCA0(const UnkStruct_ov5_021ED0A4 * param0);
|
||||
void ov5_021EDCA8(UnkStruct_ov5_021ED0A4 * param0, UnkStruct_02022BD8 * param1);
|
||||
UnkStruct_02022BD8 * ov5_021EDCB0(const UnkStruct_ov5_021ED0A4 * param0);
|
||||
void ov5_021EDCA8(UnkStruct_ov5_021ED0A4 * param0, TextureResourceManager * param1);
|
||||
TextureResourceManager * ov5_021EDCB0(const UnkStruct_ov5_021ED0A4 * param0);
|
||||
void ov5_021EDD78(MapObject * param0, int param1);
|
||||
int ov5_021EDD94(MapObject * param0);
|
||||
BOOL ov5_021EDEB4(MapObject * param0, UnkStruct_020216E0 * param1);
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ typedef struct UnkStruct_ov5_021ED0A4_t {
|
|||
UnkStruct_ov5_021DF84C * unk_E4;
|
||||
ResourceManager * unk_E8;
|
||||
ResourceManager * unk_EC;
|
||||
UnkStruct_02022BD8 * unk_F0;
|
||||
TextureResourceManager * unk_F0;
|
||||
UnkStruct_ov5_021ED110 * unk_F4;
|
||||
UnkStruct_ov5_021F06D8 * unk_F8;
|
||||
UnkStruct_ov5_021F06D8 * unk_FC;
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ typedef struct {
|
|||
u32 unk_00;
|
||||
int unk_04;
|
||||
int unk_08;
|
||||
UnkStruct_02022BD8 * unk_0C;
|
||||
TextureResourceManager * unk_0C;
|
||||
} UnkStruct_ov5_021EDFBC;
|
||||
|
||||
#endif // POKEPLATINUM_STRUCT_OV5_021EDFBC_H
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
typedef struct {
|
||||
vu32 unk_00;
|
||||
int unk_04;
|
||||
UnkStruct_02022BD8 * unk_08;
|
||||
TextureResourceManager * unk_08;
|
||||
} UnkStruct_ov5_021EE134;
|
||||
|
||||
#endif // POKEPLATINUM_STRUCT_OV5_021EE134_H
|
||||
|
|
|
|||
|
|
@ -10,6 +10,11 @@
|
|||
|
||||
#include <nnsys.h>
|
||||
|
||||
enum TextureResourceMode {
|
||||
TEX_RESOURCE_MODE_NORMAL = 0, // Texture data is contained in the actual resource
|
||||
TEX_RESOURCE_MODE_STRIPPED, // Texture data is stripped from the resource and stored in a separate buffer
|
||||
};
|
||||
|
||||
ResourceManager *ResourceManager_New(s32 maxResources, enum HeapId heapID);
|
||||
void ResourceManager_Delete(ResourceManager *resMgr);
|
||||
BOOL ResourceManager_IsIDUnused(ResourceManager *resMgr, int id);
|
||||
|
|
@ -21,25 +26,25 @@ Resource *ResourceManager_FindResource(ResourceManager *resMgr, int id);
|
|||
void *Resource_GetData(Resource *resource);
|
||||
void Resource_SetData(Resource *resource, void *data);
|
||||
int Resource_GetID(Resource *resource);
|
||||
UnkStruct_02022BD8 * sub_02022BD8(int param0, int param1);
|
||||
void sub_02022C1C(UnkStruct_02022BD8 * param0);
|
||||
BOOL sub_02022C40(const UnkStruct_02022BD8 * param0, int param1);
|
||||
UnkStruct_02022BD8_2 * sub_02022C58(const UnkStruct_02022BD8 * param0, void * param1, int param2, u32 param3, u32 param4);
|
||||
UnkStruct_02022BD8_2 * sub_02022C9C(UnkStruct_02022BD8 * param0, void * param1, int param2, u32 param3, int param4);
|
||||
void sub_02022CB4(UnkStruct_02022BD8 * param0, UnkStruct_02022BD8_2 * param1);
|
||||
void sub_02022D38(UnkStruct_02022BD8 * param0, int param1);
|
||||
void sub_02022D58(UnkStruct_02022BD8 * param0);
|
||||
UnkStruct_02022BD8_2 * sub_02022D98(const UnkStruct_02022BD8 * param0, int param1);
|
||||
int sub_02022DE0(const UnkStruct_02022BD8_2 * param0);
|
||||
NNSG3dResTex * sub_02022DF4(const UnkStruct_02022BD8_2 * param0);
|
||||
void sub_02022E08(UnkStruct_02022BD8_2 * param0);
|
||||
void sub_02022E38(UnkStruct_02022BD8 * param0, int param1);
|
||||
void sub_02022E54(UnkStruct_02022BD8_2 * param0);
|
||||
void sub_02022EA0(UnkStruct_02022BD8 * param0, int param1);
|
||||
void sub_02022EBC(UnkStruct_02022BD8_2 * param0);
|
||||
NNSGfdTexKey sub_02022EF4(const UnkStruct_02022BD8_2 * param0);
|
||||
NNSGfdTexKey sub_02022F04(const UnkStruct_02022BD8_2 * param0);
|
||||
NNSGfdPlttKey sub_02022F14(const UnkStruct_02022BD8_2 * param0);
|
||||
TextureResourceManager *TextureResourceManager_New(s32 maxTextures, enum HeapId heapID);
|
||||
void TextureResourceManager_Delete(TextureResourceManager * param0);
|
||||
BOOL TextureResourceManager_IsIDUnused(const TextureResourceManager * param0, int param1);
|
||||
TextureResource * sub_02022C58(const TextureResourceManager * param0, void * param1, int param2, enum TextureResourceMode param3, enum HeapId param4);
|
||||
TextureResource * sub_02022C9C(TextureResourceManager * param0, void * param1, int param2, u32 param3, int param4);
|
||||
void sub_02022CB4(TextureResourceManager * param0, TextureResource * param1);
|
||||
void sub_02022D38(TextureResourceManager * param0, int param1);
|
||||
void sub_02022D58(TextureResourceManager * param0);
|
||||
TextureResource * sub_02022D98(const TextureResourceManager * param0, int param1);
|
||||
int TextureResource_GetID(const TextureResource * param0);
|
||||
NNSG3dResTex * sub_02022DF4(const TextureResource * param0);
|
||||
void sub_02022E08(TextureResource * param0);
|
||||
void sub_02022E38(TextureResourceManager * param0, int param1);
|
||||
void sub_02022E54(TextureResource * param0);
|
||||
void sub_02022EA0(TextureResourceManager * param0, int param1);
|
||||
void sub_02022EBC(TextureResource * param0);
|
||||
NNSGfdTexKey sub_02022EF4(const TextureResource * param0);
|
||||
NNSGfdTexKey sub_02022F04(const TextureResource * param0);
|
||||
NNSGfdPlttKey sub_02022F14(const TextureResource * param0);
|
||||
u32 sub_02022F24(NNSG3dResFileHeader * param0);
|
||||
|
||||
#endif // POKEPLATINUM_UNK_0202298C_H
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#ifndef POKEPLATINUM_STRUCT_02022BD8_2_DECL_H
|
||||
#define POKEPLATINUM_STRUCT_02022BD8_2_DECL_H
|
||||
|
||||
typedef struct UnkStruct_02022BD8_2_t UnkStruct_02022BD8_2;
|
||||
typedef struct TextureResource TextureResource;
|
||||
|
||||
#endif // POKEPLATINUM_STRUCT_02022BD8_2_DECL_H
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#ifndef POKEPLATINUM_STRUCT_02022BD8_DECL_H
|
||||
#define POKEPLATINUM_STRUCT_02022BD8_DECL_H
|
||||
|
||||
typedef struct UnkStruct_02022BD8_t UnkStruct_02022BD8;
|
||||
typedef struct TextureResourceManager TextureResourceManager;
|
||||
|
||||
#endif // POKEPLATINUM_STRUCT_02022BD8_DECL_H
|
||||
|
|
|
|||
|
|
@ -19,25 +19,25 @@ Resource * ResourceManager_FindResource(ResourceManager * param0, int param1);
|
|||
void * Resource_GetData(Resource * param0);
|
||||
void Resource_SetData(Resource * param0, void * param1);
|
||||
int Resource_GetID(Resource * param0);
|
||||
UnkStruct_02022BD8 * sub_02022BD8(int param0, int param1);
|
||||
void sub_02022C1C(UnkStruct_02022BD8 * param0);
|
||||
BOOL sub_02022C40(const UnkStruct_02022BD8 * param0, int param1);
|
||||
UnkStruct_02022BD8_2 * sub_02022C58(const UnkStruct_02022BD8 * param0, void * param1, int param2, u32 param3, u32 param4);
|
||||
UnkStruct_02022BD8_2 * sub_02022C9C(UnkStruct_02022BD8 * param0, void * param1, int param2, u32 param3, int param4);
|
||||
void sub_02022CB4(UnkStruct_02022BD8 * param0, UnkStruct_02022BD8_2 * param1);
|
||||
void sub_02022D38(UnkStruct_02022BD8 * param0, int param1);
|
||||
void sub_02022D58(UnkStruct_02022BD8 * param0);
|
||||
UnkStruct_02022BD8_2 * sub_02022D98(const UnkStruct_02022BD8 * param0, int param1);
|
||||
int sub_02022DE0(const UnkStruct_02022BD8_2 * param0);
|
||||
NNSG3dResTex * sub_02022DF4(const UnkStruct_02022BD8_2 * param0);
|
||||
void sub_02022E08(UnkStruct_02022BD8_2 * param0);
|
||||
void sub_02022E38(UnkStruct_02022BD8 * param0, int param1);
|
||||
void sub_02022E54(UnkStruct_02022BD8_2 * param0);
|
||||
void sub_02022EA0(UnkStruct_02022BD8 * param0, int param1);
|
||||
void sub_02022EBC(UnkStruct_02022BD8_2 * param0);
|
||||
NNSGfdTexKey sub_02022EF4(const UnkStruct_02022BD8_2 * param0);
|
||||
NNSGfdTexKey sub_02022F04(const UnkStruct_02022BD8_2 * param0);
|
||||
NNSGfdPlttKey sub_02022F14(const UnkStruct_02022BD8_2 * param0);
|
||||
TextureResourceManager * TextureResourceManager_New(int param0, int param1);
|
||||
void TextureResourceManager_Delete(TextureResourceManager * param0);
|
||||
BOOL TextureResourceManager_IsIDUnused(const TextureResourceManager * param0, int param1);
|
||||
TextureResource * sub_02022C58(const TextureResourceManager * param0, void * param1, int param2, u32 param3, u32 param4);
|
||||
TextureResource * sub_02022C9C(TextureResourceManager * param0, void * param1, int param2, u32 param3, int param4);
|
||||
void sub_02022CB4(TextureResourceManager * param0, TextureResource * param1);
|
||||
void sub_02022D38(TextureResourceManager * param0, int param1);
|
||||
void sub_02022D58(TextureResourceManager * param0);
|
||||
TextureResource * sub_02022D98(const TextureResourceManager * param0, int param1);
|
||||
int TextureResource_GetID(const TextureResource * param0);
|
||||
NNSG3dResTex * sub_02022DF4(const TextureResource * param0);
|
||||
void sub_02022E08(TextureResource * param0);
|
||||
void sub_02022E38(TextureResourceManager * param0, int param1);
|
||||
void sub_02022E54(TextureResource * param0);
|
||||
void sub_02022EA0(TextureResourceManager * param0, int param1);
|
||||
void sub_02022EBC(TextureResource * param0);
|
||||
NNSGfdTexKey sub_02022EF4(const TextureResource * param0);
|
||||
NNSGfdTexKey sub_02022F04(const TextureResource * param0);
|
||||
NNSGfdPlttKey sub_02022F14(const TextureResource * param0);
|
||||
u32 sub_02022F24(NNSG3dResFileHeader * param0);
|
||||
|
||||
#endif // POKEPLATINUM_UNK_0202298C_H
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ typedef struct UnkStruct_ov5_021DF8FC_t {
|
|||
UnkStruct_02020C44 * unk_0C;
|
||||
UnkStruct_ov5_021F06D8 * unk_10;
|
||||
UnkStruct_ov5_021F06D8 * unk_14;
|
||||
UnkStruct_02022BD8 * unk_18;
|
||||
TextureResourceManager * unk_18;
|
||||
UnkStruct_ov5_021DF8C8 * unk_1C;
|
||||
UnkStruct_ov5_021DF84C * unk_20;
|
||||
} UnkStruct_ov5_021DF8FC;
|
||||
|
|
@ -81,7 +81,7 @@ typedef struct UnkStruct_ov5_021DF8C8_t {
|
|||
typedef struct {
|
||||
u32 unk_00;
|
||||
u32 unk_04;
|
||||
UnkStruct_02022BD8 * unk_08;
|
||||
TextureResourceManager * unk_08;
|
||||
} UnkStruct_ov5_021DFA88;
|
||||
|
||||
static u32 ov5_021DF584(const UnkStruct_ov5_021DF47C * param0);
|
||||
|
|
@ -106,8 +106,8 @@ static void ov5_021DF8C8(UnkStruct_ov5_021DF47C * param0, UnkStruct_ov5_021DF8FC
|
|||
static void ov5_021DF8FC(UnkStruct_ov5_021DF8FC * param0);
|
||||
static UnkStruct_ov5_021DF84C * ov5_021DF9B4(UnkStruct_ov5_021DF8FC * param0, u32 param1);
|
||||
static void ov5_021DF910(UnkStruct_ov5_021DF8FC * param0, u32 param1);
|
||||
static UnkStruct_ov5_021DF84C * ov5_021DF930(UnkStruct_ov5_021DF8FC * param0, u32 param1, void * param2, UnkStruct_02024184 * param3, void * param4, UnkStruct_02022BD8_2 * param5, const UnkStruct_020217F4 * param6);
|
||||
static void ov5_021DFA88(UnkStruct_ov5_021DF47C * param0, u32 param1, UnkStruct_02022BD8 * param2);
|
||||
static UnkStruct_ov5_021DF84C * ov5_021DF930(UnkStruct_ov5_021DF8FC * param0, u32 param1, void * param2, UnkStruct_02024184 * param3, void * param4, TextureResource * param5, const UnkStruct_020217F4 * param6);
|
||||
static void ov5_021DFA88(UnkStruct_ov5_021DF47C * param0, u32 param1, TextureResourceManager * param2);
|
||||
static void ov5_021DFAC0(SysTask * param0, void * param1);
|
||||
static void ov5_021DFADC(SysTask * param0, void * param1);
|
||||
|
||||
|
|
@ -435,7 +435,7 @@ static void ov5_021DF754 (UnkStruct_ov5_021DF47C * param0, u32 param1, u32 param
|
|||
v0->unk_0A = param5;
|
||||
v0->unk_10 = ov5_021F067C(param1, 69, param6, param3);
|
||||
v0->unk_14 = ov5_021F067C(param1, 70, param7, param4);
|
||||
v0->unk_18 = sub_02022BD8(param5, param1);
|
||||
v0->unk_18 = TextureResourceManager_New(param5, param1);
|
||||
|
||||
ov5_021DF8C8(param0, v0, param2);
|
||||
|
||||
|
|
@ -453,7 +453,7 @@ static void ov5_021DF7C4 (UnkStruct_ov5_021DF47C * param0)
|
|||
ov5_021DF8FC(v0);
|
||||
ov5_021F06D8(v0->unk_10);
|
||||
ov5_021F06D8(v0->unk_14);
|
||||
sub_02022C1C(v0->unk_18);
|
||||
TextureResourceManager_Delete(v0->unk_18);
|
||||
ov5_021DF554(v0);
|
||||
|
||||
param0->unk_20 = NULL;
|
||||
|
|
@ -497,7 +497,7 @@ UnkStruct_ov5_021DF84C * ov5_021DF864 (UnkStruct_ov5_021DF47C * param0, u32 para
|
|||
{
|
||||
void * v0, * v1, * v2;
|
||||
UnkStruct_02024184 v3;
|
||||
UnkStruct_02022BD8_2 * v4;
|
||||
TextureResource * v4;
|
||||
UnkStruct_ov5_021DF84C * v5;
|
||||
UnkStruct_ov5_021DF8FC * v6;
|
||||
|
||||
|
|
@ -563,7 +563,7 @@ static void ov5_021DF910 (UnkStruct_ov5_021DF8FC * param0, u32 param1)
|
|||
GF_ASSERT(FALSE);
|
||||
}
|
||||
|
||||
static UnkStruct_ov5_021DF84C * ov5_021DF930 (UnkStruct_ov5_021DF8FC * param0, u32 param1, void * param2, UnkStruct_02024184 * param3, void * param4, UnkStruct_02022BD8_2 * param5, const UnkStruct_020217F4 * param6)
|
||||
static UnkStruct_ov5_021DF84C * ov5_021DF930 (UnkStruct_ov5_021DF8FC * param0, u32 param1, void * param2, UnkStruct_02024184 * param3, void * param4, TextureResource * param5, const UnkStruct_020217F4 * param6)
|
||||
{
|
||||
UnkStruct_ov5_021DF84C * v0;
|
||||
|
||||
|
|
@ -675,7 +675,7 @@ void ov5_021DFA3C (UnkStruct_ov5_021DF47C * param0, u32 param1, u32 param2, u32
|
|||
{
|
||||
UnkStruct_ov5_021DF8FC * v0 = param0->unk_20;
|
||||
void * v1 = ov5_021DF5C0(param0, param2, 1);
|
||||
UnkStruct_02022BD8_2 * v2 = sub_02022C9C(v0->unk_18, v1, param1, param3, ov5_021DF584(param0));
|
||||
TextureResource * v2 = sub_02022C9C(v0->unk_18, v1, param1, param3, ov5_021DF584(param0));
|
||||
|
||||
GF_ASSERT(v2 != NULL);
|
||||
ov5_021DFA88(param0, param1, v0->unk_18);
|
||||
|
|
@ -687,7 +687,7 @@ void ov5_021DFA7C (UnkStruct_ov5_021DF47C * param0, u32 param1)
|
|||
sub_02022D38(v0->unk_18, param1);
|
||||
}
|
||||
|
||||
static void ov5_021DFA88 (UnkStruct_ov5_021DF47C * param0, u32 param1, UnkStruct_02022BD8 * param2)
|
||||
static void ov5_021DFA88 (UnkStruct_ov5_021DF47C * param0, u32 param1, TextureResourceManager * param2)
|
||||
{
|
||||
UnkStruct_ov5_021DFA88 * v0 = ov5_021DF528(param0, (sizeof(UnkStruct_ov5_021DFA88)), 1);
|
||||
|
||||
|
|
|
|||
|
|
@ -516,9 +516,9 @@ static void ov5_021ED224 (UnkStruct_ov5_021ED0A4 * param0, int param1, int param
|
|||
}
|
||||
|
||||
{
|
||||
UnkStruct_02022BD8 * v0;
|
||||
TextureResourceManager * v0;
|
||||
|
||||
v0 = sub_02022BD8(param5, 4);
|
||||
v0 = TextureResourceManager_New(param5, 4);
|
||||
|
||||
ov5_021EDCA8(param0, v0);
|
||||
ov5_021ED7D0(param0);
|
||||
|
|
@ -531,7 +531,7 @@ static void ov5_021ED2AC (UnkStruct_ov5_021ED0A4 * param0)
|
|||
{
|
||||
ov5_021F06D8(param0->unk_F8);
|
||||
ov5_021F06D8(param0->unk_FC);
|
||||
sub_02022C1C(ov5_021EDCB0(param0));
|
||||
TextureResourceManager_Delete(ov5_021EDCB0(param0));
|
||||
}
|
||||
|
||||
static const UnkStruct_ov5_021ED2D0 * ov5_021ED2D0 (int param0, int param1, const UnkStruct_ov5_021ED2D0 * param2)
|
||||
|
|
@ -568,9 +568,9 @@ static int ov5_021ED2E8 (UnkStruct_ov5_021ED0A4 * param0, UnkStruct_ov5_021F06D8
|
|||
|
||||
static UnkEnum_ov5_021ED334 ov5_021ED334 (UnkStruct_ov5_021ED0A4 * param0, int param1, int param2, const UnkStruct_ov5_021ED2D0 * param3)
|
||||
{
|
||||
UnkStruct_02022BD8 * v0 = param0->unk_F0;
|
||||
TextureResourceManager * v0 = param0->unk_F0;
|
||||
|
||||
if (sub_02022C40(v0, param2) == 0) {
|
||||
if (TextureResourceManager_IsIDUnused(v0, param2) == 0) {
|
||||
return UnkEnum_ov5_021ED334_00;
|
||||
}
|
||||
|
||||
|
|
@ -579,7 +579,7 @@ static UnkEnum_ov5_021ED334 ov5_021ED334 (UnkStruct_ov5_021ED0A4 * param0, int p
|
|||
}
|
||||
|
||||
{
|
||||
UnkStruct_02022BD8_2 * v1;
|
||||
TextureResource * v1;
|
||||
const UnkStruct_ov5_021ED2D0 * v2 = ov5_021ED2D0(param2, 0xffff, param3);
|
||||
|
||||
if (v2 == NULL) {
|
||||
|
|
@ -983,7 +983,7 @@ static void ov5_021ED8B8 (MapObjectManager * param0, UnkStruct_ov5_021ED0A4 * pa
|
|||
{
|
||||
int v0, v1;
|
||||
int * v2;
|
||||
UnkStruct_02022BD8 * v3;
|
||||
TextureResourceManager * v3;
|
||||
|
||||
v3 = ov5_021EDCB0(param1);
|
||||
v2 = ov5_021EDCB8(param1);
|
||||
|
|
@ -1226,7 +1226,7 @@ void ov5_021EDBC4 (const MapObjectManager * param0, int param1, MapObject * para
|
|||
|
||||
if (ov5_021ED94C(v1, param1) == 1) {
|
||||
if (ov5_021EDA54(param0, param1, param2) == 0) {
|
||||
UnkStruct_02022BD8 * v2 = ov5_021EDCB0(v1);
|
||||
TextureResourceManager * v2 = ov5_021EDCB0(v1);
|
||||
|
||||
sub_02022D38(v2, param1);
|
||||
ov5_021ED88C(v1, param1);
|
||||
|
|
@ -1261,12 +1261,12 @@ ResourceManager * ov5_021EDCA0 (const UnkStruct_ov5_021ED0A4 * param0)
|
|||
return param0->unk_EC;
|
||||
}
|
||||
|
||||
void ov5_021EDCA8 (UnkStruct_ov5_021ED0A4 * param0, UnkStruct_02022BD8 * param1)
|
||||
void ov5_021EDCA8 (UnkStruct_ov5_021ED0A4 * param0, TextureResourceManager * param1)
|
||||
{
|
||||
param0->unk_F0 = param1;
|
||||
}
|
||||
|
||||
UnkStruct_02022BD8 * ov5_021EDCB0 (const UnkStruct_ov5_021ED0A4 * param0)
|
||||
TextureResourceManager * ov5_021EDCB0 (const UnkStruct_ov5_021ED0A4 * param0)
|
||||
{
|
||||
return param0->unk_F0;
|
||||
}
|
||||
|
|
@ -1483,8 +1483,8 @@ static void ov5_021EDE3C (UnkStruct_ov5_021ED0A4 * param0, u32 param1, UnkStruct
|
|||
}
|
||||
|
||||
{
|
||||
UnkStruct_02022BD8 * v4 = ov5_021EDCB0(param0);
|
||||
UnkStruct_02022BD8_2 * v5 = sub_02022D98(v4, param1);
|
||||
TextureResourceManager * v4 = ov5_021EDCB0(param0);
|
||||
TextureResource * v5 = sub_02022D98(v4, param1);
|
||||
|
||||
param2->unk_04 = sub_02022DF4(v5);
|
||||
|
||||
|
|
@ -1684,7 +1684,7 @@ static void ov5_021EE030 (SysTask * param0, void * param1)
|
|||
|
||||
static void ov5_021EE0E8 (UnkStruct_ov5_021ED0A4 * param0, int param1, void * param2, int param3)
|
||||
{
|
||||
UnkStruct_02022BD8_2 * v0 = sub_02022C9C(param0->unk_F0, param2, param1, 1, 4);
|
||||
TextureResource * v0 = sub_02022C9C(param0->unk_F0, param2, param1, 1, 4);
|
||||
|
||||
GF_ASSERT(v0 != NULL);
|
||||
ov5_021EE134(param0, param1);
|
||||
|
|
@ -1944,7 +1944,7 @@ static UnkStruct_020216E0 * ov5_021EE454 (MapObject * param0, int param1, UnkFun
|
|||
{
|
||||
VecFx32 v0;
|
||||
int v1, v2, v3, v4;
|
||||
UnkStruct_02022BD8_2 * v5;
|
||||
TextureResource * v5;
|
||||
UnkStruct_020216E0 * v6;
|
||||
const UnkStruct_ov5_021ED2D0 * v7;
|
||||
UnkStruct_ov5_021ED0A4 * v8 = ov5_021EDEA8(param0);
|
||||
|
|
|
|||
|
|
@ -8811,8 +8811,8 @@ void ov9_02250780 (FieldSystem * fieldSystem)
|
|||
if (v0->unk_1EC0 == 1) {
|
||||
UnkStruct_ov9_0225074C * v1 = ov9_0224E39C(v0);
|
||||
UnkStruct_ov5_021ED0A4 * v2 = sub_0206285C(v0->fieldSystem->mapObjMan);
|
||||
UnkStruct_02022BD8 * v3 = ov5_021EDCB0(v2);
|
||||
UnkStruct_02022BD8_2 * v4 = sub_02022D98(v3, 0xe6);
|
||||
TextureResourceManager * v3 = ov5_021EDCB0(v2);
|
||||
TextureResource * v4 = sub_02022D98(v3, 0xe6);
|
||||
NNSGfdPlttKey v5 = sub_02022F14(v4);
|
||||
u32 v6 = NNS_GfdGetPlttKeyAddr(v5);
|
||||
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ typedef struct UnkStruct_ov66_02234798_t {
|
|||
typedef struct UnkStruct_ov66_02234548_t {
|
||||
ResourceManager * unk_00;
|
||||
ResourceManager * unk_04;
|
||||
UnkStruct_02022BD8 * unk_08;
|
||||
TextureResourceManager * unk_08;
|
||||
UnkStruct_02020C44 * unk_0C;
|
||||
UnkStruct_ov66_02234798 * unk_10;
|
||||
u32 unk_14;
|
||||
|
|
@ -168,7 +168,7 @@ UnkStruct_ov66_02234548 * ov66_022343A8 (u32 param0, u32 param1, u32 param2, u32
|
|||
|
||||
v0->unk_00 = ResourceManager_New(1, param2);
|
||||
v0->unk_04 = ResourceManager_New(2, param2);
|
||||
v0->unk_08 = sub_02022BD8(20, param2);
|
||||
v0->unk_08 = TextureResourceManager_New(20, param2);
|
||||
|
||||
{
|
||||
UnkStruct_ov5_021EDDAC v2;
|
||||
|
|
@ -212,7 +212,7 @@ UnkStruct_ov66_02234548 * ov66_022343A8 (u32 param0, u32 param1, u32 param2, u32
|
|||
}
|
||||
|
||||
{
|
||||
UnkStruct_02022BD8_2 * v9;
|
||||
TextureResource * v9;
|
||||
int v10;
|
||||
BOOL v11;
|
||||
|
||||
|
|
@ -266,7 +266,7 @@ void ov66_02234548 (UnkStruct_ov66_02234548 * param0)
|
|||
sub_02020BD0();
|
||||
}
|
||||
|
||||
sub_02022C1C(param0->unk_08);
|
||||
TextureResourceManager_Delete(param0->unk_08);
|
||||
ResourceManager_Delete(param0->unk_00);
|
||||
ResourceManager_Delete(param0->unk_04);
|
||||
Heap_FreeToHeap(param0->unk_10);
|
||||
|
|
@ -321,7 +321,7 @@ UnkStruct_ov66_02234798 * ov66_0223461C (UnkStruct_ov66_02234548 * param0, const
|
|||
UnkStruct_ov5_021DF84C v2;
|
||||
UnkStruct_ov5_021DF7F8 v3;
|
||||
Resource * v4;
|
||||
UnkStruct_02022BD8_2 * v5;
|
||||
TextureResource * v5;
|
||||
u32 v6;
|
||||
void * v7;
|
||||
const NNSG3dResTex * v8;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "constants/heap.h"
|
||||
#include "unk_02017728.h"
|
||||
#include "heap.h"
|
||||
#include "resource_manager.h"
|
||||
|
|
@ -11,7 +12,7 @@
|
|||
|
||||
typedef struct Resource {
|
||||
int id;
|
||||
void * data;
|
||||
void *data;
|
||||
} Resource;
|
||||
|
||||
typedef struct ResourceManager {
|
||||
|
|
@ -20,33 +21,33 @@ typedef struct ResourceManager {
|
|||
int resourceCount;
|
||||
} ResourceManager;
|
||||
|
||||
typedef struct UnkStruct_02022BD8_2_t {
|
||||
Resource * unk_00;
|
||||
typedef struct TextureResource {
|
||||
Resource *resource;
|
||||
NNSGfdTexKey unk_04;
|
||||
NNSGfdTexKey unk_08;
|
||||
NNSGfdPlttKey unk_0C;
|
||||
void * unk_10;
|
||||
void *textureData; // Only used when mode is TEX_RESOURCE_MODE_STRIPPED
|
||||
u16 unk_14;
|
||||
u16 unk_16;
|
||||
} UnkStruct_02022BD8_2;
|
||||
u16 mode;
|
||||
} TextureResource;
|
||||
|
||||
typedef struct UnkStruct_02022BD8_t {
|
||||
ResourceManager * unk_00;
|
||||
UnkStruct_02022BD8_2 * unk_04;
|
||||
} UnkStruct_02022BD8;
|
||||
typedef struct TextureResourceManager {
|
||||
ResourceManager *resMgr;
|
||||
TextureResource *textures;
|
||||
} TextureResourceManager;
|
||||
|
||||
static Resource *ResourceManager_AllocResource(ResourceManager *resMgr);
|
||||
static void Resource_Init(Resource *resource);
|
||||
static UnkStruct_02022BD8_2 * sub_02022F2C(const UnkStruct_02022BD8 * param0);
|
||||
static void sub_02022F5C(UnkStruct_02022BD8_2 * param0);
|
||||
static TextureResource * TextureResourceManager_AllocTexture(const TextureResourceManager * param0);
|
||||
static void TextureResource_Init(TextureResource * param0);
|
||||
static void sub_02022F98(const NNSG3dResTex * param0, NNSGfdTexKey * param1, NNSGfdTexKey * param2, NNSGfdPlttKey * param3);
|
||||
static NNSG3dResTex * sub_02022F70(const UnkStruct_02022BD8_2 * param0);
|
||||
static NNSG3dResTex * sub_02022F80(const UnkStruct_02022BD8_2 * param0);
|
||||
static void sub_02023008(NNSG3dResTex * param0, UnkStruct_02022BD8_2 * param1);
|
||||
static NNSG3dResTex * TextureResource_GetTexture(const TextureResource * param0);
|
||||
static NNSG3dResTex * TextureResource_GetTextureSafe(const TextureResource * param0);
|
||||
static void sub_02023008(NNSG3dResTex * param0, TextureResource * param1);
|
||||
static void sub_02023034(NNSG3dResTex * param0, NNSGfdTexKey param1, NNSGfdTexKey param2, NNSGfdPlttKey param3);
|
||||
static void sub_02023048(NNSG3dResTex * param0);
|
||||
static void * sub_02023060(void * param0, u32 param1);
|
||||
static u32 sub_02023084(const void * param0);
|
||||
static void * CreateStrippedTexture(void * param0, enum HeapId param1);
|
||||
static u32 GetStrippedTextureResourceSize(const void * param0);
|
||||
|
||||
ResourceManager *ResourceManager_New(s32 maxResources, enum HeapId heapID)
|
||||
{
|
||||
|
|
@ -199,65 +200,62 @@ static void Resource_Init(Resource *resource)
|
|||
resource->data = NULL;
|
||||
}
|
||||
|
||||
UnkStruct_02022BD8 * sub_02022BD8 (int param0, int param1)
|
||||
TextureResourceManager *TextureResourceManager_New(s32 maxTextures, enum HeapId heapID)
|
||||
{
|
||||
UnkStruct_02022BD8 * v0;
|
||||
int v1;
|
||||
TextureResourceManager *texMgr = Heap_AllocFromHeap(heapID, sizeof(TextureResourceManager));
|
||||
|
||||
v0 = Heap_AllocFromHeap(param1, sizeof(UnkStruct_02022BD8));
|
||||
texMgr->resMgr = ResourceManager_New(maxTextures, heapID);
|
||||
texMgr->textures = Heap_AllocFromHeap(heapID, sizeof(TextureResource) * maxTextures);
|
||||
|
||||
v0->unk_00 = ResourceManager_New(param0, param1);
|
||||
v0->unk_04 = Heap_AllocFromHeap(param1, sizeof(UnkStruct_02022BD8_2) * param0);
|
||||
|
||||
for (v1 = 0; v1 < param0; v1++) {
|
||||
sub_02022F5C(v0->unk_04 + v1);
|
||||
for (int i = 0; i < maxTextures; i++) {
|
||||
TextureResource_Init(texMgr->textures + i);
|
||||
}
|
||||
|
||||
return v0;
|
||||
return texMgr;
|
||||
}
|
||||
|
||||
void sub_02022C1C (UnkStruct_02022BD8 * param0)
|
||||
void TextureResourceManager_Delete(TextureResourceManager *texMgr)
|
||||
{
|
||||
GF_ASSERT(param0);
|
||||
GF_ASSERT(texMgr);
|
||||
|
||||
sub_02022D58(param0);
|
||||
ResourceManager_Delete(param0->unk_00);
|
||||
Heap_FreeToHeap(param0->unk_04);
|
||||
Heap_FreeToHeap(param0);
|
||||
sub_02022D58(texMgr);
|
||||
ResourceManager_Delete(texMgr->resMgr);
|
||||
Heap_FreeToHeap(texMgr->textures);
|
||||
Heap_FreeToHeap(texMgr);
|
||||
}
|
||||
|
||||
BOOL sub_02022C40 (const UnkStruct_02022BD8 * param0, int param1)
|
||||
BOOL TextureResourceManager_IsIDUnused(const TextureResourceManager *texMgr, int id)
|
||||
{
|
||||
GF_ASSERT(param0);
|
||||
return ResourceManager_IsIDUnused(param0->unk_00, param1);
|
||||
GF_ASSERT(texMgr);
|
||||
return ResourceManager_IsIDUnused(texMgr->resMgr, id);
|
||||
}
|
||||
|
||||
UnkStruct_02022BD8_2 * sub_02022C58 (const UnkStruct_02022BD8 * param0, void * param1, int param2, u32 param3, u32 param4)
|
||||
TextureResource *sub_02022C58(const TextureResourceManager *texMgr, void *data, int id, enum TextureResourceMode mode, enum HeapId heapID)
|
||||
{
|
||||
UnkStruct_02022BD8_2 * v0;
|
||||
void * v1;
|
||||
TextureResource * texResource;
|
||||
void * resourceData;
|
||||
|
||||
GF_ASSERT(param0);
|
||||
GF_ASSERT(texMgr);
|
||||
|
||||
v0 = sub_02022F2C(param0);
|
||||
v0->unk_16 = param3;
|
||||
texResource = TextureResourceManager_AllocTexture(texMgr);
|
||||
texResource->mode = mode;
|
||||
|
||||
if (v0->unk_16 == 1) {
|
||||
v1 = sub_02023060(param1, param4);
|
||||
v0->unk_10 = param1;
|
||||
if (texResource->mode == TEX_RESOURCE_MODE_STRIPPED) {
|
||||
resourceData = CreateStrippedTexture(data, heapID);
|
||||
texResource->textureData = data;
|
||||
} else {
|
||||
v1 = param1;
|
||||
v0->unk_10 = NULL;
|
||||
resourceData = data;
|
||||
texResource->textureData = NULL;
|
||||
}
|
||||
|
||||
v0->unk_00 = ResourceManager_AddResource(param0->unk_00, v1, param2);
|
||||
texResource->resource = ResourceManager_AddResource(texMgr->resMgr, resourceData, id);
|
||||
|
||||
return v0;
|
||||
return texResource;
|
||||
}
|
||||
|
||||
UnkStruct_02022BD8_2 * sub_02022C9C (UnkStruct_02022BD8 * param0, void * param1, int param2, u32 param3, int param4)
|
||||
TextureResource * sub_02022C9C (TextureResourceManager * param0, void * param1, int param2, u32 param3, int param4)
|
||||
{
|
||||
UnkStruct_02022BD8_2 * v0;
|
||||
TextureResource * v0;
|
||||
|
||||
v0 = sub_02022C58(param0, param1, param2, param3, param4);
|
||||
sub_02022EBC(v0);
|
||||
|
|
@ -265,20 +263,20 @@ UnkStruct_02022BD8_2 * sub_02022C9C (UnkStruct_02022BD8 * param0, void * param1,
|
|||
return v0;
|
||||
}
|
||||
|
||||
void sub_02022CB4 (UnkStruct_02022BD8 * param0, UnkStruct_02022BD8_2 * param1)
|
||||
void sub_02022CB4 (TextureResourceManager * param0, TextureResource * param1)
|
||||
{
|
||||
int v0;
|
||||
|
||||
GF_ASSERT(param0);
|
||||
GF_ASSERT(param1);
|
||||
|
||||
if ((param1->unk_16 == 1) && (param1->unk_14 == 0)) {
|
||||
Heap_FreeToHeap(param1->unk_10);
|
||||
param1->unk_16 = NULL;
|
||||
if ((param1->mode == 1) && (param1->unk_14 == 0)) {
|
||||
Heap_FreeToHeap(param1->textureData);
|
||||
param1->mode = NULL;
|
||||
}
|
||||
|
||||
if (param1->unk_00) {
|
||||
ResourceManager_RemoveResource(param0->unk_00, param1->unk_00);
|
||||
if (param1->resource) {
|
||||
ResourceManager_RemoveResource(param0->resMgr, param1->resource);
|
||||
}
|
||||
|
||||
if (param1->unk_04 != NNS_GFD_ALLOC_ERROR_TEXKEY) {
|
||||
|
|
@ -296,12 +294,12 @@ void sub_02022CB4 (UnkStruct_02022BD8 * param0, UnkStruct_02022BD8_2 * param1)
|
|||
GF_ASSERT(v0 == 0);
|
||||
}
|
||||
|
||||
sub_02022F5C(param1);
|
||||
TextureResource_Init(param1);
|
||||
}
|
||||
|
||||
void sub_02022D38 (UnkStruct_02022BD8 * param0, int param1)
|
||||
void sub_02022D38 (TextureResourceManager * param0, int param1)
|
||||
{
|
||||
UnkStruct_02022BD8_2 * v0;
|
||||
TextureResource * v0;
|
||||
|
||||
GF_ASSERT(param0);
|
||||
|
||||
|
|
@ -309,33 +307,33 @@ void sub_02022D38 (UnkStruct_02022BD8 * param0, int param1)
|
|||
sub_02022CB4(param0, v0);
|
||||
}
|
||||
|
||||
void sub_02022D58 (UnkStruct_02022BD8 * param0)
|
||||
void sub_02022D58 (TextureResourceManager * param0)
|
||||
{
|
||||
int v0;
|
||||
|
||||
GF_ASSERT(param0);
|
||||
GF_ASSERT(param0->unk_04);
|
||||
GF_ASSERT(param0->textures);
|
||||
|
||||
for (v0 = 0; v0 < param0->unk_00->maxResources; v0++) {
|
||||
if (param0->unk_04[v0].unk_00) {
|
||||
sub_02022CB4(param0, param0->unk_04 + v0);
|
||||
for (v0 = 0; v0 < param0->resMgr->maxResources; v0++) {
|
||||
if (param0->textures[v0].resource) {
|
||||
sub_02022CB4(param0, param0->textures + v0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
UnkStruct_02022BD8_2 * sub_02022D98 (const UnkStruct_02022BD8 * param0, int param1)
|
||||
TextureResource * sub_02022D98 (const TextureResourceManager *texMgr, int param1)
|
||||
{
|
||||
int v0;
|
||||
int v1;
|
||||
|
||||
GF_ASSERT(param0);
|
||||
GF_ASSERT(texMgr);
|
||||
|
||||
for (v0 = 0; v0 < param0->unk_00->maxResources; v0++) {
|
||||
if (param0->unk_04[v0].unk_00) {
|
||||
v1 = sub_02022DE0(param0->unk_04 + v0);
|
||||
for (v0 = 0; v0 < texMgr->resMgr->maxResources; v0++) {
|
||||
if (texMgr->textures[v0].resource) {
|
||||
v1 = TextureResource_GetID(texMgr->textures + v0);
|
||||
|
||||
if (v1 == param1) {
|
||||
return param0->unk_04 + v0;
|
||||
return texMgr->textures + v0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -343,19 +341,19 @@ UnkStruct_02022BD8_2 * sub_02022D98 (const UnkStruct_02022BD8 * param0, int para
|
|||
return NULL;
|
||||
}
|
||||
|
||||
int sub_02022DE0 (const UnkStruct_02022BD8_2 * param0)
|
||||
int TextureResource_GetID(const TextureResource *texResource)
|
||||
{
|
||||
GF_ASSERT(param0);
|
||||
return Resource_GetID(param0->unk_00);
|
||||
GF_ASSERT(texResource);
|
||||
return Resource_GetID(texResource->resource);
|
||||
}
|
||||
|
||||
NNSG3dResTex * sub_02022DF4 (const UnkStruct_02022BD8_2 * param0)
|
||||
NNSG3dResTex * sub_02022DF4 (const TextureResource * param0)
|
||||
{
|
||||
GF_ASSERT(param0);
|
||||
return sub_02022F70(param0);
|
||||
return TextureResource_GetTexture(param0);
|
||||
}
|
||||
|
||||
void sub_02022E08 (UnkStruct_02022BD8_2 * param0)
|
||||
void sub_02022E08 (TextureResource * param0)
|
||||
{
|
||||
NNSG3dResTex * v0;
|
||||
|
||||
|
|
@ -367,13 +365,13 @@ void sub_02022E08 (UnkStruct_02022BD8_2 * param0)
|
|||
return;
|
||||
}
|
||||
|
||||
v0 = sub_02022F80(param0);
|
||||
v0 = TextureResource_GetTextureSafe(param0);
|
||||
sub_02023008(v0, param0);
|
||||
}
|
||||
|
||||
void sub_02022E38 (UnkStruct_02022BD8 * param0, int param1)
|
||||
void sub_02022E38 (TextureResourceManager * param0, int param1)
|
||||
{
|
||||
UnkStruct_02022BD8_2 * v0;
|
||||
TextureResource * v0;
|
||||
|
||||
GF_ASSERT(param0);
|
||||
|
||||
|
|
@ -381,13 +379,13 @@ void sub_02022E38 (UnkStruct_02022BD8 * param0, int param1)
|
|||
sub_02022E08(v0);
|
||||
}
|
||||
|
||||
void sub_02022E54 (UnkStruct_02022BD8_2 * param0)
|
||||
void sub_02022E54 (TextureResource * param0)
|
||||
{
|
||||
void * v0;
|
||||
|
||||
GF_ASSERT(param0);
|
||||
|
||||
if (param0->unk_16 == 0) {
|
||||
if (param0->mode == 0) {
|
||||
GF_ASSERT(0);
|
||||
return;
|
||||
}
|
||||
|
|
@ -397,17 +395,17 @@ void sub_02022E54 (UnkStruct_02022BD8_2 * param0)
|
|||
return;
|
||||
}
|
||||
|
||||
sub_02023048(sub_02022F80(param0));
|
||||
sub_02023034(sub_02022F70(param0), param0->unk_04, param0->unk_08, param0->unk_0C);
|
||||
Heap_FreeToHeap(param0->unk_10);
|
||||
sub_02023048(TextureResource_GetTextureSafe(param0));
|
||||
sub_02023034(TextureResource_GetTexture(param0), param0->unk_04, param0->unk_08, param0->unk_0C);
|
||||
Heap_FreeToHeap(param0->textureData);
|
||||
|
||||
param0->unk_10 = NULL;
|
||||
param0->textureData = NULL;
|
||||
param0->unk_14 = 1;
|
||||
}
|
||||
|
||||
void sub_02022EA0 (UnkStruct_02022BD8 * param0, int param1)
|
||||
void sub_02022EA0 (TextureResourceManager * param0, int param1)
|
||||
{
|
||||
UnkStruct_02022BD8_2 * v0;
|
||||
TextureResource * v0;
|
||||
|
||||
GF_ASSERT(param0);
|
||||
|
||||
|
|
@ -415,7 +413,7 @@ void sub_02022EA0 (UnkStruct_02022BD8 * param0, int param1)
|
|||
sub_02022E54(v0);
|
||||
}
|
||||
|
||||
void sub_02022EBC (UnkStruct_02022BD8_2 * param0)
|
||||
void sub_02022EBC (TextureResource * param0)
|
||||
{
|
||||
NNSG3dResTex * v0;
|
||||
|
||||
|
|
@ -427,23 +425,23 @@ void sub_02022EBC (UnkStruct_02022BD8_2 * param0)
|
|||
return;
|
||||
}
|
||||
|
||||
v0 = sub_02022F80(param0);
|
||||
v0 = TextureResource_GetTextureSafe(param0);
|
||||
sub_02022F98(v0, ¶m0->unk_04, ¶m0->unk_08, ¶m0->unk_0C);
|
||||
}
|
||||
|
||||
NNSGfdTexKey sub_02022EF4 (const UnkStruct_02022BD8_2 * param0)
|
||||
NNSGfdTexKey sub_02022EF4 (const TextureResource * param0)
|
||||
{
|
||||
GF_ASSERT(param0);
|
||||
return param0->unk_04;
|
||||
}
|
||||
|
||||
NNSGfdTexKey sub_02022F04 (const UnkStruct_02022BD8_2 * param0)
|
||||
NNSGfdTexKey sub_02022F04 (const TextureResource * param0)
|
||||
{
|
||||
GF_ASSERT(param0);
|
||||
return param0->unk_08;
|
||||
}
|
||||
|
||||
NNSGfdPlttKey sub_02022F14 (const UnkStruct_02022BD8_2 * param0)
|
||||
NNSGfdPlttKey sub_02022F14 (const TextureResource * param0)
|
||||
{
|
||||
GF_ASSERT(param0);
|
||||
return param0->unk_0C;
|
||||
|
|
@ -451,57 +449,44 @@ NNSGfdPlttKey sub_02022F14 (const UnkStruct_02022BD8_2 * param0)
|
|||
|
||||
u32 sub_02022F24 (NNSG3dResFileHeader * param0)
|
||||
{
|
||||
return sub_02023084(param0);
|
||||
return GetStrippedTextureResourceSize(param0);
|
||||
}
|
||||
|
||||
static UnkStruct_02022BD8_2 * sub_02022F2C (const UnkStruct_02022BD8 * param0)
|
||||
static TextureResource * TextureResourceManager_AllocTexture(const TextureResourceManager *texMgr)
|
||||
{
|
||||
int v0;
|
||||
|
||||
for (v0 = 0; v0 < param0->unk_00->maxResources; v0++) {
|
||||
if (param0->unk_04[v0].unk_00 == NULL) {
|
||||
return param0->unk_04 + v0;
|
||||
for (int i = 0; i < texMgr->resMgr->maxResources; i++) {
|
||||
if (texMgr->textures[i].resource == NULL) {
|
||||
return texMgr->textures + i;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void sub_02022F5C (UnkStruct_02022BD8_2 * param0)
|
||||
static void TextureResource_Init(TextureResource *texResource)
|
||||
{
|
||||
param0->unk_00 = NULL;
|
||||
param0->unk_04 = NNS_GFD_ALLOC_ERROR_TEXKEY;
|
||||
param0->unk_08 = NNS_GFD_ALLOC_ERROR_TEXKEY;
|
||||
param0->unk_0C = NNS_GFD_ALLOC_ERROR_PLTTKEY;
|
||||
param0->unk_14 = 0;
|
||||
param0->unk_10 = NULL;
|
||||
param0->unk_14 = 0;
|
||||
texResource->resource = NULL;
|
||||
texResource->unk_04 = NNS_GFD_ALLOC_ERROR_TEXKEY;
|
||||
texResource->unk_08 = NNS_GFD_ALLOC_ERROR_TEXKEY;
|
||||
texResource->unk_0C = NNS_GFD_ALLOC_ERROR_PLTTKEY;
|
||||
texResource->unk_14 = 0;
|
||||
texResource->textureData = NULL;
|
||||
texResource->unk_14 = 0;
|
||||
}
|
||||
|
||||
static NNSG3dResTex * sub_02022F70 (const UnkStruct_02022BD8_2 * param0)
|
||||
// Assumes that the texture resource is in TEX_RESOURCE_MODE_NORMAL
|
||||
static NNSG3dResTex *TextureResource_GetTexture(const TextureResource *texResource)
|
||||
{
|
||||
void * v0;
|
||||
NNSG3dResTex * v1;
|
||||
|
||||
v0 = Resource_GetData(param0->unk_00);
|
||||
v1 = NNS_G3dGetTex(v0);
|
||||
|
||||
return v1;
|
||||
return NNS_G3dGetTex(Resource_GetData(texResource->resource));
|
||||
}
|
||||
|
||||
static NNSG3dResTex * sub_02022F80 (const UnkStruct_02022BD8_2 * param0)
|
||||
static NNSG3dResTex *TextureResource_GetTextureSafe(const TextureResource *texResource)
|
||||
{
|
||||
void * v0;
|
||||
NNSG3dResTex * v1;
|
||||
void *texData = texResource->mode == TEX_RESOURCE_MODE_NORMAL
|
||||
? Resource_GetData(texResource->resource)
|
||||
: texResource->textureData;
|
||||
|
||||
if (param0->unk_16 == 0) {
|
||||
v0 = Resource_GetData(param0->unk_00);
|
||||
} else {
|
||||
v0 = param0->unk_10;
|
||||
}
|
||||
|
||||
v1 = NNS_G3dGetTex(v0);
|
||||
return v1;
|
||||
return NNS_G3dGetTex(texData);
|
||||
}
|
||||
|
||||
static void sub_02022F98 (const NNSG3dResTex * param0, NNSGfdTexKey * param1, NNSGfdTexKey * param2, NNSGfdPlttKey * param3)
|
||||
|
|
@ -527,7 +512,7 @@ static void sub_02022F98 (const NNSG3dResTex * param0, NNSGfdTexKey * param1, NN
|
|||
}
|
||||
}
|
||||
|
||||
static void sub_02023008 (NNSG3dResTex * param0, UnkStruct_02022BD8_2 * param1)
|
||||
static void sub_02023008 (NNSG3dResTex * param0, TextureResource * param1)
|
||||
{
|
||||
sub_02023034(param0, param1->unk_04, param1->unk_08, param1->unk_0C);
|
||||
|
||||
|
|
@ -553,29 +538,22 @@ static void sub_02023048 (NNSG3dResTex * param0)
|
|||
v2 = NNS_G3dPlttReleasePlttKey(param0);
|
||||
}
|
||||
|
||||
static void * sub_02023060 (void * param0, u32 param1)
|
||||
// Duplicates a texture resource without the actual texture data
|
||||
static void *CreateStrippedTexture(void *resFile, enum HeapId heapID)
|
||||
{
|
||||
u32 v0;
|
||||
void * v1;
|
||||
u32 size = GetStrippedTextureResourceSize(resFile);
|
||||
void *duplicated = Heap_AllocFromHeap(heapID, size);
|
||||
memcpy(duplicated, resFile, size);
|
||||
|
||||
v0 = sub_02023084(param0);
|
||||
v1 = Heap_AllocFromHeap(param1, v0);
|
||||
|
||||
memcpy(v1, param0, v0);
|
||||
return v1;
|
||||
return duplicated;
|
||||
}
|
||||
|
||||
static u32 sub_02023084 (const void * param0)
|
||||
// Calculates the size of a texture resource without the actual texture data
|
||||
static u32 GetStrippedTextureResourceSize(const void *resFile)
|
||||
{
|
||||
NNSG3dResTex * v0;
|
||||
u8 * v1;
|
||||
u32 v2;
|
||||
NNSG3dResTex *texture = NNS_G3dGetTex(resFile);
|
||||
GF_ASSERT(texture);
|
||||
|
||||
v0 = NNS_G3dGetTex(param0);
|
||||
GF_ASSERT(v0);
|
||||
|
||||
v1 = (u8 *)v0 + v0->texInfo.ofsTex;
|
||||
v2 = (u32)(v1 - (u8 *)param0);
|
||||
|
||||
return v2;
|
||||
u8 *texData = (u8 *)texture + texture->texInfo.ofsTex;
|
||||
return (u32)(texData - (u8 *)resFile);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,29 +18,29 @@ typedef struct ResourceManager {
|
|||
int resourceCount;
|
||||
} UnkStruct_0202298C;
|
||||
|
||||
typedef struct UnkStruct_02022BD8_2_t {
|
||||
Resource * unk_00;
|
||||
typedef struct TextureResource {
|
||||
Resource * resource;
|
||||
NNSGfdTexKey unk_04;
|
||||
NNSGfdTexKey unk_08;
|
||||
NNSGfdPlttKey unk_0C;
|
||||
void * unk_10;
|
||||
void * textureData;
|
||||
u16 unk_14;
|
||||
u16 unk_16;
|
||||
} UnkStruct_02022BD8_2;
|
||||
u16 mode;
|
||||
} TextureResource;
|
||||
|
||||
typedef struct UnkStruct_02022BD8_t {
|
||||
UnkStruct_0202298C * unk_00;
|
||||
UnkStruct_02022BD8_2 * unk_04;
|
||||
} UnkStruct_02022BD8;
|
||||
typedef struct TextureResourceManager {
|
||||
UnkStruct_0202298C * resMgr;
|
||||
TextureResource * textures;
|
||||
} TextureResourceManager;
|
||||
|
||||
static Resource * sub_02022B90(UnkStruct_0202298C * param0);
|
||||
static void sub_02022BC0(Resource * param0);
|
||||
static UnkStruct_02022BD8_2 * sub_02022F2C(const UnkStruct_02022BD8 * param0);
|
||||
static void sub_02022F5C(UnkStruct_02022BD8_2 * param0);
|
||||
static TextureResource * sub_02022F2C(const TextureResourceManager * param0);
|
||||
static void sub_02022F5C(TextureResource * param0);
|
||||
static void sub_02022F98(const NNSG3dResTex * param0, NNSGfdTexKey * param1, NNSGfdTexKey * param2, NNSGfdPlttKey * param3);
|
||||
static NNSG3dResTex * sub_02022F70(const UnkStruct_02022BD8_2 * param0);
|
||||
static NNSG3dResTex * sub_02022F80(const UnkStruct_02022BD8_2 * param0);
|
||||
static void sub_02023008(NNSG3dResTex * param0, UnkStruct_02022BD8_2 * param1);
|
||||
static NNSG3dResTex * sub_02022F70(const TextureResource * param0);
|
||||
static NNSG3dResTex * sub_02022F80(const TextureResource * param0);
|
||||
static void sub_02023008(NNSG3dResTex * param0, TextureResource * param1);
|
||||
static void sub_02023034(NNSG3dResTex * param0, NNSGfdTexKey param1, NNSGfdTexKey param2, NNSGfdPlttKey param3);
|
||||
static void sub_02023048(NNSG3dResTex * param0);
|
||||
static void * sub_02023060(void * param0, u32 param1);
|
||||
|
|
@ -217,65 +217,65 @@ static void sub_02022BC0 (Resource * param0)
|
|||
param0->unk_04 = NULL;
|
||||
}
|
||||
|
||||
UnkStruct_02022BD8 * sub_02022BD8 (int param0, int param1)
|
||||
TextureResourceManager * TextureResourceManager_New (int param0, int param1)
|
||||
{
|
||||
UnkStruct_02022BD8 * v0;
|
||||
TextureResourceManager * v0;
|
||||
int v1;
|
||||
|
||||
v0 = Heap_AllocFromHeap(param1, sizeof(UnkStruct_02022BD8));
|
||||
v0 = Heap_AllocFromHeap(param1, sizeof(TextureResourceManager));
|
||||
|
||||
v0->unk_00 = ResourceManager_New(param0, param1);
|
||||
v0->unk_04 = Heap_AllocFromHeap(param1, sizeof(UnkStruct_02022BD8_2) * param0);
|
||||
v0->resMgr = ResourceManager_New(param0, param1);
|
||||
v0->textures = Heap_AllocFromHeap(param1, sizeof(TextureResource) * param0);
|
||||
|
||||
for (v1 = 0; v1 < param0; v1++) {
|
||||
sub_02022F5C(v0->unk_04 + v1);
|
||||
sub_02022F5C(v0->textures + v1);
|
||||
}
|
||||
|
||||
return v0;
|
||||
}
|
||||
|
||||
void sub_02022C1C (UnkStruct_02022BD8 * param0)
|
||||
void TextureResourceManager_Delete (TextureResourceManager * param0)
|
||||
{
|
||||
GF_ASSERT(param0);
|
||||
|
||||
sub_02022D58(param0);
|
||||
ResourceManager_Delete(param0->unk_00);
|
||||
Heap_FreeToHeap(param0->unk_04);
|
||||
ResourceManager_Delete(param0->resMgr);
|
||||
Heap_FreeToHeap(param0->textures);
|
||||
Heap_FreeToHeap(param0);
|
||||
}
|
||||
|
||||
BOOL sub_02022C40 (const UnkStruct_02022BD8 * param0, int param1)
|
||||
BOOL TextureResourceManager_IsIDUnused (const TextureResourceManager * param0, int param1)
|
||||
{
|
||||
GF_ASSERT(param0);
|
||||
return ResourceManager_IsIDUnused(param0->unk_00, param1);
|
||||
return ResourceManager_IsIDUnused(param0->resMgr, param1);
|
||||
}
|
||||
|
||||
UnkStruct_02022BD8_2 * sub_02022C58 (const UnkStruct_02022BD8 * param0, void * param1, int param2, u32 param3, u32 param4)
|
||||
TextureResource * sub_02022C58 (const TextureResourceManager * param0, void * param1, int param2, u32 param3, u32 param4)
|
||||
{
|
||||
UnkStruct_02022BD8_2 * v0;
|
||||
TextureResource * v0;
|
||||
void * v1;
|
||||
|
||||
GF_ASSERT(param0);
|
||||
|
||||
v0 = sub_02022F2C(param0);
|
||||
v0->unk_16 = param3;
|
||||
v0->mode = param3;
|
||||
|
||||
if (v0->unk_16 == 1) {
|
||||
if (v0->mode == 1) {
|
||||
v1 = sub_02023060(param1, param4);
|
||||
v0->unk_10 = param1;
|
||||
v0->textureData = param1;
|
||||
} else {
|
||||
v1 = param1;
|
||||
v0->unk_10 = NULL;
|
||||
v0->textureData = NULL;
|
||||
}
|
||||
|
||||
v0->unk_00 = ResourceManager_AddResource(param0->unk_00, v1, param2);
|
||||
v0->resource = ResourceManager_AddResource(param0->resMgr, v1, param2);
|
||||
|
||||
return v0;
|
||||
}
|
||||
|
||||
UnkStruct_02022BD8_2 * sub_02022C9C (UnkStruct_02022BD8 * param0, void * param1, int param2, u32 param3, int param4)
|
||||
TextureResource * sub_02022C9C (TextureResourceManager * param0, void * param1, int param2, u32 param3, int param4)
|
||||
{
|
||||
UnkStruct_02022BD8_2 * v0;
|
||||
TextureResource * v0;
|
||||
|
||||
v0 = sub_02022C58(param0, param1, param2, param3, param4);
|
||||
sub_02022EBC(v0);
|
||||
|
|
@ -283,20 +283,20 @@ UnkStruct_02022BD8_2 * sub_02022C9C (UnkStruct_02022BD8 * param0, void * param1,
|
|||
return v0;
|
||||
}
|
||||
|
||||
void sub_02022CB4 (UnkStruct_02022BD8 * param0, UnkStruct_02022BD8_2 * param1)
|
||||
void sub_02022CB4 (TextureResourceManager * param0, TextureResource * param1)
|
||||
{
|
||||
int v0;
|
||||
|
||||
GF_ASSERT(param0);
|
||||
GF_ASSERT(param1);
|
||||
|
||||
if ((param1->unk_16 == 1) && (param1->unk_14 == 0)) {
|
||||
Heap_FreeToHeap(param1->unk_10);
|
||||
param1->unk_16 = NULL;
|
||||
if ((param1->mode == 1) && (param1->unk_14 == 0)) {
|
||||
Heap_FreeToHeap(param1->textureData);
|
||||
param1->mode = NULL;
|
||||
}
|
||||
|
||||
if (param1->unk_00) {
|
||||
ResourceManager_RemoveResource(param0->unk_00, param1->unk_00);
|
||||
if (param1->resource) {
|
||||
ResourceManager_RemoveResource(param0->resMgr, param1->resource);
|
||||
}
|
||||
|
||||
if (param1->unk_04 != NNS_GFD_ALLOC_ERROR_TEXKEY) {
|
||||
|
|
@ -317,9 +317,9 @@ void sub_02022CB4 (UnkStruct_02022BD8 * param0, UnkStruct_02022BD8_2 * param1)
|
|||
sub_02022F5C(param1);
|
||||
}
|
||||
|
||||
void sub_02022D38 (UnkStruct_02022BD8 * param0, int param1)
|
||||
void sub_02022D38 (TextureResourceManager * param0, int param1)
|
||||
{
|
||||
UnkStruct_02022BD8_2 * v0;
|
||||
TextureResource * v0;
|
||||
|
||||
GF_ASSERT(param0);
|
||||
|
||||
|
|
@ -327,33 +327,33 @@ void sub_02022D38 (UnkStruct_02022BD8 * param0, int param1)
|
|||
sub_02022CB4(param0, v0);
|
||||
}
|
||||
|
||||
void sub_02022D58 (UnkStruct_02022BD8 * param0)
|
||||
void sub_02022D58 (TextureResourceManager * param0)
|
||||
{
|
||||
int v0;
|
||||
|
||||
GF_ASSERT(param0);
|
||||
GF_ASSERT(param0->unk_04);
|
||||
GF_ASSERT(param0->textures);
|
||||
|
||||
for (v0 = 0; v0 < param0->unk_00->unk_04; v0++) {
|
||||
if (param0->unk_04[v0].unk_00) {
|
||||
sub_02022CB4(param0, param0->unk_04 + v0);
|
||||
for (v0 = 0; v0 < param0->resMgr->unk_04; v0++) {
|
||||
if (param0->textures[v0].resource) {
|
||||
sub_02022CB4(param0, param0->textures + v0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
UnkStruct_02022BD8_2 * sub_02022D98 (const UnkStruct_02022BD8 * param0, int param1)
|
||||
TextureResource * sub_02022D98 (const TextureResourceManager * param0, int param1)
|
||||
{
|
||||
int v0;
|
||||
int v1;
|
||||
|
||||
GF_ASSERT(param0);
|
||||
|
||||
for (v0 = 0; v0 < param0->unk_00->unk_04; v0++) {
|
||||
if (param0->unk_04[v0].unk_00) {
|
||||
v1 = sub_02022DE0(param0->unk_04 + v0);
|
||||
for (v0 = 0; v0 < param0->resMgr->unk_04; v0++) {
|
||||
if (param0->textures[v0].resource) {
|
||||
v1 = TextureResource_GetID(param0->textures + v0);
|
||||
|
||||
if (v1 == param1) {
|
||||
return param0->unk_04 + v0;
|
||||
return param0->textures + v0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -361,19 +361,19 @@ UnkStruct_02022BD8_2 * sub_02022D98 (const UnkStruct_02022BD8 * param0, int para
|
|||
return NULL;
|
||||
}
|
||||
|
||||
int sub_02022DE0 (const UnkStruct_02022BD8_2 * param0)
|
||||
int TextureResource_GetID (const TextureResource * param0)
|
||||
{
|
||||
GF_ASSERT(param0);
|
||||
return Resource_GetID(param0->unk_00);
|
||||
return Resource_GetID(param0->resource);
|
||||
}
|
||||
|
||||
NNSG3dResTex * sub_02022DF4 (const UnkStruct_02022BD8_2 * param0)
|
||||
NNSG3dResTex * sub_02022DF4 (const TextureResource * param0)
|
||||
{
|
||||
GF_ASSERT(param0);
|
||||
return sub_02022F70(param0);
|
||||
}
|
||||
|
||||
void sub_02022E08 (UnkStruct_02022BD8_2 * param0)
|
||||
void sub_02022E08 (TextureResource * param0)
|
||||
{
|
||||
NNSG3dResTex * v0;
|
||||
|
||||
|
|
@ -389,9 +389,9 @@ void sub_02022E08 (UnkStruct_02022BD8_2 * param0)
|
|||
sub_02023008(v0, param0);
|
||||
}
|
||||
|
||||
void sub_02022E38 (UnkStruct_02022BD8 * param0, int param1)
|
||||
void sub_02022E38 (TextureResourceManager * param0, int param1)
|
||||
{
|
||||
UnkStruct_02022BD8_2 * v0;
|
||||
TextureResource * v0;
|
||||
|
||||
GF_ASSERT(param0);
|
||||
|
||||
|
|
@ -399,13 +399,13 @@ void sub_02022E38 (UnkStruct_02022BD8 * param0, int param1)
|
|||
sub_02022E08(v0);
|
||||
}
|
||||
|
||||
void sub_02022E54 (UnkStruct_02022BD8_2 * param0)
|
||||
void sub_02022E54 (TextureResource * param0)
|
||||
{
|
||||
void * v0;
|
||||
|
||||
GF_ASSERT(param0);
|
||||
|
||||
if (param0->unk_16 == 0) {
|
||||
if (param0->mode == 0) {
|
||||
GF_ASSERT(0);
|
||||
return;
|
||||
}
|
||||
|
|
@ -417,15 +417,15 @@ void sub_02022E54 (UnkStruct_02022BD8_2 * param0)
|
|||
|
||||
sub_02023048(sub_02022F80(param0));
|
||||
sub_02023034(sub_02022F70(param0), param0->unk_04, param0->unk_08, param0->unk_0C);
|
||||
Heap_FreeToHeap(param0->unk_10);
|
||||
Heap_FreeToHeap(param0->textureData);
|
||||
|
||||
param0->unk_10 = NULL;
|
||||
param0->textureData = NULL;
|
||||
param0->unk_14 = 1;
|
||||
}
|
||||
|
||||
void sub_02022EA0 (UnkStruct_02022BD8 * param0, int param1)
|
||||
void sub_02022EA0 (TextureResourceManager * param0, int param1)
|
||||
{
|
||||
UnkStruct_02022BD8_2 * v0;
|
||||
TextureResource * v0;
|
||||
|
||||
GF_ASSERT(param0);
|
||||
|
||||
|
|
@ -433,7 +433,7 @@ void sub_02022EA0 (UnkStruct_02022BD8 * param0, int param1)
|
|||
sub_02022E54(v0);
|
||||
}
|
||||
|
||||
void sub_02022EBC (UnkStruct_02022BD8_2 * param0)
|
||||
void sub_02022EBC (TextureResource * param0)
|
||||
{
|
||||
NNSG3dResTex * v0;
|
||||
|
||||
|
|
@ -449,19 +449,19 @@ void sub_02022EBC (UnkStruct_02022BD8_2 * param0)
|
|||
sub_02022F98(v0, ¶m0->unk_04, ¶m0->unk_08, ¶m0->unk_0C);
|
||||
}
|
||||
|
||||
NNSGfdTexKey sub_02022EF4 (const UnkStruct_02022BD8_2 * param0)
|
||||
NNSGfdTexKey sub_02022EF4 (const TextureResource * param0)
|
||||
{
|
||||
GF_ASSERT(param0);
|
||||
return param0->unk_04;
|
||||
}
|
||||
|
||||
NNSGfdTexKey sub_02022F04 (const UnkStruct_02022BD8_2 * param0)
|
||||
NNSGfdTexKey sub_02022F04 (const TextureResource * param0)
|
||||
{
|
||||
GF_ASSERT(param0);
|
||||
return param0->unk_08;
|
||||
}
|
||||
|
||||
NNSGfdPlttKey sub_02022F14 (const UnkStruct_02022BD8_2 * param0)
|
||||
NNSGfdPlttKey sub_02022F14 (const TextureResource * param0)
|
||||
{
|
||||
GF_ASSERT(param0);
|
||||
return param0->unk_0C;
|
||||
|
|
@ -472,50 +472,50 @@ u32 sub_02022F24 (NNSG3dResFileHeader * param0)
|
|||
return sub_02023084(param0);
|
||||
}
|
||||
|
||||
static UnkStruct_02022BD8_2 * sub_02022F2C (const UnkStruct_02022BD8 * param0)
|
||||
static TextureResource * sub_02022F2C (const TextureResourceManager * param0)
|
||||
{
|
||||
int v0;
|
||||
|
||||
for (v0 = 0; v0 < param0->unk_00->unk_04; v0++) {
|
||||
if (param0->unk_04[v0].unk_00 == NULL) {
|
||||
return param0->unk_04 + v0;
|
||||
for (v0 = 0; v0 < param0->resMgr->unk_04; v0++) {
|
||||
if (param0->textures[v0].resource == NULL) {
|
||||
return param0->textures + v0;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void sub_02022F5C (UnkStruct_02022BD8_2 * param0)
|
||||
static void sub_02022F5C (TextureResource * param0)
|
||||
{
|
||||
param0->unk_00 = NULL;
|
||||
param0->resource = NULL;
|
||||
param0->unk_04 = NNS_GFD_ALLOC_ERROR_TEXKEY;
|
||||
param0->unk_08 = NNS_GFD_ALLOC_ERROR_TEXKEY;
|
||||
param0->unk_0C = NNS_GFD_ALLOC_ERROR_PLTTKEY;
|
||||
param0->unk_14 = 0;
|
||||
param0->unk_10 = NULL;
|
||||
param0->textureData = NULL;
|
||||
param0->unk_14 = 0;
|
||||
}
|
||||
|
||||
static NNSG3dResTex * sub_02022F70 (const UnkStruct_02022BD8_2 * param0)
|
||||
static NNSG3dResTex * sub_02022F70 (const TextureResource * param0)
|
||||
{
|
||||
void * v0;
|
||||
NNSG3dResTex * v1;
|
||||
|
||||
v0 = Resource_GetData(param0->unk_00);
|
||||
v0 = Resource_GetData(param0->resource);
|
||||
v1 = NNS_G3dGetTex(v0);
|
||||
|
||||
return v1;
|
||||
}
|
||||
|
||||
static NNSG3dResTex * sub_02022F80 (const UnkStruct_02022BD8_2 * param0)
|
||||
static NNSG3dResTex * sub_02022F80 (const TextureResource * param0)
|
||||
{
|
||||
void * v0;
|
||||
NNSG3dResTex * v1;
|
||||
|
||||
if (param0->unk_16 == 0) {
|
||||
v0 = Resource_GetData(param0->unk_00);
|
||||
if (param0->mode == 0) {
|
||||
v0 = Resource_GetData(param0->resource);
|
||||
} else {
|
||||
v0 = param0->unk_10;
|
||||
v0 = param0->textureData;
|
||||
}
|
||||
|
||||
v1 = NNS_G3dGetTex(v0);
|
||||
|
|
@ -545,7 +545,7 @@ static void sub_02022F98 (const NNSG3dResTex * param0, NNSGfdTexKey * param1, NN
|
|||
}
|
||||
}
|
||||
|
||||
static void sub_02023008 (NNSG3dResTex * param0, UnkStruct_02022BD8_2 * param1)
|
||||
static void sub_02023008 (NNSG3dResTex * param0, TextureResource * param1)
|
||||
{
|
||||
sub_02023034(param0, param1->unk_04, param1->unk_08, param1->unk_0C);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user