mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-23 06:06:12 -05:00
through sub_80C3580
This commit is contained in:
parent
cdc025132e
commit
d35a54052f
244
asm/region_map.s
244
asm/region_map.s
|
|
@ -5,250 +5,6 @@
|
|||
|
||||
.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
|
||||
sub_80C35DC: @ 80C35DC
|
||||
push {lr}
|
||||
|
|
|
|||
|
|
@ -231,16 +231,18 @@ u8 sub_80C31C0(void);
|
|||
u8 sub_80C3348(void);
|
||||
u8 sub_80C3400(void);
|
||||
void sub_80C3418(void);
|
||||
u8 sub_80C3878(u8 a0);
|
||||
u16 sub_80C3520(void);
|
||||
u8 sub_80C35DC(u8 a0);
|
||||
u8 sub_80C3878(u8 a0);
|
||||
u8 sub_80C3AC8(u8 a0);
|
||||
void sub_80C3D40(void);
|
||||
u8 sub_80C4164(u8 a0, u8 a1, s16 a2, s16 a3);
|
||||
void sub_80C41D8(u16 a0, u16 a1);
|
||||
void sub_80C4324(u8 a0);
|
||||
void sub_80C4398(u8 a0, u8 taskId, TaskFunc taskFunc);
|
||||
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_80C4960(u8 a0, u8 a1, u8 a2);
|
||||
void sub_80C4A04(void);
|
||||
|
|
@ -2223,3 +2225,92 @@ u8 sub_80C3400(void)
|
|||
{
|
||||
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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user