through sub_80C3580
This commit is contained in:
@@ -5,250 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_80C3418
|
|
||||||
sub_80C3418: @ 80C3418
|
|
||||||
push {r4,r5,lr}
|
|
||||||
movs r0, 0
|
|
||||||
bl sub_80C0E04
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _080C3482
|
|
||||||
ldr r5, _080C3474 @ =gUnknown_20399E4
|
|
||||||
ldr r1, [r5]
|
|
||||||
ldrb r0, [r1, 0xE]
|
|
||||||
adds r0, 0x1
|
|
||||||
strb r0, [r1, 0xE]
|
|
||||||
ldr r4, [r5]
|
|
||||||
ldrb r0, [r4, 0xE]
|
|
||||||
movs r1, 0x3
|
|
||||||
bl __umodsi3
|
|
||||||
strb r0, [r4, 0xE]
|
|
||||||
ldr r0, [r5]
|
|
||||||
ldrb r0, [r0, 0xE]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _080C3460
|
|
||||||
bl sub_80C0E20
|
|
||||||
adds r4, r0, 0
|
|
||||||
bl sub_80C0E34
|
|
||||||
lsls r4, 24
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r4, r0
|
|
||||||
beq _080C3460
|
|
||||||
ldr r1, [r5]
|
|
||||||
ldrb r0, [r1, 0xE]
|
|
||||||
adds r0, 0x1
|
|
||||||
strb r0, [r1, 0xE]
|
|
||||||
_080C3460:
|
|
||||||
ldr r4, _080C3474 @ =gUnknown_20399E4
|
|
||||||
ldr r1, [r4]
|
|
||||||
ldrb r0, [r1, 0xE]
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _080C3478
|
|
||||||
cmp r0, 0x1
|
|
||||||
ble _080C34A2
|
|
||||||
cmp r0, 0x2
|
|
||||||
beq _080C34B8
|
|
||||||
b _080C34A2
|
|
||||||
.align 2, 0
|
|
||||||
_080C3474: .4byte gUnknown_20399E4
|
|
||||||
_080C3478:
|
|
||||||
movs r0, 0x15
|
|
||||||
strh r0, [r1]
|
|
||||||
movs r0, 0xB
|
|
||||||
strh r0, [r1, 0x2]
|
|
||||||
b _080C34C0
|
|
||||||
_080C3482:
|
|
||||||
ldr r4, _080C34B4 @ =gUnknown_20399E4
|
|
||||||
ldr r1, [r4]
|
|
||||||
ldrb r0, [r1, 0xE]
|
|
||||||
adds r0, 0x1
|
|
||||||
strb r0, [r1, 0xE]
|
|
||||||
ldr r2, [r4]
|
|
||||||
ldrb r0, [r2, 0xE]
|
|
||||||
movs r1, 0x1
|
|
||||||
ands r0, r1
|
|
||||||
strb r0, [r2, 0xE]
|
|
||||||
ldr r1, [r4]
|
|
||||||
ldrb r0, [r1, 0xE]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _080C34A2
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _080C34B8
|
|
||||||
_080C34A2:
|
|
||||||
bl sub_80C4380
|
|
||||||
ldr r1, [r4]
|
|
||||||
strh r0, [r1]
|
|
||||||
bl sub_80C438C
|
|
||||||
ldr r1, [r4]
|
|
||||||
strh r0, [r1, 0x2]
|
|
||||||
b _080C34C0
|
|
||||||
.align 2, 0
|
|
||||||
_080C34B4: .4byte gUnknown_20399E4
|
|
||||||
_080C34B8:
|
|
||||||
movs r0, 0xD
|
|
||||||
strh r0, [r1, 0x2]
|
|
||||||
movs r0, 0x15
|
|
||||||
strh r0, [r1]
|
|
||||||
_080C34C0:
|
|
||||||
ldr r4, _080C3504 @ =gUnknown_20399E4
|
|
||||||
ldr r1, [r4]
|
|
||||||
ldr r2, [r1, 0x1C]
|
|
||||||
movs r3, 0
|
|
||||||
ldrsh r0, [r1, r3]
|
|
||||||
lsls r0, 3
|
|
||||||
adds r0, 0x24
|
|
||||||
strh r0, [r2, 0x20]
|
|
||||||
ldr r2, [r1, 0x1C]
|
|
||||||
movs r5, 0x2
|
|
||||||
ldrsh r0, [r1, r5]
|
|
||||||
lsls r0, 3
|
|
||||||
adds r0, 0x24
|
|
||||||
strh r0, [r2, 0x22]
|
|
||||||
bl sub_80C0E20
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
ldr r1, [r4]
|
|
||||||
movs r3, 0x2
|
|
||||||
ldrsh r2, [r1, r3]
|
|
||||||
movs r5, 0
|
|
||||||
ldrsh r3, [r1, r5]
|
|
||||||
movs r1, 0
|
|
||||||
bl sub_80C4164
|
|
||||||
ldr r1, [r4]
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
strh r0, [r1, 0x14]
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_080C3504: .4byte gUnknown_20399E4
|
|
||||||
thumb_func_end sub_80C3418
|
|
||||||
|
|
||||||
thumb_func_start sub_80C3508
|
|
||||||
sub_80C3508: @ 80C3508
|
|
||||||
ldr r0, _080C3510 @ =gUnknown_20399E4
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldrh r0, [r0]
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_080C3510: .4byte gUnknown_20399E4
|
|
||||||
thumb_func_end sub_80C3508
|
|
||||||
|
|
||||||
thumb_func_start sub_80C3514
|
|
||||||
sub_80C3514: @ 80C3514
|
|
||||||
ldr r0, _080C351C @ =gUnknown_20399E4
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldrh r0, [r0, 0x2]
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_080C351C: .4byte gUnknown_20399E4
|
|
||||||
thumb_func_end sub_80C3514
|
|
||||||
|
|
||||||
thumb_func_start sub_80C3520
|
|
||||||
sub_80C3520: @ 80C3520
|
|
||||||
push {r4,lr}
|
|
||||||
ldr r4, _080C353C @ =gUnknown_20399E4
|
|
||||||
ldr r1, [r4]
|
|
||||||
ldrh r0, [r1, 0x2]
|
|
||||||
cmp r0, 0xE
|
|
||||||
bhi _080C3538
|
|
||||||
movs r2, 0
|
|
||||||
ldrsh r0, [r1, r2]
|
|
||||||
cmp r0, 0
|
|
||||||
blt _080C3538
|
|
||||||
cmp r0, 0x15
|
|
||||||
ble _080C3540
|
|
||||||
_080C3538:
|
|
||||||
movs r0, 0xC5
|
|
||||||
b _080C3574
|
|
||||||
.align 2, 0
|
|
||||||
_080C353C: .4byte gUnknown_20399E4
|
|
||||||
_080C3540:
|
|
||||||
bl sub_80C0E20
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
ldr r1, [r4]
|
|
||||||
movs r3, 0x2
|
|
||||||
ldrsh r2, [r1, r3]
|
|
||||||
movs r4, 0
|
|
||||||
ldrsh r3, [r1, r4]
|
|
||||||
movs r1, 0
|
|
||||||
bl sub_80C4164
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r4, r0, 24
|
|
||||||
cmp r4, 0xAE
|
|
||||||
beq _080C3564
|
|
||||||
cmp r4, 0xBB
|
|
||||||
bne _080C3572
|
|
||||||
_080C3564:
|
|
||||||
ldr r0, _080C357C @ =0x000008b5
|
|
||||||
bl FlagGet
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
bne _080C3572
|
|
||||||
movs r4, 0xC5
|
|
||||||
_080C3572:
|
|
||||||
adds r0, r4, 0
|
|
||||||
_080C3574:
|
|
||||||
pop {r4}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.align 2, 0
|
|
||||||
_080C357C: .4byte 0x000008b5
|
|
||||||
thumb_func_end sub_80C3520
|
|
||||||
|
|
||||||
thumb_func_start sub_80C3580
|
|
||||||
sub_80C3580: @ 80C3580
|
|
||||||
push {r4,lr}
|
|
||||||
ldr r4, _080C359C @ =gUnknown_20399E4
|
|
||||||
ldr r1, [r4]
|
|
||||||
ldrh r0, [r1, 0x2]
|
|
||||||
cmp r0, 0xE
|
|
||||||
bhi _080C3598
|
|
||||||
movs r2, 0
|
|
||||||
ldrsh r0, [r1, r2]
|
|
||||||
cmp r0, 0
|
|
||||||
blt _080C3598
|
|
||||||
cmp r0, 0x15
|
|
||||||
ble _080C35A0
|
|
||||||
_080C3598:
|
|
||||||
movs r0, 0xC5
|
|
||||||
b _080C35D0
|
|
||||||
.align 2, 0
|
|
||||||
_080C359C: .4byte gUnknown_20399E4
|
|
||||||
_080C35A0:
|
|
||||||
bl sub_80C0E20
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
ldr r1, [r4]
|
|
||||||
movs r3, 0x2
|
|
||||||
ldrsh r2, [r1, r3]
|
|
||||||
movs r4, 0
|
|
||||||
ldrsh r3, [r1, r4]
|
|
||||||
movs r1, 0x1
|
|
||||||
bl sub_80C4164
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r4, r0, 24
|
|
||||||
cmp r4, 0x8D
|
|
||||||
bne _080C35CE
|
|
||||||
ldr r0, _080C35D8 @ =0x00000844
|
|
||||||
bl FlagGet
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
bne _080C35CE
|
|
||||||
movs r4, 0xC5
|
|
||||||
_080C35CE:
|
|
||||||
adds r0, r4, 0
|
|
||||||
_080C35D0:
|
|
||||||
pop {r4}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.align 2, 0
|
|
||||||
_080C35D8: .4byte 0x00000844
|
|
||||||
thumb_func_end sub_80C3580
|
|
||||||
|
|
||||||
thumb_func_start sub_80C35DC
|
thumb_func_start sub_80C35DC
|
||||||
sub_80C35DC: @ 80C35DC
|
sub_80C35DC: @ 80C35DC
|
||||||
push {lr}
|
push {lr}
|
||||||
|
|||||||
+93
-2
@@ -231,16 +231,18 @@ u8 sub_80C31C0(void);
|
|||||||
u8 sub_80C3348(void);
|
u8 sub_80C3348(void);
|
||||||
u8 sub_80C3400(void);
|
u8 sub_80C3400(void);
|
||||||
void sub_80C3418(void);
|
void sub_80C3418(void);
|
||||||
u8 sub_80C3878(u8 a0);
|
|
||||||
u16 sub_80C3520(void);
|
u16 sub_80C3520(void);
|
||||||
u8 sub_80C35DC(u8 a0);
|
u8 sub_80C35DC(u8 a0);
|
||||||
|
u8 sub_80C3878(u8 a0);
|
||||||
u8 sub_80C3AC8(u8 a0);
|
u8 sub_80C3AC8(u8 a0);
|
||||||
void sub_80C3D40(void);
|
void sub_80C3D40(void);
|
||||||
u8 sub_80C4164(u8 a0, u8 a1, s16 a2, s16 a3);
|
u8 sub_80C4164(u8 a0, u8 a1, s16 a2, s16 a3);
|
||||||
void sub_80C41D8(u16 a0, u16 a1);
|
void sub_80C41D8(u16 a0, u16 a1);
|
||||||
void sub_80C4324(u8 a0);
|
void sub_80C4324(u8 a0);
|
||||||
void sub_80C4398(u8 a0, u8 taskId, TaskFunc taskFunc);
|
|
||||||
void sub_80C4348(void);
|
void sub_80C4348(void);
|
||||||
|
u16 sub_80C4380();
|
||||||
|
u16 sub_80C438C();
|
||||||
|
void sub_80C4398(u8 a0, u8 taskId, TaskFunc taskFunc);
|
||||||
void sub_80C48BC(u8 a0, u8 a1, u8 a2);
|
void sub_80C48BC(u8 a0, u8 a1, u8 a2);
|
||||||
void sub_80C4960(u8 a0, u8 a1, u8 a2);
|
void sub_80C4960(u8 a0, u8 a1, u8 a2);
|
||||||
void sub_80C4A04(void);
|
void sub_80C4A04(void);
|
||||||
@@ -2223,3 +2225,92 @@ u8 sub_80C3400(void)
|
|||||||
{
|
{
|
||||||
return gUnknown_20399E4->field_010();
|
return gUnknown_20399E4->field_010();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sub_80C3418(void)
|
||||||
|
{
|
||||||
|
if (sub_80C0E04(0) == 1)
|
||||||
|
{
|
||||||
|
gUnknown_20399E4->field_00E++;
|
||||||
|
gUnknown_20399E4->field_00E %= 3;
|
||||||
|
if (gUnknown_20399E4->field_00E == 0 && sub_80C0E20() != sub_80C0E34())
|
||||||
|
{
|
||||||
|
gUnknown_20399E4->field_00E++;
|
||||||
|
}
|
||||||
|
switch (gUnknown_20399E4->field_00E)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
default:
|
||||||
|
gUnknown_20399E4->field_000 = sub_80C4380();
|
||||||
|
gUnknown_20399E4->field_002 = sub_80C438C();
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
gUnknown_20399E4->field_000 = 21;
|
||||||
|
gUnknown_20399E4->field_002 = 11;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
gUnknown_20399E4->field_002 = 13;
|
||||||
|
gUnknown_20399E4->field_000 = 21;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gUnknown_20399E4->field_00E++;
|
||||||
|
gUnknown_20399E4->field_00E %= 2;
|
||||||
|
switch (gUnknown_20399E4->field_00E)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
default:
|
||||||
|
gUnknown_20399E4->field_000 = sub_80C4380();
|
||||||
|
gUnknown_20399E4->field_002 = sub_80C438C();
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
gUnknown_20399E4->field_002 = 13;
|
||||||
|
gUnknown_20399E4->field_000 = 21;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
gUnknown_20399E4->field_01C->pos1.x = 8 * gUnknown_20399E4->field_000 + 36;
|
||||||
|
gUnknown_20399E4->field_01C->pos1.y = 8 * gUnknown_20399E4->field_002 + 36;
|
||||||
|
gUnknown_20399E4->field_014 = sub_80C4164(sub_80C0E20(), 0, gUnknown_20399E4->field_002, gUnknown_20399E4->field_000);
|
||||||
|
}
|
||||||
|
|
||||||
|
u16 sub_80C3508(void)
|
||||||
|
{
|
||||||
|
return gUnknown_20399E4->field_000;
|
||||||
|
}
|
||||||
|
|
||||||
|
u16 sub_80C3514(void)
|
||||||
|
{
|
||||||
|
return gUnknown_20399E4->field_002;
|
||||||
|
}
|
||||||
|
|
||||||
|
u16 sub_80C3520(void)
|
||||||
|
{
|
||||||
|
u8 ret;
|
||||||
|
if (gUnknown_20399E4->field_002 < 0
|
||||||
|
|| gUnknown_20399E4->field_002 > 14
|
||||||
|
|| gUnknown_20399E4->field_000 < 0
|
||||||
|
|| gUnknown_20399E4->field_000 > 21)
|
||||||
|
return MAPSEC_NONE;
|
||||||
|
|
||||||
|
ret = sub_80C4164(sub_80C0E20(), 0, gUnknown_20399E4->field_002, gUnknown_20399E4->field_000);
|
||||||
|
if ((ret == MAPSEC_NAVEL_ROCK || ret == MAPSEC_BIRTH_ISLAND) && !FlagGet(FLAG_WORLD_MAP_NAVEL_ROCK_EXTERIOR))
|
||||||
|
ret = MAPSEC_NONE;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
u16 sub_80C3580(void)
|
||||||
|
{
|
||||||
|
u8 ret;
|
||||||
|
if (gUnknown_20399E4->field_002 < 0
|
||||||
|
|| gUnknown_20399E4->field_002 > 14
|
||||||
|
|| gUnknown_20399E4->field_000 < 0
|
||||||
|
|| gUnknown_20399E4->field_000 > 21)
|
||||||
|
return MAPSEC_NONE;
|
||||||
|
|
||||||
|
ret = sub_80C4164(sub_80C0E20(), 1, gUnknown_20399E4->field_002, gUnknown_20399E4->field_000);
|
||||||
|
if (ret == MAPSEC_CERULEAN_CAVE && !FlagGet(FLAG_SYS_CAN_LINK_WITH_RS))
|
||||||
|
ret = MAPSEC_NONE;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user