summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-06-11 16:02:17 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-06-11 16:42:58 -0400
commita85ca78e68db190d139f61c959a4aea8803aa76b (patch)
treedb9f80004b3182a95d5c6787f8547b23d0997526
parenteff79df215fc70712bbb396126d74aa07c8d4a91 (diff)
More pokemon.s method names; annotate species imms in FUN_02068C00
-rw-r--r--arm9/asm/pokemon.s133
-rw-r--r--arm9/asm/scrcmd_12.s4
-rw-r--r--arm9/asm/unk_02025658.s30
-rw-r--r--arm9/asm/unk_020476CC.s2
-rw-r--r--arm9/asm/unk_020653EC.s2
-rw-r--r--arm9/asm/unk_0206C700.s2
-rw-r--r--arm9/asm/unk_02079C70.s6
-rw-r--r--arm9/asm/unk_020828BC.s2
-rw-r--r--arm9/asm/unk_020854E0.s12
-rw-r--r--arm9/global.inc22
-rw-r--r--arm9/modules/05/asm/module_05.s8
-rw-r--r--arm9/modules/06/asm/module_06.s16
-rw-r--r--arm9/modules/09/asm/module_09.s4
-rw-r--r--arm9/modules/11/asm/module_11.s30
-rw-r--r--arm9/modules/12/asm/module_12.s4
-rw-r--r--arm9/modules/83/asm/module_83.s2
-rw-r--r--include/pokemon.h23
17 files changed, 161 insertions, 141 deletions
diff --git a/arm9/asm/pokemon.s b/arm9/asm/pokemon.s
index 3bfbd197..ec6ac699 100644
--- a/arm9/asm/pokemon.s
+++ b/arm9/asm/pokemon.s
@@ -336,7 +336,7 @@ CreateMon: ; 0x02066ACC
add r2, sp, #0x48
bl SetMonDataEncrypted
mov r0, #0x0
- bl FUN_020256BC
+ bl CreateNewSealsObject
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0xa9
@@ -390,6 +390,7 @@ _02066B8E:
mov r1, #0x0
add r2, sp, #0x34
bl SetBoxMonDataEncrypted
+ // If otIdType == 2, generate a random OT ID that prevents shininess
ldr r0, [sp, #0x38]
cmp r0, #0x2
bne _02066BD6
@@ -444,7 +445,7 @@ _02066BDE:
bl SetBoxMonDataEncrypted
ldr r0, [sp, #0x24]
ldr r1, [sp, #0x28]
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
str r0, [sp, #0x8]
add r0, r5, #0x0
mov r1, #0x8
@@ -709,7 +710,7 @@ _02066E4C:
ldr r0, [sp, #0x14]
add r1, r6, #0x0
add r2, r7, #0x0
- bl FUN_02066E74
+ bl AdjustPersonalityToForceGenderAndNature
add r4, r0, #0x0
_02066E58:
mov r0, #0x1
@@ -726,8 +727,8 @@ _02066E58:
add sp, #0x24
pop {r4-r7, pc}
- thumb_func_start FUN_02066E74
-FUN_02066E74: ; 0x02066E74
+ thumb_func_start AdjustPersonalityToForceGenderAndNature
+AdjustPersonalityToForceGenderAndNature: ; 0x02066E74
push {r3-r5, lr}
add r5, r1, #0x0
mov r1, #0x12
@@ -752,8 +753,8 @@ _02066EA0:
add r0, r4, #0x0
pop {r3-r5, pc}
- thumb_func_start FUN_02066EA4
-FUN_02066EA4: ; 0x02066EA4
+ thumb_func_start CreateMonWithFixedIVs
+CreateMonWithFixedIVs: ; 0x02066EA4
push {r0-r3}
push {r4, lr}
sub sp, #0x10
@@ -1239,7 +1240,7 @@ _02067298:
_0206729E:
add r0, #0x9c
add r1, r2, #0x0
- bl FUN_020256D0
+ bl CopySealsObject
mov r0, #0x1
pop {r3, pc}
_020672AA:
@@ -2176,7 +2177,7 @@ _02067940:
add r3, #0x9c
add r0, r2, #0x0
add r1, r3, #0x0
- bl FUN_020256D0
+ bl CopySealsObject
pop {r3, pc}
_0206794C:
add r3, #0xd4
@@ -3142,7 +3143,7 @@ _02068066:
add r0, r5, #0x0
add r1, r4, #0x0
add r2, r6, #0x0
- bl AddMonPartyStat
+ bl AddMonData
ldrh r0, [r5, #0x4]
lsl r0, r0, #0x1f
lsr r0, r0, #0x1f
@@ -3166,8 +3167,8 @@ _0206809C:
pop {r4-r6, pc}
.balign 4
- thumb_func_start AddMonPartyStat
-AddMonPartyStat: ; 0x020680A0
+ thumb_func_start AddMonData
+AddMonData: ; 0x020680A0
push {r3, lr}
add r3, r1, #0x0
sub r3, #0x9f
@@ -3216,12 +3217,12 @@ _020680F2:
bl ErrorHandling
pop {r3, pc}
_020680F8:
- bl FUN_02068100
+ bl AddBoxMonData
pop {r3, pc}
.balign 4
- thumb_func_start FUN_02068100
-FUN_02068100: ; 0x02068100
+ thumb_func_start AddBoxMonData
+AddBoxMonData: ; 0x02068100
push {r4-r7, lr}
sub sp, #0xc
add r7, r1, #0x0
@@ -3441,14 +3442,14 @@ _0206814E: ; jump table (using 16-bit offset)
_020682B4:
ldrh r0, [r4, #0x0]
mov r1, #0x64
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
ldr r1, [r4, #0x8]
add r1, r1, r6
cmp r1, r0
bls _020682D2
ldrh r0, [r4, #0x0]
mov r1, #0x64
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
add sp, #0xc
str r0, [r4, #0x8]
pop {r4-r7, pc}
@@ -4008,8 +4009,8 @@ GetMonBaseStat: ; 0x02068678
pop {r3-r5, pc}
.balign 4
- thumb_func_start FUN_02068698
-FUN_02068698: ; 0x02068698
+ thumb_func_start GetPercentProgressTowardsNextLevel
+GetPercentProgressTowardsNextLevel: ; 0x02068698
push {r3-r7, lr}
add r5, r0, #0x0
bl TryDecryptMon
@@ -4028,11 +4029,11 @@ FUN_02068698: ; 0x02068698
lsr r7, r0, #0x18
add r0, r6, #0x0
add r1, r7, #0x0
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
add r4, r0, #0x0
add r0, r6, #0x0
add r1, r7, #0x1
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
add r6, r0, #0x0
add r0, r5, #0x0
mov r1, #0x8
@@ -4079,12 +4080,12 @@ CalcBoxMonExpToNextLevelEncrypted: ; 0x02068700
add r4, r0, #0x0
add r0, r6, #0x0
add r1, r5, #0x0
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
sub r0, r0, r4
pop {r4-r6, pc}
- thumb_func_start FUN_02068734
-FUN_02068734: ; 0x02068734
+ thumb_func_start GetMonBaseExperienceAtCurrentLevel
+GetMonBaseExperienceAtCurrentLevel: ; 0x02068734
push {r3-r5, lr}
add r5, r0, #0x0
mov r1, #0x5
@@ -4097,12 +4098,12 @@ FUN_02068734: ; 0x02068734
bl GetMonDataEncrypted
add r1, r0, #0x0
add r0, r4, #0x0
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
pop {r3-r5, pc}
.balign 4
- thumb_func_start GetMonExpByLevel
-GetMonExpByLevel: ; 0x02068758
+ thumb_func_start GetMonExpBySpeciesAndLevel
+GetMonExpBySpeciesAndLevel: ; 0x02068758
push {r4, lr}
add r4, r1, #0x0
mov r1, #0x15
@@ -4530,15 +4531,15 @@ _02068A78:
pop {r4, pc}
.balign 4
- thumb_func_start FUN_02068A80
-FUN_02068A80: ; 0x02068A80
- ldr r3, _02068A84 ; =FUN_02068A88
+ thumb_func_start MonIsShiny
+MonIsShiny: ; 0x02068A80
+ ldr r3, _02068A84 ; =BoxMonIsShiny
bx r3
.balign 4
-_02068A84: .word FUN_02068A88
+_02068A84: .word BoxMonIsShiny
- thumb_func_start FUN_02068A88
-FUN_02068A88: ; 0x02068A88
+ thumb_func_start BoxMonIsShiny
+BoxMonIsShiny: ; 0x02068A88
push {r3-r5, lr}
mov r1, #0x7
mov r2, #0x0
@@ -4551,12 +4552,12 @@ FUN_02068A88: ; 0x02068A88
bl GetBoxMonDataEncrypted
add r1, r0, #0x0
add r0, r4, #0x0
- bl FUN_02068AAC
+ bl CalcShininessByOtIdAndPersonality
pop {r3-r5, pc}
.balign 4
- thumb_func_start FUN_02068AAC
-FUN_02068AAC: ; 0x02068AAC
+ thumb_func_start CalcShininessByOtIdAndPersonality
+CalcShininessByOtIdAndPersonality: ; 0x02068AAC
ldr r3, _02068AD4 ; =0xFFFF0000
lsl r2, r1, #0x10
and r1, r3
@@ -4582,8 +4583,8 @@ _02068ACE:
.balign 4
_02068AD4: .word 0xFFFF0000
- thumb_func_start FUN_02068AD8
-FUN_02068AD8: ; 0x02068AD8
+ thumb_func_start GenerateShinyPersonality
+GenerateShinyPersonality: ; 0x02068AD8
push {r3-r7, lr}
add r7, r0, #0x0
ldr r0, _02068B64 ; =0xFFFF0000
@@ -4678,7 +4679,7 @@ FUN_02068B70: ; 0x02068B70
bl GetBoxMonGenderEncrypted
str r0, [sp, #0x14]
add r0, r5, #0x0
- bl FUN_02068A88
+ bl BoxMonIsShiny
mov r1, #0x0
add r7, r0, #0x0
add r0, r5, #0x0
@@ -4692,7 +4693,7 @@ FUN_02068B70: ; 0x02068B70
mov r1, #0x5
mov r2, #0x0
bl GetBoxMonDataEncrypted
- ldr r1, _02068BFC ; =0x000001EA
+ ldr r1, _02068BFC ; =SPECIES_MANAPHY
cmp r0, r1
bne _02068BC6
mov r0, #0x1
@@ -4723,7 +4724,7 @@ _02068BD8:
pop {r4-r7, pc}
nop
_02068BF8: .word SPECIES_EGG
-_02068BFC: .word 0x000001EA
+_02068BFC: .word SPECIES_MANAPHY
thumb_func_start FUN_02068C00
FUN_02068C00: ; 0x02068C00
@@ -4738,30 +4739,30 @@ FUN_02068C00: ; 0x02068C00
strh r1, [r4, #0x6]
strb r1, [r4, #0x8]
str r1, [r4, #0xc]
- ldr r1, _02068E0C ; =0x000001A5
+ ldr r1, _02068E0C ; =SPECIES_CHERRIM
cmp r0, r1
bgt _02068C68
bge _02068D1E
add r6, r1, #0x0
- sub r6, #0x46
+ sub r6, #SPECIES_CHERRIM-SPECIES_CASTFORM
cmp r0, r6
bgt _02068C36
- sub r1, #0x46
+ sub r1, #SPECIES_CHERRIM-SPECIES_CASTFORM
cmp r0, r1
blt _02068C2E
b _02068D58
_02068C2E:
- cmp r0, #0xc9
+ cmp r0, #SPECIES_UNOWN
bne _02068C34
b _02068D90
_02068C34:
b _02068DD4
_02068C36:
add r6, r1, #0x0
- sub r6, #0x23
+ sub r6, #SPECIES_CHERRIM-SPECIES_DEOXYS
cmp r0, r6
bgt _02068C48
- sub r1, #0x23
+ sub r1, #SPECIES_CHERRIM-SPECIES_DEOXYS
cmp r0, r1
bne _02068C46
b _02068D76
@@ -4769,56 +4770,56 @@ _02068C46:
b _02068DD4
_02068C48:
add r6, r1, #0x0
- sub r6, #0x8
+ sub r6, #SPECIES_CHERRIM-SPECIES_WORMADAM
cmp r0, r6
bgt _02068C66
add r6, r1, #0x0
- sub r6, #0x9
+ sub r6, #SPECIES_CHERRIM-SPECIES_BURMY
cmp r0, r6
blt _02068C66
add r6, r1, #0x0
- sub r6, #0x9
+ sub r6, #SPECIES_CHERRIM-SPECIES_BURMY
cmp r0, r6
beq _02068CAA
- sub r1, #0x8
+ sub r1, #SPECIES_CHERRIM-SPECIES_WORMADAM
cmp r0, r1
beq _02068CC8
_02068C66:
b _02068DD4
_02068C68:
add r6, r1, #0x0
- add r6, #0x48
+ add r6, #SPECIES_ARCEUS-SPECIES_CHERRIM
cmp r0, r6
bgt _02068C8E
add r6, r1, #0x0
- add r6, #0x48
+ add r6, #SPECIES_ARCEUS-SPECIES_CHERRIM
cmp r0, r6
bge _02068D3A
- add r6, r1, #0x2
+ add r6, r1, #SPECIES_GASTRODON-SPECIES_CHERRIM
cmp r0, r6
bgt _02068C8C
- add r6, r1, #0x1
+ add r6, r1, #SPECIES_SHELLOS-SPECIES_CHERRIM
cmp r0, r6
blt _02068C8C
beq _02068CE6
- add r1, r1, #0x2
+ add r1, r1, #SPECIES_GASTRODON-SPECIES_CHERRIM
cmp r0, r1
beq _02068D02
_02068C8C:
b _02068DD4
_02068C8E:
add r6, r1, #0x0
- add r6, #0x49
+ add r6, #SPECIES_EGG-SPECIES_CHERRIM
cmp r0, r6
bgt _02068CA0
- add r1, #0x49
+ add r1, #SPECIES_EGG-SPECIES_CHERRIM
cmp r0, r1
bne _02068C9E
b _02068DAC
_02068C9E:
b _02068DD4
_02068CA0:
- add r1, #0x4a
+ add r1, #SPECIES_MANAPHY_EGG-SPECIES_CHERRIM
cmp r0, r1
bne _02068CA8
b _02068DC4
@@ -5012,7 +5013,7 @@ _02068DE2:
strh r2, [r4, #0x2]
add r1, r3, r1
strh r1, [r4, #0x4]
- ldr r1, _02068E10 ; =0x00000147
+ ldr r1, _02068E10 ; =SPECIES_SPINDA
cmp r0, r1
bne _02068E06
cmp r5, #0x2
@@ -5026,8 +5027,8 @@ _02068E06:
pop {r4-r7}
bx lr
nop
-_02068E0C: .word 0x000001A5
-_02068E10: .word 0x00000147
+_02068E0C: .word SPECIES_CHERRIM
+_02068E10: .word SPECIES_SPINDA
thumb_func_start FUN_02068E14
FUN_02068E14: ; 0x02068E14
@@ -5062,7 +5063,7 @@ FUN_02068E1C: ; 0x02068E1C
mov r1, #0x5
mov r2, #0x0
bl GetBoxMonDataEncrypted
- ldr r1, _02068E84 ; =0x000001EA
+ ldr r1, _02068E84 ; =SPECIES_MANAPHY
cmp r0, r1
bne _02068E5E
mov r3, #0x1
@@ -5092,7 +5093,7 @@ _02068E84: .word 0x000001EA
thumb_func_start FUN_02068E88
FUN_02068E88: ; 0x02068E88
push {r3-r5, lr}
- ldr r4, _02068FDC ; =0x000001A5
+ ldr r4, _02068FDC ; =SPECIES_CHERRIM
cmp r0, r4
bgt _02068ED6
bge _02068F54
@@ -5290,7 +5291,7 @@ _02068FCA:
ldrb r0, [r0, #0x0]
pop {r3-r5, pc}
nop
-_02068FDC: .word 0x000001A5
+_02068FDC: .word SPECIES_CHERRIM
thumb_func_start FUN_02068FE0
FUN_02068FE0: ; 0x02068FE0
@@ -6710,7 +6711,7 @@ _02069A8E:
add r2, sp, #0x0
bl SetMonDataEncrypted
mov r0, #0x0
- bl FUN_020256BC
+ bl CreateNewSealsObject
add r5, r0, #0x0
add r0, r4, #0x0
mov r1, #0xa9
diff --git a/arm9/asm/scrcmd_12.s b/arm9/asm/scrcmd_12.s
index 43e29bb0..37665648 100644
--- a/arm9/asm/scrcmd_12.s
+++ b/arm9/asm/scrcmd_12.s
@@ -371,7 +371,7 @@ FUN_02042F6C: ; 0x02042F6C
cmp r0, #0x1
bne _02042FE6
add r0, r6, #0x0
- bl FUN_02068AAC
+ bl CalcShininessByOtIdAndPersonality
cmp r0, #0x0
beq _02042FE8
_02042FD0:
@@ -380,7 +380,7 @@ _02042FD0:
add r1, r0, #0x0
add r0, r6, #0x0
str r1, [sp, #0x34]
- bl FUN_02068AAC
+ bl CalcShininessByOtIdAndPersonality
cmp r0, #0x0
bne _02042FD0
b _02042FE8
diff --git a/arm9/asm/unk_02025658.s b/arm9/asm/unk_02025658.s
index f5837edd..a0a09b95 100644
--- a/arm9/asm/unk_02025658.s
+++ b/arm9/asm/unk_02025658.s
@@ -6,8 +6,8 @@
.text
- thumb_func_start FUN_02025658
-FUN_02025658: ; 0x02025658
+ thumb_func_start InitSealsObject
+InitSealsObject: ; 0x02025658
push {r3-r5, lr}
add r4, r0, #0x0
mov r0, #0x0
@@ -61,19 +61,19 @@ _020256B6:
bx lr
.balign 4
- thumb_func_start FUN_020256BC
-FUN_020256BC: ; 0x020256BC
+ thumb_func_start CreateNewSealsObject
+CreateNewSealsObject: ; 0x020256BC
push {r4, lr}
mov r1, #0x38
bl AllocFromHeapAtEnd
add r4, r0, #0x0
- bl FUN_02025658
+ bl InitSealsObject
add r0, r4, #0x0
pop {r4, pc}
.balign 4
- thumb_func_start FUN_020256D0
-FUN_020256D0: ; 0x020256D0
+ thumb_func_start CopySealsObject
+CopySealsObject: ; 0x020256D0
ldr r3, _020256D8 ; =MI_CpuCopy8
mov r2, #0x38
bx r3
@@ -88,7 +88,7 @@ FUN_020256DC: ; 0x020256DC
add r5, r0, #0x0
add r6, r1, #0x0
add r4, r2, #0x0
- bl FUN_02025658
+ bl InitSealsObject
add r0, r7, #0x0
strb r6, [r5, #0x7]
bl FUN_0206BB1C
@@ -299,7 +299,7 @@ FUN_0202584C: ; 0x0202584C
mov r4, #0x0
_02025852:
add r0, r5, #0x0
- bl FUN_02025658
+ bl InitSealsObject
add r4, r4, #0x1
add r5, #0x38
cmp r4, #0x14
@@ -326,7 +326,7 @@ FUN_02025878: ; 0x02025878
bl FUN_02025940
cmp r0, #0x0
beq _02025886
- bl FUN_02025658
+ bl InitSealsObject
_02025886:
pop {r3, pc}
@@ -338,7 +338,7 @@ FUN_02025888: ; 0x02025888
add r1, r0, #0x0
beq _0202589A
add r0, r4, #0x0
- bl FUN_020256D0
+ bl CopySealsObject
_0202589A:
pop {r4, pc}
@@ -362,13 +362,13 @@ FUN_020258B0: ; 0x020258B0
bl FUN_02025940
add r4, r0, #0x0
add r0, r5, #0x0
- bl FUN_020256BC
+ bl CreateNewSealsObject
add r5, r0, #0x0
cmp r4, #0x0
beq _020258CE
add r0, r4, #0x0
add r1, r5, #0x0
- bl FUN_020256D0
+ bl CopySealsObject
_020258CE:
add r0, r5, #0x0
pop {r3-r5, pc}
@@ -382,11 +382,11 @@ FUN_020258D4: ; 0x020258D4
cmp r0, #0x0
bne _020258E8
add r0, r4, #0x0
- bl FUN_02025658
+ bl InitSealsObject
pop {r4, pc}
_020258E8:
add r1, r4, #0x0
- bl FUN_020256D0
+ bl CopySealsObject
pop {r4, pc}
thumb_func_start FUN_020258F0
diff --git a/arm9/asm/unk_020476CC.s b/arm9/asm/unk_020476CC.s
index 8944e0b3..dce3e575 100644
--- a/arm9/asm/unk_020476CC.s
+++ b/arm9/asm/unk_020476CC.s
@@ -677,7 +677,7 @@ _02047C40:
mov r2, #0x0
bl GetMonDataEncrypted
add r1, r7, #0x0
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
str r0, [sp, #0x18]
add r0, r5, #0x0
mov r1, #0x8
diff --git a/arm9/asm/unk_020653EC.s b/arm9/asm/unk_020653EC.s
index 2aea9e30..cc2e0ae8 100644
--- a/arm9/asm/unk_020653EC.s
+++ b/arm9/asm/unk_020653EC.s
@@ -1617,7 +1617,7 @@ FUN_02066070: ; 0x02066070
lsl r1, r1, #0x4
str r0, [r6, r1]
add r0, r5, #0x0
- bl FUN_020256BC
+ bl CreateNewSealsObject
add r7, r0, #0x0
add r0, r6, #0x0
str r0, [sp, #0x10]
diff --git a/arm9/asm/unk_0206C700.s b/arm9/asm/unk_0206C700.s
index 9265cbd9..561ba6c3 100644
--- a/arm9/asm/unk_0206C700.s
+++ b/arm9/asm/unk_0206C700.s
@@ -2169,7 +2169,7 @@ _0206D8EA:
add r2, sp, #0x0
bl SetMonDataEncrypted
ldr r0, [r4, #0x5c]
- bl FUN_020256BC
+ bl CreateNewSealsObject
add r6, r0, #0x0
add r0, r5, #0x0
mov r1, #0xa9
diff --git a/arm9/asm/unk_02079C70.s b/arm9/asm/unk_02079C70.s
index 11d65c38..241778d5 100644
--- a/arm9/asm/unk_02079C70.s
+++ b/arm9/asm/unk_02079C70.s
@@ -2013,7 +2013,7 @@ _0207AC1E:
ldrh r0, [r5, #0xc]
lsl r1, r1, #0x19
lsr r1, r1, #0x19
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
str r0, [r5, #0x1c]
ldrb r0, [r5, #0x12]
lsl r0, r0, #0x19
@@ -2025,7 +2025,7 @@ _0207AC1E:
_0207ACAA:
ldrh r0, [r5, #0xc]
add r1, r1, #0x1
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
_0207ACB2:
str r0, [r5, #0x20]
add r0, r6, #0x0
@@ -2243,7 +2243,7 @@ _0207AE7C:
str r0, [r5, #0x50]
_0207AE84:
add r0, r6, #0x0
- bl FUN_02068A80
+ bl MonIsShiny
cmp r0, #0x1
ldr r1, [r5, #0x50]
bne _0207AE98
diff --git a/arm9/asm/unk_020828BC.s b/arm9/asm/unk_020828BC.s
index fb6f03c8..d3c740aa 100644
--- a/arm9/asm/unk_020828BC.s
+++ b/arm9/asm/unk_020828BC.s
@@ -765,7 +765,7 @@ FUN_02082D60: ; 0x02082D60
lsl r1, r1, #0x18
lsr r1, r1, #0x18
mov r2, #0x0
- bl FUN_02066E74
+ bl AdjustPersonalityToForceGenderAndNature
mov r1, #0x1
str r1, [sp, #0x0]
str r0, [sp, #0x4]
diff --git a/arm9/asm/unk_020854E0.s b/arm9/asm/unk_020854E0.s
index 0921775e..8cee9952 100644
--- a/arm9/asm/unk_020854E0.s
+++ b/arm9/asm/unk_020854E0.s
@@ -46,9 +46,9 @@ FUN_020854E0: ; 0x020854E0
strh r0, [r4, #0xc]
ldr r0, [sp, #0x20]
str r5, [r4, #0x10]
- bl FUN_020256BC
+ bl CreateNewSealsObject
str r0, [r4, #0x14]
- bl FUN_02025658
+ bl InitSealsObject
ldr r0, [r4, #0x14]
mov r1, #0xff
add r2, r6, #0x0
@@ -106,7 +106,7 @@ FUN_02085578: ; 0x02085578
strh r0, [r4, #0x0]
str r5, [r4, #0x10]
add r0, r7, #0x0
- bl FUN_020256BC
+ bl CreateNewSealsObject
str r0, [r4, #0x14]
ldr r2, [r4, #0x14]
add r0, r6, #0x0
@@ -133,7 +133,7 @@ FUN_020855B0: ; 0x020855B0
strh r0, [r4, #0x0]
add r0, r7, #0x0
str r5, [r4, #0x10]
- bl FUN_020256BC
+ bl CreateNewSealsObject
add r1, r6, #0x0
str r0, [r4, #0x14]
bl FUN_020257D0
@@ -213,7 +213,7 @@ FUN_02085644: ; 0x02085644
cmp r6, r0
beq _0208569E
add r0, r4, #0x0
- bl FUN_020256BC
+ bl CreateNewSealsObject
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0xa9
@@ -225,7 +225,7 @@ FUN_02085644: ; 0x02085644
add r3, r4, #0x0
bl FUN_02025888
add r0, r4, #0x0
- bl FUN_02025658
+ bl InitSealsObject
add r0, r5, #0x0
mov r1, #0xa9
add r2, r4, #0x0
diff --git a/arm9/global.inc b/arm9/global.inc
index db7e72c3..ce1debbd 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -1629,10 +1629,10 @@
.extern FUN_020254F8
.extern FUN_02025520
.extern FUN_02025614
-.extern FUN_02025658
+.extern InitSealsObject
.extern FUN_020256AC
-.extern FUN_020256BC
-.extern FUN_020256D0
+.extern CreateNewSealsObject
+.extern CopySealsObject
.extern FUN_020256DC
.extern FUN_020257C0
.extern FUN_020257C4
@@ -4715,8 +4715,8 @@
.extern CreateMon
.extern CreateMonWithNature
.extern CreateMonWithNatureGenderLetter
-.extern FUN_02066E74
-.extern FUN_02066EA4
+.extern AdjustPersonalityToForceGenderAndNature
+.extern CreateMonWithFixedIVs
.extern UpdateMonLevelAndRecalcStats
.extern CalcMonStatsMaybeEncrypted
.extern GetMonDataEncrypted
@@ -4729,10 +4729,10 @@
.extern FreeMonPersonal
.extern GetMonBaseStat_HandleFormeConversion
.extern GetMonBaseStat
-.extern FUN_02068698
+.extern GetPercentProgressTowardsNextLevel
.extern CalcMonExpToNextLevelEncrypted
-.extern FUN_02068734
-.extern GetMonExpByLevel
+.extern GetMonBaseExperienceAtCurrentLevel
+.extern GetMonExpBySpeciesAndLevel
.extern CalcMonLevelEncrypted
.extern CalcBoxMonLevelEncrypted
.extern CalcLevelBySpeciesAndExp
@@ -4745,9 +4745,9 @@
.extern GetBoxMonGenderEncrypted
.extern GetGenderBySpeciesAndPersonality
.extern GetGenderBySpeciesAndPersonality_PreloadedPersonal
-.extern FUN_02068A80
-.extern FUN_02068AAC
-.extern FUN_02068AD8
+.extern MonIsShiny
+.extern CalcShininessByOtIdAndPersonality
+.extern GenerateShinyPersonality
.extern FUN_02068B68
.extern FUN_02068B70
.extern FUN_02068C00
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s
index 72d4bbbd..f351ccb6 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -44526,7 +44526,7 @@ MOD05_021ED00C: ; 0x021ED00C
beq _021ED05E
add r0, r6, #0
add r1, r4, #0
- bl FUN_02068AAC
+ bl CalcShininessByOtIdAndPersonality
cmp r0, #0
bne _021ED05E
mov r5, #0
@@ -44536,7 +44536,7 @@ _021ED044:
add r4, r0, #0
add r0, r6, #0
add r1, r4, #0
- bl FUN_02068AAC
+ bl CalcShininessByOtIdAndPersonality
cmp r0, #0
bne _021ED05E
add r5, r5, #1
@@ -45429,7 +45429,7 @@ _021ED6B4:
bne _021ED788
ldr r0, [sp, #0x2c]
add r1, r7, #0
- bl FUN_02068AAC
+ bl CalcShininessByOtIdAndPersonality
cmp r0, #0
beq _021ED788
_021ED774:
@@ -45438,7 +45438,7 @@ _021ED774:
add r7, r0, #0
ldr r0, [sp, #0x2c]
add r1, r7, #0
- bl FUN_02068AAC
+ bl CalcShininessByOtIdAndPersonality
cmp r0, #0
bne _021ED774
_021ED788:
diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s
index 2f478ef3..bb887c23 100644
--- a/arm9/modules/06/asm/module_06.s
+++ b/arm9/modules/06/asm/module_06.s
@@ -6612,7 +6612,7 @@ _0223C8D2:
mov r7, #1
_0223C8E0:
add r0, r5, #0
- bl FUN_02068AD8
+ bl GenerateShinyPersonality
add r4, r0, #0
cmp r7, #0
beq _0223C92E
@@ -6632,7 +6632,7 @@ _0223C904:
cmp r7, r0
bne _0223C92E
add r0, r5, #0
- bl FUN_02068AD8
+ bl GenerateShinyPersonality
add r4, r0, #0
b _0223C8EC
_0223C914:
@@ -6644,7 +6644,7 @@ _0223C914:
cmp r0, r1
beq _0223C92E
add r0, r5, #0
- bl FUN_02068AD8
+ bl GenerateShinyPersonality
add r4, r0, #0
b _0223C8EC
_0223C92E:
@@ -7622,7 +7622,7 @@ MOD06_0223D044: ; 0x0223D044
add r0, r4, #0
lsr r1, r1, #0x10
add r2, r7, #0
- bl FUN_02066EA4
+ bl CreateMonWithFixedIVs
add r0, r4, #0
mov r1, #7
add r2, sp, #0x30
@@ -21909,7 +21909,7 @@ MOD06_02244388: ; 0x02244388
lsr r1, r1, #0x15
mov r2, #0x32
and r3, r4
- bl FUN_02066EA4
+ bl CreateMonWithFixedIVs
ldrh r0, [r6]
add r2, sp, #8
add r2, #1
@@ -22165,7 +22165,7 @@ _022445A6:
mov r2, #0
bl GetMonDataEncrypted
mov r1, #0x32
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
str r0, [sp, #8]
add r0, r4, #0
mov r1, #8
@@ -22587,7 +22587,7 @@ _022448EC:
beq _0224491A
ldr r0, [sp]
add r1, r7, #0
- bl FUN_02068AAC
+ bl CalcShininessByOtIdAndPersonality
cmp r0, #1
beq _022448EC
_0224491A:
@@ -31215,7 +31215,7 @@ MOD06_022489D4: ; 0x022489D4
add r0, r5, #0
bl UpdateMonLevelAndRecalcStats
add r0, r5, #0
- bl FUN_02068A80
+ bl MonIsShiny
cmp r0, #0
beq _02248B08
bl ErrorHandling
diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s
index 9ac54172..69df6bf9 100644
--- a/arm9/modules/09/asm/module_09.s
+++ b/arm9/modules/09/asm/module_09.s
@@ -2588,7 +2588,7 @@ _022132C2:
ldrh r0, [r4, #8]
lsl r1, r1, #0x19
lsr r1, r1, #0x19
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
str r0, [r4, #0x24]
ldrb r0, [r6, r5]
lsl r0, r0, #0x19
@@ -2604,7 +2604,7 @@ _0221335A:
add r1, r1, #1
add r4, r0, r5
ldrh r0, [r4, #8]
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
_02213366:
str r0, [r4, #0x28]
ldr r0, [r4, #4]
diff --git a/arm9/modules/11/asm/module_11.s b/arm9/modules/11/asm/module_11.s
index dd2316a4..dba629d4 100644
--- a/arm9/modules/11/asm/module_11.s
+++ b/arm9/modules/11/asm/module_11.s
@@ -26891,7 +26891,7 @@ _0223A9D6:
bl GetMonDataEncrypted
str r0, [sp, #0x48]
add r0, r6, #0
- bl FUN_02068734
+ bl GetMonBaseExperienceAtCurrentLevel
ldr r1, [sp, #0x48]
sub r0, r1, r0
str r0, [r4, #0x3c]
@@ -43626,7 +43626,7 @@ _02242D2E:
ldr r0, _02242FA8 ; =0x00002D66
add r6, r7, r0
add r0, r4, #0
- bl FUN_02068A80
+ bl MonIsShiny
ldrb r1, [r6, r5]
mov r2, #0x20
lsl r0, r0, #0x1f
@@ -81124,7 +81124,7 @@ _022550D0:
_022550EA:
ldr r0, [sp, #0x10]
ldr r1, [sp, #0xc]
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
mov r1, #0xc0
mul r1, r4
add r2, r5, r1
@@ -81135,11 +81135,11 @@ _022550EA:
str r0, [sp, #0x1c]
ldr r0, [sp, #0x10]
add r1, r1, #1
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
add r5, r0, #0
ldr r0, [sp, #0x10]
ldr r1, [sp, #0xc]
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
sub r0, r5, r0
str r0, [sp, #0x20]
ldrh r1, [r7, r6]
@@ -81323,7 +81323,7 @@ _02255284:
b _02255294
_0225528E:
add r0, r4, #0
- bl FUN_02068698
+ bl GetPercentProgressTowardsNextLevel
_02255294:
strb r0, [r5, #2]
add r5, r5, #1
@@ -82432,7 +82432,7 @@ _02255B04:
_02255B12:
add r0, r7, #0
add r1, r6, #0
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
ldr r1, _02255B64 ; =0x00002DA4
add r2, r5, r4
ldr r1, [r2, r1]
@@ -82440,11 +82440,11 @@ _02255B12:
str r0, [sp, #0x18]
add r0, r7, #0
add r1, r6, #1
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
add r4, r0, #0
add r0, r7, #0
add r1, r6, #0
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
sub r0, r4, r0
str r0, [sp, #0x1c]
mov r0, #0x14
@@ -82494,7 +82494,7 @@ MOD11_02255B68: ; 0x02255B68
add r1, r6, #0
str r0, [sp, #0x10]
add r0, r7, #0
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
mov r1, #0xc0
mul r1, r4
add r2, r5, r1
@@ -82504,11 +82504,11 @@ MOD11_02255B68: ; 0x02255B68
str r0, [sp, #0x14]
add r0, r7, #0
add r1, r6, #1
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
add r5, r0, #0
add r0, r7, #0
add r1, r6, #0
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
sub r0, r5, r0
str r0, [sp, #0x18]
mov r0, #0x10
@@ -83183,7 +83183,7 @@ _022560BA:
_022560D4:
ldr r0, [sp, #0xc]
ldr r1, [sp, #8]
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
mov r1, #0xc0
mul r1, r4
add r2, r5, r1
@@ -83194,11 +83194,11 @@ _022560D4:
str r0, [sp, #0x18]
ldr r0, [sp, #0xc]
add r1, r1, #1
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
add r5, r0, #0
ldr r0, [sp, #0xc]
ldr r1, [sp, #8]
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
sub r0, r5, r0
str r0, [sp, #0x1c]
ldrh r1, [r7, r6]
diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s
index acf2d363..68dae7ae 100644
--- a/arm9/modules/12/asm/module_12.s
+++ b/arm9/modules/12/asm/module_12.s
@@ -18454,7 +18454,7 @@ _02236736:
ldrb r0, [r4, #0xd]
lsl r0, r0, #2
ldr r0, [r1, r0]
- bl FUN_02068A80
+ bl MonIsShiny
str r0, [sp, #0x20]
ldr r0, [r4]
mov r2, #0
@@ -18492,7 +18492,7 @@ _02236736:
ldr r0, [r4]
ldr r0, [r0, #0xc]
ldr r0, [r0, r5]
- bl FUN_02068A80
+ bl MonIsShiny
str r0, [sp, #0x10]
ldr r0, [r4]
mov r1, #0x70
diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s
index 0ce9b5c7..e1d37212 100644
--- a/arm9/modules/83/asm/module_83.s
+++ b/arm9/modules/83/asm/module_83.s
@@ -23888,7 +23888,7 @@ MOD83_02238F94: ; 0x02238F94
bl GetMonGenderEncrypted
str r0, [sp, #0x24]
ldr r0, [sp, #0x20]
- bl FUN_02068A80
+ bl MonIsShiny
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
diff --git a/include/pokemon.h b/include/pokemon.h
index 68cc0d59..71c1fb67 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -99,7 +99,7 @@
#define MON_DATA_SPEED 166
#define MON_DATA_SPATK 167
#define MON_DATA_SPDEF 168
-#define MON_DATA_SEAL_TYPES_MAYBE 169
+#define MON_DATA_SEAL_STRUCT 169
#define MON_DATA_SEAL_COORDS 170
#define MON_DATA_SPECIES_EXISTS 171
#define MON_DATA_SANITY_CHECK_172 172
@@ -381,9 +381,28 @@ struct Pokemon {
int GetMonBaseStat_HandleFormeConversion(int species, int form, int stat_id);
int GetMonBaseStat(int species, int stat_id);
-int GetMonExpByLevel(int species, int level);
+int GetMonExpBySpeciesAndLevel(int species, int level);
void LoadGrowthTable(int species, int * table);
int GetExpByGrowthRateAndLevel(int rate, int level);
int CalcLevelBySpeciesAndExp(int species, int experience);
+void CreateMon(struct Pokemon * pokemon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId, ...);
+void CreateBoxMon(struct BoxPokemon * boxPokemon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId, ...);
+void CreateMonWithNatureGenderLetter(struct Pokemon * pokemon, u16 species, u8 level, u8 nature, u8 gender, u8 letter);
+
+#ifndef IN_POKEMON_C
+u32 GetMonData();
+u32 GetMonDataEncrypted();
+u32 GetBoxMonData();
+u32 GetBoxMonDataEncrypted();
+#else
+u32 GetMonData(struct Pokemon * pokemon, u32 attr, void * ptr);
+u32 GetMonDataEncrypted(struct Pokemon * pokemon, u32 attr, void * ptr);
+u32 GetBoxMonData(struct BoxPokemon * pokemon, u32 attr, void * ptr);
+u32 GetBoxMonDataEncrypted(struct BoxPokemon * pokemon, u32 attr, void * ptr);
+#endif
+void SetMonData(struct Pokemon * pokemon, u32 attr, void * ptr);
+void SetBoxMonData(struct BoxPokemon * pokemon, u32 attr, void * ptr);
+void AddMonData(struct Pokemon * pokemon, u32 attr, u32 amount);
+void AddBoxMonData(struct Pokemon * pokemon, u32 attr, u32 amount);
#endif //POKEDIAMOND_POKEMON_H