help_system_812B1E0: through sub_812B4D8
This commit is contained in:
@@ -5,327 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_812B2C4
|
||||
sub_812B2C4: @ 812B2C4
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
movs r5, 0
|
||||
ldr r0, _0812B2E8 @ =gUnknown_845C5CE
|
||||
mov r9, r0
|
||||
movs r0, 0x2
|
||||
add r0, r9
|
||||
mov r8, r0
|
||||
_0812B2D8:
|
||||
movs r6, 0
|
||||
mov r4, r9
|
||||
lsls r1, r5, 1
|
||||
adds r0, r1, r5
|
||||
add r0, r8
|
||||
adds r7, r1, 0
|
||||
b _0812B33A
|
||||
.align 2, 0
|
||||
_0812B2E8: .4byte gUnknown_845C5CE
|
||||
_0812B2EC:
|
||||
adds r3, r1, r5
|
||||
adds r0, r3, r4
|
||||
ldrb r1, [r0]
|
||||
ldr r0, _0812B324 @ =gSaveBlock1Ptr
|
||||
ldr r2, [r0]
|
||||
movs r0, 0x4
|
||||
ldrsb r0, [r2, r0]
|
||||
cmp r1, r0
|
||||
bne _0812B32C
|
||||
adds r0, r4, 0x1
|
||||
adds r0, r3, r0
|
||||
ldrb r0, [r0]
|
||||
adds r0, r6
|
||||
movs r1, 0x5
|
||||
ldrsb r1, [r2, r1]
|
||||
cmp r0, r1
|
||||
bne _0812B32C
|
||||
cmp r5, 0xF
|
||||
bne _0812B320
|
||||
ldr r0, _0812B328 @ =0x00000849
|
||||
bl FlagGet
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0812B32C
|
||||
_0812B320:
|
||||
movs r0, 0x1
|
||||
b _0812B34C
|
||||
.align 2, 0
|
||||
_0812B324: .4byte gSaveBlock1Ptr
|
||||
_0812B328: .4byte 0x00000849
|
||||
_0812B32C:
|
||||
adds r0, r6, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
ldr r4, _0812B358 @ =gUnknown_845C5CE
|
||||
adds r1, r7, 0
|
||||
adds r0, r1, r5
|
||||
add r0, r8
|
||||
_0812B33A:
|
||||
ldrb r0, [r0]
|
||||
cmp r6, r0
|
||||
bcc _0812B2EC
|
||||
adds r0, r5, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
cmp r5, 0xF
|
||||
bls _0812B2D8
|
||||
movs r0, 0
|
||||
_0812B34C:
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0812B358: .4byte gUnknown_845C5CE
|
||||
thumb_func_end sub_812B2C4
|
||||
|
||||
thumb_func_start sub_812B35C
|
||||
sub_812B35C: @ 812B35C
|
||||
push {lr}
|
||||
bl sub_812B4B8
|
||||
movs r0, 0x8
|
||||
bl TestPlayerAvatarFlags
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0812B376
|
||||
movs r0, 0x16
|
||||
bl HelpSystem_SetSomeVariable2
|
||||
b _0812B406
|
||||
_0812B376:
|
||||
bl sub_812B2C4
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0812B388
|
||||
movs r0, 0x15
|
||||
bl HelpSystem_SetSomeVariable2
|
||||
b _0812B406
|
||||
_0812B388:
|
||||
ldr r0, _0812B3B0 @ =gMapHeader
|
||||
ldrb r0, [r0, 0x17]
|
||||
bl is_light_level_8_or_9
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0812B400
|
||||
ldr r0, _0812B3B4 @ =gSaveBlock1Ptr
|
||||
ldr r0, [r0]
|
||||
ldrh r1, [r0, 0x4]
|
||||
cmp r1, 0x4
|
||||
beq _0812B3A8
|
||||
movs r0, 0x82
|
||||
lsls r0, 1
|
||||
cmp r1, r0
|
||||
bne _0812B3B8
|
||||
_0812B3A8:
|
||||
movs r0, 0xE
|
||||
bl HelpSystem_SetSomeVariable2
|
||||
b _0812B406
|
||||
.align 2, 0
|
||||
_0812B3B0: .4byte gMapHeader
|
||||
_0812B3B4: .4byte gSaveBlock1Ptr
|
||||
_0812B3B8:
|
||||
movs r0, 0xC1
|
||||
lsls r0, 2
|
||||
cmp r1, r0
|
||||
bne _0812B3C8
|
||||
movs r0, 0xF
|
||||
bl HelpSystem_SetSomeVariable2
|
||||
b _0812B406
|
||||
_0812B3C8:
|
||||
bl IsCurMapPokeCenter
|
||||
cmp r0, 0x1
|
||||
bne _0812B3D8
|
||||
movs r0, 0x10
|
||||
bl HelpSystem_SetSomeVariable2
|
||||
b _0812B406
|
||||
_0812B3D8:
|
||||
bl sub_812B25C
|
||||
cmp r0, 0x1
|
||||
bne _0812B3E8
|
||||
movs r0, 0x11
|
||||
bl HelpSystem_SetSomeVariable2
|
||||
b _0812B406
|
||||
_0812B3E8:
|
||||
bl sub_812B26C
|
||||
cmp r0, 0x1
|
||||
bne _0812B3F8
|
||||
movs r0, 0x12
|
||||
bl HelpSystem_SetSomeVariable2
|
||||
b _0812B406
|
||||
_0812B3F8:
|
||||
movs r0, 0x13
|
||||
bl HelpSystem_SetSomeVariable2
|
||||
b _0812B406
|
||||
_0812B400:
|
||||
movs r0, 0x14
|
||||
bl HelpSystem_SetSomeVariable2
|
||||
_0812B406:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_812B35C
|
||||
|
||||
thumb_func_start sub_812B40C
|
||||
sub_812B40C: @ 812B40C
|
||||
push {lr}
|
||||
ldr r0, _0812B434 @ =gUnknown_203B0EE
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x1
|
||||
beq _0812B42E
|
||||
ldr r0, _0812B438 @ =gSaveFileStatus
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0812B440
|
||||
cmp r0, 0x2
|
||||
beq _0812B440
|
||||
ldr r0, _0812B43C @ =0x0000083c
|
||||
bl FlagGet
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0812B440
|
||||
_0812B42E:
|
||||
movs r0, 0
|
||||
b _0812B44E
|
||||
.align 2, 0
|
||||
_0812B434: .4byte gUnknown_203B0EE
|
||||
_0812B438: .4byte gSaveFileStatus
|
||||
_0812B43C: .4byte 0x0000083c
|
||||
_0812B440:
|
||||
ldr r0, _0812B454 @ =0x0000083c
|
||||
bl FlagSet
|
||||
ldr r1, _0812B458 @ =gUnknown_203B0EE
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
movs r0, 0x1
|
||||
_0812B44E:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0812B454: .4byte 0x0000083c
|
||||
_0812B458: .4byte gUnknown_203B0EE
|
||||
thumb_func_end sub_812B40C
|
||||
|
||||
thumb_func_start sub_812B45C
|
||||
sub_812B45C: @ 812B45C
|
||||
push {lr}
|
||||
ldr r0, _0812B46C @ =gReceivedRemoteLinkPlayers
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x1
|
||||
beq _0812B470
|
||||
movs r0, 0x1
|
||||
b _0812B472
|
||||
.align 2, 0
|
||||
_0812B46C: .4byte gReceivedRemoteLinkPlayers
|
||||
_0812B470:
|
||||
movs r0, 0
|
||||
_0812B472:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_812B45C
|
||||
|
||||
thumb_func_start sub_812B478
|
||||
sub_812B478: @ 812B478
|
||||
ldr r1, _0812B480 @ =gUnknown_3005ECC
|
||||
movs r0, 0
|
||||
strb r0, [r1]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0812B480: .4byte gUnknown_3005ECC
|
||||
thumb_func_end sub_812B478
|
||||
|
||||
thumb_func_start sub_812B484
|
||||
sub_812B484: @ 812B484
|
||||
push {lr}
|
||||
ldr r0, _0812B4A4 @ =gUnknown_203ADFA
|
||||
ldrb r0, [r0]
|
||||
subs r0, 0x2
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bls _0812B49E
|
||||
ldr r1, _0812B4A8 @ =gUnknown_3005ECC
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
bl sub_812B4B8
|
||||
_0812B49E:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0812B4A4: .4byte gUnknown_203ADFA
|
||||
_0812B4A8: .4byte gUnknown_3005ECC
|
||||
thumb_func_end sub_812B484
|
||||
|
||||
thumb_func_start sub_812B4AC
|
||||
sub_812B4AC: @ 812B4AC
|
||||
ldr r1, _0812B4B4 @ =gUnknown_203F175
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0812B4B4: .4byte gUnknown_203F175
|
||||
thumb_func_end sub_812B4AC
|
||||
|
||||
thumb_func_start sub_812B4B8
|
||||
sub_812B4B8: @ 812B4B8
|
||||
ldr r1, _0812B4C0 @ =gUnknown_203F175
|
||||
movs r0, 0
|
||||
strb r0, [r1]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0812B4C0: .4byte gUnknown_203F175
|
||||
thumb_func_end sub_812B4B8
|
||||
|
||||
thumb_func_start sub_812B4C4
|
||||
sub_812B4C4: @ 812B4C4
|
||||
str r1, [r0]
|
||||
movs r2, 0x1
|
||||
movs r1, 0x1
|
||||
strh r1, [r0, 0x4]
|
||||
strh r1, [r0, 0x6]
|
||||
strb r2, [r0, 0x8]
|
||||
movs r1, 0x4
|
||||
strb r1, [r0, 0x9]
|
||||
bx lr
|
||||
thumb_func_end sub_812B4C4
|
||||
|
||||
thumb_func_start sub_812B4D8
|
||||
sub_812B4D8: @ 812B4D8
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
adds r5, r1, 0
|
||||
bl sub_812B4C4
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_812B520
|
||||
ldr r0, _0812B518 @ =gUnknown_841DFAC
|
||||
bl sub_812BF74
|
||||
ldr r0, _0812B51C @ =gUnknown_3005E9C
|
||||
ldrb r2, [r0, 0x2]
|
||||
adds r0, r4, 0
|
||||
movs r1, 0
|
||||
bl sub_813C64C
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_812BF9C
|
||||
movs r0, 0x1
|
||||
bl sub_813BDA4
|
||||
movs r0, 0x1
|
||||
bl sub_813BD5C
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0812B518: .4byte gUnknown_841DFAC
|
||||
_0812B51C: .4byte gUnknown_3005E9C
|
||||
thumb_func_end sub_812B4D8
|
||||
|
||||
thumb_func_start sub_812B520
|
||||
sub_812B520: @ 812B520
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
gUnknown_3005E9C
|
||||
gUnknown_3005EA0
|
||||
|
||||
@@ -68,6 +68,7 @@
|
||||
#define FLAG_0x82F 0x82F
|
||||
#define FLAG_0x830 0x830
|
||||
#define FLAG_0x834 0x834
|
||||
#define FLAG_0x83C 0x83C
|
||||
#define FLAG_0x83E 0x83E
|
||||
#define FLAG_0x841 0x841
|
||||
#define FLAG_0x844 0x844
|
||||
|
||||
+29
-2
@@ -3,11 +3,38 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
extern bool8 gUnknown_3005ECC;
|
||||
struct HelpSystemStruct_203F1AC
|
||||
{
|
||||
|
||||
void sub_812B1E0(u16);
|
||||
};
|
||||
|
||||
struct HelpSystemStruct_203F190_sub
|
||||
{
|
||||
struct HelpSystemStruct_203F1AC * field_00;
|
||||
u16 field_04;
|
||||
u16 field_06;
|
||||
u8 field_08;
|
||||
u8 field_09;
|
||||
|
||||
};
|
||||
|
||||
struct HelpSystemStruct_203F190
|
||||
{
|
||||
struct HelpSystemStruct_203F190_sub field_00;
|
||||
u8 filler_0C[0x10];
|
||||
};
|
||||
|
||||
extern struct HelpSystemStruct_203F190 gUnknown_203F190;
|
||||
extern struct HelpSystemStruct_203F1AC gUnknown_203F1AC;
|
||||
extern bool8 gUnknown_3005ECC;
|
||||
extern u8 gUnknown_203F175;
|
||||
|
||||
void sub_812B1E0(u8);
|
||||
void sub_812B484(void);
|
||||
void HelpSystem_SetSomeVariable2(u8);
|
||||
void sub_812B478(void);
|
||||
void sub_813C64C(struct HelpSystemStruct_203F190_sub *, u8, u8);
|
||||
void sub_813BDA4(u8);
|
||||
void sub_813BD5C(u8);
|
||||
|
||||
#endif //GUARD_HELP_SYSTEM_H
|
||||
|
||||
@@ -111,5 +111,6 @@ void Overworld_FadeOutMapMusic(void);
|
||||
void sub_805671C(void);
|
||||
void sub_8055DC4(void);
|
||||
bool8 sub_8055FC4(void);
|
||||
bool8 is_light_level_8_or_9(u8 mapType);
|
||||
|
||||
#endif //GUARD_ROM4_H
|
||||
|
||||
@@ -7,5 +7,6 @@ bool32 sub_81AFCEC(void);
|
||||
void TrySetMapSaveWarpStatus(void);
|
||||
void sub_81AFDA0(void);
|
||||
void sub_81AFDD0(void);
|
||||
bool32 IsCurMapPokeCenter(void);
|
||||
|
||||
#endif // GUARD_SAVE_LOCATION_H
|
||||
|
||||
@@ -1,16 +1,32 @@
|
||||
#include "global.h"
|
||||
#include "event_data.h"
|
||||
#include "field_player_avatar.h"
|
||||
#include "help_system.h"
|
||||
#include "link.h"
|
||||
#include "overworld.h"
|
||||
#include "quest_log.h"
|
||||
#include "save.h"
|
||||
#include "save_location.h"
|
||||
#include "constants/maps.h"
|
||||
|
||||
EWRAM_DATA u16 gUnknown_203B0EC = 0;
|
||||
EWRAM_DATA u8 gUnknown_203B0EE = 0;
|
||||
|
||||
u8 gUnknown_3005E9C[4];
|
||||
u16 gUnknown_3005EA0;
|
||||
|
||||
bool32 sub_812B27C(const u16 * mapIdxs);
|
||||
void sub_812B4B8(void);
|
||||
void sub_812B520(struct HelpSystemStruct_203F190_sub * a0, struct HelpSystemStruct_203F1AC * a1);
|
||||
void sub_812BF9C(struct HelpSystemStruct_203F190_sub * a0, struct HelpSystemStruct_203F1AC * a1);
|
||||
void sub_812BF74(const u8 *);
|
||||
|
||||
// strings.h
|
||||
extern const u8 gUnknown_841DFAC[];
|
||||
|
||||
extern const u16 gUnknown_845C594[]; // marts
|
||||
extern const u16 gUnknown_845C5BC[]; // gyms
|
||||
extern const u8 gUnknown_845C5CE[][3];
|
||||
|
||||
void sub_812B1E0(u8 a0)
|
||||
{
|
||||
@@ -73,3 +89,112 @@ bool32 sub_812B27C(const u16 * mapIdxs)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_812B2C4(void)
|
||||
{
|
||||
u8 i, j;
|
||||
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
for (j = 0; j < gUnknown_845C5CE[i][2]; j++)
|
||||
{
|
||||
if (
|
||||
gUnknown_845C5CE[i][0] == gSaveBlock1Ptr->location.mapGroup
|
||||
&& gUnknown_845C5CE[i][1] + j == gSaveBlock1Ptr->location.mapNum
|
||||
&& (i != 15 || FlagGet(FLAG_0x849) == TRUE)
|
||||
)
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_812B35C(void)
|
||||
{
|
||||
sub_812B4B8();
|
||||
if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
|
||||
HelpSystem_SetSomeVariable2(0x16);
|
||||
else if (sub_812B2C4())
|
||||
HelpSystem_SetSomeVariable2(0x15);
|
||||
else if (is_light_level_8_or_9(gMapHeader.mapType))
|
||||
{
|
||||
if ((gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(PALLET_TOWN_PLAYERS_HOUSE_1F) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(PALLET_TOWN_PLAYERS_HOUSE_1F)) || (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(PALLET_TOWN_PLAYERS_HOUSE_2F) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(PALLET_TOWN_PLAYERS_HOUSE_2F)))
|
||||
HelpSystem_SetSomeVariable2(0x0E);
|
||||
else if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(PALLET_TOWN_PROFESSOR_OAKS_LAB) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(PALLET_TOWN_PROFESSOR_OAKS_LAB))
|
||||
HelpSystem_SetSomeVariable2(0x0F);
|
||||
else if (IsCurMapPokeCenter() == TRUE)
|
||||
HelpSystem_SetSomeVariable2(0x10);
|
||||
else if (sub_812B25C() == TRUE)
|
||||
HelpSystem_SetSomeVariable2(0x11);
|
||||
else if (sub_812B26C() == TRUE)
|
||||
HelpSystem_SetSomeVariable2(0x12);
|
||||
else
|
||||
HelpSystem_SetSomeVariable2(0x13);
|
||||
}
|
||||
else
|
||||
HelpSystem_SetSomeVariable2(0x14);
|
||||
}
|
||||
|
||||
bool8 sub_812B40C(void)
|
||||
{
|
||||
if (gUnknown_203B0EE == 1)
|
||||
return FALSE;
|
||||
|
||||
if (gSaveFileStatus != SAVE_STATUS_EMPTY && gSaveFileStatus != SAVE_STATUS_INVALID && FlagGet(FLAG_0x83C))
|
||||
return FALSE;
|
||||
|
||||
FlagSet(FLAG_0x83C);
|
||||
gUnknown_203B0EE = 1;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_812B45C(void)
|
||||
{
|
||||
if (gReceivedRemoteLinkPlayers == 1)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_812B478(void)
|
||||
{
|
||||
gUnknown_3005ECC = 0;
|
||||
}
|
||||
|
||||
void sub_812B484(void)
|
||||
{
|
||||
if (gUnknown_203ADFA != 2 && gUnknown_203ADFA != 3)
|
||||
{
|
||||
gUnknown_3005ECC = 1;
|
||||
sub_812B4B8();
|
||||
}
|
||||
}
|
||||
|
||||
void sub_812B4AC(void)
|
||||
{
|
||||
gUnknown_203F175 = 1;
|
||||
}
|
||||
|
||||
void sub_812B4B8(void)
|
||||
{
|
||||
gUnknown_203F175 = 0;
|
||||
}
|
||||
|
||||
void sub_812B4C4(struct HelpSystemStruct_203F190_sub * a0, struct HelpSystemStruct_203F1AC * a1)
|
||||
{
|
||||
a0->field_00 = a1;
|
||||
a0->field_04 = 1;
|
||||
a0->field_06 = 1;
|
||||
a0->field_08 = 1;
|
||||
a0->field_09 = 4;
|
||||
}
|
||||
|
||||
void sub_812B4D8(struct HelpSystemStruct_203F190_sub * a0, struct HelpSystemStruct_203F1AC * a1)
|
||||
{
|
||||
sub_812B4C4(a0, a1);
|
||||
sub_812B520(a0, a1);
|
||||
sub_812BF74(gUnknown_841DFAC);
|
||||
sub_813C64C(a0, 0, gUnknown_3005E9C[2]);
|
||||
sub_812BF9C(a0, a1);
|
||||
sub_813BDA4(1);
|
||||
sub_813BD5C(1);
|
||||
}
|
||||
|
||||
@@ -318,10 +318,6 @@ gUnknown_3005E94: @ 3005E94
|
||||
gUnknown_3005E98: @ 3005E98
|
||||
.space 0x4
|
||||
|
||||
gUnknown_3005E9C: @ 3005E9C
|
||||
.space 0x4
|
||||
|
||||
.align 4
|
||||
.include "help_system_812B1E0.o"
|
||||
.align 4
|
||||
.include "fame_checker.o"
|
||||
|
||||
Reference in New Issue
Block a user