split functions into proper files

This commit is contained in:
Lincoln-LM
2024-09-04 14:14:41 -06:00
parent 4fbff01e15
commit ee13d30c34
2 changed files with 165 additions and 165 deletions

View File

@@ -12,24 +12,9 @@ extern void ov20_022529A0(u32);
extern void ov20_0225298C(u32);
extern BOOL ov20_02252C08(u32);
extern BOOL TouchScreen_GetTapState(u32*, u32*);
extern _s32_div_f(void);
extern void ov20_022536F4(void*, u32);
extern u32 ov20_02252D34();
extern u32 ov20_02252D24();
extern BOOL sub_0208946C(u32, void*, u32);
extern void sub_02089444(u32, void*, u32);
extern void ov20_02252D7C(u32, u32);
extern void ov20_02253F28(u32*, u32);
extern void Poketch_PlaySoundEffect(u32);
extern void* ov20_022538A0(void*);
extern void ov20_02253888(u32*, void*);
extern BOOL ov20_022537B8(void*);
extern BOOL ov20_02253794(void*, u8);
extern void ov20_022537E0(const u32*, u32, void*, void*, void*, u32, u32);
extern BOOL ov20_02253FBC(void*, NarcId, u32, u32, HeapID);
extern u32* ov20_02253E74(u32, void*, void*);
extern void ov20_02254014(void*);
extern void ov20_02253F14(u32, void*);
extern const WindowTemplate ov24_0225510C;
extern const BgTemplate ov24_02255114;
@@ -292,152 +277,3 @@ BOOL ov24_02254CA0(UnkSubStructOverlay24** arg0, UnkSubStructOverlay24_1* arg1)
}
return FALSE;
}
BOOL ov24_02254D00(UnkSubStructOverlay24* arg0) {
arg0->window = AllocWindows(HEAP_ID_POKETCH_APP, 1);
if (arg0->window) {
AddWindow(arg0->config, arg0->window, &ov24_0225510C);
if (sub_0208946C(arg0->unk0->unk16E8, arg0->window->pixelBuffer, 0x2f80) == 0) {
FillWindowPixelBuffer(arg0->window, MEMO_PAD_PIXEL_TYPE_EMPTY);
}
return TRUE;
}
return FALSE;
}
void ov24_02254D48(UnkSubStructOverlay24* arg0) {
if (arg0) {
GF_ASSERT(GF_heap_c_dummy_return_true(HEAP_ID_POKETCH_MAIN));
if (arg0->window) {
sub_02089444(arg0->unk0->unk16E8, arg0->window->pixelBuffer, 0x2f80);
RemoveWindow(arg0->window);
FreeToHeap(arg0->window);
}
FreeToHeap(arg0);
}
}
void ov24_02254D8C(UnkSubStructOverlay24* arg0, u32 arg1) {
ov20_022537E0(ov24_0225516C, arg1, arg0, arg0->unk0, &(arg0->unk8), 2, 8);
}
BOOL ov24_02254DB0(UnkSubStructOverlay24* arg0, u8 arg1) {
return (*ov20_02253794)(&(arg0->unk8), arg1);
}
BOOL ov24_02254DBC(UnkSubStructOverlay24* arg0) {
return (*ov20_022537B8)(&(arg0->unk8));
}
void ov24_02254DC8(void* arg0) {
ov20_02253888(&(((UnkSubStructOverlay24*)ov20_022538A0(arg0))->unk8), arg0);
}
void ov24_02254DDC(void* arg0, void* arg1) {
GF_ASSERT(GF_heap_c_dummy_return_true(HEAP_ID_POKETCH_APP));
GXSDispCnt dispcnt;
UnkSubStructOverlay24* v0 = ov20_022538A0(arg1);
InitBgFromTemplate(v0->config, 6, &ov24_02255114, 0);
InitBgFromTemplate(v0->config, 7, &ov24_02255130, 0);
GF_ASSERT(GF_heap_c_dummy_return_true(HEAP_ID_POKETCH_APP));
GfGfxLoader_LoadCharData(NARC_GRAPHIC_POKETCH,0x1e,v0->config,6,0,0,1,HEAP_ID_POKETCH_APP);
GfGfxLoader_LoadScrnData(NARC_GRAPHIC_POKETCH,0x1f,v0->config,6,0,0,1,HEAP_ID_POKETCH_APP);
ov20_02252D7C(0,0);
GF_ASSERT(GF_heap_c_dummy_return_true(HEAP_ID_POKETCH_APP));
ov24_02254D00(v0);
CopyWindowToVram(v0->window);
GF_ASSERT(GF_heap_c_dummy_return_true(HEAP_ID_POKETCH_APP));
ov24_02255078(v0);
GF_ASSERT(GF_heap_c_dummy_return_true(HEAP_ID_POKETCH_APP));
BgCommitTilemapBufferToVram(v0->config, 7);
dispcnt.raw = reg_GXS_DB_DISPCNT;
GXS_SetVisiblePlane(dispcnt.visiblePlane | GX_PLANEMASK_BG2 | GX_PLANEMASK_OBJ);
ov24_02254DC8(arg1);
GF_ASSERT(GF_heap_c_dummy_return_true(HEAP_ID_POKETCH_APP));
}
void ov24_02254EE0(u32 arg0, void* arg1) {
UnkSubStructOverlay24* v0 = ov20_022538A0(arg1);
if (v0->unk0->stylusType == STYLUS_TYPE_DRAW) {
ov20_02253F28(v0->unk68[0], 0);
ov20_02253F28(v0->unk68[1], 3);
} else {
ov20_02253F28(v0->unk68[0], 1);
ov20_02253F28(v0->unk68[1], 2);
}
Poketch_PlaySoundEffect(1635);
ov24_02254DC8(arg1);
}
void ov24_02254F28(int arg0, void* arg1) {
UnkSubStructOverlay24* a0 = ov20_022538A0(arg1);
CopyWindowPixelsToVram_TextMode(a0->window);
ov24_02254DC8(arg1);
}
void ov24_02254F40(u32 arg0, void* arg1) {
UnkSubStructOverlay24 *v0 = ov20_022538A0(arg1);
UnkSubStructOverlay24_1* v1 = v0->unk0;
if (v1->stylusType == STYLUS_TYPE_ERASE) {
int width, height;
height = 8;
width = 8;
int x = v1->lastModifiedX * 2 - 4;
int y = v1->lastModifiedY * 2 - 4;
if (x < 0) {
width += x;
x = 0;
}
if (y < 0) {
height += y;
y = 0;
}
FillWindowPixelRect(v0->window, MEMO_PAD_PIXEL_TYPE_EMPTY, x, y, width, height);
int a = (x >> 3) + (y >> 3) * 0x14;
int e = ((x + width - 1) >> 3) - (x >> 3) + 1;
int b = ((y + height - 1) >> 3) - (y >> 3) + 1;
while (b--) {
GXS_LoadBG3Char((u8*)(v0->window->pixelBuffer) + (a * 0x20), (a + 0xc) * 0x20, e * 0x20);
a += 0x14;
}
} else {
int height = 2;
int width = 2;
int x = v1->lastModifiedX * 2;
int y = v1->lastModifiedY * 2;
int a = (x >> 3) + ((y >> 3) * 0x14);
FillWindowPixelRect(v0->window, MEMO_PAD_PIXEL_TYPE_FILLED, x, y, width, height);
GXS_LoadBG3Char((u8*)(v0->window->pixelBuffer) + a * 0x20, (a + 0xc) * 0x20, 0x20);
}
ov24_02254DC8(arg1);
}
void ov24_02255038(u32 arg0, void* arg1) {
UnkSubStructOverlay24* v0 = ov20_022538A0(arg1);
CopyWindowPixelsToVram_TextMode(v0->window);
ov24_02254DC8(arg1);
}
void ov24_02255050(u32 arg0, void* arg1) {
UnkSubStructOverlay24* v0 = ov20_022538A0(arg1);
ov24_022550D4(v0);
FreeBgTilemapBuffer(v0->config, 6);
FreeBgTilemapBuffer(v0->config, 7);
ov24_02254DC8(arg1);
}
void ov24_02255078(UnkSubStructOverlay24* arg0) {
GfGfxLoader_LoadWholePalette(NARC_GRAPHIC_POKETCH, 0x20, 1, 0, 0, 1, HEAP_ID_POKETCH_APP);
if (ov20_02253FBC(&(arg0->unk54), NARC_GRAPHIC_POKETCH, 0x21, 0x22, HEAP_ID_POKETCH_APP)) {
for (int i = 0; i < 2; i++) {
arg0->unk68[i] = ov20_02253E74(arg0->unk50, &(ov24_0225514C[i]), &(arg0->unk54));
}
}
}
void ov24_022550D4(UnkSubStructOverlay24* arg0) {
for (u32 i = 0; i < 2; i++) {
ov20_02253F14(arg0->unk50, arg0->unk68[i]);
}
ov20_02254014(&(arg0->unk54));
}

