summaryrefslogtreecommitdiff
path: root/arm9/src
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/src')
-rw-r--r--arm9/src/unk_020337E8.c50
-rw-r--r--arm9/src/unk_0205FA2C.c2
2 files changed, 51 insertions, 1 deletions
diff --git a/arm9/src/unk_020337E8.c b/arm9/src/unk_020337E8.c
new file mode 100644
index 00000000..856ba3b8
--- /dev/null
+++ b/arm9/src/unk_020337E8.c
@@ -0,0 +1,50 @@
+#include "unk_020337E8.h"
+#include "heap.h"
+
+extern struct DWC_Struct *FUN_020286EC(struct SaveBlock2 *sav2);
+extern struct DWC_Struct *FUN_02028228(struct DWC_Struct *);
+
+// DWC_init
+extern s32 DWC_Init(s32);
+
+// DWC_account
+extern void DWC_CreateExchangeToken(struct DWC_Struct *, struct DWC_token *);
+extern void DWC_CreateUserData(struct DWC_Struct *, s32);
+extern void DWC_ClearDirtyFlag(struct DWC_Struct *);
+extern BOOL DWC_CheckHasProfile(struct DWC_Struct *);
+extern BOOL DWC_CheckValidConsole(struct DWC_Struct *);
+extern BOOL DWC_CheckUserData(struct DWC_Struct *);
+extern s32 DWC_GetGsProfileId(struct DWC_Struct *, struct DWC_token *);
+
+THUMB_FUNC s32 FUN_020337E8(u32 heap_id)
+{
+ s32 ret = (s32)AllocFromHeap(heap_id, 0x720);
+ s32 ret1 = DWC_Init((ret + 0x1F) & ~0x1F);
+ FreeToHeap((void*)ret);
+ return ret1;
+}
+
+THUMB_FUNC void FUN_0203380C(struct DWC_Struct *dwc)
+{
+ struct DWC_Struct * dwc1 = FUN_02028228(dwc);
+ if(!DWC_CheckUserData(dwc1))
+ {
+ DWC_CreateUserData(dwc1, 0x4144414A);
+ DWC_ClearDirtyFlag(dwc1);
+ }
+}
+
+THUMB_FUNC s32 FUN_02033830(struct DWC_Struct *dwc)
+{
+ struct DWC_token token;
+
+ struct DWC_Struct * dwc1 = FUN_02028228(dwc);
+ DWC_CreateExchangeToken(dwc1, &token);
+ return DWC_GetGsProfileId(dwc1, &token);
+}
+
+THUMB_FUNC BOOL FUN_0203384C(struct SaveBlock2 *sav2)
+{
+ struct DWC_Struct * dwc = FUN_02028228(FUN_020286EC(sav2));
+ return (DWC_CheckHasProfile(dwc) && DWC_CheckValidConsole(dwc));
+}
diff --git a/arm9/src/unk_0205FA2C.c b/arm9/src/unk_0205FA2C.c
index 9aa4460f..cabd756e 100644
--- a/arm9/src/unk_0205FA2C.c
+++ b/arm9/src/unk_0205FA2C.c
@@ -1,11 +1,11 @@
#include "unk_0205FA2C.h"
+#include "unk_020337E8.h"
extern void *UNK_020F96DC;
extern void *UNK_020FA6E8;
extern u32 FUN_02079C70(struct SaveBlock2 *sav2);
extern void FUN_0207B000(struct UnkPlayerStruct2_0205FA2C *ptr, const u8 param1[12]);
extern void FUN_0207C2A4(struct UnkPlayerStruct2_0205FA2C *ptr, struct PlayerData *player_data);
-extern u32 FUN_0203384C(struct SaveBlock2 *sav2);
extern u32 *FUN_02038790(struct UnkSavStruct80 *param0, u16 param1, u16 param2);
extern u16 *GetVarPointer(struct UnkSavStruct80 *arg, u16);
extern u16 MOD06_02244660(struct UnkSavStruct80 *param0, u8 *param1);