mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-03-21 17:55:13 -05:00
decompile ov98_02248350 (#625)
This commit is contained in:
parent
e29eb0b295
commit
6f9dbf8e2c
|
|
@ -4,7 +4,6 @@ src/overlay107/ov107_02245EB0.c
|
|||
src/overlay107/ov107_02241AE0.c
|
||||
src/overlay065/ov65_0222DCE0.c
|
||||
src/overlay064/ov64_0222DCE0.c
|
||||
src/overlay098/ov98_022471C8.c
|
||||
src/overlay062/ov62_02241204.c
|
||||
src/overlay062/ov62_0223DFA8.c
|
||||
src/overlay062/ov62_0223CAEC.c
|
||||
|
|
|
|||
|
|
@ -34,14 +34,14 @@
|
|||
#include "render_window.h"
|
||||
#include "save_player.h"
|
||||
#include "savedata.h"
|
||||
#include "screen_fade.h"
|
||||
#include "sound_playback.h"
|
||||
#include "strbuf.h"
|
||||
#include "string_list.h"
|
||||
#include "string_template.h"
|
||||
#include "system.h"
|
||||
#include "system_data.h"
|
||||
#include "text.h"
|
||||
#include "sound_playback.h"
|
||||
#include "screen_fade.h"
|
||||
#include "touch_pad.h"
|
||||
#include "unk_0202ACE0.h"
|
||||
#include "unk_02030CE8.h"
|
||||
|
|
@ -970,390 +970,122 @@ static void ov98_022482CC(UnkStruct_ov98_02247704 *param0)
|
|||
Window_CopyToVRAM(¶m0->unk_C4);
|
||||
}
|
||||
|
||||
// clang-format off
|
||||
asm static int ov98_02248350 (UnkStruct_ov98_02247704 * param0)
|
||||
static int ov98_02248350(UnkStruct_ov98_02247704 *param0)
|
||||
{
|
||||
push {r4, r5, r6, r7, lr}
|
||||
sub sp, #0x1c
|
||||
add r5, r0, #0
|
||||
add r1, r5, #0
|
||||
add r1, #0xa8
|
||||
ldr r1, [r1, #0]
|
||||
cmp r1, #0
|
||||
beq _0224836E
|
||||
cmp r1, #1
|
||||
bne _02248366
|
||||
b _022484B8
|
||||
_02248366:
|
||||
cmp r1, #2
|
||||
bne _0224836C
|
||||
b _02248566
|
||||
_0224836C:
|
||||
b _02248614
|
||||
_0224836E:
|
||||
ldr r0, [r5, #0x34]
|
||||
mov r1, #0x2c
|
||||
bl MessageLoader_GetNewStrbuf
|
||||
str r0, [sp, #0x14]
|
||||
bl Strbuf_NumLines
|
||||
add r1, r5, #0
|
||||
mov r2, #0
|
||||
add r1, #0xac
|
||||
str r2, [r1, #0]
|
||||
add r1, r5, #0
|
||||
add r1, #0xb0
|
||||
str r2, [r1, #0]
|
||||
add r1, r5, #0
|
||||
add r1, #0xb8
|
||||
str r2, [r1, #0]
|
||||
add r1, r5, #0
|
||||
add r1, #0xb4
|
||||
str r0, [r1, #0]
|
||||
mov r0, #5
|
||||
str r0, [sp]
|
||||
mov r0, #0x1e
|
||||
str r0, [sp, #4]
|
||||
mov r0, #0xc
|
||||
str r0, [sp, #8]
|
||||
mov r0, #0xd
|
||||
str r0, [sp, #0xc]
|
||||
mov r0, #0x94
|
||||
str r0, [sp, #0x10]
|
||||
add r1, r5, #0
|
||||
ldr r0, [r5, #4]
|
||||
add r1, #0xc4
|
||||
mov r2, #2
|
||||
mov r3, #1
|
||||
bl Window_Add
|
||||
mov r0, #0x13
|
||||
str r0, [sp]
|
||||
mov r0, #0x1e
|
||||
str r0, [sp, #4]
|
||||
mov r0, #4
|
||||
str r0, [sp, #8]
|
||||
mov r0, #0xd
|
||||
str r0, [sp, #0xc]
|
||||
mov r0, #0x7f
|
||||
lsl r0, r0, #2
|
||||
str r0, [sp, #0x10]
|
||||
add r1, r5, #0
|
||||
ldr r0, [r5, #4]
|
||||
add r1, #0xd4
|
||||
mov r2, #2
|
||||
mov r3, #1
|
||||
bl Window_Add
|
||||
add r0, r5, #0
|
||||
add r0, #0xc4
|
||||
mov r1, #0xf
|
||||
bl Window_FillTilemap
|
||||
ldr r0, [sp, #0x14]
|
||||
bl Strbuf_Length
|
||||
mov r1, #0x6d
|
||||
bl Strbuf_Init
|
||||
add r7, r0, #0
|
||||
add r0, r5, #0
|
||||
mov r6, #0
|
||||
str r0, [sp, #0x18]
|
||||
add r0, #0xc4
|
||||
add r4, r6, #0
|
||||
str r0, [sp, #0x18]
|
||||
_02248400:
|
||||
ldr r1, [sp, #0x14]
|
||||
add r0, r7, #0
|
||||
add r2, r6, #0
|
||||
bl Strbuf_CopyLineNum
|
||||
str r4, [sp]
|
||||
mov r0, #0xff
|
||||
str r0, [sp, #4]
|
||||
mov r0, #0
|
||||
str r0, [sp, #8]
|
||||
ldr r0, [sp, #0x18]
|
||||
mov r1, #0
|
||||
add r2, r7, #0
|
||||
mov r3, #4
|
||||
bl Text_AddPrinterWithParams
|
||||
add r6, r6, #1
|
||||
add r4, #0x10
|
||||
cmp r6, #6
|
||||
blt _02248400
|
||||
ldr r0, [sp, #0x14]
|
||||
bl Strbuf_Free
|
||||
add r0, r7, #0
|
||||
bl Strbuf_Free
|
||||
add r0, r5, #0
|
||||
add r0, #0xc4
|
||||
mov r1, #1
|
||||
mov r2, #0x1f
|
||||
mov r3, #0xb
|
||||
bl Window_DrawStandardFrame
|
||||
add r0, r5, #0
|
||||
add r0, #0xc4
|
||||
bl Window_CopyToVRAM
|
||||
add r0, r5, #0
|
||||
add r0, #0xd4
|
||||
mov r1, #0xf
|
||||
bl Window_FillTilemap
|
||||
add r0, r5, #0
|
||||
add r0, #0xd4
|
||||
mov r1, #1
|
||||
mov r2, #0x1f
|
||||
mov r3, #0xb
|
||||
bl Window_DrawStandardFrame
|
||||
add r0, r5, #0
|
||||
add r0, #0xd4
|
||||
bl Window_CopyToVRAM
|
||||
mov r0, #0x6d
|
||||
bl ColoredArrow_New
|
||||
add r1, r5, #0
|
||||
add r1, #0xe4
|
||||
str r0, [r1, #0]
|
||||
add r0, r5, #0
|
||||
add r0, #0x48
|
||||
mov r1, #0xf
|
||||
bl Window_FillTilemap
|
||||
add r0, r5, #0
|
||||
add r0, #0x48
|
||||
mov r1, #1
|
||||
bl Window_EraseMessageBox
|
||||
add r0, r5, #0
|
||||
add r0, #0x48
|
||||
bl Window_ClearAndCopyToVRAM
|
||||
mov r0, #8
|
||||
mov r1, #1
|
||||
bl GXLayers_EngineAToggleLayers
|
||||
add r0, r5, #0
|
||||
mov r1, #0
|
||||
add r0, #0xbc
|
||||
str r1, [r0, #0]
|
||||
add r0, r5, #0
|
||||
add r0, #0xc0
|
||||
str r1, [r0, #0]
|
||||
add r0, r5, #0
|
||||
add r0, #0xa8
|
||||
ldr r0, [r0, #0]
|
||||
add r1, r0, #1
|
||||
add r0, r5, #0
|
||||
add r0, #0xa8
|
||||
str r1, [r0, #0]
|
||||
b _02248670
|
||||
_022484B8:
|
||||
ldr r1, = gSystem
|
||||
add r0, #0xac
|
||||
ldr r2, [r1, #0x4c]
|
||||
ldr r4, [r0, #0]
|
||||
mov r0, #0x40
|
||||
tst r0, r2
|
||||
beq _022484E0
|
||||
cmp r4, #0
|
||||
beq _02248552
|
||||
add r0, r5, #0
|
||||
add r0, #0xac
|
||||
ldr r0, [r0, #0]
|
||||
sub r1, r0, #1
|
||||
add r0, r5, #0
|
||||
add r0, #0xac
|
||||
str r1, [r0, #0]
|
||||
ldr r0, = 0x5DC
|
||||
bl Sound_PlayEffect
|
||||
b _02248552
|
||||
_022484E0:
|
||||
mov r0, #0x80
|
||||
tst r0, r2
|
||||
beq _02248534
|
||||
add r0, r5, #0
|
||||
add r0, #0xb4
|
||||
ldr r0, [r0, #0]
|
||||
add r1, r4, #6
|
||||
cmp r1, r0
|
||||
bge _02248506
|
||||
add r0, r5, #0
|
||||
add r0, #0xac
|
||||
ldr r0, [r0, #0]
|
||||
add r1, r0, #1
|
||||
add r0, r5, #0
|
||||
add r0, #0xac
|
||||
str r1, [r0, #0]
|
||||
ldr r0, = 0x5DC
|
||||
bl Sound_PlayEffect
|
||||
_02248506:
|
||||
add r0, r5, #0
|
||||
add r0, #0xac
|
||||
ldr r0, [r0, #0]
|
||||
add r1, r0, #6
|
||||
add r0, r5, #0
|
||||
add r0, #0xb4
|
||||
ldr r0, [r0, #0]
|
||||
cmp r1, r0
|
||||
bne _02248552
|
||||
add r0, r5, #0
|
||||
bl ov98_02247F08
|
||||
add r0, r5, #0
|
||||
add r0, #0xa8
|
||||
ldr r0, [r0, #0]
|
||||
add r1, r0, #1
|
||||
add r0, r5, #0
|
||||
add r0, #0xa8
|
||||
str r1, [r0, #0]
|
||||
ldr r0, = 0x5DC
|
||||
bl Sound_PlayEffect
|
||||
b _02248552
|
||||
_02248534:
|
||||
ldr r1, [r1, #0x48]
|
||||
mov r0, #2
|
||||
tst r0, r1
|
||||
beq _02248552
|
||||
ldr r0, = 0x5DC
|
||||
bl Sound_PlayEffect
|
||||
add r0, r5, #0
|
||||
mov r1, #2
|
||||
add r0, #0xb8
|
||||
str r1, [r0, #0]
|
||||
add r0, r5, #0
|
||||
mov r1, #0xff
|
||||
add r0, #0xa8
|
||||
str r1, [r0, #0]
|
||||
_02248552:
|
||||
add r0, r5, #0
|
||||
add r0, #0xac
|
||||
ldr r0, [r0, #0]
|
||||
cmp r4, r0
|
||||
bne _0224855E
|
||||
b _02248670
|
||||
_0224855E:
|
||||
add r0, r5, #0
|
||||
bl ov98_022482CC
|
||||
b _02248670
|
||||
_02248566:
|
||||
ldr r1, = gSystem
|
||||
mov r2, #0x10
|
||||
ldr r1, [r1, #0x48]
|
||||
tst r2, r1
|
||||
bne _02248576
|
||||
mov r2, #0x20
|
||||
tst r2, r1
|
||||
beq _02248594
|
||||
_02248576:
|
||||
add r0, r5, #0
|
||||
add r0, #0xb0
|
||||
ldr r1, [r0, #0]
|
||||
mov r0, #1
|
||||
eor r1, r0
|
||||
add r0, r5, #0
|
||||
add r0, #0xb0
|
||||
str r1, [r0, #0]
|
||||
ldr r0, = 0x5DC
|
||||
bl Sound_PlayEffect
|
||||
add r0, r5, #0
|
||||
bl ov98_02247F08
|
||||
b _02248670
|
||||
_02248594:
|
||||
mov r2, #1
|
||||
tst r2, r1
|
||||
beq _022485BE
|
||||
add r0, #0xb0
|
||||
ldr r1, [r0, #0]
|
||||
mov r0, #2
|
||||
sub r1, r0, r1
|
||||
add r0, r5, #0
|
||||
add r0, #0xb8
|
||||
str r1, [r0, #0]
|
||||
ldr r0, = 0x5DC
|
||||
bl Sound_PlayEffect
|
||||
add r0, r5, #0
|
||||
add r0, #0xa8
|
||||
ldr r0, [r0, #0]
|
||||
add r1, r0, #1
|
||||
add r0, r5, #0
|
||||
add r0, #0xa8
|
||||
str r1, [r0, #0]
|
||||
b _02248670
|
||||
_022485BE:
|
||||
mov r2, #2
|
||||
add r3, r1, #0
|
||||
tst r3, r2
|
||||
beq _022485E0
|
||||
add r0, #0xb8
|
||||
str r2, [r0, #0]
|
||||
ldr r0, = 0x5DC
|
||||
bl Sound_PlayEffect
|
||||
add r0, r5, #0
|
||||
add r0, #0xa8
|
||||
ldr r0, [r0, #0]
|
||||
add r1, r0, #1
|
||||
add r0, r5, #0
|
||||
add r0, #0xa8
|
||||
str r1, [r0, #0]
|
||||
b _02248670
|
||||
_022485E0:
|
||||
mov r2, #0x40
|
||||
tst r1, r2
|
||||
beq _02248670
|
||||
bl ov98_02247FA4
|
||||
ldr r0, = 0x5DC
|
||||
bl Sound_PlayEffect
|
||||
add r0, r5, #0
|
||||
add r0, #0xa8
|
||||
ldr r0, [r0, #0]
|
||||
sub r1, r0, #1
|
||||
add r0, r5, #0
|
||||
add r0, #0xa8
|
||||
str r1, [r0, #0]
|
||||
add r0, r5, #0
|
||||
add r0, #0xac
|
||||
ldr r0, [r0, #0]
|
||||
sub r1, r0, #1
|
||||
add r0, r5, #0
|
||||
add r0, #0xac
|
||||
str r1, [r0, #0]
|
||||
add r0, r5, #0
|
||||
bl ov98_022482CC
|
||||
b _02248670
|
||||
_02248614:
|
||||
add r0, #0xc4
|
||||
mov r1, #0
|
||||
bl Window_EraseStandardFrame
|
||||
add r0, r5, #0
|
||||
add r0, #0xc4
|
||||
bl Window_ClearAndCopyToVRAM
|
||||
add r0, r5, #0
|
||||
add r0, #0xc4
|
||||
bl Window_Remove
|
||||
add r0, r5, #0
|
||||
add r0, #0xd4
|
||||
mov r1, #0
|
||||
bl Window_EraseStandardFrame
|
||||
add r0, r5, #0
|
||||
add r0, #0xd4
|
||||
bl Window_ClearAndCopyToVRAM
|
||||
add r0, r5, #0
|
||||
add r0, #0xd4
|
||||
bl Window_Remove
|
||||
add r0, r5, #0
|
||||
add r0, #0xe4
|
||||
ldr r0, [r0, #0]
|
||||
bl ColoredArrow_Free
|
||||
ldr r0, [r5, #4]
|
||||
mov r1, #3
|
||||
bl Bg_ClearTilemap
|
||||
mov r0, #8
|
||||
mov r1, #0
|
||||
bl GXLayers_EngineAToggleLayers
|
||||
add r0, r5, #0
|
||||
mov r1, #0
|
||||
add r0, #0xa8
|
||||
str r1, [r0, #0]
|
||||
add r5, #0xb8
|
||||
add sp, #0x1c
|
||||
ldr r0, [r5, #0]
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_02248670:
|
||||
add r0, r5, #0
|
||||
bl ov98_02247FBC
|
||||
mov r0, #0
|
||||
add sp, #0x1c
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
switch (param0->unk_A8) {
|
||||
case 0:
|
||||
int i;
|
||||
|
||||
Strbuf *strbuf1 = MessageLoader_GetNewStrbuf(param0->unk_34, 44);
|
||||
u32 lineCount = Strbuf_NumLines(strbuf1);
|
||||
param0->unk_AC = 0;
|
||||
param0->unk_B0 = 0;
|
||||
param0->unk_B8 = 0;
|
||||
param0->unk_B4 = lineCount;
|
||||
|
||||
Window_Add(param0->unk_04, ¶m0->unk_C4, BG_LAYER_MAIN_2, 1, 5, 30, 12, 13, 148);
|
||||
Window_Add(param0->unk_04, ¶m0->unk_D4, BG_LAYER_MAIN_2, 1, 19, 30, 4, 13, 508);
|
||||
|
||||
Window_FillTilemap(¶m0->unk_C4, 15);
|
||||
Strbuf *strbuf2 = Strbuf_Init(Strbuf_Length(strbuf1), HEAP_ID_109);
|
||||
for (i = 0; i < 6; i++) {
|
||||
Strbuf_CopyLineNum(strbuf2, strbuf1, i);
|
||||
Text_AddPrinterWithParams(¶m0->unk_C4, FONT_SYSTEM, strbuf2, 4, i * 16, 0xFF, NULL);
|
||||
}
|
||||
Strbuf_Free(strbuf1);
|
||||
Strbuf_Free(strbuf2);
|
||||
Window_DrawStandardFrame(¶m0->unk_C4, TRUE, 31, 11);
|
||||
Window_CopyToVRAM(¶m0->unk_C4);
|
||||
|
||||
Window_FillTilemap(¶m0->unk_D4, 15);
|
||||
Window_DrawStandardFrame(¶m0->unk_D4, TRUE, 31, 11);
|
||||
Window_CopyToVRAM(¶m0->unk_D4);
|
||||
|
||||
param0->unk_E4 = ColoredArrow_New(HEAP_ID_109);
|
||||
|
||||
Window_FillTilemap(¶m0->unk_48, 15);
|
||||
Window_EraseMessageBox(¶m0->unk_48, TRUE);
|
||||
Window_ClearAndCopyToVRAM(¶m0->unk_48);
|
||||
|
||||
GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG3, TRUE);
|
||||
|
||||
param0->unk_BC = 0;
|
||||
param0->unk_C0 = 0;
|
||||
param0->unk_A8++;
|
||||
break;
|
||||
case 1:
|
||||
int v1 = param0->unk_AC;
|
||||
|
||||
if (JOY_REPEAT(PAD_KEY_UP)) {
|
||||
if (param0->unk_AC != 0) {
|
||||
param0->unk_AC--;
|
||||
Sound_PlayEffect(SEQ_SE_CONFIRM);
|
||||
}
|
||||
} else if (JOY_REPEAT(PAD_KEY_DOWN)) {
|
||||
if (param0->unk_AC + 6 < param0->unk_B4) {
|
||||
param0->unk_AC++;
|
||||
Sound_PlayEffect(SEQ_SE_CONFIRM);
|
||||
}
|
||||
|
||||
if (param0->unk_AC + 6 == param0->unk_B4) {
|
||||
ov98_02247F08(param0);
|
||||
param0->unk_A8++;
|
||||
Sound_PlayEffect(SEQ_SE_CONFIRM);
|
||||
}
|
||||
} else if (gSystem.pressedKeys & PAD_BUTTON_B) {
|
||||
Sound_PlayEffect(SEQ_SE_CONFIRM);
|
||||
param0->unk_B8 = 2;
|
||||
param0->unk_A8 = 0xFF;
|
||||
}
|
||||
|
||||
if (v1 != param0->unk_AC) {
|
||||
ov98_022482CC(param0);
|
||||
}
|
||||
|
||||
break;
|
||||
case 2:
|
||||
if (gSystem.pressedKeys & PAD_KEY_RIGHT || gSystem.pressedKeys & PAD_KEY_LEFT) {
|
||||
param0->unk_B0 ^= 1;
|
||||
Sound_PlayEffect(SEQ_SE_CONFIRM);
|
||||
ov98_02247F08(param0);
|
||||
} else if (gSystem.pressedKeys & PAD_BUTTON_A) {
|
||||
param0->unk_B8 = 2 - param0->unk_B0;
|
||||
Sound_PlayEffect(SEQ_SE_CONFIRM);
|
||||
param0->unk_A8++;
|
||||
} else if (gSystem.pressedKeys & PAD_BUTTON_B) {
|
||||
param0->unk_B8 = 2;
|
||||
Sound_PlayEffect(SEQ_SE_CONFIRM);
|
||||
param0->unk_A8++;
|
||||
} else if (gSystem.pressedKeys & PAD_KEY_UP) {
|
||||
ov98_02247FA4(param0);
|
||||
Sound_PlayEffect(SEQ_SE_CONFIRM);
|
||||
param0->unk_A8--;
|
||||
param0->unk_AC--;
|
||||
ov98_022482CC(param0);
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
Window_EraseStandardFrame(¶m0->unk_C4, 0);
|
||||
Window_ClearAndCopyToVRAM(¶m0->unk_C4);
|
||||
Window_Remove(¶m0->unk_C4);
|
||||
|
||||
Window_EraseStandardFrame(¶m0->unk_D4, 0);
|
||||
Window_ClearAndCopyToVRAM(¶m0->unk_D4);
|
||||
Window_Remove(¶m0->unk_D4);
|
||||
|
||||
ColoredArrow_Free(param0->unk_E4);
|
||||
|
||||
Bg_ClearTilemap(param0->unk_04, BG_LAYER_MAIN_3);
|
||||
GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG3, FALSE);
|
||||
|
||||
param0->unk_A8 = 0;
|
||||
return param0->unk_B8;
|
||||
}
|
||||
|
||||
ov98_02247FBC(param0);
|
||||
return 0;
|
||||
}
|
||||
// clang-format on
|
||||
|
||||
static int ov98_02248684(UnkStruct_ov98_02247704 *param0)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user