View File

@@ -4,6 +4,21 @@
#include "gf_gfx_loader.h"
#include "overlay_24.h"
extern BOOL sub_0208946C(u32, void*, u32);
extern void sub_02089444(u32, void*, u32);
extern void ov20_02252D7C(u32, u32);
extern void ov20_02253F28(u32*, u32);
extern void Poketch_PlaySoundEffect(u32);
extern void* ov20_022538A0(void*);
extern void ov20_02253888(u32*, void*);
extern BOOL ov20_022537B8(void*);
extern BOOL ov20_02253794(void*, u8);
extern void ov20_022537E0(const u32*, u32, void*, void*, void*, u32, u32);
extern BOOL ov20_02253FBC(void*, NarcId, u32, u32, HeapID);
extern u32* ov20_02253E74(u32, void*, void*);
extern void ov20_02254014(void*);
extern void ov20_02253F14(u32, void*);
const WindowTemplate ov24_0225510C = {
.bgId = GF_BG_LYR_SUB_3,
.left = 2,
@@ -60,4 +75,153 @@ const u32 ov24_0225516C[] = {
0x04, (u32)ov24_02255038, 0x00,
0x05, (u32)ov24_02255050, 0x00,
0x00, 0x00000000, 0x00,
};
};
BOOL ov24_02254D00(UnkSubStructOverlay24* arg0) {
arg0->window = AllocWindows(HEAP_ID_POKETCH_APP, 1);
if (arg0->window) {
AddWindow(arg0->config, arg0->window, &ov24_0225510C);
if (sub_0208946C(arg0->unk0->unk16E8, arg0->window->pixelBuffer, 0x2f80) == 0) {
FillWindowPixelBuffer(arg0->window, MEMO_PAD_PIXEL_TYPE_EMPTY);
}
return TRUE;
}
return FALSE;
}
void ov24_02254D48(UnkSubStructOverlay24* arg0) {
if (arg0) {
GF_ASSERT(GF_heap_c_dummy_return_true(HEAP_ID_POKETCH_MAIN));
if (arg0->window) {
sub_02089444(arg0->unk0->unk16E8, arg0->window->pixelBuffer, 0x2f80);
RemoveWindow(arg0->window);
FreeToHeap(arg0->window);
}
FreeToHeap(arg0);
}
}
void ov24_02254D8C(UnkSubStructOverlay24* arg0, u32 arg1) {
ov20_022537E0(ov24_0225516C, arg1, arg0, arg0->unk0, &(arg0->unk8), 2, 8);
}
BOOL ov24_02254DB0(UnkSubStructOverlay24* arg0, u8 arg1) {
return (*ov20_02253794)(&(arg0->unk8), arg1);
}
BOOL ov24_02254DBC(UnkSubStructOverlay24* arg0) {
return (*ov20_022537B8)(&(arg0->unk8));
}
void ov24_02254DC8(void* arg0) {
ov20_02253888(&(((UnkSubStructOverlay24*)ov20_022538A0(arg0))->unk8), arg0);
}
void ov24_02254DDC(void* arg0, void* arg1) {
GF_ASSERT(GF_heap_c_dummy_return_true(HEAP_ID_POKETCH_APP));
GXSDispCnt dispcnt;
UnkSubStructOverlay24* v0 = ov20_022538A0(arg1);
InitBgFromTemplate(v0->config, 6, &ov24_02255114, 0);
InitBgFromTemplate(v0->config, 7, &ov24_02255130, 0);
GF_ASSERT(GF_heap_c_dummy_return_true(HEAP_ID_POKETCH_APP));
GfGfxLoader_LoadCharData(NARC_GRAPHIC_POKETCH,0x1e,v0->config,6,0,0,1,HEAP_ID_POKETCH_APP);
GfGfxLoader_LoadScrnData(NARC_GRAPHIC_POKETCH,0x1f,v0->config,6,0,0,1,HEAP_ID_POKETCH_APP);
ov20_02252D7C(0,0);
GF_ASSERT(GF_heap_c_dummy_return_true(HEAP_ID_POKETCH_APP));
ov24_02254D00(v0);
CopyWindowToVram(v0->window);
GF_ASSERT(GF_heap_c_dummy_return_true(HEAP_ID_POKETCH_APP));
ov24_02255078(v0);
GF_ASSERT(GF_heap_c_dummy_return_true(HEAP_ID_POKETCH_APP));
BgCommitTilemapBufferToVram(v0->config, 7);
dispcnt.raw = reg_GXS_DB_DISPCNT;
GXS_SetVisiblePlane(dispcnt.visiblePlane | GX_PLANEMASK_BG2 | GX_PLANEMASK_OBJ);
ov24_02254DC8(arg1);
GF_ASSERT(GF_heap_c_dummy_return_true(HEAP_ID_POKETCH_APP));
}
void ov24_02254EE0(u32 arg0, void* arg1) {
UnkSubStructOverlay24* v0 = ov20_022538A0(arg1);
if (v0->unk0->stylusType == STYLUS_TYPE_DRAW) {
ov20_02253F28(v0->unk68[0], 0);
ov20_02253F28(v0->unk68[1], 3);
} else {
ov20_02253F28(v0->unk68[0], 1);
ov20_02253F28(v0->unk68[1], 2);
}
Poketch_PlaySoundEffect(1635);
ov24_02254DC8(arg1);
}
void ov24_02254F28(int arg0, void* arg1) {
UnkSubStructOverlay24* a0 = ov20_022538A0(arg1);
CopyWindowPixelsToVram_TextMode(a0->window);
ov24_02254DC8(arg1);
}
void ov24_02254F40(u32 arg0, void* arg1) {
UnkSubStructOverlay24 *v0 = ov20_022538A0(arg1);
UnkSubStructOverlay24_1* v1 = v0->unk0;
if (v1->stylusType == STYLUS_TYPE_ERASE) {
int width, height;
height = 8;
width = 8;
int x = v1->lastModifiedX * 2 - 4;
int y = v1->lastModifiedY * 2 - 4;
if (x < 0) {
width += x;
x = 0;
}
if (y < 0) {
height += y;
y = 0;
}
FillWindowPixelRect(v0->window, MEMO_PAD_PIXEL_TYPE_EMPTY, x, y, width, height);
int a = (x >> 3) + (y >> 3) * 0x14;
int e = ((x + width - 1) >> 3) - (x >> 3) + 1;
int b = ((y + height - 1) >> 3) - (y >> 3) + 1;
while (b--) {
GXS_LoadBG3Char((u8*)(v0->window->pixelBuffer) + (a * 0x20), (a + 0xc) * 0x20, e * 0x20);
a += 0x14;
}
} else {
int height = 2;
int width = 2;
int x = v1->lastModifiedX * 2;
int y = v1->lastModifiedY * 2;
int a = (x >> 3) + ((y >> 3) * 0x14);
FillWindowPixelRect(v0->window, MEMO_PAD_PIXEL_TYPE_FILLED, x, y, width, height);
GXS_LoadBG3Char((u8*)(v0->window->pixelBuffer) + a * 0x20, (a + 0xc) * 0x20, 0x20);
}
ov24_02254DC8(arg1);
}
void ov24_02255038(u32 arg0, void* arg1) {
UnkSubStructOverlay24* v0 = ov20_022538A0(arg1);
CopyWindowPixelsToVram_TextMode(v0->window);
ov24_02254DC8(arg1);
}
void ov24_02255050(u32 arg0, void* arg1) {
UnkSubStructOverlay24* v0 = ov20_022538A0(arg1);
ov24_022550D4(v0);
FreeBgTilemapBuffer(v0->config, 6);
FreeBgTilemapBuffer(v0->config, 7);
ov24_02254DC8(arg1);
}
void ov24_02255078(UnkSubStructOverlay24* arg0) {
GfGfxLoader_LoadWholePalette(NARC_GRAPHIC_POKETCH, 0x20, 1, 0, 0, 1, HEAP_ID_POKETCH_APP);
if (ov20_02253FBC(&(arg0->unk54), NARC_GRAPHIC_POKETCH, 0x21, 0x22, HEAP_ID_POKETCH_APP)) {
for (int i = 0; i < 2; i++) {
arg0->unk68[i] = ov20_02253E74(arg0->unk50, &(ov24_0225514C[i]), &(arg0->unk54));
}
}
}
void ov24_022550D4(UnkSubStructOverlay24* arg0) {
for (u32 i = 0; i < 2; i++) {
ov20_02253F14(arg0->unk50, arg0->unk68[i]);
}
ov20_02254014(&(arg0->unk54));
}