From 87a52afbb4b9a2cb8c29bde3078e9800198df084 Mon Sep 17 00:00:00 2001 From: red031000 Date: Sun, 1 Nov 2020 21:53:36 +0000 Subject: decompile MOD59_Init --- arm9/src/overlay_manager.c | 79 ++++++++++++++++++++++++++++++++++++++++++ arm9/src/unk_02006234.c | 86 ---------------------------------------------- 2 files changed, 79 insertions(+), 86 deletions(-) create mode 100644 arm9/src/overlay_manager.c delete mode 100644 arm9/src/unk_02006234.c (limited to 'arm9/src') diff --git a/arm9/src/overlay_manager.c b/arm9/src/overlay_manager.c new file mode 100644 index 00000000..a59e15ac --- /dev/null +++ b/arm9/src/overlay_manager.c @@ -0,0 +1,79 @@ +#include "global.h" +#include "main.h" +#include "poke_overlay.h" +#include "heap.h" +#include "overlay_manager.h" + +THUMB_FUNC struct UnkStruct_02006234 * OverlayManager_new(struct Unk21DBE18 * ovly_mgr, int * a1, u32 heap_id) +{ + struct UnkStruct_02006234 * ret = (struct UnkStruct_02006234 *)AllocFromHeap(heap_id, sizeof(struct UnkStruct_02006234)); + ret->ovly_mgr = *ovly_mgr; + ret->unk10 = 0; + ret->unk14 = 0; + ret->unk18 = a1; + ret->unk1C = NULL; + ret->unk20 = 0; + ret->unk24 = 0; + return ret; +} + +THUMB_FUNC void OverlayManager_delete(struct UnkStruct_02006234 * a0) +{ + FreeToHeap(a0); +} + +THUMB_FUNC void * OverlayManager_CreateAndGetData(struct UnkStruct_02006234 * a0, u32 size, u32 heap_id) +{ + return a0->unk1C = AllocFromHeap(heap_id, size); +} + +THUMB_FUNC void * OverlayManager_GetData(struct UnkStruct_02006234 * a0) +{ + return a0->unk1C; +} + +THUMB_FUNC void OverlayManager_FreeData(struct UnkStruct_02006234 * a0) +{ + FreeToHeap(a0->unk1C); + a0->unk1C = NULL; +} + +THUMB_FUNC int * OverlayManager_GetField18(struct UnkStruct_02006234 * a0) +{ + return a0->unk18; +} + +THUMB_FUNC BOOL OverlayManager_Run(struct UnkStruct_02006234 * a0) +{ + switch (a0->unk10) + { + case 0: + if (a0->ovly_mgr.ovly != SDK_OVERLAY_INVALID_ID) + HandleLoadOverlay(a0->ovly_mgr.ovly, 2); + a0->unk10 = 1; + // fallthrough + case 1: + if (a0->ovly_mgr.unk0(a0, &a0->unk14) == TRUE) + { + a0->unk10 = 2; + a0->unk14 = 0; + } + break; + case 2: + if (a0->ovly_mgr.unk4(a0, &a0->unk14) == TRUE) + { + a0->unk10 = 3; + a0->unk14 = 0; + } + break; + case 3: + if (a0->ovly_mgr.unk8(a0, &a0->unk14) == TRUE) + { + if (a0->ovly_mgr.ovly != SDK_OVERLAY_INVALID_ID) + UnloadOverlayByID(a0->ovly_mgr.ovly); + return TRUE; + } + break; + } + return FALSE; +} diff --git a/arm9/src/unk_02006234.c b/arm9/src/unk_02006234.c deleted file mode 100644 index a493311d..00000000 --- a/arm9/src/unk_02006234.c +++ /dev/null @@ -1,86 +0,0 @@ -#include "global.h" -#include "main.h" -#include "poke_overlay.h" -#include "heap.h" - -struct UnkStruct_02006234 * OverlayManager_new(struct Unk21DBE18 * ovly_mgr, int * a1, u32 heap_id); //todo header? -void OverlayManager_delete(struct UnkStruct_02006234 * a0); -void * OverlayManager_CreateAndGetData(struct UnkStruct_02006234 * a0, u32 size, u32 heap_id); -void * OverlayManager_GetData(struct UnkStruct_02006234 * a0); -void OverlayManager_FreeData(struct UnkStruct_02006234 * a0); -int * OverlayManager_GetField18(struct UnkStruct_02006234 * a0); -BOOL OverlayManager_Run(struct UnkStruct_02006234 * a0); - -THUMB_FUNC struct UnkStruct_02006234 * OverlayManager_new(struct Unk21DBE18 * ovly_mgr, int * a1, u32 heap_id) -{ - struct UnkStruct_02006234 * ret = (struct UnkStruct_02006234 *)AllocFromHeap(heap_id, sizeof(struct UnkStruct_02006234)); - ret->ovly_mgr = *ovly_mgr; - ret->unk10 = 0; - ret->unk14 = 0; - ret->unk18 = a1; - ret->unk1C = NULL; - ret->unk20 = 0; - ret->unk24 = 0; - return ret; -} - -THUMB_FUNC void OverlayManager_delete(struct UnkStruct_02006234 * a0) -{ - FreeToHeap(a0); -} - -THUMB_FUNC void * OverlayManager_CreateAndGetData(struct UnkStruct_02006234 * a0, u32 size, u32 heap_id) -{ - return a0->unk1C = AllocFromHeap(heap_id, size); -} - -THUMB_FUNC void * OverlayManager_GetData(struct UnkStruct_02006234 * a0) -{ - return a0->unk1C; -} - -THUMB_FUNC void OverlayManager_FreeData(struct UnkStruct_02006234 * a0) -{ - FreeToHeap(a0->unk1C); - a0->unk1C = NULL; -} - -THUMB_FUNC int * OverlayManager_GetField18(struct UnkStruct_02006234 * a0) -{ - return a0->unk18; -} - -THUMB_FUNC BOOL OverlayManager_Run(struct UnkStruct_02006234 * a0) -{ - switch (a0->unk10) - { - case 0: - if (a0->ovly_mgr.ovly != SDK_OVERLAY_INVALID_ID) - HandleLoadOverlay(a0->ovly_mgr.ovly, 2); - a0->unk10 = 1; - // fallthrough - case 1: - if (a0->ovly_mgr.unk0(a0, &a0->unk14) == TRUE) - { - a0->unk10 = 2; - a0->unk14 = 0; - } - break; - case 2: - if (a0->ovly_mgr.unk4(a0, &a0->unk14) == TRUE) - { - a0->unk10 = 3; - a0->unk14 = 0; - } - break; - case 3: - if (a0->ovly_mgr.unk8(a0, &a0->unk14) == TRUE) - { - if (a0->ovly_mgr.ovly != SDK_OVERLAY_INVALID_ID) - UnloadOverlayByID(a0->ovly_mgr.ovly); - return TRUE; - } - break; - } - return FALSE; -} -- cgit v1.2.3