mirror of
https://github.com/pret/pmd-red.git
synced 2026-09-08 00:55:53 -05:00
@@ -6345,7 +6345,7 @@ _08010004:
|
||||
movs r0, 0
|
||||
b _0801000E
|
||||
.align 2, 0
|
||||
_08010008: .4byte gUnknown_203B468
|
||||
_08010008: .4byte gFriendAreas
|
||||
_0801000C:
|
||||
movs r0, 0x1
|
||||
_0801000E:
|
||||
|
||||
@@ -20,7 +20,7 @@ sub_801D894:
|
||||
_0801D8A8: .4byte gUnknown_203B250
|
||||
_0801D8AC:
|
||||
ldrb r0, [r1, 0x6]
|
||||
bl sub_8092524
|
||||
bl GetFriendAreaName
|
||||
_0801D8B2:
|
||||
add r2, sp, 0x68
|
||||
add r1, sp, 0x4
|
||||
@@ -7330,7 +7330,7 @@ _080212BC:
|
||||
bl sub_802132C
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8092544
|
||||
bl GetFriendAreaPrice
|
||||
ldr r1, _080212E8
|
||||
ldr r1, [r1]
|
||||
movs r2, 0x98
|
||||
@@ -7632,7 +7632,7 @@ _08021502:
|
||||
movs r2, 0x1
|
||||
bl sub_8092578
|
||||
adds r0, r5, 0
|
||||
bl sub_8092544
|
||||
bl GetFriendAreaPrice
|
||||
ldr r1, _08021570
|
||||
ldr r1, [r1]
|
||||
movs r5, 0x98
|
||||
@@ -7694,7 +7694,7 @@ _0802159C:
|
||||
bl sub_8013800
|
||||
adds r4, r0, 0
|
||||
adds r0, r5, 0
|
||||
bl sub_8092524
|
||||
bl GetFriendAreaName
|
||||
adds r2, r0, 0
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
@@ -7705,10 +7705,10 @@ _0802159C:
|
||||
bl xxx_call_draw_string
|
||||
b _08021632
|
||||
.align 2, 0
|
||||
_080215D4: .4byte gUnknown_203B468
|
||||
_080215D4: .4byte gFriendAreas
|
||||
_080215D8:
|
||||
adds r0, r5, 0
|
||||
bl sub_8092524
|
||||
bl GetFriendAreaName
|
||||
adds r2, r0, 0
|
||||
mov r0, r10
|
||||
ldr r1, _08021608
|
||||
@@ -7737,7 +7737,7 @@ _0802160C:
|
||||
bl sub_8013800
|
||||
adds r4, r0, 0
|
||||
adds r0, r7, 0
|
||||
bl sub_8092524
|
||||
bl GetFriendAreaName
|
||||
adds r2, r0, 0
|
||||
mov r5, r8
|
||||
ldr r0, [r5]
|
||||
@@ -7821,7 +7821,7 @@ _080216A8:
|
||||
ble _08021696
|
||||
b _080216F2
|
||||
.align 2, 0
|
||||
_080216B0: .4byte gUnknown_203B468
|
||||
_080216B0: .4byte gFriendAreas
|
||||
_080216B4:
|
||||
movs r4, 0x1
|
||||
adds r6, r1, 0
|
||||
@@ -7834,7 +7834,7 @@ _080216B8:
|
||||
bne _080216EC
|
||||
lsls r0, r4, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8092534
|
||||
bl GetFriendAreaUnlockCondition
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0
|
||||
@@ -7861,7 +7861,7 @@ _080216F2:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080216FC: .4byte gUnknown_203B468
|
||||
_080216FC: .4byte gFriendAreas
|
||||
thumb_func_end sub_8021664
|
||||
|
||||
thumb_func_start sub_8021700
|
||||
@@ -7888,7 +7888,7 @@ _08021716:
|
||||
ble _08021716
|
||||
b _0802176A
|
||||
.align 2, 0
|
||||
_08021728: .4byte gUnknown_203B468
|
||||
_08021728: .4byte gFriendAreas
|
||||
_0802172C:
|
||||
movs r4, 0x1
|
||||
_0802172E:
|
||||
@@ -7900,7 +7900,7 @@ _0802172E:
|
||||
bne _08021764
|
||||
lsls r0, r4, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8092534
|
||||
bl GetFriendAreaUnlockCondition
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0
|
||||
@@ -7909,7 +7909,7 @@ _0802172E:
|
||||
beq _08021758
|
||||
b _08021764
|
||||
.align 2, 0
|
||||
_08021750: .4byte gUnknown_203B468
|
||||
_08021750: .4byte gFriendAreas
|
||||
_08021754:
|
||||
movs r0, 0
|
||||
b _0802176C
|
||||
@@ -9188,7 +9188,7 @@ _080221A0: .4byte gUnknown_203B290
|
||||
_080221A4:
|
||||
ldr r0, [r4]
|
||||
ldrb r0, [r0, 0x10]
|
||||
bl sub_8092534
|
||||
bl GetFriendAreaUnlockCondition
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x2
|
||||
@@ -9643,7 +9643,7 @@ _080224F8:
|
||||
subs r0, r1
|
||||
str r0, [r2]
|
||||
ldrb r0, [r3, 0x10]
|
||||
bl sub_80925EC
|
||||
bl UnlockFriendArea
|
||||
movs r0, 0xA6
|
||||
lsls r0, 1
|
||||
bl sub_8011988
|
||||
@@ -9690,7 +9690,7 @@ _08022568:
|
||||
strb r0, [r1, 0x10]
|
||||
ldr r0, [r4]
|
||||
ldrb r0, [r0, 0x10]
|
||||
bl sub_8092544
|
||||
bl GetFriendAreaPrice
|
||||
ldr r1, [r4]
|
||||
str r0, [r1, 0xC]
|
||||
movs r0, 0xB
|
||||
@@ -9705,7 +9705,7 @@ _0802258C:
|
||||
strb r0, [r1, 0x10]
|
||||
ldr r0, [r4]
|
||||
ldrb r0, [r0, 0x10]
|
||||
bl sub_8092544
|
||||
bl GetFriendAreaPrice
|
||||
ldr r1, [r4]
|
||||
str r0, [r1, 0xC]
|
||||
movs r0, 0x10
|
||||
|
||||
@@ -5,227 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80420E8
|
||||
sub_80420E8:
|
||||
push {r4,lr}
|
||||
sub sp, 0x8
|
||||
adds r4, r0, 0
|
||||
ldr r1, [r1, 0x8]
|
||||
ldr r0, _0804211C
|
||||
ldr r0, [r0]
|
||||
ldr r2, _08042120
|
||||
adds r0, r2
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08042106
|
||||
adds r0, r1, 0
|
||||
bl sub_806F62C
|
||||
adds r1, r0, 0
|
||||
_08042106:
|
||||
cmp r1, 0x1
|
||||
beq _08042124
|
||||
cmp r1, 0x1
|
||||
bcc _08042116
|
||||
cmp r1, 0x2
|
||||
beq _08042128
|
||||
cmp r1, 0x3
|
||||
beq _0804212C
|
||||
_08042116:
|
||||
movs r1, 0x8
|
||||
b _0804212E
|
||||
.align 2, 0
|
||||
_0804211C: .4byte gUnknown_203B418
|
||||
_08042120: .4byte 0x0000016d
|
||||
_08042124:
|
||||
movs r1, 0x9
|
||||
b _0804212E
|
||||
_08042128:
|
||||
movs r1, 0xA
|
||||
b _0804212E
|
||||
_0804212C:
|
||||
movs r1, 0xB
|
||||
_0804212E:
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x1
|
||||
str r0, [sp, 0x4]
|
||||
adds r0, r4, 0
|
||||
movs r2, 0x1
|
||||
movs r3, 0x3
|
||||
bl sub_8041550
|
||||
add sp, 0x8
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80420E8
|
||||
|
||||
thumb_func_start sub_8042148
|
||||
sub_8042148:
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r1, _08042164
|
||||
bl sub_80421C0
|
||||
movs r1, 0x9F
|
||||
lsls r1, 1
|
||||
adds r0, r4, 0
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08042164: .4byte 0x000001a7
|
||||
thumb_func_end sub_8042148
|
||||
|
||||
thumb_func_start nullsub_93
|
||||
nullsub_93:
|
||||
bx lr
|
||||
thumb_func_end nullsub_93
|
||||
|
||||
thumb_func_start sub_804216C
|
||||
sub_804216C:
|
||||
push {lr}
|
||||
adds r0, r1, 0
|
||||
cmp r2, 0x1
|
||||
bne _0804217E
|
||||
movs r1, 0xF8
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
b _08042186
|
||||
_0804217E:
|
||||
movs r1, 0xF9
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
_08042186:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_804216C
|
||||
|
||||
thumb_func_start sub_804218C
|
||||
sub_804218C:
|
||||
push {lr}
|
||||
adds r0, r1, 0
|
||||
movs r1, 0x2A
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_804218C
|
||||
|
||||
thumb_func_start sub_804219C
|
||||
sub_804219C:
|
||||
push {lr}
|
||||
movs r1, 0x90
|
||||
movs r2, 0x1
|
||||
bl sub_80416E0
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_804219C
|
||||
|
||||
thumb_func_start sub_80421AC
|
||||
sub_80421AC:
|
||||
push {lr}
|
||||
adds r0, r1, 0
|
||||
ldr r1, _080421BC
|
||||
movs r2, 0x1
|
||||
bl sub_804151C
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080421BC: .4byte 0x00000167
|
||||
thumb_func_end sub_80421AC
|
||||
|
||||
thumb_func_start sub_80421C0
|
||||
sub_80421C0:
|
||||
push {r4,lr}
|
||||
adds r2, r0, 0
|
||||
lsls r1, 16
|
||||
lsrs r0, r1, 16
|
||||
adds r4, r0, 0
|
||||
cmp r2, 0
|
||||
bne _080421D4
|
||||
bl sub_8083E38
|
||||
b _080421E6
|
||||
_080421D4:
|
||||
adds r0, r2, 0
|
||||
bl sub_8042768
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080421E6
|
||||
adds r0, r4, 0
|
||||
bl sub_8083E38
|
||||
_080421E6:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80421C0
|
||||
|
||||
thumb_func_start sub_80421EC
|
||||
sub_80421EC:
|
||||
push {r4,lr}
|
||||
lsls r1, 16
|
||||
lsrs r4, r1, 16
|
||||
bl sub_803F428
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08042202
|
||||
adds r0, r4, 0
|
||||
bl sub_8083E38
|
||||
_08042202:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80421EC
|
||||
|
||||
thumb_func_start sub_8042208
|
||||
sub_8042208:
|
||||
push {lr}
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
cmp r1, 0
|
||||
bne _0804221C
|
||||
movs r0, 0xA9
|
||||
lsls r0, 1
|
||||
bl sub_8083E38
|
||||
b _08042234
|
||||
_0804221C:
|
||||
cmp r1, 0x1
|
||||
bne _0804222C
|
||||
ldr r0, _08042228
|
||||
bl sub_8083E38
|
||||
b _08042234
|
||||
.align 2, 0
|
||||
_08042228: .4byte 0x00000151
|
||||
_0804222C:
|
||||
movs r0, 0xA8
|
||||
lsls r0, 1
|
||||
bl sub_8083E38
|
||||
_08042234:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8042208
|
||||
|
||||
thumb_func_start sub_8042238
|
||||
sub_8042238:
|
||||
push {lr}
|
||||
ldr r0, [r1, 0x70]
|
||||
ldrb r0, [r0, 0x6]
|
||||
cmp r0, 0
|
||||
beq _08042250
|
||||
ldr r0, _0804224C
|
||||
bl sub_8083E38
|
||||
b _08042258
|
||||
.align 2, 0
|
||||
_0804224C: .4byte 0x00000157
|
||||
_08042250:
|
||||
movs r0, 0xAB
|
||||
lsls r0, 1
|
||||
bl sub_8083E38
|
||||
_08042258:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8042238
|
||||
|
||||
thumb_func_start sub_804225C
|
||||
sub_804225C:
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -59029,12 +59029,12 @@ _0806FB30: .4byte 0x00008df8
|
||||
_0806FB34: .4byte gUnknown_80FA030
|
||||
_0806FB38:
|
||||
mov r0, r9
|
||||
bl sub_8092600
|
||||
bl GetFriendAreaStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0806FB4E
|
||||
mov r0, r9
|
||||
bl sub_80925EC
|
||||
bl UnlockFriendArea
|
||||
movs r2, 0x1
|
||||
mov r10, r2
|
||||
_0806FB4E:
|
||||
@@ -59516,12 +59516,12 @@ _0806FED8:
|
||||
movs r2, 0xA
|
||||
bl sub_8092310
|
||||
adds r0, r7, 0
|
||||
bl sub_8092600
|
||||
bl GetFriendAreaStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0806FF34
|
||||
adds r0, r7, 0
|
||||
bl sub_80925EC
|
||||
bl UnlockFriendArea
|
||||
movs r2, 0x1
|
||||
mov r9, r2
|
||||
_0806FF34:
|
||||
@@ -113968,7 +113968,7 @@ _0808B87C:
|
||||
ldr r0, _0808BA38
|
||||
bl sub_8052910
|
||||
adds r0, r4, 0
|
||||
bl sub_80925EC
|
||||
bl UnlockFriendArea
|
||||
movs r0, 0xD4
|
||||
bl sub_8083E38
|
||||
bl sub_8083600
|
||||
@@ -114544,7 +114544,7 @@ sub_808BD94:
|
||||
_0808BD9C:
|
||||
lsls r0, r4, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8092534
|
||||
bl GetFriendAreaUnlockCondition
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x3
|
||||
@@ -114573,7 +114573,7 @@ _0808BDC4:
|
||||
ldrb r0, [r0]
|
||||
b _0808BDE2
|
||||
.align 2, 0
|
||||
_0808BDDC: .4byte gUnknown_203B468
|
||||
_0808BDDC: .4byte gFriendAreas
|
||||
_0808BDE0:
|
||||
movs r0, 0x3A
|
||||
_0808BDE2:
|
||||
|
||||
@@ -2027,7 +2027,7 @@ _0808FB94:
|
||||
add r9, r3
|
||||
mov r1, r10
|
||||
ldrb r0, [r1, 0x18]
|
||||
bl sub_8092390
|
||||
bl GetAbilityDescription
|
||||
adds r2, r0, 0
|
||||
str r4, [sp]
|
||||
movs r5, 0xB
|
||||
@@ -2044,7 +2044,7 @@ _0808FB94:
|
||||
bne _0808FBD2
|
||||
b _0808FED6
|
||||
_0808FBD2:
|
||||
bl sub_8092390
|
||||
bl GetAbilityDescription
|
||||
adds r2, r0, 0
|
||||
str r4, [sp]
|
||||
str r5, [sp, 0x4]
|
||||
@@ -2310,7 +2310,7 @@ _0808FDB0:
|
||||
bl GetFriendArea
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8092524
|
||||
bl GetFriendAreaName
|
||||
adds r1, r0, 0
|
||||
ldr r4, _0808FEFC
|
||||
adds r0, r4, 0
|
||||
|
||||
@@ -5,616 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8092404
|
||||
sub_8092404:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
mov r10, r1
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r9, r0
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
mov r8, r2
|
||||
lsls r3, 24
|
||||
lsrs r7, r3, 24
|
||||
movs r6, 0
|
||||
movs r4, 0
|
||||
mov r5, r10
|
||||
_08092426:
|
||||
movs r0, 0x58
|
||||
adds r1, r4, 0
|
||||
muls r1, r0
|
||||
ldr r0, _08092494
|
||||
ldr r0, [r0]
|
||||
adds r2, r1, r0
|
||||
ldrb r1, [r2]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08092472
|
||||
ldrb r0, [r2, 0x2]
|
||||
cmp r0, 0
|
||||
beq _08092448
|
||||
mov r0, r8
|
||||
cmp r0, 0
|
||||
beq _08092472
|
||||
_08092448:
|
||||
movs r1, 0
|
||||
ldrb r0, [r2, 0x4]
|
||||
cmp r0, 0x41
|
||||
bne _08092452
|
||||
movs r1, 0x1
|
||||
_08092452:
|
||||
cmp r1, 0
|
||||
beq _0809245A
|
||||
cmp r7, 0
|
||||
beq _08092472
|
||||
_0809245A:
|
||||
adds r0, r4, 0
|
||||
bl sub_80923D4
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, r9
|
||||
bne _08092472
|
||||
cmp r6, 0xF
|
||||
bgt _08092472
|
||||
strh r4, [r5]
|
||||
adds r5, 0x2
|
||||
adds r6, 0x1
|
||||
_08092472:
|
||||
adds r4, 0x1
|
||||
movs r0, 0xCE
|
||||
lsls r0, 1
|
||||
cmp r4, r0
|
||||
ble _08092426
|
||||
lsls r0, r6, 1
|
||||
add r0, r10
|
||||
ldr r2, _08092498
|
||||
adds r1, r2, 0
|
||||
strh r1, [r0]
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08092494: .4byte gUnknown_203B45C
|
||||
_08092498: .4byte 0x0000ffff
|
||||
thumb_func_end sub_8092404
|
||||
|
||||
thumb_func_start sub_809249C
|
||||
sub_809249C:
|
||||
push {r4-r7,lr}
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
lsls r1, 24
|
||||
lsrs r7, r1, 24
|
||||
ldr r0, _080924F8
|
||||
ldr r0, [r0]
|
||||
adds r0, r6
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0809251A
|
||||
movs r5, 0
|
||||
_080924B4:
|
||||
ldr r2, _080924FC
|
||||
movs r0, 0x58
|
||||
adds r1, r5, 0
|
||||
muls r1, r0
|
||||
ldr r0, [r2]
|
||||
adds r4, r0, r1
|
||||
ldrb r1, [r4]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08092502
|
||||
adds r0, r5, 0
|
||||
bl sub_80923D4
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, r6
|
||||
bne _08092502
|
||||
movs r1, 0
|
||||
ldrb r0, [r4, 0x4]
|
||||
cmp r0, 0x41
|
||||
bne _080924E2
|
||||
movs r1, 0x1
|
||||
_080924E2:
|
||||
cmp r1, 0
|
||||
bne _080924F2
|
||||
ldrb r1, [r4, 0x2]
|
||||
negs r0, r1
|
||||
orrs r0, r1
|
||||
lsrs r0, 31
|
||||
cmp r0, 0
|
||||
beq _08092500
|
||||
_080924F2:
|
||||
movs r7, 0
|
||||
b _08092502
|
||||
.align 2, 0
|
||||
_080924F8: .4byte gUnknown_203B468
|
||||
_080924FC: .4byte gUnknown_203B45C
|
||||
_08092500:
|
||||
strh r0, [r4]
|
||||
_08092502:
|
||||
adds r5, 0x1
|
||||
movs r0, 0xCE
|
||||
lsls r0, 1
|
||||
cmp r5, r0
|
||||
ble _080924B4
|
||||
cmp r7, 0
|
||||
beq _0809251A
|
||||
ldr r0, _08092520
|
||||
ldr r0, [r0]
|
||||
adds r0, r6
|
||||
movs r1, 0
|
||||
strb r1, [r0]
|
||||
_0809251A:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08092520: .4byte gUnknown_203B468
|
||||
thumb_func_end sub_809249C
|
||||
|
||||
thumb_func_start sub_8092524
|
||||
sub_8092524:
|
||||
lsls r0, 24
|
||||
ldr r1, _08092530
|
||||
lsrs r0, 22
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08092530: .4byte gFriendAreaNames
|
||||
thumb_func_end sub_8092524
|
||||
|
||||
thumb_func_start sub_8092534
|
||||
sub_8092534:
|
||||
lsls r0, 24
|
||||
ldr r1, _08092540
|
||||
lsrs r0, 21
|
||||
adds r0, r1
|
||||
ldrb r0, [r0, 0x2]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08092540: .4byte gUnknown_810AA90
|
||||
thumb_func_end sub_8092534
|
||||
|
||||
thumb_func_start sub_8092544
|
||||
sub_8092544:
|
||||
lsls r0, 24
|
||||
ldr r1, _08092554
|
||||
lsrs r0, 21
|
||||
adds r1, 0x4
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08092554: .4byte gUnknown_810AA90
|
||||
thumb_func_end sub_8092544
|
||||
|
||||
thumb_func_start sub_8092558
|
||||
sub_8092558:
|
||||
push {lr}
|
||||
lsls r2, r1, 24
|
||||
ldr r1, _08092570
|
||||
ldr r3, _08092574
|
||||
lsrs r2, 22
|
||||
adds r2, r3
|
||||
ldr r2, [r2]
|
||||
bl sub_800D158
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08092570: .4byte gUnknown_81098A4
|
||||
_08092574: .4byte gFriendAreaNames
|
||||
thumb_func_end sub_8092558
|
||||
|
||||
thumb_func_start sub_8092578
|
||||
sub_8092578:
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x18
|
||||
adds r5, r0, 0
|
||||
lsls r1, 24
|
||||
lsrs r4, r1, 24
|
||||
lsls r2, 24
|
||||
cmp r2, 0
|
||||
beq _080925C0
|
||||
ldr r0, _080925B4
|
||||
lsls r1, r4, 3
|
||||
adds r0, 0x4
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
add r1, sp, 0x4
|
||||
movs r2, 0x1
|
||||
bl sub_8090FEC
|
||||
ldr r1, _080925B8
|
||||
ldr r2, _080925BC
|
||||
lsls r0, r4, 2
|
||||
adds r0, r2
|
||||
ldr r2, [r0]
|
||||
add r0, sp, 0x4
|
||||
str r0, [sp]
|
||||
adds r0, r5, 0
|
||||
movs r3, 0x60
|
||||
bl sub_800D158
|
||||
b _080925CE
|
||||
.align 2, 0
|
||||
_080925B4: .4byte gUnknown_810AA90
|
||||
_080925B8: .4byte gUnknown_81098AC
|
||||
_080925BC: .4byte gFriendAreaNames
|
||||
_080925C0:
|
||||
ldr r0, _080925D8
|
||||
lsls r1, r4, 2
|
||||
adds r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r5, 0
|
||||
bl strcpy
|
||||
_080925CE:
|
||||
add sp, 0x18
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080925D8: .4byte gFriendAreaNames
|
||||
thumb_func_end sub_8092578
|
||||
|
||||
thumb_func_start GetFriendAreaDescription
|
||||
GetFriendAreaDescription:
|
||||
lsls r0, 24
|
||||
ldr r1, _080925E8
|
||||
lsrs r0, 22
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_080925E8: .4byte gFriendAreaDescriptions
|
||||
thumb_func_end GetFriendAreaDescription
|
||||
|
||||
thumb_func_start sub_80925EC
|
||||
sub_80925EC:
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r1, _080925FC
|
||||
ldr r1, [r1]
|
||||
adds r1, r0
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_080925FC: .4byte gUnknown_203B468
|
||||
thumb_func_end sub_80925EC
|
||||
|
||||
thumb_func_start sub_8092600
|
||||
sub_8092600:
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r1, _08092610
|
||||
ldr r1, [r1]
|
||||
adds r1, r0
|
||||
ldrb r0, [r1]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08092610: .4byte gUnknown_203B468
|
||||
thumb_func_end sub_8092600
|
||||
|
||||
thumb_func_start sub_8092614
|
||||
sub_8092614:
|
||||
push {lr}
|
||||
movs r1, 0x1
|
||||
ldr r0, _08092628
|
||||
ldr r2, [r0]
|
||||
_0809261C:
|
||||
adds r0, r2, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _0809262C
|
||||
movs r0, 0
|
||||
b _08092634
|
||||
.align 2, 0
|
||||
_08092628: .4byte gUnknown_203B468
|
||||
_0809262C:
|
||||
adds r1, 0x1
|
||||
cmp r1, 0x39
|
||||
ble _0809261C
|
||||
movs r0, 0x1
|
||||
_08092634:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8092614
|
||||
|
||||
thumb_func_start sub_8092638
|
||||
sub_8092638:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r4, r1, 0
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
mov r12, r2
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
mov r8, r3
|
||||
movs r6, 0
|
||||
movs r3, 0
|
||||
ldr r2, _080926DC
|
||||
cmp r3, r5
|
||||
bge _0809266E
|
||||
ldr r1, _080926E0
|
||||
adds r3, r5, 0
|
||||
_0809265E:
|
||||
movs r7, 0
|
||||
ldrsh r0, [r1, r7]
|
||||
adds r6, r0
|
||||
adds r1, 0x8
|
||||
subs r3, 0x1
|
||||
cmp r3, 0
|
||||
bne _0809265E
|
||||
adds r3, r5, 0
|
||||
_0809266E:
|
||||
str r6, [r4, 0x8]
|
||||
ldr r0, [r2]
|
||||
adds r0, r3
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r4, 0x4]
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0
|
||||
beq _080926E8
|
||||
movs r0, 0
|
||||
strh r0, [r4, 0x2]
|
||||
ldr r1, _080926E0
|
||||
lsls r0, r3, 3
|
||||
adds r0, r1
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r4]
|
||||
movs r3, 0
|
||||
movs r1, 0
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r3, r0
|
||||
bge _080926EC
|
||||
ldr r5, _080926E4
|
||||
_0809269A:
|
||||
movs r0, 0x58
|
||||
adds r1, r6, 0
|
||||
muls r1, r0
|
||||
ldr r0, [r5]
|
||||
adds r2, r0, r1
|
||||
ldrb r1, [r2]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080926CC
|
||||
mov r7, r12
|
||||
cmp r7, 0
|
||||
beq _080926BA
|
||||
ldrb r0, [r2, 0x2]
|
||||
cmp r0, 0
|
||||
bne _080926CC
|
||||
_080926BA:
|
||||
mov r0, r8
|
||||
cmp r0, 0
|
||||
beq _080926C6
|
||||
ldrb r0, [r2, 0x4]
|
||||
cmp r0, 0x41
|
||||
beq _080926CC
|
||||
_080926C6:
|
||||
ldrh r0, [r4, 0x2]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x2]
|
||||
_080926CC:
|
||||
adds r3, 0x1
|
||||
adds r6, 0x1
|
||||
movs r1, 0
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r3, r0
|
||||
blt _0809269A
|
||||
b _080926EC
|
||||
.align 2, 0
|
||||
_080926DC: .4byte gUnknown_203B468
|
||||
_080926E0: .4byte gUnknown_810AA90
|
||||
_080926E4: .4byte gUnknown_203B45C
|
||||
_080926E8:
|
||||
strh r0, [r4, 0x2]
|
||||
strh r0, [r4]
|
||||
_080926EC:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8092638
|
||||
|
||||
thumb_func_start sub_80926F8
|
||||
sub_80926F8:
|
||||
push {r4-r7,lr}
|
||||
adds r4, r1, 0
|
||||
lsls r0, 24
|
||||
lsrs r3, r0, 24
|
||||
lsls r2, 24
|
||||
lsrs r7, r2, 24
|
||||
movs r5, 0
|
||||
movs r2, 0
|
||||
ldr r0, _08092780
|
||||
mov r12, r0
|
||||
cmp r2, r3
|
||||
bge _08092724
|
||||
ldr r1, _08092784
|
||||
adds r2, r3, 0
|
||||
_08092714:
|
||||
movs r6, 0
|
||||
ldrsh r0, [r1, r6]
|
||||
adds r5, r0
|
||||
adds r1, 0x8
|
||||
subs r2, 0x1
|
||||
cmp r2, 0
|
||||
bne _08092714
|
||||
adds r2, r3, 0
|
||||
_08092724:
|
||||
str r5, [r4, 0x8]
|
||||
mov r1, r12
|
||||
ldr r0, [r1]
|
||||
adds r0, r2
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r4, 0x4]
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0
|
||||
beq _0809279C
|
||||
movs r0, 0
|
||||
strh r0, [r4, 0x2]
|
||||
ldr r1, _08092784
|
||||
lsls r0, r2, 3
|
||||
adds r0, r1
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r4]
|
||||
movs r6, 0
|
||||
ldrsh r0, [r4, r6]
|
||||
cmp r0, 0
|
||||
ble _080927A0
|
||||
ldr r6, _08092788
|
||||
adds r2, r0, 0
|
||||
_08092752:
|
||||
movs r0, 0x58
|
||||
adds r1, r5, 0
|
||||
muls r1, r0
|
||||
ldr r0, [r6]
|
||||
adds r3, r0, r1
|
||||
ldrb r1, [r3]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08092792
|
||||
ldrb r0, [r3, 0x2]
|
||||
cmp r0, 0
|
||||
bne _08092776
|
||||
cmp r7, 0
|
||||
bne _0809278C
|
||||
ldrb r0, [r3, 0x4]
|
||||
cmp r0, 0x41
|
||||
bne _0809278C
|
||||
_08092776:
|
||||
ldrh r0, [r4]
|
||||
subs r0, 0x1
|
||||
strh r0, [r4]
|
||||
b _08092792
|
||||
.align 2, 0
|
||||
_08092780: .4byte gUnknown_203B468
|
||||
_08092784: .4byte gUnknown_810AA90
|
||||
_08092788: .4byte gUnknown_203B45C
|
||||
_0809278C:
|
||||
ldrh r0, [r4, 0x2]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x2]
|
||||
_08092792:
|
||||
subs r2, 0x1
|
||||
adds r5, 0x1
|
||||
cmp r2, 0
|
||||
bne _08092752
|
||||
b _080927A0
|
||||
_0809279C:
|
||||
strh r0, [r4, 0x2]
|
||||
strh r0, [r4]
|
||||
_080927A0:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80926F8
|
||||
|
||||
thumb_func_start sub_80927A8
|
||||
sub_80927A8:
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x14
|
||||
adds r3, r0, 0
|
||||
adds r2, r1, 0
|
||||
mov r0, sp
|
||||
adds r1, r3, 0
|
||||
bl sub_809486C
|
||||
movs r4, 0
|
||||
add r5, sp, 0x10
|
||||
_080927BC:
|
||||
ldr r0, _080927F0
|
||||
ldr r0, [r0]
|
||||
adds r0, r4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _080927CC
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
_080927CC:
|
||||
str r0, [sp, 0x10]
|
||||
mov r0, sp
|
||||
adds r1, r5, 0
|
||||
movs r2, 0x1
|
||||
bl sub_809488C
|
||||
adds r4, 0x1
|
||||
cmp r4, 0x39
|
||||
ble _080927BC
|
||||
mov r0, sp
|
||||
bl nullsub_102
|
||||
ldr r0, [sp, 0x8]
|
||||
add sp, 0x14
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080927F0: .4byte gUnknown_203B468
|
||||
thumb_func_end sub_80927A8
|
||||
|
||||
thumb_func_start sub_80927F4
|
||||
sub_80927F4:
|
||||
push {r4-r7,lr}
|
||||
sub sp, 0x14
|
||||
adds r3, r0, 0
|
||||
adds r2, r1, 0
|
||||
mov r0, sp
|
||||
adds r1, r3, 0
|
||||
bl sub_809485C
|
||||
movs r4, 0
|
||||
add r7, sp, 0x10
|
||||
movs r6, 0x1
|
||||
ldr r5, _08092828
|
||||
_0809280C:
|
||||
mov r0, sp
|
||||
adds r1, r7, 0
|
||||
movs r2, 0x1
|
||||
bl sub_8094924
|
||||
ldr r1, [sp, 0x10]
|
||||
ands r1, r6
|
||||
cmp r1, 0
|
||||
beq _0809282C
|
||||
ldr r0, [r5]
|
||||
adds r0, r4
|
||||
strb r6, [r0]
|
||||
b _08092832
|
||||
.align 2, 0
|
||||
_08092828: .4byte gUnknown_203B468
|
||||
_0809282C:
|
||||
ldr r0, [r5]
|
||||
adds r0, r4
|
||||
strb r1, [r0]
|
||||
_08092832:
|
||||
adds r4, 0x1
|
||||
cmp r4, 0x39
|
||||
ble _0809280C
|
||||
mov r0, sp
|
||||
bl nullsub_102
|
||||
ldr r0, [sp, 0x8]
|
||||
add sp, 0x14
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80927F4
|
||||
|
||||
thumb_func_start LoadWazaParameters
|
||||
LoadWazaParameters:
|
||||
push {lr}
|
||||
|
||||
@@ -1306,7 +1306,7 @@ _08095AD4:
|
||||
cmp r0, 0x9
|
||||
bne _08095B20
|
||||
ldrb r0, [r5, 0x13]
|
||||
bl sub_8092534
|
||||
bl GetFriendAreaUnlockCondition
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x2
|
||||
@@ -1789,7 +1789,7 @@ _08095E84:
|
||||
bne _08095EF6
|
||||
lsls r0, r5, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8092534
|
||||
bl GetFriendAreaUnlockCondition
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x2
|
||||
@@ -1848,7 +1848,7 @@ _08095EF6:
|
||||
movs r0, 0
|
||||
b _08095F1A
|
||||
.align 2, 0
|
||||
_08095F04: .4byte gUnknown_203B468
|
||||
_08095F04: .4byte gFriendAreas
|
||||
_08095F08: .4byte gUnknown_203B490
|
||||
_08095F0C: .4byte 0x00000101
|
||||
_08095F10:
|
||||
|
||||
@@ -680,7 +680,7 @@ sub_8097944:
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08097974
|
||||
bl sub_8092614
|
||||
bl HasAllFriendAreas
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08097974
|
||||
|
||||
@@ -7926,7 +7926,7 @@ _080A151C:
|
||||
.4byte _080A1840
|
||||
.4byte _080A185E
|
||||
.4byte _080A18C2
|
||||
.4byte _080A18E2
|
||||
.4byte _080A18E2 @ Wigglytuff Club Opening
|
||||
.4byte _080A18F2
|
||||
.4byte _080A1904
|
||||
.4byte _080A197C
|
||||
@@ -8293,11 +8293,11 @@ _080A18D8:
|
||||
cmp r0, r1
|
||||
bge _080A18D8
|
||||
b _080A1EBE
|
||||
_080A18E2:
|
||||
movs r0, 0xC
|
||||
bl sub_80925EC
|
||||
movs r0, 0x12
|
||||
bl sub_80925EC
|
||||
_080A18E2: @ Wigglytuff Guild Opening
|
||||
movs r0, 0xC @ Wild Plains
|
||||
bl UnlockFriendArea
|
||||
movs r0, 0x12 @ Mist-Rise Forest
|
||||
bl UnlockFriendArea
|
||||
bl _080A236A
|
||||
_080A18F2:
|
||||
ldr r0, _080A1900
|
||||
@@ -8313,7 +8313,7 @@ _080A1904:
|
||||
bl GetFriendArea
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_80925EC
|
||||
bl UnlockFriendArea
|
||||
add r1, sp, 0x4
|
||||
ldr r0, _080A1970
|
||||
ldm r0!, {r2,r3,r6}
|
||||
@@ -8375,7 +8375,7 @@ _080A1988:
|
||||
bl GetFriendArea
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_80925EC
|
||||
bl UnlockFriendArea
|
||||
add r1, sp, 0x84
|
||||
adds r2, r1, 0
|
||||
ldr r0, _080A19D8
|
||||
@@ -8594,7 +8594,7 @@ _080A1B64:
|
||||
bl GetFriendArea
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8092600
|
||||
bl GetFriendAreaStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080A1B88
|
||||
@@ -8602,7 +8602,7 @@ _080A1B64:
|
||||
bl GetFriendArea
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_80925EC
|
||||
bl UnlockFriendArea
|
||||
_080A1B88:
|
||||
add r1, sp, 0x188
|
||||
adds r2, r1, 0
|
||||
@@ -8849,7 +8849,7 @@ _080A1CCC:
|
||||
bl GetFriendArea
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8092600
|
||||
bl GetFriendAreaStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080A1D9E
|
||||
@@ -8886,7 +8886,7 @@ _080A1DA8:
|
||||
bl GetFriendArea
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8092600
|
||||
bl GetFriendAreaStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080A1EBE
|
||||
@@ -8918,7 +8918,7 @@ _080A1E14:
|
||||
bl GetFriendArea
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8092600
|
||||
bl GetFriendAreaStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080A1EBE
|
||||
@@ -8959,7 +8959,7 @@ _080A1E6C:
|
||||
bl GetFriendArea
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8092600
|
||||
bl GetFriendAreaStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080A1E8E
|
||||
@@ -8967,7 +8967,7 @@ _080A1E6C:
|
||||
bl GetFriendArea
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_80925EC
|
||||
bl UnlockFriendArea
|
||||
_080A1E8E:
|
||||
ldr r3, _080A1EC8
|
||||
movs r0, 0
|
||||
|
||||
@@ -1379,7 +1379,7 @@ _08001E08:
|
||||
cmp r0, 0
|
||||
beq _08001E36
|
||||
movs r0, 0xE
|
||||
bl sub_8092600
|
||||
bl GetFriendAreaStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08001E36
|
||||
@@ -1425,7 +1425,7 @@ _08001E72:
|
||||
bl sub_80973A8
|
||||
_08001E7A:
|
||||
movs r0, 0x2B
|
||||
bl sub_8092600
|
||||
bl GetFriendAreaStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08001E8E
|
||||
@@ -1434,7 +1434,7 @@ _08001E7A:
|
||||
bl sub_80973A8
|
||||
_08001E8E:
|
||||
movs r0, 0x24
|
||||
bl sub_8092600
|
||||
bl GetFriendAreaStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08001EA2
|
||||
@@ -1443,7 +1443,7 @@ _08001E8E:
|
||||
bl sub_80973A8
|
||||
_08001EA2:
|
||||
movs r0, 0x23
|
||||
bl sub_8092600
|
||||
bl GetFriendAreaStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08001EB6
|
||||
@@ -1452,7 +1452,7 @@ _08001EA2:
|
||||
bl sub_80973A8
|
||||
_08001EB6:
|
||||
movs r0, 0x19
|
||||
bl sub_8092600
|
||||
bl GetFriendAreaStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08001ECA
|
||||
@@ -1461,7 +1461,7 @@ _08001EB6:
|
||||
bl sub_80973A8
|
||||
_08001ECA:
|
||||
movs r0, 0x3
|
||||
bl sub_8092600
|
||||
bl GetFriendAreaStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08001EE6
|
||||
@@ -1473,12 +1473,12 @@ _08001ECA:
|
||||
bl sub_80973A8
|
||||
_08001EE6:
|
||||
movs r0, 0x2C
|
||||
bl sub_8092600
|
||||
bl GetFriendAreaStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08001F06
|
||||
movs r0, 0x2D
|
||||
bl sub_8092600
|
||||
bl GetFriendAreaStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08001F06
|
||||
@@ -1533,7 +1533,7 @@ _08001F58:
|
||||
cmp r0, 0
|
||||
beq _08001F7E
|
||||
movs r0, 0x37
|
||||
bl sub_8092600
|
||||
bl GetFriendAreaStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08001F7E
|
||||
@@ -1591,7 +1591,7 @@ _08001FCC:
|
||||
cmp r0, 0
|
||||
beq _08002002
|
||||
movs r0, 0xE
|
||||
bl sub_8092600
|
||||
bl GetFriendAreaStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08002002
|
||||
@@ -1601,7 +1601,7 @@ _08001FCC:
|
||||
bl sub_8001BB4
|
||||
_08002002:
|
||||
movs r0, 0xE
|
||||
bl sub_8092600
|
||||
bl GetFriendAreaStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08002016
|
||||
@@ -1610,7 +1610,7 @@ _08002002:
|
||||
bl sub_80973A8
|
||||
_08002016:
|
||||
movs r0, 0xE
|
||||
bl sub_8092600
|
||||
bl GetFriendAreaStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0800202A
|
||||
@@ -2497,7 +2497,7 @@ sub_80026CC:
|
||||
bl sub_8002658
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8092600
|
||||
bl GetFriendAreaStatus
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
pop {r1}
|
||||
@@ -2512,7 +2512,7 @@ sub_80026E8:
|
||||
bl sub_8002658
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_80925EC
|
||||
bl UnlockFriendArea
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80026E8
|
||||
|
||||
209
asm/friend_area_1.s
Normal file
209
asm/friend_area_1.s
Normal file
@@ -0,0 +1,209 @@
|
||||
.include "constants/gba_constants.inc"
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8092638
|
||||
sub_8092638:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r4, r1, 0
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
mov r12, r2
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
mov r8, r3
|
||||
movs r6, 0
|
||||
movs r3, 0
|
||||
ldr r2, _080926DC
|
||||
cmp r3, r5
|
||||
bge _0809266E
|
||||
ldr r1, _080926E0
|
||||
adds r3, r5, 0
|
||||
_0809265E:
|
||||
movs r7, 0
|
||||
ldrsh r0, [r1, r7]
|
||||
adds r6, r0
|
||||
adds r1, 0x8
|
||||
subs r3, 0x1
|
||||
cmp r3, 0
|
||||
bne _0809265E
|
||||
adds r3, r5, 0
|
||||
_0809266E:
|
||||
str r6, [r4, 0x8]
|
||||
ldr r0, [r2]
|
||||
adds r0, r3
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r4, 0x4]
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0
|
||||
beq _080926E8
|
||||
movs r0, 0
|
||||
strh r0, [r4, 0x2]
|
||||
ldr r1, _080926E0
|
||||
lsls r0, r3, 3
|
||||
adds r0, r1
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r4]
|
||||
movs r3, 0
|
||||
movs r1, 0
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r3, r0
|
||||
bge _080926EC
|
||||
ldr r5, _080926E4
|
||||
_0809269A:
|
||||
movs r0, 0x58
|
||||
adds r1, r6, 0
|
||||
muls r1, r0
|
||||
ldr r0, [r5]
|
||||
adds r2, r0, r1
|
||||
ldrb r1, [r2]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080926CC
|
||||
mov r7, r12
|
||||
cmp r7, 0
|
||||
beq _080926BA
|
||||
ldrb r0, [r2, 0x2]
|
||||
cmp r0, 0
|
||||
bne _080926CC
|
||||
_080926BA:
|
||||
mov r0, r8
|
||||
cmp r0, 0
|
||||
beq _080926C6
|
||||
ldrb r0, [r2, 0x4]
|
||||
cmp r0, 0x41
|
||||
beq _080926CC
|
||||
_080926C6:
|
||||
ldrh r0, [r4, 0x2]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x2]
|
||||
_080926CC:
|
||||
adds r3, 0x1
|
||||
adds r6, 0x1
|
||||
movs r1, 0
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r3, r0
|
||||
blt _0809269A
|
||||
b _080926EC
|
||||
.align 2, 0
|
||||
_080926DC: .4byte gFriendAreas
|
||||
_080926E0: .4byte gFriendAreaSettings
|
||||
_080926E4: .4byte gUnknown_203B45C
|
||||
_080926E8:
|
||||
strh r0, [r4, 0x2]
|
||||
strh r0, [r4]
|
||||
_080926EC:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8092638
|
||||
|
||||
thumb_func_start sub_80926F8
|
||||
sub_80926F8:
|
||||
push {r4-r7,lr}
|
||||
adds r4, r1, 0
|
||||
lsls r0, 24
|
||||
lsrs r3, r0, 24
|
||||
lsls r2, 24
|
||||
lsrs r7, r2, 24
|
||||
movs r5, 0
|
||||
movs r2, 0
|
||||
ldr r0, _08092780
|
||||
mov r12, r0
|
||||
cmp r2, r3
|
||||
bge _08092724
|
||||
ldr r1, _08092784
|
||||
adds r2, r3, 0
|
||||
_08092714:
|
||||
movs r6, 0
|
||||
ldrsh r0, [r1, r6]
|
||||
adds r5, r0
|
||||
adds r1, 0x8
|
||||
subs r2, 0x1
|
||||
cmp r2, 0
|
||||
bne _08092714
|
||||
adds r2, r3, 0
|
||||
_08092724:
|
||||
str r5, [r4, 0x8]
|
||||
mov r1, r12
|
||||
ldr r0, [r1]
|
||||
adds r0, r2
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r4, 0x4]
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0
|
||||
beq _0809279C
|
||||
movs r0, 0
|
||||
strh r0, [r4, 0x2]
|
||||
ldr r1, _08092784
|
||||
lsls r0, r2, 3
|
||||
adds r0, r1
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r4]
|
||||
movs r6, 0
|
||||
ldrsh r0, [r4, r6]
|
||||
cmp r0, 0
|
||||
ble _080927A0
|
||||
ldr r6, _08092788
|
||||
adds r2, r0, 0
|
||||
_08092752:
|
||||
movs r0, 0x58
|
||||
adds r1, r5, 0
|
||||
muls r1, r0
|
||||
ldr r0, [r6]
|
||||
adds r3, r0, r1
|
||||
ldrb r1, [r3]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08092792
|
||||
ldrb r0, [r3, 0x2]
|
||||
cmp r0, 0
|
||||
bne _08092776
|
||||
cmp r7, 0
|
||||
bne _0809278C
|
||||
ldrb r0, [r3, 0x4]
|
||||
cmp r0, 0x41
|
||||
bne _0809278C
|
||||
_08092776:
|
||||
ldrh r0, [r4]
|
||||
subs r0, 0x1
|
||||
strh r0, [r4]
|
||||
b _08092792
|
||||
.align 2, 0
|
||||
_08092780: .4byte gFriendAreas
|
||||
_08092784: .4byte gFriendAreaSettings
|
||||
_08092788: .4byte gUnknown_203B45C
|
||||
_0809278C:
|
||||
ldrh r0, [r4, 0x2]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x2]
|
||||
_08092792:
|
||||
subs r2, 0x1
|
||||
adds r5, 0x1
|
||||
cmp r2, 0
|
||||
bne _08092752
|
||||
b _080927A0
|
||||
_0809279C:
|
||||
strh r0, [r4, 0x2]
|
||||
strh r0, [r4]
|
||||
_080927A0:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80926F8
|
||||
|
||||
.align 2,0 @ Don't pad with nop
|
||||
|
||||
@@ -170,7 +170,7 @@ _0808CF36:
|
||||
bl sub_80980B4
|
||||
b _0808CFB8
|
||||
.align 2, 0
|
||||
_0808CF58: .4byte gUnknown_203B468
|
||||
_0808CF58: .4byte gFriendAreas
|
||||
_0808CF5C:
|
||||
movs r2, 0
|
||||
lsls r4, r7, 3
|
||||
@@ -522,7 +522,7 @@ sub_808D1DC:
|
||||
b _0808D268
|
||||
.align 2, 0
|
||||
_0808D204: .4byte gMonsterParameters
|
||||
_0808D208: .4byte gUnknown_203B468
|
||||
_0808D208: .4byte gFriendAreas
|
||||
_0808D20C:
|
||||
ldr r0, [r7]
|
||||
adds r0, r5
|
||||
@@ -603,7 +603,7 @@ sub_808D278:
|
||||
b _0808D2DA
|
||||
.align 2, 0
|
||||
_0808D29C: .4byte gMonsterParameters
|
||||
_0808D2A0: .4byte gUnknown_203B468
|
||||
_0808D2A0: .4byte gFriendAreas
|
||||
_0808D2A4:
|
||||
ldr r0, [r7]
|
||||
adds r0, r5
|
||||
|
||||
@@ -11265,7 +11265,7 @@ _0802F494:
|
||||
ldr r0, [r0, 0x10]
|
||||
adds r0, 0x20
|
||||
ldrb r0, [r0]
|
||||
bl sub_8092600
|
||||
bl GetFriendAreaStatus
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0802F4BC
|
||||
@@ -11286,7 +11286,7 @@ _0802F4BC:
|
||||
ldr r0, [r0, 0x10]
|
||||
adds r0, 0x20
|
||||
ldrb r0, [r0]
|
||||
bl sub_80925EC
|
||||
bl UnlockFriendArea
|
||||
movs r0, 0xCE
|
||||
bl sub_8011988
|
||||
ldr r0, _0802F4E8
|
||||
@@ -11304,7 +11304,7 @@ _0802F4F0:
|
||||
ldr r0, [r0, 0x10]
|
||||
adds r0, 0x20
|
||||
ldrb r0, [r0]
|
||||
bl sub_80925EC
|
||||
bl UnlockFriendArea
|
||||
movs r0, 0xCE
|
||||
bl sub_8011988
|
||||
ldr r0, _0802F518
|
||||
@@ -33033,7 +33033,7 @@ sub_803A3BC:
|
||||
_0803A3D6:
|
||||
lsls r0, r5, 24
|
||||
lsrs r0, 24
|
||||
bl sub_80925EC
|
||||
bl UnlockFriendArea
|
||||
adds r5, 0x1
|
||||
cmp r5, 0x39
|
||||
ble _0803A3D6
|
||||
@@ -33867,7 +33867,7 @@ sub_803AA34:
|
||||
str r0, [r1, 0x10]
|
||||
b _0803AA82
|
||||
.align 2, 0
|
||||
_0803AA64: .4byte gUnknown_203B468
|
||||
_0803AA64: .4byte gFriendAreas
|
||||
_0803AA68: .4byte gUnknown_203B3F4
|
||||
_0803AA6C: .4byte gUnknown_80E7EBC
|
||||
_0803AA70:
|
||||
@@ -34004,7 +34004,7 @@ _0803AB70:
|
||||
_0803AB7A:
|
||||
ldr r0, [r4]
|
||||
ldrb r0, [r0, 0x4]
|
||||
bl sub_80925EC
|
||||
bl UnlockFriendArea
|
||||
b _0803AB8E
|
||||
_0803AB84:
|
||||
ldr r0, [r4]
|
||||
|
||||
@@ -7732,11 +7732,19 @@ gUnknown_810983C: @ 810983C
|
||||
|
||||
.global gUnknown_81098A4
|
||||
gUnknown_81098A4: @ 81098A4
|
||||
.incbin "baserom.gba", 0x1098A4, 0x8
|
||||
.string "#c"
|
||||
.byte 0x4
|
||||
.string "%s#r\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_81098AC
|
||||
gUnknown_81098AC: @ 81098AC
|
||||
.incbin "baserom.gba", 0x1098AC, 0x18
|
||||
.string "%s#=%c#C"
|
||||
.byte 0x4
|
||||
.string "%s#R\0"
|
||||
.align 2,0
|
||||
.string "pksdir0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_81098C4
|
||||
gUnknown_81098C4: @ 81098C4
|
||||
@@ -7901,127 +7909,301 @@ gUnknown_810A580: @ 810A580
|
||||
gUnknown_810A808: @ 810A808
|
||||
.incbin "baserom.gba", 0x10A808, 0x288
|
||||
|
||||
.global gUnknown_810AA90
|
||||
gUnknown_810AA90: @ 810AA90
|
||||
.global gFriendAreaSettings
|
||||
gFriendAreaSettings: @ 810AA90
|
||||
@ replacing .incbin "baserom.gba", 0x0010aa90, 0x1d0
|
||||
.byte 0x00, 0x00
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x09, 0x00, 0x01, 0x00
|
||||
|
||||
.byte 0x09, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x7c, 0x15, 0x00, 0x00
|
||||
.byte 0x0a, 0x00, 0x01, 0x00
|
||||
|
||||
.byte 0x0a, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x94, 0x11, 0x00, 0x00
|
||||
.byte 0x04, 0x00, 0x01, 0x00
|
||||
|
||||
.byte 0x04, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x40, 0x1f, 0x00, 0x00
|
||||
.byte 0x0c, 0x00, 0x01, 0x00
|
||||
|
||||
.byte 0x0c, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x7c, 0x15, 0x00, 0x00
|
||||
.byte 0x01, 0x00, 0x03, 0x00
|
||||
|
||||
.byte 0x01, 0x00
|
||||
.byte 0x03
|
||||
.byte 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x01, 0x00, 0x03, 0x00
|
||||
|
||||
.byte 0x01, 0x00
|
||||
.byte 0x03
|
||||
.byte 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x05, 0x00, 0x01, 0x00
|
||||
|
||||
.byte 0x05, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x88, 0x13, 0x00, 0x00
|
||||
.byte 0x0c, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x0c, 0x00
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0x82, 0x00, 0x00, 0x00
|
||||
.byte 0x09, 0x00, 0x01, 0x00
|
||||
|
||||
.byte 0x09, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x88, 0x13, 0x00, 0x00
|
||||
.byte 0x06, 0x00, 0x02, 0x00
|
||||
|
||||
.byte 0x06, 0x00
|
||||
.byte 0x02
|
||||
.byte 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x01, 0x00, 0x01, 0x00
|
||||
|
||||
.byte 0x01, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x64, 0x19, 0x00, 0x00
|
||||
.byte 0x0d, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x0d, 0x00
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0x64, 0x00, 0x00, 0x00
|
||||
.byte 0x0c, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x0c, 0x00
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0x58, 0x02, 0x00, 0x00
|
||||
.byte 0x0d, 0x00, 0x02, 0x00
|
||||
|
||||
.byte 0x0d, 0x00
|
||||
.byte 0x02
|
||||
.byte 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x0f, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x0f, 0x00
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0xbc, 0x02, 0x00, 0x00
|
||||
.byte 0x0a, 0x00, 0x01, 0x00
|
||||
|
||||
.byte 0x0a, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x88, 0x13, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x01, 0x00
|
||||
|
||||
.byte 0x03, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x64, 0x19, 0x00, 0x00
|
||||
.byte 0x0e, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x0e, 0x00
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0x96, 0x00, 0x00, 0x00
|
||||
.byte 0x0c, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x0c, 0x00
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0x26, 0x02, 0x00, 0x00
|
||||
.byte 0x09, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x09, 0x00
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0x58, 0x02, 0x00, 0x00
|
||||
.byte 0x0f, 0x00, 0x01, 0x00
|
||||
|
||||
.byte 0x0f, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x88, 0x13, 0x00, 0x00
|
||||
.byte 0x07, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x07, 0x00
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0xf4, 0x01, 0x00, 0x00
|
||||
.byte 0x01, 0x00, 0x03, 0x00
|
||||
|
||||
.byte 0x01, 0x00
|
||||
.byte 0x03
|
||||
.byte 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x06, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x06, 0x00
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0xf4, 0x01, 0x00, 0x00
|
||||
.byte 0x09, 0x00, 0x01, 0x00
|
||||
|
||||
.byte 0x09, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x64, 0x19, 0x00, 0x00
|
||||
.byte 0x07, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x07, 0x00
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0xf4, 0x01, 0x00, 0x00
|
||||
.byte 0x09, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x09, 0x00
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0xf4, 0x01, 0x00, 0x00
|
||||
.byte 0x0a, 0x00, 0x01, 0x00
|
||||
|
||||
.byte 0x0a, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x7c, 0x15, 0x00, 0x00
|
||||
.byte 0x04, 0x00, 0x01, 0x00
|
||||
|
||||
.byte 0x04, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0xc4, 0x09, 0x00, 0x00
|
||||
.byte 0x04, 0x00, 0x01, 0x00
|
||||
|
||||
.byte 0x04, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0xac, 0x0d, 0x00, 0x00
|
||||
.byte 0x07, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x07, 0x00
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0xc4, 0x09, 0x00, 0x00
|
||||
.byte 0x06, 0x00, 0x01, 0x00
|
||||
.byte 0x34, 0x21, 0x00, 0x00
|
||||
.byte 0x0b, 0x00, 0x01, 0x00
|
||||
.byte 0x4c, 0x1d, 0x00, 0x00
|
||||
.byte 0x01, 0x00, 0x01, 0x00
|
||||
.byte 0x64, 0x19, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x02, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x04, 0x00, 0x02, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x0d, 0x00, 0x00, 0x00
|
||||
.byte 0x20, 0x03, 0x00, 0x00
|
||||
.byte 0x07, 0x00, 0x00, 0x00
|
||||
.byte 0xe8, 0x03, 0x00, 0x00
|
||||
.byte 0x0b, 0x00, 0x00, 0x00
|
||||
.byte 0xb0, 0x04, 0x00, 0x00
|
||||
.byte 0x0b, 0x00, 0x00, 0x00
|
||||
.byte 0xe8, 0x03, 0x00, 0x00
|
||||
.byte 0x06, 0x00, 0x00, 0x00
|
||||
.byte 0x58, 0x02, 0x00, 0x00
|
||||
.byte 0x07, 0x00, 0x01, 0x00
|
||||
.byte 0x4c, 0x1d, 0x00, 0x00
|
||||
.byte 0x07, 0x00, 0x01, 0x00
|
||||
.byte 0x34, 0x21, 0x00, 0x00
|
||||
.byte 0x0e, 0x00, 0x01, 0x00
|
||||
.byte 0x7c, 0x15, 0x00, 0x00
|
||||
.byte 0x0e, 0x00, 0x01, 0x00
|
||||
.byte 0x7c, 0x15, 0x00, 0x00
|
||||
.byte 0x06, 0x00, 0x01, 0x00
|
||||
.byte 0x40, 0x1f, 0x00, 0x00
|
||||
.byte 0x0d, 0x00, 0x03, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x07, 0x00, 0x01, 0x00
|
||||
.byte 0x28, 0x23, 0x00, 0x00
|
||||
.byte 0x05, 0x00, 0x01, 0x00
|
||||
.byte 0x1c, 0x25, 0x00, 0x00
|
||||
.byte 0x01, 0x00, 0x03, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x01, 0x00, 0x03, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x05, 0x00, 0x00, 0x00
|
||||
.byte 0xe8, 0x03, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0xe8, 0x03, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x03, 0x00
|
||||
.byte 0x4c, 0x1d, 0x00, 0x00
|
||||
.byte 0x02, 0x00, 0x01, 0x00
|
||||
.byte 0x1c, 0x25, 0x00, 0x00
|
||||
.byte 0x01, 0x00, 0x03, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x01, 0x00, 0x01, 0x00
|
||||
|
||||
.byte 0x06, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x34, 0x21, 0x00, 0x00
|
||||
|
||||
.global gUnknown_810AC60
|
||||
.byte 0x0b, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x4c, 0x1d, 0x00, 0x00
|
||||
|
||||
.byte 0x01, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x64, 0x19, 0x00, 0x00
|
||||
|
||||
.byte 0x03, 0x00
|
||||
.byte 0x02
|
||||
.byte 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x04, 0x00
|
||||
.byte 0x02
|
||||
.byte 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x0d, 0x00
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0x20, 0x03, 0x00, 0x00
|
||||
|
||||
.byte 0x07, 0x00
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0xe8, 0x03, 0x00, 0x00
|
||||
|
||||
.byte 0x0b, 0x00
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0xb0, 0x04, 0x00, 0x00
|
||||
|
||||
.byte 0x0b, 0x00
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0xe8, 0x03, 0x00, 0x00
|
||||
|
||||
.byte 0x06, 0x00
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0x58, 0x02, 0x00, 0x00
|
||||
|
||||
.byte 0x07, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x4c, 0x1d, 0x00, 0x00
|
||||
|
||||
.byte 0x07, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x34, 0x21, 0x00, 0x00
|
||||
|
||||
.byte 0x0e, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x7c, 0x15, 0x00, 0x00
|
||||
|
||||
.byte 0x0e, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x7c, 0x15, 0x00, 0x00
|
||||
|
||||
.byte 0x06, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x40, 0x1f, 0x00, 0x00
|
||||
|
||||
.byte 0x0d, 0x00
|
||||
.byte 0x03
|
||||
.byte 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x07, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x28, 0x23, 0x00, 0x00
|
||||
|
||||
.byte 0x05, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x1c, 0x25, 0x00, 0x00
|
||||
|
||||
.byte 0x01, 0x00
|
||||
.byte 0x03
|
||||
.byte 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x01, 0x00
|
||||
.byte 0x03
|
||||
.byte 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.byte 0x05, 0x00
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0xe8, 0x03, 0x00, 0x00
|
||||
|
||||
.byte 0x03, 0x00
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
.byte 0xe8, 0x03, 0x00, 0x00
|
||||
|
||||
.byte 0x03, 0x00
|
||||
.byte 0x03
|
||||
.byte 0x00
|
||||
.byte 0x4c, 0x1d, 0x00, 0x00
|
||||
|
||||
.byte 0x02, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x1c, 0x25, 0x00, 0x00
|
||||
|
||||
.byte 0x01, 0x00
|
||||
.byte 0x03
|
||||
.byte 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
@ Final Island
|
||||
.byte 0x01, 0x00
|
||||
.byte 0x01
|
||||
.byte 0x00
|
||||
.byte 0x34, 0x21, 0x00, 0x00
|
||||
|
||||
.global gUnknown_810AC60
|
||||
gUnknown_810AC60: @ 810AC60
|
||||
.byte 0x0C, 0x00
|
||||
|
||||
|
||||
60
include/constants/friend_area.h
Normal file
60
include/constants/friend_area.h
Normal file
@@ -0,0 +1,60 @@
|
||||
#define NUM_FRIEND_AREAS 58
|
||||
|
||||
#define NONE 0
|
||||
#define BOUNTIFUL_SEA 1
|
||||
#define TREASURE_SEA 2
|
||||
#define SERENE_SEA 3
|
||||
#define DEEP_SEA_FLOOR 4
|
||||
#define DEEP_SEA_CURRENT 5
|
||||
#define SEAFLOOR_CAVE 6
|
||||
#define SHALLOW_CAVE 7
|
||||
#define MT_DEEPGREEN 8
|
||||
#define MT_CLEFT 9
|
||||
#define MT_MOONVIEW 10
|
||||
#define RAINBOW_PEAK 11
|
||||
#define WILD_PLAINS 12
|
||||
#define BEAU_PLAINS 13
|
||||
#define SKY_BLUE_PLAINS 14
|
||||
#define SAFARI 15
|
||||
#define SCORCHED_PLAINS 16
|
||||
#define SACRED_FIELD 17
|
||||
#define MIST_RISE_FOREST 18
|
||||
#define FLYAWAY_FOREST 19
|
||||
#define OVERGROWN_FOREST 20
|
||||
#define ENERGETIC_FOREST 21
|
||||
#define MUSHROOM_FOREST 22
|
||||
#define HEALING_FOREST 23
|
||||
#define TRANSFORM_FOREST 24
|
||||
#define SECRETIVE_FOREST 25
|
||||
#define RUB_A_DUB_RIVER 26
|
||||
#define TADPOLE_POND 27
|
||||
#define TURTLESHELL_POND 28
|
||||
#define MYSTIC_LAKE 29
|
||||
#define WATERFALL_LAKE 30
|
||||
#define PEANUT_SWAMP 31
|
||||
#define POISON_SWAMP 32
|
||||
#define ECHO_CAVE 33
|
||||
#define CRYPTIC_CAVE 34
|
||||
#define DRAGON_CAVE 35
|
||||
#define BOULDER_CAVE 36
|
||||
#define JUNGLE 37
|
||||
#define DECRPEPIT_LAB 38
|
||||
#define MT_DISCIPLINE 39
|
||||
#define THUNDER_MEADOW 40
|
||||
#define POWER_PLANT 41
|
||||
#define CRATER 42
|
||||
#define FURNACE_DESERT 43
|
||||
#define AGED_CHAMBER_AN 44
|
||||
#define AGED_CHAMBER_O_EXCLAIM 45
|
||||
#define ANCIENT_RELIC 46
|
||||
#define DARKNESS_RIDGE 47
|
||||
#define FRIGID_CAVERN 48
|
||||
#define ICE_FLOE_BEACH 49
|
||||
#define VOLCANIC_PIT 50
|
||||
#define STRATOS_LOOKOUT 51
|
||||
#define RAVAGED_FIELD 52
|
||||
#define MAGNETIC_QUARRY 53
|
||||
#define LEGENDARY_ISLAND 54
|
||||
#define SOUTHERN_ISLAND 55
|
||||
#define ENCLOSED_ISLAND 56
|
||||
#define FINAL_ISLAND 57
|
||||
28
include/friend_area.h
Normal file
28
include/friend_area.h
Normal file
@@ -0,0 +1,28 @@
|
||||
#ifndef GUARD_FRIEND_AREA_H
|
||||
#define GUARD_FRIEND_AREA_H
|
||||
|
||||
struct FriendAreaSettings
|
||||
{
|
||||
s16 num_pokemon;
|
||||
u8 unlock_condition;
|
||||
// 0 - Shop (Story)
|
||||
// 1 - Shop (Story Post-game)
|
||||
// 2 - Wonder Mail
|
||||
// 3 - Legendary Request (unlocks when lengendary joins)
|
||||
u32 price;
|
||||
};
|
||||
|
||||
void LoadFriendAreas(void);
|
||||
u8 *GetBoughtFriendAreas(void);
|
||||
void InitializeFriendAreas(void);
|
||||
u8 sub_80923D4(s32 target);
|
||||
bool8 HasAllFriendAreas(void);
|
||||
bool8 GetFriendAreaStatus(u8 index);
|
||||
void UnlockFriendArea(u8 index);
|
||||
u32 GetFriendAreaDescription(u8 index);
|
||||
u8 GetFriendAreaUnlockCondition(u8 index);
|
||||
u32 GetFriendAreaPrice(u8 index);
|
||||
const char *GetFriendAreaName(u8 index);
|
||||
|
||||
|
||||
#endif
|
||||
@@ -17,7 +17,7 @@ struct UnkStruct_203B184 {
|
||||
/* 0x1C */ u32 unk1C;
|
||||
/* 0x20 */ u32 unk20;
|
||||
/* 0x24 */ u8 *unk24;
|
||||
/* 0x28 */ u8 *unk28;
|
||||
/* 0x28 */ u8 *BoughtFriendAreas;
|
||||
/* 0x2C */ u32 unk2C;
|
||||
/* 0x30 */ struct unkTimeStruct *unk30;
|
||||
u32 unk34;
|
||||
|
||||
@@ -121,7 +121,10 @@ SECTIONS {
|
||||
asm/code_808EAB0.o(.text);
|
||||
src/dungeon.o(.text);
|
||||
asm/code_809017C.o(.text);
|
||||
src/code_8092334.o(.text);
|
||||
src/code_809017C.o(.text);
|
||||
src/friend_area.o(.text);
|
||||
asm/friend_area_1.o(.text);
|
||||
src/friend_area_1.o(.text);
|
||||
asm/code_8092334.o(.text);
|
||||
src/code_8094F88.o(.text);
|
||||
asm/code_8095014.o(.text);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#include "global.h"
|
||||
#include "file_system.h"
|
||||
#include "friend_area.h"
|
||||
#include "input.h"
|
||||
|
||||
extern void InitHeap(void);
|
||||
@@ -13,7 +14,6 @@ extern void sub_8094F88(void);
|
||||
extern void sub_8094980(void);
|
||||
extern void sub_8094C14(void);
|
||||
extern void sub_8097F5C(void);
|
||||
extern void sub_80923A0(void);
|
||||
extern void sub_8090998(void);
|
||||
extern void sub_809207C(void);
|
||||
extern void LoadWazaParameters(void);
|
||||
@@ -102,7 +102,7 @@ void GameLoop(void)
|
||||
sub_8094980();
|
||||
sub_8094C14();
|
||||
sub_8097F5C();
|
||||
sub_80923A0();
|
||||
LoadFriendAreas();
|
||||
sub_8090998();
|
||||
sub_809207C();
|
||||
LoadWazaParameters();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "global.h"
|
||||
|
||||
struct unkStruct_8041D5C
|
||||
struct unkDungeon_8041D5C
|
||||
{
|
||||
u8 padding[0x70];
|
||||
u8 *unk70[100];
|
||||
@@ -12,28 +12,42 @@ struct unk_struct_8041F08
|
||||
u32 unk4;
|
||||
};
|
||||
|
||||
struct unkStruct_80420E8
|
||||
{
|
||||
u32 unk0;
|
||||
u32 unk4;
|
||||
u32 unk8;
|
||||
};
|
||||
|
||||
extern void sub_803ED30(u8, struct unkStruct_8041D5C *r0, u8, u8);
|
||||
extern void sub_804151C(u32 r0, u32 r1, u8 r2);
|
||||
extern void sub_80421C0(u32 r0, u32 r1);
|
||||
extern u8 sub_8042768(void);
|
||||
extern void sub_806CDD4(u32 r0, u8, u32);
|
||||
extern u8 sub_8071858(u32, u8);
|
||||
|
||||
extern void sub_8041550(u32 r0, u32, u32, u32);
|
||||
extern u8 *gUnknown_203B418;
|
||||
|
||||
|
||||
void sub_8041AD0(u32 r0)
|
||||
extern void sub_803ED30(u8, struct unkDungeon_8041D5C *r0, u8, u8);
|
||||
extern void sub_804151C(struct unkDungeon_8041D5C *r0, u32 r1, u8 r2);
|
||||
extern void sub_80416E0(struct unkDungeon_8041D5C *r0, u32, u32);
|
||||
extern u8 sub_8042768(struct unkDungeon_8041D5C *r0);
|
||||
extern void sub_806CDD4(struct unkDungeon_8041D5C *r0, u8, u32);
|
||||
extern u8 sub_8071858(struct unkDungeon_8041D5C *r0, u8);
|
||||
extern u32 sub_806F62C(u32);
|
||||
extern void sub_8083E38(u32);
|
||||
extern u8 sub_803F428(struct unkDungeon_8041D5C *r0);
|
||||
extern void sub_8041550(struct unkDungeon_8041D5C *r0, u32, u32, u32);
|
||||
|
||||
|
||||
void sub_80421C0(struct unkDungeon_8041D5C *r0, u16 r1);
|
||||
|
||||
|
||||
void sub_8041AD0(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0xA2 << 1, 1);
|
||||
}
|
||||
|
||||
void sub_8041AE0(u32 r0)
|
||||
void sub_8041AE0(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x143, 1);
|
||||
}
|
||||
|
||||
void sub_8041AF4(u32 r0)
|
||||
void sub_8041AF4(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x25, 1);
|
||||
sub_80421C0(r0, 0x197);
|
||||
@@ -43,7 +57,7 @@ void nullsub_57(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_8041B18(u32 r0)
|
||||
void sub_8041B18(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x141, 1);
|
||||
}
|
||||
@@ -56,7 +70,7 @@ void nullsub_59(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_8041B34(u32 r0)
|
||||
void sub_8041B34(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 7, 1);
|
||||
}
|
||||
@@ -65,7 +79,7 @@ void nullsub_60(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_8041B48(u32 r0)
|
||||
void sub_8041B48(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 4, 0);
|
||||
}
|
||||
@@ -74,16 +88,16 @@ void nullsub_61(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_8041B5C(u32 r0)
|
||||
void sub_8041B5C(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x171, 1);
|
||||
}
|
||||
|
||||
void nullsub_62(void)
|
||||
void nullsub_62(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_8041B74(u32 r0)
|
||||
void sub_8041B74(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x171, 0);
|
||||
}
|
||||
@@ -96,7 +110,7 @@ void nullsub_64(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_8041B90(u32 r0)
|
||||
void sub_8041B90(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0xD6 << 1, 0);
|
||||
}
|
||||
@@ -109,7 +123,7 @@ void nullsub_66(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_8041BA8(u32 r0)
|
||||
void sub_8041BA8(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 4, 1);
|
||||
}
|
||||
@@ -118,7 +132,7 @@ void nullsub_67(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_8041BBC(u32 r0)
|
||||
void sub_8041BBC(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0xD4 << 1, 1);
|
||||
}
|
||||
@@ -127,7 +141,7 @@ void nullsub_68(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_8041BD0(u32 r0, u8 r1)
|
||||
void sub_8041BD0(struct unkDungeon_8041D5C *r0, u8 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
@@ -136,22 +150,22 @@ void sub_8041BD0(u32 r0, u8 r1)
|
||||
sub_80421C0(r0, 0x1a5);
|
||||
}
|
||||
|
||||
void sub_8041BE8(u32 r0)
|
||||
void sub_8041BE8(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_80421C0(r0, 0xCB << 1);
|
||||
}
|
||||
|
||||
void sub_8041BF8(u32 r0)
|
||||
void sub_8041BF8(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_806CDD4(r0, 0xA, 8);
|
||||
}
|
||||
|
||||
void sub_8041C08(u32 r0)
|
||||
void sub_8041C08(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x1a7, 1);
|
||||
}
|
||||
|
||||
void sub_8041C1C(u32 r0)
|
||||
void sub_8041C1C(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x1a7, 1);
|
||||
}
|
||||
@@ -160,7 +174,7 @@ void nullsub_69(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_8041C34(u32 r0)
|
||||
void sub_8041C34(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x4C, 1);
|
||||
}
|
||||
@@ -173,22 +187,22 @@ void nullsub_71(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_8041C4C(u32 r0, u32 r1)
|
||||
void sub_8041C4C(struct unkDungeon_8041D5C *r0, u32 r1)
|
||||
{
|
||||
sub_804151C(r0, r1, 1);
|
||||
}
|
||||
|
||||
void sub_8041C58(u32 r0)
|
||||
void sub_8041C58(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x1a9, 1);
|
||||
}
|
||||
|
||||
void sub_8041C6C(u32 r0)
|
||||
void sub_8041C6C(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x9D << 1, 1);
|
||||
}
|
||||
|
||||
void sub_8041C7C(u32 r0)
|
||||
void sub_8041C7C(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x9D << 1, 1);
|
||||
}
|
||||
@@ -201,32 +215,32 @@ void nullsub_73(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_8041C94(u32 r0)
|
||||
void sub_8041C94(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x171, 1);
|
||||
}
|
||||
|
||||
void sub_8041CA8(u32 r0)
|
||||
void sub_8041CA8(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 7, 1);
|
||||
}
|
||||
|
||||
void sub_8041CB8(u32 r0)
|
||||
void sub_8041CB8(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x18b, 1);
|
||||
}
|
||||
|
||||
void sub_8041CCC(u32 r0)
|
||||
void sub_8041CCC(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0xC5 << 1, 1);
|
||||
}
|
||||
|
||||
void sub_8041CDC(u32 r0)
|
||||
void sub_8041CDC(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 5, 1);
|
||||
}
|
||||
|
||||
void sub_8041CEC(u32 r0)
|
||||
void sub_8041CEC(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_80421C0(r0, 0x19d);
|
||||
}
|
||||
@@ -235,7 +249,7 @@ void nullsub_74(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_8041D00(u32 r0, u32 r1)
|
||||
void sub_8041D00(struct unkDungeon_8041D5C *r0, struct unkDungeon_8041D5C *r1)
|
||||
{
|
||||
sub_804151C(r1, 0x2F, 1);
|
||||
sub_804151C(r0, 0x30, 1);
|
||||
@@ -265,12 +279,12 @@ void nullsub_80(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_8041D38(u32 r0)
|
||||
void sub_8041D38(struct unkDungeon_8041D5C * r0)
|
||||
{
|
||||
sub_804151C(r0, 0x21, 1);
|
||||
}
|
||||
|
||||
void sub_8041D48(u32 r0)
|
||||
void sub_8041D48(struct unkDungeon_8041D5C * r0)
|
||||
{
|
||||
sub_80421C0(r0, 0x191);
|
||||
}
|
||||
@@ -279,10 +293,10 @@ void nullsub_81(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_8041D5C(struct unkStruct_8041D5C *r0)
|
||||
void sub_8041D5C(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
u8 *temp;
|
||||
if(sub_8042768() == 0)
|
||||
if(sub_8042768(r0) == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -290,7 +304,7 @@ void sub_8041D5C(struct unkStruct_8041D5C *r0)
|
||||
sub_803ED30(temp[0x89 << 1] , r0, 1, 0xB);
|
||||
}
|
||||
|
||||
void sub_8041D84(u32 r0)
|
||||
void sub_8041D84(struct unkDungeon_8041D5C * r0)
|
||||
{
|
||||
sub_80421C0(r0, 0x19f);
|
||||
}
|
||||
@@ -303,12 +317,12 @@ void nullsub_83(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_8041D9C(u32 r0)
|
||||
void sub_8041D9C(struct unkDungeon_8041D5C * r0)
|
||||
{
|
||||
sub_804151C(r0, 0x131, 1);
|
||||
}
|
||||
|
||||
void sub_8041DB0(u32 r0)
|
||||
void sub_8041DB0(struct unkDungeon_8041D5C * r0)
|
||||
{
|
||||
sub_804151C(r0, 0x30, 1);
|
||||
}
|
||||
@@ -337,122 +351,93 @@ void nullsub_88(void)
|
||||
{
|
||||
}
|
||||
|
||||
#ifndef NONMATCHING
|
||||
NAKED
|
||||
#endif
|
||||
// TODO r1 is doing an lsr instead of an asr... maybe a signed arg?
|
||||
void sub_8041DD8(u32 r0, u16 r1)
|
||||
void sub_8041DD8(struct unkDungeon_8041D5C *r0, s16 r1)
|
||||
{
|
||||
#ifdef NONMATCHING
|
||||
u32 temp;
|
||||
temp = r1;
|
||||
|
||||
if(sub_8071858(r0, 0xE) != 0)
|
||||
{
|
||||
sub_804151C(r0, r1, 1);
|
||||
return;
|
||||
}
|
||||
sub_804151C(r0, 0xE, 1);
|
||||
#else
|
||||
asm_unified("\tpush {r4,r5,lr}\n"
|
||||
"\tadds r4, r0, 0\n"
|
||||
"\tlsls r1, 16\n"
|
||||
"\tasrs r5, r1, 16\n"
|
||||
"\tmovs r1, 0xE\n"
|
||||
"\tbl sub_8071858\n"
|
||||
"\tlsls r0, 24\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbeq _08041DF8\n"
|
||||
"\tadds r0, r4, 0\n"
|
||||
"\tadds r1, r5, 0\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_804151C\n"
|
||||
"\tb _08041E02\n"
|
||||
"_08041DF8:\n"
|
||||
"\tadds r0, r4, 0\n"
|
||||
"\tmovs r1, 0xE\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_804151C\n"
|
||||
"_08041E02:\n"
|
||||
"\tpop {r4,r5}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0");
|
||||
#endif
|
||||
sub_804151C(r0, temp, 1);
|
||||
else
|
||||
sub_804151C(r0, 0xE, 1);
|
||||
}
|
||||
|
||||
void nullsub_89(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_8041E0C(u32 r0)
|
||||
void sub_8041E0C(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x41, 1);
|
||||
}
|
||||
|
||||
void sub_8041E1C(u32 r0)
|
||||
void sub_8041E1C(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x8F << 1, 1);
|
||||
sub_80421C0(r0, 0xCE << 1);
|
||||
}
|
||||
|
||||
void sub_8041E3C(u32 r0)
|
||||
void sub_8041E3C(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0xD7 << 1, 1);
|
||||
}
|
||||
|
||||
void sub_8041E4C(u32 r0)
|
||||
void sub_8041E4C(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x1b1, 1);
|
||||
}
|
||||
|
||||
void sub_8041E60(u32 r0)
|
||||
void sub_8041E60(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x1a9, 1);
|
||||
}
|
||||
|
||||
void sub_8041E74(u32 r0)
|
||||
void sub_8041E74(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0xC9 << 1, 1);
|
||||
}
|
||||
|
||||
void sub_8041E84(u32 r0)
|
||||
void sub_8041E84(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0xC7 << 1, 1);
|
||||
}
|
||||
|
||||
void sub_8041E94(u32 r0)
|
||||
void sub_8041E94(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0xC8 << 1, 1);
|
||||
}
|
||||
|
||||
void sub_8041EA4(u32 r0)
|
||||
void sub_8041EA4(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x15, 1);
|
||||
}
|
||||
|
||||
void sub_8041EB4(u32 r0)
|
||||
void sub_8041EB4(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x171, 1);
|
||||
}
|
||||
|
||||
void sub_8041EC8(u32 r0)
|
||||
void sub_8041EC8(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_80421C0(r0, 0x197);
|
||||
}
|
||||
|
||||
void sub_8041ED8(u32 r0)
|
||||
void sub_8041ED8(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_80421C0(r0, 0x197);
|
||||
}
|
||||
|
||||
void sub_8041EE8(u32 r0)
|
||||
void sub_8041EE8(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x15, 1);
|
||||
}
|
||||
|
||||
void sub_8041EF8(u32 r0)
|
||||
void sub_8041EF8(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0xF, 1);
|
||||
}
|
||||
|
||||
void sub_8041F08(u32 r0)
|
||||
void sub_8041F08(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
volatile struct unk_struct_8041F08 temp;
|
||||
temp.unk0 = 2;
|
||||
@@ -464,7 +449,7 @@ void nullsub_90(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_8041F28(u32 r0, u32 r1)
|
||||
void sub_8041F28(struct unkDungeon_8041D5C *r0, u32 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
@@ -476,7 +461,7 @@ void sub_8041F28(u32 r0, u32 r1)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8041F4C(u32 r0, u32 r1)
|
||||
void sub_8041F4C(struct unkDungeon_8041D5C *r0, u32 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
@@ -488,7 +473,7 @@ void sub_8041F4C(u32 r0, u32 r1)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8041F70(u32 r0, u32 r1)
|
||||
void sub_8041F70(struct unkDungeon_8041D5C *r0, u32 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
@@ -500,7 +485,7 @@ void sub_8041F70(u32 r0, u32 r1)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8041F94(u32 r0, u32 r1)
|
||||
void sub_8041F94(struct unkDungeon_8041D5C *r0, u32 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
@@ -512,7 +497,7 @@ void sub_8041F94(u32 r0, u32 r1)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8041FB4(u32 r0, u32 r1)
|
||||
void sub_8041FB4(struct unkDungeon_8041D5C *r0, u32 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
@@ -524,7 +509,7 @@ void sub_8041FB4(u32 r0, u32 r1)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8041FD8(u32 r0, u32 r1)
|
||||
void sub_8041FD8(struct unkDungeon_8041D5C *r0, u32 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
@@ -536,7 +521,7 @@ void sub_8041FD8(u32 r0, u32 r1)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8041FFC(u32 r0, u32 r1)
|
||||
void sub_8041FFC(struct unkDungeon_8041D5C *r0, u32 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
@@ -548,7 +533,7 @@ void sub_8041FFC(u32 r0, u32 r1)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_804201C(u32 r0, u32 r1)
|
||||
void sub_804201C(struct unkDungeon_8041D5C *r0, u32 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
@@ -560,7 +545,7 @@ void sub_804201C(u32 r0, u32 r1)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8042040(u32 r0, u32 r1)
|
||||
void sub_8042040(struct unkDungeon_8041D5C *r0, u32 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
@@ -572,7 +557,7 @@ void sub_8042040(u32 r0, u32 r1)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8042060(u32 r0, u32 r1)
|
||||
void sub_8042060(struct unkDungeon_8041D5C *r0, u32 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
@@ -584,7 +569,7 @@ void sub_8042060(u32 r0, u32 r1)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8042080(u32 r0, u32 r1)
|
||||
void sub_8042080(struct unkDungeon_8041D5C *r0, u32 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
{
|
||||
@@ -596,7 +581,7 @@ void sub_8042080(u32 r0, u32 r1)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80420A0(u32 r0, u32 r1)
|
||||
void sub_80420A0(struct unkDungeon_8041D5C *r0, u32 r1)
|
||||
{
|
||||
sub_804151C(r0, 0x143, 1);
|
||||
}
|
||||
@@ -605,12 +590,12 @@ void nullsub_91(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_80420B8(u32 r0, u32 r1)
|
||||
void sub_80420B8(struct unkDungeon_8041D5C *r0, u32 r1)
|
||||
{
|
||||
sub_804151C(r0, 0x19, 1);
|
||||
}
|
||||
|
||||
void sub_80420C8(u32 r0)
|
||||
void sub_80420C8(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
volatile struct unk_struct_8041F08 temp;
|
||||
temp.unk0 = 2;
|
||||
@@ -621,3 +606,100 @@ void sub_80420C8(u32 r0)
|
||||
void nullsub_92(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_80420E8(struct unkDungeon_8041D5C *r0, struct unkStruct_80420E8 *r1)
|
||||
{
|
||||
u32 temp;
|
||||
u32 arg;
|
||||
volatile struct unk_struct_8041F08 temp_1;
|
||||
temp = r1->unk8;
|
||||
if(gUnknown_203B418[0x16d] != 0)
|
||||
temp = sub_806F62C(r1->unk8);
|
||||
switch(temp)
|
||||
{
|
||||
default:
|
||||
case 0:
|
||||
arg = 8;
|
||||
break;
|
||||
case 1:
|
||||
arg = 9;
|
||||
break;
|
||||
case 2:
|
||||
arg = 10;
|
||||
break;
|
||||
case 3:
|
||||
arg = 11;
|
||||
break;
|
||||
}
|
||||
temp_1.unk0 = 0;
|
||||
temp_1.unk4 = 1;
|
||||
sub_8041550(r0, arg, 1, 3);
|
||||
}
|
||||
|
||||
void sub_8042148(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_80421C0(r0, 0x1a7);
|
||||
sub_804151C(r0, 0x9F << 1, 1);
|
||||
}
|
||||
|
||||
void nullsub_93()
|
||||
{
|
||||
}
|
||||
|
||||
void sub_804216C(u32 r0, struct unkDungeon_8041D5C *r1, u32 r2)
|
||||
{
|
||||
if(r2 == 1)
|
||||
sub_804151C(r1, 0xF8, 1);
|
||||
else
|
||||
sub_804151C(r1, 0xF9, 1);
|
||||
}
|
||||
|
||||
void sub_804218C(u32 r0, struct unkDungeon_8041D5C *r1)
|
||||
{
|
||||
sub_804151C(r1, 0x2A, 1);
|
||||
}
|
||||
|
||||
void sub_804219C(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_80416E0(r0, 0x90, 1);
|
||||
}
|
||||
|
||||
void sub_80421AC(u32 r0, struct unkDungeon_8041D5C * r1)
|
||||
{
|
||||
sub_804151C(r1, 0x167, 1);
|
||||
}
|
||||
|
||||
void sub_80421C0(struct unkDungeon_8041D5C *r0, u16 r1)
|
||||
{
|
||||
if(r0 == NULL)
|
||||
sub_8083E38(r1);
|
||||
else
|
||||
if(sub_8042768(r0) != 0)
|
||||
sub_8083E38(r1);
|
||||
}
|
||||
|
||||
void sub_80421EC(struct unkDungeon_8041D5C *r0, u16 r1)
|
||||
{
|
||||
if(sub_803F428(r0) != 0)
|
||||
sub_8083E38(r1);
|
||||
}
|
||||
|
||||
void sub_8042208(struct unkDungeon_8041D5C *r0, u8 r1)
|
||||
{
|
||||
if(r1 == 0)
|
||||
sub_8083E38(0xA9 << 1);
|
||||
else if(r1 == 1)
|
||||
sub_8083E38(0x151);
|
||||
else
|
||||
sub_8083E38(0xA8 << 1);
|
||||
}
|
||||
|
||||
void sub_8042238(u32 r0, struct unkDungeon_8041D5C *r1)
|
||||
{
|
||||
u8 *temp;
|
||||
temp = *r1->unk70;
|
||||
if(temp[6] != 0)
|
||||
sub_8083E38(0x157);
|
||||
else
|
||||
sub_8083E38(0xAB << 1);
|
||||
}
|
||||
|
||||
@@ -1,145 +1,153 @@
|
||||
#include "global.h"
|
||||
|
||||
extern void sub_804151C(u32 r0, u32 r1, u8 r2);
|
||||
extern void sub_803E708(u32 r0, u32 r1);
|
||||
extern void sub_80416A4(u32 r0, u32 r1, u32 r2);
|
||||
extern void sub_80421C0(u32 r0, u32 r1);
|
||||
struct unkDungeon_8041D5C
|
||||
{
|
||||
u8 padding[0x70];
|
||||
u8 *unk70[100];
|
||||
};
|
||||
|
||||
void sub_80428A0(u32 r0)
|
||||
|
||||
extern void sub_804151C(struct unkDungeon_8041D5C *r0, u32 r1, u8 r2);
|
||||
extern void sub_803E708(u32 r0, u32 r1);
|
||||
extern void sub_80416A4(struct unkDungeon_8041D5C *r0, u32 r1, u32 r2);
|
||||
extern void sub_80421C0(struct unkDungeon_8041D5C *r0, u16 r1);
|
||||
|
||||
|
||||
void sub_80428A0(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x29, 1);
|
||||
}
|
||||
|
||||
void sub_80428B0(u32 r0)
|
||||
void sub_80428B0(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x1a9, 0);
|
||||
}
|
||||
|
||||
|
||||
void sub_80428C4(u32 r0)
|
||||
void sub_80428C4(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x1a9, 0);
|
||||
}
|
||||
|
||||
|
||||
void sub_80428D8(u32 r0)
|
||||
void sub_80428D8(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x1a9, 0);
|
||||
}
|
||||
|
||||
void sub_80428EC(u32 r0)
|
||||
void sub_80428EC(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x1a9, 0);
|
||||
}
|
||||
|
||||
void sub_8042900(u32 r0)
|
||||
void sub_8042900(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0xD4 << 1, 0);
|
||||
}
|
||||
|
||||
void sub_8042910(u32 r0)
|
||||
void sub_8042910(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x29, 0);
|
||||
}
|
||||
|
||||
void sub_8042920(u32 r0)
|
||||
void sub_8042920(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x48, 0);
|
||||
}
|
||||
|
||||
void sub_8042930(u32 r0)
|
||||
void sub_8042930(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0xD3 << 1, 1);
|
||||
}
|
||||
|
||||
void sub_8042940(u32 r0)
|
||||
void sub_8042940(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0xC7 << 1, 0);
|
||||
}
|
||||
|
||||
void sub_8042950(u32 r0)
|
||||
void sub_8042950(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0xD8 << 1, 1);
|
||||
sub_803E708(0xA, 0x42);
|
||||
}
|
||||
|
||||
void sub_8042968(u32 r0)
|
||||
void sub_8042968(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0xD4 << 1, 0);
|
||||
}
|
||||
|
||||
void sub_8042978(u32 r0)
|
||||
void sub_8042978(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x1a9, 0);
|
||||
}
|
||||
|
||||
void sub_804298C(u32 r0)
|
||||
void sub_804298C(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x1a9, 0);
|
||||
}
|
||||
|
||||
void sub_80429A0(u32 r0)
|
||||
void sub_80429A0(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x199, 0);
|
||||
}
|
||||
|
||||
void sub_80429B4(u32 r0)
|
||||
void sub_80429B4(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x1ab, 0);
|
||||
}
|
||||
|
||||
void sub_80429C8(u32 r0)
|
||||
void sub_80429C8(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x4, 1);
|
||||
}
|
||||
|
||||
void sub_80429D8(u32 r0)
|
||||
void sub_80429D8(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x8F << 1, 1);
|
||||
}
|
||||
|
||||
void sub_80429E8(u32 r0)
|
||||
void sub_80429E8(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x11d, 1);
|
||||
}
|
||||
|
||||
void sub_80429FC(u32 r0)
|
||||
void sub_80429FC(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_80416A4(r0, 0xCF << 1, 1);
|
||||
sub_80421C0(0, 0xD4);
|
||||
sub_80421C0(NULL, 0xD4);
|
||||
}
|
||||
|
||||
void sub_8042A14(u32 r0)
|
||||
void sub_8042A14(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_80416A4(r0, 0x36, 1);
|
||||
}
|
||||
|
||||
void sub_8042A24(u32 r0)
|
||||
void sub_8042A24(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x15, 1);
|
||||
}
|
||||
|
||||
void sub_8042A34(u32 r0)
|
||||
void sub_8042A34(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_80416A4(r0, 0x9F << 1, 0);
|
||||
}
|
||||
|
||||
void sub_8042A44(u32 r0)
|
||||
void sub_8042A44(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0xDA << 1, 1);
|
||||
}
|
||||
|
||||
void sub_8042A54(u32 r0)
|
||||
void sub_8042A54(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_80416A4(r0, 0x37, 1);
|
||||
}
|
||||
|
||||
void sub_8042A64(u32 r0)
|
||||
void sub_8042A64(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_80416A4(r0, 0x29, 1);
|
||||
}
|
||||
|
||||
void sub_8042A74(u32 r0)
|
||||
void sub_8042A74(struct unkDungeon_8041D5C *r0)
|
||||
{
|
||||
sub_804151C(r0, 0x18, 1);
|
||||
}
|
||||
|
||||
@@ -1,10 +1,21 @@
|
||||
#include "global.h"
|
||||
|
||||
extern void sub_808DE50(void* r0, void * r1, u32 r2, u32 r3);
|
||||
struct unkStruct_203B45C
|
||||
{
|
||||
u8 unk0;
|
||||
u8 padding1;
|
||||
u8 unk2;
|
||||
u8 padding2;
|
||||
u8 unk4;
|
||||
u8 array[0x53];
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B45C *gUnknown_203B45C;
|
||||
|
||||
extern void sub_808DE50(void* r0, struct unkStruct_203B45C *r1, u32 r2, u32 r3);
|
||||
|
||||
extern void * gUnknown_203B45C;
|
||||
|
||||
void sub_808DE30(void* r0, u32 r1)
|
||||
{
|
||||
sub_808DE50(r0, gUnknown_203B45C + (r1 * 0x58), r1, r1 * 0x58);
|
||||
sub_808DE50(r0, &gUnknown_203B45C[r1], r1, r1 * sizeof(struct unkStruct_203B45C));
|
||||
}
|
||||
|
||||
42
src/code_809017C.c
Normal file
42
src/code_809017C.c
Normal file
@@ -0,0 +1,42 @@
|
||||
#include "global.h"
|
||||
|
||||
extern u32 gUnformattedTypeStrings[]; // unformatted type names
|
||||
extern u32 gFormattedTypeStrings[]; // formatted type names
|
||||
|
||||
extern u8 gUnknown_810AC7C[];
|
||||
extern u8 gUnknown_810AC6A[];
|
||||
|
||||
extern u8 *gAbilityNames[];
|
||||
extern u8 *AbilityDescriptions[];
|
||||
|
||||
|
||||
u32 GetUnformattedTypeString(u8 type)
|
||||
{
|
||||
return gUnformattedTypeStrings[type];
|
||||
}
|
||||
|
||||
u32 GetFormattedTypeString(u8 type)
|
||||
{
|
||||
return gFormattedTypeStrings[type];
|
||||
}
|
||||
|
||||
u8 sub_8092354(u8 index)
|
||||
{
|
||||
return gUnknown_810AC7C[index];
|
||||
}
|
||||
|
||||
u8 sub_8092364(u8 index)
|
||||
{
|
||||
return gUnknown_810AC6A[index];
|
||||
}
|
||||
|
||||
void sub_8092374(char *r0, u8 index)
|
||||
{
|
||||
strncpy(r0, gAbilityNames[index], 0x50);
|
||||
}
|
||||
|
||||
u8 *GetAbilityDescription(u8 index)
|
||||
{
|
||||
return AbilityDescriptions[index];
|
||||
}
|
||||
|
||||
@@ -1,84 +0,0 @@
|
||||
#include "global.h"
|
||||
|
||||
#define NUM_FRIEND_AREAS 58
|
||||
|
||||
extern u32 gUnformattedTypeStrings[]; // unformatted type names
|
||||
extern u32 gFormattedTypeStrings[]; // formatted type names
|
||||
|
||||
extern u8 gUnknown_810AC7C[];
|
||||
extern u8 gUnknown_810AC6A[];
|
||||
|
||||
extern u8 *gAbilityNames[];
|
||||
extern u8 *AbilityDescriptions[];
|
||||
|
||||
extern u8 gBoughtFriendAreas[NUM_FRIEND_AREAS];
|
||||
extern u8 *gUnknown_203B468;
|
||||
|
||||
extern s16 gUnknown_810AA90[];
|
||||
|
||||
u32 GetUnformattedTypeString(u8 type)
|
||||
{
|
||||
return gUnformattedTypeStrings[type];
|
||||
}
|
||||
|
||||
u32 GetFormattedTypeString(u8 type)
|
||||
{
|
||||
return gFormattedTypeStrings[type];
|
||||
}
|
||||
|
||||
u8 sub_8092354(u8 r0)
|
||||
{
|
||||
return gUnknown_810AC7C[r0];
|
||||
}
|
||||
|
||||
u8 sub_8092364(u8 r0)
|
||||
{
|
||||
return gUnknown_810AC6A[r0];
|
||||
}
|
||||
|
||||
void sub_8092374(char *r0, u8 r1)
|
||||
{
|
||||
strncpy(r0, gAbilityNames[r1], 0x50);
|
||||
}
|
||||
|
||||
u8 *sub_8092390(u8 r0)
|
||||
{
|
||||
return AbilityDescriptions[r0];
|
||||
}
|
||||
|
||||
void sub_80923A0(void)
|
||||
{
|
||||
gUnknown_203B468 = gBoughtFriendAreas;
|
||||
}
|
||||
|
||||
u8 *sub_80923B0(void)
|
||||
{
|
||||
return gBoughtFriendAreas;
|
||||
}
|
||||
|
||||
void sub_80923B8(void)
|
||||
{
|
||||
s32 counter;
|
||||
for(counter = 0; counter < NUM_FRIEND_AREAS; counter++)
|
||||
{
|
||||
gUnknown_203B468[counter] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
u8 sub_80923D4(s32 target)
|
||||
{
|
||||
s32 counter;
|
||||
s32 index;
|
||||
s32 sum = 0;
|
||||
index = 0;
|
||||
for(counter = 0; counter < NUM_FRIEND_AREAS; counter++)
|
||||
{
|
||||
sum += gUnknown_810AA90[index];
|
||||
if(sum > target)
|
||||
{
|
||||
return counter;
|
||||
}
|
||||
index += 4;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
722
src/friend_area.c
Normal file
722
src/friend_area.c
Normal file
@@ -0,0 +1,722 @@
|
||||
#include "global.h"
|
||||
#include "constants/friend_area.h"
|
||||
#include "friend_area.h"
|
||||
|
||||
extern bool8 gBoughtFriendAreas[NUM_FRIEND_AREAS];
|
||||
extern bool8 *gFriendAreas;
|
||||
|
||||
|
||||
extern struct FriendAreaSettings gFriendAreaSettings[NUM_FRIEND_AREAS];
|
||||
|
||||
struct unkStruct_203B45C
|
||||
{
|
||||
// size: 0x58?
|
||||
u16 unk0;
|
||||
s16 unk2;
|
||||
u8 unk4[0x24];
|
||||
u8 unk28;
|
||||
u8 unk29[0x2f];
|
||||
};
|
||||
|
||||
struct unkFriendAreaStruct
|
||||
{
|
||||
// size: 0x18
|
||||
u32 unk0;
|
||||
u32 unk4;
|
||||
u32 padding[4];
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B45C gUnknown_203B45C[];
|
||||
|
||||
extern struct FriendAreaSettings gFriendAreaSettings[58];
|
||||
extern bool8 *gFriendAreas;
|
||||
|
||||
extern u32 gFriendAreaDescriptions[];
|
||||
extern const char *gFriendAreaNames[];
|
||||
extern u32 gUnknown_81098A4;
|
||||
|
||||
extern void sub_800D158(u8 *buffer, u32 *r1, const char *r2, ...);
|
||||
extern void sub_8090FEC(u32, u32 *r1, u32);
|
||||
|
||||
|
||||
// TODO uncomment when all references have been moved
|
||||
//static struct FriendAreaSettings gFriendAreaSettings[NUM_FRIEND_AREAS] =
|
||||
//{
|
||||
// [NONE] = {
|
||||
// .num_pokemon = 0,
|
||||
// .unlock_condition = 0,
|
||||
// .price = 0,
|
||||
// },
|
||||
// [BOUNTIFUL_SEA] = {
|
||||
// .num_pokemon = 9,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 5500,
|
||||
// },
|
||||
// [TREASURE_SEA] = {
|
||||
// .num_pokemon = 10,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 4500,
|
||||
// },
|
||||
// [SERENE_SEA] = {
|
||||
// .num_pokemon = 4,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 8000,
|
||||
// },
|
||||
// [DEEP_SEA_FLOOR] = {
|
||||
// .num_pokemon = 12,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 5500,
|
||||
// },
|
||||
// [DEEP_SEA_CURRENT] = {
|
||||
// .num_pokemon = 1,
|
||||
// .unlock_condition = 3,
|
||||
// .price = 0,
|
||||
// },
|
||||
// [SEAFLOOR_CAVE] = {
|
||||
// .num_pokemon = 0,
|
||||
// .unlock_condition = 0,
|
||||
// .price = 0,
|
||||
// },
|
||||
// [SHALLOW_CAVE] = {
|
||||
// .num_pokemon = 5,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 5000,
|
||||
// },
|
||||
// [MT_DEEPGREEN] = {
|
||||
// .num_pokemon = 12,
|
||||
// .unlock_condition = 0,
|
||||
// .price = 130,
|
||||
// },
|
||||
// [MT_CLEFT] = {
|
||||
// .num_pokemon = 9,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 5000,
|
||||
// },
|
||||
// [MT_MOONVIEW] = {
|
||||
// .num_pokemon = 6,
|
||||
// .unlock_condition = 2,
|
||||
// .price = 0,
|
||||
// },
|
||||
// [RAINBOW_PEAK] = {
|
||||
// .num_pokemon = 1,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 6500,
|
||||
// },
|
||||
// [WILD_PLAINS] = {
|
||||
// .num_pokemon = 13,
|
||||
// .unlock_condition = 0,
|
||||
// .price = 100,
|
||||
// },
|
||||
// [BEAU_PLAINS] = {
|
||||
// .num_pokemon = 12,
|
||||
// .unlock_condition = 0,
|
||||
// .price = 600,
|
||||
// },
|
||||
// [SKY_BLUE_PLAINS] = {
|
||||
// .num_pokemon = 13,
|
||||
// .unlock_condition = 2,
|
||||
// .price = 0,
|
||||
// },
|
||||
// [SAFARI] = {
|
||||
// .num_pokemon = 15,
|
||||
// .unlock_condition = 0,
|
||||
// .price = 700,
|
||||
// },
|
||||
// [SCORCHED_PLAINS] = {
|
||||
// .num_pokemon = 10,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 5000,
|
||||
// },
|
||||
// [SACRED_FIELD] = {
|
||||
// .num_pokemon = 3,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 6500
|
||||
// },
|
||||
// [MIST_RISE_FOREST] = {
|
||||
// .num_pokemon = 14,
|
||||
// .unlock_condition = 0,
|
||||
// .price = 150
|
||||
// },
|
||||
// [FLYAWAY_FOREST] = {
|
||||
// .num_pokemon = 12,
|
||||
// .unlock_condition = 0,
|
||||
// .price = 550
|
||||
// },
|
||||
// [OVERGROWN_FOREST] = {
|
||||
// .num_pokemon = 9,
|
||||
// .unlock_condition = 0,
|
||||
// .price = 600
|
||||
// },
|
||||
// [ENERGETIC_FOREST] = {
|
||||
// .num_pokemon = 15,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 5000
|
||||
// },
|
||||
// [MUSHROOM_FOREST] = {
|
||||
// .num_pokemon = 7,
|
||||
// .unlock_condition = 0,
|
||||
// .price = 500
|
||||
// },
|
||||
// [HEALING_FOREST] = {
|
||||
// .num_pokemon = 1,
|
||||
// .unlock_condition = 3,
|
||||
// .price = 0
|
||||
// },
|
||||
// [TRANSFORM_FOREST] = {
|
||||
// .num_pokemon = 6,
|
||||
// .unlock_condition = 0,
|
||||
// .price = 500
|
||||
// },
|
||||
// [SECRETIVE_FOREST] = {
|
||||
// .num_pokemon = 9,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 6500
|
||||
// },
|
||||
// [RUB_A_DUB_RIVER] = {
|
||||
// .num_pokemon = 7,
|
||||
// .unlock_condition = 0,
|
||||
// .price = 500
|
||||
// },
|
||||
// [TADPOLE_POND] = {
|
||||
// .num_pokemon = 9,
|
||||
// .unlock_condition = 0,
|
||||
// .price = 500
|
||||
// },
|
||||
// [TURTLESHELL_POND] = {
|
||||
// .num_pokemon = 10,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 5500
|
||||
// },
|
||||
// [MYSTIC_LAKE] = {
|
||||
// .num_pokemon = 4,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 2500
|
||||
// },
|
||||
// [WATERFALL_LAKE] = {
|
||||
// .num_pokemon = 4,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 3500
|
||||
// },
|
||||
// [PEANUT_SWAMP] = {
|
||||
// .num_pokemon = 7,
|
||||
// .unlock_condition = 0,
|
||||
// .price = 2500
|
||||
// },
|
||||
// [POISON_SWAMP] = {
|
||||
// .num_pokemon = 6,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 8500
|
||||
// },
|
||||
// [ECHO_CAVE] = {
|
||||
// .num_pokemon = 11,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 7500
|
||||
// },
|
||||
// [CRYPTIC_CAVE] = {
|
||||
// .num_pokemon = 1,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 6500
|
||||
// },
|
||||
// [DRAGON_CAVE] = {
|
||||
// .num_pokemon = 3,
|
||||
// .unlock_condition = 2,
|
||||
// .price = 0
|
||||
// },
|
||||
// [BOULDER_CAVE] = {
|
||||
// .num_pokemon = 4,
|
||||
// .unlock_condition = 2,
|
||||
// .price = 0
|
||||
// },
|
||||
// [JUNGLE] = {
|
||||
// .num_pokemon = 13,
|
||||
// .unlock_condition = 0,
|
||||
// .price = 800
|
||||
// },
|
||||
// [DECRPEPIT_LAB] = {
|
||||
// .num_pokemon = 7,
|
||||
// .unlock_condition = 0,
|
||||
// .price = 1000
|
||||
// },
|
||||
// [MT_DISCIPLINE] = {
|
||||
// .num_pokemon = 11,
|
||||
// .unlock_condition = 0,
|
||||
// .price = 1200
|
||||
// },
|
||||
// [THUNDER_MEADOW] = {
|
||||
// .num_pokemon = 11,
|
||||
// .unlock_condition = 0,
|
||||
// .price = 1000
|
||||
// },
|
||||
// [POWER_PLANT] = {
|
||||
// .num_pokemon = 6,
|
||||
// .unlock_condition = 0,
|
||||
// .price = 600
|
||||
// },
|
||||
// [CRATER] = {
|
||||
// .num_pokemon = 7,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 7500
|
||||
// },
|
||||
// [FURNACE_DESERT] = {
|
||||
// .num_pokemon = 7,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 8500
|
||||
// },
|
||||
// [AGED_CHAMBER_AN] = {
|
||||
// .num_pokemon = 14,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 5500
|
||||
// },
|
||||
// [AGED_CHAMBER_O_EXCLAIM] = {
|
||||
// .num_pokemon = 14,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 5500
|
||||
// },
|
||||
// [ANCIENT_RELIC] = {
|
||||
// .num_pokemon = 6,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 8000
|
||||
// },
|
||||
// [DARKNESS_RIDGE] = {
|
||||
// .num_pokemon = 13,
|
||||
// .unlock_condition = 3,
|
||||
// .price = 0
|
||||
// },
|
||||
// [FRIGID_CAVERN] = {
|
||||
// .num_pokemon = 7,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 9000
|
||||
// },
|
||||
// [ICE_FLOE_BEACH] = {
|
||||
// .num_pokemon = 5,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 9500
|
||||
// },
|
||||
// [VOLCANIC_PIT] = {
|
||||
// .num_pokemon = 1,
|
||||
// .unlock_condition = 3,
|
||||
// .price = 0
|
||||
// },
|
||||
// [STRATOS_LOOKOUT] = {
|
||||
// .num_pokemon = 1,
|
||||
// .unlock_condition = 3,
|
||||
// .price = 0
|
||||
// },
|
||||
// [RAVAGED_FIELD] = {
|
||||
// .num_pokemon = 5,
|
||||
// .unlock_condition = 0,
|
||||
// .price = 1000
|
||||
// },
|
||||
// [MAGNETIC_QUARRY] = {
|
||||
// .num_pokemon = 3,
|
||||
// .unlock_condition = 0,
|
||||
// .price = 1000
|
||||
// },
|
||||
// [LEGENDARY_ISLAND] = {
|
||||
// .num_pokemon = 3,
|
||||
// .unlock_condition = 3,
|
||||
// .price = 7500
|
||||
// },
|
||||
// [SOUTHERN_ISLAND] = {
|
||||
// .num_pokemon = 2,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 9500
|
||||
// },
|
||||
// [ENCLOSED_ISLAND] = {
|
||||
// .num_pokemon = 1,
|
||||
// .unlock_condition = 3,
|
||||
// .price = 0
|
||||
// },
|
||||
// [FINAL_ISLAND] = {
|
||||
// .num_pokemon = 1,
|
||||
// .unlock_condition = 1,
|
||||
// .price = 8500
|
||||
// },
|
||||
//};
|
||||
|
||||
void LoadFriendAreas(void)
|
||||
{
|
||||
gFriendAreas = gBoughtFriendAreas;
|
||||
}
|
||||
|
||||
bool8 *GetBoughtFriendAreas(void)
|
||||
{
|
||||
return gBoughtFriendAreas;
|
||||
}
|
||||
|
||||
void InitializeFriendAreas(void)
|
||||
{
|
||||
s32 counter;
|
||||
for(counter = 0; counter < NUM_FRIEND_AREAS; counter++)
|
||||
{
|
||||
gFriendAreas[counter] = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
u8 sub_80923D4(s32 target)
|
||||
{
|
||||
s32 counter;
|
||||
s32 sum = 0;
|
||||
for(counter = 0; counter < NUM_FRIEND_AREAS; counter++)
|
||||
{
|
||||
sum += gFriendAreaSettings[counter].num_pokemon;
|
||||
if(sum > target)
|
||||
{
|
||||
return counter;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
void sub_8092404(u8 r0, u16 *r1, bool8 r2, bool8 r3)
|
||||
{
|
||||
s32 counter;
|
||||
bool32 flag;
|
||||
s32 r6;
|
||||
r6 = 0;
|
||||
for(counter = 0; counter <= 412; counter++)
|
||||
{
|
||||
if((u8)(gUnknown_203B45C[counter].unk0) & 1)
|
||||
{
|
||||
if(((u8)gUnknown_203B45C[counter].unk2 == 0) || r2)
|
||||
{
|
||||
flag = (u8)gUnknown_203B45C[counter].unk4[0] == 65;
|
||||
if(!flag || r3)
|
||||
{
|
||||
if(sub_80923D4(counter) == r0)
|
||||
{
|
||||
if(r6 <= 15)
|
||||
{
|
||||
r1[r6] = counter;
|
||||
r6++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
r1[r6] = 0xffff;
|
||||
}
|
||||
#else
|
||||
NAKED void sub_8092404(u8 r0, u16 *r1, bool8 r2, bool8 r3)
|
||||
{
|
||||
asm_unified("\tpush {r4-r7,lr}\n"
|
||||
"\tmov r7, r10\n"
|
||||
"\tmov r6, r9\n"
|
||||
"\tmov r5, r8\n"
|
||||
"\tpush {r5-r7}\n"
|
||||
"\tmov r10, r1\n"
|
||||
"\tlsls r0, 24\n"
|
||||
"\tlsrs r0, 24\n"
|
||||
"\tmov r9, r0\n"
|
||||
"\tlsls r2, 24\n"
|
||||
"\tlsrs r2, 24\n"
|
||||
"\tmov r8, r2\n"
|
||||
"\tlsls r3, 24\n"
|
||||
"\tlsrs r7, r3, 24\n"
|
||||
"\tmovs r6, 0\n"
|
||||
"\tmovs r4, 0\n"
|
||||
"\tmov r5, r10\n"
|
||||
"_08092426:\n"
|
||||
"\tmovs r0, 0x58\n"
|
||||
"\tadds r1, r4, 0\n"
|
||||
"\tmuls r1, r0\n"
|
||||
"\tldr r0, _08092494\n"
|
||||
"\tldr r0, [r0]\n"
|
||||
"\tadds r2, r1, r0\n"
|
||||
"\tldrb r1, [r2]\n"
|
||||
"\tmovs r0, 0x1\n"
|
||||
"\tands r0, r1\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbeq _08092472\n"
|
||||
"\tldrb r0, [r2, 0x2]\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbeq _08092448\n"
|
||||
"\tmov r0, r8\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbeq _08092472\n"
|
||||
"_08092448:\n"
|
||||
"\tmovs r1, 0\n"
|
||||
"\tldrb r0, [r2, 0x4]\n"
|
||||
"\tcmp r0, 0x41\n"
|
||||
"\tbne _08092452\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"_08092452:\n"
|
||||
"\tcmp r1, 0\n"
|
||||
"\tbeq _0809245A\n"
|
||||
"\tcmp r7, 0\n"
|
||||
"\tbeq _08092472\n"
|
||||
"_0809245A:\n"
|
||||
"\tadds r0, r4, 0\n"
|
||||
"\tbl sub_80923D4\n"
|
||||
"\tlsls r0, 24\n"
|
||||
"\tlsrs r0, 24\n"
|
||||
"\tcmp r0, r9\n"
|
||||
"\tbne _08092472\n"
|
||||
"\tcmp r6, 0xF\n"
|
||||
"\tbgt _08092472\n"
|
||||
"\tstrh r4, [r5]\n"
|
||||
"\tadds r5, 0x2\n"
|
||||
"\tadds r6, 0x1\n"
|
||||
"_08092472:\n"
|
||||
"\tadds r4, 0x1\n"
|
||||
"\tmovs r0, 0xCE\n"
|
||||
"\tlsls r0, 1\n"
|
||||
"\tcmp r4, r0\n"
|
||||
"\tble _08092426\n"
|
||||
"\tlsls r0, r6, 1\n"
|
||||
"\tadd r0, r10\n"
|
||||
"\tldr r2, _08092498\n"
|
||||
"\tadds r1, r2, 0\n"
|
||||
"\tstrh r1, [r0]\n"
|
||||
"\tpop {r3-r5}\n"
|
||||
"\tmov r8, r3\n"
|
||||
"\tmov r9, r4\n"
|
||||
"\tmov r10, r5\n"
|
||||
"\tpop {r4-r7}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08092494: .4byte gUnknown_203B45C\n"
|
||||
"_08092498: .4byte 0x0000ffff");
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef NONMATCHING
|
||||
void sub_809249C(u8 index, u8 clear)
|
||||
{
|
||||
s32 counter;
|
||||
bool32 flag;
|
||||
u8 temp8;
|
||||
u8 neg8;
|
||||
|
||||
if(!gFriendAreas[index])
|
||||
return;
|
||||
for(counter = 0; counter <= 412; counter++)
|
||||
{
|
||||
if((u8)(gUnknown_203B45C[counter].unk0) & 1)
|
||||
{
|
||||
if(sub_80923D4(counter) == index)
|
||||
{
|
||||
flag = (u8)gUnknown_203B45C[counter].unk4[0] == 65;
|
||||
if(!flag)
|
||||
{
|
||||
temp8 = (u8)gUnknown_203B45C[counter].unk2;
|
||||
neg8 = -temp8;
|
||||
neg8 |= temp8;
|
||||
// still tries to left shift before the right shift..
|
||||
neg8 >>= 7;
|
||||
if(neg8 != 0)
|
||||
{
|
||||
clear = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_203B45C[counter].unk0 = neg8;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(clear)
|
||||
{
|
||||
gFriendAreas[index] = FALSE;
|
||||
}
|
||||
}
|
||||
#else
|
||||
NAKED void sub_809249C(u8 index, u8 clear)
|
||||
{
|
||||
asm_unified("\tpush {r4-r7,lr}\n"
|
||||
"\tlsls r0, 24\n"
|
||||
"\tlsrs r6, r0, 24\n"
|
||||
"\tlsls r1, 24\n"
|
||||
"\tlsrs r7, r1, 24\n"
|
||||
"\tldr r0, _080924F8\n"
|
||||
"\tldr r0, [r0]\n"
|
||||
"\tadds r0, r6\n"
|
||||
"\tldrb r0, [r0]\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbeq _0809251A\n"
|
||||
"\tmovs r5, 0\n"
|
||||
"_080924B4:\n"
|
||||
"\tldr r2, _080924FC\n"
|
||||
"\tmovs r0, 0x58\n"
|
||||
"\tadds r1, r5, 0\n"
|
||||
"\tmuls r1, r0\n"
|
||||
"\tldr r0, [r2]\n"
|
||||
"\tadds r4, r0, r1\n"
|
||||
"\tldrb r1, [r4]\n"
|
||||
"\tmovs r0, 0x1\n"
|
||||
"\tands r0, r1\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbeq _08092502\n"
|
||||
"\tadds r0, r5, 0\n"
|
||||
"\tbl sub_80923D4\n"
|
||||
"\tlsls r0, 24\n"
|
||||
"\tlsrs r0, 24\n"
|
||||
"\tcmp r0, r6\n"
|
||||
"\tbne _08092502\n"
|
||||
"\tmovs r1, 0\n"
|
||||
"\tldrb r0, [r4, 0x4]\n"
|
||||
"\tcmp r0, 0x41\n"
|
||||
"\tbne _080924E2\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"_080924E2:\n"
|
||||
"\tcmp r1, 0\n"
|
||||
"\tbne _080924F2\n"
|
||||
"\tldrb r1, [r4, 0x2]\n"
|
||||
"\tnegs r0, r1\n"
|
||||
"\torrs r0, r1\n"
|
||||
"\tlsrs r0, 31\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbeq _08092500\n"
|
||||
"_080924F2:\n"
|
||||
"\tmovs r7, 0\n"
|
||||
"\tb _08092502\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_080924F8: .4byte gFriendAreas\n"
|
||||
"_080924FC: .4byte gUnknown_203B45C\n"
|
||||
"_08092500:\n"
|
||||
"\tstrh r0, [r4]\n"
|
||||
"_08092502:\n"
|
||||
"\tadds r5, 0x1\n"
|
||||
"\tmovs r0, 0xCE\n"
|
||||
"\tlsls r0, 1\n"
|
||||
"\tcmp r5, r0\n"
|
||||
"\tble _080924B4\n"
|
||||
"\tcmp r7, 0\n"
|
||||
"\tbeq _0809251A\n"
|
||||
"\tldr r0, _08092520\n"
|
||||
"\tldr r0, [r0]\n"
|
||||
"\tadds r0, r6\n"
|
||||
"\tmovs r1, 0\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"_0809251A:\n"
|
||||
"\tpop {r4-r7}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08092520: .4byte gFriendAreas");
|
||||
}
|
||||
#endif
|
||||
|
||||
const char *GetFriendAreaName(u8 index)
|
||||
{
|
||||
return gFriendAreaNames[index];
|
||||
}
|
||||
|
||||
u8 GetFriendAreaUnlockCondition(u8 index)
|
||||
{
|
||||
return gFriendAreaSettings[index].unlock_condition;
|
||||
}
|
||||
|
||||
u32 GetFriendAreaPrice(u8 index)
|
||||
{
|
||||
return gFriendAreaSettings[index].price;
|
||||
}
|
||||
|
||||
void sub_8092558(u8 *buffer, u8 index)
|
||||
{
|
||||
// colors the friend area name green and prints to buffer?
|
||||
sub_800D158(buffer, &gUnknown_81098A4, gFriendAreaNames[index]);
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
void sub_8092578(u8 *buffer, u8 index, u8 r2)
|
||||
{
|
||||
// I think this is when we buy the friend area from wigglytuff
|
||||
struct unkFriendAreaStruct temp;
|
||||
if(r2)
|
||||
{
|
||||
sub_8090FEC(gFriendAreaSettings[index].price, &(temp.unk4), 1);
|
||||
// TODO: There's some stack storage here in the middle calling this func
|
||||
// add r0, sp, 0x4
|
||||
// str r0, [sp]
|
||||
//temp.unk0 = temp.unk4;
|
||||
sub_800D158(buffer, &gUnknown_81098AC, gFriendAreaNames[index], 96);
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy(buffer, gFriendAreaNames[index]);
|
||||
}
|
||||
}
|
||||
#else
|
||||
NAKED void sub_8092578(u8 *buffer, u8 index, u8 r2)
|
||||
{
|
||||
asm_unified("\tpush {r4,r5,lr}\n"
|
||||
"\tsub sp, 0x18\n"
|
||||
"\tadds r5, r0, 0\n"
|
||||
"\tlsls r1, 24\n"
|
||||
"\tlsrs r4, r1, 24\n"
|
||||
"\tlsls r2, 24\n"
|
||||
"\tcmp r2, 0\n"
|
||||
"\tbeq _080925C0\n"
|
||||
"\tldr r0, _080925B4\n"
|
||||
"\tlsls r1, r4, 3\n"
|
||||
"\tadds r0, 0x4\n"
|
||||
"\tadds r1, r0\n"
|
||||
"\tldr r0, [r1]\n"
|
||||
"\tadd r1, sp, 0x4\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_8090FEC\n"
|
||||
"\tldr r1, _080925B8\n"
|
||||
"\tldr r2, _080925BC\n"
|
||||
"\tlsls r0, r4, 2\n"
|
||||
"\tadds r0, r2\n"
|
||||
"\tldr r2, [r0]\n"
|
||||
"\tadd r0, sp, 0x4\n"
|
||||
"\tstr r0, [sp]\n"
|
||||
"\tadds r0, r5, 0\n"
|
||||
"\tmovs r3, 0x60\n"
|
||||
"\tbl sub_800D158\n"
|
||||
"\tb _080925CE\n"
|
||||
"\t.align 2, 0\n"
|
||||
"\t_080925B4: .4byte gFriendAreaSettings\n"
|
||||
"\t_080925B8: .4byte gUnknown_81098AC\n"
|
||||
"\t_080925BC: .4byte gFriendAreaNames\n"
|
||||
"\t_080925C0:\n"
|
||||
"\tldr r0, _080925D8\n"
|
||||
"\tlsls r1, r4, 2\n"
|
||||
"\tadds r1, r0\n"
|
||||
"\tldr r1, [r1]\n"
|
||||
"\tadds r0, r5, 0\n"
|
||||
"\tbl strcpy\n"
|
||||
"\t_080925CE:\n"
|
||||
"\tadd sp, 0x18\n"
|
||||
"\tpop {r4,r5}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"\t_080925D8: .4byte gFriendAreaNames");
|
||||
}
|
||||
#endif
|
||||
|
||||
u32 GetFriendAreaDescription(u8 index)
|
||||
{
|
||||
return gFriendAreaDescriptions[index];
|
||||
}
|
||||
|
||||
void UnlockFriendArea(u8 index)
|
||||
{
|
||||
gFriendAreas[index] = TRUE;
|
||||
}
|
||||
|
||||
bool8 GetFriendAreaStatus(u8 index)
|
||||
{
|
||||
return gFriendAreas[index];
|
||||
}
|
||||
|
||||
bool8 HasAllFriendAreas(void)
|
||||
{
|
||||
s32 counter;
|
||||
for(counter = 1; counter < NUM_FRIEND_AREAS; counter++)
|
||||
{
|
||||
if(!gFriendAreas[counter])
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
90
src/friend_area_1.c
Normal file
90
src/friend_area_1.c
Normal file
@@ -0,0 +1,90 @@
|
||||
#include "global.h"
|
||||
#include "constants/friend_area.h"
|
||||
|
||||
extern bool8 *gFriendAreas;
|
||||
extern void sub_809485C(u32 *r0, u32 r1, u32 r2);
|
||||
extern void sub_8094924(u32 *r0, u32 *r1, u32);
|
||||
extern void nullsub_102(u32 *r0);
|
||||
extern void sub_809488C(u32 *r0, u32 *r1, u32 r2);
|
||||
extern void sub_809486C(u32 *r0, u32 r1, u32 r2);
|
||||
|
||||
#ifdef NONMATCHING
|
||||
u32 sub_80927A8(u32 r0, u32 r1)
|
||||
{
|
||||
u32 temp[5];
|
||||
s32 counter;
|
||||
|
||||
sub_809486C(temp, r0, r1);
|
||||
for(counter = 0; counter < NUM_FRIEND_AREAS; counter++)
|
||||
{
|
||||
// TODO moves into R1 for the load else it matches
|
||||
if(!gFriendAreas[counter])
|
||||
temp[4] = gFriendAreas[counter];
|
||||
else
|
||||
temp[4] = -1;
|
||||
sub_809488C(temp, &(temp[4]), 1);
|
||||
}
|
||||
nullsub_102(temp);
|
||||
return temp[2];
|
||||
}
|
||||
#else
|
||||
NAKED u32 sub_80927A8(u32 r0, u32 r1)
|
||||
{
|
||||
asm_unified("\tpush {r4,r5,lr}\n"
|
||||
"\tsub sp, 0x14\n"
|
||||
"\tadds r3, r0, 0\n"
|
||||
"\tadds r2, r1, 0\n"
|
||||
"\tmov r0, sp\n"
|
||||
"\tadds r1, r3, 0\n"
|
||||
"\tbl sub_809486C\n"
|
||||
"\tmovs r4, 0\n"
|
||||
"\tadd r5, sp, 0x10\n"
|
||||
"_080927BC:\n"
|
||||
"\tldr r0, _080927F0\n"
|
||||
"\tldr r0, [r0]\n"
|
||||
"\tadds r0, r4\n"
|
||||
"\tldrb r0, [r0]\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbeq _080927CC\n"
|
||||
"\tmovs r0, 0x1\n"
|
||||
"\tnegs r0, r0\n"
|
||||
"_080927CC:\n"
|
||||
"\tstr r0, [sp, 0x10]\n"
|
||||
"\tmov r0, sp\n"
|
||||
"\tadds r1, r5, 0\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_809488C\n"
|
||||
"\tadds r4, 0x1\n"
|
||||
"\tcmp r4, 0x39\n"
|
||||
"\tble _080927BC\n"
|
||||
"\tmov r0, sp\n"
|
||||
"\tbl nullsub_102\n"
|
||||
"\tldr r0, [sp, 0x8]\n"
|
||||
"\tadd sp, 0x14\n"
|
||||
"\tpop {r4,r5}\n"
|
||||
"\tpop {r1}\n"
|
||||
"\tbx r1\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_080927F0: .4byte gFriendAreas");
|
||||
}
|
||||
#endif
|
||||
|
||||
u32 sub_80927F4(u32 r0, u32 r1)
|
||||
{
|
||||
u32 temp[5];
|
||||
s32 counter;
|
||||
|
||||
sub_809485C(temp, r0, r1);
|
||||
for(counter = 0; counter < NUM_FRIEND_AREAS; counter++)
|
||||
{
|
||||
sub_8094924(temp, &(temp[4]), 1);
|
||||
// It's setting whether we have the friend area or not
|
||||
if((temp[4] & 1))
|
||||
gFriendAreas[counter] = TRUE;
|
||||
else
|
||||
gFriendAreas[counter] = FALSE;
|
||||
}
|
||||
nullsub_102(temp);
|
||||
return temp[2];
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#include "global.h"
|
||||
#include "save.h"
|
||||
#include "friend_area.h"
|
||||
|
||||
extern struct UnkStruct_203B184 *gUnknown_203B184;
|
||||
extern struct unkTimeStruct *gUnknown_203B47C;
|
||||
@@ -28,7 +29,7 @@ extern struct unk_203B188 *gUnknown_203B188;
|
||||
extern u32 *gUnknown_203B45C;
|
||||
extern u32 *gUnknown_203B460;
|
||||
extern u32 gUnknown_203B464;
|
||||
extern u8 *gUnknown_203B468;
|
||||
extern u8 *gFriendAreas;
|
||||
extern u32 gUnknown_203B46C;
|
||||
extern u8 *gUnknown_203B480;
|
||||
extern u8 *gUnknown_203B484;
|
||||
@@ -46,8 +47,6 @@ extern u32 *sub_80909D0(void);
|
||||
extern void sub_80909D8(void);
|
||||
extern u32 sub_809208C(void);
|
||||
extern void sub_8092094(void);
|
||||
extern u8 *sub_80923B0(void);
|
||||
extern void sub_80923B8(void);
|
||||
extern u32 sub_8094990(void);
|
||||
extern void sub_8094998(u8 r0);
|
||||
extern u8 *sub_80950F8(void);
|
||||
@@ -184,7 +183,7 @@ void sub_80122F4(void)
|
||||
|
||||
void sub_8012300(void)
|
||||
{
|
||||
sub_80923B8();
|
||||
InitializeFriendAreas();
|
||||
sub_808CE08();
|
||||
sub_80909D8();
|
||||
sub_8092094();
|
||||
@@ -218,7 +217,7 @@ void sub_8012334(struct UnkStruct_203B184 *r0)
|
||||
gUnknown_203B464 = r0->unk1C;
|
||||
gUnknown_203B494 = r0->unk20;
|
||||
gUnknown_203B498 = r0->unk24;
|
||||
gUnknown_203B468 = r0->unk28;
|
||||
gFriendAreas = r0->BoughtFriendAreas;
|
||||
gUnknown_203B46C = r0->unk2C;
|
||||
gUnknown_203B47C = r0->unk30;
|
||||
return;
|
||||
@@ -233,7 +232,7 @@ void sub_8012334(struct UnkStruct_203B184 *r0)
|
||||
gUnknown_203B464 = sub_809208C();
|
||||
gUnknown_203B494 = sub_8097680();
|
||||
gUnknown_203B498 = sub_8097F6C();
|
||||
gUnknown_203B468 = sub_80923B0();
|
||||
gFriendAreas = GetBoughtFriendAreas();
|
||||
gUnknown_203B46C = sub_8094990();
|
||||
gUnknown_203B47C = sub_8094FA0();
|
||||
|
||||
|
||||
@@ -398,7 +398,7 @@ gUnknown_202DE58 = .; /* 202DE58 */
|
||||
gUnknown_202DEA8 = .; /* 202DEA8 */
|
||||
. += 0xF0;
|
||||
|
||||
gUnknown_202DF98 = .; /* 202DF98 ( Parner Nickname? ) */
|
||||
gUnknown_202DF98 = .; /* 202DF98 ( Available Pokemon Names ) */
|
||||
. += 0x50;
|
||||
|
||||
gUnknown_202DFE8 = .; /* 202DFE8 */
|
||||
|
||||
@@ -593,7 +593,7 @@ gUnknown_203B460 = .; /* 203B460 */
|
||||
gUnknown_203B464 = .; /* 203B464 */
|
||||
. += 0x4;
|
||||
|
||||
gUnknown_203B468 = .; /* 203B468 */
|
||||
gFriendAreas = .; /* 203B468 */
|
||||
. += 0x4;
|
||||
|
||||
gUnknown_203B46C = .; /* 203B46C */
|
||||
|
||||
Reference in New Issue
Block a user