summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeth Barberee <seth.barberee@gmail.com>2021-12-01 16:33:06 -0600
committerGitHub <noreply@github.com>2021-12-01 14:33:06 -0800
commit4fc272fea6bc7332fae031ebeb12362cff1c35de (patch)
tree88092c6da3a6bb741caceab54f5372aee4ad5bae
parentfd8720b75c56ef3f641e6c5abf6c446929c824b9 (diff)
No wifi + 2 days on train = more decomp (#80)
* No wifi + 2 days on train = more decomp * layin some more * one func, one file
-rw-r--r--asm/code_801AFA4.s51
-rw-r--r--asm/code_801B3C0.s35
-rw-r--r--asm/code_8040094.s2
-rw-r--r--asm/code_80428A0.s2
-rw-r--r--asm/code_80521D0.s8
-rw-r--r--asm/code_8057824.s18
-rw-r--r--asm/code_8070D04.s79
-rw-r--r--asm/code_8071518.s196
-rw-r--r--asm/code_80718D8.s49
-rw-r--r--asm/code_80739DC.s185
-rw-r--r--asm/code_8075BA4.s52
-rw-r--r--asm/code_80848F0.s247
-rw-r--r--asm/code_8086A3C.s46
-rw-r--r--asm/code_80958E8.s16
-rw-r--r--asm/jirachi_wish.s34
-rw-r--r--asm/memory_1.s45
-rw-r--r--asm/rescue_password_menu.s2
-rw-r--r--asm/wonder_mail_2.s327
-rw-r--r--asm/wonder_mail_3.s580
-rw-r--r--data/data_80F4278.s12
-rw-r--r--include/constants/iq_skill.h1
-rw-r--r--include/constants/wonder_mail.h9
-rw-r--r--include/dungeon_entity.h3
-rw-r--r--include/dungeon_global_data.h3
-rw-r--r--include/exclusive_pokemon.h3
-rw-r--r--include/item.h1
-rw-r--r--include/map.h17
-rw-r--r--include/memory.h30
-rw-r--r--include/wonder_mail.h62
-rwxr-xr-xld_script.txt2
-rw-r--r--src/code_801AFA4.c20
-rw-r--r--src/code_801C620.c30
-rw-r--r--src/code_8040094.c37
-rw-r--r--src/code_80521D0.c21
-rw-r--r--src/code_80521D0_1.c158
-rw-r--r--src/code_8057824_1.c526
-rw-r--r--src/code_80869E4.c20
-rw-r--r--src/code_8086A3C.c37
-rw-r--r--src/code_80958E8.c14
-rw-r--r--src/dungeon_ai.c21
-rw-r--r--src/dungeon_ai_items.c23
-rw-r--r--src/dungeon_capabilities_1.c23
-rw-r--r--src/dungeon_movement.c144
-rw-r--r--src/dungeon_pokemon_attributes.c71
-rw-r--r--src/dungeon_util.c16
-rw-r--r--src/dungeon_util_1.c120
-rw-r--r--src/items.c18
-rw-r--r--src/memory_mid.c29
-rw-r--r--src/music_pre.c8
-rw-r--r--src/pokemon_3.c32
-rw-r--r--src/rescue_team_info.c19
-rw-r--r--src/thank_you_wonder_mail.c42
-rw-r--r--src/wonder_mail.c56
-rw-r--r--src/wonder_mail_2.c167
-rw-r--r--src/wonder_mail_3.c4
-rw-r--r--src/wonder_mail_802DF88.c316
56 files changed, 1605 insertions, 2484 deletions
diff --git a/asm/code_801AFA4.s b/asm/code_801AFA4.s
deleted file mode 100644
index 7485f58..0000000
--- a/asm/code_801AFA4.s
+++ /dev/null
@@ -1,51 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_801B374
-sub_801B374:
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0801B3A8
- ldr r4, [r1]
- bl GetItemMove
- lsls r0, 16
- lsrs r6, r0, 16
- movs r5, 0
-_0801B388:
- ldrh r0, [r4]
- lsrs r0, 1
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0801B3AC
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- adds r0, r6, 0
- bl CanMonLearnMove
- lsls r0, 24
- cmp r0, 0
- beq _0801B3AC
- movs r0, 0
- b _0801B3BA
- .align 2, 0
-_0801B3A8: .4byte gRecruitedPokemonRef
-_0801B3AC:
- adds r5, 0x1
- adds r4, 0x58
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- ble _0801B388
- movs r0, 0x1
-_0801B3BA:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_801B374
-
- .align 2,0
diff --git a/asm/code_801B3C0.s b/asm/code_801B3C0.s
index 173e4d6..435b731 100644
--- a/asm/code_801B3C0.s
+++ b/asm/code_801B3C0.s
@@ -465,7 +465,7 @@ sub_801BEEC:
lsls r0, 16
asrs r5, r0, 16
adds r0, r5, 0
- bl sub_801C5F0
+ bl HasNoAvailIQSkills
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0
@@ -854,7 +854,7 @@ _0801C1EA:
adds r0, 0x20
adds r1, 0x28
ldrb r1, [r1]
- bl sub_808EBF4
+ bl ToggleIQSkill
movs r0, 0x1
bl sub_801BFB4
b _0801C21E
@@ -899,7 +899,7 @@ sub_801C244:
lsls r0, 16
asrs r0, 16
adds r4, r0, 0
- bl sub_801C5F0
+ bl HasNoAvailIQSkills
lsls r0, 24
cmp r0, 0
beq _0801C25E
@@ -1349,33 +1349,4 @@ _0801C5E8: .4byte gUnknown_80DBE1C
_0801C5EC: .4byte gUnknown_203B23C
thumb_func_end sub_801C4C8
- thumb_func_start sub_801C5F0
-sub_801C5F0:
- push {lr}
- sub sp, 0x18
- lsls r0, 16
- asrs r0, 16
- ldr r2, _0801C614
- movs r1, 0x58
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- movs r2, 0x14
- ldrsh r1, [r0, r2]
- mov r0, sp
- bl GetNumAvailableIQSkills
- cmp r0, 0
- beq _0801C618
- movs r0, 0
- b _0801C61A
- .align 2, 0
-_0801C614: .4byte gRecruitedPokemonRef
-_0801C618:
- movs r0, 0x1
-_0801C61A:
- add sp, 0x18
- pop {r1}
- bx r1
- thumb_func_end sub_801C5F0
-
.align 2,0
diff --git a/asm/code_8040094.s b/asm/code_8040094.s
index b4488f1..34ae163 100644
--- a/asm/code_8040094.s
+++ b/asm/code_8040094.s
@@ -445,7 +445,7 @@ _0804049E:
beq _080404C4
_080404B2:
adds r0, r4, 0
- bl sub_8045104
+ bl GetTrapData
ldr r1, _080404FC
ldrb r0, [r0]
adds r0, r1
diff --git a/asm/code_80428A0.s b/asm/code_80428A0.s
index 6fc7011..bb8af3b 100644
--- a/asm/code_80428A0.s
+++ b/asm/code_80428A0.s
@@ -2422,7 +2422,7 @@ _08043E6E:
cmp r0, 0x2
bne _08043EA0
adds r0, r4, 0
- bl sub_8045104
+ bl GetTrapData
adds r1, r0, 0
ldrb r0, [r1]
cmp r0, 0x1B
diff --git a/asm/code_80521D0.s b/asm/code_80521D0.s
index 0ff1da5..5156376 100644
--- a/asm/code_80521D0.s
+++ b/asm/code_80521D0.s
@@ -690,8 +690,8 @@ sub_80528F4:
bx r0
thumb_func_end sub_80528F4
- thumb_func_start sub_8052910
-sub_8052910:
+ thumb_func_start DisplayDungeonDialogue
+DisplayDungeonDialogue:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -987,7 +987,7 @@ _08052B72:
bx r0
.align 2, 0
_08052B88: .4byte gUnknown_80F7AEA
- thumb_func_end sub_8052910
+ thumb_func_end DisplayDungeonDialogue
thumb_func_start sub_8052B8C
sub_8052B8C:
@@ -4954,7 +4954,7 @@ _08054F40:
adds r1, r5, 0
mov r2, r8
mov r3, r9
- bl sub_805BEA0
+ bl LuminousOrbAction
b _080554BA
_08054F4E:
adds r0, r7, 0
diff --git a/asm/code_8057824.s b/asm/code_8057824.s
index c2cf874..c623f0d 100644
--- a/asm/code_8057824.s
+++ b/asm/code_8057824.s
@@ -9158,14 +9158,14 @@ sub_805BE90:
bx r1
thumb_func_end sub_805BE90
- thumb_func_start sub_805BEA0
-sub_805BEA0:
+ thumb_func_start LuminousOrbAction
+LuminousOrbAction:
push {lr}
- bl sub_804002C
+ bl HandleLuminousOrbAction
movs r0, 0x1
pop {r1}
bx r1
- thumb_func_end sub_805BEA0
+ thumb_func_end LuminousOrbAction
thumb_func_start sub_805BEAC
sub_805BEAC:
@@ -9353,7 +9353,7 @@ _0805BFF0:
cmp r0, 0x2
bne _0805C028
adds r0, r4, 0
- bl sub_8045104
+ bl GetTrapData
ldrb r0, [r0]
cmp r0, 0x11
beq _0805C028
@@ -14721,7 +14721,7 @@ _0805EEB8:
.4byte _0805EF52
_0805EED0:
adds r0, r4, 0
- bl sub_8045104
+ bl GetTrapData
adds r6, r0, 0
movs r0, 0
mov r8, r0
@@ -19934,7 +19934,7 @@ _08061994:
bl sub_8083654
ldrb r1, [r0, 0x9]
add r0, sp, 0x4
- bl sub_808EB0C
+ bl GetAvailTacticsforLvl
movs r6, 0x1
negs r6, r6
movs r1, 0
@@ -20947,7 +20947,7 @@ _08062198:
ldr r0, [sp, 0x11C]
adds r0, 0x8C
adds r1, r6, 0
- bl sub_808EBF4
+ bl ToggleIQSkill
b _080621BA
.align 2, 0
_080621AC: .4byte 0x00000133
@@ -25618,7 +25618,7 @@ _080646C4:
movs r1, 0
bl sub_803ECB4
adds r0, r4, 0
- bl sub_8045104
+ bl GetTrapData
adds r4, r0, 0
ldrb r1, [r4]
mov r0, r10
diff --git a/asm/code_8070D04.s b/asm/code_8070D04.s
index cc3c9f2..d995bdc 100644
--- a/asm/code_8070D04.s
+++ b/asm/code_8070D04.s
@@ -5,63 +5,6 @@
.text
- thumb_func_start CannotAttack
-CannotAttack:
- push {lr}
- adds r3, r0, 0
- lsls r1, 24
- ldr r2, [r3, 0x70]
- cmp r1, 0
- bne _08070D22
- adds r0, r2, 0
- adds r0, 0xA8
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08070D22
- cmp r0, 0x4
- beq _08070D22
- cmp r0, 0
- bne _08070D64
-_08070D22:
- adds r0, r2, 0
- adds r0, 0xB0
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08070D64
- cmp r0, 0x3
- beq _08070D64
- cmp r0, 0x4
- beq _08070D64
- cmp r0, 0x6
- beq _08070D64
- adds r0, r2, 0
- adds r0, 0xBC
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08070D64
- cmp r0, 0x3
- beq _08070D64
- cmp r0, 0x7
- beq _08070D64
- adds r0, r2, 0
- adds r0, 0xAC
- ldrb r0, [r0]
- cmp r0, 0x4
- beq _08070D64
- adds r0, r3, 0
- bl ShouldAvoidEnemies
- lsls r0, 24
- cmp r0, 0
- bne _08070D64
- movs r0, 0
- b _08070D66
-_08070D64:
- movs r0, 0x1
-_08070D66:
- pop {r1}
- bx r1
- thumb_func_end CannotAttack
-
thumb_func_start CannotMoveForward
CannotMoveForward:
push {r4-r6,lr}
@@ -972,26 +915,4 @@ _0807146A:
bx r1
thumb_func_end IsAtJunction
- thumb_func_start ShouldAvoidFirstHit
-ShouldAvoidFirstHit:
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- movs r1, 0x3
- bl HasTactic
- lsls r0, 24
- cmp r0, 0
- beq _0807148A
- cmp r4, 0
- beq _0807148A
- movs r0, 0x1
- b _0807148C
-_0807148A:
- movs r0, 0
-_0807148C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ShouldAvoidFirstHit
-
.align 2, 0
diff --git a/asm/code_8071518.s b/asm/code_8071518.s
index 7c80895..2aac9db 100644
--- a/asm/code_8071518.s
+++ b/asm/code_8071518.s
@@ -5,29 +5,6 @@
.text
- thumb_func_start ShouldAvoidEnemies_2
-ShouldAvoidEnemies_2:
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- bl ShouldAvoidEnemies
- lsls r0, 24
- cmp r0, 0
- bne _0807152E
- movs r0, 0
- b _08071538
-_0807152E:
- adds r0, r4, 0
- adds r1, r5, 0
- bl CheckRunAwayVisualFlag
- movs r0, 0x1
-_08071538:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ShouldAvoidEnemies_2
-
thumb_func_start CheckRunAwayVisualFlag
CheckRunAwayVisualFlag:
push {r4-r7,lr}
@@ -269,177 +246,4 @@ _080716E4:
bx r1
thumb_func_end sub_807167C
- thumb_func_start sub_80716E8
-sub_80716E8:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, [r4, 0x70]
- adds r0, 0xC4
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08071720
- cmp r2, 0
- beq _08071714
- ldr r0, _08071718
- movs r2, 0
- bl SetMessageArgument
- ldr r0, _0807171C
- ldr r2, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80522F4
-_08071714:
- movs r0, 0x1
- b _08071722
- .align 2, 0
-_08071718: .4byte gAvailablePokemonNames
-_0807171C: .4byte gUnknown_80FC2FC
-_08071720:
- movs r0, 0
-_08071722:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80716E8
-
- thumb_func_start sub_8071728
-sub_8071728:
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r2, 24
- lsrs r2, 24
- adds r5, r2, 0
- ldr r0, [r4, 0x70]
- adds r0, 0xC4
- ldrb r0, [r0]
- cmp r0, 0xE
- bne _08071758
- cmp r2, 0
- beq _0807178E
- ldr r0, _08071750
- movs r2, 0
- bl SetMessageArgument
- ldr r0, _08071754
- b _08071784
- .align 2, 0
-_08071750: .4byte gAvailablePokemonNames
-_08071754: .4byte gUnknown_80FC31C
-_08071758:
- adds r0, r4, 0
- movs r1, 0xF
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- bne _08071774
- adds r0, r4, 0
- movs r1, 0x18
- bl HasAbility
- lsls r0, 24
- cmp r0, 0
- beq _0807179C
-_08071774:
- cmp r5, 0
- beq _0807178E
- ldr r0, _08071794
- adds r1, r4, 0
- movs r2, 0
- bl SetMessageArgument
- ldr r0, _08071798
-_08071784:
- ldr r2, [r0]
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80522F4
-_0807178E:
- movs r0, 0x1
- b _0807179E
.align 2, 0
-_08071794: .4byte gAvailablePokemonNames
-_08071798: .4byte gUnknown_80FCEFC
-_0807179C:
- movs r0, 0
-_0807179E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8071728
-
- thumb_func_start sub_80717A4
-sub_80717A4:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r0
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldr r6, [r0, 0x70]
- adds r0, r6, 0
- adds r0, 0xA8
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080717CE
- cmp r0, 0x5
- beq _080717CE
- cmp r0, 0x3
- beq _080717CE
- b _08071816
-_080717CA:
- movs r0, 0x1
- b _08071818
-_080717CE:
- movs r7, 0
- movs r0, 0x8C
- lsls r0, 1
- adds r4, r6, r0
- adds r5, r4, 0
-_080717D8:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0807180C
- ldrb r0, [r6, 0x7]
- cmp r0, 0
- bne _080717F0
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0807180C
-_080717F0:
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_805744C
- lsls r0, 24
- cmp r0, 0
- beq _0807180C
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _0807180C
- ldrh r0, [r4, 0x2]
- cmp r0, r9
- beq _080717CA
-_0807180C:
- adds r4, 0x8
- adds r5, 0x8
- adds r7, 0x1
- cmp r7, 0x3
- ble _080717D8
-_08071816:
- movs r0, 0
-_08071818:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80717A4
-
- .align 2, 0 \ No newline at end of file
diff --git a/asm/code_80718D8.s b/asm/code_80718D8.s
index 8fb9e78..35f9c8b 100644
--- a/asm/code_80718D8.s
+++ b/asm/code_80718D8.s
@@ -721,7 +721,7 @@ _08071E4C:
beq _08071E68
ldrb r1, [r6, 0x9]
add r0, sp, 0x74
- bl sub_808EB48
+ bl GetAvailTacticsforLvl_Bool
_08071E68:
movs r0, 0x10
ldrsh r2, [r6, r0]
@@ -863,7 +863,7 @@ _08071F7A:
beq _08071FCA
ldrb r1, [r6, 0x9]
add r0, sp, 0x80
- bl sub_808EB48
+ bl GetAvailTacticsforLvl_Bool
movs r4, 0
add r7, sp, 0x74
add r5, sp, 0x80
@@ -958,7 +958,7 @@ _08072036:
beq _0807204C
add r0, sp, 0xC
ldrb r1, [r5, 0x9]
- bl sub_808EB48
+ bl GetAvailTacticsforLvl_Bool
_0807204C:
movs r0, 0x10
ldrsh r2, [r5, r0]
@@ -1045,7 +1045,7 @@ _080720E6:
add r4, sp, 0x18
ldrb r1, [r5, 0x9]
adds r0, r4, 0
- bl sub_808EB48
+ bl GetAvailTacticsforLvl_Bool
movs r6, 0
add r7, sp, 0xC
_080720FA:
@@ -3694,45 +3694,4 @@ _08073604: .4byte gUnknown_80FCF50
_08073608: .4byte 0x00000165
thumb_func_end sub_807348C
- thumb_func_start sub_807360C
-sub_807360C:
- push {r4,r5,lr}
- movs r5, 0
-_08073610:
- ldr r0, _08073650
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _08073654
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _08073644
- ldr r0, [r4, 0x70]
- movs r2, 0xA9
- lsls r2, 1
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- beq _08073644
- movs r0, 0
- strb r0, [r1]
- adds r0, r4, 0
- adds r1, r4, 0
- bl sub_8077274
-_08073644:
- adds r5, 0x1
- cmp r5, 0x13
- ble _08073610
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08073650: .4byte gDungeonGlobalData
-_08073654: .4byte 0x000135cc
- thumb_func_end sub_807360C
-
.align 2, 0
diff --git a/asm/code_80739DC.s b/asm/code_80739DC.s
index 18efc16..cfee489 100644
--- a/asm/code_80739DC.s
+++ b/asm/code_80739DC.s
@@ -3697,7 +3697,7 @@ _08075770:
.4byte _0807580C
_08075788:
adds r0, r5, 0
- bl sub_8045104
+ bl GetTrapData
adds r7, r0, 0
movs r0, 0
mov r8, r0
@@ -3772,185 +3772,4 @@ _0807580C:
bx r0
thumb_func_end sub_8075708
- thumb_func_start sub_8075818
-sub_8075818:
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, [r4, 0x70]
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _080758F6
- adds r0, r4, 0
- bl sub_8045128
- adds r5, r0, 0
- adds r0, r4, 0
- movs r1, 0xD
- bl HasIQSkill
- lsls r0, 24
- cmp r0, 0
- beq _08075848
- ldrh r1, [r5]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080758F2
-_08075848:
- ldr r4, [r5, 0x14]
- cmp r4, 0
- beq _080758F6
- adds r0, r4, 0
- bl GetEntityType
- cmp r0, 0x5
- bhi _080758F6
- lsls r0, 2
- ldr r1, _08075864
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08075864: .4byte _08075868
- .align 2, 0
-_08075868:
- .4byte _080758F6
- .4byte _080758F6
- .4byte _08075880
- .4byte _080758BE
- .4byte _080758F6
- .4byte _080758F6
-_08075880:
- adds r0, r4, 0
- bl sub_8045104
- movs r1, 0
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _080758A0
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _080758B8
- ldrb r0, [r6, 0x6]
- cmp r0, 0
- bne _080758B8
- b _080758F2
-_080758A0:
- cmp r0, 0x1
- bne _080758AC
- ldrb r0, [r6, 0x6]
- cmp r0, 0
- beq _080758B8
- b _080758F2
-_080758AC:
- cmp r0, 0x2
- bne _080758B8
- ldrb r0, [r6, 0x6]
- cmp r0, 0
- bne _080758B8
- movs r1, 0x1
-_080758B8:
- cmp r1, 0
- beq _080758F6
- b _080758F2
-_080758BE:
- ldrb r0, [r6, 0x7]
- cmp r0, 0
- bne _080758F6
- adds r0, r6, 0
- adds r0, 0x60
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080758F6
- ldrh r1, [r5]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080758E2
- ldrb r0, [r6, 0x6]
- cmp r0, 0
- bne _080758F6
-_080758E2:
- adds r0, r4, 0
- bl GetItemData
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080758F6
-_080758F2:
- movs r0, 0x1
- b _080758F8
-_080758F6:
- movs r0, 0
-_080758F8:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8075818
-
- thumb_func_start sub_8075900
-sub_8075900:
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _0807597A
- ldr r0, [r4, 0x70]
- ldrb r0, [r0, 0x6]
- cmp r0, 0
- bne _0807597A
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _0807597A
- ldr r5, _08075980
- ldr r0, [r5]
- ldr r1, _08075984
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807597A
- adds r0, r4, 0
- bl sub_8045128
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0807597A
- bl GetLeaderEntity
- ldr r1, _08075988
- ldr r1, [r1]
- bl SendMessage
- ldr r0, [r5]
- ldr r1, _0807598C
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_807AB38
- movs r0, 0
- bl sub_8041888
- adds r0, r4, 0x4
- bl sub_803F428
- lsls r0, 24
- cmp r0, 0
- beq _0807597A
- movs r0, 0x78
- movs r1, 0x39
- bl sub_803E708
-_0807597A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08075980: .4byte gDungeonGlobalData
-_08075984: .4byte 0x00000671
-_08075988: .4byte gUnknown_80FE308
-_0807598C: .4byte 0x00000672
- thumb_func_end sub_8075900
+ .align 2,0
diff --git a/asm/code_8075BA4.s b/asm/code_8075BA4.s
index 19928c2..dc265cb 100644
--- a/asm/code_8075BA4.s
+++ b/asm/code_8075BA4.s
@@ -5,48 +5,6 @@
.text
- thumb_func_start sub_8075BA4
-sub_8075BA4:
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- ldr r4, [r5, 0x70]
- cmp r1, 0
- beq _08075BD0
- adds r0, r4, 0
- adds r0, 0xBC
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _08075BD0
- adds r0, r4, 0
- adds r0, 0x46
- ldrb r1, [r0]
- adds r1, 0x4
- movs r2, 0x7
- ands r1, r2
- strb r1, [r0]
- adds r0, r5, 0
- bl TargetTileInFront
- b _08075BEC
-_08075BD0:
- adds r0, r4, 0
- adds r0, 0xBC
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08075BEC
- movs r0, 0x8
- bl DungeonRandomCapped
- adds r1, r4, 0
- adds r1, 0x46
- strb r0, [r1]
- adds r0, r5, 0
- bl TargetTileInFront
-_08075BEC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8075BA4
-
thumb_func_start sub_8075BF4
sub_8075BF4:
push {r4-r7,lr}
@@ -20350,10 +20308,10 @@ _0807FD12:
cmp r0, 0x2
bne _0807FD6E
ldr r0, [r6, 0x14]
- bl sub_8045104
+ bl GetTrapData
strb r5, [r0]
ldr r0, [r6, 0x14]
- bl sub_8045104
+ bl GetTrapData
mov r1, r8
strb r1, [r0, 0x1]
ldr r0, [r6, 0x14]
@@ -20566,7 +20524,7 @@ _0807FECE:
b _080801B4
_0807FED8:
mov r0, r10
- bl sub_8045104
+ bl GetTrapData
mov r8, r0
ldr r0, _0807FF58
mov r2, r8
@@ -22129,7 +22087,7 @@ sub_8080B00:
cmp r0, 0x2
bne _08080B26
adds r0, r4, 0
- bl sub_8045104
+ bl GetTrapData
strb r5, [r0]
_08080B26:
bl sub_8049ED4
@@ -22305,7 +22263,7 @@ _08080C6A:
cmp r0, 0x2
bne _08080CC8
adds r0, r5, 0
- bl sub_8045104
+ bl GetTrapData
adds r4, r0, 0
adds r0, r6, 0
adds r1, r4, 0
diff --git a/asm/code_80848F0.s b/asm/code_80848F0.s
index 8b1c811..189480c 100644
--- a/asm/code_80848F0.s
+++ b/asm/code_80848F0.s
@@ -798,251 +798,4 @@ _08085858: .4byte gAdjacentTileOffsets
_0808585C: .4byte 0x000135cc
thumb_func_end sub_80857B8
- thumb_func_start sub_8085860
-sub_8085860:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- bl sub_803F4A0
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 11
- movs r1, 0xC0
- lsls r1, 4
- adds r0, r1
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 11
- movs r2, 0x80
- lsls r2, 5
- adds r1, r2
- bl sub_803F878
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8085860
-
- thumb_func_start sub_8085890
-sub_8085890:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- bl sub_803F4A0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_803F878
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8085890
-
- thumb_func_start sub_80858AC
-sub_80858AC:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- adds r4, r1, 0
- bl sub_803F994
- adds r6, r0, 0
- bl sub_803F9B0
- adds r5, r0, 0
- ldr r0, [r7]
- subs r0, r6
- adds r1, r4, 0
- bl __divsi3
- mov r9, r0
- ldr r0, [r7, 0x4]
- subs r0, r5
- adds r1, r4, 0
- bl __divsi3
- mov r8, r0
- movs r0, 0
- bl sub_803F4A0
- cmp r4, 0
- ble _080858FE
-_080858E6:
- add r6, r9
- add r5, r8
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_803F878
- movs r0, 0x46
- bl sub_803E46C
- subs r4, 0x1
- cmp r4, 0
- bne _080858E6
-_080858FE:
- ldr r0, [r7]
- ldr r1, [r7, 0x4]
- bl sub_803F878
- movs r0, 0x46
- bl sub_803E46C
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80858AC
-
- thumb_func_start SetFacingDirection
-SetFacingDirection:
- push {r4,lr}
- ldr r3, [r0, 0x70]
- movs r4, 0x7
- adds r2, r1, 0
- ands r2, r4
- adds r3, 0x46
- strb r2, [r3]
- bl sub_806CE68
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end SetFacingDirection
-
- thumb_func_start sub_8085930
-sub_8085930:
- push {r4-r7,lr}
- adds r6, r0, 0
- movs r5, 0
- movs r0, 0x7
- adds r7, r6, 0
- ands r7, r0
-_0808593C:
- ldr r0, _0808596C
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _08085970
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _08085982
- cmp r6, 0x7
- ble _08085974
- movs r0, 0x8
- bl RandomCapped
- adds r1, r0, 0
- adds r0, r4, 0
- bl sub_806CE68
- b _08085982
- .align 2, 0
-_0808596C: .4byte gDungeonGlobalData
-_08085970: .4byte 0x0001357c
-_08085974:
- ldr r0, [r4, 0x70]
- adds r0, 0x46
- strb r7, [r0]
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_806CE68
-_08085982:
- adds r5, 0x1
- cmp r5, 0x3
- ble _0808593C
- movs r5, 0
- movs r0, 0x7
- adds r7, r6, 0
- ands r7, r0
-_08085990:
- ldr r0, _080859CC
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _080859D0
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _080859E2
- ldr r1, [r4, 0x70]
- adds r0, r1, 0
- adds r0, 0xA4
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080859E2
- cmp r6, 0x7
- ble _080859D4
- movs r0, 0x8
- bl RandomCapped
- adds r1, r0, 0
- adds r0, r4, 0
- bl sub_806CE68
- b _080859E2
- .align 2, 0
-_080859CC: .4byte gDungeonGlobalData
-_080859D0: .4byte 0x0001358c
-_080859D4:
- adds r0, r1, 0
- adds r0, 0x46
- strb r7, [r0]
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_806CE68
-_080859E2:
- adds r5, 0x1
- cmp r5, 0xF
- ble _08085990
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8085930
-
- thumb_func_start sub_80859F0
-sub_80859F0:
- push {r4-r7,lr}
- adds r6, r0, 0
- movs r5, 0
- movs r0, 0x7
- adds r7, r6, 0
- ands r7, r0
-_080859FC:
- ldr r0, _08085A2C
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _08085A30
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl EntityExists
- lsls r0, 24
- cmp r0, 0
- beq _08085A42
- cmp r6, 0x7
- ble _08085A34
- movs r0, 0x8
- bl RandomCapped
- adds r1, r0, 0
- adds r0, r4, 0
- bl sub_806CE68
- b _08085A42
- .align 2, 0
-_08085A2C: .4byte gDungeonGlobalData
-_08085A30: .4byte 0x0001358c
-_08085A34:
- ldr r0, [r4, 0x70]
- adds r0, 0x46
- strb r7, [r0]
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_806CE68
-_08085A42:
- adds r5, 0x1
- cmp r5, 0xF
- ble _080859FC
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80859F0
-
.align 2, 0
diff --git a/asm/code_8086A3C.s b/asm/code_8086A3C.s
index ae72ef7..d0cd7dc 100644
--- a/asm/code_8086A3C.s
+++ b/asm/code_8086A3C.s
@@ -68,12 +68,12 @@ TeamMeaniesPreFightDialogue:
movs r1, 0x46
bl sub_803E708
ldr r0, _08087048
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
ldr r0, _0808704C
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -81,27 +81,27 @@ TeamMeaniesPreFightDialogue:
movs r0, 0xA
bl sub_8083E88
ldr r0, _08087050
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
ldr r0, _08087054
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
ldr r0, _08087058
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
ldr r0, _0808705C
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
ldr r0, _08087060
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -131,12 +131,12 @@ TeamMeaniesReFightDialogue:
adds r5, r0, 0
bl sub_8086448
ldr r0, _08087118
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
ldr r0, _0808711C
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -145,12 +145,12 @@ TeamMeaniesReFightDialogue:
movs r1, 0x46
bl sub_803E708
ldr r0, _08087120
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
ldr r0, _08087124
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -177,9 +177,9 @@ TeamMeaniesReFightDialogue:
movs r1, 0x46
bl sub_803E708
ldr r0, _08087128
- bl sub_8052910
+ bl DisplayDungeonDialogue
ldr r0, _0808712C
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -493,7 +493,7 @@ ZapdosPreFightDialogue:
movs r3, 0x6
bl sub_80869E4
ldr r0, _08087470
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -508,7 +508,7 @@ ZapdosPreFightDialogue:
movs r3, 0x4
bl sub_80869E4
ldr r0, _08087474
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -519,7 +519,7 @@ ZapdosPreFightDialogue:
lsls r0, 1
bl PlaySoundEffect
ldr r0, _08087478
- bl sub_8052910
+ bl DisplayDungeonDialogue
ldr r0, [sp, 0x68]
bl sub_8087704
movs r0, 0x9
@@ -529,7 +529,7 @@ ZapdosPreFightDialogue:
movs r2, 0x4
bl sub_806CDD4
ldr r0, _0808747C
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -599,12 +599,12 @@ _0808748E:
movs r3, 0x4
bl sub_80869E4
ldr r0, _08087518
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0x3C
movs r1, 0x46
bl sub_803E708
ldr r0, _0808751C
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -655,28 +655,28 @@ _0808752A:
movs r3, 0x3
bl sub_80869E4
ldr r0, _080875B0
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
movs r0, 0x3
bl sub_808775C
ldr r0, _080875B4
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
movs r0, 0x1
bl sub_808775C
ldr r0, _080875B8
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
movs r0, 0x2
bl sub_808775C
ldr r0, _080875BC
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
diff --git a/asm/code_80958E8.s b/asm/code_80958E8.s
index dfcbae4..b8d3c7a 100644
--- a/asm/code_80958E8.s
+++ b/asm/code_80958E8.s
@@ -602,7 +602,7 @@ sub_8095F8C:
_08095F92:
lsls r0, r4, 24
lsrs r0, 24
- bl CheckMailSlot
+ bl IsMailSlotEmpty
lsls r0, 24
cmp r0, 0
bne _08095FA2
@@ -666,8 +666,8 @@ sub_8095FE8:
_08095FFC: .4byte gUnknown_203B490
thumb_func_end sub_8095FE8
- thumb_func_start CheckMailSlot
-CheckMailSlot:
+ thumb_func_start IsMailSlotEmpty
+IsMailSlotEmpty:
push {lr}
lsls r0, 24
lsrs r0, 24
@@ -689,7 +689,7 @@ _08096020:
_08096022:
pop {r1}
bx r1
- thumb_func_end CheckMailSlot
+ thumb_func_end IsMailSlotEmpty
thumb_func_start sub_8096028
sub_8096028:
@@ -1994,7 +1994,7 @@ GetNumAcceptedJobs:
_080969B2:
lsls r0, r4, 24
lsrs r0, 24
- bl CheckJobSlot
+ bl IsJobSlotEmpty
lsls r0, 24
cmp r0, 0
bne _080969C2
@@ -2155,8 +2155,8 @@ sub_8096AB4:
_08096AC8: .4byte gUnknown_203B490
thumb_func_end sub_8096AB4
- thumb_func_start CheckJobSlot
-CheckJobSlot:
+ thumb_func_start IsJobSlotEmpty
+IsJobSlotEmpty:
push {lr}
lsls r0, 24
lsrs r0, 24
@@ -2179,7 +2179,7 @@ _08096AF0:
_08096AF2:
pop {r1}
bx r1
- thumb_func_end CheckJobSlot
+ thumb_func_end IsJobSlotEmpty
thumb_func_start sub_8096AF8
sub_8096AF8:
diff --git a/asm/jirachi_wish.s b/asm/jirachi_wish.s
index cc21bd0..f641862 100644
--- a/asm/jirachi_wish.s
+++ b/asm/jirachi_wish.s
@@ -55,7 +55,7 @@ JirachiWish:
movs r1, 0x46
bl sub_803E708
ldr r0, _0808B844
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -67,7 +67,7 @@ JirachiWish:
adds r0, r6, 0
bl sub_80862BC
ldr r0, _0808B84C
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0x79
bl sub_8083E88
movs r0, 0xA
@@ -80,14 +80,14 @@ JirachiWish:
lsls r0, 1
bl PlaySoundEffect
ldr r0, _0808B850
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
adds r0, r6, 0
bl SpriteLookAroundEffect
ldr r0, _0808B854
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -109,7 +109,7 @@ _0808B692:
cmp r2, 0x1
bne _0808B754
ldr r0, _0808B864
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -187,7 +187,7 @@ _0808B754:
cmp r0, 0x2
bne _0808B80A
ldr r0, _0808B874
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -276,7 +276,7 @@ _0808B80A:
cmp r4, 0x3A
bne _0808B87C
ldr r0, _0808B878
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -304,7 +304,7 @@ _0808B874: .4byte gUnknown_8105974
_0808B878: .4byte gUnknown_8105A08
_0808B87C:
ldr r0, _0808BA30
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -316,7 +316,7 @@ _0808B87C:
movs r0, 0
strb r0, [r1]
ldr r0, _0808BA38
- bl sub_8052910
+ bl DisplayDungeonDialogue
adds r0, r4, 0
bl UnlockFriendArea
movs r0, 0xD4
@@ -331,13 +331,13 @@ _0808B87C:
movs r2, 0
bl sub_8092578
ldr r0, _0808BA44
- bl sub_8052910
+ bl DisplayDungeonDialogue
_0808B8CA:
mov r0, r9
cmp r0, 0x4
bne _0808B98E
ldr r0, _0808BA48
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -417,7 +417,7 @@ _0808B970:
movs r0, 0
strb r0, [r1]
ldr r0, _0808BA58
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -426,7 +426,7 @@ _0808B98E:
cmp r0, 0x5
bne _0808B9F8
ldr r0, _0808BA5C
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -438,7 +438,7 @@ _0808B98E:
movs r0, 0
strb r0, [r1]
ldr r0, _0808BA60
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -454,7 +454,7 @@ _0808B98E:
movs r1, 0x46
bl sub_803E708
ldr r0, _0808BA64
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -466,14 +466,14 @@ _0808B98E:
strb r1, [r0]
_0808B9F8:
ldr r0, _0808BA70
- bl sub_8052910
+ bl DisplayDungeonDialogue
adds r0, r6, 0
bl sub_808BC20
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
ldr r0, _0808BA74
- bl sub_8052910
+ bl DisplayDungeonDialogue
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
diff --git a/asm/memory_1.s b/asm/memory_1.s
index f289567..97833ca 100644
--- a/asm/memory_1.s
+++ b/asm/memory_1.s
@@ -5,51 +5,6 @@
.text
- thumb_func_start MemoryLocate_LocalCreate
-MemoryLocate_LocalCreate:
- push {r4-r7,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r5, r1, 0
- adds r7, r2, 0
- adds r6, r3, 0
- cmp r4, 0
- bne _08003412
- ldr r4, =gMainHeapDescriptor
-_08003412:
- adds r0, r4, 0
- movs r1, 0x9
- adds r2, r5, 0
- bl MemorySearchFromBack
- adds r1, r0, 0
- cmp r1, 0
- bge _08003438
- ldr r0, =gUnknown_80B7F88
- ldr r1, =gLocalCreateErrorMessage
- adds r2, r5, 0
- bl FatalError
- .align 2, 0
- .pool
-_08003438:
- str r6, [sp]
- adds r0, r4, 0
- movs r2, 0x9
- adds r3, r5, 0
- bl _LocateSetBack
- ldr r1, [r0, 0xC]
- str r1, [sp, 0x4]
- ldr r0, [r0, 0x10]
- str r0, [sp, 0x8]
- add r0, sp, 0x4
- adds r1, r7, 0
- bl DoCreateSubHeap
- str r4, [r0, 0x4]
- add sp, 0xC
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end MemoryLocate_LocalCreate
-
thumb_func_start DoCreateSubHeap
DoCreateSubHeap:
push {r4,lr}
diff --git a/asm/rescue_password_menu.s b/asm/rescue_password_menu.s
index 88fcd49..44675db 100644
--- a/asm/rescue_password_menu.s
+++ b/asm/rescue_password_menu.s
@@ -721,7 +721,7 @@ sub_8039068:
adds r0, r5, 0
adds r0, 0x22
ldrb r0, [r0]
- bl sub_8092040
+ bl IsInvalidItemReward
lsls r0, 24
cmp r0, 0
beq _080390B4
diff --git a/asm/wonder_mail_2.s b/asm/wonder_mail_2.s
index d8428b8..dd6f99f 100644
--- a/asm/wonder_mail_2.s
+++ b/asm/wonder_mail_2.s
@@ -5,319 +5,6 @@
.text
- thumb_func_start sub_802BCC4
-sub_802BCC4:
- push {r4,lr}
- ldr r4, _0802BCDC
- ldr r0, [r4]
- ldrb r0, [r0, 0x4]
- bl GetPokemonMailText
- adds r3, r0, 0
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1, 0xC]
- str r3, [r1, 0x10]
- b _0802BD08
- .align 2, 0
-_0802BCDC: .4byte gUnknown_203B2D4
-_0802BCE0:
- cmp r0, 0x23
- bne _0802BD06
- ldrb r2, [r3, 0x1]
- cmp r2, 0x50
- beq _0802BCF0
- adds r1, r3, 0x2
- cmp r2, 0x70
- bne _0802BD02
-_0802BCF0:
- ldr r0, [r4]
- ldr r1, [r0, 0xC]
- adds r1, 0x1
- str r1, [r0, 0xC]
- lsls r1, 2
- adds r0, 0x10
- adds r0, r1
- adds r1, r3, 0x2
- str r1, [r0]
-_0802BD02:
- adds r3, r1, 0
- b _0802BD08
-_0802BD06:
- adds r3, 0x1
-_0802BD08:
- ldrb r0, [r3]
- cmp r0, 0
- bne _0802BCE0
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_802BCC4
-
- thumb_func_start sub_802BD14
-sub_802BD14:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r4, r1, 0
- mov r8, r2
- bl HasNoMailinMailbox
- lsls r0, 24
- cmp r0, 0
- beq _0802BD2E
- movs r0, 0
- b _0802BDD4
-_0802BD2E:
- ldr r5, _0802BDE0
- ldr r0, [r5]
- cmp r0, 0
- bne _0802BD40
- movs r0, 0xA4
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
-_0802BD40:
- ldr r0, [r5]
- str r6, [r0, 0x38]
- lsls r1, r6, 1
- adds r1, r6
- lsls r1, 3
- adds r1, 0x40
- adds r1, r0, r1
- str r1, [r0, 0x3C]
- adds r0, 0x40
- bl sub_8006518
- ldr r1, [r5]
- ldr r2, [r1, 0x38]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, 0x40
- ldr r0, _0802BDE4
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldr r2, [r5]
- ldr r1, [r2, 0x3C]
- adds r0, r2, 0
- adds r0, 0xA0
- str r0, [r1, 0x14]
- cmp r4, 0
- beq _0802BD8E
- ldr r1, [r2, 0x38]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r1, r2, 0
- adds r1, 0x48
- adds r1, r0
- ldr r0, [r4]
- str r0, [r1]
-_0802BD8E:
- ldr r0, [r5]
- ldr r0, [r0, 0x3C]
- mov r1, r8
- bl sub_8012D34
- bl ResetUnusedInputStruct
- ldr r0, [r5]
- adds r0, 0x40
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, [r5]
- adds r4, 0x4
- bl sub_802C0B8
- adds r1, r0, 0
- adds r0, r4, 0
- mov r2, r8
- adds r3, r6, 0
- bl sub_8013848
- ldr r0, [r5]
- ldr r1, _0802BDE8
- ldrh r1, [r1]
- strh r1, [r0, 0x1C]
- adds r0, 0x4
- bl sub_8013984
- bl sub_802BF30
- bl CreateMailMenu
- movs r0, 0x1
-_0802BDD4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0802BDE0: .4byte gUnknown_203B2D8
-_0802BDE4: .4byte gUnknown_80DFC74
-_0802BDE8: .4byte gUnknown_203B2DC
- thumb_func_end sub_802BD14
-
- thumb_func_start sub_802BDEC
-sub_802BDEC:
- push {lr}
- lsls r0, 24
- cmp r0, 0
- bne _0802BE08
- ldr r0, _0802BE04
- ldr r0, [r0]
- adds r0, 0x4
- bl sub_8013660
- movs r0, 0
- b _0802BE6E
- .align 2, 0
-_0802BE04: .4byte gUnknown_203B2D8
-_0802BE08:
- ldr r0, _0802BE20
- ldr r0, [r0]
- adds r0, 0x4
- bl GetKeyPress
- cmp r0, 0x2
- beq _0802BE2A
- cmp r0, 0x2
- bgt _0802BE24
- cmp r0, 0x1
- beq _0802BE34
- b _0802BE48
- .align 2, 0
-_0802BE20: .4byte gUnknown_203B2D8
-_0802BE24:
- cmp r0, 0x4
- beq _0802BE3E
- b _0802BE48
-_0802BE2A:
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- b _0802BE6E
-_0802BE34:
- movs r0, 0
- bl PlayMenuSoundEffect
- movs r0, 0x3
- b _0802BE6E
-_0802BE3E:
- movs r0, 0x4
- bl PlayMenuSoundEffect
- movs r0, 0x4
- b _0802BE6E
-_0802BE48:
- ldr r0, _0802BE60
- ldr r0, [r0]
- adds r0, 0x4
- movs r1, 0x1
- bl sub_80138B8
- lsls r0, 24
- cmp r0, 0
- bne _0802BE64
- movs r0, 0
- b _0802BE6E
- .align 2, 0
-_0802BE60: .4byte gUnknown_203B2D8
-_0802BE64:
- bl sub_802BF30
- bl CreateMailMenu
- movs r0, 0x1
-_0802BE6E:
- pop {r1}
- bx r1
- thumb_func_end sub_802BDEC
-
- thumb_func_start sub_802BE74
-sub_802BE74:
- ldr r0, _0802BE90
- ldr r1, [r0]
- movs r0, 0x22
- ldrsh r2, [r1, r0]
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- muls r0, r2
- movs r3, 0x1C
- ldrsh r2, [r1, r3]
- adds r0, r2
- adds r1, r0
- ldrb r0, [r1]
- bx lr
- .align 2, 0
-_0802BE90: .4byte gUnknown_203B2D8
- thumb_func_end sub_802BE74
-
- thumb_func_start sub_802BE94
-sub_802BE94:
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ResetUnusedInputStruct
- ldr r5, _0802BED8
- ldr r0, [r5]
- adds r0, 0x40
- movs r1, 0
- movs r2, 0
- bl sub_800641C
- bl sub_802C0B8
- adds r1, r0, 0
- ldr r0, [r5]
- strh r1, [r0, 0x26]
- adds r0, 0x4
- bl sub_8013984
- bl sub_802BF30
- bl CreateMailMenu
- cmp r4, 0
- beq _0802BED2
- ldr r0, [r5]
- adds r0, 0x4
- bl AddMenuCursorSprite
-_0802BED2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BED8: .4byte gUnknown_203B2D8
- thumb_func_end sub_802BE94
-
- thumb_func_start sub_802BEDC
-sub_802BEDC:
- push {r4,r5,lr}
- ldr r4, _0802BF24
- ldr r2, [r4]
- cmp r2, 0
- beq _0802BF1C
- ldr r1, _0802BF28
- ldrh r0, [r2, 0x1C]
- strh r0, [r1]
- ldr r0, [r2, 0x38]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x40
- ldr r0, _0802BF2C
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x40
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0802BF1C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BF24: .4byte gUnknown_203B2D8
-_0802BF28: .4byte gUnknown_203B2DC
-_0802BF2C: .4byte gUnknown_80DFC5C
- thumb_func_end sub_802BEDC
-
thumb_func_start sub_802BF30
sub_802BF30:
push {r4,lr}
@@ -505,15 +192,15 @@ _0802C09A:
_0802C0B4: .4byte gUnknown_203B2D8
thumb_func_end CreateMailMenu
- thumb_func_start sub_802C0B8
-sub_802C0B8:
+ thumb_func_start CountEmptyMailSlots
+CountEmptyMailSlots:
push {r4,r5,lr}
movs r5, 0
movs r4, 0
_0802C0BE:
lsls r0, r4, 24
lsrs r0, 24
- bl CheckMailSlot
+ bl IsMailSlotEmpty
lsls r0, 24
cmp r0, 0
bne _0802C0D6
@@ -532,7 +219,7 @@ _0802C0D6:
bx r1
.align 2, 0
_0802C0E4: .4byte gUnknown_203B2D8
- thumb_func_end sub_802C0B8
+ thumb_func_end CountEmptyMailSlots
thumb_func_start HasNoMailinMailbox
HasNoMailinMailbox:
@@ -541,7 +228,7 @@ HasNoMailinMailbox:
_0802C0EC:
lsls r0, r4, 24
lsrs r0, 24
- bl CheckMailSlot
+ bl IsMailSlotEmpty
lsls r0, 24
cmp r0, 0
bne _0802C0FE
@@ -1452,7 +1139,7 @@ sub_802C80C:
_0802C812:
lsls r0, r4, 24
lsrs r0, 24
- bl CheckJobSlot
+ bl IsJobSlotEmpty
lsls r0, 24
cmp r0, 0
bne _0802C82A
@@ -1480,7 +1167,7 @@ HasNoAcceptedJobs:
_0802C840:
lsls r0, r4, 24
lsrs r0, 24
- bl CheckJobSlot
+ bl IsJobSlotEmpty
lsls r0, 24
cmp r0, 0
bne _0802C852
diff --git a/asm/wonder_mail_3.s b/asm/wonder_mail_3.s
index cd6126f..2423107 100644
--- a/asm/wonder_mail_3.s
+++ b/asm/wonder_mail_3.s
@@ -733,584 +733,4 @@ _0802DB1C:
_0802DB24: .4byte gUnknown_203B490
thumb_func_end sub_802DADC
- thumb_func_start sub_802DB28
-sub_802DB28:
- push {r4-r6,lr}
- sub sp, 0x8
- adds r2, r1, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r2, 24
- lsrs r2, 24
- mov r0, sp
- adds r1, r6, 0
- bl sub_8096AF8
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- bne _0802DB4A
- movs r0, 0
- b _0802DBC6
-_0802DB4A:
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, _0802DBD0
- movs r0, 0xA8
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r4]
- adds r0, 0x30
- movs r5, 0
- strb r6, [r0]
- adds r0, r6, 0
- bl sub_8096AB4
- ldr r1, [r4]
- str r0, [r1, 0x34]
- bl sub_8096EEC
- ldr r1, [r4]
- ldr r0, [r1, 0x34]
- adds r1, 0x8
- bl sub_803C21C
- ldr r0, [r4]
- ldr r0, [r0, 0x34]
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- bl GetDialogueSpriteDataPtr
- ldr r1, [r4]
- str r0, [r1, 0x38]
- str r5, [r1, 0x3C]
- adds r1, 0x44
- strb r5, [r1]
- ldr r0, [r4]
- adds r0, 0x45
- strb r5, [r0]
- ldr r0, [r4]
- adds r0, 0x46
- strb r5, [r0]
- ldr r2, [r4]
- adds r1, r2, 0
- adds r1, 0x40
- movs r0, 0x2
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x8
- strh r0, [r1]
- ldr r0, [r2, 0x38]
- cmp r0, 0
- beq _0802DBBE
- ldr r0, [r0, 0x4]
- str r0, [r2, 0x3C]
-_0802DBBE:
- movs r0, 0
- bl sub_802DC28
- movs r0, 0x1
-_0802DBC6:
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0802DBD0: .4byte gUnknown_203B2FC
- thumb_func_end sub_802DB28
-
- thumb_func_start sub_802DBD4
-sub_802DBD4:
- push {lr}
- ldr r0, _0802DBEC
- ldr r0, [r0]
- ldr r1, [r0]
- cmp r1, 0x6
- beq _0802DBF0
- cmp r1, 0x7
- bne _0802DBF6
- ldr r0, [r0, 0x34]
- strb r1, [r0]
- movs r0, 0x3
- b _0802DBFC
- .align 2, 0
-_0802DBEC: .4byte gUnknown_203B2FC
-_0802DBF0:
- bl sub_802DE44
- b _0802DBFA
-_0802DBF6:
- bl sub_802DE60
-_0802DBFA:
- movs r0, 0
-_0802DBFC:
- pop {r1}
- bx r1
- thumb_func_end sub_802DBD4
-
- thumb_func_start sub_802DC00
-sub_802DC00:
- push {r4,lr}
- ldr r4, _0802DC24
- ldr r0, [r4]
- cmp r0, 0
- beq _0802DC1E
- ldr r0, [r0, 0x38]
- cmp r0, 0
- beq _0802DC14
- bl CloseFile
-_0802DC14:
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0802DC1E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DC24: .4byte gUnknown_203B2FC
- thumb_func_end sub_802DC00
-
- thumb_func_start sub_802DC28
-sub_802DC28:
- push {lr}
- ldr r1, _0802DC3C
- ldr r1, [r1]
- str r0, [r1]
- bl sub_802DC40
- bl sub_802DC9C
- pop {r0}
- bx r0
- .align 2, 0
-_0802DC3C: .4byte gUnknown_203B2FC
- thumb_func_end sub_802DC28
-
- thumb_func_start sub_802DC40
-sub_802DC40:
- push {r4-r7,lr}
- ldr r4, _0802DC94
- ldr r0, [r4]
- adds r0, 0x48
- bl sub_8006518
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0
- beq _0802DC58
- cmp r0, 0x7
- bne _0802DC7A
-_0802DC58:
- mov r12, r4
- ldr r4, _0802DC98
- movs r3, 0
- movs r2, 0x3
-_0802DC60:
- mov r0, r12
- ldr r1, [r0]
- adds r1, r3
- adds r1, 0x48
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r3, 0x18
- subs r2, 0x1
- cmp r2, 0
- bge _0802DC60
-_0802DC7A:
- bl ResetUnusedInputStruct
- ldr r0, _0802DC94
- ldr r0, [r0]
- adds r0, 0x48
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DC94: .4byte gUnknown_203B2FC
-_0802DC98: .4byte gUnknown_80E016C
- thumb_func_end sub_802DC40
-
- thumb_func_start sub_802DC9C
-sub_802DC9C:
- push {r4,r5,lr}
- ldr r1, _0802DCB8
- ldr r0, [r1]
- ldr r0, [r0]
- adds r5, r1, 0
- cmp r0, 0x7
- bls _0802DCAC
- b _0802DE3E
-_0802DCAC:
- lsls r0, 2
- ldr r1, _0802DCBC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802DCB8: .4byte gUnknown_203B2FC
-_0802DCBC: .4byte _0802DCC0
- .align 2, 0
-_0802DCC0:
- .4byte _0802DCE0
- .4byte _0802DDDC
- .4byte _0802DDE4
- .4byte _0802DDEC
- .4byte _0802DDFC
- .4byte _0802DDF4
- .4byte _0802DE34
- .4byte _0802DE3E
-_0802DCE0:
- ldr r0, _0802DD60
- ldr r1, [r5]
- ldr r1, [r1, 0x34]
- movs r2, 0xC
- ldrsh r1, [r1, r2]
- bl CopyYellowSpeciesNametoBuffer
- ldr r4, _0802DD64
- ldr r0, [r5]
- ldr r0, [r0, 0x34]
- movs r2, 0xC
- ldrsh r1, [r0, r2]
- adds r0, r4, 0
- bl CopyYellowSpeciesNametoBuffer
- ldr r0, [r5]
- ldr r0, [r0, 0x34]
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- bl GetMonSpecies
- adds r1, r0, 0
- ldr r2, _0802DD68
- adds r0, r4, r2
- bl strcpy
- ldr r0, [r5]
- ldr r0, [r0, 0x34]
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- bl GetMonSpecies
- adds r1, r0, 0
- ldr r2, _0802DD6C
- adds r4, r2
- adds r0, r4, 0
- bl strcpy
- ldr r0, [r5]
- ldr r0, [r0, 0x34]
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- bl UnlockExclusivePokemon
- ldr r0, _0802DD70
- ldr r1, [r5]
- ldr r1, [r1, 0x34]
- ldrb r1, [r1, 0x10]
- movs r2, 0
- bl sub_8090DC4
- ldr r1, [r5]
- movs r0, 0x6
- str r0, [r1, 0x4]
- ldr r0, [r1, 0x34]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x4
- bhi _0802DDD4
- lsls r0, 2
- ldr r1, _0802DD74
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802DD60: .4byte gUnknown_202E5D8
-_0802DD64: .4byte gUnknown_202E1C8
-_0802DD68: .4byte 0xfffffdd0
-_0802DD6C: .4byte 0xfffffe20
-_0802DD70: .4byte gUnknown_202DE58
-_0802DD74: .4byte _0802DD78
- .align 2, 0
-_0802DD78:
- .4byte _0802DDD4
- .4byte _0802DD9C
- .4byte _0802DDB8
- .4byte _0802DD94
- .4byte _0802DD8C
-_0802DD8C:
- movs r0, 0x5
- bl sub_802DC28
- b _0802DE3E
-_0802DD94:
- movs r0, 0x4
- bl sub_802DC28
- b _0802DE3E
-_0802DD9C:
- movs r0, 0x2
- bl sub_802DC28
- ldr r0, _0802DDB4
- ldr r0, [r0]
- ldr r0, [r0, 0x34]
- movs r2, 0xE
- ldrsh r0, [r0, r2]
- bl UnlockExclusivePokemon
- b _0802DE3E
- .align 2, 0
-_0802DDB4: .4byte gUnknown_203B2FC
-_0802DDB8:
- movs r0, 0x3
- bl sub_802DC28
- ldr r0, _0802DDD0
- ldr r0, [r0]
- ldr r0, [r0, 0x34]
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- bl UnlockExclusivePokemon
- b _0802DE3E
- .align 2, 0
-_0802DDD0: .4byte gUnknown_203B2FC
-_0802DDD4:
- movs r0, 0x1
- bl sub_802DC28
- b _0802DE3E
-_0802DDDC:
- ldr r0, _0802DDE0
- b _0802DE1C
- .align 2, 0
-_0802DDE0: .4byte gWonderMailClientThanksForRescuingMe
-_0802DDE4:
- ldr r0, _0802DDE8
- b _0802DE1C
- .align 2, 0
-_0802DDE8: .4byte gWonderMailClientThanksForRescuingThem
-_0802DDEC:
- ldr r0, _0802DDF0
- b _0802DE1C
- .align 2, 0
-_0802DDF0: .4byte gWonderMailClientEscorted
-_0802DDF4:
- ldr r0, _0802DDF8
- b _0802DE1C
- .align 2, 0
-_0802DDF8: .4byte gWonderMailClientItemDelivered1
-_0802DDFC:
- ldr r0, [r5]
- ldr r0, [r0, 0x34]
- ldrb r0, [r0, 0x10]
- bl FindItemInInventory
- adds r1, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0802DE1A
- adds r0, r1, 0
- bl ShiftItemsDownFrom
- bl FillInventoryGaps
-_0802DE1A:
- ldr r0, _0802DE2C
-_0802DE1C:
- ldr r2, [r5]
- adds r2, 0x38
- ldr r3, _0802DE30
- movs r1, 0
- bl sub_80141B4
- b _0802DE3E
- .align 2, 0
-_0802DE2C: .4byte gWonderMailClientItemDelivered2
-_0802DE30: .4byte 0x0000010d
-_0802DE34:
- ldr r0, [r5]
- adds r0, 0x8
- movs r1, 0x1
- bl sub_802F204
-_0802DE3E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_802DC9C
-
- thumb_func_start sub_802DE44
-sub_802DE44:
- push {lr}
- bl sub_802F298
- cmp r0, 0x1
- bls _0802DE5C
- cmp r0, 0x3
- bhi _0802DE5C
- bl sub_802F2C0
- movs r0, 0x7
- bl sub_802DC28
-_0802DE5C:
- pop {r0}
- bx r0
- thumb_func_end sub_802DE44
-
- thumb_func_start sub_802DE60
-sub_802DE60:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802DE78
- ldr r0, _0802DE80
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- bl sub_802DC28
-_0802DE78:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0802DE80: .4byte gUnknown_203B2FC
- thumb_func_end sub_802DE60
-
- thumb_func_start sub_802DE84
-sub_802DE84:
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _0802DED8
- movs r0, 0x7C
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r4]
- str r5, [r0, 0xC]
- bl sub_801317C
- ldr r0, [r4]
- ldr r1, [r0, 0xC]
- ldr r2, [r1]
- str r2, [r0, 0x10]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 3
- adds r1, 0x18
- adds r1, r0, r1
- str r1, [r0, 0x14]
- adds r0, 0x18
- bl sub_8006518
- ldr r1, [r4]
- ldr r2, [r1, 0x10]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, 0x18
- ldr r0, _0802DEDC
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- bl sub_802DF14
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0802DED8: .4byte gUnknown_203B300
-_0802DEDC: .4byte gUnknown_80E0264
- thumb_func_end sub_802DE84
-
- thumb_func_start sub_802DEE0
-sub_802DEE0:
- push {lr}
- ldr r0, _0802DF00
- ldr r0, [r0]
- ldr r1, [r0, 0x10]
- bl sub_8012A64
- cmp r0, 0x1
- beq _0802DF04
- cmp r0, 0x2
- bne _0802DF0E
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- b _0802DF10
- .align 2, 0
-_0802DF00: .4byte gUnknown_203B300
-_0802DF04:
- movs r0, 0
- bl PlayMenuSoundEffect
- movs r0, 0x3
- b _0802DF10
-_0802DF0E:
- movs r0, 0
-_0802DF10:
- pop {r1}
- bx r1
- thumb_func_end sub_802DEE0
-
- thumb_func_start sub_802DF14
-sub_802DF14:
- push {lr}
- bl sub_802DF6C
- bl sub_802DF88
- pop {r0}
- bx r0
- thumb_func_end sub_802DF14
-
- thumb_func_start sub_802DF24
-sub_802DF24:
- push {r4,r5,lr}
- ldr r4, _0802DF64
- ldr r2, [r4]
- cmp r2, 0
- beq _0802DF5E
- ldr r0, [r2, 0x10]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x18
- ldr r0, _0802DF68
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x18
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0802DF5E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DF64: .4byte gUnknown_203B300
-_0802DF68: .4byte gUnknown_80E0248
- thumb_func_end sub_802DF24
-
- thumb_func_start sub_802DF6C
-sub_802DF6C:
- push {lr}
- bl ResetUnusedInputStruct
- ldr r0, _0802DF84
- ldr r0, [r0]
- adds r0, 0x18
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r0}
- bx r0
- .align 2, 0
-_0802DF84: .4byte gUnknown_203B300
- thumb_func_end sub_802DF6C
-
- thumb_func_start sub_802DF88
-sub_802DF88:
- push {r4,lr}
- ldr r4, _0802DFAC
- ldr r0, [r4]
- ldr r0, [r0, 0x10]
- bl sub_80073B8
- ldr r0, [r4]
- ldr r0, [r0, 0xC]
- bl CreateRescueDescription
- ldr r0, [r4]
- ldr r0, [r0, 0x10]
- bl sub_80073E0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DFAC: .4byte gUnknown_203B300
- thumb_func_end sub_802DF88
-
.align 2,0
diff --git a/data/data_80F4278.s b/data/data_80F4278.s
index 1957696..7ad38cb 100644
--- a/data/data_80F4278.s
+++ b/data/data_80F4278.s
@@ -4854,8 +4854,8 @@ gUnknown_80FE2D0: @ 80FE2D0
gUnknown_80FE2EC: @ 80FE2EC
.incbin "baserom.gba", 0xFE2EC, 0x1C
- .global gUnknown_80FE308
-gUnknown_80FE308: @ 80FE308
+ .global gPtrItsaMonsterHouseMessage
+gPtrItsaMonsterHouseMessage: @ 80FE308
.incbin "baserom.gba", 0xFE308, 0x28
.global gUnknown_80FE330
@@ -8338,13 +8338,13 @@ gUnknown_810A350: @ 810A350
@ replacing .incbin "baserom.gba", 0x0010a350, 0xb
.byte 0x18, 0x19, 0x1e, 0x27, 0x31, 0x32, 0x33, 0x36, 0x37, 0x3d, 0x3f
- .global gUnknown_810A35B
-gUnknown_810A35B: @ 810A35B (item related)
+ .global gInvalidItemIDs
+gInvalidItemIDs: @ 810A35B (item related)
@ replacing .incbin "baserom.gba", 0x0010a35b, 0x10
.byte 0xed, 0xee, 0xef, 0xb1, 0xe9, 0x24, 0xd8, 0xd2, 0xb0, 0xdc, 0x32, 0x33, 0x34, 0xc2, 0xec, 0xf0
- .global gUnknown_810A36B
-gUnknown_810A36B: @ 810A36B
+ .global gTacticsTargetLeader
+gTacticsTargetLeader: @ 810A36B
@ replacing .incbin "baserom.gba", 0x0010a36b, 0xd
.byte 0x01
.byte 0x00
diff --git a/include/constants/iq_skill.h b/include/constants/iq_skill.h
index f36cee0..8e5809c 100644
--- a/include/constants/iq_skill.h
+++ b/include/constants/iq_skill.h
@@ -3,6 +3,7 @@
enum IQSkill
{
+ IQ_SKILL_NONE = 0x0,
IQ_SKILL_TYPE_ADVANTAGE_MASTER = 0x1,
IQ_SKILL_ITEM_CATCHER = 0x2,
IQ_SKILL_COURSE_CHECKER = 0x3,
diff --git a/include/constants/wonder_mail.h b/include/constants/wonder_mail.h
index 7ddaac7..c9626ae 100644
--- a/include/constants/wonder_mail.h
+++ b/include/constants/wonder_mail.h
@@ -1,15 +1,6 @@
#ifndef GUARD_CONSTANTS_WONDER_MAIL_H
#define GUARD_CONSTANTS_WONDER_MAIL_H
-enum MissionType
-{
- HELP_POKE,
- FIND_POKE,
- ESCORT,
- FIND_ITEM,
- DELIVER_ITEM
-};
-
enum RewardType
{
MONEY,
diff --git a/include/dungeon_entity.h b/include/dungeon_entity.h
index 7b56fd8..63c85d6 100644
--- a/include/dungeon_entity.h
+++ b/include/dungeon_entity.h
@@ -187,7 +187,8 @@ struct DungeonEntityData
u8 fill149[0x14E - 0x149];
/* 0x14E */ u16 visualFlags;
/* 0x150 */ u16 previousVisualFlags;
- u8 fill152[0x15C - 0x152];
+ /* 0x152 */ u8 unk152;
+ u8 fill153[0x15C - 0x153];
u8 unk15C;
u8 unk15D;
u8 unk15E;
diff --git a/include/dungeon_global_data.h b/include/dungeon_global_data.h
index 4d8883f..254a195 100644
--- a/include/dungeon_global_data.h
+++ b/include/dungeon_global_data.h
@@ -40,7 +40,8 @@ struct DungeonGlobalData
u16 unk66A;
u8 fill66C[0x671 - 0x66C];
/* 0x671 */ bool8 monsterHouseActive;
- u8 fill672[0x363C - 0x672];
+ /* 0x672 */ u8 unk672;
+ u8 fill673[0x363C - 0x673];
/* 0x363C */ u8 expYieldRankings[NUM_SPECIES];
u8 fill37E3[0x37FC - 0x37D9];
/* 0x37FC */ bool8 decoyActive;
diff --git a/include/exclusive_pokemon.h b/include/exclusive_pokemon.h
index 3fd09ea..17bb8ef 100644
--- a/include/exclusive_pokemon.h
+++ b/include/exclusive_pokemon.h
@@ -14,7 +14,7 @@ struct ExclusivePokemonData
{
u8 fill0[0x48];
u32 unk48[4];
- bool8 Exclusives[NUM_EXCLUSIVE_POKEMON];
+ /* 0x58 */ bool8 Exclusives[NUM_EXCLUSIVE_POKEMON];
};
#define RED_EXCLUSIVE(species) \
@@ -36,5 +36,6 @@ extern struct ExclusivePokemonData *gUnknown_203B498;
void LoadExclusivePokemon(void);
struct ExclusivePokemonData *GetExclusivePokemon(void);
void InitializeExclusivePokemon(void);
+void UnlockExclusivePokemon(s16 pokeID);
#endif // GUARD_EXCLUSIVE_POKEMON_H
diff --git a/include/item.h b/include/item.h
index 60a9014..5da4c67 100644
--- a/include/item.h
+++ b/include/item.h
@@ -114,6 +114,7 @@ void MoveToStorage(struct ItemSlot* slot);
void FillInventoryGaps();
bool8 sub_8091274(struct HeldItem* slot);
bool8 IsNotMoneyOrUsedTMItem(u8 id);
+s32 FindItemInInventory(u8 itemIndex);
void RestoreHeldItem(struct unkStruct_8094924*, struct HeldItem*);
diff --git a/include/map.h b/include/map.h
index d3d1ed9..a0a5660 100644
--- a/include/map.h
+++ b/include/map.h
@@ -5,11 +5,24 @@
#define MAX_ROOM_COUNT 24 // Empirical max, not sure if the code supports any more.
-struct MapTile
+
+struct MapTileBitFlagStair
{
/* 0x0 */ u8 tileFlags;
/* 0x1 */ bool8 stairs;
- u8 fill2[0x9 - 0x2];
+};
+
+struct MapTile
+{
+ // TODO: can we get rid of the union... is tileFlags a u16 only?
+ union MapTileUnion
+ {
+ struct MapTileBitFlagStair unk0;
+ u16 tileFlags_u16;
+ } MapTileUnion;
+ u16 unk4;
+ u16 unk6;
+ u8 unk8;
/* 0x9 */ u8 roomIndex;
// Bitwise flags for whether Pokémon can move to an adjacent tile. Bits correspond to directions in direction.h.
// Different sets of flags are used for Pokémon that can cross special terrain.
diff --git a/include/memory.h b/include/memory.h
index ef99757..1c8a61b 100644
--- a/include/memory.h
+++ b/include/memory.h
@@ -5,33 +5,33 @@
struct HeapSettings
{
- u8 *start;
- u32 size;
+ /* 0x0 */ u8 *start;
+ /* 0x4 */ u32 size;
};
struct HeapMemoryBlock {
- u8 *start;
- s32 size;
- s32 allocatedSize;
+ /* 0x0 */ u8 *start;
+ /* 0x4 */ s32 size;
+ /* 0x8 */ s32 allocatedSize;
};
struct HeapFreeListElement
{
- u32 unk_atb;
- u32 atb;
- u32 grp;
- struct HeapMemoryBlock block;
+ /* 0x0 */ u32 unk_atb;
+ /* 0x4 */ u32 atb;
+ /* 0x8 */ u32 grp;
+ /* 0xC */ struct HeapMemoryBlock block;
};
struct HeapDescriptor
{
u32 unk0;
- struct HeapDescriptor *parentHeap;
- struct HeapFreeListElement *freeList;
- s32 freeCount;
- u32 freeListLength;
- u8 *start;
- u32 size;
+ /* 0x4 */ struct HeapDescriptor *parentHeap;
+ /* 0x8 */ struct HeapFreeListElement *freeList;
+ /* 0xC */ s32 freeCount;
+ /* 0x10 */ u32 freeListLength;
+ /* 0x14 */ u8 *start;
+ /* 0x18 */ u32 size;
};
void InitHeap(void);
diff --git a/include/wonder_mail.h b/include/wonder_mail.h
index b89ce6e..155c780 100644
--- a/include/wonder_mail.h
+++ b/include/wonder_mail.h
@@ -44,9 +44,9 @@ struct WonderMail
struct WonderMailStruct_203B2C0
{
// size: 0x548
- u32 unk0;
- u32 state;
- u8 passwordBuffer[PASSWORD_BUFFER_SIZE];
+ /* 0x0 */ u32 fallbackState;
+ /* 0x4 */ u32 state;
+ /* 0x8 */ u8 passwordBuffer[PASSWORD_BUFFER_SIZE];
u8 unk3E;
u32 unk40;
u32 linkError;
@@ -67,9 +67,9 @@ struct WonderMailStruct_203B2C0
u8 padding8[0x4C];
struct UnkTextStruct2 unk35C[4];
struct UnkTextStruct2 unk3BC[4];
- u32 unkfill; // unkStruct_41C?
- struct OpenedFile *faceFile;
- u8 *faceData;
+ /* 0x41C */ u32 unkfill; // ItemSlot?
+ /* 0x420 */ struct OpenedFile *faceFile;
+ /* 0x424 */ u8 *faceData;
u16 unk428;
u16 unk42A;
u8 unk42C;
@@ -87,12 +87,12 @@ struct WonderMailStruct_203B2C0
struct WonderMailStruct_203B2C4
{
// size: 0x564
- u8 state;
- u32 unk4; // wonder mail link status??
- u8 passwordBuffer[PASSWORD_BUFFER_SIZE]; // Probably a buffer for entry
+ /* 0x0 */ u8 state;
+ /* 0x4 */ u32 fallbackState; // wonder mail link status??
+ /* 0x8 */ u8 passwordBuffer[PASSWORD_BUFFER_SIZE]; // Probably a buffer for entry
u8 unk3E;
u32 unk40;
- u32 linkError; // another link status
+ /* 0x44 */ u32 linkError; // another link status
u8 filler48[0x1B8 - 0x48];
struct unkStruct_8095228 unk1B8;
struct unkStruct_8095228 unk1E8;
@@ -112,9 +112,9 @@ struct WonderMailStruct_203B2C4
u8 unk42D;
u8 unk42E;
u32 unk430;
- u8 formattedString[0x100];
- s32 wonderMailMethod;
- u32 wonderMailMode;
+ /* 0x434 */ u8 formattedString[0x100];
+ /* 0x534 */ s32 wonderMailMethod;
+ /* 0x538 */ u32 wonderMailMode;
struct unkStruct_802F204 unk53C;
};
@@ -126,17 +126,41 @@ enum WonderMailMode {
};
enum WonderMailMethod {
- WONDER_MAIL_GAME_LINK = 3,
- WONDER_MAIL_PASSWORD = 5,
+ WONDER_MAIL_GAME_LINK = 3,
+ WONDER_MAIL_PASSWORD = 5,
};
enum WonderMailTypes {
- WONDER_MAIL_TYPE_SOS = 1,
- WONDER_MAIL_TYPE_AOK = 4,
- WONDER_MAIL_TYPE_THANK_YOU = 5,
- WONDER_MAIL_TYPE_WONDER = 5,
+ WONDER_MAIL_TYPE_SOS = 1,
+ WONDER_MAIL_TYPE_AOK = 4,
+ WONDER_MAIL_TYPE_THANK_YOU = 5,
+ WONDER_MAIL_TYPE_WONDER = 5,
+ // TODO: document 7
};
+enum WonderMailMissionTypes
+{
+ WONDER_MAIL_MISSION_TYPE_RESCUE_CLIENT = 0,
+ WONDER_MAIL_MISSION_TYPE_RESCUE_TARGET = 1,
+ WONDER_MAIL_MISSION_TYPE_ESCORT_CLIENT = 2,
+ WONDER_MAIL_MISSION_TYPE_FIND_ITEM = 3,
+ WONDER_MAIL_MISSION_TYPE_DELIVER_ITEM = 4,
+};
+enum WonderMailErrorMode {
+ WONDER_MAIL_GOOD = 0,
+ // TODO: document 1
+ WONDER_MAIL_NO_RESPONSE = 2,
+ WONDER_MAIL_INCORRECT_NUM_SYSTEMS = 3,
+ WONDER_MAIL_DIFFERENT_MODES = 4,
+ // TODO: document 5
+ WONDER_MAIL_NO_ROOM_STORAGE = 6,
+ WONDER_MAIL_DUPLICATE_MAIL = 7,
+ WONDER_MAIL_NOT_ELIGIBLE_1 = 9,
+ WONDER_MAIL_NOT_ELIGIBLE_2 = 11,
+ WONDER_MAIL_NO_ROOM_MAIL = 13,
+ // TODO: document 14
+ WONDER_MAIL_NOT_READY = 15,
+};
#endif
diff --git a/ld_script.txt b/ld_script.txt
index da30c0b..b913da1 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -103,7 +103,6 @@ SECTIONS {
asm/kecleon_items_1.o(.text);
src/kecleon_items_2.o(.text);
src/code_801AFA4.o(.text);
- asm/code_801AFA4.o(.text);
src/code_801B3C0.o(.text);
asm/code_801B3C0.o(.text);
src/code_801C620.o(.text);
@@ -129,6 +128,7 @@ SECTIONS {
asm/wonder_mail_2.o(.text);
src/wonder_mail_3.o(.text);
asm/wonder_mail_3.o(.text);
+ src/wonder_mail_802DF88.o(.text);
src/mailbox.o(.text);
asm/mailbox.o(.text);
src/mailbox_1.o(.text);
diff --git a/src/code_801AFA4.c b/src/code_801AFA4.c
index 3f00c22..117b34b 100644
--- a/src/code_801AFA4.c
+++ b/src/code_801AFA4.c
@@ -247,7 +247,6 @@ s32 GetNumMonsAbleToLearnItemMove(void)
s32 team [MAX_TEAM_MEMBERS];
struct PokemonStruct *preload;
-
length = sub_808D580(team);
gUnknown_203B22C->monsAbleToLearnMove = 0;
@@ -263,3 +262,22 @@ s32 GetNumMonsAbleToLearnItemMove(void)
}
return gUnknown_203B22C->monsAbleToLearnMove;
}
+
+// Unused
+bool8 sub_801B374(u8 itemIndex)
+{
+ u16 moveID;
+ struct PokemonStruct *puVar4;
+ s32 iVar5;
+
+ puVar4 = &gRecruitedPokemonRef->pokemon[0];
+ moveID = GetItemMove(itemIndex);
+
+ for(iVar5 = 0; iVar5 < NUM_SPECIES; iVar5++, puVar4++)
+ {
+ if((puVar4->unk0 >> 1 & 1) != 0)
+ if(CanMonLearnMove(moveID, puVar4->speciesNum))
+ return FALSE;
+ }
+ return TRUE;
+}
diff --git a/src/code_801C620.c b/src/code_801C620.c
index c28e347..9776487 100644
--- a/src/code_801C620.c
+++ b/src/code_801C620.c
@@ -1,6 +1,8 @@
#include "global.h"
+#include "constants/iq_skill.h"
#include "input.h"
#include "memory.h"
+#include "pokemon.h"
#include "text.h"
#include "subStruct_203B240.h"
@@ -8,7 +10,7 @@ struct unkStruct_203B240
{
// size: 0x94
s32 state;
- u8 unk4;
+ u8 chosenIQSkill;
u8 fill5[3];
s32 unk8;
s32 unkC;
@@ -45,17 +47,33 @@ extern void sub_8013F84();
extern void PlayMenuSoundEffect(u32);
extern char * GetIQSkillName(u8 r0);
extern char * GetIQSkillDescription(u8 r0);
+extern s32 GetNumAvailableIQSkills(u8 *param_1, s32 pokeIQ);
void sub_801C6D0(s32);
void sub_801C7D4();
void sub_801C6E4();
void sub_801C848();
-u32 sub_801C620(u8 param_1)
+bool8 HasNoAvailIQSkills(s16 species)
+{
+ s32 species_s32;
+ u8 iqSkillBuffer[NUM_IQ_SKILLS];
+ struct PokemonStruct *pokeStruct;
+
+ species_s32 = species;
+
+ pokeStruct = &gRecruitedPokemonRef->pokemon[species_s32];
+ if(GetNumAvailableIQSkills(iqSkillBuffer, pokeStruct->IQ) == 0)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+u32 sub_801C620(u8 iqSkill)
{
ResetSprites(1);
gUnknown_203B240 = MemoryAlloc(sizeof(struct unkStruct_203B240),8);
- gUnknown_203B240->unk4 = param_1;
+ gUnknown_203B240->chosenIQSkill = iqSkill;
sub_801317C(&gUnknown_203B240->unk88);
gUnknown_203B240->unk24 = 0;
sub_80140B4(gUnknown_203B240->unk28);
@@ -109,12 +127,12 @@ void sub_801C6E4(void)
case 0:
sub_8008C54(gUnknown_203B240->unk24);
sub_80073B8(gUnknown_203B240->unk24);
- skillName = GetIQSkillName(gUnknown_203B240->unk4);
+ skillName = GetIQSkillName(gUnknown_203B240->chosenIQSkill);
strcpy(gUnknown_202DE58,skillName);
xxx_format_and_draw(16,0,gUnknown_80DBE2C,0,0); // {ARG_MOVE_ITEM_0}
- xxx_call_draw_string(8,16,GetIQSkillDescription(gUnknown_203B240->unk4),gUnknown_203B240->unk24,0);
+ xxx_call_draw_string(8,16,GetIQSkillDescription(gUnknown_203B240->chosenIQSkill),gUnknown_203B240->unk24,0);
sub_80073E0(gUnknown_203B240->unk24);
- gUnknown_203B240->unkC = sub_8097DF0(GetIQSkillDescription(gUnknown_203B240->unk4),gUnknown_203B240->unk10);
+ gUnknown_203B240->unkC = sub_8097DF0(GetIQSkillDescription(gUnknown_203B240->chosenIQSkill),gUnknown_203B240->unk10);
gUnknown_203B240->unk20 = 0;
break;
case 1:
diff --git a/src/code_8040094.c b/src/code_8040094.c
index 4e30873..cdebf7b 100644
--- a/src/code_8040094.c
+++ b/src/code_8040094.c
@@ -25,34 +25,25 @@ extern void SendMessage(u32, const char *);
extern const char *gUnknown_80FD040; // It became brighter on the floor
-struct unk8049590
-{
- u32 unk0;
- u16 unk4;
-};
-
-extern struct unk8049590 *GetMapEntity(u32, u32);
+extern struct MapTile *GetMapEntity(u32, u32);
// Luminous Orb???
-void sub_804002C(u32 param_1)
+void HandleLuminousOrbAction(u32 param_1)
{
- struct unk8049590 *iVar1;
- int innerCounter;
- int iVar3;
- int iVar4;
+ struct MapTile *mapTile;
+ int XCoord;
+ int YCoord;
gDungeonGlobalData->unk1820B = 1;
- iVar3 = 0;
- do {
- innerCounter = 0;
- iVar4 = iVar3 + 1;
- do {
- iVar1 = GetMapEntity(innerCounter, iVar3);
- iVar1->unk4 = iVar1->unk4 | 1;
- innerCounter++;
- } while (innerCounter < 0x38);
- iVar3 = iVar4;
- } while (iVar4 < 0x20);
+
+ for(YCoord = 0; YCoord <= DUNGEON_MAX_SIZE_Y; YCoord++)
+ {
+ for(XCoord = 0; XCoord <= DUNGEON_MAX_SIZE_X; XCoord++)
+ {
+ mapTile = GetMapEntity(XCoord, YCoord);
+ mapTile->unk4 = mapTile->unk4 | 1;
+ }
+ }
sub_803F580(0);
sub_8049ED4();
sub_8040A84();
diff --git a/src/code_80521D0.c b/src/code_80521D0.c
index 8be49f8..272991d 100644
--- a/src/code_80521D0.c
+++ b/src/code_80521D0.c
@@ -1,9 +1,10 @@
#include "global.h"
+#include "dungeon_entity.h"
extern void sub_80526D0(u8 r0);
-extern u8 sub_8045888(u32 r0);
-extern void sub_80523A8(u32 r0, u32 r1, u8 r2);
-extern u8 sub_8052DC0(u32);
+extern u8 sub_8045888(struct DungeonEntity *r0);
+extern void sub_80523A8(struct DungeonEntity *r0, u32 r1, u8 r2);
+extern u8 sub_8052DC0(struct DungeonEntity *);
extern u8 sub_803F428(u32);
void sub_805229C(void)
@@ -11,26 +12,26 @@ void sub_805229C(void)
return sub_80526D0(0x50);
}
-void SendMessage(u32 r0, u32 r1)
+void SendMessage(struct DungeonEntity *r0, u32 r1)
{
if (sub_8045888(r0) != 0){
sub_80523A8(r0, r1, 1);
}
}
-void sub_80522C8(u32 r0, u32 r1)
+void sub_80522C8(struct DungeonEntity *r0, u32 r1)
{
if (sub_8045888(r0) != 0){
sub_80523A8(r0, r1, 0);
}
}
-void sub_80522E8(u32 r0, u32 r1)
+void sub_80522E8(struct DungeonEntity *r0, u32 r1)
{
sub_80523A8(r0, r1, 0);
}
-void sub_80522F4(u32 r0, u32 r1, u32 r2)
+void sub_80522F4(struct DungeonEntity *r0, struct DungeonEntity *r1, u32 r2)
{
u8 temp;
u32 temp_reg;
@@ -48,7 +49,7 @@ void sub_80522F4(u32 r0, u32 r1, u32 r2)
}
}
-void sub_805232C(u32 r0, u32 r1, u32 r2)
+void sub_805232C(struct DungeonEntity *r0, struct DungeonEntity *r1, u32 r2)
{
u8 temp;
u32 temp_reg;
@@ -66,7 +67,7 @@ void sub_805232C(u32 r0, u32 r1, u32 r2)
}
}
-void sub_8052364(u32 r0, u32 r1, u32 r2)
+void sub_8052364(struct DungeonEntity *r0, u32 r1, u32 r2)
{
u8 temp;
u32 temp_reg;
@@ -84,7 +85,7 @@ void sub_8052364(u32 r0, u32 r1, u32 r2)
}
}
-void sub_805239C(u32 r0, u32 r1)
+void sub_805239C(struct DungeonEntity *r0, u32 r1)
{
sub_80523A8(r0, r1, 1);
}
diff --git a/src/code_80521D0_1.c b/src/code_80521D0_1.c
index a5cd497..0ed02f1 100644
--- a/src/code_80521D0_1.c
+++ b/src/code_80521D0_1.c
@@ -5,6 +5,7 @@
#include "constants/friend_area.h"
#include "pokemon.h"
#include "constants/direction.h"
+#include "map.h"
extern struct DungeonEntity *xxx_call_GetLeaderEntity(void);
extern struct DungeonEntity *sub_8085680(u32);
@@ -91,7 +92,7 @@ extern void sub_804539C(struct DungeonEntity *, u32, u32);
extern void sub_803E46C(u32);
extern void sub_8042B0C(struct DungeonEntity *);
extern void SetFacingDirection(struct DungeonEntity *, u32);
-extern void sub_8052910(u32 *);
+extern void DisplayDungeonDialogue(u32 *);
extern void sub_803E708(u32, u32);
extern u8 EntityExists(struct DungeonEntity *);
extern u8 HasRecruitedMon(u32);
@@ -114,10 +115,10 @@ extern void sub_8085EB0();
extern void sub_808563C(void *);
extern void sub_80858AC(u32 *, u32);
-void sub_808C5AC(struct DungeonEntity *r0);
+void SetupDeoxysFightHP(struct DungeonEntity *r0);
void sub_808C550(void);
void sub_808C590(struct DungeonEntity *r0);
-void sub_808C5A0(struct DungeonEntity *r0);
+void SetupDeoxysFacingDirection(struct DungeonEntity *r0);
void sub_808C9B0();
void sub_808C8E0(struct DungeonEntity *param_1);
void sub_808C360(void);
@@ -138,16 +139,7 @@ extern void sub_8049ED4();
extern void sub_8040A84();
extern void sub_8086A54(struct DungeonEntity *);
-struct unk8049590
-{
- u16 unk0;
- u16 fill2;
- u16 unk4;
- u16 unk6;
- u8 unk8;
-};
-
-extern struct unk8049590 *GetMapEntity(u32, u32);
+extern struct MapTile *GetMapEntity(u32, u32);
extern void sub_806BFC0(struct DungeonEntityData *, u32);
void sub_808BBA8(struct DungeonEntity *param_1)
@@ -198,13 +190,13 @@ void JirachiWishGrantDialogue(struct DungeonEntity *param_1)
param_1->entityData->unk15D = 1;
// Nnnnnnnnnn!
- sub_8052910(&gUnknown_81058A8);
+ DisplayDungeonDialogue(&gUnknown_81058A8);
PlaySoundEffect(0x375);
sub_80861F8(0x67,param_1,1);
PlaySoundEffect(0x2a8);
uVar2 = sub_80861F8(0x68,param_1,0);
// Taaaaaaaah!
- sub_8052910(&gUnknown_81058C4);
+ DisplayDungeonDialogue(&gUnknown_81058C4);
if (sub_800E9A8(uVar2) != 0) {
sub_800DC14(uVar2);
}
@@ -214,12 +206,12 @@ void JirachiWishGrantDialogue(struct DungeonEntity *param_1)
void sub_808BCE4(void)
{
- struct unk8049590 *puVar1;
+ struct MapTile *puVar1;
puVar1 = GetMapEntity(gDungeonGlobalData->unkE23C, gDungeonGlobalData->unkE23E);
- puVar1->unk0 &= 0xfffc;
- puVar1->unk0 |= 16;
- puVar1->unk0 &= 0xfdff;
+ puVar1->MapTileUnion.tileFlags_u16 &= 0xfffc;
+ puVar1->MapTileUnion.tileFlags_u16 |= TILE_TYPE_MAP_EDGE;
+ puVar1->MapTileUnion.tileFlags_u16 &= 0xfdff;
sub_8049884();
sub_8049B8C();
sub_8049ED4();
@@ -228,13 +220,13 @@ void sub_808BCE4(void)
void sub_808BD38(void)
{
- struct unk8049590 *puVar1;
+ struct MapTile *puVar1;
puVar1 = GetMapEntity(gDungeonGlobalData->unkE23C, gDungeonGlobalData->unkE23E);
- puVar1->unk0 &= 0xfffc;
- puVar1->unk0 |= 1;
- puVar1->unk0 &= 0xffef;
- puVar1->unk0 |= (0x200);
+ puVar1->MapTileUnion.tileFlags_u16 &= 0xfffc;
+ puVar1->MapTileUnion.tileFlags_u16 |= TILE_TYPE_FLOOR;
+ puVar1->MapTileUnion.tileFlags_u16 &= 0xffef;
+ puVar1->MapTileUnion.tileFlags_u16 |= TILE_TYPE_STAIRS;
puVar1->unk8 = 1;
sub_8049884();
sub_8049B8C();
@@ -284,7 +276,7 @@ void sub_808BDEC(void)
LugiaEntity = sub_8085680(0x1b);
sub_8083F14();
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
if (HasRecruitedMon(SPECIES_LUGIA)) {
sub_8083E88(0x23);
@@ -320,26 +312,26 @@ void LugiaPreFightDialogue(void)
else {
sub_8083F14();
sub_8086448();
- sub_8052910(&gUnknown_8105E88);
+ DisplayDungeonDialogue(&gUnknown_8105E88);
sub_8083EA8(0x23,0x3c);
sub_808C0CC();
- sub_8052910(&gUnknown_8105EF8);
+ DisplayDungeonDialogue(&gUnknown_8105EF8);
sub_808BFA0();
- sub_8052910(&gUnknown_8105F38);
+ DisplayDungeonDialogue(&gUnknown_8105F38);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_8105F74);
+ DisplayDungeonDialogue(&gUnknown_8105F74);
PlaySoundEffect(0x1f8);
sub_80861D4(LugiaEntity,0xd,0);
sub_803E708(0x2b,0x46);
sub_80861B8(LugiaEntity,0,0);
- sub_8052910(&gUnknown_8105FA0);
+ DisplayDungeonDialogue(&gUnknown_8105FA0);
sub_808BFA0();
- sub_8052910(&gUnknown_8105FD8);
+ DisplayDungeonDialogue(&gUnknown_8105FD8);
sub_808C02C();
sub_8085C54(0xffffff06,0xffffff06,0xffffff06,1,0);
sub_8083F14();
sub_80861D4(LugiaEntity,7,0);
- sub_8052910(&gUnknown_8106024);
+ DisplayDungeonDialogue(&gUnknown_8106024);
sub_808BFA0();
SetupBossFightHP(LugiaEntity,800,0x20);
sub_8083E88(0x23);
@@ -424,7 +416,7 @@ void sub_808C10C(void)
KyogreEntity = sub_8085680(0x1c);
sub_8083F14();
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
if (HasRecruitedMon(SPECIES_KYOGRE)) {
sub_8068FE0(KyogreEntity,0x21c,0);
}
@@ -461,35 +453,35 @@ void KyogrePreFightDialogue(void)
sub_8083EA8(0x23,0x3c);
SpriteLookAroundEffect(LeaderEntity);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_81062A8);
+ DisplayDungeonDialogue(&gUnknown_81062A8);
sub_803E708(10,0x46);
gDungeonGlobalData->unk2 = 1;
}
else {
- sub_8052910(&gUnknown_8106074);
+ DisplayDungeonDialogue(&gUnknown_8106074);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_81060BC);
+ DisplayDungeonDialogue(&gUnknown_81060BC);
sub_803E708(10,0x46);
nullsub_99();
sub_803E708(10,0x46);
// Gwwwwwooooooooh
- sub_8052910(&gUnknown_8106104);
+ DisplayDungeonDialogue(&gUnknown_8106104);
sub_803E708(10,0x46);
sub_8083EA8(0x23,0x3c);
sub_808C360();
// My duels against {ARG_POKEMON_3} (Groudon) left us both exhausted
- sub_8052910(&gUnknown_8106140);
+ DisplayDungeonDialogue(&gUnknown_8106140);
KyogreScreenFlash();
// I am {ARG_POKEMON_2} (Kyogre)!
// The lord of the sea!
- sub_8052910(&gUnknown_8106214);
+ DisplayDungeonDialogue(&gUnknown_8106214);
KyogreScreenFlash();
// Witness the destructive force of my waves!
- sub_8052910(&gUnknown_8106244);
+ DisplayDungeonDialogue(&gUnknown_8106244);
KyogreScreenFlash();
// Marvel at my awesome
// power!
- sub_8052910(&gUnknown_810627C);
+ DisplayDungeonDialogue(&gUnknown_810627C);
sub_803E708(10,0x46);
SetupBossFightHP(KyogreEntity,600,0xb);
sub_8083E88(0x23);
@@ -541,14 +533,14 @@ void sub_808C3A0(void)
LeaderEntity = xxx_call_GetLeaderEntity();
sub_8083F14();
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
if (HasRecruitedMon(SPECIES_DEOXYS_NORMAL)) {
sub_808563C(sub_808C590);
}
else {
gDungeonGlobalData->unk7 = 1;
- sub_808563C(sub_808C5A0);
+ sub_808563C(SetupDeoxysFacingDirection);
}
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3);
CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_DEOXYS_NORMAL);
@@ -574,16 +566,16 @@ void DeoxysPreFightDialogue(void)
sub_80866C4(&gUnknown_81063C4);
}
else {
- sub_8052910(&gUnknown_81062B4);
+ DisplayDungeonDialogue(&gUnknown_81062B4);
sub_8083EA8(0x1a,0x3c);
sub_808C550();
- sub_8052910(&gUnknown_81062E8);
+ DisplayDungeonDialogue(&gUnknown_81062E8);
DeoxysScreenFlash();
- sub_8052910(&gUnknown_8106368);
+ DisplayDungeonDialogue(&gUnknown_8106368);
DeoxysScreenFlash();
- sub_8052910(&gUnknown_8106390);
+ DisplayDungeonDialogue(&gUnknown_8106390);
sub_803E708(10,0x46);
- sub_808563C(sub_808C5AC);
+ sub_808563C(SetupDeoxysFightHP);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
}
}
@@ -626,12 +618,12 @@ void sub_808C590(struct DungeonEntity *r0)
sub_8068FE0(r0, 0x21C, 0);
}
-void sub_808C5A0(struct DungeonEntity *r0)
+void SetupDeoxysFacingDirection(struct DungeonEntity *r0)
{
SetFacingDirection(r0, DIRECTION_SOUTH);
}
-void sub_808C5AC(struct DungeonEntity *r0)
+void SetupDeoxysFightHP(struct DungeonEntity *r0)
{
SetupBossFightHP(r0, 950, 0x20);
}
@@ -648,7 +640,7 @@ void sub_808C5C0(void)
CelebiEntity = sub_8085680(0x1e);
sub_8083E88(0x7f);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
SetFacingDirection(CelebiEntity, DIRECTION_SOUTH);
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY);
uVar3 = sub_803F994();
@@ -678,7 +670,7 @@ void CelebiJoinDialogue(void)
SpriteLookAroundEffect(LeaderEntity);
sub_803E708(10,0x46);
// .........
- sub_8052910(&gUnknown_810663C);
+ DisplayDungeonDialogue(&gUnknown_810663C);
}
else
{
@@ -687,14 +679,14 @@ void CelebiJoinDialogue(void)
sub_80862BC(LeaderEntity);
sub_803E708(10,0x46);
// Oh? There's someone there.
- sub_8052910(&gUnknown_81063D0);
+ DisplayDungeonDialogue(&gUnknown_81063D0);
sub_803E708(10,0x46);
sub_8086598();
sub_8086598();
sub_8086598();
sub_8086598();
// The Time-Traveling Pokemon {ARG_POKEMON_2} (Celebi)!
- sub_8052910(&gUnknown_8106400);
+ DisplayDungeonDialogue(&gUnknown_8106400);
PlaySoundEffect(0x1c7);
sub_806CDD4(CelebiEntity,10,DIRECTION_SOUTH);
sub_803E708(0x14,0x46);
@@ -702,7 +694,7 @@ void CelebiJoinDialogue(void)
sub_803E708(4,0x46);
PlaySoundEffect(0x1c7);
sub_806CDD4(CelebiEntity,10,DIRECTION_SOUTH);
- sub_8052910(&gUnknown_810643C);
+ DisplayDungeonDialogue(&gUnknown_810643C);
sub_803E708(10,0x46);
state = 0;
do {
@@ -730,11 +722,11 @@ void CelebiJoinDialogue(void)
sub_803E708(0x1a,0x46);
PlaySoundEffect(0x1d5);
sub_803E708(0x1c,0x46);
- sub_8052910(&gUnknown_8106468);
+ DisplayDungeonDialogue(&gUnknown_8106468);
sub_803E708(10,0x46);
sub_806FDF4(LeaderEntity,CelebiEntity,&CelebiEntity);
sub_8083E88(0x7f);
- sub_8052910(&gUnknown_810648C);
+ DisplayDungeonDialogue(&gUnknown_810648C);
sub_803E708(10,0x46);
PlaySoundEffect(0x1c7);
sub_80861D4(CelebiEntity,0xd,0);
@@ -743,7 +735,7 @@ void CelebiJoinDialogue(void)
sub_803E708(0x1a,0x46);
PlaySoundEffect(0x1d5);
sub_803E708(0x1b,0x46);
- sub_8052910(&gUnknown_81064BC);
+ DisplayDungeonDialogue(&gUnknown_81064BC);
sub_803E708(10,0x46);
state = 2;
}
@@ -763,15 +755,15 @@ void CelebiJoinDialogue(void)
else
{
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_8106500);
+ DisplayDungeonDialogue(&gUnknown_8106500);
sub_80861F8(0x3e,CelebiEntity,1);
sub_803E708(0x18,0x46);
sub_80861F8(0x3e,CelebiEntity,1);
sub_803E708(0xe,0x46);
- sub_8052910(&gUnknown_8106534);
+ DisplayDungeonDialogue(&gUnknown_8106534);
sub_803E708(10,0x46);
sub_808C8E0(CelebiEntity);
- sub_8052910(&gUnknown_8106560);
+ DisplayDungeonDialogue(&gUnknown_8106560);
sub_803E708(10,0x46);
state = 2;
}
@@ -820,7 +812,7 @@ void CelebiJoinDialogue(void)
"\tmovs r1, 0x46\n"
"\tbl sub_803E708\n"
"\tldr r0, _0808C67C\n"
- "\tbl sub_8052910\n"
+ "\tbl DisplayDungeonDialogue\n"
"\tb _0808C8AC\n"
"\t.align 2, 0\n"
"_0808C67C: .4byte gUnknown_810663C\n"
@@ -836,7 +828,7 @@ void CelebiJoinDialogue(void)
"\tmovs r1, 0x46\n"
"\tbl sub_803E708\n"
"\tldr r0, _0808C71C\n"
- "\tbl sub_8052910\n"
+ "\tbl DisplayDungeonDialogue\n"
"\tmovs r0, 0xA\n"
"\tmovs r1, 0x46\n"
"\tbl sub_803E708\n"
@@ -845,7 +837,7 @@ void CelebiJoinDialogue(void)
"\tbl sub_8086598\n"
"\tbl sub_8086598\n"
"\tldr r0, _0808C720\n"
- "\tbl sub_8052910\n"
+ "\tbl DisplayDungeonDialogue\n"
"\tldr r4, _0808C724\n"
"\tadds r0, r4, 0\n"
"\tbl PlaySoundEffect\n"
@@ -869,7 +861,7 @@ void CelebiJoinDialogue(void)
"\tmovs r2, 0\n"
"\tbl sub_806CDD4\n"
"\tldr r0, _0808C728\n"
- "\tbl sub_8052910\n"
+ "\tbl DisplayDungeonDialogue\n"
"\tmovs r0, 0xA\n"
"\tmovs r1, 0x46\n"
"\tbl sub_803E708\n"
@@ -945,7 +937,7 @@ void CelebiJoinDialogue(void)
"\tmovs r1, 0x46\n"
"\tbl sub_803E708\n"
"\tldr r0, _0808C818\n"
- "\tbl sub_8052910\n"
+ "\tbl DisplayDungeonDialogue\n"
"\tmovs r0, 0xA\n"
"\tmovs r1, 0x46\n"
"\tbl sub_803E708\n"
@@ -956,7 +948,7 @@ void CelebiJoinDialogue(void)
"\tmovs r0, 0x7F\n"
"\tbl sub_8083E88\n"
"\tldr r0, _0808C81C\n"
- "\tbl sub_8052910\n"
+ "\tbl DisplayDungeonDialogue\n"
"\tmovs r0, 0xA\n"
"\tmovs r1, 0x46\n"
"\tbl sub_803E708\n"
@@ -1012,7 +1004,7 @@ void CelebiJoinDialogue(void)
"\tmovs r1, 0x46\n"
"\tbl sub_803E708\n"
"\tldr r0, _0808C8D0\n"
- "\tbl sub_8052910\n"
+ "\tbl DisplayDungeonDialogue\n"
"\tldr r1, [sp]\n"
"\tmovs r0, 0x3E\n"
"\tmovs r2, 0x1\n"
@@ -1028,7 +1020,7 @@ void CelebiJoinDialogue(void)
"\tmovs r1, 0x46\n"
"\tbl sub_803E708\n"
"\tldr r0, _0808C8D4\n"
- "\tbl sub_8052910\n"
+ "\tbl DisplayDungeonDialogue\n"
"\tmovs r0, 0xA\n"
"\tmovs r1, 0x46\n"
"\tbl sub_803E708\n"
@@ -1036,7 +1028,7 @@ void CelebiJoinDialogue(void)
"\tbl sub_808C8E0\n"
"\tldr r0, _0808C8D8\n"
"_0808C898:\n"
- "\tbl sub_8052910\n"
+ "\tbl DisplayDungeonDialogue\n"
"\tmovs r0, 0xA\n"
"\tmovs r1, 0x46\n"
"\tbl sub_803E708\n"
@@ -1116,7 +1108,7 @@ void sub_808C998(void)
{
// Defeat the opposing team to win
// Be careful, your opponents are tough
- sub_8052910(&gUnknown_8106720);
+ DisplayDungeonDialogue(&gUnknown_8106720);
sub_803E708(0xA, 0x46);
}
@@ -1135,7 +1127,7 @@ void sub_808C9C4(void)
MedichamEntity = sub_8085680(7);
sub_8083E88(0x72);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
SetFacingDirection(MedichamEntity, DIRECTION_SOUTH);
sub_8085860(LeaderEntity->posWorldX, LeaderEntity->posWorldY - 3);
@@ -1152,12 +1144,12 @@ void MedichamRescueDialogue(void)
SpriteLookAroundEffect(MedichamEntity);
sub_803E708(0xA, 0x46);
// Oh my I can't seem to find a way out...
- sub_8052910(&gUnknown_8106778);
+ DisplayDungeonDialogue(&gUnknown_8106778);
sub_803E708(0xA, 0x46);
sub_80869E4(MedichamEntity, 4, 2, 4);
sub_803E708(0xA, 0x46);
// What am I to do...?
- sub_8052910(&gUnknown_81067BC);
+ DisplayDungeonDialogue(&gUnknown_81067BC);
sub_803E708(0xA, 0x46);
sub_8086448();
sub_8086598();
@@ -1165,7 +1157,7 @@ void MedichamRescueDialogue(void)
sub_80862BC(MedichamEntity);
sub_803E708(0x20, 0x46);
sub_80869E4(MedichamEntity, 4, 2, 0);
- sub_8052910(&gUnknown_81067E0);
+ DisplayDungeonDialogue(&gUnknown_81067E0);
sub_803E708(0xA, 0x46);
PlaySoundEffect(0x1c7);
sub_806CDD4(MedichamEntity, 0xA, DIRECTION_SOUTH);
@@ -1179,7 +1171,7 @@ void MedichamRescueDialogue(void)
// I am so lucky
//
// There appears to be no one here
- sub_8052910(&gUnknown_8106834);
+ DisplayDungeonDialogue(&gUnknown_8106834);
sub_803E708(0xA, 0x46);
sub_806CDD4(MedichamEntity, 0, DIRECTION_SOUTH);
for(counter = 0x17; counter >= 0; counter--)
@@ -1204,7 +1196,7 @@ void sub_808CB5C(void)
MedichamEntity = sub_8085680(7);
sub_8083E88(0x72);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_8068FE0(MedichamEntity, 0x21C, 0);
sub_8085860(LeaderEntity->posWorldX, LeaderEntity->posWorldY);
CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_MEDICHAM);
@@ -1223,7 +1215,7 @@ void sub_808CBB0(void)
SmeargleEntity = sub_8085680(0x1F);
sub_8083E88(0x72);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
SetFacingDirection(SmeargleEntity, DIRECTION_SOUTH);
sub_8085860(LeaderEntity->posWorldX, LeaderEntity->posWorldY - 3);
@@ -1241,14 +1233,14 @@ void SmeargleRescueDialogue(void)
sub_803E708(0xA, 0x46);
// Ohhh...
// I've lost my bearings
- sub_8052910(&gUnknown_810688C);
+ DisplayDungeonDialogue(&gUnknown_810688C);
sub_803E708(0xA, 0x46);
sub_80869E4(SmeargleEntity, 4, 2, 4);
sub_803E708(0xA, 0x46);
// I can't get out...
// I'm hungry...
// I'm in trouble
- sub_8052910(&gUnknown_81068D0);
+ DisplayDungeonDialogue(&gUnknown_81068D0);
sub_803E708(0xA, 0x46);
sub_8086448();
sub_8086598();
@@ -1257,7 +1249,7 @@ void SmeargleRescueDialogue(void)
sub_803E708(0x20, 0x46);
sub_80869E4(SmeargleEntity, 4, 2, 0);
// Oh! You are?
- sub_8052910(&gUnknown_8106918);
+ DisplayDungeonDialogue(&gUnknown_8106918);
sub_803E708(0xA, 0x46);
PlaySoundEffect(0x1c7);
sub_806CDD4(SmeargleEntity, 0xA, DIRECTION_SOUTH);
@@ -1269,7 +1261,7 @@ void SmeargleRescueDialogue(void)
sub_803E708(0x14, 0x46);
// Did you maybe come to rescue me?
// Am I glad to see you
- sub_8052910(&gUnknown_8106934);
+ DisplayDungeonDialogue(&gUnknown_8106934);
sub_803E708(0xA, 0x46);
sub_806CDD4(SmeargleEntity, 0, DIRECTION_SOUTH);
for(counter = 0x17; counter >= 0; counter--)
@@ -1295,7 +1287,7 @@ void sub_808CD44(void)
SmeargleEntity = sub_8085680(0x1F);
sub_8083E88(0x72);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
sub_8068FE0(SmeargleEntity, 0x21C, 0);
sub_8085860(LeaderEntity->posWorldX, LeaderEntity->posWorldY - 3);
diff --git a/src/code_8057824_1.c b/src/code_8057824_1.c
index 502e8ee..f79299a 100644
--- a/src/code_8057824_1.c
+++ b/src/code_8057824_1.c
@@ -227,7 +227,7 @@ extern void sub_8041888(u32);
extern void sub_80861B8(struct DungeonEntity *, u32, u32);
extern void sub_8083ED8(u32);
extern void sub_803E708(u32, u32);
-extern void sub_8052910(u32 *r0);
+extern void DisplayDungeonDialogue(u32 *r0);
extern void sub_8083E88(u32);
extern void sub_808BC20(struct DungeonEntity *);
@@ -293,10 +293,10 @@ void SuicuneScreenFlash();
void sub_808A904(struct DungeonEntity * param_1);
void HoOhScreenFlash(void);
void LatiosScreenFlash(void);
-void sub_808B2B0(struct DungeonEntity *r0);
-void sub_808B2C4(struct DungeonEntity *r0);
-void sub_808B2D4(struct DungeonEntity *r0);
-void sub_808B2E4(struct DungeonEntity *r0);
+void SetupRegiFacingDirection(struct DungeonEntity *r0);
+void SetupRegirockFightHP(struct DungeonEntity *r0);
+void SetupRegiceFightHP(struct DungeonEntity *r0);
+void SetupRegisteelFightHP(struct DungeonEntity *r0);
void sub_808B50C(void);
void sub_8089B64(struct DungeonEntity *param_1);
void MewtwoScreenFlash(void);
@@ -375,18 +375,18 @@ void ZapdosReFightDialogue(void)
ZapdosEntity = sub_8085680(8);
sub_8086448();
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_81017E4);
+ DisplayDungeonDialogue(&gUnknown_81017E4);
sub_803E708(10,0x46);
PlaySoundEffect(0x1da);
- sub_8052910(&gUnknown_81015A0);
+ DisplayDungeonDialogue(&gUnknown_81015A0);
sub_803E708(10,0x46);
sub_8087704(ZapdosEntity);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_8101898);
+ DisplayDungeonDialogue(&gUnknown_8101898);
sub_808775C(1);
- sub_8052910(&gUnknown_81018EC);
+ DisplayDungeonDialogue(&gUnknown_81018EC);
sub_808775C(2);
- sub_8052910(&gUnknown_8101918);
+ DisplayDungeonDialogue(&gUnknown_8101918);
SetupBossFightHP(ZapdosEntity,300,0xb);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
}
@@ -405,15 +405,15 @@ void ZapdosPostStoryPreFightDialogue(void)
else {
sub_808775C(1);
PlaySoundEffect(0x1da);
- sub_8052910(&gUnknown_810193C);
+ DisplayDungeonDialogue(&gUnknown_810193C);
sub_8087704(ZapdosEntity);
- sub_8052910(&gUnknown_8101970);
+ DisplayDungeonDialogue(&gUnknown_8101970);
sub_808775C(1);
- sub_8052910(&gUnknown_8101994);
+ DisplayDungeonDialogue(&gUnknown_8101994);
sub_808775C(2);
- sub_8052910(&gUnknown_81019E4);
+ DisplayDungeonDialogue(&gUnknown_81019E4);
sub_808775C(2);
- sub_8052910(&gUnknown_8101A04);
+ DisplayDungeonDialogue(&gUnknown_8101A04);
sub_803E708(10,0x46);
SetupBossFightHP(ZapdosEntity,300,0xb);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
@@ -481,7 +481,7 @@ void sub_80877E8(void)
sub_8083E88(0x26);
sub_8085374();
sub_80854D4();
- sub_8085930(6);
+ sub_8085930(DIRECTION_WEST);
sub_80855E4(sub_8086A3C);
SetFacingDirection(MoltresEntity, DIRECTION_SOUTH);
sub_8086A3C(MoltresEntity);
@@ -501,7 +501,7 @@ void sub_8087848(void)
MoltresEntity = sub_8085680(9);
sub_8083E88(0x26);
sub_80854D4();
- sub_8085930(6);
+ sub_8085930(DIRECTION_WEST);
sub_80855E4(sub_8086A3C);
if (sub_8086AE4(SPECIES_MOLTRES)) {
sub_8068FE0(MoltresEntity,0x21c,0);
@@ -540,58 +540,58 @@ void MoltresPreFightDialogue(void)
sub_8087D80(0xc,5);
sub_8086500();
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_8101A9C);
+ DisplayDungeonDialogue(&gUnknown_8101A9C);
sub_803E708(10,0x46);
sub_80869E4(PartnerEntity,4,1,5);
sub_803E708(4,0x46);
SpriteLookAroundEffect(PartnerEntity);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_8101AD4);
+ DisplayDungeonDialogue(&gUnknown_8101AD4);
sub_803E708(10,0x46);
sub_8087D80(0xc,5);
sub_8087DE8(9,5);
- sub_8052910(&gUnknown_8101C30);
+ DisplayDungeonDialogue(&gUnknown_8101C30);
sub_803E708(10,0x46);
sub_80869E4(PartnerEntity,4,1,2);
sub_80869E4(LeaderEntity,4,2,6);
- sub_8052910(&gUnknown_8101CBC);
+ DisplayDungeonDialogue(&gUnknown_8101CBC);
sub_803E708(10,0x46);
sub_80869E4(PartnerEntity,4,2,6);
sub_8086690();
- sub_8052910(&gUnknown_8101D8C);
+ DisplayDungeonDialogue(&gUnknown_8101D8C);
sub_803E708(10,0x46);
- sub_8085930(5);
+ sub_8085930(DIRECTION_NORTHWEST);
sub_803E708(4,0x46);
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
PlaySoundEffect(0x2f2);
sub_8083F14();
sub_8087F24();
- sub_8052910(&gUnknown_8101DA0);
+ DisplayDungeonDialogue(&gUnknown_8101DA0);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_8101E1C);
+ DisplayDungeonDialogue(&gUnknown_8101E1C);
sub_803E708(10,0x46);
PlaySoundEffect(0x1cf);
sub_80856E0(PartnerEntity,4);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_8101EAC);
+ DisplayDungeonDialogue(&gUnknown_8101EAC);
sub_803E708(10,0x46);
sub_8087EB0();
PlaySoundEffect(0x1da);
- sub_8052910(&gUnknown_8102070);
+ DisplayDungeonDialogue(&gUnknown_8102070);
sub_803E708(10,0x46);
sub_8087D80(9,5);
sub_8087DE8(0xb,5);
- sub_8052910(&gUnknown_81020A4);
+ DisplayDungeonDialogue(&gUnknown_81020A4);
sub_803E708(10,0x46);
sub_8087D80(0xc,5);
sub_8087DE8(9,5);
sub_8087D30(MoltresEntity);
sub_808663C();
sub_8087EB0();
- sub_8052910(&gUnknown_81020D4);
+ DisplayDungeonDialogue(&gUnknown_81020D4);
sub_803E708(10,0x46);
sub_8087DE8(0xb,6);
- sub_8052910(&gUnknown_8102108);
+ DisplayDungeonDialogue(&gUnknown_8102108);
sub_803E708(10,0x46);
SetupBossFightHP(MoltresEntity,400,0xb);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
@@ -612,29 +612,29 @@ void MoltresReFightDialogue(void)
sub_803E708(10,0x46);
SpriteLookAroundEffect(PartnerEntity);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_8102158);
+ DisplayDungeonDialogue(&gUnknown_8102158);
sub_803E708(10,0x46);
sub_80869E4(PartnerEntity,4,1,2);
sub_80869E4(LeaderEntity,4,2,6);
- sub_8052910(&gUnknown_8102190);
+ DisplayDungeonDialogue(&gUnknown_8102190);
sub_803E708(10,0x46);
sub_80869E4(PartnerEntity,4,2,6);
sub_80869E4(LeaderEntity,4,2,6);
sub_8086690();
sub_8087F24();
sub_803E708(10,0x46);
- sub_8085930(5);
+ sub_8085930(DIRECTION_NORTHWEST);
sub_803E708(4,0x46);
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_8087D30(MoltresEntity);
sub_808663C();
sub_8087EB0();
- sub_8052910(&gUnknown_8102200);
+ DisplayDungeonDialogue(&gUnknown_8102200);
sub_803E708(10,0x46);
sub_8087DE8(0xb,6);
- sub_8052910(&gUnknown_8102254);
+ DisplayDungeonDialogue(&gUnknown_8102254);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_81022F8);
+ DisplayDungeonDialogue(&gUnknown_81022F8);
sub_803E708(10,0x46);
SetupBossFightHP(MoltresEntity,400,0xb);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
@@ -650,29 +650,29 @@ void MoltresPostStoryPreFightDialogue(void)
sub_8087D80(0xc,5);
sub_808654C();
if (sub_8086AE4(SPECIES_MOLTRES)) {
- sub_8085930(5);
+ sub_8085930(DIRECTION_NORTHWEST);
sub_803E708(4,0x46);
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_803E708(4,0x46);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_8100D3C);
+ DisplayDungeonDialogue(&gUnknown_8100D3C);
sub_803E708(10,0x46);
gDungeonGlobalData->unk2 = 1;
}
else {
- sub_8052910(&gUnknown_810232C);
- sub_8085930(5);
+ DisplayDungeonDialogue(&gUnknown_810232C);
+ sub_8085930(DIRECTION_NORTHWEST);
sub_803E708(4,0x46);
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_8087D30(MoltresEntity);
- sub_8052910(&gUnknown_8102398);
+ DisplayDungeonDialogue(&gUnknown_8102398);
sub_8087D80(0xc,5);
sub_8087DE8(9,5);
- sub_8052910(&gUnknown_81023C4);
+ DisplayDungeonDialogue(&gUnknown_81023C4);
sub_8087EB0();
- sub_8052910(&gUnknown_8102400);
+ DisplayDungeonDialogue(&gUnknown_8102400);
sub_8087DE8(0xb,6);
- sub_8052910(&gUnknown_8102454);
+ DisplayDungeonDialogue(&gUnknown_8102454);
sub_803E708(10,0x46);
SetupBossFightHP(MoltresEntity,400,0xb);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
@@ -893,7 +893,7 @@ void sub_8087F54(void)
sub_8083E88(0x72);
sub_8085374();
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
SetFacingDirection(ArticunoEntity, DIRECTION_SOUTH);
sub_8086A3C(ArticunoEntity);
@@ -909,7 +909,7 @@ void sub_8087FB4(void)
sub_8083E88(0x72);
sub_8085374();
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
SetFacingDirection(ArticunoEntity, DIRECTION_SOUTH);
sub_806CDD4(ArticunoEntity, 0xF, DIRECTION_SOUTH);
CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_ARTICUNO);
@@ -924,7 +924,7 @@ void sub_8087FF8(void)
ArticunoEntity = sub_8085680(0xd);
sub_8085374();
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
if (sub_8086AE4(SPECIES_ARTICUNO)) {
sub_8068FE0(ArticunoEntity,0x21c,0);
@@ -959,15 +959,15 @@ void ArticunoPreFightDialogue(void)
ArticunoEntity = sub_8085680(0xd);
sub_8086448();
SpriteLookAroundEffect(PartnerEntity);
- sub_8052910(&gUnknown_8102478);
+ DisplayDungeonDialogue(&gUnknown_8102478);
sub_803E708(10,0x46);
sub_8086598();
sub_8083F14();
- sub_8052910(&gUnknown_81025B4);
+ DisplayDungeonDialogue(&gUnknown_81025B4);
sub_803E708(10,0x46);
sub_80869E4(PartnerEntity,4,1,2);
sub_80869E4(LeaderEntity,4,2,6);
- sub_8052910(&gUnknown_81025D4);
+ DisplayDungeonDialogue(&gUnknown_81025D4);
sub_803E708(10,0x46);
SetFacingDirection(LeaderEntity, DIRECTION_WEST);
sub_803E708(4,0x46);
@@ -983,9 +983,9 @@ void ArticunoPreFightDialogue(void)
sub_803E708(4,0x46);
SetFacingDirection(LeaderEntity, DIRECTION_WEST);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_8102610);
+ DisplayDungeonDialogue(&gUnknown_8102610);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_81026C4);
+ DisplayDungeonDialogue(&gUnknown_81026C4);
sub_803E708(10,0x46);
sub_80869E4(LeaderEntity,4,1,4);
sub_80869E4(PartnerEntity,4,2,4);
@@ -993,33 +993,33 @@ void ArticunoPreFightDialogue(void)
SpriteLookAroundEffect(PartnerEntity);
PlaySoundEffect(0x1d5);
SpriteLookAroundEffect(LeaderEntity);
- sub_8052910(&gUnknown_810270C);
+ DisplayDungeonDialogue(&gUnknown_810270C);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_810272C);
+ DisplayDungeonDialogue(&gUnknown_810272C);
sub_803E708(10,0x46);
PlaySoundEffect(0); // snow flurry
gDungeonGlobalData->unkE265 = 7;
sub_807EAA0(0,1);
PlaySoundEffect(0x1ee); // flash effect?
sub_8088574();
- sub_8052910(&gUnknown_81027BC);
+ DisplayDungeonDialogue(&gUnknown_81027BC);
sub_803E708(10,0x46);
ArticunoScreenFlash();
sub_8086738();
PlaySoundEffect(0x1da);
- sub_8052910(&gUnknown_8102810);
+ DisplayDungeonDialogue(&gUnknown_8102810);
sub_803E708(10,0x46);
PlaySoundEffect(0x1ea);
sub_8088484(ArticunoEntity);
sub_80865E8();
ArticunoScreenFlash();
- sub_8052910(&gUnknown_8102840);
+ DisplayDungeonDialogue(&gUnknown_8102840);
sub_806CDD4(ArticunoEntity,0xf,DIRECTION_SOUTH);
ArticunoScreenFlash();
- sub_8052910(&gUnknown_810286C);
+ DisplayDungeonDialogue(&gUnknown_810286C);
sub_806CDD4(ArticunoEntity,0x10,DIRECTION_SOUTH);
ArticunoScreenFlash();
- sub_8052910(&gUnknown_81028B8);
+ DisplayDungeonDialogue(&gUnknown_81028B8);
sub_806CDD4(ArticunoEntity,0xf,DIRECTION_SOUTH);
sub_803E708(0x10,0x46);
SetupBossFightHP(ArticunoEntity,0x1c2,0xb);
@@ -1036,12 +1036,12 @@ void ArticunoReFightDialogue(void)
gDungeonGlobalData->unkE265 = 7;
sub_807EAA0(0,1);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_81028D4);
+ DisplayDungeonDialogue(&gUnknown_81028D4);
sub_806CDD4(ArticunoEntity,0x10,DIRECTION_SOUTH);
ArticunoScreenFlash();
- sub_8052910(&gUnknown_8102918);
+ DisplayDungeonDialogue(&gUnknown_8102918);
ArticunoScreenFlash();
- sub_8052910(&gUnknown_8102948);
+ DisplayDungeonDialogue(&gUnknown_8102948);
sub_806CDD4(ArticunoEntity,0xf,DIRECTION_SOUTH);
sub_803E708(0x28,0x46);
SetupBossFightHP(ArticunoEntity,0x1c2,0xb);
@@ -1065,19 +1065,19 @@ void ArticunoPostStoryPreFightDialogue(void)
ArticunoScreenFlash();
sub_8086738();
PlaySoundEffect(0x1da);
- sub_8052910(&gUnknown_8102984);
+ DisplayDungeonDialogue(&gUnknown_8102984);
sub_803E708(10,0x46);
sub_8088484(ArticunoEntity);
ArticunoScreenFlash();
- sub_8052910(&gUnknown_81029B4);
+ DisplayDungeonDialogue(&gUnknown_81029B4);
sub_806CDD4(ArticunoEntity,0xf,DIRECTION_SOUTH);
ArticunoScreenFlash();
- sub_8052910(&gUnknown_8102A18);
+ DisplayDungeonDialogue(&gUnknown_8102A18);
sub_806CDD4(ArticunoEntity,0x10,DIRECTION_SOUTH);
ArticunoScreenFlash();
- sub_8052910(&gUnknown_8102A24);
+ DisplayDungeonDialogue(&gUnknown_8102A24);
ArticunoScreenFlash();
- sub_8052910(&gUnknown_8102A74);
+ DisplayDungeonDialogue(&gUnknown_8102A74);
sub_806CDD4(ArticunoEntity,0xf,DIRECTION_SOUTH);
sub_803E708(0x28,0x46);
SetupBossFightHP(ArticunoEntity,0x1c2,0xb);
@@ -1154,7 +1154,7 @@ void sub_80885C4(void)
sub_803E708(0x3c,0x46);
sub_8083F14();
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3);
}
@@ -1186,7 +1186,7 @@ void sub_808862C(void)
sub_80867F4();
sub_8085374();
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
SetFacingDirection(AlakazamEntity, DIRECTION_NORTH);
sub_80861D4(AlakazamEntity,0xd,4);
@@ -1213,7 +1213,7 @@ void sub_80886C4(void)
sub_80867F4();
sub_8085374();
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_8068FE0(AlakazamEntity,0x21c,0);
SetFacingDirection(GroudonEntity, DIRECTION_SOUTH);
sub_8086A3C(GroudonEntity);
@@ -1236,7 +1236,7 @@ void sub_808875C(void)
GroudonEntity = sub_8085680(0xe);
sub_80867F4();
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
sub_8068FE0(AlakazamEntity,0x21c,0);
if (sub_8086AE4(SPECIES_GROUDON)) {
@@ -1277,31 +1277,31 @@ void GroudonPreFightDialogue(void)
AlakazamEntity = sub_8085680(10);
GroudonEntity = sub_8085680(0xe);
sub_8086448();
- sub_8052910(&gUnknown_8102E70);
+ DisplayDungeonDialogue(&gUnknown_8102E70);
sub_803E708(10,0x46);
sub_803E708(0x3c,0x46);
- sub_8052910(&gUnknown_8102EBC);
+ DisplayDungeonDialogue(&gUnknown_8102EBC);
sub_803E708(10,0x46);
sub_8086838(1,1,1);
sub_808680C();
sub_803E708(0x3c,0x46);
sub_808682C();
sub_803E708(0x1e,0x46);
- sub_8052910(&gUnknown_8102EE0);
+ DisplayDungeonDialogue(&gUnknown_8102EE0);
sub_803E708(10,0x46);
sub_8086838(1,1,1);
sub_808680C();
sub_803E708(0x3c,0x46);
- sub_8052910(&gUnknown_8102EF8);
+ DisplayDungeonDialogue(&gUnknown_8102EF8);
sub_803E708(10,0x46);
GroudonScreenFlash();
- sub_8052910(&gUnknown_8102F30);
+ DisplayDungeonDialogue(&gUnknown_8102F30);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_8102F64);
+ DisplayDungeonDialogue(&gUnknown_8102F64);
sub_803E708(10,0x46);
PlaySoundEffect(0x1d5);
SpriteLookAroundEffect(PartnerEntity);
- sub_8052910(&gUnknown_8102F84);
+ DisplayDungeonDialogue(&gUnknown_8102F84);
sub_803E708(10,0x46);
sub_808682C();
sub_803E708(0x3c,0x46);
@@ -1309,39 +1309,39 @@ void GroudonPreFightDialogue(void)
PlaySoundEffect(0x205);
sub_8086738();
sub_8068FE0(AlakazamEntity,0x21c,0);
- sub_8052910(&gUnknown_8102FAC);
+ DisplayDungeonDialogue(&gUnknown_8102FAC);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_8102FC4);
+ DisplayDungeonDialogue(&gUnknown_8102FC4);
sub_803E708(10,0x46);
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_8086764();
sub_803E708(0x28,0x46);
PlaySoundEffect(0x1d5);
SpriteLookAroundEffect(PartnerEntity);
- sub_8052910(&gUnknown_8102FD8);
+ DisplayDungeonDialogue(&gUnknown_8102FD8);
sub_803E708(10,0x46);
sub_8086838(1,1,1);
sub_808680C();
sub_803E708(0x3c,0x46);
- sub_8052910(&gUnknown_8103054);
+ DisplayDungeonDialogue(&gUnknown_8103054);
sub_803E708(10,0x46);
sub_8083F14();
GroudonScreenFlash2();
sub_803E708(0x1e,0x46);
- sub_8052910(&gUnknown_81030D8);
+ DisplayDungeonDialogue(&gUnknown_81030D8);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_8103110);
+ DisplayDungeonDialogue(&gUnknown_8103110);
sub_803E708(10,0x46);
sub_803E708(0x1e,0x46);
sub_808682C();
sub_803E708(0x3c,0x46);
PlaySoundEffect(0x1fa);
sub_8086738();
- sub_8085930(4);
- sub_8052910(&gUnknown_8103140);
+ sub_8085930(DIRECTION_NORTH);
+ DisplayDungeonDialogue(&gUnknown_8103140);
sub_803E708(10,0x46);
sub_8086A54(GroudonEntity);
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_8086764();
SetupBossFightHP(GroudonEntity,500,0xb);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
@@ -1357,23 +1357,23 @@ void GroudonReFightDialogue(void)
sub_8086838(1,1,1);
sub_808680C();
sub_803E708(0x3c,0x46);
- sub_8052910(&gUnknown_8103188);
+ DisplayDungeonDialogue(&gUnknown_8103188);
sub_803E708(10,0x46);
GroudonScreenFlash();
sub_803E708(0x1e,0x46);
- sub_8052910(&gUnknown_8103228);
+ DisplayDungeonDialogue(&gUnknown_8103228);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_8103310);
+ DisplayDungeonDialogue(&gUnknown_8103310);
sub_803E708(10,0x46);
sub_808682C();
sub_803E708(0x3c,0x46);
sub_8083F14();
PlaySoundEffect(0x1fa);
sub_8086738();
- sub_8052910(&gUnknown_8103340);
+ DisplayDungeonDialogue(&gUnknown_8103340);
sub_803E708(10,0x46);
sub_8086A54(GroudonEntity);
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_8086764();
SetupBossFightHP(GroudonEntity,500,0xb);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
@@ -1391,17 +1391,17 @@ void GroudonPostStoryPreFightDialogue(void)
sub_80866C4(&gUnknown_8103488);
}
else{
- sub_8052910(&gUnknown_81033A0);
+ DisplayDungeonDialogue(&gUnknown_81033A0);
sub_803E708(10,0x46);
SceneGroudonMovement(GroudonEntity);
SceneGroudonMovement(GroudonEntity);
- sub_8052910(&gUnknown_81033AC);
+ DisplayDungeonDialogue(&gUnknown_81033AC);
PlaySoundEffect(0x1f6);
GroudonScreenFlash();
- sub_8052910(&gUnknown_810343C);
+ DisplayDungeonDialogue(&gUnknown_810343C);
PlaySoundEffect(0x1f6);
GroudonScreenFlash();
- sub_8052910(&gUnknown_810347C);
+ DisplayDungeonDialogue(&gUnknown_810347C);
sub_803E708(10,0x46);
SetupBossFightHP(GroudonEntity,500,0xb);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
@@ -1431,7 +1431,7 @@ void SceneGroudonMovement(struct DungeonEntity * param_1)
sub_80861D4(param_1,0xf,0);
sub_803E708(10,0x46);
sub_808682C();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_803E708(0x22,0x46);
}
@@ -1503,7 +1503,7 @@ void sub_8088DC0(void)
sub_8086838(0,1,0);
sub_8085374();
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
sub_8086A3C(uVar2);
sub_806CDD4(uVar2,0xe,DIRECTION_SOUTH);
@@ -1526,7 +1526,7 @@ void sub_8088E5C(void)
sub_80867F4();
sub_8086838(0,1,0);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
sub_8068FE0(uVar2,0x21c,0);
sub_8068FE0(uVar3,0x21c,0);
@@ -1559,7 +1559,7 @@ void MagmaCavernMidDialogue(void)
SpriteLookAroundEffect(PartnerEntity);
// Let's see..
// I wonder where we are?
- sub_8052910(&gUnknown_8102B1C);
+ DisplayDungeonDialogue(&gUnknown_8102B1C);
sub_803E708(10,0x46);
sub_80869E4(PartnerEntity,4,1,2);
sub_80869E4(LeaderEntity,4,2,6);
@@ -1568,7 +1568,7 @@ void MagmaCavernMidDialogue(void)
//
// I'm certain we've come quite
// far already..
- sub_8052910(&gUnknown_8102B54);
+ DisplayDungeonDialogue(&gUnknown_8102B54);
sub_803E708(10,0x46);
sub_8083F14();
sub_80855E4(sub_80868F4);
@@ -1577,20 +1577,20 @@ void MagmaCavernMidDialogue(void)
sub_803E708(0x28,0x46);
// Waaah!
// Qu-quake!
- sub_8052910(&gUnknown_8102BC4);
+ DisplayDungeonDialogue(&gUnknown_8102BC4);
sub_803E708(0x78,0x46);
sub_8083E58(0x1c5);
sub_808682C();
sub_80855E4(sub_8086910);
sub_803E708(0x14,0x46);
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_803E708(10,0x46);
// Whew!
// It settled down.
//
// Whew
// It's over.
- sub_8052910(&gUnknown_8102BE4);
+ DisplayDungeonDialogue(&gUnknown_8102BE4);
sub_803E708(10,0x46);
PlaySoundEffect(0x1d5);
SpriteLookAroundEffect(PartnerEntity);
@@ -1598,7 +1598,7 @@ void MagmaCavernMidDialogue(void)
sub_80856E0(PartnerEntity,4);
// Hey! {ARG_POKEMON_0}!
// Over there!
- sub_8052910(&gUnknown_8102C30);
+ DisplayDungeonDialogue(&gUnknown_8102C30);
iVar3->entityData->unk15E = 0;
iVar4->entityData->unk15E =0;
local_20[0] = (iVar3->posPixelX + iVar4->posPixelX) / 2;
@@ -1611,29 +1611,29 @@ void MagmaCavernMidDialogue(void)
//
// Hey!
// Snap out of it!
- sub_8052910(&gUnknown_8102C54);
+ DisplayDungeonDialogue(&gUnknown_8102C54);
sub_803E708(10,0x46);
// Urrrrgh...
- sub_8052910(&gUnknown_8102C98);
+ DisplayDungeonDialogue(&gUnknown_8102C98);
sub_803E708(10,0x46);
sub_80869E4(LeaderEntity,4,2,5);
// What happened to you?
//
// What happened here?
- sub_8052910(&gUnknown_8102CB0);
+ DisplayDungeonDialogue(&gUnknown_8102CB0);
sub_803E708(10,0x46);
// We challenged..
// {ARG_POKEMON_2}...
// And wiped out..
- sub_8052910(&gUnknown_8102CF8);
+ DisplayDungeonDialogue(&gUnknown_8102CF8);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_8102D34);
+ DisplayDungeonDialogue(&gUnknown_8102D34);
sub_803E708(10,0x46);
sub_80869E4(LeaderEntity,4,1,3);
sub_80869E4(PartnerEntity,4,1,3);
// Grrgh..
// We... It crushed us
- sub_8052910(&gUnknown_8102D4C);
+ DisplayDungeonDialogue(&gUnknown_8102D4C);
sub_803E708(10,0x46);
PlaySoundEffect(0x1d5);
SpriteLookAroundEffect(PartnerEntity);
@@ -1644,20 +1644,20 @@ void MagmaCavernMidDialogue(void)
// Wait...
// What about {ARG_POKEMON_3}?
// Where did {ARG_POKEMON_3} go?
- sub_8052910(&gUnknown_8102D7C);
+ DisplayDungeonDialogue(&gUnknown_8102D7C);
sub_803E708(0x1e,0x46);
// {ARG_POKEMON_3} is...
// Still battling {ARG_POKEMON_2}...
- sub_8052910(&gUnknown_8102DFC);
+ DisplayDungeonDialogue(&gUnknown_8102DFC);
sub_803E708(10,0x46);
sub_80869E4(PartnerEntity,4,1,2);
sub_80869E4(LeaderEntity,4,2,6);
// {ARG_POKEMON_0}!
// We've got to hurry!
- sub_8052910(&gUnknown_8102E2C);
+ DisplayDungeonDialogue(&gUnknown_8102E2C);
sub_8089294();
// Be careful!
- sub_8052910(&gUnknown_8102E54);
+ DisplayDungeonDialogue(&gUnknown_8102E54);
sub_803E708(10,0x46);
gDungeonGlobalData->unk2 = 1;
}
@@ -1770,7 +1770,7 @@ void sub_80892C8(void)
sub_8083E88(0x1a);
sub_8085374();
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
SetFacingDirection(RayquazaEntity, DIRECTION_SOUTH);
sub_8086A3C(RayquazaEntity);
@@ -1787,7 +1787,7 @@ void sub_8089328(void)
RayquazaEntity = sub_8085680(0xf);
sub_8083E88(0x1a);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
if (sub_8086AE4(SPECIES_RAYQUAZA)) {
sub_8068FE0(RayquazaEntity,0x21c,0);
@@ -1818,33 +1818,33 @@ void RayquazaPreFightDialogue(void)
PartnerEntity = GetPartnerEntity();
RayquazaEntity = sub_8085680(0xf);
sub_8086448();
- sub_8052910(&gUnknown_8103500);
+ DisplayDungeonDialogue(&gUnknown_8103500);
RayquazaScreenFlash();
- sub_8052910(&gUnknown_810352C);
+ DisplayDungeonDialogue(&gUnknown_810352C);
sub_80856E0(PartnerEntity,4);
SpriteLookAroundEffect(PartnerEntity);
sub_803E708(10,0x46);
sub_80869E4(PartnerEntity,4,1,2);
sub_80869E4(LeaderEntity,4,2,6);
- sub_8052910(&gUnknown_8103578);
+ DisplayDungeonDialogue(&gUnknown_8103578);
sub_80869E4(PartnerEntity,4,2,4);
sub_80869E4(LeaderEntity,4,1,4);
- sub_8052910(&gUnknown_81035D4);
+ DisplayDungeonDialogue(&gUnknown_81035D4);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_8103618);
+ DisplayDungeonDialogue(&gUnknown_8103618);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_810367C);
+ DisplayDungeonDialogue(&gUnknown_810367C);
RayquazaScreenFlash();
PlaySoundEffect(0x1da); // Rayquaza Cry
- sub_8052910(&gUnknown_8103690);
+ DisplayDungeonDialogue(&gUnknown_8103690);
sub_8089620(RayquazaEntity);
- sub_8052910(&gUnknown_81036C8);
+ DisplayDungeonDialogue(&gUnknown_81036C8);
RayquazaScreenFlash();
- sub_8052910(&gUnknown_81037A0);
+ DisplayDungeonDialogue(&gUnknown_81037A0);
RayquazaScreenFlash();
- sub_8052910(&gUnknown_81037D4);
+ DisplayDungeonDialogue(&gUnknown_81037D4);
RayquazaScreenFlash();
- sub_8052910(&gUnknown_8103820);
+ DisplayDungeonDialogue(&gUnknown_8103820);
SetupBossFightHP(RayquazaEntity,600,0x20);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
}
@@ -1859,16 +1859,16 @@ void RayquazaReFightDialogue(void)
sub_8086448();
RayquazaScreenFlash();
PlaySoundEffect(0x1da); // Rayquaza Cry
- sub_8052910(&gUnknown_8103690);
+ DisplayDungeonDialogue(&gUnknown_8103690);
sub_803E708(10,0x46);
sub_8089620(RayquazaEntity);
- sub_8052910(&gUnknown_8103844);
+ DisplayDungeonDialogue(&gUnknown_8103844);
RayquazaScreenFlash();
- sub_8052910(&gUnknown_8103874);
+ DisplayDungeonDialogue(&gUnknown_8103874);
RayquazaScreenFlash();
- sub_8052910(&gUnknown_81038A8);
+ DisplayDungeonDialogue(&gUnknown_81038A8);
RayquazaScreenFlash();
- sub_8052910(&gUnknown_81038F8);
+ DisplayDungeonDialogue(&gUnknown_81038F8);
SetupBossFightHP(RayquazaEntity,600,0x20);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
}
@@ -1886,15 +1886,15 @@ void RayquazaPostStoryPreFightDialogue(void)
}
else {
PlaySoundEffect(0x1da); // Rayquaza Cry
- sub_8052910(&gUnknown_8103904);
+ DisplayDungeonDialogue(&gUnknown_8103904);
sub_8089620(RayquazaEntity);
- sub_8052910(&gUnknown_8103938);
+ DisplayDungeonDialogue(&gUnknown_8103938);
RayquazaScreenFlash();
- sub_8052910(&gUnknown_8103AA4);
+ DisplayDungeonDialogue(&gUnknown_8103AA4);
RayquazaScreenFlash();
- sub_8052910(&gUnknown_8103AE4);
+ DisplayDungeonDialogue(&gUnknown_8103AE4);
RayquazaScreenFlash();
- sub_8052910(&gUnknown_8103B30);
+ DisplayDungeonDialogue(&gUnknown_8103B30);
SetupBossFightHP(RayquazaEntity,600,0xb);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
}
@@ -1956,7 +1956,7 @@ void sub_808970C(void)
LeaderEntity = xxx_call_GetLeaderEntity();
sub_8083E88(0x7D);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
sub_808563C(sub_8089908);
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY + -3);
@@ -1968,7 +1968,7 @@ void sub_808974C(void)
LeaderEntity = xxx_call_GetLeaderEntity();
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
sub_808563C(sub_80898F8);
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY + -3);
@@ -2008,27 +2008,27 @@ void sub_80897F0(void)
sub_808563C(sub_80862BC);
sub_803E708(0x20,0x46);
sub_808692C();
- sub_8052910(&gUnknown_8103BD8);
+ DisplayDungeonDialogue(&gUnknown_8103BD8);
// We don't like to brag or
// nothing, but
- sub_8052910(&gUnknown_8103C00);
+ DisplayDungeonDialogue(&gUnknown_8103C00);
// We get furious real easy
// You know that?!
- sub_8052910(&gUnknown_8103C3C);
+ DisplayDungeonDialogue(&gUnknown_8103C3C);
// What really irritates us is
// when we see some dim witted face
- sub_8052910(&gUnknown_8103C74);
+ DisplayDungeonDialogue(&gUnknown_8103C74);
// .........
// Wrooooooar!
// That vacant expression
- sub_8052910(&gUnknown_8103CC4);
+ DisplayDungeonDialogue(&gUnknown_8103CC4);
// Gwoooh
// It's ticking me off!
// I'm seeing red!
- sub_8052910(&gUnknown_8103D0C);
+ DisplayDungeonDialogue(&gUnknown_8103D0C);
// Mukkkeeeeeh
// Get 'em! It's frenzy time!
- sub_8052910(&gUnknown_8103D50);
+ DisplayDungeonDialogue(&gUnknown_8103D50);
sub_803E708(10,0x46);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
}
@@ -2045,10 +2045,10 @@ void sub_8089878(void)
sub_808563C(sub_80862BC);
sub_803E708(0x20,0x46);
sub_808692C();
- sub_8052910(&gUnknown_8103D8C);
- sub_8052910(&gUnknown_8103D98);
- sub_8052910(&gUnknown_8103DD8);
- sub_8052910(&gUnknown_8103E28);
+ DisplayDungeonDialogue(&gUnknown_8103D8C);
+ DisplayDungeonDialogue(&gUnknown_8103D98);
+ DisplayDungeonDialogue(&gUnknown_8103DD8);
+ DisplayDungeonDialogue(&gUnknown_8103E28);
sub_803E708(10,0x46);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
}
@@ -2079,7 +2079,7 @@ void sub_8089914(void)
sub_8083F14();
gDungeonGlobalData->unk7 = 1;
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
SetFacingDirection(MewtwoEntity, DIRECTION_SOUTH);
sub_8086A3C(MewtwoEntity);
@@ -2096,7 +2096,7 @@ void sub_8089978(void)
MewtwoEntity = sub_8085680(0x11);
sub_8083F14();
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
if(HasRecruitedMon(SPECIES_MEWTWO)){
sub_8083E88(0x23);
@@ -2127,20 +2127,20 @@ void MewtwoPreFightDialogue(void)
LeaderEntity = xxx_call_GetLeaderEntity();
MewtwoEntity = sub_8085680(0x11);
sub_8086448();
- sub_8052910(&gUnknown_8103EA4);
+ DisplayDungeonDialogue(&gUnknown_8103EA4);
sub_803E708(10,0x46);
sub_8083E88(0x23);
sub_8086794();
sub_803E708(0x1e,0x46);
sub_8089B64(MewtwoEntity);
sub_803E708(0x3c,0x46);
- sub_8052910(&gUnknown_8103F0C);
- sub_8052910(&gUnknown_8103F4C);
+ DisplayDungeonDialogue(&gUnknown_8103F0C);
+ DisplayDungeonDialogue(&gUnknown_8103F4C);
sub_803E708(10,0x46);
MewtwoScreenFlash();
- sub_8052910(&gUnknown_8103FCC);
+ DisplayDungeonDialogue(&gUnknown_8103FCC);
MewtwoScreenFlash();
- sub_8052910(&gUnknown_8104008);
+ DisplayDungeonDialogue(&gUnknown_8104008);
sub_803E708(10,0x46);
SetupBossFightHP(MewtwoEntity,900,0x20);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
@@ -2158,16 +2158,16 @@ void MewtwoPreFightDialogue1(void)
sub_80866C4(&gUnknown_8104144);
}
else {
- sub_8052910(&gUnknown_8104044);
+ DisplayDungeonDialogue(&gUnknown_8104044);
sub_8083E88(0x23);
sub_8086794();
sub_8089B64(MewtwoEntity);
sub_803E708(0x3c,0x46);
- sub_8052910(&gUnknown_8104050);
+ DisplayDungeonDialogue(&gUnknown_8104050);
MewtwoScreenFlash();
- sub_8052910(&gUnknown_81040CC);
+ DisplayDungeonDialogue(&gUnknown_81040CC);
MewtwoScreenFlash();
- sub_8052910(&gUnknown_8104114);
+ DisplayDungeonDialogue(&gUnknown_8104114);
SetupBossFightHP(MewtwoEntity,900,0x20);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
}
@@ -2230,7 +2230,7 @@ void sub_8089C44(void)
EnteiEntity = sub_8085680(0x12);
sub_8083E88(0x72);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
SetFacingDirection(EnteiEntity, DIRECTION_SOUTH);
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY);
CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_ENTEI);
@@ -2246,7 +2246,7 @@ void sub_8089C90(void)
EnteiEntity = sub_8085680(0x12);
sub_8083E88(0x72);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
if (HasRecruitedMon(SPECIES_ENTEI)) {
sub_8068FE0(EnteiEntity,0x21c,0);
}
@@ -2275,11 +2275,11 @@ void EnteiPreFightDialogue(void)
LeaderEntity = xxx_call_GetLeaderEntity();
EnteiEntity = sub_8085680(0x12);
EnteiScreenFlash();
- sub_8052910(&gUnknown_8104150);
+ DisplayDungeonDialogue(&gUnknown_8104150);
EnteiScreenFlash();
- sub_8052910(&gUnknown_81041AC);
+ DisplayDungeonDialogue(&gUnknown_81041AC);
EnteiScreenFlash();
- sub_8052910(&gUnknown_81041F8);
+ DisplayDungeonDialogue(&gUnknown_81041F8);
sub_803E708(10,70);
SetupBossFightHP(EnteiEntity,600,0xb);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
@@ -2293,11 +2293,11 @@ void EnteiPreFightDialogue1(void)
LeaderEntity = xxx_call_GetLeaderEntity();
EnteiEntity = sub_8085680(0x12);
EnteiScreenFlash();
- sub_8052910(&gUnknown_8104240);
+ DisplayDungeonDialogue(&gUnknown_8104240);
EnteiScreenFlash();
- sub_8052910(&gUnknown_81042AC);
+ DisplayDungeonDialogue(&gUnknown_81042AC);
EnteiScreenFlash();
- sub_8052910(&gUnknown_81042B8);
+ DisplayDungeonDialogue(&gUnknown_81042B8);
sub_803E708(10,70);
SetupBossFightHP(EnteiEntity,600,0xb);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
@@ -2315,11 +2315,11 @@ void EnteiPreFightDialogue2(void)
}
else {
EnteiScreenFlash();
- sub_8052910(&gUnknown_8104310);
+ DisplayDungeonDialogue(&gUnknown_8104310);
EnteiScreenFlash();
- sub_8052910(&gUnknown_810439C);
+ DisplayDungeonDialogue(&gUnknown_810439C);
EnteiScreenFlash();
- sub_8052910(&gUnknown_81043C0);
+ DisplayDungeonDialogue(&gUnknown_81043C0);
sub_803E708(10,70);
SetupBossFightHP(EnteiEntity,600,0xb);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
@@ -2361,7 +2361,7 @@ void sub_8089EFC(void)
RaikouEntity = sub_8085680(0x13);
sub_8083E88(0x72);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
SetFacingDirection(RaikouEntity, DIRECTION_SOUTH);
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY);
CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_RAIKOU);
@@ -2377,7 +2377,7 @@ void sub_8089F44(void)
RaikouEntity = sub_8085680(0x13);
sub_8083E88(0x72);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
SetFacingDirection(RaikouEntity, DIRECTION_SOUTH);
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY);
CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_RAIKOU);
@@ -2393,7 +2393,7 @@ void sub_8089F8C(void)
RaikouEntity = sub_8085680(0x13);
sub_8083E88(0x72);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
if (HasRecruitedMon(SPECIES_RAIKOU)) {
sub_8068FE0(RaikouEntity,0x21c,0);
}
@@ -2420,19 +2420,19 @@ void RaikouPreFightDialogue(void)
LeaderEntity = xxx_call_GetLeaderEntity();
RaikouEntity = sub_8085680(0x13);
- sub_8052910(&gUnknown_8104450);
+ DisplayDungeonDialogue(&gUnknown_8104450);
RaikouScreenFlash();
- sub_8052910(&gUnknown_81044B4);
+ DisplayDungeonDialogue(&gUnknown_81044B4);
gDungeonGlobalData->unkE265 = 4;
sub_807EAA0(0,1);
sub_803E708(10,70);
- sub_8052910(&gUnknown_8104510);
+ DisplayDungeonDialogue(&gUnknown_8104510);
RaikouScreenFlash();
- sub_8052910(&gUnknown_810453C);
+ DisplayDungeonDialogue(&gUnknown_810453C);
RaikouScreenFlash();
- sub_8052910(&gUnknown_8104570);
+ DisplayDungeonDialogue(&gUnknown_8104570);
RaikouScreenFlash();
- sub_8052910(&gUnknown_81045B0);
+ DisplayDungeonDialogue(&gUnknown_81045B0);
sub_803E708(10,70);
SetupBossFightHP(RaikouEntity,0x28a,0xb);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
@@ -2448,11 +2448,11 @@ void RaikouPreFightDialogue1(void)
gDungeonGlobalData->unkE265 = 4;
sub_807EAA0(0,1);
RaikouScreenFlash();
- sub_8052910(&gUnknown_81045F8);
+ DisplayDungeonDialogue(&gUnknown_81045F8);
RaikouScreenFlash();
- sub_8052910(&gUnknown_8104674);
+ DisplayDungeonDialogue(&gUnknown_8104674);
RaikouScreenFlash();
- sub_8052910(&gUnknown_81046A0);
+ DisplayDungeonDialogue(&gUnknown_81046A0);
sub_803E708(10,70);
SetupBossFightHP(RaikouEntity,0x28a,0xb);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
@@ -2471,11 +2471,11 @@ void RaikouPreFightDialogue2(void)
else {
gDungeonGlobalData->unkE265 = 4;
sub_807EAA0(0,1);
- sub_8052910(&gUnknown_81046CC);
+ DisplayDungeonDialogue(&gUnknown_81046CC);
RaikouScreenFlash();
- sub_8052910(&gUnknown_8104744);
+ DisplayDungeonDialogue(&gUnknown_8104744);
RaikouScreenFlash();
- sub_8052910(&gUnknown_810476C);
+ DisplayDungeonDialogue(&gUnknown_810476C);
sub_803E708(10,70);
SetupBossFightHP(RaikouEntity,0x28a,0xb);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
@@ -2517,7 +2517,7 @@ void sub_808A264(void)
SuicuneEntity = sub_8085680(0x14);
sub_8083E88(0x72);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
SetFacingDirection(SuicuneEntity, DIRECTION_SOUTH);
sub_8086A3C(SuicuneEntity);
@@ -2534,7 +2534,7 @@ void sub_808A2C0(void)
SuicuneEntity = sub_8085680(0x14);
sub_8083E88(0x72);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
SetFacingDirection(SuicuneEntity, DIRECTION_SOUTH);
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY);
CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_SUICUNE);
@@ -2549,7 +2549,7 @@ void sub_808A308(void)
SuicuneEntity = sub_8085680(0x14);
sub_8083E88(0x72);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
if (HasRecruitedMon(SPECIES_SUICUNE)) {
sub_8068FE0(SuicuneEntity,0x21c,0);
}
@@ -2576,21 +2576,21 @@ void SuicunePreFightDialogue(void)
LeaderEntity = xxx_call_GetLeaderEntity();
SuicuneEntity = sub_8085680(0x14);
sub_8086448();
- sub_8052910(&gUnknown_8104784);
+ DisplayDungeonDialogue(&gUnknown_8104784);
sub_803E708(10,70);
- sub_8052910(&gUnknown_8104790);
+ DisplayDungeonDialogue(&gUnknown_8104790);
sub_803E708(10,70);
sub_80426C8(1,2);
sub_803E708(0x3c,70);
- sub_8052910(&gUnknown_81047B0);
+ DisplayDungeonDialogue(&gUnknown_81047B0);
sub_803E708(10,70);
sub_808A528(SuicuneEntity);
- sub_8052910(&gUnknown_810484C);
- sub_8052910(&gUnknown_8104888);
+ DisplayDungeonDialogue(&gUnknown_810484C);
+ DisplayDungeonDialogue(&gUnknown_8104888);
SuicuneScreenFlash();
- sub_8052910(&gUnknown_81048C8);
+ DisplayDungeonDialogue(&gUnknown_81048C8);
SuicuneScreenFlash();
- sub_8052910(&gUnknown_8104914);
+ DisplayDungeonDialogue(&gUnknown_8104914);
sub_803E708(10,70);
SetupBossFightHP(SuicuneEntity,0x28a,0xb);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
@@ -2603,11 +2603,11 @@ void SuicunePreFightDialogue1(void)
LeaderEntity = xxx_call_GetLeaderEntity();
SuicuneEntity = sub_8085680(0x14);
- sub_8052910(&gUnknown_8104930);
+ DisplayDungeonDialogue(&gUnknown_8104930);
SuicuneScreenFlash();
- sub_8052910(&gUnknown_8104980);
+ DisplayDungeonDialogue(&gUnknown_8104980);
SuicuneScreenFlash();
- sub_8052910(&gUnknown_8104998);
+ DisplayDungeonDialogue(&gUnknown_8104998);
sub_803E708(10,70);
SetupBossFightHP(SuicuneEntity,0x28a,0xb);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
@@ -2624,11 +2624,11 @@ void SuicunePreFightDialogue2(void)
sub_80866C4(&gUnknown_8104AC8);
}
else {
- sub_8052910(&gUnknown_81049D4);
+ DisplayDungeonDialogue(&gUnknown_81049D4);
SuicuneScreenFlash();
- sub_8052910(&gUnknown_8104A80);
+ DisplayDungeonDialogue(&gUnknown_8104A80);
SuicuneScreenFlash();
- sub_8052910(&gUnknown_8104A9C);
+ DisplayDungeonDialogue(&gUnknown_8104A9C);
sub_803E708(10,70);
SetupBossFightHP(SuicuneEntity,0x28a,0xb);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
@@ -2694,7 +2694,7 @@ void sub_808A608(void)
sub_80867F4();
sub_8086838(0,0,0);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
SetFacingDirection(HoOhEntity, DIRECTION_SOUTH);
sub_8086A3C(HoOhEntity);
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY + -6);
@@ -2712,7 +2712,7 @@ void sub_808A668(void)
sub_80867F4();
sub_8086838(0,0,0);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
if (HasRecruitedMon(SPECIES_HO_OH)) {
sub_8068FE0(HoOhEntity,0x21c,0);
}
@@ -2750,10 +2750,10 @@ void HoOhPreFightDialogue(void)
local_14[1] = LeaderEntity->posPixelY + -0x1000;
sub_80858AC(local_14,0x88);
sub_803E708(0x40,70);
- sub_8052910(&gUnknown_8104AD4);
+ DisplayDungeonDialogue(&gUnknown_8104AD4);
sub_803E708(10,70);
HoOhScreenFlash();
- sub_8052910(&gUnknown_8104BEC);
+ DisplayDungeonDialogue(&gUnknown_8104BEC);
sub_803E708(10,70);
sub_80855E4(sub_80868F4);
sub_808680C();
@@ -2763,15 +2763,15 @@ void HoOhPreFightDialogue(void)
sub_8083E58(0x1c5);
sub_808682C();
sub_80855E4(sub_8086910);
- sub_8085930(4);
- sub_8052910(&gUnknown_8104C10);
- sub_8052910(&gUnknown_8104C54);
+ sub_8085930(DIRECTION_NORTH);
+ DisplayDungeonDialogue(&gUnknown_8104C10);
+ DisplayDungeonDialogue(&gUnknown_8104C54);
sub_803E708(0x1e,70);
sub_803E708(0x1e,70);
HoOhScreenFlash();
- sub_8052910(&gUnknown_8104CB4);
+ DisplayDungeonDialogue(&gUnknown_8104CB4);
HoOhScreenFlash();
- sub_8052910(&gUnknown_8104CE0);
+ DisplayDungeonDialogue(&gUnknown_8104CE0);
sub_803E708(10,70);
SetupBossFightHP(HoOhEntity,800,0x20);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
@@ -2794,7 +2794,7 @@ void HoOhPreFightDialogue1(void)
sub_80866C4(&gUnknown_8104E54);
}
else {
- sub_8052910(&gUnknown_8104CEC);
+ DisplayDungeonDialogue(&gUnknown_8104CEC);
HoOhScreenFlash();
sub_80855E4(sub_80868F4);
sub_808680C();
@@ -2802,12 +2802,12 @@ void HoOhPreFightDialogue1(void)
sub_808A904(HoOhEntity);
sub_808682C();
sub_80855E4(sub_8086910);
- sub_8085930(4);
- sub_8052910(&gUnknown_8104D60);
+ sub_8085930(DIRECTION_NORTH);
+ DisplayDungeonDialogue(&gUnknown_8104D60);
HoOhScreenFlash();
- sub_8052910(&gUnknown_8104DDC);
+ DisplayDungeonDialogue(&gUnknown_8104DDC);
HoOhScreenFlash();
- sub_8052910(&gUnknown_8104E0C);
+ DisplayDungeonDialogue(&gUnknown_8104E0C);
sub_803E708(10,70);
SetupBossFightHP(HoOhEntity,800,0x20);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
@@ -2871,7 +2871,7 @@ void sub_808A9E4(void)
LatiosEntity = sub_8085680(0x16);
sub_8083E88(0x72);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
SetFacingDirection(LatiosEntity, DIRECTION_NORTH);
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 4);
@@ -2887,7 +2887,7 @@ void sub_808AA3C(void)
LatiosEntity = sub_8085680(0x16);
sub_8083E88(0x72);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
SetFacingDirection(LatiosEntity, DIRECTION_NORTH);
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3);
@@ -2903,7 +2903,7 @@ void sub_808AA94(void)
LatiosEntity = sub_8085680(0x16);
sub_8083E88(0x72);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
sub_8068FE0(LatiosEntity,0x21c,0);
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3);
@@ -2939,11 +2939,11 @@ void LatiosPreFightDialogue(void)
sub_80862BC(LatiosEntity);
sub_803E708(0x20,70);
sub_808692C();
- sub_8052910(&gUnknown_8104E60);
+ DisplayDungeonDialogue(&gUnknown_8104E60);
LatiosScreenFlash();
- sub_8052910(&gUnknown_8104EFC);
+ DisplayDungeonDialogue(&gUnknown_8104EFC);
LatiosScreenFlash();
- sub_8052910(&gUnknown_8104F30);
+ DisplayDungeonDialogue(&gUnknown_8104F30);
sub_803E708(10,70);
SetupBossFightHP(LatiosEntity,600,0xb);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
@@ -2958,11 +2958,11 @@ void LatiosReFightDialogue(void)
LatiosEntity = sub_8085680(0x16);
sub_8086448();
sub_808692C();
- sub_8052910(&gUnknown_8104F64);
+ DisplayDungeonDialogue(&gUnknown_8104F64);
LatiosScreenFlash();
- sub_8052910(&gUnknown_8104EFC);
+ DisplayDungeonDialogue(&gUnknown_8104EFC);
LatiosScreenFlash();
- sub_8052910(&gUnknown_8104F30);
+ DisplayDungeonDialogue(&gUnknown_8104F30);
sub_803E708(10,70);
SetupBossFightHP(LatiosEntity,600,0xb);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
@@ -3021,7 +3021,7 @@ void sub_808ACC0(void)
else {
sub_8098044(0x22);
sub_8098044(0x1d);
- sub_80855E4(sub_808B2B0);
+ sub_80855E4(SetupRegiFacingDirection);
CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_REGIROCK);
}
}
@@ -3053,7 +3053,7 @@ void sub_808AD48(void)
else {
sub_8098044(0x22);
sub_8098044(0x1d);
- sub_80855E4(sub_808B2B0);
+ sub_80855E4(SetupRegiFacingDirection);
CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_REGICE);
}
}
@@ -3086,7 +3086,7 @@ void sub_808ADCC(void)
else {
sub_8098044(0x22);
sub_8098044(0x1d);
- sub_80855E4(sub_808B2B0);
+ sub_80855E4(SetupRegiFacingDirection);
CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_REGISTEEL);
}
}
@@ -3110,7 +3110,7 @@ void sub_808AE54(char param_1,char param_2,u32 *param_3)
sub_8083E88(0x72);
// Something fell from Regirock's body
// Regirock was apparently guarding this item
- sub_8052910(&gUnknown_8105040);
+ DisplayDungeonDialogue(&gUnknown_8105040);
}
}
}
@@ -3133,7 +3133,7 @@ void sub_808AEC8(char param_1,char param_2,u32 *param_3)
sub_8083E88(0x72);
// Something fell from Regice's body
// Regice was apparently guarding this item
- sub_8052910(&gUnknown_810510C);
+ DisplayDungeonDialogue(&gUnknown_810510C);
}
}
}
@@ -3155,7 +3155,7 @@ void sub_808AF3C(char param_1,char param_2,u32 *param_3)
sub_8083E88(0x72);
// Something fell from Registeel's body
// Registeel was apparently guarding this item
- sub_8052910(&gUnknown_81051D0);
+ DisplayDungeonDialogue(&gUnknown_81051D0);
}
}
}
@@ -3171,7 +3171,7 @@ void sub_808AFB0(char param_1)
sub_8097FD0(0x1d);
SetMessageArgument(gAvailablePokemonNames,GetLeaderEntity(),0);
// {ARG_POKEMON_0} obtained the Rock Part that Regirock was guarding
- sub_8052910(&gUnknown_81050B4);
+ DisplayDungeonDialogue(&gUnknown_81050B4);
sub_80421C0(0,0xd4);
sub_803E708(10,70);
sub_8046D20();
@@ -3189,7 +3189,7 @@ void sub_808B030(char param_1)
sub_8097FD0(0x1d);
SetMessageArgument(gAvailablePokemonNames,GetLeaderEntity(),0);
// {ARG_POKEMON_0} obtained the Ice Part that Regice was guarding
- sub_8052910(&gUnknown_810517C);
+ DisplayDungeonDialogue(&gUnknown_810517C);
sub_80421C0(0,0xd4);
sub_803E708(10,70);
sub_8046D20();
@@ -3207,7 +3207,7 @@ void sub_808B0B0(char param_1)
sub_8097FD0(0x1d);
SetMessageArgument(gAvailablePokemonNames, GetLeaderEntity(), 0);
// {ARG_POKEMON_0} obtained the Steel Part that Registeel was guarding
- sub_8052910(&gUnknown_8105244);
+ DisplayDungeonDialogue(&gUnknown_8105244);
sub_80421C0(0,0xd4);
sub_803E708(10,70);
sub_8046D20();
@@ -3217,36 +3217,36 @@ void sub_808B0B0(char param_1)
void RegirockPreFightDialogue(void)
{
if (sub_8098100(0x22) == '\0') {
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
// INTRUDER ALERT
// EXTERMINATE
- sub_8052910(&gUnknown_8104FD4);
+ DisplayDungeonDialogue(&gUnknown_8104FD4);
sub_803E708(10,70);
- sub_808563C(sub_808B2C4);
+ sub_808563C(SetupRegirockFightHP);
}
}
void RegicePreFightDialogue(void)
{
if (sub_8098100(0x22) == '\0') {
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
// INTRUDER ALERT
// EXTERMINATE
- sub_8052910(&gUnknown_8105028);
+ DisplayDungeonDialogue(&gUnknown_8105028);
sub_803E708(10,70);
- sub_808563C(sub_808B2D4);
+ sub_808563C(SetupRegiceFightHP);
}
}
void RegisteelPreFightDialogue(void)
{
if (sub_8098100(0x22) == '\0') {
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
// INTRUDER ALERT
// EXTERMINATE
- sub_8052910(&gUnknown_8105034);
+ DisplayDungeonDialogue(&gUnknown_8105034);
sub_803E708(10,70);
- sub_808563C(sub_808B2E4);
+ sub_808563C(SetupRegisteelFightHP);
}
}
@@ -3362,26 +3362,26 @@ void sub_808B1CC(u8 r0)
}
-void sub_808B2B0(struct DungeonEntity *r0)
+void SetupRegiFacingDirection(struct DungeonEntity *r0)
{
r0->entityData->facingDir = DIRECTION_NORTH;
sub_806CE68(r0, DIRECTION_NORTH);
}
-void sub_808B2C4(struct DungeonEntity *r0)
+void SetupRegirockFightHP(struct DungeonEntity *r0)
{
SetupBossFightHP(r0, 0xE1 << 1, 0xB);
}
-void sub_808B2D4(struct DungeonEntity *r0)
+void SetupRegiceFightHP(struct DungeonEntity *r0)
{
SetupBossFightHP(r0, 0xE1 << 1, 0xB);
}
-void sub_808B2E4(struct DungeonEntity *r0)
+void SetupRegisteelFightHP(struct DungeonEntity *r0)
{
SetupBossFightHP(r0, 0xE1 << 1, 0xB);
}
@@ -3397,7 +3397,7 @@ void sub_808B2F4(void)
sub_808BCE4();
sub_8049ED4();
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
SetFacingDirection(JirachiEntity, DIRECTION_SOUTH);
sub_8086A3C(JirachiEntity);
@@ -3414,7 +3414,7 @@ void sub_808B35C(void)
JirachiEntity = sub_8085680(0x1a);
sub_8083E88(0x79);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
if (HasRecruitedMon(SPECIES_JIRACHI)) {
sub_8068FE0(JirachiEntity,0x21c,0);
@@ -3528,19 +3528,19 @@ void JirachiPreFightDialogue(void)
JirachiEntity = sub_8085680(0x1a);
sub_8086448();
sub_803E708(0x40,70);
- sub_8052910(&gUnknown_8105438);
+ DisplayDungeonDialogue(&gUnknown_8105438);
sub_803E708(10,70);
SpriteLookAroundEffect(LeaderEntity);
sub_803E708(10,70);
- sub_8052910(&gUnknown_81054A0);
+ DisplayDungeonDialogue(&gUnknown_81054A0);
sub_80861F8(0x37,JirachiEntity,1);
sub_80855E4(sub_80862BC);
sub_803E708(0x3c,70);
sub_808BBB8(JirachiEntity);
sub_803E708(0x5a,70);
- sub_8052910(&gUnknown_81054E4);
+ DisplayDungeonDialogue(&gUnknown_81054E4);
sub_803E708(10,70);
- sub_8052910(&gUnknown_810550C);
+ DisplayDungeonDialogue(&gUnknown_810550C);
sub_803E708(10,70);
SetupBossFightHP(JirachiEntity,0x15e,0x20);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
@@ -3561,15 +3561,15 @@ void sub_808B50C(void)
sub_8083ED8(0x1e);
sub_803E708(0x1e,70);
// Fwaaaahhhh
- sub_8052910(&gUnknown_810554C);
+ DisplayDungeonDialogue(&gUnknown_810554C);
sub_8083E88(0x79);
// I think I had a dream, and I was fighting in it
// Did I imagine it?
// I'm sleepy so I'm going back to sleep.
- sub_8052910(&gUnknown_8105558);
+ DisplayDungeonDialogue(&gUnknown_8105558);
sub_803E708(10,70);
sub_808BC20(JirachiEntity);
- sub_8052910(&gUnknown_81055F4);
+ DisplayDungeonDialogue(&gUnknown_81055F4);
sub_803E708(10,70);
gDungeonGlobalData->unk2 = 1;
}
diff --git a/src/code_80869E4.c b/src/code_80869E4.c
index b7526d0..d7ebaf5 100644
--- a/src/code_80869E4.c
+++ b/src/code_80869E4.c
@@ -27,7 +27,7 @@ extern void sub_8085C54(u32, u32, u32, u32, u32);
extern void PlaySoundEffect(u32);
extern struct DungeonEntity *xxx_call_GetLeaderEntity(void);
void SpriteLookAroundEffect(struct DungeonEntity *r0);
-extern void sub_8052910(u32);
+extern void DisplayDungeonDialogue(u32);
void sub_8086494();
extern u32 gUnknown_8107314[];
@@ -171,16 +171,16 @@ void sub_8086494(void)
{
s32 iVar1;
- sub_8085930(3);
+ sub_8085930(DIRECTION_NORTHEAST);
sub_803E708(4, 0x46);
- sub_8085930(2);
+ sub_8085930(DIRECTION_EAST);
sub_803E708(4, 0x46);
- sub_8085930(1);
+ sub_8085930(DIRECTION_SOUTHEAST);
sub_803E708(4, 0x46);
- sub_8085930(0);
+ sub_8085930(DIRECTION_SOUTH);
sub_803E708(4, 0x46);
sub_80855E4(sub_80863C8);
@@ -312,7 +312,7 @@ void sub_80866C4(u32 r0)
SpriteLookAroundEffect(xxx_call_GetLeaderEntity());
sub_803E708(0xA, 0x46);
- sub_8052910(r0);
+ DisplayDungeonDialogue(r0);
sub_803E708(0xA, 0x46);
sub_8086494();
gDungeonGlobalData->unk2 = 1;
@@ -461,16 +461,16 @@ void sub_8086910(struct DungeonEntity *r0)
void sub_808692C(void)
{
- sub_80859F0(5);
+ sub_80859F0(DIRECTION_NORTHWEST);
sub_803E708(0x4, 0x46);
- sub_80859F0(6);
+ sub_80859F0(DIRECTION_WEST);
sub_803E708(0x4, 0x46);
- sub_80859F0(7);
+ sub_80859F0(DIRECTION_SOUTHWEST);
sub_803E708(0x4, 0x46);
- sub_80859F0(0);
+ sub_80859F0(DIRECTION_SOUTH);
sub_803E708(0x4, 0x46);
}
diff --git a/src/code_8086A3C.c b/src/code_8086A3C.c
index d8dbe4c..1e5c5cd 100644
--- a/src/code_8086A3C.c
+++ b/src/code_8086A3C.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "constants/direction.h"
#include "dungeon_entity.h"
#include "dungeon_global_data.h"
#include "pokemon.h"
@@ -22,7 +23,7 @@ extern void sub_8085860(s32 r0, u32 r1);
extern void sub_8068FE0(struct DungeonEntity *, u32, u32);
extern void sub_8097FA8(u32);
extern void sub_80858AC(void *, u32);
-extern void sub_8052910(u8 *);
+extern void DisplayDungeonDialogue(u8 *);
extern void sub_806CDD4(struct DungeonEntity *, u32, u32);
extern void sub_80869E4(struct DungeonEntity *, u32, u32, u32);
extern void sub_8083E88(u32);
@@ -124,7 +125,7 @@ void sub_8086B14(void)
sub_8083E88(0x72);
sub_8085374();
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
sub_8086A3C(SkarmoryEntity);
DiglettEntity->entityData->unk15C = 1;
@@ -146,7 +147,7 @@ void sub_8086B94(void)
sub_8068FE0(SkarmoryEntity,0x21c,0);
sub_8068FE0(DiglettEntity,0x21c,0);
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY);
}
@@ -184,33 +185,33 @@ void SkarmoryPreFightDialogue(void)
sub_80862BC(PartnerEntity);
sub_803E708(0x20,0x46);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_8100768);
+ DisplayDungeonDialogue(&gUnknown_8100768);
sub_80858AC(&local_1c,0x40);
sub_803E708(0x40,0x46);
sub_80858AC(&local_20,0x30);
- sub_8052910(&gUnknown_8100798);
+ DisplayDungeonDialogue(&gUnknown_8100798);
sub_803E708(10,0x46);
DiglettEntity->entityData->unk15D = 1;
sub_80858AC(&local_1c,0x30);
- sub_8052910(&gUnknown_8100820); // Diglett: ...I...\nI'm scared.
+ DisplayDungeonDialogue(&gUnknown_8100820); // Diglett: ...I...\nI'm scared.
sub_803E708(10,0x46);
sub_80858AC(&local_20,0x20);
sub_803E708(0x20,0x46);
sub_8086E74(SkarmoryEntity);
- sub_8052910(&gUnknown_8100844); // Skarmory: You!\nWhat do you think you're doing here?!
+ DisplayDungeonDialogue(&gUnknown_8100844); // Skarmory: You!\nWhat do you think you're doing here?!
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_8100880);
+ DisplayDungeonDialogue(&gUnknown_8100880);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_8100928);
+ DisplayDungeonDialogue(&gUnknown_8100928);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_8100A04);
+ DisplayDungeonDialogue(&gUnknown_8100A04);
sub_803E708(10,0x46);
sub_806CDD4(SkarmoryEntity,0xd,0);
- sub_8052910(&gUnknown_8100B80);
+ DisplayDungeonDialogue(&gUnknown_8100B80);
sub_803E708(10,0x46);
sub_80869E4(PartnerEntity,4,1,2);
sub_80869E4(LeaderEntity,4,2,6);
- sub_8052910(&gUnknown_8100BC0);
+ DisplayDungeonDialogue(&gUnknown_8100BC0);
sub_80869E4(PartnerEntity,4,2,4);
sub_80869E4(LeaderEntity,4,1,4);
sub_803E708(10,0x46);
@@ -232,12 +233,12 @@ void SkarmoryReFightDialogue(void)
sub_803E708(10,0x46);
sub_8086E74(SkarmoryEntity);
sub_80858AC(&local_14,0x10);
- sub_8052910(&gUnknown_8100C90);
+ DisplayDungeonDialogue(&gUnknown_8100C90);
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_8100CBC);
+ DisplayDungeonDialogue(&gUnknown_8100CBC);
sub_803E708(10,0x46);
sub_806CDD4(SkarmoryEntity,0xd,0);
- sub_8052910(&gUnknown_8100CDC);
+ DisplayDungeonDialogue(&gUnknown_8100CDC);
sub_803E708(10,0x46);
sub_80858AC(&LeaderEntity->posPixelX,0x10);
sub_8083E88(0xb);
@@ -247,7 +248,7 @@ void sub_8086E40(void)
{
SpriteLookAroundEffect(xxx_call_GetLeaderEntity());
sub_803E708(10,0x46);
- sub_8052910(&gUnknown_8100D3C);
+ DisplayDungeonDialogue(&gUnknown_8100D3C);
sub_803E708(10,0x46);
gDungeonGlobalData->unk2 = 1;
}
@@ -268,7 +269,7 @@ void sub_8086E9C(void)
sub_8083E88(0x72);
sub_8085374();
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
sub_808563C(sub_8086A3C);
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3);
@@ -283,7 +284,7 @@ void sub_8086F00(void)
LeaderEntity = xxx_call_GetLeaderEntity();
sub_80854D4();
- sub_8085930(4);
+ sub_8085930(DIRECTION_NORTH);
sub_80855E4(sub_8086A3C);
sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3);
CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_METAPOD);
diff --git a/src/code_80958E8.c b/src/code_80958E8.c
index 7674ed4..cae46bc 100644
--- a/src/code_80958E8.c
+++ b/src/code_80958E8.c
@@ -34,7 +34,7 @@ extern bool8 sub_809095C(u8);
extern s32 sub_8090298(u8);
extern bool8 sub_809017C(u8 *);
extern s16 GetBaseSpecies(s16);
-extern bool8 sub_8092040(u8);
+extern bool8 IsInvalidItemReward(u8);
extern u8 sub_803C1D0(u8 *, u8);
extern bool8 IsNotMoneyOrUsedTMItem(u8);
extern u8 xxx_bit_lut_lookup_8091E50(u8 ,u8 );
@@ -107,11 +107,11 @@ bool8 IsValidWonderMail(struct WonderMail *WonderMailData)
bool8 ValidateWonderMail(struct WonderMail *data)
{
- if(data->missionType > DELIVER_ITEM)
+ if(data->missionType > WONDER_MAIL_MISSION_TYPE_DELIVER_ITEM)
return FALSE;
else
{
- if(data->missionType == DELIVER_ITEM && GetMaxItemCount(data->dungeon) == 0)
+ if(data->missionType == WONDER_MAIL_MISSION_TYPE_DELIVER_ITEM && GetMaxItemCount(data->dungeon) == 0)
return FALSE;
if(data->unk2 > 9)
@@ -141,11 +141,11 @@ bool8 ValidateWonderMail(struct WonderMail *data)
return FALSE;
// Item Delivery/Finding
- if((u8)(data->missionType - 1) > FIND_POKE)
+ if((u8)(data->missionType - 1) > WONDER_MAIL_MISSION_TYPE_RESCUE_TARGET)
if(data->targetSpecies != data->clientSpecies)
return FALSE;
- if(sub_8092040(data->targetItem))
+ if(IsInvalidItemReward(data->targetItem))
return FALSE;
if(IsThrowableItem(data->targetItem))
return FALSE;
@@ -153,13 +153,13 @@ bool8 ValidateWonderMail(struct WonderMail *data)
return FALSE;
// Item finding
- if(data->missionType == FIND_ITEM && xxx_bit_lut_lookup_8091E50(data->dungeon, data->targetItem) == 0)
+ if(data->missionType == WONDER_MAIL_MISSION_TYPE_FIND_ITEM && xxx_bit_lut_lookup_8091E50(data->dungeon, data->targetItem) == 0)
return FALSE;
if(data->rewardType == BLANK_4 || data->rewardType == END_REWARDS || data->rewardType > END_REWARDS)
return FALSE;
- if(sub_8092040(data->itemReward))
+ if(IsInvalidItemReward(data->itemReward))
return FALSE;
// Friend Area Reward
diff --git a/src/dungeon_ai.c b/src/dungeon_ai.c
index 6253a64..5776bfa 100644
--- a/src/dungeon_ai.c
+++ b/src/dungeon_ai.c
@@ -7,6 +7,17 @@
#include "dungeon_pokemon_attributes_1.h"
#include "dungeon_util.h"
+extern void CheckRunAwayVisualFlag(struct DungeonEntity *, u8 r1);
+
+bool8 ShouldAvoidFirstHit(struct DungeonEntity *pokemon, bool8 forceAvoid)
+{
+ if(!HasTactic(pokemon, TACTIC_AVOID_THE_FIRST_HIT))
+ return FALSE;
+ if(!forceAvoid)
+ return FALSE;
+ return TRUE;
+}
+
bool8 ShouldAvoidEnemies(struct DungeonEntity *pokemon)
{
if (!EntityExists(pokemon))
@@ -40,3 +51,13 @@ bool8 ShouldAvoidEnemies(struct DungeonEntity *pokemon)
return FALSE;
}
}
+
+bool8 ShouldAvoidEnemies_2(struct DungeonEntity *pokemon, u8 r1)
+{
+ if(ShouldAvoidEnemies(pokemon))
+ {
+ CheckRunAwayVisualFlag(pokemon, r1);
+ return TRUE;
+ }
+ return FALSE;
+}
diff --git a/src/dungeon_ai_items.c b/src/dungeon_ai_items.c
index 4877712..7a348f1 100644
--- a/src/dungeon_ai_items.c
+++ b/src/dungeon_ai_items.c
@@ -27,12 +27,35 @@ extern u32 GetEntityType(struct DungeonEntity*);
extern struct ItemSlot* GetItemData(struct DungeonEntity*);
extern u32 EvaluateItem(struct DungeonEntity*, struct ItemSlot*, u8);
extern bool8 ToolboxEnabled(struct DungeonEntityData*);
+extern void sub_8077274(struct DungeonEntity *, struct DungeonEntity *);
+extern bool8 EntityExists(struct DungeonEntity *);
extern s32 gNumPotentialTargets;
extern u32 gPotentialTargetWeights[NUM_DIRECTIONS];
extern u32 gPotentialTargetDirections[NUM_DIRECTIONS];
extern struct TeamInventory *gTeamInventory_203B460;
+extern struct DungeonGlobalData *gDungeonGlobalData;
+
+void sub_807360C(struct DungeonEntity *pokemon)
+{
+ s32 iVar2;
+ struct DungeonEntity *entity;
+
+ for(iVar2 = 0; iVar2 < DUNGEON_MAX_POKEMON; iVar2++)
+ {
+ entity = gDungeonGlobalData->allPokemon[iVar2];
+ if(EntityExists(entity))
+ {
+ if(entity->entityData->unk152 != 0)
+ {
+ entity->entityData->unk152 = 0;
+ sub_8077274(entity, entity);
+ }
+ }
+ }
+}
+
void DecideUseItem(struct DungeonEntity *pokemon)
{
struct DungeonEntityData *pokemonData = pokemon->entityData;
diff --git a/src/dungeon_capabilities_1.c b/src/dungeon_capabilities_1.c
index 956c6e1..869e2f3 100644
--- a/src/dungeon_capabilities_1.c
+++ b/src/dungeon_capabilities_1.c
@@ -54,3 +54,26 @@ bool8 CannotAct(struct DungeonEntity *pokemon)
}
return FALSE;
}
+
+bool8 CannotAttack(struct DungeonEntity *pokemon, u8 param_2)
+{
+ struct DungeonEntityData *iVar3;
+
+ iVar3 = pokemon->entityData;
+ if ((((((param_2 != '\0') ||
+ (iVar3->sleepStatus == SLEEP_STATUS_SLEEPLESS)) ||
+ (iVar3->sleepStatus == SLEEP_STATUS_YAWNING)) ||
+ (iVar3->sleepStatus == SLEEP_STATUS_NONE)) &&
+ ((((iVar3->immobilizeStatus != IMMOBILIZE_STATUS_FROZEN &&
+ (iVar3->immobilizeStatus != IMMOBILIZE_STATUS_WRAPPED_AROUND_FOE)) &&
+ ((iVar3->immobilizeStatus != IMMOBILIZE_STATUS_WRAPPED_BY_FOE &&
+ ((iVar3->immobilizeStatus != IMMOBILIZE_STATUS_PETRIFIED &&
+ (iVar3->volatileStatus != VOLATILE_STATUS_CRINGING)))))) &&
+ (iVar3->volatileStatus != VOLATILE_STATUS_PAUSED)))) &&
+ (((iVar3->volatileStatus != VOLATILE_STATUS_INFATUATED &&
+ iVar3->nonVolatileStatus != NON_VOLATILE_STATUS_PARALYZED)) &&
+ !ShouldAvoidEnemies(pokemon))) {
+ return FALSE;
+ }
+ return TRUE;
+}
diff --git a/src/dungeon_movement.c b/src/dungeon_movement.c
index 6a55c90..5525f28 100644
--- a/src/dungeon_movement.c
+++ b/src/dungeon_movement.c
@@ -2,6 +2,7 @@
#include "dungeon_movement.h"
#include "constants/dungeon_action.h"
+#include "constants/direction.h"
#include "constants/iq_skill.h"
#include "constants/status.h"
#include "dungeon_global_data.h"
@@ -10,6 +11,7 @@
extern char gAvailablePokemonNames[];
extern char *gPtrCouldntBeUsedMessage;
+extern char *gPtrItsaMonsterHouseMessage;
extern struct DungeonGlobalData *gDungeonGlobalData;
extern void SendImmobilizeEndMessage(struct DungeonEntity*, struct DungeonEntity*);
@@ -27,6 +29,132 @@ extern bool8 HasIQSkill(struct DungeonEntity*, u8);
extern void DecideAttack(struct DungeonEntity*);
extern bool8 GetIsMoving(s16);
extern void MoveIfPossible(struct DungeonEntity*, bool8);
+extern u8 sub_8044B28(void);
+struct MapTile *sub_8045128(struct DungeonEntity *entity);
+extern void sub_807AB38(struct DungeonEntity *, u32);
+extern void sub_8041888(u32);
+extern u8 sub_803F428(s16 *);
+extern void sub_803E708(u32, u32);
+extern struct DungeonEntity *GetLeaderEntity();
+struct ItemSlot *GetItemData(struct DungeonEntity *entity);
+u8 *GetTrapData(struct DungeonEntity *entity);
+u32 GetEntityType(struct DungeonEntity *entity);
+extern void TargetTileInFront(struct DungeonEntity *);
+
+u32 sub_8075818(struct DungeonEntity *entity)
+{
+ struct MapTile *tile;
+ struct DungeonEntityData *entityData;
+ struct DungeonEntity *subEntity;
+ struct ItemSlot *item;
+ u8 *trapData; // TODO: turn into struct when more research is done..
+ u8 r1;
+
+ entityData = entity->entityData;
+ if(EntityExists(entity))
+ {
+ tile = sub_8045128(entity);
+ if(HasIQSkill(entity, IQ_SKILL_SUPER_MOBILE))
+ if(!(tile->MapTileUnion.tileFlags_u16 & 3))
+ return 1;
+ subEntity = tile->mapObject;
+ if(subEntity != NULL)
+ {
+ switch(GetEntityType(subEntity))
+ {
+ case ENTITY_NONE:
+ case ENTITY_POKEMON:
+ case 4:
+ case 5:
+ break;
+ case ENTITY_TRAP:
+ trapData = GetTrapData(subEntity);
+ r1 = 0;
+ if(trapData[1] == 0)
+ {
+ if(!subEntity->visible || entityData->isEnemy)
+ goto flag_check;
+ else
+ goto error;
+ }
+ else if(trapData[1] == 1)
+ {
+ if(!entityData->isEnemy)
+ goto flag_check;
+ else
+ goto error;
+ }
+ else if(trapData[1] == 2)
+ {
+ if(!entityData->isEnemy)
+ r1 = 1;
+ }
+flag_check:
+ if(r1 == 0)
+ break;
+ else
+ goto error;
+ case ENTITY_ITEM:
+ if(!entityData->isLeader)
+ {
+ if(!(entityData->heldItem.itemFlags & ITEM_FLAG_EXISTS))
+ {
+ if(!(tile->MapTileUnion.tileFlags_u16 & 3))
+ {
+ if(entityData->isEnemy)
+ break;
+ else
+ {
+ item = GetItemData(subEntity);
+ if(!(item->itemFlags & ITEM_FLAG_FOR_SALE))
+ {
+ return 1;
+ }
+ }
+ }
+ else
+ {
+ item = GetItemData(subEntity);
+ if(!(item->itemFlags & ITEM_FLAG_FOR_SALE))
+ {
+error:
+ return 1;
+ }
+ }
+ }
+ }
+ break;
+ }
+ }
+ }
+ return 0;
+}
+
+void sub_8075900(struct DungeonEntity *pokemon, u8 r1)
+{
+ if(EntityExists(pokemon))
+ {
+ if(!pokemon->entityData->isEnemy)
+ {
+ if(!sub_8044B28())
+ {
+ if(!gDungeonGlobalData->monsterHouseActive)
+ {
+ if((sub_8045128(pokemon)->MapTileUnion.tileFlags_u16 & TILE_TYPE_MONSTER_HOUSE))
+ {
+ // It's a monster house!
+ SendMessage(GetLeaderEntity(), gPtrItsaMonsterHouseMessage);
+ gDungeonGlobalData->unk672 = 1;
+ sub_807AB38(pokemon, r1);
+ sub_8041888(0);
+ if(sub_803F428(&pokemon->posWorldX) != 0)
+ sub_803E708(0x78, 0x39);
+ }
+ }
+ }
+ }
+ }
+}
void DecideAction(struct DungeonEntity *pokemon)
{
@@ -35,7 +163,7 @@ void DecideAction(struct DungeonEntity *pokemon)
{
if (pokemonData->immobilizeStatus == IMMOBILIZE_STATUS_PETRIFIED)
{
- SendImmobilizeEndMessage(pokemon, pokemon);
+ SendImmobilizeEndMessage(pokemon, pokemon);
}
}
else
@@ -147,3 +275,17 @@ void DecideAction(struct DungeonEntity *pokemon)
}
}
}
+
+void sub_8075BA4(struct DungeonEntity *param_1,char param_2)
+{
+ struct DungeonEntityData * iVar2 = param_1->entityData;
+
+ if ((param_2 != '\0') && (iVar2->volatileStatus == VOLATILE_STATUS_COWERING)) {
+ iVar2->facingDir = (iVar2->facingDir + 4) & DIRECTION_MASK;
+ TargetTileInFront(param_1);
+ }
+ else if (iVar2->volatileStatus == VOLATILE_STATUS_CONFUSED) {
+ iVar2->facingDir = DungeonRandomCapped(NUM_DIRECTIONS);
+ TargetTileInFront(param_1);
+ }
+}
diff --git a/src/dungeon_pokemon_attributes.c b/src/dungeon_pokemon_attributes.c
index a9aa6c2..c70d4ff 100644
--- a/src/dungeon_pokemon_attributes.c
+++ b/src/dungeon_pokemon_attributes.c
@@ -2,6 +2,77 @@
#include "dungeon_pokemon_attributes.h"
#include "dungeon_util.h"
+#include "constants/ability.h"
+#include "constants/status.h"
+
+extern u8 gAvailablePokemonNames[];
+extern u32 gUnknown_80FC31C;
+extern u32 gUnknown_80FCEFC;
+extern u32 gUnknown_80FC2FC;
+
+extern bool8 sub_805744C(struct DungeonEntity *, struct PokemonMove *, u32);
+extern void SetMessageArgument(char[], struct DungeonEntity*, u32);
+extern void sub_80522F4(struct DungeonEntity *r1, struct DungeonEntity *r2, u32);
+
+bool8 sub_80716E8(struct DungeonEntity * param_1, struct DungeonEntity * param_2, u8 param_3)
+{
+ if (param_2->entityData->protectionStatus == PROTECTION_STATUS_SAFEGUARD) {
+ if (param_3 != '\0') {
+ SetMessageArgument(gAvailablePokemonNames,param_2,0);
+ sub_80522F4(param_1,param_2,gUnknown_80FC2FC);
+ }
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8071728(struct DungeonEntity * param_1, struct DungeonEntity * param_2, u8 param_3)
+{
+ if (param_2->entityData->protectionStatus == PROTECTION_STATUS_MIST) {
+ if (param_3 != '\0') {
+ SetMessageArgument(gAvailablePokemonNames, param_2, 0);
+ sub_80522F4(param_1, param_2, gUnknown_80FC31C);
+ }
+ return TRUE;
+ }
+ else {
+ if (HasAbility(param_2, ABILITY_CLEAR_BODY) || HasAbility(param_2, ABILITY_WHITE_SMOKE)) {
+ if (param_3 != '\0') {
+ SetMessageArgument(gAvailablePokemonNames, param_2, 0);
+ sub_80522F4(param_1, param_2, gUnknown_80FCEFC);
+ }
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+bool8 sub_80717A4(struct DungeonEntity *param_1, u16 moveID)
+{
+ struct DungeonEntityData * entityData;
+ s32 iVar3;
+
+ entityData = param_1->entityData;
+ if ((entityData->sleepStatus != SLEEP_STATUS_SLEEP) && (entityData->sleepStatus != SLEEP_STATUS_NAPPING) && (entityData->sleepStatus != SLEEP_STATUS_NIGHTMARE)) {
+ return FALSE;
+ }
+ else
+ {
+ // Pin this register to match
+ register struct PokemonMove *pokeMove asm("r4");
+
+ struct PokemonMove *pokeMove2; // some reason uses another pointer to same struct
+
+ for(iVar3 = 0, pokeMove = entityData->moves, pokeMove2 = pokeMove; iVar3 < MAX_MON_MOVES; pokeMove++, pokeMove2++, iVar3++)
+ {
+ if (((pokeMove->moveFlags & MOVE_FLAG_EXISTS) != 0) && (entityData->isLeader || ((pokeMove->moveFlags & MOVE_FLAG_ENABLED) != 0)))
+ if((sub_805744C(param_1, pokeMove2, 1) != '\0') && (pokeMove->pp != 0))
+ if(pokeMove->moveID == moveID)
+ return TRUE;
+ }
+ return FALSE;
+ }
+}
bool8 HasAbility(struct DungeonEntity *pokemon, u8 ability)
{
diff --git a/src/dungeon_util.c b/src/dungeon_util.c
index f70148a..f717212 100644
--- a/src/dungeon_util.c
+++ b/src/dungeon_util.c
@@ -2,17 +2,7 @@
#include "dungeon_util.h"
extern struct MapTile* GetMapTileAtPosition(s16, s16);
-
-struct unk8049590
-{
- u16 unk0;
- u16 fill2;
- u16 unk4;
- u16 unk6;
- u8 unk8;
-};
-
-extern struct unk8049590 *GetMapEntity(s16, s16);
+extern struct MapTile *GetMapEntity(s16, s16);
bool8 EntityExists(struct DungeonEntity *entity)
{
@@ -33,7 +23,7 @@ u8 GetEntityRoomIndex(struct DungeonEntity *entity)
return entity->roomIndex;
}
-struct DungeonEntityData *sub_8045104(struct DungeonEntity *entity)
+struct DungeonEntityData *GetTrapData(struct DungeonEntity *entity)
{
return entity->entityData;
}
@@ -58,7 +48,7 @@ struct MapTile *sub_8045114(struct DungeonEntity *entity)
return GetMapTileAtPosition(entity->posWorldX, entity->posWorldY);
}
-struct unk8049590 *sub_8045128(struct DungeonEntity *entity)
+struct MapTile *sub_8045128(struct DungeonEntity *entity)
{
return GetMapEntity(entity->posWorldX, entity->posWorldY);
}
diff --git a/src/dungeon_util_1.c b/src/dungeon_util_1.c
index 97af7fb..51ec765 100644
--- a/src/dungeon_util_1.c
+++ b/src/dungeon_util_1.c
@@ -1,5 +1,125 @@
#include "global.h"
+#include "constants/direction.h"
#include "dungeon_util_1.h"
+#include "dungeon_global_data.h"
+#include "random.h"
+
+extern struct DungeonGlobalData *gDungeonGlobalData;
+extern bool8 EntityExists(struct DungeonEntity *);
+extern void sub_806CE68(struct DungeonEntity *, s32);
+
+extern s32 sub_803F994(void);
+extern s32 sub_803F9B0(void);
+extern void sub_803F4A0(u32);
+extern void sub_803F878(s32, s32);
+extern void sub_803E46C(u32);
+
+void sub_8085860(s32 x, s32 y)
+{
+
+ sub_803F4A0(0);
+ sub_803F878(x * 0x1800 + 0xc00, y * 0x1800 + 0x1000);
+}
+
+void sub_8085890(s32 x, s32 y)
+{
+ sub_803F4A0(0);
+ sub_803F878(x, y);
+}
+
+void sub_80858AC(s32 *param_1, s32 param_2)
+{
+ s32 iVar1;
+ s32 iVar2;
+ s32 iVar3;
+ s32 iVar4;
+
+ iVar1 = sub_803F994();
+ iVar2 = sub_803F9B0();
+ iVar3 = (param_1[0] - iVar1) / param_2;
+ iVar4 = (param_1[1] - iVar2) / param_2;
+ sub_803F4A0(0);
+ if (0 < param_2) {
+ do {
+ iVar1 += iVar3;
+ iVar2 += iVar4;
+ sub_803F878(iVar1,iVar2);
+ sub_803E46C(0x46);
+ param_2--;
+ } while (param_2 != 0);
+ }
+ sub_803F878(param_1[0],param_1[1]);
+ sub_803E46C(0x46);
+}
+
+void SetFacingDirection(struct DungeonEntity *pokemon, s32 direction)
+{
+ pokemon->entityData->facingDir = direction & DIRECTION_MASK;
+ sub_806CE68(pokemon, direction);
+}
+
+void sub_8085930(s32 direction)
+{
+ s32 iVar2;
+ struct DungeonEntity *entity;
+ for(iVar2 = 0; iVar2 < MAX_TEAM_MEMBERS; iVar2++)
+ {
+ entity = gDungeonGlobalData->teamPokemon[iVar2];
+ if(EntityExists(entity))
+ {
+ if(direction >= NUM_DIRECTIONS)
+ {
+ sub_806CE68(entity, RandomCapped(NUM_DIRECTIONS));
+ }
+ else
+ {
+ entity->entityData->facingDir = direction & DIRECTION_MASK;
+ sub_806CE68(entity, direction);
+ }
+ }
+ }
+ for(iVar2 = 0; iVar2 < DUNGEON_MAX_WILD_POKEMON; iVar2++)
+ {
+ entity = gDungeonGlobalData->wildPokemon[iVar2];
+ if(EntityExists(entity))
+ {
+ if(entity->entityData->clientType == 2)
+ {
+ if(direction >= NUM_DIRECTIONS)
+ {
+ sub_806CE68(entity, RandomCapped(NUM_DIRECTIONS));
+ }
+ else
+ {
+ entity->entityData->facingDir = direction & DIRECTION_MASK;
+ sub_806CE68(entity, direction);
+ }
+ }
+ }
+ }
+}
+
+void sub_80859F0(s32 direction)
+{
+ s32 iVar2;
+ struct DungeonEntity *entity;
+ for(iVar2 = 0; iVar2 < DUNGEON_MAX_WILD_POKEMON; iVar2++)
+ {
+ entity = gDungeonGlobalData->wildPokemon[iVar2];
+ if(EntityExists(entity))
+ {
+ if(direction >= NUM_DIRECTIONS)
+ {
+ sub_806CE68(entity, RandomCapped(NUM_DIRECTIONS));
+ }
+ else
+ {
+ entity->entityData->facingDir = direction & DIRECTION_MASK;
+ sub_806CE68(entity, direction);
+ }
+ }
+ }
+}
bool8 IsMovingClient(struct DungeonEntity *pokemon)
{
diff --git a/src/items.c b/src/items.c
index 0b6075f..ff79822 100644
--- a/src/items.c
+++ b/src/items.c
@@ -27,6 +27,7 @@ extern u32 gUnknown_81097F8[4]; // some sort of lookup table (17, 19, 21, 23)
extern u32 gUnknown_810AF50[];
extern u8 gUnknown_8108F64[0x3f][32]; // some sort of bit lookup table
extern s16 gTypeGummiIQBoost[0x12][NUMBER_OF_GUMMIS];
+extern u8 gInvalidItemIDs[0x10];
EWRAM_DATA struct OpenedFile *gItemParametersFile;
EWRAM_DATA struct Item *gItemParametersData;
@@ -1502,3 +1503,20 @@ void ClearAllItems_8091FB4() {
}
}
}
+
+bool32 IsInvalidItemReward(u8 itemID)
+{
+ s32 index;
+
+ if (itemID >= NUMBER_OF_ITEM_IDS)
+ return TRUE;
+ else {
+ index = 0;
+ while (gInvalidItemIDs[index] != NUMBER_OF_ITEM_IDS){
+ if (gInvalidItemIDs[index] == itemID)
+ return TRUE;
+ index++;
+ };
+ return FALSE;
+ }
+}
diff --git a/src/memory_mid.c b/src/memory_mid.c
index 51c927a..546820a 100644
--- a/src/memory_mid.c
+++ b/src/memory_mid.c
@@ -2,15 +2,17 @@
#include "memory.h"
extern u32 gUnknown_80B7F14;
+extern u32 gUnknown_80B7F88;
extern const char gLocateSetErrorMessage[];
extern struct HeapDescriptor gMainHeapDescriptor;
-
+extern const char gLocalCreateErrorMessage[];
extern s32 MemorySearchFromBack(struct HeapDescriptor *heap, s32, s32);
extern s32 MemorySearchFromFront(struct HeapDescriptor *heap, s32, s32);
extern struct HeapDescriptor * _LocateSetBack(struct HeapDescriptor *, u32, u32, u32, u32);
extern struct HeapDescriptor * _LocateSetFront(struct HeapDescriptor *, u32, u32, u32, u32);
void DoFree(struct HeapDescriptor *, void *);
void *DoAlloc(struct HeapDescriptor *, s32, u32);
+extern struct HeapDescriptor *DoCreateSubHeap(u32 *, u32);
void FatalError(u32 *, const char *, ...) __attribute__((noreturn));
@@ -61,3 +63,28 @@ void MemoryFree(void *a)
{
DoFree(&gMainHeapDescriptor, a);
}
+
+struct HeapDescriptor *MemoryLocate_LocalCreate(struct HeapDescriptor *parentHeap,u32 size,u32 param_3,u32 group)
+{
+ int index;
+ struct HeapDescriptor *iVar2;
+ struct HeapDescriptor *iVar3;
+ s32 local_1c[2];
+
+ if (parentHeap == NULL) {
+ parentHeap = &gMainHeapDescriptor;
+ }
+
+ index = MemorySearchFromBack(parentHeap,9,size);
+ if (index < 0)
+ // Memroy LocalCreate buffer %08x size can't locate
+ FatalError(&gUnknown_80B7F88,gLocalCreateErrorMessage,size);
+
+ iVar2 = _LocateSetBack(parentHeap,index,9,size,group);
+ local_1c[0] = iVar2->freeCount;
+ local_1c[1] = iVar2->freeListLength;
+
+ iVar3 = DoCreateSubHeap(local_1c,param_3);
+ iVar3->parentHeap = parentHeap;
+ return iVar3;
+}
diff --git a/src/music_pre.c b/src/music_pre.c
index cb983d3..95940aa 100644
--- a/src/music_pre.c
+++ b/src/music_pre.c
@@ -277,20 +277,18 @@ void sub_800BA5C(void)
void xxx_update_bg_sound_input(void)
{
- u32 store;
- store = gUnknown_203B09B;
if(gUnknown_203B09B != 0){
gUnknown_203B09C++;
}
else {
gUnknown_203B09B = 1;
- gUnknown_203B09A = store;
- gUnknown_203B09C = store;
+ gUnknown_203B09A = 0;
+ gUnknown_203B09C = 0;
UpdateBGControlRegisters();
if(gUnknown_203B099 != 0)
UpdateSound();
UpdateInput();
- gUnknown_203B099 = store;
+ gUnknown_203B099 = 0;
gUnknown_203B0A4 = gUnknown_203B0A0;
}
}
diff --git a/src/pokemon_3.c b/src/pokemon_3.c
index 427e0ed..743a9dd 100644
--- a/src/pokemon_3.c
+++ b/src/pokemon_3.c
@@ -8,7 +8,7 @@ extern u32 gIQSkillNames[];
extern u32 gIQSkillDescriptions[];
extern u32 gTacticsDescriptions[];
extern u8 *gTactics[];
-extern u8 gUnknown_810A36B[];
+extern u8 gTacticsTargetLeader[];
extern s16 gReqTacticLvls[];
extern s32 gReqIQSkillPts[];
@@ -483,10 +483,10 @@ u32 GetTacticsDescription(u8 r0)
u8 TacticsTargetLeader(u8 r0)
{
- return gUnknown_810A36B[r0];
+ return gTacticsTargetLeader[r0];
}
-void sub_808EB0C(u8 *r0, s32 pokeLevel)
+void GetAvailTacticsforLvl(u8 *tacticsBuffer, s32 pokeLevel)
{
s32 tactic;
s32 availTactics;
@@ -496,7 +496,7 @@ void sub_808EB0C(u8 *r0, s32 pokeLevel)
{
if(gReqTacticLvls[tactic] <= pokeLevel)
{
- r0[availTactics] = tactic;
+ tacticsBuffer[availTactics] = tactic;
availTactics++;
}
}
@@ -506,12 +506,13 @@ void sub_808EB0C(u8 *r0, s32 pokeLevel)
}
while(availTactics < NUM_TACTICS)
{
- r0[availTactics] = TACTIC_UNUSED;
+ tacticsBuffer[availTactics] = TACTIC_UNUSED;
availTactics++;
}
}
-void sub_808EB48(u8 *r0, s32 pokeLevel)
+// Instead of assigning the Tactic, a bool is assigned showing it is available
+void GetAvailTacticsforLvl_Bool(u8 *tacticsBuffer, s32 pokeLevel)
{
s32 tactic;
@@ -519,18 +520,18 @@ void sub_808EB48(u8 *r0, s32 pokeLevel)
{
if(gReqTacticLvls[tactic] <= pokeLevel)
{
- r0[tactic] = TRUE;
+ tacticsBuffer[tactic] = TRUE;
}
else
{
- r0[tactic] = FALSE;
+ tacticsBuffer[tactic] = FALSE;
}
}
}
bool8 HasIQForSkill(s32 pokeIQ, u8 IQSkillIndex)
{
- if(IQSkillIndex == 0)
+ if(IQSkillIndex == IQ_SKILL_NONE)
{
return FALSE;
}
@@ -538,7 +539,8 @@ bool8 HasIQForSkill(s32 pokeIQ, u8 IQSkillIndex)
return gReqIQSkillPts[IQSkillIndex] <= pokeIQ;
}
-s32 GetNumAvailableIQSkills(u8 *param_1, s32 pokeIQ)
+// Fills buffer with all avaiable IQ Skills and returns the amount
+s32 GetNumAvailableIQSkills(u8 *iqSkillBuffer, s32 pokeIQ)
{
s32 counter_2;
s32 counter_1;
@@ -550,22 +552,22 @@ s32 GetNumAvailableIQSkills(u8 *param_1, s32 pokeIQ)
for(counter_1 = IQ_SKILL_TYPE_ADVANTAGE_MASTER; counter_1 < NUM_IQ_SKILLS; counter_1++) {
iqSkill_u8 = counter_1; // force this cast to be in a reg
if (HasIQForSkill(pokeIQ, iqSkill_u8)) {
- param_1[availIQSkills] = iqSkill_u8;
+ iqSkillBuffer[availIQSkills] = iqSkill_u8;
availIQSkills++;
}
}
for (counter_2 = availIQSkills; counter_2 < NUM_IQ_SKILLS; counter_2++) {
- param_1[counter_2] = 0;
+ iqSkillBuffer[counter_2] = IQ_SKILL_NONE;
}
return availIQSkills;
}
-void sub_808EBF4(u8 *param_1, u32 param_2)
+void ToggleIQSkill(u8 *param_1, u32 skillIndex)
{
int iVar2; // a mask?
- iVar2 = 1 << (param_2);
+ iVar2 = 1 << (skillIndex);
if (IsIQSkillSet(param_1, iVar2)) {
param_1[0] = param_1[0] & ~iVar2;
param_1[1] = param_1[1] & ~(iVar2 >> 8);
@@ -573,7 +575,7 @@ void sub_808EBF4(u8 *param_1, u32 param_2)
}
else
{
- SetIQSkill(param_1, param_2);
+ SetIQSkill(param_1, skillIndex);
}
}
diff --git a/src/rescue_team_info.c b/src/rescue_team_info.c
index 9de46ad..5f49cab 100644
--- a/src/rescue_team_info.c
+++ b/src/rescue_team_info.c
@@ -12,25 +12,6 @@ extern void BoundedCopyStringtoBuffer(u8 *buffer, u8 *string, s32 size);
extern const char *gRescueTeamRanks[];
extern s32 gRescueRankMaxPoints[7];
extern u8 gTeamNamePlaceholder[0x8]; // Pokemon
-extern u8 gUnknown_810A35B[0x10];
-
-bool32 sub_8092040(u8 param_1)
-{
- s32 index;
-
- // NUMBER_OF_ITEM_IDS == 0xf0
- if (param_1 >= 0xF0)
- return TRUE;
- else {
- index = 0;
- while (gUnknown_810A35B[index] != 0xF0){
- if (gUnknown_810A35B[index] == param_1)
- return TRUE;
- index++;
- };
- return FALSE;
- }
-}
void LoadRescueTeamInfo(void)
{
diff --git a/src/thank_you_wonder_mail.c b/src/thank_you_wonder_mail.c
index 3f105c5..cfd83c6 100644
--- a/src/thank_you_wonder_mail.c
+++ b/src/thank_you_wonder_mail.c
@@ -504,7 +504,7 @@ u32 CreateThankYouMailPelipper(void)
gUnknown_203B2C4->unk218 = -1;
SetThankYouMailMenuState(THANK_YOU_MAIL_MAIN_MENU);
}
- gUnknown_203B2C4->unk4 = 0x2b;
+ gUnknown_203B2C4->fallbackState = 0x2b;
return 1;
}
@@ -665,40 +665,40 @@ void ReturnToThankYouMainFromError(void)
}
}
-void PrintThankYouMailLinkError(u32 param_1)
+void PrintThankYouMailLinkError(u32 errorCode)
{
- switch(param_1) {
- case 3:
+ switch(errorCode) {
+ case WONDER_MAIL_INCORRECT_NUM_SYSTEMS:
sub_80141B4(gUnknown_80DEF28, 0, &gUnknown_203B2C4->faceFile, 0x10d);
break;
- case 4:
+ case WONDER_MAIL_DIFFERENT_MODES:
sub_80141B4(gUnknown_80DEF80, 0, &gUnknown_203B2C4->faceFile, 0x10d);
break;
- case 6:
+ case WONDER_MAIL_NO_ROOM_STORAGE:
sub_80141B4(gUnknown_80DEFDC, 0, &gUnknown_203B2C4->faceFile, 0x10d);
break;
- case 7:
+ case WONDER_MAIL_DUPLICATE_MAIL:
sub_80141B4(gUnknown_80DF044, 0, &gUnknown_203B2C4->faceFile, 0x10d);
break;
- case 9:
+ case WONDER_MAIL_NOT_ELIGIBLE_1:
sub_80141B4(gUnknown_80DF0A0, 0, &gUnknown_203B2C4->faceFile, 0x10d);
break;
- case 11:
+ case WONDER_MAIL_NOT_ELIGIBLE_2:
sub_80141B4(gUnknown_80DF0A0, 0, &gUnknown_203B2C4->faceFile, 0x10d);
break;
- case 13:
+ case WONDER_MAIL_NO_ROOM_MAIL:
sub_80141B4(gUnknown_80DF0E0, 0, &gUnknown_203B2C4->faceFile, 0x10d);
break;
case 1:
- case 2:
+ case WONDER_MAIL_NO_RESPONSE:
case 5:
case 14:
sub_80141B4(gUnknown_80DEF04, 0, &gUnknown_203B2C4->faceFile, 0x10d);
break;
- case 15:
+ case WONDER_MAIL_NOT_READY:
sub_80141B4(gUnknown_80DF138, 0, &gUnknown_203B2C4->faceFile, 0x10d);
break;
- case 0:
+ case WONDER_MAIL_GOOD:
default:
break;
}
@@ -800,7 +800,7 @@ void sub_802A0C8(void)
SetThankYouMailMenuState(0x11);
break;
case 4:
- gUnknown_203B2C4->unk4 = 0x10;
+ gUnknown_203B2C4->fallbackState = 0x10;
gUnknown_203B2C4->unk218 = sub_80307EC();
sub_8006518(gUnknown_203B2C4->unk3BC);
ResetUnusedInputStruct();
@@ -837,7 +837,7 @@ void sub_802A174(void)
SetThankYouMailMenuState(0xe);
break;
case 0xC:
- gUnknown_203B2C4->unk4 = 0x2b;
+ gUnknown_203B2C4->fallbackState = 0x2b;
sub_8006518(gUnknown_203B2C4->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0,1,1);
@@ -864,12 +864,12 @@ void sub_802A230(void)
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2C4->unk3BC, 1, 1);
sub_803092C();
- if (gUnknown_203B2C4->unk4 == 0x2b) {
+ if (gUnknown_203B2C4->fallbackState == 0x2b) {
sub_8035CF4(&gUnknown_203B2C4->unk21C, 3, 1);
SetThankYouMailMenuState(0x11);
}
else {
- SetThankYouMailMenuState(gUnknown_203B2C4->unk4);
+ SetThankYouMailMenuState(gUnknown_203B2C4->fallbackState);
}
break;
default:
@@ -895,7 +895,7 @@ void sub_802A28C(void)
SetThankYouMailMenuState(0x14);
break;
case 4:
- gUnknown_203B2C4->unk4 = 0x13;
+ gUnknown_203B2C4->fallbackState = 0x13;
gUnknown_203B2C4->unk41C.itemIndex = sub_801CB24();
sub_8006518(gUnknown_203B2C4->unk3BC);
ResetUnusedInputStruct();
@@ -916,12 +916,12 @@ void sub_802A33C(void)
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2C4->unk3BC,1,1);
sub_801CB5C(1);
- if (gUnknown_203B2C4->unk4 == 0x2b) {
+ if (gUnknown_203B2C4->fallbackState == 0x2b) {
sub_8035CF4(&gUnknown_203B2C4->unk21C,3,1);
SetThankYouMailMenuState(0x14);
}
else {
- SetThankYouMailMenuState(gUnknown_203B2C4->unk4);
+ SetThankYouMailMenuState(gUnknown_203B2C4->fallbackState);
}
break;
case 1:
@@ -947,7 +947,7 @@ void sub_802A39C(void)
SetThankYouMailMenuState(CONFIRM_ITEM_TO_SEND);
break;
case 0xC:
- gUnknown_203B2C4->unk4 = 0x2b;
+ gUnknown_203B2C4->fallbackState = 0x2b;
sub_8006518(gUnknown_203B2C4->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0,1,1);
diff --git a/src/wonder_mail.c b/src/wonder_mail.c
index 6f7e081..fd5e1df 100644
--- a/src/wonder_mail.c
+++ b/src/wonder_mail.c
@@ -197,7 +197,7 @@ u32 sub_8027F88(void)
for(counter = 0; counter < PASSWORD_BUFFER_SIZE; counter++){
gUnknown_203B2C0->passwordBuffer[counter] = 0;
}
- gUnknown_203B2C0->unk0 = 0x3D;
+ gUnknown_203B2C0->fallbackState = 0x3D;
sub_8028B04(0); // Set initial state to 0?
return 1;
}
@@ -706,50 +706,44 @@ void sub_8028B04(u32 r0)
}
// Wonder Mail Linking...
-void sub_8028B1C(u32 r0)
+void sub_8028B1C(u32 errorCode)
{
- switch(r0)
+ switch(errorCode)
{
- case 0:
+ case WONDER_MAIL_GOOD:
break;
case 1:
- case 2:
+ case WONDER_MAIL_NO_RESPONSE:
sub_80141B4(gWonderMailErrorText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
break;
- case 3:
+ case WONDER_MAIL_INCORRECT_NUM_SYSTEMS:
sub_80141B4(gWonderMailNumGBAsText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
break;
- case 4:
+ case WONDER_MAIL_DIFFERENT_MODES:
sub_80141B4(gWonderMailWrongModeText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
break;
case 5:
sub_80141B4(gWonderMailErrorText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
break;
- case 6:
+ case WONDER_MAIL_NO_ROOM_STORAGE:
sub_80141B4(gWonderMailStorageFullText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
break;
- case 7:
+ case WONDER_MAIL_DUPLICATE_MAIL:
sub_80141B4(gWonderMailDuplicateText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
break;
- case 8:
- break;
- case 9:
+ case WONDER_MAIL_NOT_ELIGIBLE_1:
sub_80141B4(gWonderMailNotEligibleReceiveText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
break;
- case 10:
- break;
- case 11:
+ case WONDER_MAIL_NOT_ELIGIBLE_2:
sub_80141B4(gWonderMailNotEligibleReceiveText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
break;
- case 12:
- break;
- case 13:
+ case WONDER_MAIL_NO_ROOM_MAIL:
sub_80141B4(gWonderMailNoRoomText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
break;
case 14:
sub_80141B4(gWonderMailErrorText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
break;
- case 15:
+ case WONDER_MAIL_NOT_READY:
sub_80141B4(gWonderMailFriendErrorText, 0, &gUnknown_203B2C0->faceFile, 0x10d);
break;
default:
@@ -1134,7 +1128,7 @@ void sub_8029044(void)
sub_8028B04(32);
break;
case 4:
- gUnknown_203B2C0->unk0 = 0x1F;
+ gUnknown_203B2C0->fallbackState = 0x1F;
gUnknown_203B2C0->unk218 = sub_80307EC();
sub_8006518(gUnknown_203B2C0->unk3BC);
ResetUnusedInputStruct();
@@ -1171,7 +1165,7 @@ void sub_80290F0(void)
sub_8028B04(34);
break;
case 12:
- gUnknown_203B2C0->unk0 = 0x3D;
+ gUnknown_203B2C0->fallbackState = 0x3D;
sub_8006518(gUnknown_203B2C0->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0, 1, 1);
@@ -1199,14 +1193,14 @@ void sub_80291AC(void)
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2C0->unk3BC, 1, 1);
sub_803092C();
- if(gUnknown_203B2C0->unk0 == 0x3D)
+ if(gUnknown_203B2C0->fallbackState == 0x3D)
{
sub_8035CF4(&(gUnknown_203B2C0->unk21C), 3, 1);
sub_8028B04(0x20);
}
else
{
- sub_8028B04(gUnknown_203B2C0->unk0);
+ sub_8028B04(gUnknown_203B2C0->fallbackState);
}
default:
break;
@@ -1484,7 +1478,7 @@ void sub_80295D8(void)
sub_8028B04(0x2B);
break;
case 4:
- gUnknown_203B2C0->unk0 = 0x2A;
+ gUnknown_203B2C0->fallbackState = 0x2A;
gUnknown_203B2C0->unk218 = sub_80307EC();
sub_8006518(gUnknown_203B2C0->unk3BC);
ResetUnusedInputStruct();
@@ -1521,7 +1515,7 @@ void sub_8029684(void)
sub_8028B04(0x2D);
break;
case 0xC:
- gUnknown_203B2C0->unk0 = 0x3D;
+ gUnknown_203B2C0->fallbackState = 0x3D;
sub_8006518(gUnknown_203B2C0->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0, 1, 1);
@@ -1547,14 +1541,14 @@ void sub_8029740(void)
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2C0->unk3BC, 1, 1);
sub_803092C();
- if(gUnknown_203B2C0->unk0 == 0x3D)
+ if(gUnknown_203B2C0->fallbackState == 0x3D)
{
sub_8035CF4(&(gUnknown_203B2C0->unk21C), 3, 1);
sub_8028B04(0x2B);
}
else
{
- sub_8028B04(gUnknown_203B2C0->unk0);
+ sub_8028B04(gUnknown_203B2C0->fallbackState);
}
break;
}
@@ -1594,7 +1588,7 @@ void sub_80297D4(void)
sub_8028B04(0x34);
break;
case 4:
- gUnknown_203B2C0->unk0 = 0x33;
+ gUnknown_203B2C0->fallbackState = 0x33;
gUnknown_203B2C0->unk544 = sub_8023B44();
sub_8006518(gUnknown_203B2C0->unk3BC);
ResetUnusedInputStruct();
@@ -1621,7 +1615,7 @@ void sub_8029884(void)
sub_8028B04(4);
break;
case 0xC:
- gUnknown_203B2C0->unk0 = 0x3D;
+ gUnknown_203B2C0->fallbackState = 0x3D;
sub_8006518(gUnknown_203B2C0->unk3BC);
ResetUnusedInputStruct();
sub_800641C(0, 1, 1);
@@ -1656,14 +1650,14 @@ void sub_8029944(void)
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B2C0->unk3BC, 1, 1);
sub_8023B7C(1);
- if(gUnknown_203B2C0->unk0 == 0x3D)
+ if(gUnknown_203B2C0->fallbackState == 0x3D)
{
sub_8035CF4(&(gUnknown_203B2C0->unk21C), 3, 1);
sub_8028B04(0x34);
}
else
{
- sub_8028B04(gUnknown_203B2C0->unk0);
+ sub_8028B04(gUnknown_203B2C0->fallbackState);
}
}
diff --git a/src/wonder_mail_2.c b/src/wonder_mail_2.c
index 1ded0ec..cf1f122 100644
--- a/src/wonder_mail_2.c
+++ b/src/wonder_mail_2.c
@@ -13,9 +13,8 @@
struct unkStruct_203B2C8
{
// size: 0x140
- u8 currState;
- u8 unk1;
- u16 unk2;
+ /* 0x0 */ u8 currState;
+ /* 0x1 */ u8 unk1;
/* 0x4 */ struct OpenedFile *faceFile;
/* 0x8 */ u8 *faceData;
/* 0xC */ u16 unkC;
@@ -53,15 +52,13 @@ struct unkStruct_203B2CC
struct UnkTextStruct2 *unk70;
struct UnkTextStruct2 unk74[4];
};
-
extern struct unkStruct_203B2CC *gUnknown_203B2CC;
struct unkStruct_203B2D4
{
// size: 0x94
- s32 state;
- u8 currMailIndex;
- u8 fill5[0x8 - 0x5];
+ /* 0x0 */ s32 state;
+ /* 0x4 */ u8 currMailIndex;
s32 unk8;
s32 unkC;
u8 *unk10[4];
@@ -71,9 +68,28 @@ struct unkStruct_203B2D4
u32 unk88;
u8 fill8C[0x94 - 0x8C];
};
-
extern struct unkStruct_203B2D4 *gUnknown_203B2D4;
+struct unkStruct_203B2D8
+{
+ // size: 0xA4
+ u8 unk0[4];
+ u32 unk4;
+ u8 fill8[0x1C - 0x8];
+ s16 unk1C;
+ s16 unk1E;
+ s16 unk20;
+ s16 unk22;
+ s16 fill24;
+ /* 0x26 */ s16 emptyMailSlots;
+ u8 fill28[0x38 - 0x28];
+ u32 unk38;
+ struct UnkTextStruct2 *unk3C;
+ struct UnkTextStruct2 unk40[4];
+ u8 unkA0[4];
+};
+extern struct unkStruct_203B2D8 *gUnknown_203B2D8;
+
extern struct UnkSaveStruct1 *gUnknown_203B46C;
@@ -89,7 +105,7 @@ extern struct PokemonStruct *sub_808D3BC(void);
extern void PrintPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon);
extern u16 gUnknown_203B2D0;
extern u16 gUnknown_203B2D2;
-
+extern u16 gUnknown_203B2DC;
extern u8 sub_80138B8(void *, u32);
extern void PlayMenuSoundEffect(u32);
extern s32 GetKeyPress(u32 *);
@@ -101,7 +117,6 @@ extern void sub_802BC08(void);
extern void sub_802BB28(void);
extern void sub_8013E54(void);
extern s32 sub_8012A64(u32 *, u32);
-extern void PlayMenuSoundEffect(u32);
extern struct UnkTextStruct2 gUnknown_80DFBEC;
@@ -144,6 +159,8 @@ extern void sub_802ABF8(void);
extern u8 gUnknown_80DFC04[];
extern u8 gUnknown_80DFBE8[];
+extern struct UnkTextStruct2 gUnknown_80DFC74;
+extern struct UnkTextStruct2 gUnknown_80DFC5C;
extern char *GetPokemonMailHeadline(u8 index);
extern void sub_8008C54(u32);
extern void sub_80073B8(u32);
@@ -158,6 +175,13 @@ extern s32 sub_8013800(u32 *, s32);
extern void sub_802BCC4(void);
extern void sub_802BB14(u32);
extern void sub_801317C(u32 *);
+char *GetPokemonMailText(u8 index);
+extern u8 HasNoMailinMailbox(void);
+extern void sub_802BF30(void);
+extern void CreateMailMenu(void);
+extern void sub_8012D34(struct UnkTextStruct2 *, u32);
+extern s32 CountEmptyMailSlots(void);
+extern void sub_8013848(u32 *, s32, u32, u32);
ALIGNED(4) const char gUnknown_80DF9F0[] = "????";
@@ -595,7 +619,7 @@ bool8 HasNoPKMNNews(void)
u32 sub_802B9FC(u8 mailIndex)
{
- gUnknown_203B2D4 = MemoryAlloc(sizeof(struct unkStruct_203B2D4), 0x8);
+ gUnknown_203B2D4 = MemoryAlloc(sizeof(struct unkStruct_203B2D4), 8);
gUnknown_203B2D4->currMailIndex = mailIndex;
sub_801317C(&gUnknown_203B2D4->unk88);
gUnknown_203B2D4->unk24 = 0;
@@ -729,3 +753,124 @@ void sub_802BC7C(void)
strcpy(gAvailablePokemonNames + 0x50, gUnknown_80DFC50); // He
}
}
+
+void sub_802BCC4(void)
+{
+ char *mailTextPtr;
+
+ mailTextPtr = GetPokemonMailText(gUnknown_203B2D4->currMailIndex);
+ gUnknown_203B2D4->unkC = 0;
+ gUnknown_203B2D4->unk10[0] = mailTextPtr;
+
+ // Count all the {EXTRA_MSG}'s
+ while (*mailTextPtr != '\0') {
+ if (*mailTextPtr == '#') {
+ if ((mailTextPtr[1] == 'P') || (mailTextPtr[1] == 'p')) {
+ gUnknown_203B2D4->unkC++;
+ gUnknown_203B2D4->unk10[gUnknown_203B2D4->unkC] = mailTextPtr + 2;
+ }
+ mailTextPtr += 2;
+ }
+ else {
+ mailTextPtr++;
+ }
+ }
+}
+
+u32 sub_802BD14(s32 param_1, struct UnkTextStruct2_sub *param_2, u32 param_3)
+{
+
+ if (HasNoMailinMailbox()) {
+ return 0;
+ }
+ else
+ {
+ if (gUnknown_203B2D8 == NULL) {
+ gUnknown_203B2D8 = MemoryAlloc(sizeof(struct unkStruct_203B2D8),8);
+ }
+ gUnknown_203B2D8->unk38 = param_1;
+ gUnknown_203B2D8->unk3C = &gUnknown_203B2D8->unk40[param_1];
+ sub_8006518(gUnknown_203B2D8->unk40);
+ gUnknown_203B2D8->unk40[gUnknown_203B2D8->unk38] = gUnknown_80DFC74;
+ gUnknown_203B2D8->unk3C->unk14 = gUnknown_203B2D8->unkA0;
+ if (param_2 != NULL) {
+ gUnknown_203B2D8->unk40[gUnknown_203B2D8->unk38].unk08 = *param_2;
+ }
+ sub_8012D34(gUnknown_203B2D8->unk3C,param_3);
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B2D8->unk40,1,1);
+ sub_8013848(&gUnknown_203B2D8->unk4,CountEmptyMailSlots(),param_3,param_1);
+ gUnknown_203B2D8->unk1C = gUnknown_203B2DC;
+ sub_8013984(&gUnknown_203B2D8->unk4);
+ sub_802BF30();
+ CreateMailMenu();
+ return 1;
+ }
+}
+
+u32 sub_802BDEC(u8 r0)
+{
+ if(r0 == 0)
+ {
+ sub_8013660(&gUnknown_203B2D8->unk4);
+ return 0;
+ }
+ switch(GetKeyPress(&gUnknown_203B2D8->unk4))
+ {
+ case 2:
+ PlayMenuSoundEffect(1);
+ return 2;
+ case 1:
+ PlayMenuSoundEffect(0);
+ return 3;
+ case 4:
+ PlayMenuSoundEffect(4);
+ return 4;
+ default:
+ if(sub_80138B8(&gUnknown_203B2D8->unk4, 1) != 0)
+ {
+ sub_802BF30();
+ CreateMailMenu();
+ return 1;
+ }
+ else
+ return 0;
+ }
+}
+
+u8 sub_802BE74(void) {
+ return gUnknown_203B2D8->unk0[(gUnknown_203B2D8->unk22 * gUnknown_203B2D8->unk20) + gUnknown_203B2D8->unk1C];
+}
+
+void sub_802BE94(u32 r0)
+{
+ u8 temp;
+
+ temp = r0;
+
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B2D8->unk40, 0, 0);
+
+ gUnknown_203B2D8->emptyMailSlots = CountEmptyMailSlots();
+ sub_8013984(&gUnknown_203B2D8->unk4);
+ sub_802BF30();
+ CreateMailMenu();
+
+ if(temp != 0)
+ {
+ AddMenuCursorSprite(&gUnknown_203B2D8->unk4);
+ }
+}
+
+void sub_802BEDC(void)
+{
+ if(gUnknown_203B2D8 != NULL)
+ {
+ gUnknown_203B2DC = gUnknown_203B2D8->unk1C;
+ gUnknown_203B2D8->unk40[gUnknown_203B2D8->unk38] = gUnknown_80DFC5C;
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B2D8->unk40, 1, 1);
+ MemoryFree(gUnknown_203B2D8);
+ gUnknown_203B2D8 = NULL;
+ }
+}
diff --git a/src/wonder_mail_3.c b/src/wonder_mail_3.c
index aa87888..02dcfb7 100644
--- a/src/wonder_mail_3.c
+++ b/src/wonder_mail_3.c
@@ -2,6 +2,7 @@
#include "memory.h"
#include "text.h"
#include "input.h"
+#include "mailbox.h"
#include "menu.h"
#include "constants/dungeon.h"
#include "wonder_mail.h"
@@ -82,7 +83,6 @@ extern u8 sub_802DADC(void);
extern u8 *sub_8096DD8(void);
extern u8 sub_8096C08(u8 *);
extern void sub_802C750(void);
-extern s32 GetNumAcceptedJobs(void);
extern void sub_802D1A0(u32);
extern void sub_8012EA4(u8 *, u32);
extern void* sub_8096AB4(u8);
@@ -228,7 +228,7 @@ void sub_802D2A8(void)
}
}
else {
- if (GetNumAcceptedJobs() >= 8) {
+ if (GetNumAcceptedJobs() >= MAX_ACCEPTED_JOBS) {
if (sub_802DADC() != 0) {
sub_802D1A0(10);
}
diff --git a/src/wonder_mail_802DF88.c b/src/wonder_mail_802DF88.c
new file mode 100644
index 0000000..b85df28
--- /dev/null
+++ b/src/wonder_mail_802DF88.c
@@ -0,0 +1,316 @@
+#include "global.h"
+#include "exclusive_pokemon.h"
+#include "input.h"
+#include "item.h"
+#include "memory.h"
+#include "text.h"
+#include "wonder_mail.h"
+
+struct unkStruct_203B2FC
+{
+ // size: 0xA8
+ /* 0x0 */ u32 state;
+ /* 0x4 */ u32 fallbackState;
+ u32 unk8;
+ s16 unkC;
+ s16 unkE;
+ u8 unk10;
+ u8 fill11[0x30 - 0x11];
+ u8 unk30;
+ u8 fill31[3];
+ struct WonderMail *unk34;
+ struct OpenedFile *faceFile;
+ u8 *faceData;
+ u16 unk40;
+ u16 unk42;
+ u8 unk44;
+ u8 unk45;
+ u8 unk46;
+ u8 fill47[0x48 - 0x47];
+ struct UnkTextStruct2 unk48[4];
+};
+extern struct unkStruct_203B2FC *gUnknown_203B2FC;
+
+
+struct unkStruct_203B300
+{
+ // size: 0x7C
+ u8 fill0[0xC];
+ u32 *unkC;
+ u32 unk10;
+ struct UnkTextStruct2 *unk14;
+ struct UnkTextStruct2 unk18[4];
+ u8 unk78[4];
+};
+
+extern struct unkStruct_203B300 *gUnknown_203B300;
+extern struct UnkTextStruct2 gUnknown_80E0248;
+extern struct UnkTextStruct2 gUnknown_80E0264;
+extern struct UnkTextStruct2 gUnknown_80E016C;
+extern void sub_80073B8(u32);
+extern void sub_80073E0(u32);
+extern void CreateRescueDescription(u32 *);
+extern void PlayMenuSoundEffect(u32);
+extern s32 sub_8012A64(void *, u32);
+void sub_802DF6C(void);
+void sub_802DF88(void);
+void sub_802DF14(void);
+void sub_801317C(void);
+extern s32 sub_80144A4(s32 *);
+extern void sub_802DC28(u32);
+extern void sub_802F2C0(void);
+extern void sub_802DC28(u32);
+extern u32 sub_802F298(void);
+extern u8 gUnknown_202E5D8[];
+extern u8 gUnknown_202E1C8[];
+extern u8 gUnknown_202DE58[];
+
+extern u8 gWonderMailClientThanksForRescuingMe[];
+extern u8 gWonderMailClientThanksForRescuingThem[];
+extern u8 gWonderMailClientEscorted[];
+extern u8 gWonderMailClientItemDelivered1[];
+extern u8 gWonderMailClientItemDelivered2[];
+extern void sub_802F204(u32 *, u32);
+extern void sub_80141B4(u8 *r0, u32, struct OpenedFile **r1, u32);
+extern void sub_802DC40(void);
+extern void sub_802DC9C(void);
+void sub_802DE44(void);
+void sub_802DE60(void);
+struct WonderMail *sub_8096AB4(u8);
+extern void sub_8096AF8(u8 *, u32, u32);
+extern void sub_8096EEC(void);
+extern void sub_803C21C(struct WonderMail *, u32 *);
+
+u32 sub_802DB28(u8 param_1, u8 param_2)
+{
+ char local_18 [8];
+
+ sub_8096AF8(local_18,param_1,param_2);
+ if (local_18[0] == '\0') {
+ return 0;
+ }
+ else {
+ ResetUnusedInputStruct();
+ sub_800641C(0,1,1);
+ gUnknown_203B2FC = MemoryAlloc(sizeof(struct unkStruct_203B2FC),8);
+ gUnknown_203B2FC->unk30 = param_1;
+ gUnknown_203B2FC->unk34 = sub_8096AB4(param_1);
+ sub_8096EEC();
+ sub_803C21C(gUnknown_203B2FC->unk34,&gUnknown_203B2FC->unk8);
+ gUnknown_203B2FC->faceFile = GetDialogueSpriteDataPtr(gUnknown_203B2FC->unk34->clientSpecies);
+ gUnknown_203B2FC->faceData = NULL;
+ gUnknown_203B2FC->unk44 = 0;
+ gUnknown_203B2FC->unk45 = 0;
+ gUnknown_203B2FC->unk46 = 0;
+ gUnknown_203B2FC->unk40 = 2;
+ gUnknown_203B2FC->unk42 = 8;
+ if (gUnknown_203B2FC->faceFile != NULL) {
+ gUnknown_203B2FC->faceData = gUnknown_203B2FC->faceFile->data;
+ }
+ sub_802DC28(0);
+ return 1;
+ }
+}
+
+u32 sub_802DBD4(void)
+{
+ switch(gUnknown_203B2FC->state)
+ {
+ case 7:
+ gUnknown_203B2FC->unk34->mailType = 7;
+ return 3;
+ case 6:
+ sub_802DE44();
+ return 0;
+ default:
+ sub_802DE60();
+ return 0;
+ }
+}
+
+void sub_802DC00(void)
+{
+ if(gUnknown_203B2FC != NULL)
+ {
+ if(gUnknown_203B2FC->faceFile != NULL)
+ {
+ CloseFile(gUnknown_203B2FC->faceFile);
+ }
+ MemoryFree(gUnknown_203B2FC);
+ gUnknown_203B2FC = NULL;
+ }
+}
+
+void sub_802DC28(u32 newState)
+{
+ gUnknown_203B2FC->state = newState;
+ sub_802DC40();
+ sub_802DC9C();
+}
+
+void sub_802DC40(void)
+{
+ s32 iVar3;
+ sub_8006518(gUnknown_203B2FC->unk48);
+ switch(gUnknown_203B2FC->state)
+ {
+ case 0:
+ case 7:
+ for(iVar3 = 0; iVar3 < 4; iVar3++)
+ {
+ gUnknown_203B2FC->unk48[iVar3] = gUnknown_80E016C;
+ }
+ break;
+ }
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B2FC->unk48, 1, 1);
+}
+
+void sub_802DC9C(void)
+{
+ char *speciesText;
+ s32 index;
+
+ switch(gUnknown_203B2FC->state) {
+ case 0:
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8,gUnknown_203B2FC->unk34->clientSpecies);
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E1C8,gUnknown_203B2FC->unk34->clientSpecies);
+ speciesText = GetMonSpecies(gUnknown_203B2FC->unk34->clientSpecies);
+ strcpy(gUnknown_202E1C8 + 0xfffffdd0,speciesText);
+ speciesText = GetMonSpecies(gUnknown_203B2FC->unk34->targetSpecies);
+ strcpy(gUnknown_202E1C8 + 0xfffffe20,speciesText);
+ UnlockExclusivePokemon(gUnknown_203B2FC->unk34->clientSpecies);
+ sub_8090DC4(gUnknown_202DE58,gUnknown_203B2FC->unk34->targetItem,0);
+ gUnknown_203B2FC->fallbackState = 6;
+ switch(gUnknown_203B2FC->unk34->missionType) {
+ case WONDER_MAIL_MISSION_TYPE_DELIVER_ITEM:
+ sub_802DC28(5);
+ break;
+ case WONDER_MAIL_MISSION_TYPE_FIND_ITEM:
+ sub_802DC28(4);
+ break;
+ case WONDER_MAIL_MISSION_TYPE_RESCUE_TARGET:
+ sub_802DC28(2);
+ UnlockExclusivePokemon(gUnknown_203B2FC->unk34->targetSpecies);
+ break;
+ case WONDER_MAIL_MISSION_TYPE_ESCORT_CLIENT:
+ sub_802DC28(3);
+ UnlockExclusivePokemon(gUnknown_203B2FC->unk34->targetSpecies);
+ break;
+ default:
+ case WONDER_MAIL_MISSION_TYPE_RESCUE_CLIENT:
+ sub_802DC28(1);
+ break;
+ }
+ break;
+ case 1:
+ sub_80141B4(gWonderMailClientThanksForRescuingMe,0,&gUnknown_203B2FC->faceFile,0x10d);
+ break;
+ case 2:
+ sub_80141B4(gWonderMailClientThanksForRescuingThem,0,&gUnknown_203B2FC->faceFile,0x10d);
+ break;
+ case 3:
+ sub_80141B4(gWonderMailClientEscorted,0,&gUnknown_203B2FC->faceFile,0x10d);
+ break;
+ case 5:
+ sub_80141B4(gWonderMailClientItemDelivered1,0,&gUnknown_203B2FC->faceFile,0x10d);
+ break;
+ case 4:
+ index = FindItemInInventory(gUnknown_203B2FC->unk34->targetItem);
+ if (index != -1) {
+ ShiftItemsDownFrom(index);
+ FillInventoryGaps();
+ }
+ sub_80141B4(gWonderMailClientItemDelivered2,0,&gUnknown_203B2FC->faceFile,0x10d);
+ break;
+ case 6:
+ sub_802F204(&gUnknown_203B2FC->unk8,1);
+ break;
+ case 7:
+ default:
+ break;
+ }
+}
+
+void sub_802DE44(void)
+{
+ switch(sub_802F298())
+ {
+ case 2:
+ case 3:
+ sub_802F2C0();
+ sub_802DC28(7);
+ break;
+ case 0:
+ case 1:
+ break;
+ }
+}
+
+void sub_802DE60(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ sub_802DC28(gUnknown_203B2FC->fallbackState);
+ }
+}
+
+u32 sub_802DE84(u32 *r0)
+{
+ gUnknown_203B300 = MemoryAlloc(sizeof(struct unkStruct_203B300), 8);
+ gUnknown_203B300->unkC = r0;
+ sub_801317C();
+ gUnknown_203B300->unk10 = *gUnknown_203B300->unkC;
+ gUnknown_203B300->unk14 = &gUnknown_203B300->unk18[gUnknown_203B300->unk10];
+ sub_8006518(gUnknown_203B300->unk18);
+ gUnknown_203B300->unk18[gUnknown_203B300->unk10] = gUnknown_80E0264;
+ sub_802DF14();
+ return 1;
+}
+
+u32 sub_802DEE0(void)
+{
+ switch(sub_8012A64(gUnknown_203B300, gUnknown_203B300->unk10))
+ {
+ case 2:
+ PlayMenuSoundEffect(1);
+ return 2;
+ case 1:
+ PlayMenuSoundEffect(0);
+ return 3;
+ default:
+ return 0;
+ }
+}
+
+void sub_802DF14(void)
+{
+ sub_802DF6C();
+ sub_802DF88();
+}
+
+void sub_802DF24(void)
+{
+ if(gUnknown_203B300 != NULL)
+ {
+ gUnknown_203B300->unk18[gUnknown_203B300->unk10] = gUnknown_80E0248;
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B300->unk18, 1, 1);
+ MemoryFree(gUnknown_203B300);
+ gUnknown_203B300 = NULL;
+ }
+}
+
+void sub_802DF6C(void)
+{
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B300->unk18, 1, 1);
+}
+
+void sub_802DF88(void)
+{
+ sub_80073B8(gUnknown_203B300->unk10);
+ CreateRescueDescription(gUnknown_203B300->unkC);
+ sub_80073E0(gUnknown_203B300->unk10);
+}