mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-27 04:04:17 +01:00
Continue decompiling field_specials
This commit is contained in:
parent
12ff59f9c1
commit
1e0f3ec433
@ -5,288 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_813B21C
|
|
||||||
sub_813B21C: @ 813B21C
|
|
||||||
push {r4,r5,lr}
|
|
||||||
ldr r5, =0x000008d7
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl FlagGet
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0813B258
|
|
||||||
bl StorageGetCurrentBox
|
|
||||||
adds r4, r0, 0
|
|
||||||
lsls r4, 24
|
|
||||||
lsrs r4, 24
|
|
||||||
ldr r0, =0x00004036
|
|
||||||
bl VarGet
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
cmp r4, r0
|
|
||||||
beq _0813B258
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl FlagSet
|
|
||||||
movs r0, 0x1
|
|
||||||
b _0813B25A
|
|
||||||
.pool
|
|
||||||
_0813B258:
|
|
||||||
movs r0, 0
|
|
||||||
_0813B25A:
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_813B21C
|
|
||||||
|
|
||||||
thumb_func_start sub_813B260
|
|
||||||
sub_813B260: @ 813B260
|
|
||||||
push {r4-r7,lr}
|
|
||||||
ldr r0, =0x00004036
|
|
||||||
bl VarGet
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
bl set_unknown_box_id
|
|
||||||
bl StorageGetCurrentBox
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r4, r0, 24
|
|
||||||
_0813B278:
|
|
||||||
movs r5, 0
|
|
||||||
lsls r6, r4, 24
|
|
||||||
lsls r7, r4, 16
|
|
||||||
_0813B27E:
|
|
||||||
lsls r1, r5, 24
|
|
||||||
lsrs r1, 24
|
|
||||||
lsrs r0, r6, 24
|
|
||||||
bl GetBoxedMonPtr
|
|
||||||
movs r1, 0xB
|
|
||||||
movs r2, 0
|
|
||||||
bl GetBoxMonData
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0813B2C0
|
|
||||||
bl get_unknown_box_id
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
cmp r0, r4
|
|
||||||
beq _0813B2A6
|
|
||||||
ldr r0, =0x000008d7
|
|
||||||
bl FlagClear
|
|
||||||
_0813B2A6:
|
|
||||||
ldr r0, =0x00004036
|
|
||||||
lsrs r1, r7, 16
|
|
||||||
bl VarSet
|
|
||||||
bl sub_813B21C
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
b _0813B2DC
|
|
||||||
.pool
|
|
||||||
_0813B2C0:
|
|
||||||
adds r5, 0x1
|
|
||||||
cmp r5, 0x1D
|
|
||||||
ble _0813B27E
|
|
||||||
adds r4, 0x1
|
|
||||||
cmp r4, 0xE
|
|
||||||
bne _0813B2CE
|
|
||||||
movs r4, 0
|
|
||||||
_0813B2CE:
|
|
||||||
bl StorageGetCurrentBox
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r4, r0
|
|
||||||
bne _0813B278
|
|
||||||
movs r0, 0
|
|
||||||
_0813B2DC:
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_813B260
|
|
||||||
|
|
||||||
thumb_func_start sub_813B2E4
|
|
||||||
sub_813B2E4: @ 813B2E4
|
|
||||||
push {r4,lr}
|
|
||||||
bl Random
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r4, r0, 16
|
|
||||||
ldr r0, =0x00004038
|
|
||||||
movs r1, 0
|
|
||||||
bl VarSet
|
|
||||||
movs r0, 0xDF
|
|
||||||
lsls r0, 1
|
|
||||||
bl FlagGet
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _0813B340
|
|
||||||
ldr r0, =0x000001bf
|
|
||||||
bl FlagGet
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _0813B330
|
|
||||||
ldr r0, =0x00004037
|
|
||||||
movs r1, 0x7
|
|
||||||
ands r4, r1
|
|
||||||
adds r1, r4, 0
|
|
||||||
adds r1, 0x9
|
|
||||||
bl VarSet
|
|
||||||
b _0813B36A
|
|
||||||
.pool
|
|
||||||
_0813B330:
|
|
||||||
movs r0, 0x1
|
|
||||||
ands r4, r0
|
|
||||||
cmp r4, 0
|
|
||||||
bne _0813B354
|
|
||||||
bl Random
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r4, r0, 16
|
|
||||||
_0813B340:
|
|
||||||
ldr r0, =0x00004037
|
|
||||||
movs r1, 0x7
|
|
||||||
ands r4, r1
|
|
||||||
adds r1, r4, 0x1
|
|
||||||
bl VarSet
|
|
||||||
b _0813B36A
|
|
||||||
.pool
|
|
||||||
_0813B354:
|
|
||||||
bl Random
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r4, r0, 16
|
|
||||||
ldr r0, =0x00004037
|
|
||||||
movs r1, 0x7
|
|
||||||
ands r4, r1
|
|
||||||
adds r1, r4, 0
|
|
||||||
adds r1, 0x9
|
|
||||||
bl VarSet
|
|
||||||
_0813B36A:
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_813B2E4
|
|
||||||
|
|
||||||
thumb_func_start sub_813B374
|
|
||||||
sub_813B374: @ 813B374
|
|
||||||
push {r4,lr}
|
|
||||||
ldr r0, =0x00004037
|
|
||||||
bl VarGet
|
|
||||||
adds r4, r0, 0
|
|
||||||
lsls r4, 16
|
|
||||||
lsrs r4, 16
|
|
||||||
ldr r0, =gStringVar1
|
|
||||||
ldr r2, =gUnknown_085B3400
|
|
||||||
subs r1, r4, 0x1
|
|
||||||
adds r1, r2
|
|
||||||
ldrb r1, [r1]
|
|
||||||
movs r2, 0
|
|
||||||
bl GetMapName
|
|
||||||
cmp r4, 0x8
|
|
||||||
bls _0813B3A8
|
|
||||||
movs r0, 0x1
|
|
||||||
b _0813B3AA
|
|
||||||
.pool
|
|
||||||
_0813B3A8:
|
|
||||||
movs r0, 0
|
|
||||||
_0813B3AA:
|
|
||||||
pop {r4}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_813B374
|
|
||||||
|
|
||||||
thumb_func_start sub_813B3B0
|
|
||||||
sub_813B3B0: @ 813B3B0
|
|
||||||
push {r4-r6,lr}
|
|
||||||
ldr r5, =0x00004038
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl VarGet
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r4, r0, 16
|
|
||||||
ldr r0, =0x00004037
|
|
||||||
bl VarGet
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r6, r0, 16
|
|
||||||
cmp r6, 0
|
|
||||||
beq _0813B47C
|
|
||||||
adds r0, r4, 0x1
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r4, r0, 16
|
|
||||||
ldr r0, =0x000003e7
|
|
||||||
cmp r4, r0
|
|
||||||
bls _0813B474
|
|
||||||
adds r0, r5, 0
|
|
||||||
movs r1, 0
|
|
||||||
bl VarSet
|
|
||||||
ldr r0, =gSaveBlock1Ptr
|
|
||||||
ldr r1, [r0]
|
|
||||||
movs r0, 0x4
|
|
||||||
ldrsb r0, [r1, r0]
|
|
||||||
cmp r0, 0x18
|
|
||||||
bne _0813B414
|
|
||||||
movs r0, 0x5
|
|
||||||
ldrsb r0, [r1, r0]
|
|
||||||
cmp r0, 0x69
|
|
||||||
bgt _0813B414
|
|
||||||
cmp r0, 0x65
|
|
||||||
blt _0813B414
|
|
||||||
ldr r0, =0x00004039
|
|
||||||
movs r1, 0x1
|
|
||||||
b _0813B478
|
|
||||||
.pool
|
|
||||||
_0813B414:
|
|
||||||
ldr r0, =gSaveBlock1Ptr
|
|
||||||
ldr r2, [r0]
|
|
||||||
movs r1, 0x4
|
|
||||||
ldrsb r1, [r2, r1]
|
|
||||||
adds r3, r0, 0
|
|
||||||
cmp r1, 0
|
|
||||||
bne _0813B444
|
|
||||||
movs r0, 0x5
|
|
||||||
ldrsb r0, [r2, r0]
|
|
||||||
cmp r0, 0x34
|
|
||||||
beq _0813B436
|
|
||||||
cmp r0, 0x34
|
|
||||||
blt _0813B444
|
|
||||||
cmp r0, 0x38
|
|
||||||
bgt _0813B444
|
|
||||||
cmp r0, 0x36
|
|
||||||
blt _0813B444
|
|
||||||
_0813B436:
|
|
||||||
ldr r0, =0x00004039
|
|
||||||
movs r1, 0x1
|
|
||||||
b _0813B478
|
|
||||||
.pool
|
|
||||||
_0813B444:
|
|
||||||
ldr r3, [r3]
|
|
||||||
movs r2, 0x5
|
|
||||||
ldrsb r2, [r3, r2]
|
|
||||||
ldr r1, =gUnknown_085B3410
|
|
||||||
subs r0, r6, 0x1
|
|
||||||
adds r0, r1
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r2, r0
|
|
||||||
bne _0813B468
|
|
||||||
movs r0, 0x4
|
|
||||||
ldrsb r0, [r3, r0]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0813B468
|
|
||||||
movs r0, 0x1
|
|
||||||
b _0813B47E
|
|
||||||
.pool
|
|
||||||
_0813B468:
|
|
||||||
ldr r0, =0x00004037
|
|
||||||
movs r1, 0
|
|
||||||
b _0813B478
|
|
||||||
.pool
|
|
||||||
_0813B474:
|
|
||||||
adds r0, r5, 0
|
|
||||||
adds r1, r4, 0
|
|
||||||
_0813B478:
|
|
||||||
bl VarSet
|
|
||||||
_0813B47C:
|
|
||||||
movs r0, 0
|
|
||||||
_0813B47E:
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_813B3B0
|
|
||||||
|
|
||||||
thumb_func_start sub_813B484
|
thumb_func_start sub_813B484
|
||||||
sub_813B484: @ 813B484
|
sub_813B484: @ 813B484
|
||||||
push {lr}
|
push {lr}
|
||||||
|
@ -3,12 +3,6 @@
|
|||||||
|
|
||||||
.section .rodata
|
.section .rodata
|
||||||
|
|
||||||
gUnknown_085B3400:: @ 85B3400
|
|
||||||
.byte 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c
|
|
||||||
|
|
||||||
gUnknown_085B3410:: @ 85B3410
|
|
||||||
.byte 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c
|
|
||||||
|
|
||||||
gUnknown_085B3420:: @ 85B3420
|
gUnknown_085B3420:: @ 85B3420
|
||||||
.byte 0x02, 0x04, 0x01, 0x04, 0x04, 0x01, 0x05, 0x00, 0x01, 0x06, 0x03, 0x01, 0x08, 0x06, 0x01, 0x09, 0x0d, 0x01, 0x0a, 0x07, 0x01, 0x0b, 0x07, 0x01, 0x0c, 0x04, 0x01, 0x0e, 0x05, 0x01, 0x0f, 0x04
|
.byte 0x02, 0x04, 0x01, 0x04, 0x04, 0x01, 0x05, 0x00, 0x01, 0x06, 0x03, 0x01, 0x08, 0x06, 0x01, 0x09, 0x0d, 0x01, 0x0a, 0x07, 0x01, 0x0b, 0x07, 0x01, 0x0c, 0x04, 0x01, 0x0e, 0x05, 0x01, 0x0f, 0x04
|
||||||
.byte 0x01, 0x1a, 0x37, 0x01
|
.byte 0x01, 0x1a, 0x37, 0x01
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
u8 GetLeadMonIndex(void);
|
u8 GetLeadMonIndex(void);
|
||||||
u8 sub_813B260(void);
|
u8 sub_813B260(void);
|
||||||
u8 get_unknown_box_id(void);
|
u16 get_unknown_box_id(void);
|
||||||
bool8 InMultiBattleRoom(void);
|
bool8 InMultiBattleRoom(void);
|
||||||
|
|
||||||
#endif // GUARD_FIELD_SPECIALS_H
|
#endif // GUARD_FIELD_SPECIALS_H
|
||||||
|
@ -10,5 +10,6 @@ void SetBoxMonNickFromAnyBox(u8, u8, u8 *);
|
|||||||
void CompactPartySlots(void);
|
void CompactPartySlots(void);
|
||||||
u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request);
|
u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request);
|
||||||
bool8 CheckFreePokemonStorageSpace(void);
|
bool8 CheckFreePokemonStorageSpace(void);
|
||||||
|
u8 StorageGetCurrentBox(void);
|
||||||
|
|
||||||
#endif // GUARD_POKEMON_STORAGE_SYSTEM_H
|
#endif // GUARD_POKEMON_STORAGE_SYSTEM_H
|
||||||
|
@ -3584,7 +3584,259 @@ void set_unknown_box_id(u8 id)
|
|||||||
gUnknown_0203AB6F = id;
|
gUnknown_0203AB6F = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 get_unknown_box_id(void)
|
u16 get_unknown_box_id(void)
|
||||||
{
|
{
|
||||||
return gUnknown_0203AB6F;
|
return gUnknown_0203AB6F;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool32 sub_813B21C(void)
|
||||||
|
{
|
||||||
|
if (FlagGet(FLAG_SYS_STORAGE_UNKNOWN_FLAG) == FALSE)
|
||||||
|
{
|
||||||
|
if (StorageGetCurrentBox() != VarGet(VAR_STORAGE_UNKNOWN))
|
||||||
|
{
|
||||||
|
FlagSet(FLAG_SYS_STORAGE_UNKNOWN_FLAG);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool8 sub_813B260(void)
|
||||||
|
{
|
||||||
|
int box;
|
||||||
|
int i;
|
||||||
|
set_unknown_box_id(VarGet(VAR_STORAGE_UNKNOWN));
|
||||||
|
box = StorageGetCurrentBox();
|
||||||
|
do
|
||||||
|
{
|
||||||
|
for (i = 0; i < IN_BOX_COUNT; i++)
|
||||||
|
{
|
||||||
|
if (GetBoxMonData(GetBoxedMonPtr(box, i), MON_DATA_SPECIES, 0) == 0)
|
||||||
|
{
|
||||||
|
if (get_unknown_box_id() != box)
|
||||||
|
{
|
||||||
|
FlagClear(FLAG_SYS_STORAGE_UNKNOWN_FLAG);
|
||||||
|
}
|
||||||
|
VarSet(VAR_STORAGE_UNKNOWN, box);
|
||||||
|
return sub_813B21C();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (++box == TOTAL_BOXES_COUNT)
|
||||||
|
{
|
||||||
|
box = 0;
|
||||||
|
}
|
||||||
|
} while (box != StorageGetCurrentBox());
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_813B2E4(void)
|
||||||
|
{
|
||||||
|
u16 randomValue = Random();
|
||||||
|
VarSet(VAR_0x4038, 0);
|
||||||
|
|
||||||
|
if (FlagGet(FLAG_0x1BE) == TRUE)
|
||||||
|
{
|
||||||
|
VarSet(VAR_0x4037, (randomValue & 7) + 1);
|
||||||
|
}
|
||||||
|
else if (FlagGet(FLAG_0x1BF) == TRUE)
|
||||||
|
{
|
||||||
|
VarSet(VAR_0x4037, (randomValue & 7) + 9);
|
||||||
|
}
|
||||||
|
else if ((randomValue & 1) == 0)
|
||||||
|
{
|
||||||
|
randomValue = Random();
|
||||||
|
VarSet(VAR_0x4037, (randomValue & 7) + 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
randomValue = Random();
|
||||||
|
VarSet(VAR_0x4037, (randomValue & 7) + 9);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const u8 gUnknown_085B3400[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c };
|
||||||
|
|
||||||
|
bool32 sub_813B374(void)
|
||||||
|
{
|
||||||
|
u16 var = VarGet(VAR_0x4037);
|
||||||
|
|
||||||
|
GetMapName(gStringVar1, gUnknown_085B3400[var - 1], 0);
|
||||||
|
|
||||||
|
if (var < 9)
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const u8 gUnknown_085B3410[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c };
|
||||||
|
|
||||||
|
// last parts of switch statements insist on merging
|
||||||
|
#ifdef NONMATCHING
|
||||||
|
bool32 sub_813B3B0(void)
|
||||||
|
{
|
||||||
|
u16 var1 = VarGet(VAR_0x4038);
|
||||||
|
u16 var2 = VarGet(VAR_0x4037);
|
||||||
|
|
||||||
|
if (var2 != 0)
|
||||||
|
{
|
||||||
|
if (++var1 > 999)
|
||||||
|
{
|
||||||
|
VarSet(VAR_0x4038, 0);
|
||||||
|
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNDERWATER_MARINE_CAVE))
|
||||||
|
{
|
||||||
|
switch (gSaveBlock1Ptr->location.mapNum)
|
||||||
|
{
|
||||||
|
case MAP_NUM(UNDERWATER_MARINE_CAVE):
|
||||||
|
case MAP_NUM(MARINE_CAVE_ENTRANCE):
|
||||||
|
case MAP_NUM(MARINE_CAVE_END):
|
||||||
|
case MAP_NUM(TERRA_CAVE_ENTRANCE):
|
||||||
|
case MAP_NUM(TERRA_CAVE_END):
|
||||||
|
VarSet(VAR_0x4039, 1);
|
||||||
|
return FALSE;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNDERWATER3))
|
||||||
|
{
|
||||||
|
switch (gSaveBlock1Ptr->location.mapNum)
|
||||||
|
{
|
||||||
|
case MAP_NUM(UNDERWATER3):
|
||||||
|
case MAP_NUM(UNDERWATER5):
|
||||||
|
case MAP_NUM(UNDERWATER6):
|
||||||
|
case MAP_NUM(UNDERWATER7):
|
||||||
|
VarSet(VAR_0x4039, 1);
|
||||||
|
return FALSE;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gSaveBlock1Ptr->location.mapNum == gUnknown_085B3410[var2 - 1] &&
|
||||||
|
gSaveBlock1Ptr->location.mapGroup == 0)
|
||||||
|
{
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
VarSet(VAR_0x4037, 0);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
VarSet(VAR_0x4038, var1);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
NAKED
|
||||||
|
bool32 sub_813B3B0(void)
|
||||||
|
{
|
||||||
|
asm_unified("push {r4-r6,lr}\n\
|
||||||
|
ldr r5, =0x00004038\n\
|
||||||
|
adds r0, r5, 0\n\
|
||||||
|
bl VarGet\n\
|
||||||
|
lsls r0, 16\n\
|
||||||
|
lsrs r4, r0, 16\n\
|
||||||
|
ldr r0, =0x00004037\n\
|
||||||
|
bl VarGet\n\
|
||||||
|
lsls r0, 16\n\
|
||||||
|
lsrs r6, r0, 16\n\
|
||||||
|
cmp r6, 0\n\
|
||||||
|
beq _0813B47C\n\
|
||||||
|
adds r0, r4, 0x1\n\
|
||||||
|
lsls r0, 16\n\
|
||||||
|
lsrs r4, r0, 16\n\
|
||||||
|
ldr r0, =0x000003e7\n\
|
||||||
|
cmp r4, r0\n\
|
||||||
|
bls _0813B474\n\
|
||||||
|
adds r0, r5, 0\n\
|
||||||
|
movs r1, 0\n\
|
||||||
|
bl VarSet\n\
|
||||||
|
ldr r0, =gSaveBlock1Ptr\n\
|
||||||
|
ldr r1, [r0]\n\
|
||||||
|
movs r0, 0x4\n\
|
||||||
|
ldrsb r0, [r1, r0]\n\
|
||||||
|
cmp r0, 0x18\n\
|
||||||
|
bne _0813B414\n\
|
||||||
|
movs r0, 0x5\n\
|
||||||
|
ldrsb r0, [r1, r0]\n\
|
||||||
|
cmp r0, 0x69\n\
|
||||||
|
bgt _0813B414\n\
|
||||||
|
cmp r0, 0x65\n\
|
||||||
|
blt _0813B414\n\
|
||||||
|
ldr r0, =0x00004039\n\
|
||||||
|
movs r1, 0x1\n\
|
||||||
|
b _0813B478\n\
|
||||||
|
.pool\n\
|
||||||
|
_0813B414:\n\
|
||||||
|
ldr r0, =gSaveBlock1Ptr\n\
|
||||||
|
ldr r2, [r0]\n\
|
||||||
|
movs r1, 0x4\n\
|
||||||
|
ldrsb r1, [r2, r1]\n\
|
||||||
|
adds r3, r0, 0\n\
|
||||||
|
cmp r1, 0\n\
|
||||||
|
bne _0813B444\n\
|
||||||
|
movs r0, 0x5\n\
|
||||||
|
ldrsb r0, [r2, r0]\n\
|
||||||
|
cmp r0, 0x34\n\
|
||||||
|
beq _0813B436\n\
|
||||||
|
cmp r0, 0x34\n\
|
||||||
|
blt _0813B444\n\
|
||||||
|
cmp r0, 0x38\n\
|
||||||
|
bgt _0813B444\n\
|
||||||
|
cmp r0, 0x36\n\
|
||||||
|
blt _0813B444\n\
|
||||||
|
_0813B436:\n\
|
||||||
|
ldr r0, =0x00004039\n\
|
||||||
|
movs r1, 0x1\n\
|
||||||
|
b _0813B478\n\
|
||||||
|
.pool\n\
|
||||||
|
_0813B444:\n\
|
||||||
|
ldr r3, [r3]\n\
|
||||||
|
movs r2, 0x5\n\
|
||||||
|
ldrsb r2, [r3, r2]\n\
|
||||||
|
ldr r1, =gUnknown_085B3410\n\
|
||||||
|
subs r0, r6, 0x1\n\
|
||||||
|
adds r0, r1\n\
|
||||||
|
ldrb r0, [r0]\n\
|
||||||
|
cmp r2, r0\n\
|
||||||
|
bne _0813B468\n\
|
||||||
|
movs r0, 0x4\n\
|
||||||
|
ldrsb r0, [r3, r0]\n\
|
||||||
|
cmp r0, 0\n\
|
||||||
|
bne _0813B468\n\
|
||||||
|
movs r0, 0x1\n\
|
||||||
|
b _0813B47E\n\
|
||||||
|
.pool\n\
|
||||||
|
_0813B468:\n\
|
||||||
|
ldr r0, =0x00004037\n\
|
||||||
|
movs r1, 0\n\
|
||||||
|
b _0813B478\n\
|
||||||
|
.pool\n\
|
||||||
|
_0813B474:\n\
|
||||||
|
adds r0, r5, 0\n\
|
||||||
|
adds r1, r4, 0\n\
|
||||||
|
_0813B478:\n\
|
||||||
|
bl VarSet\n\
|
||||||
|
_0813B47C:\n\
|
||||||
|
movs r0, 0\n\
|
||||||
|
_0813B47E:\n\
|
||||||
|
pop {r4-r6}\n\
|
||||||
|
pop {r1}\n\
|
||||||
|
bx r1");
|
||||||
|
}
|
||||||
|
#endif // NONMATCHING
|
||||||
|
Loading…
Reference in New Issue
Block a user