through sub_812E064
This commit is contained in:
@@ -5,351 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_812DDF0
|
||||
sub_812DDF0: @ 812DDF0
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, 0x18
|
||||
mov r8, r0
|
||||
lsls r5, r1, 24
|
||||
lsrs r5, 24
|
||||
ldr r7, _0812DE68 @ =gUnknown_203B0FC
|
||||
ldr r0, [r7]
|
||||
ldrb r0, [r0, 0x8]
|
||||
mov r4, sp
|
||||
adds r4, 0x16
|
||||
add r1, sp, 0x14
|
||||
adds r2, r4, 0
|
||||
bl get_coro_args_x18_x1A
|
||||
add r1, sp, 0x14
|
||||
ldrh r0, [r4]
|
||||
ldrh r1, [r1]
|
||||
adds r0, r1
|
||||
lsls r0, 16
|
||||
lsrs r6, r0, 16
|
||||
ldrh r0, [r4]
|
||||
lsls r3, r0, 3
|
||||
subs r3, r0
|
||||
lsls r3, 25
|
||||
movs r0, 0x80
|
||||
lsls r0, 19
|
||||
adds r3, r0
|
||||
lsrs r3, 24
|
||||
movs r1, 0
|
||||
str r1, [sp]
|
||||
str r1, [sp, 0x4]
|
||||
ldr r0, _0812DE6C @ =gUnknown_845F5E6
|
||||
str r0, [sp, 0x8]
|
||||
str r1, [sp, 0xC]
|
||||
ldr r0, _0812DE70 @ =gUnknown_203B100
|
||||
ldr r1, [r0]
|
||||
mov r2, r8
|
||||
lsls r0, r2, 3
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
str r0, [sp, 0x10]
|
||||
movs r0, 0
|
||||
movs r1, 0x2
|
||||
movs r2, 0x8
|
||||
bl AddTextPrinterParametrized2
|
||||
cmp r5, 0
|
||||
bne _0812DEC0
|
||||
add r0, sp, 0x14
|
||||
ldr r1, [r7]
|
||||
ldrh r2, [r0]
|
||||
ldrb r0, [r1, 0xA]
|
||||
cmp r2, r0
|
||||
bcs _0812DE74
|
||||
ldrb r0, [r1, 0xB]
|
||||
adds r0, 0x1
|
||||
b _0812DE86
|
||||
.align 2, 0
|
||||
_0812DE68: .4byte gUnknown_203B0FC
|
||||
_0812DE6C: .4byte gUnknown_845F5E6
|
||||
_0812DE70: .4byte gUnknown_203B100
|
||||
_0812DE74:
|
||||
cmp r2, r0
|
||||
bls _0812DE88
|
||||
ldrb r0, [r1, 0x7]
|
||||
lsrs r0, 2
|
||||
subs r0, 0x1
|
||||
cmp r6, r0
|
||||
beq _0812DE88
|
||||
ldrb r0, [r1, 0xB]
|
||||
subs r0, 0x1
|
||||
_0812DE86:
|
||||
strb r0, [r1, 0xB]
|
||||
_0812DE88:
|
||||
ldr r0, _0812DEE4 @ =gUnknown_203B0FC
|
||||
ldr r2, [r0]
|
||||
ldrb r0, [r2, 0xB]
|
||||
lsls r3, r0, 3
|
||||
subs r3, r0
|
||||
lsls r3, 25
|
||||
movs r0, 0x80
|
||||
lsls r0, 19
|
||||
adds r3, r0
|
||||
lsrs r3, 24
|
||||
movs r1, 0
|
||||
str r1, [sp]
|
||||
str r1, [sp, 0x4]
|
||||
ldr r0, _0812DEE8 @ =gUnknown_845F5E3
|
||||
str r0, [sp, 0x8]
|
||||
str r1, [sp, 0xC]
|
||||
ldrb r0, [r2, 0x9]
|
||||
ldr r1, _0812DEEC @ =gUnknown_203B100
|
||||
ldr r1, [r1]
|
||||
lsls r0, 3
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
str r0, [sp, 0x10]
|
||||
movs r0, 0
|
||||
movs r1, 0x2
|
||||
movs r2, 0x8
|
||||
bl AddTextPrinterParametrized2
|
||||
_0812DEC0:
|
||||
ldr r1, _0812DEE4 @ =gUnknown_203B0FC
|
||||
ldr r0, [r1]
|
||||
mov r2, r8
|
||||
strb r2, [r0, 0x9]
|
||||
ldr r2, [r1]
|
||||
ldrh r0, [r4]
|
||||
strb r0, [r2, 0xB]
|
||||
ldr r1, [r1]
|
||||
add r0, sp, 0x14
|
||||
ldrh r0, [r0]
|
||||
strb r0, [r1, 0xA]
|
||||
add sp, 0x18
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0812DEE4: .4byte gUnknown_203B0FC
|
||||
_0812DEE8: .4byte gUnknown_845F5E3
|
||||
_0812DEEC: .4byte gUnknown_203B100
|
||||
thumb_func_end sub_812DDF0
|
||||
|
||||
thumb_func_start sub_812DEF0
|
||||
sub_812DEF0: @ 812DEF0
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
movs r4, 0
|
||||
movs r6, 0
|
||||
ldr r0, _0812DF44 @ =0x0000fdff
|
||||
mov r8, r0
|
||||
ldr r7, _0812DF48 @ =gUnknown_845F60C
|
||||
_0812DF00:
|
||||
adds r0, r6, 0
|
||||
bl sub_812D0C0
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
ldr r0, _0812DF4C @ =gSaveBlock1Ptr
|
||||
ldr r0, [r0]
|
||||
lsls r1, r5, 2
|
||||
adds r0, r1
|
||||
ldr r1, _0812DF50 @ =0x00003a54
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
lsls r0, 30
|
||||
cmp r0, 0
|
||||
beq _0812DF88
|
||||
ldr r0, _0812DF54 @ =gUnknown_845F5EA
|
||||
lsls r1, r5, 1
|
||||
adds r3, r1, r0
|
||||
ldrh r0, [r3]
|
||||
cmp r0, r8
|
||||
bhi _0812DF60
|
||||
ldr r0, _0812DF58 @ =gUnknown_203B100
|
||||
ldr r0, [r0]
|
||||
lsls r2, r4, 3
|
||||
adds r2, r0
|
||||
ldrh r1, [r3]
|
||||
lsls r0, r1, 2
|
||||
adds r0, r1
|
||||
lsls r0, 3
|
||||
ldr r1, _0812DF5C @ =gTrainers+0x4
|
||||
adds r0, r1
|
||||
str r0, [r2]
|
||||
str r4, [r2, 0x4]
|
||||
b _0812DF78
|
||||
.align 2, 0
|
||||
_0812DF44: .4byte 0x0000fdff
|
||||
_0812DF48: .4byte gUnknown_845F60C
|
||||
_0812DF4C: .4byte gSaveBlock1Ptr
|
||||
_0812DF50: .4byte 0x00003a54
|
||||
_0812DF54: .4byte gUnknown_845F5EA
|
||||
_0812DF58: .4byte gUnknown_203B100
|
||||
_0812DF5C: .4byte gTrainers+0x4
|
||||
_0812DF60:
|
||||
ldr r0, _0812DFC0 @ =gUnknown_203B100
|
||||
ldr r0, [r0]
|
||||
lsls r1, r4, 3
|
||||
adds r1, r0
|
||||
ldrh r0, [r3]
|
||||
ldr r2, _0812DFC4 @ =0xffff0200
|
||||
adds r0, r2
|
||||
lsls r0, 2
|
||||
adds r0, r7
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
str r4, [r1, 0x4]
|
||||
_0812DF78:
|
||||
ldr r0, _0812DFC8 @ =gUnknown_203B0FC
|
||||
ldr r0, [r0]
|
||||
adds r0, 0xC
|
||||
adds r0, r4
|
||||
strb r5, [r0]
|
||||
adds r0, r4, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
_0812DF88:
|
||||
adds r0, r6, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
cmp r6, 0xF
|
||||
bls _0812DF00
|
||||
ldr r0, _0812DFC0 @ =gUnknown_203B100
|
||||
ldr r1, [r0]
|
||||
lsls r0, r4, 3
|
||||
adds r0, r1
|
||||
ldr r1, _0812DFCC @ =gUnknown_84161C1
|
||||
str r1, [r0]
|
||||
str r4, [r0, 0x4]
|
||||
ldr r0, _0812DFC8 @ =gUnknown_203B0FC
|
||||
ldr r0, [r0]
|
||||
adds r0, 0xC
|
||||
adds r0, r4
|
||||
movs r1, 0xFF
|
||||
strb r1, [r0]
|
||||
adds r0, r4, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
ldr r1, _0812DFD0 @ =gUnknown_3005EB0
|
||||
strh r4, [r1, 0xC]
|
||||
cmp r4, 0x4
|
||||
bhi _0812DFD4
|
||||
strh r4, [r1, 0xE]
|
||||
b _0812DFD8
|
||||
.align 2, 0
|
||||
_0812DFC0: .4byte gUnknown_203B100
|
||||
_0812DFC4: .4byte 0xffff0200
|
||||
_0812DFC8: .4byte gUnknown_203B0FC
|
||||
_0812DFCC: .4byte gUnknown_84161C1
|
||||
_0812DFD0: .4byte gUnknown_3005EB0
|
||||
_0812DFD4:
|
||||
movs r0, 0x5
|
||||
strh r0, [r1, 0xE]
|
||||
_0812DFD8:
|
||||
adds r0, r4, 0
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_812DEF0
|
||||
|
||||
thumb_func_start sub_812DFE4
|
||||
sub_812DFE4: @ 812DFE4
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
adds r0, r4, 0
|
||||
bl PutWindowTilemap
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x3
|
||||
bl CopyWindowToVram
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_812DFE4
|
||||
|
||||
thumb_func_start sub_812E000
|
||||
sub_812E000: @ 812E000
|
||||
push {r4,lr}
|
||||
sub sp, 0x10
|
||||
mov r1, sp
|
||||
ldr r0, _0812E040 @ =gUnknown_845FD44
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
ldr r0, [r0]
|
||||
str r0, [r1]
|
||||
ldr r4, _0812E044 @ =gUnknown_203B0FC
|
||||
ldr r2, [r4]
|
||||
ldrb r0, [r2, 0x7]
|
||||
lsrs r0, 2
|
||||
cmp r0, 0x5
|
||||
bls _0812E036
|
||||
mov r1, sp
|
||||
movs r0, 0
|
||||
strh r0, [r1, 0x6]
|
||||
ldrb r0, [r2, 0x7]
|
||||
lsrs r0, 2
|
||||
subs r0, 0x5
|
||||
strh r0, [r1, 0x8]
|
||||
adds r1, r2, 0x4
|
||||
mov r0, sp
|
||||
bl AddScrollIndicatorArrowPair
|
||||
ldr r1, [r4]
|
||||
strb r0, [r1, 0x6]
|
||||
_0812E036:
|
||||
add sp, 0x10
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0812E040: .4byte gUnknown_845FD44
|
||||
_0812E044: .4byte gUnknown_203B0FC
|
||||
thumb_func_end sub_812E000
|
||||
|
||||
thumb_func_start sub_812E048
|
||||
sub_812E048: @ 812E048
|
||||
push {lr}
|
||||
ldr r0, _0812E060 @ =gUnknown_203B0FC
|
||||
ldr r1, [r0]
|
||||
ldrb r0, [r1, 0x7]
|
||||
lsrs r0, 2
|
||||
cmp r0, 0x5
|
||||
bls _0812E05C
|
||||
ldrb r0, [r1, 0x6]
|
||||
bl RemoveScrollIndicatorArrowPair
|
||||
_0812E05C:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0812E060: .4byte gUnknown_203B0FC
|
||||
thumb_func_end sub_812E048
|
||||
|
||||
thumb_func_start sub_812E064
|
||||
sub_812E064: @ 812E064
|
||||
push {r4,lr}
|
||||
sub sp, 0x4
|
||||
ldr r0, _0812E090 @ =gUnknown_203B0FC
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x8]
|
||||
mov r4, sp
|
||||
adds r4, 0x2
|
||||
mov r1, sp
|
||||
adds r2, r4, 0
|
||||
bl get_coro_args_x18_x1A
|
||||
mov r1, sp
|
||||
ldrh r0, [r4]
|
||||
ldrh r1, [r1]
|
||||
adds r0, r1
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
add sp, 0x4
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0812E090: .4byte gUnknown_203B0FC
|
||||
thumb_func_end sub_812E064
|
||||
|
||||
thumb_func_start sub_812E094
|
||||
sub_812E094: @ 812E094
|
||||
push {r4-r6,lr}
|
||||
|
||||
@@ -7,8 +7,17 @@
|
||||
|
||||
// Exported RAM declarations
|
||||
|
||||
struct ScrollIndicatorArrowPairTemplate
|
||||
{
|
||||
u8 filler_00[6];
|
||||
u16 unk_06;
|
||||
u16 unk_08;
|
||||
u8 filler_0a[6];
|
||||
};
|
||||
|
||||
// Exported ROM declarations
|
||||
u8 AddScrollIndicatorArrowPairParametrized(u8, u8, u8, u8, s32, u16, u16, u16 *);
|
||||
u8 AddScrollIndicatorArrowPair(const struct ScrollIndicatorArrowPairTemplate * template, u16 * a1);
|
||||
void RemoveScrollIndicatorArrowPair(u8);
|
||||
|
||||
#endif //GUARD_MENU_INDICATORS_H
|
||||
|
||||
+99
-4
@@ -4,6 +4,7 @@
|
||||
#include "bg.h"
|
||||
#include "event_data.h"
|
||||
#include "graphics.h"
|
||||
#include "battle.h"
|
||||
#include "battle_setup.h"
|
||||
#include "menu.h"
|
||||
#include "battle_dome_cards.h"
|
||||
@@ -21,6 +22,7 @@
|
||||
#include "window.h"
|
||||
#include "string_util.h"
|
||||
#include "field_map_obj.h"
|
||||
#include "menu_indicators.h"
|
||||
#include "text_window.h"
|
||||
|
||||
#define SPRITETAG_1000 1000
|
||||
@@ -35,7 +37,7 @@ struct FameCheckerData
|
||||
{
|
||||
MainCallback unk_00;
|
||||
u16 unk_04;
|
||||
u8 filler_06[1];
|
||||
u8 unk_06;
|
||||
u8 unk_07_0:1;
|
||||
u8 unk_07_1:1;
|
||||
u8 unk_07_2:6;
|
||||
@@ -121,6 +123,7 @@ extern const u8 gUnknown_84181E4[];
|
||||
extern const u8 gUnknown_841E5A4[];
|
||||
extern const u8 gUnknown_841E5B9[];
|
||||
extern const u8 gUnknown_841E5D2[];
|
||||
extern const u8 gUnknown_84161C1[];
|
||||
|
||||
extern const u16 gUnknown_845C600[];
|
||||
extern const u16 gUnknown_845DD20[];
|
||||
@@ -130,7 +133,10 @@ extern const u16 gUnknown_845F580[];
|
||||
extern const u16 gUnknown_845F5C0[];
|
||||
extern const struct TextColor gUnknown_845F5E0;
|
||||
extern const struct TextColor gUnknown_845F5E3;
|
||||
extern const struct TextColor gUnknown_845F5E6;
|
||||
extern const u16 gUnknown_845F5EA[];
|
||||
extern const u8 gUnknown_845F61C[];
|
||||
extern const u8 *const gUnknown_845F60C[];
|
||||
extern const u8 *const gUnknown_845F63C[];
|
||||
extern const u8 *const gUnknown_845F6BC[];
|
||||
extern const u8 *const gUnknown_845F89C[];
|
||||
@@ -147,6 +153,7 @@ extern const struct SpriteTemplate gUnknown_845FCE4;
|
||||
extern const struct SpriteTemplate gUnknown_845FCFC;
|
||||
extern const struct SpriteTemplate gUnknown_845FD14;
|
||||
extern const struct SpriteTemplate gUnknown_845FD2C;
|
||||
extern const struct ScrollIndicatorArrowPairTemplate gUnknown_845FD44;
|
||||
|
||||
void sub_812C380(void)
|
||||
{
|
||||
@@ -981,7 +988,7 @@ void sub_812DB64(void)
|
||||
|
||||
void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list)
|
||||
{
|
||||
u16 sp8[2];
|
||||
u16 sp8;
|
||||
u8 taskId;
|
||||
u16 r9;
|
||||
gUnknown_203B104 = 0;
|
||||
@@ -993,8 +1000,8 @@ void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list)
|
||||
struct Task *task = &gTasks[taskId];
|
||||
PlaySE(SE_SELECT);
|
||||
task->data[1] = 0;
|
||||
get_coro_args_x18_x1A(gUnknown_203B0FC->unk_08, sp8, NULL);
|
||||
gUnknown_203B0FC->unk_04 = sp8[0];
|
||||
get_coro_args_x18_x1A(gUnknown_203B0FC->unk_08, &sp8, NULL);
|
||||
gUnknown_203B0FC->unk_04 = sp8;
|
||||
if (itemIndex != gUnknown_203B0FC->unk_07_2 - 1)
|
||||
{
|
||||
sub_812D174();
|
||||
@@ -1056,3 +1063,91 @@ void sub_812DDAC(void)
|
||||
AddTextPrinterParametrized(2, 2, gUnknown_84181C3, 0, NULL, 2, 1, 3);
|
||||
sub_812CEE0(2);
|
||||
}
|
||||
|
||||
void sub_812DDF0(s32 itemIndex, bool8 onInit)
|
||||
{
|
||||
u16 sp14;
|
||||
u16 sp16;
|
||||
u16 r6;
|
||||
get_coro_args_x18_x1A(gUnknown_203B0FC->unk_08, &sp14, &sp16);
|
||||
r6 = sp14 + sp16;
|
||||
AddTextPrinterParametrized2(0, 2, 8, 14 * sp16 + 4, 0, 0, &gUnknown_845F5E6, 0, gUnknown_203B100[itemIndex].unk_00);
|
||||
if (!onInit)
|
||||
{
|
||||
if (sp14 < gUnknown_203B0FC->unk_0A)
|
||||
gUnknown_203B0FC->unk_0B++;
|
||||
else if (sp14 > gUnknown_203B0FC->unk_0A && r6 != gUnknown_203B0FC->unk_07_2 - 1)
|
||||
gUnknown_203B0FC->unk_0B--;
|
||||
AddTextPrinterParametrized2(0, 2, 8, 14 * gUnknown_203B0FC->unk_0B + 4, 0, 0, &gUnknown_845F5E3, 0, gUnknown_203B100[gUnknown_203B0FC->unk_09].unk_00);
|
||||
|
||||
}
|
||||
gUnknown_203B0FC->unk_09 = itemIndex;
|
||||
gUnknown_203B0FC->unk_0B = sp16;
|
||||
gUnknown_203B0FC->unk_0A = sp14;
|
||||
}
|
||||
|
||||
u8 sub_812DEF0(void)
|
||||
{
|
||||
u8 r4 = 0;
|
||||
u8 r6;
|
||||
|
||||
for (r6 = 0; r6 < 16; r6++)
|
||||
{
|
||||
u8 r5 = sub_812D0C0(r6);
|
||||
if (gSaveBlock1Ptr->fameChecker[r5].unk_0_0 != 0)
|
||||
{
|
||||
if (gUnknown_845F5EA[r5] < 0xFE00)
|
||||
{
|
||||
gUnknown_203B100[r4].unk_00 = gTrainers[gUnknown_845F5EA[r5]].trainerName;
|
||||
gUnknown_203B100[r4].unk_04 = r4;
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_203B100[r4].unk_00 = gUnknown_845F60C[gUnknown_845F5EA[r5] - 0xFE00];
|
||||
gUnknown_203B100[r4].unk_04 = r4;
|
||||
}
|
||||
gUnknown_203B0FC->unk_0C[r4] = r5;
|
||||
r4++;
|
||||
}
|
||||
}
|
||||
gUnknown_203B100[r4].unk_00 = gUnknown_84161C1;
|
||||
gUnknown_203B100[r4].unk_04 = r4;
|
||||
gUnknown_203B0FC->unk_0C[r4] = 0xFF;
|
||||
r4++;
|
||||
gUnknown_3005EB0.totalItems = r4;
|
||||
if (r4 < 5)
|
||||
gUnknown_3005EB0.maxShowed = r4;
|
||||
else
|
||||
gUnknown_3005EB0.maxShowed = 5;
|
||||
return r4;
|
||||
}
|
||||
|
||||
void sub_812DFE4(u8 windowId)
|
||||
{
|
||||
PutWindowTilemap(windowId);
|
||||
CopyWindowToVram(windowId, 3);
|
||||
}
|
||||
|
||||
void sub_812E000(void)
|
||||
{
|
||||
struct ScrollIndicatorArrowPairTemplate sp0 = gUnknown_845FD44;
|
||||
if (gUnknown_203B0FC->unk_07_2 > 5)
|
||||
{
|
||||
sp0.unk_06 = 0;
|
||||
sp0.unk_08 = gUnknown_203B0FC->unk_07_2 - 5;
|
||||
gUnknown_203B0FC->unk_06 = AddScrollIndicatorArrowPair(&sp0, &gUnknown_203B0FC->unk_04);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_812E048(void)
|
||||
{
|
||||
if (gUnknown_203B0FC->unk_07_2 > 5)
|
||||
RemoveScrollIndicatorArrowPair(gUnknown_203B0FC->unk_06);
|
||||
}
|
||||
|
||||
u16 sub_812E064(void)
|
||||
{
|
||||
u16 sp0, sp2;
|
||||
get_coro_args_x18_x1A(gUnknown_203B0FC->unk_08, &sp0, &sp2);
|
||||
return sp0 + sp2;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user