mirror of
https://github.com/pret/pokediamond.git
synced 2026-09-30 20:36:48 -05:00
finish functions
This commit is contained in:
@@ -8041,6 +8041,9 @@
|
||||
.extern ov24_02254DDC
|
||||
.extern ov24_02254EE0
|
||||
.extern ov24_02254F28
|
||||
.extern ov24_02254F40
|
||||
.extern ov24_02255038
|
||||
.extern ov24_02255050
|
||||
.extern ov26_02254BD4
|
||||
.extern ov26_02254C04
|
||||
.extern ov26_02254C10
|
||||
|
||||
@@ -3,235 +3,6 @@
|
||||
.section .text
|
||||
.balign 4, 0
|
||||
|
||||
thumb_func_start ov24_02254F40
|
||||
ov24_02254F40: ; 0x02254F40
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
sub sp, #0x18
|
||||
add r0, r1, #0
|
||||
str r1, [sp, #8]
|
||||
bl ov20_022538A0
|
||||
add r7, r0, #0
|
||||
ldr r0, [r7]
|
||||
ldr r1, [r0]
|
||||
cmp r1, #0
|
||||
bne _02254FF2
|
||||
mov r1, #8
|
||||
str r1, [sp, #0x10]
|
||||
str r1, [sp, #0x14]
|
||||
ldr r1, [r0, #4]
|
||||
ldr r0, [r0, #8]
|
||||
lsl r1, r1, #1
|
||||
lsl r0, r0, #1
|
||||
sub r6, r1, #4
|
||||
sub r5, r0, #4
|
||||
cmp r6, #0
|
||||
bge _02254F74
|
||||
ldr r0, [sp, #0x10]
|
||||
add r0, r0, r6
|
||||
str r0, [sp, #0x14]
|
||||
mov r6, #0
|
||||
_02254F74:
|
||||
cmp r5, #0
|
||||
bge _02254F80
|
||||
ldr r0, [sp, #0x10]
|
||||
add r0, r0, r5
|
||||
str r0, [sp, #0x10]
|
||||
mov r5, #0
|
||||
_02254F80:
|
||||
ldr r0, [sp, #0x14]
|
||||
lsl r2, r6, #0x10
|
||||
lsl r0, r0, #0x10
|
||||
lsr r0, r0, #0x10
|
||||
str r0, [sp]
|
||||
ldr r0, [sp, #0x10]
|
||||
lsl r3, r5, #0x10
|
||||
lsl r0, r0, #0x10
|
||||
lsr r0, r0, #0x10
|
||||
str r0, [sp, #4]
|
||||
ldr r0, [r7, #0x70]
|
||||
mov r1, #4
|
||||
lsr r2, r2, #0x10
|
||||
lsr r3, r3, #0x10
|
||||
bl FillWindowPixelRect
|
||||
asr r1, r5, #3
|
||||
mov r2, #0x14
|
||||
asr r0, r6, #3
|
||||
mul r2, r1
|
||||
add r4, r0, r2
|
||||
ldr r2, [sp, #0x14]
|
||||
add r2, r6, r2
|
||||
sub r2, r2, #1
|
||||
asr r2, r2, #3
|
||||
sub r0, r2, r0
|
||||
ldr r2, [sp, #0x10]
|
||||
add r0, r0, #1
|
||||
add r2, r5, r2
|
||||
sub r2, r2, #1
|
||||
asr r2, r2, #3
|
||||
sub r1, r2, r1
|
||||
add r1, r1, #1
|
||||
sub r6, r1, #1
|
||||
cmp r1, #0
|
||||
beq _0225502C
|
||||
lsl r0, r0, #5
|
||||
lsl r5, r4, #5
|
||||
str r0, [sp, #0xc]
|
||||
_02254FCE:
|
||||
ldr r0, [r7, #0x70]
|
||||
add r1, r4, #0
|
||||
ldr r0, [r0, #0xc]
|
||||
add r1, #0xc
|
||||
ldr r2, [sp, #0xc]
|
||||
add r0, r0, r5
|
||||
lsl r1, r1, #5
|
||||
bl GXS_LoadBG3Char
|
||||
mov r0, #0xa
|
||||
lsl r0, r0, #6
|
||||
add r5, r5, r0
|
||||
add r0, r6, #0
|
||||
add r4, #0x14
|
||||
sub r6, r6, #1
|
||||
cmp r0, #0
|
||||
bne _02254FCE
|
||||
b _0225502C
|
||||
_02254FF2:
|
||||
ldr r1, [r0, #4]
|
||||
ldr r0, [r0, #8]
|
||||
lsl r2, r1, #1
|
||||
lsl r3, r0, #1
|
||||
asr r1, r3, #3
|
||||
mov r0, #0x14
|
||||
asr r4, r2, #3
|
||||
mul r0, r1
|
||||
add r4, r4, r0
|
||||
mov r0, #2
|
||||
str r0, [sp]
|
||||
str r0, [sp, #4]
|
||||
lsl r2, r2, #0x10
|
||||
lsl r3, r3, #0x10
|
||||
ldr r0, [r7, #0x70]
|
||||
mov r1, #1
|
||||
lsr r2, r2, #0x10
|
||||
lsr r3, r3, #0x10
|
||||
bl FillWindowPixelRect
|
||||
ldr r0, [r7, #0x70]
|
||||
mov r2, #0x20
|
||||
ldr r1, [r0, #0xc]
|
||||
lsl r0, r4, #5
|
||||
add r4, #0xc
|
||||
add r0, r1, r0
|
||||
lsl r1, r4, #5
|
||||
bl GXS_LoadBG3Char
|
||||
_0225502C:
|
||||
ldr r0, [sp, #8]
|
||||
bl ov24_02254DC8
|
||||
add sp, #0x18
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
thumb_func_end ov24_02254F40
|
||||
|
||||
thumb_func_start ov24_02255038
|
||||
ov24_02255038: ; 0x02255038
|
||||
push {r4, lr}
|
||||
add r4, r1, #0
|
||||
add r0, r4, #0
|
||||
bl ov20_022538A0
|
||||
ldr r0, [r0, #0x70]
|
||||
bl CopyWindowPixelsToVram_TextMode
|
||||
add r0, r4, #0
|
||||
bl ov24_02254DC8
|
||||
pop {r4, pc}
|
||||
thumb_func_end ov24_02255038
|
||||
|
||||
thumb_func_start ov24_02255050
|
||||
ov24_02255050: ; 0x02255050
|
||||
push {r3, r4, r5, lr}
|
||||
add r5, r1, #0
|
||||
add r0, r5, #0
|
||||
bl ov20_022538A0
|
||||
add r4, r0, #0
|
||||
bl ov24_022550D4
|
||||
ldr r0, [r4, #4]
|
||||
mov r1, #6
|
||||
bl FreeBgTilemapBuffer
|
||||
ldr r0, [r4, #4]
|
||||
mov r1, #7
|
||||
bl FreeBgTilemapBuffer
|
||||
add r0, r5, #0
|
||||
bl ov24_02254DC8
|
||||
pop {r3, r4, r5, pc}
|
||||
thumb_func_end ov24_02255050
|
||||
|
||||
thumb_func_start ov24_02255078
|
||||
ov24_02255078: ; 0x02255078
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
sub sp, #0x10
|
||||
mov r3, #0
|
||||
str r3, [sp]
|
||||
mov r2, #1
|
||||
add r7, r0, #0
|
||||
str r2, [sp, #4]
|
||||
mov r0, #8
|
||||
str r0, [sp, #8]
|
||||
mov r0, #0xc
|
||||
mov r1, #0x20
|
||||
bl GfGfxLoader_LoadWholePalette
|
||||
mov r0, #8
|
||||
str r0, [sp]
|
||||
add r0, r7, #0
|
||||
add r0, #0x54
|
||||
mov r1, #0xc
|
||||
mov r2, #0x21
|
||||
mov r3, #0x22
|
||||
bl ov20_02253FBC
|
||||
cmp r0, #0
|
||||
beq _022550CC
|
||||
add r0, r7, #0
|
||||
str r0, [sp, #0xc]
|
||||
add r0, #0x54
|
||||
ldr r4, _022550D0 ; =ov24_0225514C
|
||||
mov r6, #0
|
||||
add r5, r7, #0
|
||||
str r0, [sp, #0xc]
|
||||
_022550B6:
|
||||
ldr r0, [r7, #0x50]
|
||||
ldr r2, [sp, #0xc]
|
||||
add r1, r4, #0
|
||||
bl ov20_02253E74
|
||||
str r0, [r5, #0x68]
|
||||
add r6, r6, #1
|
||||
add r4, #0x10
|
||||
add r5, r5, #4
|
||||
cmp r6, #2
|
||||
blt _022550B6
|
||||
_022550CC:
|
||||
add sp, #0x10
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_022550D0: .word ov24_0225514C
|
||||
thumb_func_end ov24_02255078
|
||||
|
||||
thumb_func_start ov24_022550D4
|
||||
ov24_022550D4: ; 0x022550D4
|
||||
push {r4, r5, r6, lr}
|
||||
add r6, r0, #0
|
||||
mov r4, #0
|
||||
add r5, r6, #0
|
||||
_022550DC:
|
||||
ldr r0, [r6, #0x50]
|
||||
ldr r1, [r5, #0x68]
|
||||
bl ov20_02253F14
|
||||
add r4, r4, #1
|
||||
add r5, r5, #4
|
||||
cmp r4, #2
|
||||
blo _022550DC
|
||||
add r6, #0x54
|
||||
add r0, r6, #0
|
||||
bl ov20_02254014
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
thumb_func_end ov24_022550D4
|
||||
|
||||
.section .rodata
|
||||
.global ov24_022550F8
|
||||
ov24_022550F8: ; 0x022550F8
|
||||
|
||||
@@ -23,8 +23,7 @@ struct UnkSubStructOverlay24
|
||||
u8 unkC[0x44];
|
||||
u32 unk50;
|
||||
u8 unk54[0x14];
|
||||
u32* unk68;
|
||||
u32* unk6C;
|
||||
u32* unk68[2];
|
||||
Window *window;
|
||||
};
|
||||
typedef struct UnkStructOverlay24 UnkStructOverlay24;
|
||||
@@ -67,6 +66,11 @@ void ov24_02254DC8(void*);
|
||||
void ov24_02254DDC(void*, void*);
|
||||
void ov24_02254EE0(u32, void*);
|
||||
void ov24_02254F28(int, void*);
|
||||
void ov24_02254F40(u32 arg0, void* arg1);
|
||||
void ov24_02255038(u32 arg0, void* arg1);
|
||||
void ov24_02255050(u32 arg0, void* arg1);
|
||||
void ov24_02255078(UnkSubStructOverlay24* arg0);
|
||||
void ov24_022550D4(UnkSubStructOverlay24* arg0);
|
||||
|
||||
extern void Poketch_InitApp(void *func1, void *func2);
|
||||
extern u32 ov20_02254130(void *, u32, void *, void*, u32);
|
||||
@@ -77,27 +81,28 @@ extern void ov20_022529A0(u32);
|
||||
extern void ov24_0225499(UnkStructOverlay24*);
|
||||
extern void ov20_0225298C(u32);
|
||||
extern BOOL ov20_02252C08(u32);
|
||||
extern BOOL ov24_02254A70(UnkStructOverlay24*);
|
||||
extern BOOL TouchScreen_GetTapState(u32*, u32*);
|
||||
extern BOOL ov24_02254AD4(UnkStructOverlay24*);
|
||||
extern BOOL ov24_02254CA(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 ov24_02255078(void*);
|
||||
extern void ov20_02252D7C(u32, u32);
|
||||
extern void ov20_02253F28(u32*, u32);
|
||||
extern void Poketch_PlaySoundEffect(u32);
|
||||
extern UnkSubStructOverlay24* ov20_022538A0(void*);
|
||||
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(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 FnType02254918 ov24_02255100[3];
|
||||
extern u32 ov24_0225514C[2][4];
|
||||
extern u32 ov24_0225516C[];
|
||||
extern const WindowTemplate ov24_0225510C;
|
||||
extern BgTemplate ov24_02255114;
|
||||
@@ -503,7 +508,7 @@ BOOL ov24_02254DBC(UnkSubStructOverlay24* arg0) {
|
||||
}
|
||||
|
||||
void ov24_02254DC8(void* arg0) {
|
||||
ov20_02253888(&(ov20_022538A0(arg0)->unk8), arg0);
|
||||
ov20_02253888(&(((UnkSubStructOverlay24*)ov20_022538A0(arg0))->unk8), arg0);
|
||||
}
|
||||
|
||||
void ov24_02254DDC(void* arg0, void* arg1) {
|
||||
@@ -544,11 +549,11 @@ void ov24_02254DDC(void* arg0, void* arg1) {
|
||||
void ov24_02254EE0(u32 arg0, void* arg1) {
|
||||
UnkSubStructOverlay24* v0 = ov20_022538A0(arg1);
|
||||
if (v0->unk0->unk0 == 1) {
|
||||
ov20_02253F28(v0->unk68, 0);
|
||||
ov20_02253F28(v0->unk6C, 3);
|
||||
ov20_02253F28(v0->unk68[0], 0);
|
||||
ov20_02253F28(v0->unk68[1], 3);
|
||||
} else {
|
||||
ov20_02253F28(v0->unk68, 1);
|
||||
ov20_02253F28(v0->unk6C, 2);
|
||||
ov20_02253F28(v0->unk68[0], 1);
|
||||
ov20_02253F28(v0->unk68[1], 2);
|
||||
}
|
||||
Poketch_PlaySoundEffect(1635);
|
||||
ov24_02254DC8(arg1);
|
||||
@@ -559,3 +564,70 @@ void ov24_02254F28(int arg0, void* 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->unk0 == 0) {
|
||||
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, 4, 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, 1, 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