help_system_812B1E0: through sub_812BDEC

This commit is contained in:
PikalaxALT
2019-06-12 16:43:34 -04:00
parent 5f41304d75
commit 85aeb8d476
4 changed files with 170 additions and 383 deletions
-383
View File
@@ -5,389 +5,6 @@
.text
thumb_func_start sub_812BB10
sub_812BB10: @ 812BB10
push {lr}
ldr r0, _0812BB7C @ =0x00000237
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0812BB94
movs r0, 0x8E
lsls r0, 2
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0812BB94
ldr r0, _0812BB80 @ =0x00000239
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0812BB94
ldr r0, _0812BB84 @ =0x0000023a
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0812BB94
ldr r0, _0812BB88 @ =0x0000023b
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0812BB94
ldr r0, _0812BB8C @ =0x000002ef
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0812BB94
ldr r0, _0812BB90 @ =0x000001f1
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0812BB94
movs r0, 0
b _0812BB96
.align 2, 0
_0812BB7C: .4byte 0x00000237
_0812BB80: .4byte 0x00000239
_0812BB84: .4byte 0x0000023a
_0812BB88: .4byte 0x0000023b
_0812BB8C: .4byte 0x000002ef
_0812BB90: .4byte 0x000001f1
_0812BB94:
movs r0, 0x1
_0812BB96:
pop {r1}
bx r1
thumb_func_end sub_812BB10
thumb_func_start sub_812BB9C
sub_812BB9C: @ 812BB9C
push {lr}
adds r2, r0, 0
adds r3, r1, 0
ldrb r0, [r2, 0xE]
cmp r0, 0xA
bhi _0812BC4C
lsls r0, 2
ldr r1, _0812BBB4 @ =_0812BBB8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0812BBB4: .4byte _0812BBB8
.align 2, 0
_0812BBB8:
.4byte _0812BC02
.4byte _0812BC0C
.4byte _0812BC16
.4byte _0812BC20
.4byte _0812BC2A
.4byte _0812BC34
.4byte _0812BC3E
.4byte _0812BC4C
.4byte _0812BBE4
.4byte _0812BBEE
.4byte _0812BBF8
_0812BBE4:
adds r0, r2, 0
adds r1, r3, 0
bl sub_812BC54
b _0812BC46
_0812BBEE:
adds r0, r2, 0
adds r1, r3, 0
bl sub_812BC80
b _0812BC46
_0812BBF8:
adds r0, r2, 0
adds r1, r3, 0
bl sub_812BCA8
b _0812BC46
_0812BC02:
adds r0, r2, 0
adds r1, r3, 0
bl sub_812BCD0
b _0812BC46
_0812BC0C:
adds r0, r2, 0
adds r1, r3, 0
bl sub_812BD2C
b _0812BC46
_0812BC16:
adds r0, r2, 0
adds r1, r3, 0
bl sub_812BD64
b _0812BC46
_0812BC20:
adds r0, r2, 0
adds r1, r3, 0
bl sub_812BD98
b _0812BC46
_0812BC2A:
adds r0, r2, 0
adds r1, r3, 0
bl sub_812BE10
b _0812BC46
_0812BC34:
adds r0, r2, 0
adds r1, r3, 0
bl sub_812BEEC
b _0812BC46
_0812BC3E:
adds r0, r2, 0
adds r1, r3, 0
bl sub_812BF18
_0812BC46:
lsls r0, 24
lsrs r0, 24
b _0812BC4E
_0812BC4C:
movs r0, 0
_0812BC4E:
pop {r1}
bx r1
thumb_func_end sub_812BB9C
thumb_func_start sub_812BC54
sub_812BC54: @ 812BC54
push {r4,lr}
adds r4, r0, 0
ldr r0, _0812BC7C @ =gUnknown_841DFA5
bl sub_812BF74
bl sub_812BF5C
movs r0, 0x1
bl sub_813BDA4
movs r0, 0x1
bl sub_813BD5C
movs r0, 0x9
strb r0, [r4, 0xE]
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0812BC7C: .4byte gUnknown_841DFA5
thumb_func_end sub_812BC54
thumb_func_start sub_812BC80
sub_812BC80: @ 812BC80
push {r4,lr}
adds r4, r0, 0
ldr r0, _0812BCA4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0812BC9A
movs r0, 0x5
bl PlaySE
movs r0, 0xA
strb r0, [r4, 0xE]
_0812BC9A:
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0812BCA4: .4byte gMain
thumb_func_end sub_812BC80
thumb_func_start sub_812BCA8
sub_812BCA8: @ 812BCA8
push {r4-r6,lr}
adds r4, r0, 0
adds r6, r1, 0
ldr r0, _0812BCCC @ =gUnknown_3005E9C
movs r5, 0
strb r5, [r0, 0x2]
adds r0, r4, 0
bl sub_812BF94
adds r0, r4, 0
adds r1, r6, 0
bl sub_812B4D8
strb r5, [r4, 0xE]
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0812BCCC: .4byte gUnknown_3005E9C
thumb_func_end sub_812BCA8
thumb_func_start sub_812BCD0
sub_812BCD0: @ 812BCD0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl sub_813C690
adds r1, r0, 0
adds r0, r1, 0x6
cmp r0, 0x5
bhi _0812BD16
lsls r0, 2
ldr r1, _0812BCEC @ =_0812BCF0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0812BCEC: .4byte _0812BCF0
.align 2, 0
_0812BCF0:
.4byte _0812BD08
.4byte _0812BD0C
.4byte _0812BD0C
.4byte _0812BD1E
.4byte _0812BD08
.4byte _0812BD1E
_0812BD08:
movs r0, 0
b _0812BD20
_0812BD0C:
adds r0, r4, 0
adds r1, r5, 0
bl sub_812BF9C
b _0812BD1E
_0812BD16:
ldr r0, _0812BD28 @ =gUnknown_3005E9C
strb r1, [r0, 0x1]
movs r0, 0x1
strb r0, [r4, 0xE]
_0812BD1E:
movs r0, 0x1
_0812BD20:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0812BD28: .4byte gUnknown_3005E9C
thumb_func_end sub_812BCD0
thumb_func_start sub_812BD2C
sub_812BD2C: @ 812BD2C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldr r1, _0812BD60 @ =gUnknown_3005E9C
movs r0, 0x1
strb r0, [r1]
ldrb r0, [r4, 0xD]
strb r0, [r1, 0x2]
adds r0, r4, 0
bl sub_812BF94
adds r0, r4, 0
adds r1, r5, 0
bl sub_812B5A8
bl sub_813C75C
movs r0, 0x2
bl sub_813C684
movs r0, 0x3
strb r0, [r4, 0xE]
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0812BD60: .4byte gUnknown_3005E9C
thumb_func_end sub_812BD2C
thumb_func_start sub_812BD64
sub_812BD64: @ 812BD64
push {r4-r6,lr}
adds r5, r0, 0
adds r6, r1, 0
movs r0, 0
movs r1, 0
bl sub_813C004
movs r0, 0x1
movs r1, 0
bl sub_813C004
ldr r0, _0812BD94 @ =gUnknown_3005E9C
movs r4, 0
strb r4, [r0]
adds r0, r5, 0
adds r1, r6, 0
bl sub_812B4D8
strb r4, [r5, 0xE]
movs r0, 0x1
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0812BD94: .4byte gUnknown_3005E9C
thumb_func_end sub_812BD64
thumb_func_start sub_812BD98
sub_812BD98: @ 812BD98
push {r4,lr}
adds r4, r0, 0
bl sub_813C690
adds r1, r0, 0
adds r0, r1, 0x6
cmp r0, 0x5
bhi _0812BDD8
lsls r0, 2
ldr r1, _0812BDB4 @ =_0812BDB8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0812BDB4: .4byte _0812BDB8
.align 2, 0
_0812BDB8:
.4byte _0812BDD0
.4byte _0812BDE0
.4byte _0812BDE0
.4byte _0812BDE0
.4byte _0812BDD4
.4byte _0812BDE0
_0812BDD0:
movs r0, 0
b _0812BDE2
_0812BDD4:
movs r0, 0x2
b _0812BDDE
_0812BDD8:
ldr r0, _0812BDE8 @ =gUnknown_3005E9C
strb r1, [r0, 0x3]
movs r0, 0x4
_0812BDDE:
strb r0, [r4, 0xE]
_0812BDE0:
movs r0, 0x1
_0812BDE2:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0812BDE8: .4byte gUnknown_3005E9C
thumb_func_end sub_812BD98
thumb_func_start sub_812BDEC
sub_812BDEC: @ 812BDEC
push {lr}
ldr r1, _0812BE08 @ =gUnknown_845B080
ldr r0, _0812BE0C @ =gUnknown_3005E9C
ldrb r0, [r0, 0x1]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0
movs r2, 0
bl sub_813C4CC
pop {r0}
bx r0
.align 2, 0
_0812BE08: .4byte gUnknown_845B080
_0812BE0C: .4byte gUnknown_3005E9C
thumb_func_end sub_812BDEC
thumb_func_start sub_812BE10
sub_812BE10: @ 812BE10
push {r4,r5,lr}
+5
View File
@@ -18,6 +18,7 @@ struct HelpSystemStruct_203F190
struct HelpSystemStruct_203F190_sub sub;
u8 field_0C;
u8 field_0D;
u8 field_0E;
u8 filler_10[0xC];
};
@@ -37,5 +38,9 @@ void sub_813BD5C(u8);
void sub_813BDE8(u8);
void sub_813BFC0(u8);
void sub_813BE78(u8);
s32 sub_813C690(void);
void sub_813C75C(void);
void sub_813C684(u8);
void sub_813C004(u8, u8);
#endif //GUARD_HELP_SYSTEM_H
+2
View File
@@ -137,7 +137,9 @@ extern const u8 gTeachyTvText_TMsScript2[];
extern const u8 gTeachyTvText_RegisterScript2[];
// help_system_812B1E0
extern const u8 gUnknown_841DFA5[];
extern const u8 gUnknown_841DFAC[];
extern const u8 gUnknown_841DFBE[];
extern const u8 gUnknown_841DFC9[];
#endif //GUARD_STRINGS_H
+163
View File
@@ -10,9 +10,11 @@
#include "quest_log.h"
#include "save.h"
#include "save_location.h"
#include "sound.h"
#include "strings.h"
#include "constants/items.h"
#include "constants/maps.h"
#include "constants/songs.h"
EWRAM_DATA u16 gUnknown_203B0EC = 0;
EWRAM_DATA u8 gUnknown_203B0EE = 0;
@@ -27,8 +29,20 @@ void sub_812B614(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
bool8 sub_812B754(void);
bool8 sub_812B780(u8);
bool8 sub_812BB10(void);
bool8 sub_812BC54(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
bool8 sub_812BC80(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
bool8 sub_812BCA8(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
bool8 sub_812BCD0(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
bool8 sub_812BD2C(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
bool8 sub_812BD64(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
bool8 sub_812BD98(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
bool8 sub_812BE10(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
bool8 sub_812BEEC(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
bool8 sub_812BF18(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
void sub_812BF9C(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
void sub_812BF5C(void);
void sub_812BF74(const u8 *);
void sub_812BF94(struct HelpSystemStruct_203F190 * a0);
const u8 *const gUnknown_845B080[] = {
gUnknown_81B2DF8,
@@ -1334,3 +1348,152 @@ bool8 sub_812B780(u8 id)
return FALSE;
}
bool8 sub_812BB10(void)
{
if (FlagGet(FLAG_0x237) == TRUE)
return TRUE;
if (FlagGet(FLAG_0x238) == TRUE)
return TRUE;
if (FlagGet(FLAG_0x239) == TRUE)
return TRUE;
if (FlagGet(FLAG_0x23A) == TRUE)
return TRUE;
if (FlagGet(FLAG_0x23B) == TRUE)
return TRUE;
if (FlagGet(FLAG_0x2EF) == TRUE)
return TRUE;
if (FlagGet(FLAG_0x1F1) == TRUE)
return TRUE;
return FALSE;
}
bool8 sub_812BB9C(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
{
switch (a0->field_0E)
{
case 8:
return sub_812BC54(a0, a1);
case 9:
return sub_812BC80(a0, a1);
case 10:
return sub_812BCA8(a0, a1);
case 0:
return sub_812BCD0(a0, a1);
case 1:
return sub_812BD2C(a0, a1);
case 2:
return sub_812BD64(a0, a1);
case 3:
return sub_812BD98(a0, a1);
case 4:
return sub_812BE10(a0, a1);
case 5:
return sub_812BEEC(a0, a1);
case 6:
return sub_812BF18(a0, a1);
}
return FALSE;
}
bool8 sub_812BC54(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
{
sub_812BF74(gUnknown_841DFA5);
sub_812BF5C();
sub_813BDA4(1);
sub_813BD5C(1);
a0->field_0E = 9;
return TRUE;
}
bool8 sub_812BC80(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
{
if (JOY_NEW(A_BUTTON))
{
PlaySE(SE_SELECT);
a0->field_0E = 10;
}
return TRUE;
}
bool8 sub_812BCA8(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
{
gUnknown_3005E9C[2] = 0;
sub_812BF94(a0);
sub_812B4D8(a0, a1);
a0->field_0E = 0;
return TRUE;
}
bool8 sub_812BCD0(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
{
s32 v0 = sub_813C690();
switch (v0)
{
case -6:
case -2:
return FALSE;
case -5:
case -4:
sub_812BF9C(a0, a1);
break;
case -3:
case -1:
break;
default:
gUnknown_3005E9C[1] = v0;
a0->field_0E = 1;
break;
}
return TRUE;
}
bool8 sub_812BD2C(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
{
gUnknown_3005E9C[0] = 1;
gUnknown_3005E9C[2] = a0->field_0D;
sub_812BF94(a0);
sub_812B5A8(a0, a1);
sub_813C75C();
sub_813C684(2);
a0->field_0E = 3;
return TRUE;
}
bool8 sub_812BD64(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
{
sub_813C004(0, 0);
sub_813C004(1, 0);
gUnknown_3005E9C[0] = 0;
sub_812B4D8(a0, a1);
a0->field_0E = 0;
return TRUE;
}
bool8 sub_812BD98(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
{
s32 v0 = sub_813C690();
switch (v0)
{
case -6:
return FALSE;
case -2:
a0->field_0E = 2;
break;
case -5:
case -4:
case -3:
case -1:
break;
default:
gUnknown_3005E9C[3] = v0;
a0->field_0E = 4;
break;
}
return TRUE;
}
void sub_812BDEC(void)
{
sub_813C4CC(gUnknown_845B080[gUnknown_3005E9C[1]], 0, 0);
}