mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-04-26 16:47:15 -05:00
3184 lines
85 KiB
C
3184 lines
85 KiB
C
#include "overlay084/ov84_0223B5A0.h"
|
|
|
|
#include <nitro.h>
|
|
#include <string.h>
|
|
|
|
#include "constants/field/map_load.h"
|
|
|
|
#include "struct_defs/special_encounter.h"
|
|
#include "struct_defs/struct_0207CB08.h"
|
|
#include "struct_defs/struct_02099F80.h"
|
|
|
|
#include "functypes/funcptr_02069238.h"
|
|
#include "overlay084/const_ov84_02241130.h"
|
|
#include "overlay084/funcptr_ov84_0223D730.h"
|
|
#include "overlay084/ov84_0223F040.h"
|
|
#include "overlay084/ov84_022403F4.h"
|
|
#include "overlay084/struct_ov84_0223B5A0.h"
|
|
#include "overlay084/struct_ov84_0223BE5C.h"
|
|
#include "overlay084/struct_ov84_0223C920.h"
|
|
|
|
#include "bag.h"
|
|
#include "bg_window.h"
|
|
#include "font.h"
|
|
#include "game_options.h"
|
|
#include "graphics.h"
|
|
#include "gx_layers.h"
|
|
#include "heap.h"
|
|
#include "item.h"
|
|
#include "list_menu.h"
|
|
#include "math.h"
|
|
#include "menu.h"
|
|
#include "message.h"
|
|
#include "narc.h"
|
|
#include "overlay_manager.h"
|
|
#include "render_text.h"
|
|
#include "render_window.h"
|
|
#include "save_player.h"
|
|
#include "special_encounter.h"
|
|
#include "sprite_system.h"
|
|
#include "strbuf.h"
|
|
#include "string_list.h"
|
|
#include "string_template.h"
|
|
#include "system.h"
|
|
#include "text.h"
|
|
#include "touch_screen.h"
|
|
#include "trainer_info.h"
|
|
#include "unk_020041CC.h"
|
|
#include "unk_02005474.h"
|
|
#include "unk_0200C440.h"
|
|
#include "unk_0200F174.h"
|
|
#include "unk_0201E3D8.h"
|
|
#include "unk_020393C8.h"
|
|
#include "unk_020683F4.h"
|
|
#include "unk_0207CB08.h"
|
|
#include "unk_0208C098.h"
|
|
#include "vram_transfer.h"
|
|
|
|
typedef struct {
|
|
const u8 *unk_00;
|
|
const TouchScreenRect *unk_04;
|
|
} UnkStruct_ov84_022410C8;
|
|
|
|
typedef int (*UnkFuncPtr_ov84_0223DA04)(UnkStruct_ov84_0223B5A0 *);
|
|
|
|
static void ov84_0223B9AC(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223BA14(void *param0);
|
|
static void ov84_0223BA3C(void);
|
|
static void ov84_0223BA5C(BgConfig *param0);
|
|
static void ov84_0223BBC4(BgConfig *param0);
|
|
static void ov84_0223BC1C(UnkStruct_ov84_0223B5A0 *param0);
|
|
static u8 ov84_0223C5B8(UnkStruct_ov84_0223B5A0 *param0);
|
|
static u8 ov84_0223C750(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223D730(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223BFBC(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223C194(u16 *param0, u16 *param1, u8 param2);
|
|
static void ov84_0223C1D0(u16 *param0, u16 *param1, u8 param2, u8 param3);
|
|
static void ov84_0223C224(UnkStruct_ov84_0223B5A0 *param0, u16 param1, u16 param2);
|
|
static void ov84_0223C2AC(ListMenu *param0, u32 param1, u8 param2);
|
|
static void ov84_0223C3B8(ListMenu *param0, u32 param1, u8 param2);
|
|
static void ov84_0223C4E0(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223BE24(UnkStruct_ov84_0223B5A0 *param0);
|
|
static u8 ov84_02240C30(UnkStruct_ov84_0223B5A0 *param0, u8 param1);
|
|
static void ov84_0223C720(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223CDB0(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223D0FC(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223CF20(UnkStruct_ov84_0223B5A0 *param0, u8 param1, u8 param2);
|
|
static u8 ov84_0223CD40(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223CE08(UnkStruct_ov84_0223B5A0 *param0);
|
|
static u8 ov84_0223CBD8(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223CF20(UnkStruct_ov84_0223B5A0 *param0, u8 param1, u8 param2);
|
|
static void ov84_0223D0BC(UnkStruct_ov84_0223B5A0 *param0);
|
|
static u8 ov84_0223D244(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223D2A0(UnkStruct_ov84_0223B5A0 *param0);
|
|
static u8 ov84_0223D2F8(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223D42C(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223D484(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223D4E8(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223C848(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223C868(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223C89C(UnkStruct_ov84_0223B5A0 *param0);
|
|
static u8 ov84_0223C920(UnkStruct_ov84_0223B5A0 *param0);
|
|
static u8 ov84_0223CA5C(UnkStruct_ov84_0223B5A0 *param0);
|
|
static u8 ov84_0223CE60(UnkStruct_ov84_0223B5A0 *param0);
|
|
static u8 ov84_0223CBD8(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223BDB4(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223D5AC(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223C158(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223C178(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223D858(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223C51C(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223E3BC(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223E9B0(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223E588(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223E5C4(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223E7A8(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223E7CC(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223E920(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223D8EC(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223DE78(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223DE98(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223DEB8(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223DF0C(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223DFF8(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223E01C(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223E158(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223E18C(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223E254(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223E1E4(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223E220(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223E27C(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223E36C(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223EA18(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223BEAC(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223BF68(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223D94C(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223DA04(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223DA14(UnkStruct_ov84_0223B5A0 *param0);
|
|
static BOOL ov84_0223DBF4(UnkStruct_ov84_0223B5A0 *param0, u16 param1);
|
|
static Strbuf *ov84_0223DC9C(UnkStruct_ov84_0223B5A0 *param0, u16 param1);
|
|
static void ov84_0223DCF8(UnkStruct_ov84_0223B5A0 *param0);
|
|
static int ov84_0223DDD0(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223DCF8(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223D7E8(UnkStruct_ov84_0223B5A0 *param0, u8 param1);
|
|
static BOOL ov84_0223D1F4(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223CFB0(UnkStruct_ov84_0223B5A0 *param0, u8 param1);
|
|
static void ov84_0223D014(UnkStruct_ov84_0223B5A0 *param0);
|
|
static void ov84_0223EB08(UnkStruct_ov84_0223B5A0 *param0, s8 param1);
|
|
static BOOL ov84_0223EF4C(UnkStruct_ov84_0223B5A0 *param0);
|
|
static BOOL ov84_0223EB84(UnkStruct_ov84_0223B5A0 *param0, u16 param1);
|
|
static BOOL ov84_0223ED14(UnkStruct_ov84_0223B5A0 *param0);
|
|
static BOOL ov84_0223EE30(UnkStruct_ov84_0223B5A0 *param0);
|
|
static BOOL ov84_0223EFD0(UnkStruct_ov84_0223B5A0 *param0, s16 *param1, u16 param2);
|
|
static BOOL ov84_0223ED64(UnkStruct_ov84_0223B5A0 *param0, u16 param1);
|
|
static BOOL ov84_0223EE80(UnkStruct_ov84_0223B5A0 *param0, u16 param1);
|
|
static BOOL ov84_0223EF9C(UnkStruct_ov84_0223B5A0 *param0, u8 param1);
|
|
|
|
const OverlayManagerTemplate Unk_ov84_02241130 = {
|
|
ov84_0223B5A0,
|
|
ov84_0223B76C,
|
|
ov84_0223B900,
|
|
0xFFFFFFFF
|
|
};
|
|
|
|
static const ListMenuTemplate Unk_ov84_02240FA8 = {
|
|
NULL,
|
|
ov84_0223C2AC,
|
|
ov84_0223C3B8,
|
|
NULL,
|
|
0x0,
|
|
0x9,
|
|
0x0,
|
|
0x0,
|
|
0x0,
|
|
0x0,
|
|
0x1,
|
|
0x0,
|
|
0x2,
|
|
0x0,
|
|
0x10,
|
|
0x0,
|
|
0x0,
|
|
0x1,
|
|
NULL
|
|
};
|
|
|
|
static const u8 Unk_ov84_02241140[] = {
|
|
0x1,
|
|
0x4,
|
|
0x2,
|
|
0xA,
|
|
0x5,
|
|
0xF,
|
|
0xA,
|
|
0x12,
|
|
0x11,
|
|
0x12,
|
|
0x16,
|
|
0xF,
|
|
0x19,
|
|
0xA,
|
|
0x1A,
|
|
0x4
|
|
};
|
|
|
|
static const TouchScreenRect Unk_ov84_02240FE8[] = {
|
|
{ 0x20, 0x47, 0x8, 0x2F },
|
|
{ 0x50, 0x77, 0x10, 0x37 },
|
|
{ 0x78, 0x9F, 0x28, 0x4F },
|
|
{ 0x90, 0xB7, 0x50, 0x77 },
|
|
{ 0x90, 0xB7, 0x88, 0xAF },
|
|
{ 0x78, 0x9F, 0xB0, 0xD7 },
|
|
{ 0x50, 0x77, 0xC8, 0xEF },
|
|
{ 0x20, 0x47, 0xD0, 0xF7 },
|
|
{ 0xFF, 0x0, 0x0, 0x0 }
|
|
};
|
|
|
|
static const u8 Unk_ov84_02241110[] = {
|
|
0x1,
|
|
0x4,
|
|
0x5,
|
|
0xF,
|
|
0x16,
|
|
0xF,
|
|
0x1A,
|
|
0x4
|
|
};
|
|
|
|
static const TouchScreenRect Unk_ov84_02240ED0[] = {
|
|
{ 0x20, 0x47, 0x8, 0x2F },
|
|
{ 0x78, 0x9F, 0x28, 0x4F },
|
|
{ 0x78, 0x9F, 0xB0, 0xD7 },
|
|
{ 0x20, 0x47, 0xD0, 0xF7 },
|
|
{ 0xFF, 0x0, 0x0, 0x0 }
|
|
};
|
|
|
|
static const u8 Unk_ov84_02240E94[] = {
|
|
0x11,
|
|
0x12
|
|
};
|
|
|
|
static const TouchScreenRect Unk_ov84_02240EA0[] = {
|
|
{ 0x90, 0xB7, 0x88, 0xAF },
|
|
{ 0xFF, 0x0, 0x0, 0x0 }
|
|
};
|
|
|
|
static const u8 Unk_ov84_02241120[] = {
|
|
0x2,
|
|
0xA,
|
|
0x5,
|
|
0xF,
|
|
0xA,
|
|
0x12,
|
|
0x11,
|
|
0x12,
|
|
0x16,
|
|
0xF,
|
|
0x19,
|
|
0xA,
|
|
0x1A,
|
|
0x4
|
|
};
|
|
|
|
static const TouchScreenRect Unk_ov84_02240FC8[] = {
|
|
{ 0x50, 0x77, 0x10, 0x37 },
|
|
{ 0x78, 0x9F, 0x28, 0x4F },
|
|
{ 0x90, 0xB7, 0x50, 0x77 },
|
|
{ 0x90, 0xB7, 0x88, 0xAF },
|
|
{ 0x78, 0x9F, 0xB0, 0xD7 },
|
|
{ 0x50, 0x77, 0xC8, 0xEF },
|
|
{ 0x20, 0x47, 0xD0, 0xF7 },
|
|
{ 0xFF, 0x0, 0x0, 0x0 }
|
|
};
|
|
|
|
static const UnkStruct_ov84_022410C8 Unk_ov84_022410C8[] = {
|
|
{ NULL, NULL },
|
|
{ Unk_ov84_02240E94, Unk_ov84_02240EA0 },
|
|
{ NULL, NULL },
|
|
{ NULL, NULL },
|
|
{ Unk_ov84_02241110, Unk_ov84_02240ED0 },
|
|
{ NULL, NULL },
|
|
{ NULL, NULL },
|
|
{ Unk_ov84_02241120, Unk_ov84_02240FC8 },
|
|
{ Unk_ov84_02241140, Unk_ov84_02240FE8 }
|
|
};
|
|
|
|
static const u8 Unk_ov84_02241118[] = {
|
|
0xA5,
|
|
0x28,
|
|
0xF,
|
|
0x64,
|
|
0x40,
|
|
0xC,
|
|
0x1E,
|
|
0x32
|
|
};
|
|
|
|
static const u32 Unk_ov84_02241034[] = {
|
|
(u32)ov84_0223D858,
|
|
(u32)ov84_0223D858,
|
|
(u32)ov84_0223D858,
|
|
(u32)ov84_0223D858,
|
|
(u32)ov84_0223D858,
|
|
(u32)ov84_0223DEB8,
|
|
(u32)ov84_0223E1E4,
|
|
(u32)ov84_0223E220,
|
|
(u32)ov84_0223E254,
|
|
(u32)ov84_0223DE78,
|
|
(u32)ov84_0223DE98,
|
|
0xFFFFFFFE
|
|
};
|
|
|
|
static const u16 Unk_ov84_02241064[] = {
|
|
0x1077,
|
|
0x1078,
|
|
0x1078,
|
|
0x1079,
|
|
0x1026,
|
|
0x1010,
|
|
0x1011,
|
|
0x1011,
|
|
0x1012,
|
|
0x1013,
|
|
0x1014,
|
|
0x1001,
|
|
0x1001,
|
|
0x1001,
|
|
0x1034,
|
|
0x1014,
|
|
0x1001,
|
|
0x1001,
|
|
0x1001,
|
|
0x1034,
|
|
0x1030,
|
|
0x1031,
|
|
0x1031,
|
|
0x1032,
|
|
0x1033
|
|
};
|
|
|
|
static const u16 Unk_ov84_02241096[] = {
|
|
0x1026,
|
|
0x1002,
|
|
0x1002,
|
|
0x1002,
|
|
0x1002,
|
|
0x1026,
|
|
0x1002,
|
|
0x1002,
|
|
0x1002,
|
|
0x1002,
|
|
0x1026,
|
|
0x1002,
|
|
0x1002,
|
|
0x1002,
|
|
0x1002,
|
|
0x1026,
|
|
0x1002,
|
|
0x1002,
|
|
0x1002,
|
|
0x1002,
|
|
0x1026,
|
|
0x1002,
|
|
0x1002,
|
|
0x1002,
|
|
0x1002
|
|
};
|
|
|
|
static const TouchScreenRect Unk_ov84_02240E98[] = {
|
|
{ 0x38, 0x67, 0x68, 0x97 },
|
|
{ 0xFF, 0x0, 0x0, 0x0 }
|
|
};
|
|
|
|
static const TouchScreenHitTable Unk_ov84_02240EA8[] = {
|
|
{ 0xFE, 0x80, 0x50, 0x1A },
|
|
{ 0xFE, 0x80, 0x50, 0x40 },
|
|
{ 0xFF, 0x0, 0x0, 0x0 }
|
|
};
|
|
|
|
static const TouchScreenHitTable Unk_ov84_02240EB4[] = {
|
|
{ 0xFE, 0x80, 0x50, 0x10 },
|
|
{ 0xFE, 0x80, 0x50, 0x50 },
|
|
{ 0xFF, 0x0, 0x0, 0x0 }
|
|
};
|
|
|
|
int ov84_0223B5A0(OverlayManager *param0, int *param1)
|
|
{
|
|
UnkStruct_ov84_0223B5A0 *v0;
|
|
|
|
SetVBlankCallback(NULL, NULL);
|
|
DisableHBlank();
|
|
GXLayers_DisableEngineALayers();
|
|
GXLayers_DisableEngineBLayers();
|
|
|
|
GX_SetVisiblePlane(0);
|
|
GXS_SetVisiblePlane(0);
|
|
G2_BlendNone();
|
|
G2S_BlendNone();
|
|
|
|
Heap_Create(HEAP_ID_APPLICATION, HEAP_ID_6, 0x30000);
|
|
|
|
v0 = OverlayManager_NewData(param0, sizeof(UnkStruct_ov84_0223B5A0), HEAP_ID_6);
|
|
memset(v0, 0, sizeof(UnkStruct_ov84_0223B5A0));
|
|
v0->unk_C4 = OverlayManager_Args(param0);
|
|
|
|
ov84_0223B9AC(v0);
|
|
|
|
v0->unk_00 = BgConfig_New(HEAP_ID_6);
|
|
v0->unk_425 = TrainerInfo_Gender(v0->unk_CC);
|
|
|
|
StartScreenTransition(1, 3, 3, 0x0, 6, 1, HEAP_ID_6);
|
|
SetAutorepeat(3, 8);
|
|
|
|
ov84_0223BEAC(v0);
|
|
ov84_0223BDB4(v0);
|
|
ov84_0223C158(v0);
|
|
ov84_0223BE24(v0);
|
|
ov84_0223C720(v0);
|
|
ov84_0223BA3C();
|
|
ov84_0223BA5C(v0->unk_00);
|
|
ov84_0223BC1C(v0);
|
|
ov84_0223D0BC(v0);
|
|
|
|
sub_0201E3D8();
|
|
sub_0201E450(4);
|
|
|
|
ov84_0223F040(v0);
|
|
RenderControlFlags_SetSpeedUpOnTouch(1);
|
|
ov84_0223F1F8(v0);
|
|
ov84_0223F25C(v0);
|
|
ov84_0223F2FC(v0);
|
|
ov84_0223F438(v0);
|
|
ov84_0223FA88(v0);
|
|
ov84_0223F7D4(v0);
|
|
ov84_0223BFBC(v0);
|
|
ov84_0223C194(&v0->unk_C4->unk_04[v0->unk_C4->unk_64].unk_06, &v0->unk_C4->unk_04[v0->unk_C4->unk_64].unk_04, v0->unk_C4->unk_04[v0->unk_C4->unk_64].unk_09);
|
|
ov84_0223C1D0(&v0->unk_C4->unk_04[v0->unk_C4->unk_64].unk_06, &v0->unk_C4->unk_04[v0->unk_C4->unk_64].unk_04, v0->unk_C4->unk_04[v0->unk_C4->unk_64].unk_09, 9);
|
|
ov84_022403F4(v0);
|
|
ov84_0223C224(v0, v0->unk_C4->unk_04[v0->unk_C4->unk_64].unk_06, v0->unk_C4->unk_04[v0->unk_C4->unk_64].unk_04);
|
|
|
|
if ((v0->unk_C4->unk_65 == 4) || (v0->unk_C4->unk_65 == 5)) {
|
|
ov84_02240328(v0);
|
|
}
|
|
|
|
SetVBlankCallback(ov84_0223BA14, v0);
|
|
sub_02004550(51, 0, 0);
|
|
DrawWifiConnectionIcon();
|
|
|
|
return 1;
|
|
}
|
|
|
|
int ov84_0223B76C(OverlayManager *param0, int *param1)
|
|
{
|
|
UnkStruct_ov84_0223B5A0 *v0 = OverlayManager_Data(param0);
|
|
|
|
switch (*param1) {
|
|
case 0:
|
|
if (IsScreenTransitionDone() == 1) {
|
|
if (v0->unk_C4->unk_65 == 2) {
|
|
*param1 = 16;
|
|
} else if (v0->unk_C4->unk_65 == 1) {
|
|
*param1 = 14;
|
|
} else if (v0->unk_C4->unk_65 == 3) {
|
|
*param1 = 23;
|
|
} else {
|
|
*param1 = 1;
|
|
}
|
|
}
|
|
break;
|
|
case 1:
|
|
*param1 = ov84_0223C51C(v0);
|
|
break;
|
|
case 2:
|
|
ov84_0223D0FC(v0);
|
|
if (ov84_0223C920(v0) == 1) {
|
|
if (v0->unk_C4->unk_65 == 2) {
|
|
*param1 = 16;
|
|
} else if (v0->unk_C4->unk_65 == 1) {
|
|
*param1 = 14;
|
|
} else if (v0->unk_C4->unk_65 == 3) {
|
|
*param1 = 23;
|
|
} else {
|
|
*param1 = 1;
|
|
}
|
|
}
|
|
break;
|
|
case 3:
|
|
if (ov84_0223D2F8(v0) == 1) {
|
|
*param1 = 1;
|
|
}
|
|
break;
|
|
case 4:
|
|
*param1 = ov84_0223D730(v0);
|
|
break;
|
|
case 5:
|
|
break;
|
|
case 6:
|
|
break;
|
|
case 7:
|
|
*param1 = ov84_0223DF0C(v0);
|
|
break;
|
|
case 8:
|
|
*param1 = ov84_0223DFF8(v0);
|
|
break;
|
|
case 9:
|
|
*param1 = ov84_0223E01C(v0);
|
|
break;
|
|
case 10:
|
|
*param1 = ov84_0223E158(v0);
|
|
break;
|
|
case 11:
|
|
*param1 = ov84_0223E18C(v0);
|
|
break;
|
|
case 12:
|
|
*param1 = ov84_0223D8EC(v0);
|
|
break;
|
|
case 13:
|
|
*param1 = ov84_0223DA04(v0);
|
|
break;
|
|
case 14:
|
|
*param1 = ov84_0223E27C(v0);
|
|
break;
|
|
case 15:
|
|
*param1 = ov84_0223E36C(v0);
|
|
break;
|
|
case 16:
|
|
*param1 = ov84_0223E3BC(v0);
|
|
break;
|
|
case 17:
|
|
*param1 = ov84_0223E588(v0);
|
|
break;
|
|
case 18:
|
|
*param1 = ov84_0223E5C4(v0);
|
|
break;
|
|
case 19:
|
|
*param1 = ov84_0223E7A8(v0);
|
|
break;
|
|
case 20:
|
|
*param1 = ov84_0223E7CC(v0);
|
|
break;
|
|
case 21:
|
|
*param1 = ov84_0223E920(v0);
|
|
break;
|
|
case 22:
|
|
*param1 = ov84_0223E9B0(v0);
|
|
break;
|
|
case 23:
|
|
*param1 = ov84_0223EA18(v0);
|
|
break;
|
|
case 24:
|
|
if (IsScreenTransitionDone() == 1) {
|
|
return 1;
|
|
}
|
|
break;
|
|
}
|
|
|
|
ov84_0223D014(v0);
|
|
ov84_02240E5C(v0);
|
|
ov84_02240ABC(v0);
|
|
SpriteSystem_DrawSprites(v0->unk_DC);
|
|
|
|
return 0;
|
|
}
|
|
|
|
int ov84_0223B900(OverlayManager *param0, int *param1)
|
|
{
|
|
UnkStruct_ov84_0223B5A0 *v0 = OverlayManager_Data(param0);
|
|
|
|
ov84_02240A88(v0);
|
|
ov84_0223C4E0(v0);
|
|
ov84_0223BF68(v0);
|
|
ov84_0223F1DC(v0->unk_04);
|
|
ov84_0223BBC4(v0->unk_00);
|
|
|
|
sub_0201E530();
|
|
VramTransfer_Free();
|
|
|
|
ov84_0223FB50(v0);
|
|
ov84_0223F238(v0);
|
|
ov84_0223F800(v0);
|
|
ov84_0223C178(v0);
|
|
|
|
Strbuf_Free(v0->unk_3F8);
|
|
MessageLoader_Free(v0->unk_120);
|
|
MessageLoader_Free(v0->unk_11C);
|
|
MessageLoader_Free(v0->unk_114);
|
|
sub_0200C560(v0->unk_110);
|
|
StringTemplate_Free(v0->unk_118);
|
|
NARC_dtor(v0->unk_D4);
|
|
OverlayManager_FreeData(param0);
|
|
SetVBlankCallback(NULL, NULL);
|
|
Heap_Destroy(HEAP_ID_6);
|
|
SetAutorepeat(4, 8);
|
|
|
|
return 1;
|
|
}
|
|
|
|
static void ov84_0223B9AC(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
param0->unk_C8 = SaveData_GetBag(param0->unk_C4->unk_00);
|
|
param0->unk_CC = SaveData_GetTrainerInfo(param0->unk_C4->unk_00);
|
|
param0->unk_D0 = SaveData_Options(param0->unk_C4->unk_00);
|
|
}
|
|
|
|
static SpecialEncounter *ov84_0223B9E4(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
return SaveData_GetSpecialEncounters(param0->unk_C4->unk_00);
|
|
}
|
|
|
|
static void SetRepelSteps(UnkStruct_ov84_0223B5A0 *param0, u8 stepCount)
|
|
{
|
|
u8 *repelSteps = SpecialEncounter_GetRepelSteps(ov84_0223B9E4(param0));
|
|
*repelSteps = stepCount;
|
|
}
|
|
|
|
static void SetBlackWhiteFluteActive(UnkStruct_ov84_0223B5A0 *param0, u8 param1)
|
|
{
|
|
SpecialEncounter_SetFluteFactor(ov84_0223B9E4(param0), param1);
|
|
}
|
|
|
|
static void ov84_0223BA14(void *param0)
|
|
{
|
|
UnkStruct_ov84_0223B5A0 *v0 = param0;
|
|
|
|
Bg_RunScheduledUpdates(v0->unk_00);
|
|
VramTransfer_Process();
|
|
SpriteSystem_TransferOam();
|
|
OS_SetIrqCheckFlag(OS_IE_V_BLANK);
|
|
}
|
|
|
|
static void ov84_0223BA3C(void)
|
|
{
|
|
UnkStruct_02099F80 v0 = {
|
|
GX_VRAM_BG_128_A,
|
|
GX_VRAM_BGEXTPLTT_NONE,
|
|
GX_VRAM_SUB_BG_128_C,
|
|
GX_VRAM_SUB_BGEXTPLTT_NONE,
|
|
GX_VRAM_OBJ_128_B,
|
|
GX_VRAM_OBJEXTPLTT_NONE,
|
|
GX_VRAM_SUB_OBJ_16_I,
|
|
GX_VRAM_SUB_OBJEXTPLTT_NONE,
|
|
GX_VRAM_TEX_NONE,
|
|
GX_VRAM_TEXPLTT_NONE
|
|
};
|
|
|
|
GXLayers_SetBanks(&v0);
|
|
}
|
|
|
|
static void ov84_0223BA5C(BgConfig *param0)
|
|
{
|
|
{
|
|
GraphicsModes v0 = {
|
|
GX_DISPMODE_GRAPHICS,
|
|
GX_BGMODE_0,
|
|
GX_BGMODE_1,
|
|
GX_BG0_AS_2D,
|
|
};
|
|
SetAllGraphicsModes(&v0);
|
|
}
|
|
{
|
|
BgTemplate v1 = {
|
|
0x0,
|
|
0x0,
|
|
0x800,
|
|
0x0,
|
|
0x1,
|
|
GX_BG_COLORMODE_16,
|
|
GX_BG_SCRBASE_0xf800,
|
|
GX_BG_CHARBASE_0x10000,
|
|
GX_BG_EXTPLTT_01,
|
|
0x0,
|
|
0x0,
|
|
0x0,
|
|
0x0
|
|
};
|
|
Bg_InitFromTemplate(param0, 0, &v1, 0);
|
|
Bg_ClearTilemap(param0, 0);
|
|
}
|
|
{
|
|
BgTemplate v2 = {
|
|
0x0,
|
|
0x0,
|
|
0x800,
|
|
0x0,
|
|
0x1,
|
|
GX_BG_COLORMODE_16,
|
|
GX_BG_SCRBASE_0xf000,
|
|
GX_BG_CHARBASE_0x00000,
|
|
GX_BG_EXTPLTT_01,
|
|
0x1,
|
|
0x0,
|
|
0x0,
|
|
0x0
|
|
};
|
|
Bg_InitFromTemplate(param0, 1, &v2, 0);
|
|
}
|
|
{
|
|
BgTemplate v3 = {
|
|
0x0,
|
|
0x0,
|
|
0x800,
|
|
0x0,
|
|
0x1,
|
|
GX_BG_COLORMODE_16,
|
|
GX_BG_SCRBASE_0xe800,
|
|
GX_BG_CHARBASE_0x10000,
|
|
GX_BG_EXTPLTT_01,
|
|
0x2,
|
|
0x0,
|
|
0x0,
|
|
0x0
|
|
};
|
|
|
|
Bg_InitFromTemplate(param0, 2, &v3, 0);
|
|
Bg_ClearTilemap(param0, 2);
|
|
}
|
|
{
|
|
BgTemplate v4 = {
|
|
0x0,
|
|
0x0,
|
|
0x800,
|
|
0x0,
|
|
0x1,
|
|
GX_BG_COLORMODE_16,
|
|
GX_BG_SCRBASE_0xe000,
|
|
GX_BG_CHARBASE_0x00000,
|
|
GX_BG_EXTPLTT_01,
|
|
0x3,
|
|
0x0,
|
|
0x0,
|
|
0x0
|
|
};
|
|
Bg_InitFromTemplate(param0, 3, &v4, 0);
|
|
}
|
|
{
|
|
BgTemplate v5 = {
|
|
0x0,
|
|
0x0,
|
|
0x800,
|
|
0x0,
|
|
0x1,
|
|
GX_BG_COLORMODE_16,
|
|
GX_BG_SCRBASE_0xf800,
|
|
GX_BG_CHARBASE_0x10000,
|
|
GX_BG_EXTPLTT_01,
|
|
0x0,
|
|
0x0,
|
|
0x0,
|
|
0x0
|
|
};
|
|
Bg_InitFromTemplate(param0, 4, &v5, 0);
|
|
Bg_ClearTilemap(param0, 4);
|
|
}
|
|
{
|
|
BgTemplate v6 = {
|
|
0x0,
|
|
0x0,
|
|
0x800,
|
|
0x0,
|
|
0x1,
|
|
GX_BG_COLORMODE_16,
|
|
GX_BG_SCRBASE_0xf000,
|
|
GX_BG_CHARBASE_0x08000,
|
|
GX_BG_EXTPLTT_01,
|
|
0x1,
|
|
0x0,
|
|
0x0,
|
|
0x0
|
|
};
|
|
Bg_InitFromTemplate(param0, 5, &v6, 0);
|
|
}
|
|
{
|
|
BgTemplate v7 = {
|
|
0x0,
|
|
0x0,
|
|
0x400,
|
|
0x0,
|
|
0x1,
|
|
GX_BG_COLORMODE_256,
|
|
GX_BG_SCRBASE_0xe800,
|
|
GX_BG_CHARBASE_0x00000,
|
|
GX_BG_EXTPLTT_01,
|
|
0x2,
|
|
0x0,
|
|
0x0,
|
|
0x0
|
|
};
|
|
Bg_InitFromTemplate(param0, 7, &v7, 1);
|
|
Bg_ScheduleAffineRotationCenter(param0, 7, 9, 128);
|
|
Bg_ScheduleAffineRotationCenter(param0, 7, 12, 80);
|
|
}
|
|
|
|
Bg_ClearTilesRange(0, 32, 0, HEAP_ID_6);
|
|
Bg_ClearTilesRange(4, 32, 0, HEAP_ID_6);
|
|
}
|
|
|
|
static void ov84_0223BBC4(BgConfig *param0)
|
|
{
|
|
GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG0 | GX_PLANEMASK_BG1 | GX_PLANEMASK_BG2 | GX_PLANEMASK_BG3 | GX_PLANEMASK_OBJ, 0);
|
|
GXLayers_EngineBToggleLayers(GX_PLANEMASK_BG0 | GX_PLANEMASK_BG1 | GX_PLANEMASK_BG3 | GX_PLANEMASK_OBJ, 0);
|
|
Bg_FreeTilemapBuffer(param0, 7);
|
|
Bg_FreeTilemapBuffer(param0, 5);
|
|
Bg_FreeTilemapBuffer(param0, 4);
|
|
Bg_FreeTilemapBuffer(param0, 3);
|
|
Bg_FreeTilemapBuffer(param0, 2);
|
|
Bg_FreeTilemapBuffer(param0, 1);
|
|
Bg_FreeTilemapBuffer(param0, 0);
|
|
Heap_FreeToHeapExplicit(HEAP_ID_6, param0);
|
|
}
|
|
|
|
static void ov84_0223BC1C(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
param0->unk_D4 = NARC_ctor(NARC_INDEX_GRAPHIC__PL_BAG_GRA, HEAP_ID_6);
|
|
|
|
Graphics_LoadTilesToBgLayerFromOpenNARC(param0->unk_D4, 11, param0->unk_00, 1, 0, 0, 0, HEAP_ID_6);
|
|
Graphics_LoadTilemapToBgLayerFromOpenNARC(param0->unk_D4, 14, param0->unk_00, 1, 0, 0, 0, HEAP_ID_6);
|
|
Graphics_LoadTilemapToBgLayerFromOpenNARC(param0->unk_D4, 13, param0->unk_00, 3, 0, 0, 0, HEAP_ID_6);
|
|
Graphics_LoadPaletteFromOpenNARC(param0->unk_D4, 12, 0, 0, 0, HEAP_ID_6);
|
|
Graphics_LoadPaletteFromOpenNARC(param0->unk_D4, 22, 0, 16 * 13 * 2, 32, HEAP_ID_6);
|
|
Font_LoadScreenIndicatorsPalette(0, 11 * 32, HEAP_ID_6);
|
|
LoadStandardWindowGraphics(param0->unk_00, 0, 1024 - 9, 14, 0, HEAP_ID_6);
|
|
LoadMessageBoxGraphics(param0->unk_00, 0, 1024 - 9 - (18 + 12), 12, Options_Frame(param0->unk_D0), HEAP_ID_6);
|
|
Graphics_LoadTilesToBgLayerFromOpenNARC(param0->unk_D4, 15, param0->unk_00, 5, 0, 0, 0, HEAP_ID_6);
|
|
Graphics_LoadPaletteFromOpenNARC(param0->unk_D4, 16, 4, 0, 0, HEAP_ID_6);
|
|
Graphics_LoadTilemapToBgLayerFromOpenNARC(param0->unk_D4, 17, param0->unk_00, 5, 0, 0, 0, HEAP_ID_6);
|
|
Graphics_LoadTilesToBgLayerFromOpenNARC(param0->unk_D4, 32, param0->unk_00, 7, 0, 0, 0, HEAP_ID_6);
|
|
Graphics_LoadTilemapToBgLayerFromOpenNARC(param0->unk_D4, 33, param0->unk_00, 7, 0, 0, 0, HEAP_ID_6);
|
|
Graphics_LoadTilesToBgLayerFromOpenNARC(param0->unk_D4, 19, param0->unk_00, 4, 0, 0, 0, HEAP_ID_6);
|
|
Graphics_LoadPaletteFromOpenNARC(param0->unk_D4, 18, 4, 16 * 2 * 2, 0x20 * 2, HEAP_ID_6);
|
|
}
|
|
|
|
static void ov84_0223BDB4(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
param0->unk_114 = MessageLoader_Init(MESSAGE_LOADER_BANK_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_UNK_0007, HEAP_ID_6);
|
|
param0->unk_110 = sub_0200C440(1, 2, 0, HEAP_ID_6);
|
|
param0->unk_118 = StringTemplate_Default(HEAP_ID_6);
|
|
param0->unk_11C = MessageLoader_Init(MESSAGE_LOADER_BANK_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_ITEM_NAMES, HEAP_ID_6);
|
|
param0->unk_120 = MessageLoader_Init(MESSAGE_LOADER_BANK_HANDLE, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_MOVE_NAMES, HEAP_ID_6);
|
|
param0->unk_3F8 = Strbuf_Init(256, HEAP_ID_6);
|
|
}
|
|
|
|
static void ov84_0223BE24(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
u8 v0;
|
|
|
|
param0->unk_424 = 0;
|
|
|
|
for (v0 = 0; v0 < 8; v0++) {
|
|
if (param0->unk_C4->unk_04[v0].unk_00 != 0) {
|
|
param0->unk_424++;
|
|
}
|
|
}
|
|
}
|
|
|
|
u16 ov84_0223BE5C(UnkStruct_ov84_0223B5A0 *param0, u16 param1, u16 param2)
|
|
{
|
|
UnkStruct_ov84_0223BE5C *v0 = ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64];
|
|
|
|
if (param2 == 0) {
|
|
return v0->unk_00[param1].item;
|
|
}
|
|
|
|
return v0->unk_00[param1].quantity;
|
|
}
|
|
|
|
static void ov84_0223BE84(MessageLoader *param0, Strbuf *param1, u16 param2, u32 param3)
|
|
{
|
|
MessageLoader_GetStrbuf(param0, param2, param1);
|
|
}
|
|
|
|
static void ov84_0223BE94(MessageLoader *param0, Strbuf *param1, u16 param2, u32 param3)
|
|
{
|
|
MessageLoader_GetStrbuf(param0, Item_MoveForTMHM(param2), param1);
|
|
}
|
|
|
|
static void ov84_0223BEAC(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
UnkStruct_ov84_0223BE5C *v0;
|
|
u16 v1, v2;
|
|
|
|
param0->unk_C4->unk_64 = 0;
|
|
v0 = param0->unk_C4->unk_04;
|
|
|
|
if (param0->unk_C4->unk_6C == NULL) {
|
|
for (v1 = 0; v1 < 8; v1++) {
|
|
if (v0[v1].unk_00 == NULL) {
|
|
break;
|
|
}
|
|
|
|
v0[v1].unk_04 = 1;
|
|
v0[v1].unk_06 = 0;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
for (v1 = 0; v1 < 8; v1++) {
|
|
u8 v3, v4;
|
|
|
|
if (v0[v1].unk_00 == NULL) {
|
|
break;
|
|
}
|
|
|
|
BagCursor_GetFieldPocketPosition(param0->unk_C4->unk_6C, v0[v1].unk_08, &v3, &v4);
|
|
|
|
if (v3 == 0) {
|
|
v3 = 1;
|
|
}
|
|
|
|
v0[v1].unk_04 = v3;
|
|
v0[v1].unk_06 = v4;
|
|
}
|
|
|
|
v2 = BagCursor_GetFieldPocket(param0->unk_C4->unk_6C);
|
|
|
|
for (v1 = 0; v1 < 8; v1++) {
|
|
if (v0[v1].unk_00 == NULL) {
|
|
break;
|
|
}
|
|
|
|
if (v0[v1].unk_08 == v2) {
|
|
param0->unk_C4->unk_64 = (u8)v1;
|
|
}
|
|
}
|
|
}
|
|
|
|
static void ov84_0223BF68(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
UnkStruct_ov84_0223BE5C *v0;
|
|
u32 v1;
|
|
|
|
if (param0->unk_C4->unk_6C == NULL) {
|
|
return;
|
|
}
|
|
|
|
v0 = param0->unk_C4->unk_04;
|
|
|
|
for (v1 = 0; v1 < 8; v1++) {
|
|
if (v0[v1].unk_00 == NULL) {
|
|
break;
|
|
}
|
|
|
|
BagCursor_SetFieldPocketPosition(param0->unk_C4->unk_6C, v0[v1].unk_08, (u8)v0[v1].unk_04, (u8)v0[v1].unk_06);
|
|
}
|
|
|
|
BagCursor_SetFieldPocket(param0->unk_C4->unk_6C, v0[param0->unk_C4->unk_64].unk_08);
|
|
}
|
|
|
|
static void ov84_0223BFBC(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
UnkStruct_ov84_0223BE5C *v0;
|
|
u32 v1;
|
|
|
|
v0 = ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64];
|
|
param0->unk_160 = StringList_New(Unk_ov84_02241118[v0->unk_08] + 3, 6);
|
|
|
|
StringList_AddFromMessageBank(param0->unk_160, param0->unk_114, 32, 0xfffffffd);
|
|
|
|
if (v0->unk_08 == 3) {
|
|
for (v1 = 0; v1 < Unk_ov84_02241118[v0->unk_08]; v1++) {
|
|
if ((v0->unk_00[v1].item == 0) || (v0->unk_00[v1].quantity == 0)) {
|
|
break;
|
|
}
|
|
|
|
ov84_0223BE94(param0->unk_120, param0->unk_164[v1], v0->unk_00[v1].item, 6);
|
|
StringList_AddFromStrbuf(param0->unk_160, param0->unk_164[v1], v1);
|
|
}
|
|
|
|
StringList_AddFromMessageBank(param0->unk_160, param0->unk_114, 32, 0xfffffffe);
|
|
StringList_AddFromMessageBank(param0->unk_160, param0->unk_114, 32, 0xfffffffd);
|
|
|
|
v0->unk_09 = v1 + 3;
|
|
} else {
|
|
for (v1 = 0; v1 < Unk_ov84_02241118[v0->unk_08]; v1++) {
|
|
if ((v0->unk_00[v1].item == 0) || (v0->unk_00[v1].quantity == 0)) {
|
|
break;
|
|
}
|
|
|
|
ov84_0223BE84(param0->unk_11C, param0->unk_164[v1], v0->unk_00[v1].item, 6);
|
|
StringList_AddFromStrbuf(param0->unk_160, param0->unk_164[v1], v1);
|
|
}
|
|
|
|
if (param0->unk_C4->unk_65 != 5) {
|
|
if (v0->unk_08 == 4) {
|
|
StringList_AddFromMessageBank(param0->unk_160, param0->unk_114, 32, 0xfffffffe);
|
|
} else {
|
|
StringList_AddFromMessageBank(param0->unk_160, param0->unk_114, 41, 0xfffffffe);
|
|
}
|
|
|
|
StringList_AddFromMessageBank(param0->unk_160, param0->unk_114, 32, 0xfffffffd);
|
|
v0->unk_09 = v1 + 3;
|
|
} else {
|
|
StringList_AddFromMessageBank(param0->unk_160, param0->unk_114, 32, 0xfffffffd);
|
|
v0->unk_09 = v1 + 2;
|
|
}
|
|
}
|
|
}
|
|
|
|
static void ov84_0223C158(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
u32 v0;
|
|
|
|
for (v0 = 0; v0 < 165; v0++) {
|
|
param0->unk_164[v0] = Strbuf_Init(18, HEAP_ID_6);
|
|
}
|
|
}
|
|
|
|
static void ov84_0223C178(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
u32 v0;
|
|
|
|
for (v0 = 0; v0 < 165; v0++) {
|
|
Strbuf_Free(param0->unk_164[v0]);
|
|
}
|
|
}
|
|
|
|
static void ov84_0223C194(u16 *param0, u16 *param1, u8 param2)
|
|
{
|
|
u8 v0;
|
|
|
|
param2 -= 1;
|
|
|
|
if (param2 > 8) {
|
|
v0 = 8 - 1;
|
|
} else {
|
|
v0 = param2 - 1;
|
|
}
|
|
|
|
if (*param0 != 0) {
|
|
if (*param0 + v0 > param2 - 1) {
|
|
*param0 = param2 - 1 - v0;
|
|
}
|
|
}
|
|
|
|
if (*param0 + *param1 >= param2 - 1) {
|
|
*param1 = param2 - 1 - *param0;
|
|
}
|
|
}
|
|
|
|
static void ov84_0223C1D0(u16 *param0, u16 *param1, u8 param2, u8 param3)
|
|
{
|
|
u8 v0;
|
|
u8 v1;
|
|
|
|
param2 -= 1;
|
|
|
|
if (param2 > 8) {
|
|
v0 = 8 - 1;
|
|
} else {
|
|
v0 = param2 - 1;
|
|
}
|
|
|
|
if (!(*param1 >= (param3 >> 1) + 2)) {
|
|
return;
|
|
}
|
|
|
|
for (v1 = 0; v1 <= *param1 - (param3 >> 1) - 2; v1++) {
|
|
if (*param0 + v0 == param2 - 1) {
|
|
break;
|
|
}
|
|
*param1 -= 1;
|
|
*param0 += 1;
|
|
}
|
|
}
|
|
|
|
static void ov84_0223C224(UnkStruct_ov84_0223B5A0 *param0, u16 param1, u16 param2)
|
|
{
|
|
ListMenuTemplate v0;
|
|
|
|
v0 = Unk_ov84_02240FA8;
|
|
v0.choices = param0->unk_160;
|
|
v0.window = ¶m0->unk_04[0];
|
|
v0.count = param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_09;
|
|
v0.parent = (void *)param0;
|
|
|
|
if ((param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_08 == 3) || (param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_08 == 4)) {
|
|
v0.textXOffset = (32 + 3);
|
|
} else {
|
|
v0.textXOffset = 0;
|
|
}
|
|
|
|
param0->unk_15C = ListMenu_New(&v0, param1, param2, 6);
|
|
Window_ScheduleCopyToVRAM(¶m0->unk_04[0]);
|
|
}
|
|
|
|
static void ov84_0223C2AC(ListMenu *param0, u32 param1, u8 param2)
|
|
{
|
|
UnkStruct_ov84_0223B5A0 *v0 = (UnkStruct_ov84_0223B5A0 *)ListMenu_GetAttribute(param0, 19);
|
|
|
|
if (param2 != 1) {
|
|
switch (v0->unk_482) {
|
|
case 0:
|
|
Sound_PlayEffect(SEQ_SE_DP_GASA01);
|
|
break;
|
|
case 1:
|
|
Sound_PlayEffect(SEQ_SE_DP_GASA02);
|
|
break;
|
|
default:
|
|
Sound_PlayEffect(SEQ_SE_DP_GASA03);
|
|
}
|
|
|
|
v0->unk_482 = (v0->unk_482 + 1) % 3;
|
|
|
|
if ((v0->unk_492 == 0) || (ManagedSprite_IsAnimated(v0->unk_E0[0]) == 0)) {
|
|
ManagedSprite_SetAnimationFrame(v0->unk_E0[0], 0);
|
|
ManagedSprite_SetAnim(
|
|
v0->unk_E0[0], 8 + v0->unk_C4->unk_04[v0->unk_C4->unk_64].unk_08);
|
|
}
|
|
}
|
|
|
|
if (v0->unk_47A == 1) {
|
|
return;
|
|
}
|
|
|
|
Window_FillTilemap(&v0->unk_04[1], 0);
|
|
|
|
if (param1 != 0xfffffffe) {
|
|
UnkStruct_ov84_0223BE5C *v1;
|
|
|
|
v1 = &v0->unk_C4->unk_04[v0->unk_C4->unk_64];
|
|
ov84_0223F528(v0, v1->unk_00[param1].item);
|
|
ov84_02240AD8(v0, v1->unk_00[param1].item);
|
|
} else {
|
|
ov84_0223F528(v0, 0xffff);
|
|
ov84_02240AD8(v0, 0xffff);
|
|
}
|
|
|
|
if (v0->unk_479 == 0) {
|
|
Window_ScheduleCopyToVRAM(&v0->unk_04[1]);
|
|
}
|
|
}
|
|
|
|
static void ov84_0223C3B8(ListMenu *param0, u32 param1, u8 param2)
|
|
{
|
|
UnkStruct_ov84_0223B5A0 *v0 = (UnkStruct_ov84_0223B5A0 *)ListMenu_GetAttribute(param0, 19);
|
|
UnkStruct_ov84_0223BE5C *v1 = &v0->unk_C4->unk_04[v0->unk_C4->unk_64];
|
|
|
|
if ((v0->unk_47A == 1) && (v0->unk_47C == param1)) {
|
|
ListMenu_SetAltTextColors(param0, 8, 0, 9);
|
|
} else {
|
|
ListMenu_SetAltTextColors(param0, 1, 0, 2);
|
|
}
|
|
|
|
if (v1->unk_08 == 7) {
|
|
if ((param1 != 0xfffffffd) && (param1 != 0xfffffffe)) {
|
|
if (Bag_GetRegisteredItem(v0->unk_C8) == v1->unk_00[param1].item) {
|
|
ov84_0223FA44(v0, param2);
|
|
}
|
|
}
|
|
} else if (v1->unk_08 == 3) {
|
|
if (param1 == 0xfffffffe) {
|
|
ov84_0223F9F0(v0, param2);
|
|
} else if (param1 != 0xfffffffd) {
|
|
ov84_0223F8D0(v0, &v1->unk_00[param1], param2);
|
|
}
|
|
} else if (v1->unk_08 == 4) {
|
|
if (param1 == 0xfffffffe) {
|
|
ov84_0223F9F0(v0, param2);
|
|
} else if (param1 != 0xfffffffd) {
|
|
ov84_0223F94C(v0, &v1->unk_00[param1], param2);
|
|
}
|
|
} else {
|
|
if ((param1 != 0xfffffffd) && (param1 != 0xfffffffe)) {
|
|
if ((v0->unk_47A == 1) && (v0->unk_47C == param1)) {
|
|
ov84_0223F81C(v0, v1->unk_00[param1].quantity, param2, TEXT_COLOR(8, 9, 0));
|
|
} else {
|
|
ov84_0223F81C(v0, v1->unk_00[param1].quantity, param2, TEXT_COLOR(1, 2, 0));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
static void ov84_0223C4E0(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
ListMenu_Free(param0->unk_15C, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04);
|
|
StringList_Free(param0->unk_160);
|
|
param0->unk_15C = NULL;
|
|
}
|
|
|
|
static int ov84_0223C51C(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
ov84_0223D0FC(param0);
|
|
|
|
if (ov84_0223ED14(param0) == 1) {
|
|
return 1;
|
|
}
|
|
|
|
if (ov84_0223C750(param0) == 1) {
|
|
return 2;
|
|
}
|
|
|
|
if (ov84_0223CD40(param0) == 1) {
|
|
return 2;
|
|
}
|
|
|
|
{
|
|
u8 v0 = ov84_0223C5B8(param0);
|
|
|
|
if (v0 == 1) {
|
|
ov84_02240B34(param0, 2);
|
|
Window_FillTilemap(¶m0->unk_04[1], 0);
|
|
Window_ClearAndCopyToVRAM(¶m0->unk_04[1]);
|
|
ov84_0223D5AC(param0);
|
|
|
|
if (param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_08 == 3) {
|
|
ov84_0223D7E8(param0, 1);
|
|
}
|
|
|
|
return 4;
|
|
} else if (v0 == 2) {
|
|
ov84_0223D2A0(param0);
|
|
return 3;
|
|
} else if (v0 == 3) {
|
|
return 24;
|
|
}
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
static u8 ov84_0223C5B8(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
UnkStruct_ov84_0223BE5C *v0;
|
|
u32 v1;
|
|
u16 v2, v3;
|
|
|
|
v0 = ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64];
|
|
ListMenu_GetListAndCursorPos(param0->unk_15C, &v0->unk_06, &v0->unk_04);
|
|
|
|
if (gSystem.pressedKeys & PAD_BUTTON_SELECT) {
|
|
if (ov84_0223D244(param0) == 1) {
|
|
Sound_PlayEffect(SEQ_SE_CONFIRM);
|
|
return 2;
|
|
}
|
|
}
|
|
|
|
v1 = ListMenu_ProcessInput(param0->unk_15C);
|
|
ListMenu_GetListAndCursorPos(param0->unk_15C, &v2, &v3);
|
|
|
|
if (v0->unk_04 != v3) {
|
|
ManagedSprite_SetPositionXY(
|
|
param0->unk_E0[4], 177, 24 + (v3 - 1) * 16);
|
|
}
|
|
|
|
v0->unk_06 = v2;
|
|
v0->unk_04 = v3;
|
|
|
|
if (v1 == 0xffffffff) {
|
|
if (ov84_0223D1F4(param0) == 1) {
|
|
v1 = ListMenu_GetIndexOfChoice(param0->unk_15C, v2 + v3);
|
|
param0->unk_490 = 1;
|
|
}
|
|
}
|
|
|
|
switch (v1) {
|
|
case 0xffffffff: {
|
|
u8 v4 = ListMenu_GetLastAction(param0->unk_15C);
|
|
|
|
if (v4 == LIST_MENU_ACTION_MOVE_UP) {
|
|
ov84_0223EB08(param0, 36);
|
|
} else if (v4 == LIST_MENU_ACTION_MOVE_DOWN) {
|
|
ov84_0223EB08(param0, -36);
|
|
}
|
|
} break;
|
|
case 0xfffffffe:
|
|
if (param0->unk_C4->unk_65 == 5) {
|
|
return 0;
|
|
}
|
|
|
|
Sound_PlayEffect(SEQ_SE_CONFIRM);
|
|
param0->unk_C4->unk_66 = 0;
|
|
param0->unk_C4->unk_68 = 5;
|
|
sub_0208C120(1, HEAP_ID_6);
|
|
return 3;
|
|
default:
|
|
Sound_PlayEffect(SEQ_SE_CONFIRM);
|
|
param0->unk_C4->unk_66 = (u16)v0->unk_00[v1].item;
|
|
param0->unk_48A = (u16)v0->unk_00[v1].quantity;
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
static void ov84_0223C720(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
param0->unk_427 = 6 + (90 - (10 * param0->unk_424)) / (param0->unk_424 + 1);
|
|
param0->unk_428 = 10 + param0->unk_427 - 6;
|
|
}
|
|
|
|
static u8 ov84_0223C750(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
if (gSystem.pressedKeysRepeatable & PAD_KEY_LEFT) {
|
|
if (param0->unk_424 == 1) {
|
|
return 0;
|
|
}
|
|
|
|
Sound_PlayEffect(SEQ_SE_DP_BAG_030);
|
|
|
|
if (param0->unk_C4->unk_64 != 0) {
|
|
param0->unk_429.unk_00 = param0->unk_C4->unk_64 - 1;
|
|
param0->unk_478 = param0->unk_C4->unk_64 - 1;
|
|
} else {
|
|
param0->unk_429.unk_00 = param0->unk_424 - 1;
|
|
param0->unk_478 = param0->unk_424 - 1;
|
|
}
|
|
|
|
ov84_02240B68(param0);
|
|
param0->unk_429.unk_01 = 0;
|
|
ov84_0223C848(param0);
|
|
Bg_ScheduleTilemapTransfer(param0->unk_00, 4);
|
|
|
|
return 1;
|
|
}
|
|
if (gSystem.pressedKeysRepeatable & PAD_KEY_RIGHT) {
|
|
if (param0->unk_424 == 1) {
|
|
return 0;
|
|
}
|
|
|
|
Sound_PlayEffect(SEQ_SE_DP_BAG_030);
|
|
|
|
if (param0->unk_C4->unk_64 + 1 < param0->unk_424) {
|
|
param0->unk_429.unk_00 = param0->unk_C4->unk_64 + 1;
|
|
param0->unk_478 = param0->unk_C4->unk_64 + 1;
|
|
} else {
|
|
param0->unk_429.unk_00 = 0;
|
|
param0->unk_478 = 0;
|
|
}
|
|
|
|
ov84_02240B68(param0);
|
|
param0->unk_429.unk_01 = 1;
|
|
ov84_0223C848(param0);
|
|
Bg_ScheduleTilemapTransfer(param0->unk_00, 4);
|
|
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
static void ov84_0223C848(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
ov84_0223C89C(param0);
|
|
param0->unk_429.unk_04 = 3;
|
|
param0->unk_429.unk_07_7 = 0;
|
|
}
|
|
|
|
static void ov84_0223C868(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
if (param0->unk_429.unk_01 != 2) {
|
|
ov84_0223C89C(param0);
|
|
} else {
|
|
param0->unk_429.unk_02 = 2;
|
|
}
|
|
|
|
param0->unk_429.unk_04 = 0;
|
|
param0->unk_429.unk_07_7 = 1;
|
|
}
|
|
|
|
static void ov84_0223C89C(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
UnkStruct_ov84_0223C920 *v0 = ¶m0->unk_429;
|
|
|
|
v0->unk_02 = 0;
|
|
v0->unk_03 = 0;
|
|
v0->unk_05 = 0;
|
|
v0->unk_07_0 = 0;
|
|
v0->unk_07_4 = 0;
|
|
|
|
ov84_0223C4E0(param0);
|
|
Window_FillTilemap(¶m0->unk_04[0], 0);
|
|
Window_FillTilemap(¶m0->unk_04[1], 0);
|
|
Window_ScheduleCopyToVRAM(¶m0->unk_04[0]);
|
|
Window_ScheduleCopyToVRAM(¶m0->unk_04[1]);
|
|
ManagedSprite_SetDrawFlag(param0->unk_E0[4], 0);
|
|
ManagedSprite_SetDrawFlag(param0->unk_E0[7], 0);
|
|
ov84_0223F3AC(param0, param0->unk_C4->unk_64, 0);
|
|
ov84_0223CF20(param0, param0->unk_C4->unk_64, 0);
|
|
}
|
|
|
|
static u8 ov84_0223C920(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
UnkStruct_ov84_0223C920 *v0;
|
|
int v1;
|
|
u8 v2;
|
|
u8 v3;
|
|
|
|
v0 = ¶m0->unk_429;
|
|
|
|
if (TouchScreen_Touched() == 0) {
|
|
v0->unk_07_4 = 1;
|
|
}
|
|
|
|
v1 = ov84_0223CE08(param0);
|
|
|
|
if ((v1 == 0xffffffff) || (v1 != v0->unk_00)) {
|
|
v0->unk_07_0 = 1;
|
|
}
|
|
|
|
if (ov84_0223CA5C(param0) == 0) {
|
|
if ((v0->unk_07_4 == 1) && (v1 != 0xffffffff)) {
|
|
param0->unk_C4->unk_64 = v0->unk_00;
|
|
|
|
if (v0->unk_00 > (u8)v1) {
|
|
v0->unk_01 = 0;
|
|
v0->unk_02 = 0;
|
|
ov84_0223CF20(param0, v0->unk_00, 0);
|
|
ov84_0223F3AC(param0, v0->unk_00, 0);
|
|
} else if (v0->unk_00 < (u8)v1) {
|
|
v0->unk_01 = 1;
|
|
v0->unk_02 = 0;
|
|
ov84_0223CF20(param0, v0->unk_00, 0);
|
|
ov84_0223F3AC(param0, v0->unk_00, 0);
|
|
} else {
|
|
v0->unk_01 = 2;
|
|
}
|
|
|
|
v0->unk_00 = (u8)v1;
|
|
v0->unk_07_0 = 0;
|
|
v0->unk_07_4 = 0;
|
|
v0->unk_04 = 0;
|
|
param0->unk_478 = (u8)v1;
|
|
|
|
ov84_02240B68(param0);
|
|
}
|
|
}
|
|
|
|
v2 = ov84_0223CBD8(param0);
|
|
v3 = ov84_0223CE60(param0);
|
|
|
|
ov84_02240B80(param0);
|
|
|
|
if ((v2 == 1) && (v3 == 1) && (v0->unk_07_0 == 1) && (ov84_02240B50(param0) == 1)) {
|
|
if (v0->unk_07_7 == 1) {
|
|
ov84_0223CF20(param0, v0->unk_00, 1);
|
|
Bg_ScheduleTilemapTransfer(param0->unk_00, 4);
|
|
}
|
|
|
|
ManagedSprite_SetDrawFlag(param0->unk_E0[7], 1);
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
static u8 ov84_0223CA5C(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
UnkStruct_ov84_0223C920 *v0 = ¶m0->unk_429;
|
|
|
|
if (gSystem.pressedKeys & PAD_KEY_LEFT) {
|
|
if (param0->unk_424 == 1) {
|
|
return 1;
|
|
}
|
|
|
|
Sound_PlayEffect(SEQ_SE_DP_BAG_030);
|
|
ManagedSprite_SetAnim(param0->unk_E0[0], param0->unk_C4->unk_04[v0->unk_00].unk_08);
|
|
ov84_0223CF20(param0, v0->unk_00, 0);
|
|
Bg_ScheduleTilemapTransfer(param0->unk_00, 4);
|
|
|
|
param0->unk_C4->unk_64 = v0->unk_00;
|
|
|
|
if (v0->unk_00 != 0) {
|
|
v0->unk_00 = v0->unk_00 - 1;
|
|
param0->unk_478 = param0->unk_478 - 1;
|
|
} else {
|
|
v0->unk_00 = param0->unk_424 - 1;
|
|
param0->unk_478 = param0->unk_424 - 1;
|
|
}
|
|
|
|
v0->unk_02 = 0;
|
|
v0->unk_01 = 0;
|
|
v0->unk_07_4 = 1;
|
|
v0->unk_07_0 = 1;
|
|
v0->unk_07_7 = 0;
|
|
|
|
if (v0->unk_04 != 3) {
|
|
v0->unk_04 = 4;
|
|
}
|
|
|
|
ov84_02240B68(param0);
|
|
return 1;
|
|
}
|
|
if (gSystem.pressedKeys & PAD_KEY_RIGHT) {
|
|
if (param0->unk_424 == 1) {
|
|
return 1;
|
|
}
|
|
|
|
Sound_PlayEffect(SEQ_SE_DP_BAG_030);
|
|
ManagedSprite_SetAnim(param0->unk_E0[0], param0->unk_C4->unk_04[v0->unk_00].unk_08);
|
|
ov84_0223CF20(param0, v0->unk_00, 0);
|
|
Bg_ScheduleTilemapTransfer(param0->unk_00, 4);
|
|
|
|
param0->unk_C4->unk_64 = v0->unk_00;
|
|
|
|
if (v0->unk_00 + 1 < param0->unk_424) {
|
|
v0->unk_00 = v0->unk_00 + 1;
|
|
param0->unk_478 = param0->unk_478 + 1;
|
|
} else {
|
|
v0->unk_00 = 0;
|
|
param0->unk_478 = 0;
|
|
}
|
|
|
|
v0->unk_02 = 0;
|
|
v0->unk_01 = 1;
|
|
v0->unk_07_4 = 1;
|
|
v0->unk_07_0 = 1;
|
|
v0->unk_07_7 = 0;
|
|
|
|
if (v0->unk_04 != 3) {
|
|
v0->unk_04 = 4;
|
|
}
|
|
|
|
ov84_02240B68(param0);
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
static u8 ov84_0223CBD8(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
UnkStruct_ov84_0223C920 *v0 = ¶m0->unk_429;
|
|
|
|
switch (v0->unk_02) {
|
|
case 0:
|
|
v0->unk_03 = 0;
|
|
v0->unk_02++;
|
|
break;
|
|
case 1:
|
|
if (v0->unk_03 < 8) {
|
|
v0->unk_03++;
|
|
ov84_0223F2FC(param0);
|
|
} else {
|
|
if (param0->unk_15C != NULL) {
|
|
ListMenu_Free(param0->unk_15C, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04);
|
|
StringList_Free(param0->unk_160);
|
|
}
|
|
|
|
param0->unk_C4->unk_64 = v0->unk_00;
|
|
|
|
ManagedSprite_SetAnim(param0->unk_E0[0], param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_08);
|
|
ov84_0223F438(param0);
|
|
ov84_0223F3AC(param0, param0->unk_C4->unk_64, 1);
|
|
ov84_0223BFBC(param0);
|
|
ov84_0223C194(¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04, param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_09);
|
|
ov84_0223C1D0(¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04, param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_09, 9);
|
|
ov84_0223C224(param0, param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06, param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04);
|
|
ManagedSprite_SetPositionXY(param0->unk_E0[4], 177, 24 + (param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04 - 1) * 16);
|
|
ManagedSprite_SetDrawFlag(param0->unk_E0[4], 1);
|
|
|
|
v0->unk_02++;
|
|
return 1;
|
|
}
|
|
|
|
break;
|
|
case 2:
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
static u8 ov84_0223CD40(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
int v0 = ov84_0223CDB0(param0);
|
|
|
|
if (v0 == 0xffffffff) {
|
|
return 0;
|
|
}
|
|
|
|
if (param0->unk_424 == 1) {
|
|
return 0;
|
|
}
|
|
|
|
if (param0->unk_C4->unk_64 == (u8)v0) {
|
|
param0->unk_429.unk_01 = 2;
|
|
} else if (param0->unk_C4->unk_64 > (u8)v0) {
|
|
param0->unk_429.unk_01 = 0;
|
|
} else {
|
|
param0->unk_429.unk_01 = 1;
|
|
}
|
|
|
|
param0->unk_429.unk_00 = (u8)v0;
|
|
param0->unk_478 = (u8)v0;
|
|
|
|
ov84_02240B68(param0);
|
|
ov84_0223C868(param0);
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int ov84_0223CDB0(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
int v0 = TouchScreen_CheckRectanglePressed(Unk_ov84_022410C8[param0->unk_424].unk_04);
|
|
|
|
if (v0 != 0xffffffff) {
|
|
u16 v1 = 0xfffe;
|
|
|
|
if (Bg_DoesPixelAtXYMatchVal(param0->unk_00, 4, gSystem.touchX, gSystem.touchY, &v1) == 0) {
|
|
return 0xffffffff;
|
|
}
|
|
}
|
|
|
|
return v0;
|
|
}
|
|
|
|
static int ov84_0223CE08(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
int v0 = TouchScreen_CheckRectangleHeld(Unk_ov84_022410C8[param0->unk_424].unk_04);
|
|
|
|
if (v0 != 0xffffffff) {
|
|
u16 v1 = 0xfffe;
|
|
|
|
if (Bg_DoesPixelAtXYMatchVal(param0->unk_00, 4, gSystem.touchX, gSystem.touchY, &v1) == 0) {
|
|
return 0xffffffff;
|
|
}
|
|
}
|
|
|
|
return v0;
|
|
}
|
|
|
|
static u8 ov84_0223CE60(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
UnkStruct_ov84_0223C920 *v0 = ¶m0->unk_429;
|
|
|
|
switch (v0->unk_04) {
|
|
case 0:
|
|
v0->unk_05 = 0;
|
|
v0->unk_07_7 = 1;
|
|
v0->unk_06 = v0->unk_00;
|
|
v0->unk_04++;
|
|
break;
|
|
case 1:
|
|
if (v0->unk_05 != 3) {
|
|
break;
|
|
}
|
|
|
|
Sound_PlayEffect(SEQ_SE_DP_BUTTON9);
|
|
ov84_0223CF20(param0, v0->unk_06, 2);
|
|
Bg_ScheduleTilemapTransfer(param0->unk_00, 4);
|
|
ov84_02240E24(param0, Unk_ov84_022410C8[param0->unk_424].unk_00[v0->unk_06 * 2] * 8 + 20, Unk_ov84_022410C8[param0->unk_424].unk_00[v0->unk_06 * 2 + 1] * 8 + 20);
|
|
|
|
v0->unk_04++;
|
|
break;
|
|
case 2:
|
|
if (v0->unk_05 != 7) {
|
|
break;
|
|
}
|
|
|
|
v0->unk_04++;
|
|
return 1;
|
|
case 3:
|
|
return 1;
|
|
case 4:
|
|
v0->unk_04 = 3;
|
|
return 1;
|
|
}
|
|
|
|
v0->unk_05++;
|
|
return 0;
|
|
}
|
|
|
|
static void ov84_0223CF20(UnkStruct_ov84_0223B5A0 *param0, u8 param1, u8 param2)
|
|
{
|
|
u16 *v0;
|
|
const u8 *v1;
|
|
u16 v2;
|
|
u8 v3;
|
|
u8 v4, v5;
|
|
|
|
v0 = (u16 *)Bg_GetTilemapBuffer(param0->unk_00, 4);
|
|
v1 = &Unk_ov84_022410C8[param0->unk_424].unk_00[param1 * 2];
|
|
v3 = param0->unk_C4->unk_04[param1].unk_08;
|
|
v2 = (v3 / 2) * (30 * 5) + (v3 & 1) * 15 + 30 + param2 * 5;
|
|
|
|
for (v4 = 0; v4 < 5; v4++) {
|
|
for (v5 = 0; v5 < 5; v5++) {
|
|
v0[(v4 + v1[1]) * 32 + v5 + v1[0]] = v2 + v4 * 30 + v5 + (2 << 12);
|
|
}
|
|
}
|
|
}
|
|
|
|
static void ov84_0223CFB0(UnkStruct_ov84_0223B5A0 *param0, u8 param1)
|
|
{
|
|
u16 *v0;
|
|
const u8 *v1;
|
|
u16 v2;
|
|
u8 v3;
|
|
u8 v4, v5;
|
|
|
|
v0 = (u16 *)Bg_GetTilemapBuffer(param0->unk_00, 4);
|
|
v2 = 0x276 + 6 * param1;
|
|
|
|
for (v4 = 0; v4 < 6; v4++) {
|
|
for (v5 = 0; v5 < 6; v5++) {
|
|
v0[(7 + v4) * 32 + 13 + v5] = v2 + v4 * 30 + v5 + (3 << 12);
|
|
}
|
|
}
|
|
|
|
Bg_ScheduleTilemapTransfer(param0->unk_00, 4);
|
|
}
|
|
|
|
static void ov84_0223D014(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
switch (param0->unk_490) {
|
|
case 0:
|
|
break;
|
|
case 1:
|
|
ov84_02240E24(param0, 128, 80);
|
|
Sound_PlayEffect(SEQ_SE_DP_BUTTON9);
|
|
ov84_0223CFB0(param0, 2);
|
|
|
|
param0->unk_491 = 0;
|
|
param0->unk_490++;
|
|
break;
|
|
case 2:
|
|
if (param0->unk_491 == 3) {
|
|
ov84_0223CFB0(param0, 1);
|
|
|
|
param0->unk_490++;
|
|
param0->unk_491 = 0;
|
|
} else {
|
|
param0->unk_491++;
|
|
}
|
|
|
|
break;
|
|
case 3:
|
|
if (param0->unk_491 == 2) {
|
|
ov84_0223CFB0(param0, 0);
|
|
|
|
param0->unk_490 = 0;
|
|
param0->unk_491 = 0;
|
|
} else {
|
|
param0->unk_491++;
|
|
}
|
|
}
|
|
}
|
|
|
|
static void ov84_0223D0BC(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
u8 v0;
|
|
|
|
ov84_0223CFB0(param0, 0);
|
|
if (param0->unk_424 != 1) {
|
|
for (v0 = 0; v0 < param0->unk_424; v0++) {
|
|
ov84_0223CF20(param0, v0, 0);
|
|
}
|
|
}
|
|
|
|
Bg_ScheduleTilemapTransfer(param0->unk_00, 4);
|
|
}
|
|
|
|
static void ov84_0223D0FC(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
if (param0->unk_481 == 0) {
|
|
s16 v0, v1;
|
|
|
|
switch (param0->unk_480) {
|
|
case 0:
|
|
case 1:
|
|
ManagedSprite_GetPositionXY(param0->unk_E0[2], &v0, &v1);
|
|
|
|
v0 -= 1;
|
|
ManagedSprite_SetPositionXY(param0->unk_E0[2], v0, v1);
|
|
ManagedSprite_GetPositionXY(param0->unk_E0[3], &v0, &v1);
|
|
|
|
v0 += 1;
|
|
ManagedSprite_SetPositionXY(param0->unk_E0[3], v0, v1);
|
|
break;
|
|
case 2:
|
|
case 3:
|
|
ManagedSprite_GetPositionXY(param0->unk_E0[2], &v0, &v1);
|
|
|
|
v0 += 1;
|
|
ManagedSprite_SetPositionXY(param0->unk_E0[2], v0, v1);
|
|
ManagedSprite_GetPositionXY(param0->unk_E0[3], &v0, &v1);
|
|
|
|
v0 -= 1;
|
|
ManagedSprite_SetPositionXY(param0->unk_E0[3], v0, v1);
|
|
break;
|
|
}
|
|
|
|
param0->unk_480 = (param0->unk_480 + 1) & 3;
|
|
}
|
|
|
|
param0->unk_481 = (param0->unk_481 + 1) & 3;
|
|
}
|
|
|
|
static BOOL ov84_0223D1F4(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
int v0 = TouchScreen_CheckRectanglePressed(Unk_ov84_02240E98);
|
|
|
|
if (v0 != 0xffffffff) {
|
|
u16 v1 = 0xfffe;
|
|
|
|
if (Bg_DoesPixelAtXYMatchVal(param0->unk_00, 4, gSystem.touchX, gSystem.touchY, &v1) == 0) {
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
static u8 ov84_0223D244(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
UnkStruct_ov84_0223BE5C *v0 = ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64];
|
|
|
|
if (ListMenu_GetIndexOfChoice(param0->unk_15C, v0->unk_06 + v0->unk_04) == 0xfffffffe) {
|
|
return 0;
|
|
}
|
|
|
|
if (param0->unk_C4->unk_65 != 0) {
|
|
return 0;
|
|
}
|
|
|
|
if ((v0->unk_08 == 4) || (v0->unk_08 == 3)) {
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
static void ov84_0223D2A0(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
UnkStruct_ov84_0223BE5C *v0 = ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64];
|
|
|
|
param0->unk_47A = 1;
|
|
param0->unk_47B = v0->unk_06 + v0->unk_04;
|
|
param0->unk_47C = ListMenu_GetIndexOfChoice(param0->unk_15C, param0->unk_47B);
|
|
|
|
ov84_0223FE18(param0);
|
|
ListMenu_Draw(param0->unk_15C);
|
|
ov84_0223D4E8(param0);
|
|
}
|
|
|
|
static u8 ov84_0223D2F8(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
UnkStruct_ov84_0223BE5C *v0;
|
|
u32 v1;
|
|
u16 v2, v3;
|
|
|
|
if (ov84_0223EE30(param0) == 1) {
|
|
return 0;
|
|
}
|
|
|
|
v0 = ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64];
|
|
ListMenu_GetListAndCursorPos(param0->unk_15C, &v0->unk_06, &v0->unk_04);
|
|
|
|
if (ov84_0223D1F4(param0) == 1) {
|
|
Sound_PlayEffect(SEQ_SE_CONFIRM);
|
|
ov84_0223D42C(param0);
|
|
param0->unk_490 = 1;
|
|
|
|
return 1;
|
|
}
|
|
|
|
if (gSystem.pressedKeys & PAD_BUTTON_SELECT) {
|
|
Sound_PlayEffect(SEQ_SE_CONFIRM);
|
|
ov84_0223D42C(param0);
|
|
return 1;
|
|
}
|
|
|
|
v1 = ListMenu_ProcessInput(param0->unk_15C);
|
|
ListMenu_GetListAndCursorPos(param0->unk_15C, &v2, &v3);
|
|
|
|
if (v0->unk_04 != v3) {
|
|
ManagedSprite_SetPositionXY(param0->unk_E0[5], 177, 24 + (v3 - 1) * 16 - 8);
|
|
}
|
|
|
|
v0->unk_06 = v2;
|
|
v0->unk_04 = v3;
|
|
|
|
switch (v1) {
|
|
case 0xffffffff: {
|
|
u8 v4 = ListMenu_GetLastAction(param0->unk_15C);
|
|
|
|
if (v4 == LIST_MENU_ACTION_MOVE_UP) {
|
|
ov84_0223EB08(param0, 36);
|
|
} else if (v4 == LIST_MENU_ACTION_MOVE_DOWN) {
|
|
ov84_0223EB08(param0, -36);
|
|
}
|
|
} break;
|
|
case 0xfffffffe:
|
|
Sound_PlayEffect(SEQ_SE_CONFIRM);
|
|
|
|
if (gSystem.pressedKeys & PAD_BUTTON_A) {
|
|
ov84_0223D42C(param0);
|
|
} else {
|
|
ov84_0223D484(param0);
|
|
}
|
|
|
|
return 1;
|
|
default:
|
|
Sound_PlayEffect(SEQ_SE_CONFIRM);
|
|
ov84_0223D42C(param0);
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
static void ov84_0223D42C(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
UnkStruct_ov84_0223BE5C *v0 = ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64];
|
|
u16 v1 = v0->unk_06 + v0->unk_04;
|
|
|
|
if (!((param0->unk_47B == v1) || (param0->unk_47B == (v1 - 1)))) {
|
|
Item_MoveInPocket(v0->unk_00, param0->unk_47B - 1, v1 - 1);
|
|
StringList_Free(param0->unk_160);
|
|
ov84_0223BFBC(param0);
|
|
}
|
|
|
|
ov84_0223D484(param0);
|
|
}
|
|
|
|
static void ov84_0223D484(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
UnkStruct_ov84_0223BE5C *v0 = ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64];
|
|
|
|
ListMenu_Free(param0->unk_15C, &v0->unk_06, &v0->unk_04);
|
|
param0->unk_15C = NULL;
|
|
|
|
if (param0->unk_47B < (v0->unk_06 + v0->unk_04)) {
|
|
v0->unk_04 -= 1;
|
|
}
|
|
|
|
param0->unk_47A = 0;
|
|
param0->unk_47B = 0;
|
|
param0->unk_47C = 0;
|
|
|
|
ov84_0223C224(param0, v0->unk_06, v0->unk_04);
|
|
ov84_0223D4E8(param0);
|
|
}
|
|
|
|
static void ov84_0223D4E8(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
UnkStruct_ov84_0223BE5C *v0 = ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64];
|
|
|
|
if (param0->unk_47A == 0) {
|
|
ManagedSprite_SetPositionXY(param0->unk_E0[4], 177, 24 + (v0->unk_04 - 1) * 16);
|
|
ManagedSprite_SetDrawFlag(param0->unk_E0[4], 1);
|
|
ManagedSprite_SetDrawFlag(param0->unk_E0[5], 0);
|
|
|
|
if (param0->unk_424 != 1) {
|
|
ManagedSprite_SetDrawFlag(param0->unk_E0[2], 1);
|
|
ManagedSprite_SetDrawFlag(param0->unk_E0[3], 1);
|
|
}
|
|
} else {
|
|
ManagedSprite_SetPositionXY(param0->unk_E0[5], 177, 24 + (v0->unk_04 - 1) * 16 - 8);
|
|
ManagedSprite_SetDrawFlag(param0->unk_E0[4], 0);
|
|
ManagedSprite_SetDrawFlag(param0->unk_E0[5], 1);
|
|
|
|
if (param0->unk_424 != 1) {
|
|
ManagedSprite_SetDrawFlag(param0->unk_E0[2], 0);
|
|
ManagedSprite_SetDrawFlag(param0->unk_E0[3], 0);
|
|
}
|
|
}
|
|
}
|
|
|
|
static void ov84_0223D5AC(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
void *v0;
|
|
u32 v1;
|
|
u8 v2;
|
|
u8 v3[12];
|
|
|
|
v0 = Item_Load(param0->unk_C4->unk_66, 0, 6);
|
|
v1 = 0;
|
|
v2 = param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_08;
|
|
|
|
if (param0->unk_C4->unk_65 == 0) {
|
|
if (v2 == 4) {
|
|
v3[v1] = 9;
|
|
v1++;
|
|
}
|
|
|
|
if ((param0->unk_C4->mapLoadType == MAP_LOAD_TYPE_COLOSSEUM) || (param0->unk_C4->mapLoadType == MAP_LOAD_TYPE_UNION)) {
|
|
if (param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_08 == 5) {
|
|
v3[v1] = 2;
|
|
v1++;
|
|
}
|
|
} else {
|
|
if (Item_Get(v0, 6) != 0) {
|
|
if ((param0->unk_C4->unk_66 == 450) && (param0->unk_C4->unk_76_0 == 1)) {
|
|
v3[v1] = 1;
|
|
} else if (param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_08 == 5) {
|
|
v3[v1] = 2;
|
|
} else if (param0->unk_C4->unk_66 == 449) {
|
|
v3[v1] = 4;
|
|
} else if ((param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_08 == 4) && (sub_02068B50(param0->unk_C4->unk_70) == 1)) {
|
|
v3[v1] = 3;
|
|
} else {
|
|
v3[v1] = 0;
|
|
}
|
|
|
|
v1++;
|
|
}
|
|
}
|
|
if (Item_Get(v0, 3) == 0) {
|
|
v3[v1] = 8;
|
|
v1++;
|
|
|
|
if (v2 != 3) {
|
|
v3[v1] = 5;
|
|
v1++;
|
|
}
|
|
}
|
|
if (Item_Get(v0, 4) != 0) {
|
|
if (Bag_GetRegisteredItem(param0->unk_C8) == param0->unk_C4->unk_66) {
|
|
v3[v1] = 7;
|
|
} else {
|
|
v3[v1] = 6;
|
|
}
|
|
|
|
v1++;
|
|
}
|
|
} else if ((param0->unk_C4->unk_65 == 4) || (param0->unk_C4->unk_65 == 5)) {
|
|
v3[v1] = 10;
|
|
v1++;
|
|
v3[v1] = 9;
|
|
v1++;
|
|
}
|
|
|
|
v3[v1] = 11;
|
|
v1++;
|
|
ov84_0223FB70(param0, v3, v1);
|
|
Heap_FreeToHeap(v0);
|
|
}
|
|
|
|
static int ov84_0223D730(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
u32 v0;
|
|
|
|
if (ov84_0223EF4C(param0) == 1) {
|
|
return 4;
|
|
}
|
|
|
|
v0 = Menu_ProcessInput(param0->unk_158);
|
|
|
|
if (v0 == 0xffffffff) {
|
|
if (ov84_0223D1F4(param0) == 1) {
|
|
v0 = Menu_ProcessExternalInput(param0->unk_158, 0);
|
|
param0->unk_490 = 1;
|
|
}
|
|
}
|
|
|
|
switch (v0) {
|
|
case 0xffffffff: {
|
|
u8 v1 = Menu_GetLastAction(param0->unk_158);
|
|
|
|
if (v1 == MENU_ACTION_MOVE_UP) {
|
|
ov84_0223EB08(param0, 18);
|
|
} else if (v1 == MENU_ACTION_MOVE_DOWN) {
|
|
ov84_0223EB08(param0, -18);
|
|
}
|
|
} break;
|
|
case 0xfffffffe:
|
|
ov84_02240B34(param0, 1);
|
|
ov84_0223FD84(param0);
|
|
|
|
if (param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_08 == 3) {
|
|
ov84_0223D7E8(param0, 0);
|
|
}
|
|
|
|
return 1;
|
|
default: {
|
|
UnkFuncPtr_ov84_0223D730 v2 = (UnkFuncPtr_ov84_0223D730)v0;
|
|
return v2(param0);
|
|
}
|
|
}
|
|
|
|
return 4;
|
|
}
|
|
|
|
static void ov84_0223D7E8(UnkStruct_ov84_0223B5A0 *param0, u8 param1)
|
|
{
|
|
if (param1 == 0) {
|
|
Bg_LoadToTilemapRect(param0->unk_00, 1, Unk_ov84_02241064, 0, 18, 5, 5);
|
|
ManagedSprite_SetDrawFlag(param0->unk_E0[7], 1);
|
|
} else {
|
|
Bg_LoadToTilemapRect(param0->unk_00, 1, Unk_ov84_02241096, 0, 18, 5, 5);
|
|
ManagedSprite_SetDrawFlag(param0->unk_E0[7], 0);
|
|
}
|
|
|
|
Bg_ScheduleTilemapTransfer(param0->unk_00, 1);
|
|
}
|
|
|
|
const u32 ov84_0223D84C(u32 param0)
|
|
{
|
|
return Unk_ov84_02241034[param0];
|
|
}
|
|
|
|
static int ov84_0223D858(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
UnkFuncPtr_02069238 v0;
|
|
s32 v1;
|
|
|
|
ov84_0223FD84(param0);
|
|
|
|
v1 = Item_LoadParam(param0->unk_C4->unk_66, 6, 6);
|
|
v0 = (UnkFuncPtr_02069238)sub_020683F4(2, v1);
|
|
|
|
if (v0 != NULL) {
|
|
u32 v2 = v0(param0->unk_C4->unk_70);
|
|
|
|
if (v2 != 0) {
|
|
sub_0207CD34(param0->unk_CC, param0->unk_3F8, param0->unk_C4->unk_66, v2, 6);
|
|
Window_FillTilemap(¶m0->unk_04[6], 15);
|
|
Window_DrawMessageBoxWithScrollCursor(¶m0->unk_04[6], 0, 1024 - 9 - (18 + 12), 12);
|
|
param0->unk_426 = ov84_022400A0(param0);
|
|
|
|
return 12;
|
|
}
|
|
}
|
|
|
|
return ov84_0223D94C(param0);
|
|
}
|
|
|
|
static int ov84_0223D8EC(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
if (Text_IsPrinterActive(param0->unk_426) == 0) {
|
|
if ((gSystem.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) || gSystem.touchPressed) {
|
|
Window_EraseMessageBox(¶m0->unk_04[6], 0);
|
|
Window_ScheduleCopyToVRAM(¶m0->unk_04[1]);
|
|
ov84_02240B34(param0, 1);
|
|
|
|
if (param0->unk_C4->unk_65 == 3) {
|
|
return 23;
|
|
} else {
|
|
return 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
return 12;
|
|
}
|
|
|
|
static int ov84_0223D94C(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
UnkStruct_ov84_0223BE5C *v0 = ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64];
|
|
|
|
param0->unk_483 = 0;
|
|
|
|
if (v0->unk_08 == 3) {
|
|
param0->unk_484 = (u32)ov84_0223DA14;
|
|
return 13;
|
|
}
|
|
|
|
if (sub_0207CC10(param0->unk_C4->unk_00, param0->unk_3F8, param0->unk_C4->unk_66, 6) == 1) {
|
|
Window_FillTilemap(¶m0->unk_04[6], 15);
|
|
Window_DrawMessageBoxWithScrollCursor(¶m0->unk_04[6], 0, 1024 - 9 - (18 + 12), 12);
|
|
param0->unk_426 = ov84_022400A0(param0);
|
|
return 12;
|
|
}
|
|
|
|
if (ov84_0223DBF4(param0, param0->unk_C4->unk_66) == 1) {
|
|
param0->unk_484 = (u32)ov84_0223DDD0;
|
|
return 13;
|
|
}
|
|
|
|
sub_0208C120(1, HEAP_ID_6);
|
|
param0->unk_C4->unk_68 = 0;
|
|
|
|
return 24;
|
|
}
|
|
|
|
static int ov84_0223DA04(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
UnkFuncPtr_ov84_0223DA04 v0 = (UnkFuncPtr_ov84_0223DA04)param0->unk_484;
|
|
return v0(param0);
|
|
}
|
|
|
|
static int ov84_0223DA14(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
switch (param0->unk_483) {
|
|
case 0: {
|
|
u16 v0 = Item_MoveForTMHM(param0->unk_C4->unk_66);
|
|
|
|
StringTemplate_SetMoveName(param0->unk_118, 0, v0);
|
|
|
|
if (Item_IsHMMove(v0) == 1) {
|
|
MessageLoader_GetStrbuf(param0->unk_114, 59, param0->unk_3F8);
|
|
} else {
|
|
MessageLoader_GetStrbuf(param0->unk_114, 58, param0->unk_3F8);
|
|
}
|
|
}
|
|
Window_FillTilemap(¶m0->unk_04[6], 15);
|
|
Window_DrawMessageBoxWithScrollCursor(¶m0->unk_04[6], 0, 1024 - 9 - (18 + 12), 12);
|
|
|
|
param0->unk_426 = ov84_022400A0(param0);
|
|
param0->unk_483 = 1;
|
|
break;
|
|
case 1:
|
|
if (Text_IsPrinterActive(param0->unk_426) != 0) {
|
|
break;
|
|
}
|
|
|
|
if ((gSystem.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) || gSystem.touchPressed) {
|
|
Strbuf *v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 60);
|
|
|
|
Window_FillTilemap(¶m0->unk_04[6], 15);
|
|
StringTemplate_Format(param0->unk_118, param0->unk_3F8, v1);
|
|
Strbuf_Free(v1);
|
|
|
|
param0->unk_426 = ov84_022400A0(param0);
|
|
param0->unk_483 = 2;
|
|
}
|
|
break;
|
|
case 2:
|
|
if (Text_IsPrinterActive(param0->unk_426) != 0) {
|
|
break;
|
|
}
|
|
|
|
ov84_02240120(param0);
|
|
param0->unk_483 = 3;
|
|
break;
|
|
case 3: {
|
|
u32 v2;
|
|
|
|
if (ov84_0223EF4C(param0) == 1) {
|
|
break;
|
|
}
|
|
|
|
if (ov84_0223D1F4(param0) == 1) {
|
|
v2 = Menu_ProcessExternalInputAndHandleExit(param0->unk_158, 0, 6);
|
|
param0->unk_490 = 1;
|
|
} else {
|
|
v2 = Menu_ProcessInputAndHandleExit(param0->unk_158, 6);
|
|
}
|
|
|
|
switch (v2) {
|
|
case 0:
|
|
sub_0208C120(1, HEAP_ID_6);
|
|
ov84_0223D7E8(param0, 0);
|
|
param0->unk_C4->unk_68 = 0;
|
|
return 24;
|
|
case 0xffffffff: {
|
|
u8 v3 = Menu_GetLastAction(param0->unk_158);
|
|
|
|
if (v3 == MENU_ACTION_MOVE_UP) {
|
|
ov84_0223EB08(param0, 18);
|
|
} else if (v3 == MENU_ACTION_MOVE_DOWN) {
|
|
ov84_0223EB08(param0, -18);
|
|
}
|
|
} break;
|
|
case 0xfffffffe:
|
|
Window_EraseMessageBox(¶m0->unk_04[6], 0);
|
|
Window_ScheduleCopyToVRAM(¶m0->unk_04[1]);
|
|
ov84_02240B34(param0, 1);
|
|
ov84_0223D7E8(param0, 0);
|
|
return 1;
|
|
}
|
|
} break;
|
|
}
|
|
|
|
return 13;
|
|
}
|
|
|
|
static BOOL ov84_0223DBF4(UnkStruct_ov84_0223B5A0 *param0, u16 param1)
|
|
{
|
|
Strbuf *v0;
|
|
|
|
StringTemplate_SetPlayerName(param0->unk_118, 0, param0->unk_CC);
|
|
StringTemplate_SetItemName(param0->unk_118, 1, param1);
|
|
|
|
if (param1 == ITEM_BLACK_FLUTE) {
|
|
v0 = MessageLoader_GetNewStrbuf(param0->unk_114, 64);
|
|
SetBlackWhiteFluteActive(param0, FLUTE_FACTOR_USED_BLACK);
|
|
param0->unk_488 = 0;
|
|
} else if (param1 == ITEM_WHITE_FLUTE) {
|
|
v0 = MessageLoader_GetNewStrbuf(param0->unk_114, 63);
|
|
SetBlackWhiteFluteActive(param0, FLUTE_FACTOR_USED_WHITE);
|
|
param0->unk_488 = 0;
|
|
} else if ((param1 == ITEM_MAX_REPEL) || (param1 == ITEM_SUPER_REPEL) || (param1 == ITEM_REPEL)) {
|
|
v0 = ov84_0223DC9C(param0, param1);
|
|
} else {
|
|
return 0;
|
|
}
|
|
|
|
StringTemplate_Format(param0->unk_118, param0->unk_3F8, v0);
|
|
Strbuf_Free(v0);
|
|
return 1;
|
|
}
|
|
|
|
static Strbuf *ov84_0223DC9C(UnkStruct_ov84_0223B5A0 *param0, u16 param1)
|
|
{
|
|
s32 stepCount;
|
|
u8 *v1;
|
|
|
|
// Repel is still active, show "effects still lingered" message
|
|
if (SpecialEncounter_RepelStepsEmpty(ov84_0223B9E4(param0)) == 0) {
|
|
param0->unk_488 = 0;
|
|
return MessageLoader_GetNewStrbuf(param0->unk_114, 62);
|
|
}
|
|
|
|
stepCount = Item_LoadParam(param1, 2, 6);
|
|
SetRepelSteps(param0, (u8)stepCount);
|
|
param0->unk_488 = 1;
|
|
Sound_PlayEffect(SEQ_SE_DP_CARD2);
|
|
|
|
return MessageLoader_GetNewStrbuf(param0->unk_114, 61);
|
|
}
|
|
|
|
static void ov84_0223DCF8(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
Pocket_TryRemoveItem(param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_00, param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_09 - 3, param0->unk_C4->unk_66, param0->unk_488, HEAP_ID_6);
|
|
ListMenu_Free(param0->unk_15C, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04);
|
|
StringList_Free(param0->unk_160);
|
|
|
|
ov84_0223BFBC(param0);
|
|
ov84_0223C194(¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04, param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_09);
|
|
ov84_0223C1D0(¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06, ¶m0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04, param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_09, 9);
|
|
ov84_0223C224(param0, param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06, param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04);
|
|
}
|
|
|
|
static int ov84_0223DDD0(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
switch (param0->unk_483) {
|
|
case 0:
|
|
Window_FillTilemap(¶m0->unk_04[6], 15);
|
|
Window_DrawMessageBoxWithScrollCursor(¶m0->unk_04[6], 0, 1024 - 9 - (18 + 12), 12);
|
|
param0->unk_426 = ov84_022400A0(param0);
|
|
param0->unk_483 = 1;
|
|
break;
|
|
case 1:
|
|
if (Text_IsPrinterActive(param0->unk_426) != 0) {
|
|
break;
|
|
}
|
|
|
|
if ((gSystem.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) || gSystem.touchPressed) {
|
|
Window_EraseMessageBox(¶m0->unk_04[6], 0);
|
|
param0->unk_483 = 2;
|
|
}
|
|
|
|
break;
|
|
case 2:
|
|
if (param0->unk_488 != 0) {
|
|
ov84_0223DCF8(param0);
|
|
}
|
|
|
|
Window_ScheduleCopyToVRAM(¶m0->unk_04[1]);
|
|
ov84_02240B34(param0, 1);
|
|
|
|
return 1;
|
|
}
|
|
|
|
return 13;
|
|
}
|
|
|
|
static int ov84_0223DE78(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
ov84_0223FD84(param0);
|
|
sub_0208C120(1, HEAP_ID_6);
|
|
param0->unk_C4->unk_68 = 1;
|
|
|
|
return 24;
|
|
}
|
|
|
|
static int ov84_0223DE98(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
ov84_0223FD84(param0);
|
|
sub_0208C120(1, HEAP_ID_6);
|
|
param0->unk_C4->unk_68 = 3;
|
|
|
|
return 24;
|
|
}
|
|
|
|
static int ov84_0223DEB8(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
ov84_0223FD84(param0);
|
|
param0->unk_488 = 1;
|
|
if (Pocket_GetItemQuantity(param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_00, param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_09 - 3, param0->unk_C4->unk_66, HEAP_ID_6) == 1) {
|
|
ov84_0223FFF0(param0);
|
|
return 8;
|
|
}
|
|
|
|
ov84_0223FE94(param0);
|
|
ov84_02240CF0(param0, 0);
|
|
|
|
return 7;
|
|
}
|
|
|
|
static int ov84_0223DF0C(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
if (ov84_0223EFD0(param0, ¶m0->unk_488, param0->unk_48A) == 1) {
|
|
ov84_0223FF44(param0);
|
|
return 7;
|
|
}
|
|
|
|
if (ov84_0223D1F4(param0) == 1) {
|
|
ov84_0223FFF0(param0);
|
|
ov84_02240D3C(param0, 0);
|
|
param0->unk_490 = 1;
|
|
|
|
return 8;
|
|
}
|
|
|
|
switch (sub_0208C15C(¶m0->unk_488, param0->unk_48A)) {
|
|
case 0:
|
|
break;
|
|
case 1:
|
|
ov84_0223EB08(param0, 18);
|
|
ov84_0223FF44(param0);
|
|
Sound_PlayEffect(SEQ_SE_DP_BAG_004);
|
|
return 7;
|
|
case 2:
|
|
ov84_0223EB08(param0, -18);
|
|
ov84_0223FF44(param0);
|
|
Sound_PlayEffect(SEQ_SE_DP_BAG_004);
|
|
return 7;
|
|
}
|
|
if (gSystem.pressedKeys & PAD_BUTTON_A) {
|
|
ov84_0223FFF0(param0);
|
|
ov84_02240D3C(param0, 0);
|
|
Sound_PlayEffect(SEQ_SE_CONFIRM);
|
|
return 8;
|
|
}
|
|
if (gSystem.pressedKeys & PAD_BUTTON_B) {
|
|
ov84_0223FFC0(param0);
|
|
ov84_02240D3C(param0, 0);
|
|
ov84_02240B34(param0, 1);
|
|
Sound_PlayEffect(SEQ_SE_CONFIRM);
|
|
return 1;
|
|
}
|
|
|
|
return 7;
|
|
}
|
|
|
|
static int ov84_0223DFF8(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
if (Text_IsPrinterActive(param0->unk_426) == 0) {
|
|
ov84_02240120(param0);
|
|
return 9;
|
|
}
|
|
|
|
return 8;
|
|
}
|
|
|
|
static int ov84_0223E01C(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
u32 v0;
|
|
|
|
if (ov84_0223EF4C(param0) == 1) {
|
|
return 9;
|
|
}
|
|
|
|
if (ov84_0223D1F4(param0) == 1) {
|
|
v0 = Menu_ProcessExternalInputAndHandleExit(param0->unk_158, 0, 6);
|
|
param0->unk_490 = 1;
|
|
} else {
|
|
v0 = Menu_ProcessInputAndHandleExit(param0->unk_158, 6);
|
|
}
|
|
|
|
switch (v0) {
|
|
case 0: {
|
|
Strbuf *v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 53);
|
|
|
|
if (param0->unk_488 == 1) {
|
|
StringTemplate_SetItemName(param0->unk_118, 0, param0->unk_C4->unk_66);
|
|
} else {
|
|
StringTemplate_SetItemNamePlural(param0->unk_118, 0, param0->unk_C4->unk_66);
|
|
}
|
|
|
|
StringTemplate_SetNumber(param0->unk_118, 1, param0->unk_488, 3, 0, 1);
|
|
StringTemplate_Format(param0->unk_118, param0->unk_3F8, v1);
|
|
Strbuf_Free(v1);
|
|
}
|
|
Window_FillTilemap(¶m0->unk_04[6], 15);
|
|
param0->unk_426 = ov84_022400A0(param0);
|
|
return 10;
|
|
|
|
case 0xffffffff: {
|
|
u8 v2 = Menu_GetLastAction(param0->unk_158);
|
|
|
|
if (v2 == MENU_ACTION_MOVE_UP) {
|
|
ov84_0223EB08(param0, 18);
|
|
} else if (v2 == MENU_ACTION_MOVE_DOWN) {
|
|
ov84_0223EB08(param0, -18);
|
|
}
|
|
} break;
|
|
case 0xfffffffe:
|
|
Window_EraseMessageBox(¶m0->unk_04[6], 0);
|
|
Window_ScheduleCopyToVRAM(¶m0->unk_04[1]);
|
|
ov84_02240B34(param0, 1);
|
|
return 1;
|
|
}
|
|
|
|
return 9;
|
|
}
|
|
|
|
static int ov84_0223E158(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
if (Text_IsPrinterActive(param0->unk_426) != 0) {
|
|
return 10;
|
|
}
|
|
|
|
param0->unk_479 = 1;
|
|
ov84_0223DCF8(param0);
|
|
Window_ScheduleCopyToVRAM(¶m0->unk_04[6]);
|
|
|
|
return 11;
|
|
}
|
|
|
|
static int ov84_0223E18C(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
if (Text_IsPrinterActive(param0->unk_426) == 0) {
|
|
if ((gSystem.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) || gSystem.touchPressed) {
|
|
param0->unk_479 = 0;
|
|
Window_EraseMessageBox(¶m0->unk_04[6], 0);
|
|
Window_ScheduleCopyToVRAM(¶m0->unk_04[1]);
|
|
ov84_02240B34(param0, 1);
|
|
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 11;
|
|
}
|
|
|
|
static int ov84_0223E1E4(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
Bag_RegisterItem(param0->unk_C8, param0->unk_C4->unk_66);
|
|
ListMenu_Draw(param0->unk_15C);
|
|
ov84_0223FD84(param0);
|
|
Window_ScheduleCopyToVRAM(¶m0->unk_04[1]);
|
|
ov84_02240B34(param0, 1);
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int ov84_0223E220(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
Bag_RegisterItem(param0->unk_C8, 0);
|
|
ListMenu_Draw(param0->unk_15C);
|
|
ov84_0223FD84(param0);
|
|
Window_ScheduleCopyToVRAM(¶m0->unk_04[1]);
|
|
ov84_02240B34(param0, 1);
|
|
|
|
return 1;
|
|
}
|
|
|
|
static int ov84_0223E254(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
ov84_0223FD84(param0);
|
|
sub_0208C120(1, HEAP_ID_6);
|
|
ov84_0223D7E8(param0, 0);
|
|
param0->unk_C4->unk_68 = 2;
|
|
|
|
return 24;
|
|
}
|
|
|
|
static int ov84_0223E27C(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
ov84_0223D0FC(param0);
|
|
if (ov84_0223ED14(param0) == 1) {
|
|
return 14;
|
|
}
|
|
|
|
if (ov84_0223C750(param0) == 1) {
|
|
return 2;
|
|
}
|
|
|
|
if (ov84_0223CD40(param0) == 1) {
|
|
return 2;
|
|
}
|
|
|
|
{
|
|
u8 v0 = ov84_0223C5B8(param0);
|
|
|
|
if (v0 == 1) {
|
|
if (Item_LoadParam(param0->unk_C4->unk_66, 3, 6) != 0) {
|
|
Strbuf *v1;
|
|
|
|
Window_FillTilemap(¶m0->unk_04[6], 15);
|
|
Window_DrawMessageBoxWithScrollCursor(¶m0->unk_04[6], 0, 1024 - 9 - (18 + 12), 12);
|
|
StringTemplate_SetItemName(param0->unk_118, 0, param0->unk_C4->unk_66);
|
|
|
|
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 46);
|
|
|
|
StringTemplate_Format(param0->unk_118, param0->unk_3F8, v1);
|
|
Strbuf_Free(v1);
|
|
param0->unk_426 = ov84_022400A0(param0);
|
|
ov84_02240B34(param0, 2);
|
|
|
|
return 15;
|
|
}
|
|
|
|
param0->unk_C4->unk_68 = 4;
|
|
sub_0208C120(1, HEAP_ID_6);
|
|
|
|
return 24;
|
|
} else if (v0 == 3) {
|
|
param0->unk_C4->unk_68 = 4;
|
|
return 24;
|
|
}
|
|
}
|
|
return 14;
|
|
}
|
|
|
|
static int ov84_0223E36C(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
if (Text_IsPrinterActive(param0->unk_426) == 0) {
|
|
if ((gSystem.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) || gSystem.touchPressed) {
|
|
Window_EraseMessageBox(¶m0->unk_04[6], 0);
|
|
Window_ScheduleCopyToVRAM(¶m0->unk_04[1]);
|
|
ov84_02240B34(param0, 1);
|
|
|
|
return 14;
|
|
}
|
|
}
|
|
|
|
return 15;
|
|
}
|
|
|
|
static int ov84_0223E3BC(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
ov84_0223D0FC(param0);
|
|
if (ov84_0223ED14(param0) == 1) {
|
|
return 16;
|
|
}
|
|
|
|
if (ov84_0223C750(param0) == 1) {
|
|
return 2;
|
|
}
|
|
|
|
if (ov84_0223CD40(param0) == 1) {
|
|
return 2;
|
|
}
|
|
|
|
{
|
|
u8 v0 = ov84_0223C5B8(param0);
|
|
|
|
if (v0 == 1) {
|
|
Strbuf *v1;
|
|
|
|
ov84_02240248(param0, 0);
|
|
Window_FillTilemap(¶m0->unk_04[6], 15);
|
|
Window_DrawMessageBoxWithScrollCursor(¶m0->unk_04[6], 0, 1024 - 9 - (18 + 12), 12);
|
|
StringTemplate_SetItemName(param0->unk_118, 0, param0->unk_C4->unk_66);
|
|
ov84_02240B34(param0, 2);
|
|
|
|
param0->unk_48C = Item_LoadParam(param0->unk_C4->unk_66, 0, 6);
|
|
|
|
if ((Item_LoadParam(param0->unk_C4->unk_66, 3, 6) != 0) || (param0->unk_48C == 0)) {
|
|
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 74);
|
|
StringTemplate_Format(param0->unk_118, param0->unk_3F8, v1);
|
|
Strbuf_Free(v1);
|
|
|
|
param0->unk_426 = ov84_022400A0(param0);
|
|
return 22;
|
|
}
|
|
|
|
param0->unk_488 = 1;
|
|
param0->unk_48C >>= 1;
|
|
|
|
if (Pocket_GetItemQuantity(param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_00, param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_09 - 3, param0->unk_C4->unk_66, 6) == 1) {
|
|
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 76);
|
|
StringTemplate_SetNumber(param0->unk_118, 0, param0->unk_488 * param0->unk_48C, 6, 0, 1);
|
|
StringTemplate_Format(param0->unk_118, param0->unk_3F8, v1);
|
|
Strbuf_Free(v1);
|
|
|
|
param0->unk_426 = ov84_022400A0(param0);
|
|
return 19;
|
|
}
|
|
|
|
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 75);
|
|
StringTemplate_Format(param0->unk_118, param0->unk_3F8, v1);
|
|
Strbuf_Free(v1);
|
|
|
|
param0->unk_426 = ov84_022400A0(param0);
|
|
return 17;
|
|
} else if (v0 == 3) {
|
|
return 24;
|
|
}
|
|
}
|
|
|
|
return 16;
|
|
}
|
|
|
|
static int ov84_0223E588(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
if (Text_IsPrinterActive(param0->unk_426) == 0) {
|
|
if (param0->unk_48A > 99) {
|
|
param0->unk_48A = 99;
|
|
}
|
|
|
|
ov84_02240148(param0, 0);
|
|
ov84_02240CF0(param0, 1);
|
|
return 18;
|
|
}
|
|
|
|
return 17;
|
|
}
|
|
|
|
static int ov84_0223E5C4(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
if (ov84_0223EFD0(param0, ¶m0->unk_488, param0->unk_48A) == 1) {
|
|
ov84_02240148(param0, 1);
|
|
return 18;
|
|
}
|
|
if (ov84_0223D1F4(param0) == 1) {
|
|
Strbuf *v0;
|
|
|
|
ov84_02240D3C(param0, 0);
|
|
Window_EraseStandardFrame(¶m0->unk_04[7], 1);
|
|
Window_FillTilemap(¶m0->unk_04[6], 15);
|
|
v0 = MessageLoader_GetNewStrbuf(param0->unk_114, 76);
|
|
StringTemplate_SetNumber(param0->unk_118, 0, param0->unk_488 * param0->unk_48C, 6, 0, 1);
|
|
StringTemplate_Format(param0->unk_118, param0->unk_3F8, v0);
|
|
Strbuf_Free(v0);
|
|
param0->unk_426 = ov84_022400A0(param0);
|
|
param0->unk_490 = 1;
|
|
|
|
return 19;
|
|
}
|
|
|
|
switch (sub_0208C15C(¶m0->unk_488, param0->unk_48A)) {
|
|
case 0:
|
|
break;
|
|
case 1:
|
|
ov84_0223EB08(param0, 18);
|
|
ov84_02240148(param0, 1);
|
|
Sound_PlayEffect(SEQ_SE_DP_BAG_004);
|
|
return 18;
|
|
case 2:
|
|
ov84_0223EB08(param0, -18);
|
|
ov84_02240148(param0, 1);
|
|
Sound_PlayEffect(SEQ_SE_DP_BAG_004);
|
|
return 18;
|
|
}
|
|
if (gSystem.pressedKeys & PAD_BUTTON_A) {
|
|
Strbuf *v1;
|
|
|
|
ov84_02240D3C(param0, 0);
|
|
Window_EraseStandardFrame(¶m0->unk_04[7], 1);
|
|
Window_FillTilemap(¶m0->unk_04[6], 15);
|
|
|
|
v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 76);
|
|
|
|
StringTemplate_SetNumber(param0->unk_118, 0, param0->unk_488 * param0->unk_48C, 6, 0, 1);
|
|
StringTemplate_Format(param0->unk_118, param0->unk_3F8, v1);
|
|
Strbuf_Free(v1);
|
|
param0->unk_426 = ov84_022400A0(param0);
|
|
Sound_PlayEffect(SEQ_SE_CONFIRM);
|
|
|
|
return 19;
|
|
}
|
|
if (gSystem.pressedKeys & PAD_BUTTON_B) {
|
|
param0->unk_48C = 0;
|
|
|
|
ov84_02240D3C(param0, 0);
|
|
Window_EraseStandardFrame(¶m0->unk_04[8], 1);
|
|
Window_EraseStandardFrame(¶m0->unk_04[7], 1);
|
|
Window_EraseMessageBox(¶m0->unk_04[6], 0);
|
|
Window_ScheduleCopyToVRAM(¶m0->unk_04[1]);
|
|
ov84_02240B34(param0, 1);
|
|
Sound_PlayEffect(SEQ_SE_CONFIRM);
|
|
|
|
return 16;
|
|
}
|
|
|
|
return 18;
|
|
}
|
|
|
|
static int ov84_0223E7A8(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
if (Text_IsPrinterActive(param0->unk_426) == 0) {
|
|
ov84_02240120(param0);
|
|
|
|
return 20;
|
|
}
|
|
|
|
return 19;
|
|
}
|
|
|
|
static int ov84_0223E7CC(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
u32 v0;
|
|
|
|
if (ov84_0223EF4C(param0) == 1) {
|
|
return 20;
|
|
}
|
|
|
|
if (ov84_0223D1F4(param0) == 1) {
|
|
v0 = Menu_ProcessExternalInputAndHandleExit(param0->unk_158, 0, 6);
|
|
param0->unk_490 = 1;
|
|
} else {
|
|
v0 = Menu_ProcessInputAndHandleExit(param0->unk_158, 6);
|
|
}
|
|
|
|
switch (v0) {
|
|
case 0: {
|
|
Strbuf *v1 = MessageLoader_GetNewStrbuf(param0->unk_114, 77);
|
|
|
|
if (param0->unk_488 > 1) {
|
|
StringTemplate_SetItemNamePlural(param0->unk_118, 0, param0->unk_C4->unk_66);
|
|
} else {
|
|
StringTemplate_SetItemName(param0->unk_118, 0, param0->unk_C4->unk_66);
|
|
}
|
|
|
|
StringTemplate_SetNumber(param0->unk_118, 1, param0->unk_488 * param0->unk_48C, 6, 0, 1);
|
|
StringTemplate_Format(param0->unk_118, param0->unk_3F8, v1);
|
|
Strbuf_Free(v1);
|
|
}
|
|
Window_FillTilemap(¶m0->unk_04[6], 15);
|
|
param0->unk_426 = ov84_022400A0(param0);
|
|
return 21;
|
|
case 0xffffffff: {
|
|
u8 v2 = Menu_GetLastAction(param0->unk_158);
|
|
|
|
if (v2 == MENU_ACTION_MOVE_UP) {
|
|
ov84_0223EB08(param0, 18);
|
|
} else if (v2 == MENU_ACTION_MOVE_DOWN) {
|
|
ov84_0223EB08(param0, -18);
|
|
}
|
|
} break;
|
|
case 0xfffffffe:
|
|
param0->unk_48C = 0;
|
|
Window_EraseStandardFrame(¶m0->unk_04[8], 1);
|
|
Window_EraseMessageBox(¶m0->unk_04[6], 0);
|
|
Window_ScheduleCopyToVRAM(¶m0->unk_04[1]);
|
|
ov84_02240B34(param0, 1);
|
|
|
|
return 16;
|
|
}
|
|
|
|
return 20;
|
|
}
|
|
|
|
static int ov84_0223E920(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
if (Text_IsPrinterActive(param0->unk_426) != 0) {
|
|
return 21;
|
|
}
|
|
|
|
Sound_PlayEffect(SEQ_SE_DP_REGI);
|
|
TrainerInfo_GiveMoney(param0->unk_CC, param0->unk_488 * param0->unk_48C);
|
|
|
|
if (param0->unk_488 == 1) {
|
|
if (param0->unk_C4->unk_75 != 0xff) {
|
|
param0->unk_C4->unk_75++;
|
|
}
|
|
} else {
|
|
param0->unk_C4->unk_75 = 2;
|
|
}
|
|
|
|
ov84_02240248(param0, 1);
|
|
param0->unk_479 = 1;
|
|
ov84_0223DCF8(param0);
|
|
Window_ScheduleCopyToVRAM(¶m0->unk_04[6]);
|
|
|
|
return 22;
|
|
}
|
|
|
|
static int ov84_0223E9B0(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
if (Text_IsPrinterActive(param0->unk_426) == 0) {
|
|
if ((gSystem.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) || gSystem.touchPressed) {
|
|
param0->unk_479 = 0;
|
|
param0->unk_48C = 0;
|
|
|
|
Window_EraseStandardFrame(¶m0->unk_04[8], 1);
|
|
Window_EraseMessageBox(¶m0->unk_04[6], 0);
|
|
Window_ScheduleCopyToVRAM(¶m0->unk_04[1]);
|
|
ov84_02240B34(param0, 1);
|
|
|
|
return 16;
|
|
}
|
|
}
|
|
|
|
return 22;
|
|
}
|
|
|
|
static int ov84_0223EA18(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
ov84_0223D0FC(param0);
|
|
|
|
if (ov84_0223ED14(param0) == 1) {
|
|
return 23;
|
|
}
|
|
|
|
if (ov84_0223C750(param0) == 1) {
|
|
return 2;
|
|
}
|
|
|
|
if (ov84_0223CD40(param0) == 1) {
|
|
return 2;
|
|
}
|
|
|
|
{
|
|
u8 v0 = ov84_0223C5B8(param0);
|
|
|
|
if (v0 == 1) {
|
|
if (param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_08 == 0) {
|
|
if (Item_LoadParam(param0->unk_C4->unk_66, 6, 6) != 13) {
|
|
sub_0207CD34(param0->unk_CC, param0->unk_3F8, param0->unk_C4->unk_66, -1, 6);
|
|
Window_FillTilemap(¶m0->unk_04[6], 15);
|
|
Window_DrawMessageBoxWithScrollCursor(¶m0->unk_04[6], 0, 1024 - 9 - (18 + 12), 12);
|
|
|
|
param0->unk_426 = ov84_022400A0(param0);
|
|
return 12;
|
|
}
|
|
}
|
|
|
|
param0->unk_C4->unk_68 = 0;
|
|
sub_0208C120(1, HEAP_ID_6);
|
|
return 24;
|
|
} else if (v0 == 3) {
|
|
param0->unk_C4->unk_68 = 5;
|
|
return 24;
|
|
}
|
|
}
|
|
return 23;
|
|
}
|
|
|
|
static void ov84_0223EB08(UnkStruct_ov84_0223B5A0 *param0, s8 param1)
|
|
{
|
|
s16 v0 = Bg_GetRotation(param0->unk_00, 7);
|
|
|
|
v0 += param1;
|
|
|
|
if (v0 >= 360) {
|
|
v0 -= 360;
|
|
} else if (v0 < 0) {
|
|
v0 += 360;
|
|
}
|
|
|
|
Bg_ScheduleAffineRotation(param0->unk_00, 7, 0, v0);
|
|
param0->unk_49A = v0;
|
|
}
|
|
|
|
static BOOL ov84_0223EB54(void)
|
|
{
|
|
int v0 = sub_020226DC(Unk_ov84_02240EA8);
|
|
|
|
if (v0 == 1) {
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
static BOOL ov84_0223EB6C(void)
|
|
{
|
|
int v0 = sub_02022684(Unk_ov84_02240EB4);
|
|
|
|
if (v0 == 1) {
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
static BOOL ov84_0223EB84(UnkStruct_ov84_0223B5A0 *param0, u16 param1)
|
|
{
|
|
if (ov84_0223EB54() == 1) {
|
|
param0->unk_492 = 1;
|
|
param0->unk_498 = 0;
|
|
param0->unk_494 = 0;
|
|
param0->unk_49E = gSystem.touchX;
|
|
param0->unk_4A0 = gSystem.touchY;
|
|
}
|
|
|
|
if (param0->unk_492 == 1) {
|
|
if (ov84_0223EB6C() == 1) {
|
|
s32 v0, v1;
|
|
|
|
v0 = CalcDotProduct2D(128 - param0->unk_49E, 80 - param0->unk_4A0, 128 - gSystem.touchX, 80 - gSystem.touchY, 80);
|
|
v1 = CalcRadialAngle(80, v0 * 2);
|
|
v1 = ((v1 << 8) / 182) >> 8;
|
|
param0->unk_49A += v1;
|
|
|
|
if (param0->unk_49A < 0) {
|
|
param0->unk_49A += 360;
|
|
} else if (param0->unk_49A >= 360) {
|
|
param0->unk_49A -= 360;
|
|
}
|
|
|
|
Bg_ScheduleAffineRotation(param0->unk_00, 7, 0, param0->unk_49A);
|
|
{
|
|
s32 v2;
|
|
s32 v3;
|
|
|
|
v2 = 2 * 80 * 3.14;
|
|
v3 = v2 / param1;
|
|
if (v0 > 0) {
|
|
if (param0->unk_498 < 0) {
|
|
param0->unk_498 = v0 / v3;
|
|
param0->unk_494 = v0 % v3;
|
|
} else {
|
|
param0->unk_498 += ((param0->unk_494 + v0) / v3);
|
|
param0->unk_494 = (param0->unk_494 + v0) % v3;
|
|
}
|
|
} else if (v0 < 0) {
|
|
if (param0->unk_498 > 0) {
|
|
param0->unk_498 = v0 / v3;
|
|
param0->unk_494 = v0 % v3;
|
|
} else {
|
|
param0->unk_498 += ((param0->unk_494 + v0) / v3);
|
|
param0->unk_494 = (param0->unk_494 + v0) % v3;
|
|
}
|
|
}
|
|
}
|
|
param0->unk_49E = gSystem.touchX;
|
|
param0->unk_4A0 = gSystem.touchY;
|
|
} else {
|
|
param0->unk_492 = 0;
|
|
param0->unk_498 = 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
static BOOL ov84_0223ED14(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
BOOL v0 = ov84_0223EB84(param0, 36);
|
|
|
|
if (param0->unk_498 > 0) {
|
|
if (ov84_0223ED64(param0, PAD_KEY_UP) == 1) {
|
|
param0->unk_498--;
|
|
} else {
|
|
param0->unk_498 = 0;
|
|
}
|
|
|
|
return 1;
|
|
} else if (param0->unk_498 < 0) {
|
|
if (ov84_0223ED64(param0, PAD_KEY_DOWN) == 1) {
|
|
param0->unk_498++;
|
|
} else {
|
|
param0->unk_498 = 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
return v0;
|
|
}
|
|
|
|
static BOOL ov84_0223ED64(UnkStruct_ov84_0223B5A0 *param0, u16 param1)
|
|
{
|
|
u16 v0 = param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06;
|
|
u16 v1 = param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04;
|
|
|
|
ListMenu_TestInput(param0->unk_15C, NULL, v0, v1, 1, param1, &v0, &v1);
|
|
|
|
if ((v0 == param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06) && (v1 == param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04)) {
|
|
return 0;
|
|
}
|
|
|
|
ManagedSprite_SetPositionXY(param0->unk_E0[4], 177, 24 + (v1 - 1) * 16);
|
|
|
|
param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06 = v0;
|
|
param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04 = v1;
|
|
|
|
return 1;
|
|
}
|
|
|
|
static BOOL ov84_0223EE30(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
BOOL v0 = ov84_0223EB84(param0, 36);
|
|
|
|
if (param0->unk_498 > 0) {
|
|
if (ov84_0223EE80(param0, PAD_KEY_UP) == 1) {
|
|
param0->unk_498--;
|
|
} else {
|
|
param0->unk_498 = 0;
|
|
}
|
|
|
|
return 1;
|
|
} else if (param0->unk_498 < 0) {
|
|
if (ov84_0223EE80(param0, PAD_KEY_DOWN) == 1) {
|
|
param0->unk_498++;
|
|
} else {
|
|
param0->unk_498 = 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
return v0;
|
|
}
|
|
|
|
static BOOL ov84_0223EE80(UnkStruct_ov84_0223B5A0 *param0, u16 param1)
|
|
{
|
|
u16 v0 = param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06;
|
|
u16 v1 = param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04;
|
|
|
|
ListMenu_TestInput(param0->unk_15C, NULL, v0, v1, 1, param1, &v0, &v1);
|
|
|
|
if ((v0 == param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06) && (v1 == param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04)) {
|
|
return 0;
|
|
}
|
|
|
|
ManagedSprite_SetPositionXY(param0->unk_E0[5], 177, 24 + (v1 - 1) * 16 - 8);
|
|
|
|
param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_06 = v0;
|
|
param0->unk_C4->unk_04[param0->unk_C4->unk_64].unk_04 = v1;
|
|
|
|
return 1;
|
|
}
|
|
|
|
static BOOL ov84_0223EF4C(UnkStruct_ov84_0223B5A0 *param0)
|
|
{
|
|
BOOL v0 = ov84_0223EB84(param0, 18);
|
|
|
|
if (param0->unk_498 > 0) {
|
|
if (ov84_0223EF9C(param0, 2) == 1) {
|
|
param0->unk_498--;
|
|
} else {
|
|
param0->unk_498 = 0;
|
|
}
|
|
|
|
return 1;
|
|
} else if (param0->unk_498 < 0) {
|
|
if (ov84_0223EF9C(param0, 3) == 1) {
|
|
param0->unk_498++;
|
|
} else {
|
|
param0->unk_498 = 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
return v0;
|
|
}
|
|
|
|
static BOOL ov84_0223EF9C(UnkStruct_ov84_0223B5A0 *param0, u8 param1)
|
|
{
|
|
u8 v0 = Menu_GetCursorPos(param0->unk_158);
|
|
|
|
Menu_ProcessExternalInput(param0->unk_158, param1);
|
|
|
|
if (v0 == Menu_GetCursorPos(param0->unk_158)) {
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
static BOOL ov84_0223EFD0(UnkStruct_ov84_0223B5A0 *param0, s16 *param1, u16 param2)
|
|
{
|
|
BOOL v0;
|
|
s16 v1;
|
|
|
|
v0 = ov84_0223EB84(param0, 18);
|
|
v1 = *param1;
|
|
|
|
if (param0->unk_498 > 0) {
|
|
param0->unk_498--;
|
|
*param1 += 1;
|
|
|
|
if (*param1 > param2) {
|
|
*param1 = 1;
|
|
}
|
|
|
|
if (*param1 == v1) {
|
|
return 0;
|
|
}
|
|
|
|
Sound_PlayEffect(SEQ_SE_DP_BAG_004);
|
|
return 1;
|
|
} else if (param0->unk_498 < 0) {
|
|
param0->unk_498++;
|
|
*param1 -= 1;
|
|
|
|
if (*param1 <= 0) {
|
|
*param1 = param2;
|
|
}
|
|
|
|
if (*param1 == v1) {
|
|
return 0;
|
|
}
|
|
|
|
Sound_PlayEffect(SEQ_SE_DP_BAG_004);
|
|
return 1;
|
|
}
|
|
|
|
return v0;
|
|
}
|