diff options
-rw-r--r-- | arm9/asm/pokemon.s | 133 | ||||
-rw-r--r-- | arm9/asm/scrcmd_12.s | 4 | ||||
-rw-r--r-- | arm9/asm/unk_02025658.s | 30 | ||||
-rw-r--r-- | arm9/asm/unk_020476CC.s | 2 | ||||
-rw-r--r-- | arm9/asm/unk_020653EC.s | 2 | ||||
-rw-r--r-- | arm9/asm/unk_0206C700.s | 2 | ||||
-rw-r--r-- | arm9/asm/unk_02079C70.s | 6 | ||||
-rw-r--r-- | arm9/asm/unk_020828BC.s | 2 | ||||
-rw-r--r-- | arm9/asm/unk_020854E0.s | 12 | ||||
-rw-r--r-- | arm9/global.inc | 22 | ||||
-rw-r--r-- | arm9/modules/05/asm/module_05.s | 8 | ||||
-rw-r--r-- | arm9/modules/06/asm/module_06.s | 16 | ||||
-rw-r--r-- | arm9/modules/09/asm/module_09.s | 4 | ||||
-rw-r--r-- | arm9/modules/11/asm/module_11.s | 30 | ||||
-rw-r--r-- | arm9/modules/12/asm/module_12.s | 4 | ||||
-rw-r--r-- | arm9/modules/83/asm/module_83.s | 2 | ||||
-rw-r--r-- | include/pokemon.h | 23 |
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 |