mirror of
https://github.com/pret/pokediamond.git
synced 2026-10-02 13:26:47 -05:00
split functions into proper files
This commit is contained in:
@@ -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));
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user