summaryrefslogtreecommitdiff
path: root/arm9/src
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/src')
-rw-r--r--arm9/src/gf_gfx_loader.c41
-rw-r--r--arm9/src/unk_02016B94.c2
2 files changed, 42 insertions, 1 deletions
diff --git a/arm9/src/gf_gfx_loader.c b/arm9/src/gf_gfx_loader.c
new file mode 100644
index 00000000..db2614ab
--- /dev/null
+++ b/arm9/src/gf_gfx_loader.c
@@ -0,0 +1,41 @@
+#include "global.h"
+#include "filesystem.h"
+#include "NNS_g2d.h"
+#include "unk_02016B94.h"
+
+void * UncompressFromNarc(NarcId narcId, s32 memberNo, BOOL isCompressed, u32 heap_id, BOOL allocAtEnd);
+
+THUMB_FUNC u32 FUN_0200687C(NarcId narcId, s32 memberNo, struct UnkStruct_02016B94_2 * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id)
+{
+ NNSG2dCharacterData * pCharData;
+ void * r7 = UncompressFromNarc(narcId, memberNo, isCompressed, heap_id, FALSE);
+ if (r7 != NULL)
+ {
+ if (NNS_G2dGetUnpackedBGCharacterData(r7, &pCharData))
+ {
+ if (szByte == 0)
+ szByte = pCharData->szByte;
+ FUN_02017E14(unkStruct02016B94_2, (u8)a3, pCharData->pRawData, szByte, a4);
+ }
+ FreeToHeap(r7);
+ }
+ return szByte;
+}
+
+THUMB_FUNC void FUN_020068C8(NarcId narcId, s32 memberNo, struct UnkStruct_02016B94_2 * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id)
+{
+ NNSG2dScreenData * pScreenData;
+ void * r7 = UncompressFromNarc(narcId, memberNo, isCompressed, heap_id, TRUE);
+ if (r7 != NULL)
+ {
+ if (NNS_G2dGetUnpackedScreenData(r7, &pScreenData))
+ {
+ if (szByte == 0)
+ szByte = pScreenData->szByte;
+ if (FUN_0201886C(unkStruct02016B94_2, a3) != NULL)
+ FUN_02017DFC(unkStruct02016B94_2, (u8)a3, pScreenData->rawData, szByte);
+ FUN_02017CE8(unkStruct02016B94_2, (u8)a3, pScreenData->rawData, szByte, a4);
+ }
+ FreeToHeap(r7);
+ }
+}
diff --git a/arm9/src/unk_02016B94.c b/arm9/src/unk_02016B94.c
index e01b3133..6a9dd194 100644
--- a/arm9/src/unk_02016B94.c
+++ b/arm9/src/unk_02016B94.c
@@ -3361,7 +3361,7 @@ THUMB_FUNC u8 (*FUN_02018848(u8 *param0, u32 param1, u8 param2, u32 heap_id))[2]
return ptr;
}
-THUMB_FUNC void *FUN_0201886C(struct UnkStruct_02016B94_2 *param0, u32 param1)
+THUMB_FUNC void *FUN_0201886C(struct UnkStruct_02016B94_2 *param0, u8 param1)
{
return param0->unk08[param1].unk08;
}