diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-06-13 15:07:54 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-06-13 15:07:54 -0400 |
commit | 01eea396ed25500e15752d7edfe76cb1031bee60 (patch) | |
tree | 88b79f0a606b63454db977f006ecaff0d734f2a8 | |
parent | 321da97e6fdd66192484ca9aa60581b69fb3e7a4 (diff) |
through CalcShininessByOtIdAndPersonality
-rw-r--r-- | arm9/asm/pokemon_s.s | 271 | ||||
-rw-r--r-- | arm9/asm/scrcmd_12.s | 2 | ||||
-rw-r--r-- | arm9/asm/unk_02023C40.s | 4 | ||||
-rw-r--r-- | arm9/asm/unk_0204A01C.s | 2 | ||||
-rw-r--r-- | arm9/asm/unk_0206F3FC.s | 2 | ||||
-rw-r--r-- | arm9/asm/unk_0207550C.s | 2 | ||||
-rw-r--r-- | arm9/asm/unk_02079C70.s | 2 | ||||
-rw-r--r-- | arm9/asm/unk_02080C38.s | 2 | ||||
-rw-r--r-- | arm9/global.inc | 6 | ||||
-rw-r--r-- | arm9/modules/05/asm/module_05.s | 8 | ||||
-rw-r--r-- | arm9/modules/07/asm/module_07.s | 2 | ||||
-rw-r--r-- | arm9/modules/09/asm/module_09.s | 2 | ||||
-rw-r--r-- | arm9/modules/11/asm/module_11.s | 14 | ||||
-rw-r--r-- | arm9/modules/35/asm/module_35.s | 2 | ||||
-rw-r--r-- | arm9/modules/65/asm/module_65.s | 2 | ||||
-rw-r--r-- | arm9/modules/69/asm/module_69.s | 2 | ||||
-rw-r--r-- | arm9/modules/71/asm/module_71.s | 2 | ||||
-rw-r--r-- | arm9/modules/80/asm/module_80.s | 2 | ||||
-rw-r--r-- | arm9/modules/83/asm/module_83.s | 4 | ||||
-rw-r--r-- | arm9/src/pokemon.c | 105 | ||||
-rw-r--r-- | include/constants/items.h | 448 | ||||
-rw-r--r-- | include/pokemon.h | 2 |
22 files changed, 585 insertions, 303 deletions
diff --git a/arm9/asm/pokemon_s.s b/arm9/asm/pokemon_s.s index a2fb59bb..82548f30 100644 --- a/arm9/asm/pokemon_s.s +++ b/arm9/asm/pokemon_s.s @@ -21,272 +21,7 @@ __local_str_poketool_personal_pms_narc: ; 0x02105FC8 .extern LoadGrowthTable .extern GetExpByGrowthRateAndLevel - thumb_func_start MonApplyFriendshipModEncrypted -MonApplyFriendshipModEncrypted: ; 0x020688E8 - push {r3-r7, lr} - sub sp, #0x8 - add r6, r1, #0x0 - add r5, r0, #0x0 - str r2, [sp, #0x0] - cmp r6, #0x5 - bne _02068900 - bl rand_LC - mov r1, #0x1 - tst r0, r1 - bne _020689D4 -_02068900: - add r0, r5, #0x0 - mov r1, #0xad - mov r2, #0x0 - bl GetMonData - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - beq _020689D4 - ldr r0, _020689D8 ; =SPECIES_EGG - cmp r1, r0 - beq _020689D4 - add r0, r5, #0x0 - mov r1, #0x6 - mov r2, #0x0 - bl GetMonData - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r1, #0x1 - mov r2, #0x0 - bl FUN_0206E7B8 - lsl r0, r0, #0x18 - mov r4, #0x0 - lsr r7, r0, #0x18 - add r0, r5, #0x0 - mov r1, #0x9 - add r2, r4, #0x0 - bl GetMonData - add r1, sp, #0x4 - strh r0, [r1, #0x0] - add r0, r4, #0x0 - ldrsh r1, [r1, r0] - cmp r1, #0x64 - blt _0206894E - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 -_0206894E: - cmp r1, #0xc8 - blt _02068958 - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 -_02068958: - lsl r0, r6, #0x1 - add r1, r6, r0 - ldr r0, _020689DC ; =sFriendshipModTable - add r0, r0, r1 - ldrsb r4, [r4, r0] - cmp r4, #0x0 - ble _0206897A - add r0, r5, #0x0 - mov r1, #0x9a - mov r2, #0x0 - bl GetMonData - cmp r0, #0xb - bne _0206897A - add r0, r4, #0x1 - lsl r0, r0, #0x18 - asr r4, r0, #0x18 -_0206897A: - cmp r4, #0x0 - ble _02068994 - add r0, r5, #0x0 - mov r1, #0x97 - mov r2, #0x0 - bl GetMonData - ldr r1, [sp, #0x0] - cmp r1, r0 - bne _02068994 - add r0, r4, #0x1 - lsl r0, r0, #0x18 - asr r4, r0, #0x18 -_02068994: - cmp r4, #0x0 - ble _020689AA - cmp r7, #0x34 - bne _020689AA - mov r0, #0x96 - mul r0, r4 - mov r1, #0x64 - bl _s32_div_f - lsl r0, r0, #0x18 - asr r4, r0, #0x18 -_020689AA: - add r0, sp, #0x4 - mov r1, #0x0 - ldrsh r2, [r0, r1] - add r2, r2, r4 - strh r2, [r0, #0x0] - ldrsh r2, [r0, r1] - cmp r2, #0x0 - bge _020689BC - strh r1, [r0, #0x0] -_020689BC: - add r1, sp, #0x4 - mov r0, #0x0 - ldrsh r0, [r1, r0] - cmp r0, #0xff - ble _020689CA - mov r0, #0xff - strh r0, [r1, #0x0] -_020689CA: - add r0, r5, #0x0 - mov r1, #0x9 - add r2, sp, #0x4 - bl SetMonData -_020689D4: - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_020689D8: .word SPECIES_EGG -_020689DC: .word sFriendshipModTable - - thumb_func_start GetMonGenderEncrypted -GetMonGenderEncrypted: ; 0x020689E0 - ldr r3, _020689E4 ; =GetBoxMonGenderEncrypted - bx r3 - .balign 4 -_020689E4: .word GetBoxMonGenderEncrypted - - thumb_func_start GetBoxMonGenderEncrypted -GetBoxMonGenderEncrypted: ; 0x020689E8 - push {r3-r7, lr} - add r5, r0, #0x0 - bl AcquireBoxMonLock - add r6, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x5 - mov r2, #0x0 - bl GetBoxMonData - lsl r0, r0, #0x10 - mov r1, #0x0 - lsr r4, r0, #0x10 - add r0, r5, #0x0 - add r2, r1, #0x0 - bl GetBoxMonData - add r7, r0, #0x0 - add r0, r5, #0x0 - add r1, r6, #0x0 - bl ReleaseBoxMonLock - add r0, r4, #0x0 - add r1, r7, #0x0 - bl GetGenderBySpeciesAndPersonality - pop {r3-r7, pc} - .balign 4 - - thumb_func_start GetGenderBySpeciesAndPersonality -GetGenderBySpeciesAndPersonality: ; 0x02068A20 - push {r4-r6, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - mov r1, #0x0 - bl AllocAndLoadMonPersonal - add r6, r0, #0x0 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl GetGenderBySpeciesAndPersonality_PreloadedPersonal - add r4, r0, #0x0 - add r0, r6, #0x0 - bl FreeMonPersonal - add r0, r4, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start GetGenderBySpeciesAndPersonality_PreloadedPersonal -GetGenderBySpeciesAndPersonality_PreloadedPersonal: ; 0x02068A44 - push {r4, lr} - mov r1, #0x12 - add r4, r2, #0x0 - bl GetPersonalAttr - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - beq _02068A5E - cmp r1, #0xfe - beq _02068A62 - cmp r1, #0xff - beq _02068A66 - b _02068A6A -_02068A5E: - mov r0, #0x0 - pop {r4, pc} -_02068A62: - mov r0, #0x1 - pop {r4, pc} -_02068A66: - mov r0, #0x2 - pop {r4, pc} -_02068A6A: - lsl r0, r4, #0x18 - lsr r0, r0, #0x18 - cmp r1, r0 - bls _02068A76 - mov r0, #0x1 - b _02068A78 -_02068A76: - mov r0, #0x0 -_02068A78: - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r4, pc} - .balign 4 - - thumb_func_start MonIsShiny -MonIsShiny: ; 0x02068A80 - ldr r3, _02068A84 ; =BoxMonIsShiny - bx r3 - .balign 4 -_02068A84: .word BoxMonIsShiny - - thumb_func_start BoxMonIsShiny -BoxMonIsShiny: ; 0x02068A88 - push {r3-r5, lr} - mov r1, #0x7 - mov r2, #0x0 - add r5, r0, #0x0 - bl GetBoxMonData - mov r1, #0x0 - add r4, r0, #0x0 - add r0, r5, #0x0 - add r2, r1, #0x0 - bl GetBoxMonData - add r1, r0, #0x0 - add r0, r4, #0x0 - bl CalcShininessByOtIdAndPersonality - pop {r3-r5, pc} - .balign 4 - - thumb_func_start CalcShininessByOtIdAndPersonality -CalcShininessByOtIdAndPersonality: ; 0x02068AAC - ldr r3, _02068AD4 ; =0xFFFF0000 - lsl r2, r1, #0x10 - and r1, r3 - and r3, r0 - lsl r0, r0, #0x10 - lsr r3, r3, #0x10 - lsr r0, r0, #0x10 - lsr r1, r1, #0x10 - eor r0, r3 - lsr r2, r2, #0x10 - eor r0, r1 - eor r0, r2 - cmp r0, #0x8 - bhs _02068ACC - mov r0, #0x1 - b _02068ACE -_02068ACC: - mov r0, #0x0 -_02068ACE: - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr - .balign 4 -_02068AD4: .word 0xFFFF0000 + .extern BoxMonIsShiny thumb_func_start GenerateShinyPersonality GenerateShinyPersonality: ; 0x02068AD8 @@ -381,7 +116,7 @@ FUN_02068B70: ; 0x02068B70 lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r5, #0x0 - bl GetBoxMonGenderEncrypted + bl GetBoxMonGender str r0, [sp, #0x14] add r0, r5, #0x0 bl BoxMonIsShiny @@ -754,7 +489,7 @@ FUN_02068E1C: ; 0x02068E1C lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r5, #0x0 - bl GetBoxMonGenderEncrypted + bl GetBoxMonGender mov r1, #0x0 str r0, [sp, #0x4] add r0, r5, #0x0 diff --git a/arm9/asm/scrcmd_12.s b/arm9/asm/scrcmd_12.s index a941eb48..3c0ac2f0 100644 --- a/arm9/asm/scrcmd_12.s +++ b/arm9/asm/scrcmd_12.s @@ -391,7 +391,7 @@ _02042FE8: add r0, r4, #0x0 bl FUN_0206A23C add r0, r4, #0x0 - bl GetMonGenderEncrypted + bl GetMonGender str r0, [sp, #0x30] add r0, r4, #0x0 mov r1, #0x6f diff --git a/arm9/asm/unk_02023C40.s b/arm9/asm/unk_02023C40.s index 480a9e7a..46a01c79 100644 --- a/arm9/asm/unk_02023C40.s +++ b/arm9/asm/unk_02023C40.s @@ -1926,7 +1926,7 @@ FUN_0202498C: ; 0x0202498C bl GetMonData add r7, r0, #0x0 ldr r0, [sp, #0x0] - bl GetMonGenderEncrypted + bl GetMonGender add r6, r0, #0x0 ldr r1, [r5, #0x0] ldr r0, _02024AE4 ; =0xBEEFCAFE @@ -2113,7 +2113,7 @@ FUN_02024AF0: ; 0x02024AF0 bl GetMonData str r0, [sp, #0x4] ldr r0, [sp, #0x0] - bl GetMonGenderEncrypted + bl GetMonGender add r7, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024C78 ; =0xBEEFCAFE diff --git a/arm9/asm/unk_0204A01C.s b/arm9/asm/unk_0204A01C.s index 2864246e..5ea5d8c5 100644 --- a/arm9/asm/unk_0204A01C.s +++ b/arm9/asm/unk_0204A01C.s @@ -378,7 +378,7 @@ _0204A2EA: add r0, r5, #0x0 mov r1, #0x7 add r6, r6, #0x1 - bl MonApplyFriendshipModEncrypted + bl MonApplyFriendshipMod _0204A306: add r7, r7, #0x1 _0204A308: diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s index eddf119f..984a657d 100644 --- a/arm9/asm/unk_0206F3FC.s +++ b/arm9/asm/unk_0206F3FC.s @@ -1775,7 +1775,7 @@ _0207018E: ldr r0, _020701FC ; =0x0000070E add r6, r5, r0 add r0, r7, #0x0 - bl GetMonGenderEncrypted + bl GetMonGender lsl r0, r0, #0x1e ldrh r2, [r6, r4] ldr r1, _02070204 ; =0xFFFF9FFF diff --git a/arm9/asm/unk_0207550C.s b/arm9/asm/unk_0207550C.s index 879b13ea..ca869d5a 100644 --- a/arm9/asm/unk_0207550C.s +++ b/arm9/asm/unk_0207550C.s @@ -3121,7 +3121,7 @@ _02076F98: add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x4 - bl MonApplyFriendshipModEncrypted + bl MonApplyFriendshipMod _02076FA8: add sp, #0x4 pop {r3-r6, pc} diff --git a/arm9/asm/unk_02079C70.s b/arm9/asm/unk_02079C70.s index 978c1f6d..8b972fcc 100644 --- a/arm9/asm/unk_02079C70.s +++ b/arm9/asm/unk_02079C70.s @@ -1961,7 +1961,7 @@ _0207AC16: strb r0, [r5, #0x12] _0207AC1E: add r0, r6, #0x0 - bl GetMonGenderEncrypted + bl GetMonGender ldrb r1, [r5, #0x13] mov r2, #0x3 bic r1, r2 diff --git a/arm9/asm/unk_02080C38.s b/arm9/asm/unk_02080C38.s index 3437cc36..bf8c6901 100644 --- a/arm9/asm/unk_02080C38.s +++ b/arm9/asm/unk_02080C38.s @@ -3748,7 +3748,7 @@ _02082820: lsl r2, r2, #0x10 mov r1, #0x9 lsr r2, r2, #0x10 - bl MonApplyFriendshipModEncrypted + bl MonApplyFriendshipMod _0208283A: add sp, #0xc pop {r4-r7, pc} diff --git a/arm9/global.inc b/arm9/global.inc index e61ae077..c033aa3e 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -4740,9 +4740,9 @@ .extern GetMonNature
.extern GetBoxMonNature
.extern GetNatureFromPersonality
-.extern MonApplyFriendshipModEncrypted
-.extern GetMonGenderEncrypted
-.extern GetBoxMonGenderEncrypted
+.extern MonApplyFriendshipMod
+.extern GetMonGender
+.extern GetBoxMonGender
.extern GetGenderBySpeciesAndPersonality
.extern GetGenderBySpeciesAndPersonality_PreloadedPersonal
.extern MonIsShiny
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index 736c4f38..ea4a9191 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -3290,7 +3290,7 @@ _021D8FF6: bl FUN_0206B9B0 mov r1, #5 add r2, r5, #0 - bl MonApplyFriendshipModEncrypted + bl MonApplyFriendshipMod add r4, r4, #1 cmp r4, r7 blt _021D8FF6 @@ -43564,7 +43564,7 @@ MOD05_021EC8A8: ; 0x021EC8A8 add r5, sp, #4 _021EC8BC: ldr r0, [r5] - bl GetBoxMonGenderEncrypted + bl GetBoxMonGender cmp r0, #1 bne _021EC8C8 str r4, [sp] @@ -44316,7 +44316,7 @@ _021ECE56: b _021ECE8C _021ECE7A: ldr r0, [r7, r6] - bl GetBoxMonGenderEncrypted + bl GetBoxMonGender cmp r0, #1 bne _021ECE8C mov r0, #1 @@ -44377,7 +44377,7 @@ _021ECEDE: lsl r1, r0, #2 add r0, sp, #4 ldr r0, [r0, r1] - bl GetBoxMonGenderEncrypted + bl GetBoxMonGender cmp r0, #1 beq _021ECF02 ldrb r1, [r5, #1] diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s index 116ffbed..5f048017 100644 --- a/arm9/modules/07/asm/module_07.s +++ b/arm9/modules/07/asm/module_07.s @@ -3758,7 +3758,7 @@ _02213CEA: ldr r0, _02213D28 ; =0x00000222 strb r1, [r7, r0] add r0, r4, #0 - bl GetMonGenderEncrypted + bl GetMonGender ldr r1, _02213D2C ; =0x00000221 strb r0, [r5, r1] add r0, r4, #0 diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s index 6312dd4f..26c682ce 100644 --- a/arm9/modules/09/asm/module_09.s +++ b/arm9/modules/09/asm/module_09.s @@ -2535,7 +2535,7 @@ _022132C2: add r6, r0, #0
ldr r0, [r4, #4]
add r6, #0x1b
- bl GetMonGenderEncrypted
+ bl GetMonGender
ldrb r1, [r6, r5]
mov r2, #7
bic r1, r2
diff --git a/arm9/modules/11/asm/module_11.s b/arm9/modules/11/asm/module_11.s index 2e80cbba..f8a593a1 100644 --- a/arm9/modules/11/asm/module_11.s +++ b/arm9/modules/11/asm/module_11.s @@ -2898,7 +2898,7 @@ _0222EE8C: add r1, r7, #0
lsl r2, r2, #0x10
lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
ldr r0, [r4, #0x68]
add r5, r5, #1
bl FUN_0206B9AC
@@ -2920,7 +2920,7 @@ _0222EEBC: add r1, r7, #0
lsl r2, r2, #0x10
lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
ldr r0, [r4, #0x70]
add r5, r5, #1
bl FUN_0206B9AC
@@ -27099,7 +27099,7 @@ _0223AB58: add r0, r6, #0
mov r1, #0
lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
add r0, r6, #0
bl CalcMonStats
ldr r1, [r4, #4]
@@ -31697,7 +31697,7 @@ _0223D148: add r0, r7, #0
mov r1, #8
lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
pop {r3, r4, r5, r6, r7, pc}
_0223D18E:
add r0, r5, #0
@@ -31707,7 +31707,7 @@ _0223D18E: add r0, r7, #0
mov r1, #6
lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
pop {r3, r4, r5, r6, r7, pc}
_0223D1A4:
add r0, r5, #0
@@ -31717,7 +31717,7 @@ _0223D1A4: add r0, r7, #0
mov r1, #6
lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
_0223D1B8:
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -43613,7 +43613,7 @@ _02242D2E: add r0, r7, r1
str r0, [sp, #0x1c]
add r0, r4, #0
- bl GetMonGenderEncrypted
+ bl GetMonGender
ldr r1, [sp, #0x1c]
mov r2, #0xf
ldrb r1, [r1, r5]
diff --git a/arm9/modules/35/asm/module_35.s b/arm9/modules/35/asm/module_35.s index 760c2f64..a07a6426 100644 --- a/arm9/modules/35/asm/module_35.s +++ b/arm9/modules/35/asm/module_35.s @@ -349,7 +349,7 @@ _02254A7A: bl MOD05_021EC7B4 str r0, [r5, #0xc] add r0, r4, #0 - bl GetBoxMonGenderEncrypted + bl GetBoxMonGender str r0, [r5, #0x14] ldr r1, [sp, #0xc] add r0, r4, #0 diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s index c62ef6e6..fa4d0c5b 100644 --- a/arm9/modules/65/asm/module_65.s +++ b/arm9/modules/65/asm/module_65.s @@ -3376,7 +3376,7 @@ MOD65_021D8F34: ; 0x021D8F34 strh r0, [r4, #0x34] ldr r0, [r4, #0x10] ldr r0, [r0] - bl GetMonGenderEncrypted + bl GetMonGender add r1, r4, #0 add r1, #0x37 strb r0, [r1] diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s index 3199be5d..32eb8847 100644 --- a/arm9/modules/69/asm/module_69.s +++ b/arm9/modules/69/asm/module_69.s @@ -2370,7 +2370,7 @@ MOD69_0222E8FC: ; 0x0222E8FC mov r3, #3 bl FUN_0200AD38 ldr r0, [r4, #0x24] - bl GetMonGenderEncrypted + bl GetMonGender cmp r0, #0 beq _0222E93C cmp r0, #1 diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s index bc13fe8f..e9d79012 100644 --- a/arm9/modules/71/asm/module_71.s +++ b/arm9/modules/71/asm/module_71.s @@ -6435,7 +6435,7 @@ MOD71_02230AE4: ; 0x02230AE4 bl FUN_020239CC add r5, r0, #0 add r0, r4, #0 - bl GetMonGenderEncrypted + bl GetMonGender add r3, r0, #0 mov r0, #0x1a lsl r1, r5, #0x18 diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s index ffa44bd8..8b553253 100644 --- a/arm9/modules/80/asm/module_80.s +++ b/arm9/modules/80/asm/module_80.s @@ -16366,7 +16366,7 @@ MOD80_022357A0: ; 0x022357A0 add r2, sp, #4 bl GetMonData add r0, r4, #0 - bl GetMonGenderEncrypted + bl GetMonGender add r3, r0, #0 mov r0, #0x3e str r0, [sp] diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s index bd2f6d2f..2aa02a59 100644 --- a/arm9/modules/83/asm/module_83.s +++ b/arm9/modules/83/asm/module_83.s @@ -22397,7 +22397,7 @@ _02238332: add r2, sp, #8 bl SetBoxMonData add r0, r4, #0 - bl GetBoxMonGenderEncrypted + bl GetBoxMonGender str r0, [sp, #8] add r0, r4, #0 mov r1, #0x6f @@ -23885,7 +23885,7 @@ MOD83_02238F94: ; 0x02238F94 add r7, r2, #0 add r6, r3, #0 ldr r4, [sp, #0x40] - bl GetMonGenderEncrypted + bl GetMonGender str r0, [sp, #0x24] ldr r0, [sp, #0x20] bl MonIsShiny diff --git a/arm9/src/pokemon.c b/arm9/src/pokemon.c index 663b581a..58030ee1 100644 --- a/arm9/src/pokemon.c +++ b/arm9/src/pokemon.c @@ -10,6 +10,7 @@ #include "string_util.h" #include "text.h" #include "constants/abilities.h" +#include "constants/items.h" #pragma thumb on @@ -20,9 +21,13 @@ void SetBoxMonDataInternal(struct BoxPokemon * pokemon, int attr, void * ptr); void AddMonDataInternal(struct Pokemon * pokemon, int attr, int amount); void AddBoxMonData(struct BoxPokemon * pokemon, int attr, int amount); u32 CalcBoxMonExpToNextLevel(struct BoxPokemon * boxmon); +u16 ModifyStatByNature(u8 nature, u16 statval, u8 statno); +u8 GetGenderBySpeciesAndPersonality_PreloadedPersonal(struct BaseStats * personal, u16 species, u32 pid); +u8 BoxMonIsShiny(struct BoxPokemon * boxmon); +u8 CalcShininessByOtIdAndPersonality(u32 otid, u32 pid); void LoadMonPersonal(int species, struct BaseStats * personal); -int ResolveMonForme(int species, int forme); +int ResolveMonForme(int species, int forme); void MonEncryptSegment(void * datap, u32 size, u32 key); void MonDecryptSegment(void * datap, u32 size, u32 key); u16 MonEncryptionLCRNG(u32 * seed); @@ -30,7 +35,6 @@ u16 CalcMonChecksum(void * datap, u32 size); void InitBoxMonMoveset(struct BoxPokemon * boxmon); PokemonDataBlock * GetSubstruct(struct BoxPokemon * boxmon, u32 personality, u32 which_struct); void LoadMonBaseStats_HandleAlternateForme(u32 species, u32 forme, struct BaseStats * baseStats); -u16 ModifyStatByNature(u8 nature, u16 statval, u8 statno); #define ENCRY_ARGS_PTY(mon) &(mon)->party, sizeof((mon)->party), (mon)->box.pid #define ENCRY_ARGS_BOX(boxmon) &(boxmon)->substructs, sizeof((boxmon)->substructs), (boxmon)->checksum @@ -316,7 +320,7 @@ void CreateBoxMon(struct BoxPokemon * boxPokemon, int species, int level, int fi } else SetBoxMonData(boxPokemon, MON_DATA_ABILITY, &exp); - exp = GetBoxMonGenderEncrypted(boxPokemon); + exp = GetBoxMonGender(boxPokemon); SetBoxMonData(boxPokemon, MON_DATA_GENDER, &exp); InitBoxMonMoveset(boxPokemon); ReleaseBoxMonLock(boxPokemon, decry); @@ -2017,3 +2021,98 @@ u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex) } return retVal; } + +void MonApplyFriendshipMod(struct Pokemon * pokemon, u32 kind, u32 location) +{ + u16 species; + u8 effect; + u8 r4; + s16 friendship; + s8 mod; + + if (kind == 5 && (rand_LC() & 1)) + return; + + species = GetMonData(pokemon, MON_DATA_SPECIES2, NULL); + if (species == SPECIES_NONE || species == SPECIES_EGG) + return; + + effect = FUN_0206E7B8(GetMonData(pokemon, MON_DATA_HELD_ITEM, NULL), 1, 0); + r4 = 0; + friendship = GetMonData(pokemon, MON_DATA_FRIENDSHIP, NULL); + if (friendship >= 100) + r4++; + if (friendship >= 200) + r4++; + mod = sFriendshipModTable[kind][r4]; + if (mod > 0 && GetMonData(pokemon, MON_DATA_POKEBALL, NULL) == ITEM_LUXURY_BALL) + mod++; + if (mod > 0 && GetMonData(pokemon, MON_DATA_EGG_MET_LOCATION, NULL) == location) + mod++; + if (mod > 0 && effect == 52) // Soothe Bell effect? + mod = mod * 150 / 100; + friendship += mod; + if (friendship < 0) + friendship = 0; + if (friendship > 255) + friendship = 255; + SetMonData(pokemon, MON_DATA_FRIENDSHIP, &friendship); +} + +u8 GetMonGender(struct Pokemon * pokemon) +{ + return GetBoxMonGender(&pokemon->box); +} + +u8 GetBoxMonGender(struct BoxPokemon * boxmon) +{ + BOOL decry = AcquireBoxMonLock(boxmon); + u16 species = GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL); + u32 personality = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL); + ReleaseBoxMonLock(boxmon, decry); + return GetGenderBySpeciesAndPersonality(species, personality); +} + +u8 GetGenderBySpeciesAndPersonality(u16 species, u32 pid) +{ + struct BaseStats * personal = AllocAndLoadMonPersonal(species, 0); + u8 gender = GetGenderBySpeciesAndPersonality_PreloadedPersonal(personal, species, pid); + FreeMonPersonal(personal); + return gender; +} + +u8 GetGenderBySpeciesAndPersonality_PreloadedPersonal(struct BaseStats * personal, u16 species, u32 pid) +{ + u8 ratio = GetPersonalAttr(personal, BASE_GENDER_RATIO); + switch (ratio) + { + case MON_RATIO_MALE: + return MON_MALE; + case MON_RATIO_FEMALE: + return MON_FEMALE; + case MON_RATIO_UNKNOWN: + return MON_GENDERLESS; + default: + if (ratio > (u8)pid) + return MON_FEMALE; + else + return MON_MALE; + } +} + +u8 MonIsShiny(struct Pokemon * pokemon) +{ + return BoxMonIsShiny(&pokemon->box); +} + +u8 BoxMonIsShiny(struct BoxPokemon * boxmon) +{ + u32 otid = GetBoxMonData(boxmon, MON_DATA_OTID, NULL); + u32 pid = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL); + return CalcShininessByOtIdAndPersonality(otid, pid); +} + +u8 CalcShininessByOtIdAndPersonality(u32 otid, u32 pid) +{ + return SHINY_CHECK(otid, pid); +} diff --git a/include/constants/items.h b/include/constants/items.h new file mode 100644 index 00000000..98c3dd97 --- /dev/null +++ b/include/constants/items.h @@ -0,0 +1,448 @@ +#ifndef POKEDIAMOND_CONSTANTS_ITEMS_H +#define POKEDIAMOND_CONSTANTS_ITEMS_H + +#define ITEM_NONE 0 +#define ITEM_MASTER_BALL 1 +#define ITEM_ULTRA_BALL 2 +#define ITEM_GREAT_BALL 3 +#define ITEM_POKE_BALL 4 +#define ITEM_SAFARI_BALL 5 +#define ITEM_NET_BALL 6 +#define ITEM_DIVE_BALL 7 +#define ITEM_NEST_BALL 8 +#define ITEM_REPEAT_BALL 9 +#define ITEM_TIMER_BALL 10 +#define ITEM_LUXURY_BALL 11 +#define ITEM_PREMIER_BALL 12 +#define ITEM_DUSK_BALL 13 +#define ITEM_HEAL_BALL 14 +#define ITEM_QUICK_BALL 15 +#define ITEM_CHERISH_BALL 16 +#define ITEM_POTION 17 +#define ITEM_ANTIDOTE 18 +#define ITEM_BURN_HEAL 19 +#define ITEM_ICE_HEAL 20 +#define ITEM_AWAKENING 21 +#define ITEM_PARLYZ_HEAL 22 +#define ITEM_FULL_RESTORE 23 +#define ITEM_MAX_POTION 24 +#define ITEM_HYPER_POTION 25 +#define ITEM_SUPER_POTION 26 +#define ITEM_FULL_HEAL 27 +#define ITEM_REVIVE 28 +#define ITEM_MAX_REVIVE 29 +#define ITEM_FRESH_WATER 30 +#define ITEM_SODA_POP 31 +#define ITEM_LEMONADE 32 +#define ITEM_MOOMOO_MILK 33 +#define ITEM_ENERGYPOWDER 34 +#define ITEM_ENERGY_ROOT 35 +#define ITEM_HEAL_POWDER 36 +#define ITEM_REVIVAL_HERB 37 +#define ITEM_ETHER 38 +#define ITEM_MAX_ETHER 39 +#define ITEM_ELIXIR 40 +#define ITEM_MAX_ELIXIR 41 +#define ITEM_LAVA_COOKIE 42 +#define ITEM_BERRY_JUICE 43 +#define ITEM_SACRED_ASH 44 +#define ITEM_HP_UP 45 +#define ITEM_PROTEIN 46 +#define ITEM_IRON 47 +#define ITEM_CARBOS 48 +#define ITEM_CALCIUM 49 +#define ITEM_RARE_CANDY 50 +#define ITEM_PP_UP 51 +#define ITEM_ZINC 52 +#define ITEM_PP_MAX 53 +#define ITEM_OLD_GATEAU 54 +#define ITEM_GUARD_SPEC_ 55 +#define ITEM_DIRE_HIT 56 +#define ITEM_X_ATTACK 57 +#define ITEM_X_DEFENSE 58 +#define ITEM_X_SPEED 59 +#define ITEM_X_ACCURACY 60 +#define ITEM_X_SPECIAL 61 +#define ITEM_X_SP__DEF 62 +#define ITEM_POKE_DOLL 63 +#define ITEM_FLUFFY_TAIL 64 +#define ITEM_BLUE_FLUTE 65 +#define ITEM_YELLOW_FLUTE 66 +#define ITEM_RED_FLUTE 67 +#define ITEM_BLACK_FLUTE 68 +#define ITEM_WHITE_FLUTE 69 +#define ITEM_SHOAL_SALT 70 +#define ITEM_SHOAL_SHELL 71 +#define ITEM_RED_SHARD 72 +#define ITEM_BLUE_SHARD 73 +#define ITEM_YELLOW_SHARD 74 +#define ITEM_GREEN_SHARD 75 +#define ITEM_SUPER_REPEL 76 +#define ITEM_MAX_REPEL 77 +#define ITEM_ESCAPE_ROPE 78 +#define ITEM_REPEL 79 +#define ITEM_SUN_STONE 80 +#define ITEM_MOON_STONE 81 +#define ITEM_FIRE_STONE 82 +#define ITEM_THUNDERSTONE 83 +#define ITEM_WATER_STONE 84 +#define ITEM_LEAF_STONE 85 +#define ITEM_TINYMUSHROOM 86 +#define ITEM_BIG_MUSHROOM 87 +#define ITEM_PEARL 88 +#define ITEM_BIG_PEARL 89 +#define ITEM_STARDUST 90 +#define ITEM_STAR_PIECE 91 +#define ITEM_NUGGET 92 +#define ITEM_HEART_SCALE 93 +#define ITEM_HONEY 94 +#define ITEM_GROWTH_MULCH 95 +#define ITEM_DAMP_MULCH 96 +#define ITEM_STABLE_MULCH 97 +#define ITEM_GOOEY_MULCH 98 +#define ITEM_ROOT_FOSSIL 99 +#define ITEM_CLAW_FOSSIL 100 +#define ITEM_HELIX_FOSSIL 101 +#define ITEM_DOME_FOSSIL 102 +#define ITEM_OLD_AMBER 103 +#define ITEM_ARMOR_FOSSIL 104 +#define ITEM_SKULL_FOSSIL 105 +#define ITEM_RARE_BONE 106 +#define ITEM_SHINY_STONE 107 +#define ITEM_DUSK_STONE 108 +#define ITEM_DAWN_STONE 109 +#define ITEM_OVAL_STONE 110 +#define ITEM_ODD_KEYSTONE 111 + +#define ITEM_ADAMANT_ORB 135 +#define ITEM_LUSTROUS_ORB 136 +#define ITEM_GRASS_MAIL 137 +#define ITEM_FLAME_MAIL 138 +#define ITEM_BUBBLE_MAIL 139 +#define ITEM_BLOOM_MAIL 140 +#define ITEM_TUNNEL_MAIL 141 +#define ITEM_STEEL_MAIL 142 +#define ITEM_HEART_MAIL 143 +#define ITEM_SNOW_MAIL 144 +#define ITEM_SPACE_MAIL 145 +#define ITEM_AIR_MAIL 146 +#define ITEM_MOSAIC_MAIL 147 +#define ITEM_BRICK_MAIL 148 +#define ITEM_CHERI_BERRY 149 +#define ITEM_CHESTO_BERRY 150 +#define ITEM_PECHA_BERRY 151 +#define ITEM_RAWST_BERRY 152 +#define ITEM_ASPEAR_BERRY 153 +#define ITEM_LEPPA_BERRY 154 +#define ITEM_ORAN_BERRY 155 +#define ITEM_PERSIM_BERRY 156 +#define ITEM_LUM_BERRY 157 +#define ITEM_SITRUS_BERRY 158 +#define ITEM_FIGY_BERRY 159 +#define ITEM_WIKI_BERRY 160 +#define ITEM_MAGO_BERRY 161 +#define ITEM_AGUAV_BERRY 162 +#define ITEM_IAPAPA_BERRY 163 +#define ITEM_RAZZ_BERRY 164 +#define ITEM_BLUK_BERRY 165 +#define ITEM_NANAB_BERRY 166 +#define ITEM_WEPEAR_BERRY 167 +#define ITEM_PINAP_BERRY 168 +#define ITEM_POMEG_BERRY 169 +#define ITEM_KELPSY_BERRY 170 +#define ITEM_QUALOT_BERRY 171 +#define ITEM_HONDEW_BERRY 172 +#define ITEM_GREPA_BERRY 173 +#define ITEM_TAMATO_BERRY 174 +#define ITEM_CORNN_BERRY 175 +#define ITEM_MAGOST_BERRY 176 +#define ITEM_RABUTA_BERRY 177 +#define ITEM_NOMEL_BERRY 178 +#define ITEM_SPELON_BERRY 179 +#define ITEM_PAMTRE_BERRY 180 +#define ITEM_WATMEL_BERRY 181 +#define ITEM_DURIN_BERRY 182 +#define ITEM_BELUE_BERRY 183 +#define ITEM_OCCA_BERRY 184 +#define ITEM_PASSHO_BERRY 185 +#define ITEM_WACAN_BERRY 186 +#define ITEM_RINDO_BERRY 187 +#define ITEM_YACHE_BERRY 188 +#define ITEM_CHOPLE_BERRY 189 +#define ITEM_KEBIA_BERRY 190 +#define ITEM_SHUCA_BERRY 191 +#define ITEM_COBA_BERRY 192 +#define ITEM_PAYAPA_BERRY 193 +#define ITEM_TANGA_BERRY 194 +#define ITEM_CHARTI_BERRY 195 +#define ITEM_KASIB_BERRY 196 +#define ITEM_HABAN_BERRY 197 +#define ITEM_COLBUR_BERRY 198 +#define ITEM_BABIRI_BERRY 199 +#define ITEM_CHILAN_BERRY 200 +#define ITEM_LIECHI_BERRY 201 +#define ITEM_GANLON_BERRY 202 +#define ITEM_SALAC_BERRY 203 +#define ITEM_PETAYA_BERRY 204 +#define ITEM_APICOT_BERRY 205 +#define ITEM_LANSAT_BERRY 206 +#define ITEM_STARF_BERRY 207 +#define ITEM_ENIGMA_BERRY 208 +#define ITEM_MICLE_BERRY 209 +#define ITEM_CUSTAP_BERRY 210 +#define ITEM_JABOCA_BERRY 211 +#define ITEM_ROWAP_BERRY 212 +#define ITEM_BRIGHTPOWDER 213 +#define ITEM_WHITE_HERB 214 +#define ITEM_MACHO_BRACE 215 +#define ITEM_EXP__SHARE 216 +#define ITEM_QUICK_CLAW 217 +#define ITEM_SOOTHE_BELL 218 +#define ITEM_MENTAL_HERB 219 +#define ITEM_CHOICE_BAND 220 +#define ITEM_KINGS_ROCK 221 +#define ITEM_SILVERPOWDER 222 +#define ITEM_AMULET_COIN 223 +#define ITEM_CLEANSE_TAG 224 +#define ITEM_SOUL_DEW 225 +#define ITEM_DEEPSEATOOTH 226 +#define ITEM_DEEPSEASCALE 227 +#define ITEM_SMOKE_BALL 228 +#define ITEM_EVERSTONE 229 +#define ITEM_FOCUS_BAND 230 +#define ITEM_LUCKY_EGG 231 +#define ITEM_SCOPE_LENS 232 +#define ITEM_METAL_COAT 233 +#define ITEM_LEFTOVERS 234 +#define ITEM_DRAGON_SCALE 235 +#define ITEM_LIGHT_BALL 236 +#define ITEM_SOFT_SAND 237 +#define ITEM_HARD_STONE 238 +#define ITEM_MIRACLE_SEED 239 +#define ITEM_BLACKGLASSES 240 +#define ITEM_BLACK_BELT 241 +#define ITEM_MAGNET 242 +#define ITEM_MYSTIC_WATER 243 +#define ITEM_SHARP_BEAK 244 +#define ITEM_POISON_BARB 245 +#define ITEM_NEVERMELTICE 246 +#define ITEM_SPELL_TAG 247 +#define ITEM_TWISTEDSPOON 248 +#define ITEM_CHARCOAL 249 +#define ITEM_DRAGON_FANG 250 +#define ITEM_SILK_SCARF 251 +#define ITEM_UPGRADE 252 +#define ITEM_SHELL_BELL 253 +#define ITEM_SEA_INCENSE 254 +#define ITEM_LAX_INCENSE 255 +#define ITEM_LUCKY_PUNCH 256 +#define ITEM_METAL_POWDER 257 +#define ITEM_THICK_CLUB 258 +#define ITEM_STICK 259 +#define ITEM_RED_SCARF 260 +#define ITEM_BLUE_SCARF 261 +#define ITEM_PINK_SCARF 262 +#define ITEM_GREEN_SCARF 263 +#define ITEM_YELLOW_SCARF 264 +#define ITEM_WIDE_LENS 265 +#define ITEM_MUSCLE_BAND 266 +#define ITEM_WISE_GLASSES 267 +#define ITEM_EXPERT_BELT 268 +#define ITEM_LIGHT_CLAY 269 +#define ITEM_LIFE_ORB 270 +#define ITEM_POWER_HERB 271 +#define ITEM_TOXIC_ORB 272 +#define ITEM_FLAME_ORB 273 +#define ITEM_QUICK_POWDER 274 +#define ITEM_FOCUS_SASH 275 +#define ITEM_ZOOM_LENS 276 +#define ITEM_METRONOME 277 +#define ITEM_IRON_BALL 278 +#define ITEM_LAGGING_TAIL 279 +#define ITEM_DESTINY_KNOT 280 +#define ITEM_BLACK_SLUDGE 281 +#define ITEM_ICY_ROCK 282 +#define ITEM_SMOOTH_ROCK 283 +#define ITEM_HEAT_ROCK 284 +#define ITEM_DAMP_ROCK 285 +#define ITEM_GRIP_CLAW 286 +#define ITEM_CHOICE_SCARF 287 +#define ITEM_STICKY_BARB 288 +#define ITEM_POWER_BRACER 289 +#define ITEM_POWER_BELT 290 +#define ITEM_POWER_LENS 291 +#define ITEM_POWER_BAND 292 +#define ITEM_POWER_ANKLET 293 +#define ITEM_POWER_WEIGHT 294 +#define ITEM_SHED_SHELL 295 +#define ITEM_BIG_ROOT 296 +#define ITEM_CHOICE_SPECS 297 +#define ITEM_FLAME_PLATE 298 +#define ITEM_SPLASH_PLATE 299 +#define ITEM_ZAP_PLATE 300 +#define ITEM_MEADOW_PLATE 301 +#define ITEM_ICICLE_PLATE 302 +#define ITEM_FIST_PLATE 303 +#define ITEM_TOXIC_PLATE 304 +#define ITEM_EARTH_PLATE 305 +#define ITEM_SKY_PLATE 306 +#define ITEM_MIND_PLATE 307 +#define ITEM_INSECT_PLATE 308 +#define ITEM_STONE_PLATE 309 +#define ITEM_SPOOKY_PLATE 310 +#define ITEM_DRACO_PLATE 311 +#define ITEM_DREAD_PLATE 312 +#define ITEM_IRON_PLATE 313 +#define ITEM_ODD_INCENSE 314 +#define ITEM_ROCK_INCENSE 315 +#define ITEM_FULL_INCENSE 316 +#define ITEM_WAVE_INCENSE 317 +#define ITEM_ROSE_INCENSE 318 +#define ITEM_LUCK_INCENSE 319 +#define ITEM_PURE_INCENSE 320 +#define ITEM_PROTECTOR 321 +#define ITEM_ELECTIRIZER 322 +#define ITEM_MAGMARIZER 323 +#define ITEM_DUBIOUS_DISC 324 +#define ITEM_REAPER_CLOTH 325 +#define ITEM_RAZOR_CLAW 326 +#define ITEM_RAZOR_FANG 327 +#define ITEM_TM01 328 +#define ITEM_TM02 329 +#define ITEM_TM03 330 +#define ITEM_TM04 331 +#define ITEM_TM05 332 +#define ITEM_TM06 333 +#define ITEM_TM07 334 +#define ITEM_TM08 335 +#define ITEM_TM09 336 +#define ITEM_TM10 337 +#define ITEM_TM11 338 +#define ITEM_TM12 339 +#define ITEM_TM13 340 +#define ITEM_TM14 341 +#define ITEM_TM15 342 +#define ITEM_TM16 343 +#define ITEM_TM17 344 +#define ITEM_TM18 345 +#define ITEM_TM19 346 +#define ITEM_TM20 347 +#define ITEM_TM21 348 +#define ITEM_TM22 349 +#define ITEM_TM23 350 +#define ITEM_TM24 351 +#define ITEM_TM25 352 +#define ITEM_TM26 353 +#define ITEM_TM27 354 +#define ITEM_TM28 355 +#define ITEM_TM29 356 +#define ITEM_TM30 357 +#define ITEM_TM31 358 +#define ITEM_TM32 359 +#define ITEM_TM33 360 +#define ITEM_TM34 361 +#define ITEM_TM35 362 +#define ITEM_TM36 363 +#define ITEM_TM37 364 +#define ITEM_TM38 365 +#define ITEM_TM39 366 +#define ITEM_TM40 367 +#define ITEM_TM41 368 +#define ITEM_TM42 369 +#define ITEM_TM43 370 +#define ITEM_TM44 371 +#define ITEM_TM45 372 +#define ITEM_TM46 373 +#define ITEM_TM47 374 +#define ITEM_TM48 375 +#define ITEM_TM49 376 +#define ITEM_TM50 377 +#define ITEM_TM51 378 +#define ITEM_TM52 379 +#define ITEM_TM53 380 +#define ITEM_TM54 381 +#define ITEM_TM55 382 +#define ITEM_TM56 383 +#define ITEM_TM57 384 +#define ITEM_TM58 385 +#define ITEM_TM59 386 +#define ITEM_TM60 387 +#define ITEM_TM61 388 +#define ITEM_TM62 389 +#define ITEM_TM63 390 +#define ITEM_TM64 391 +#define ITEM_TM65 392 +#define ITEM_TM66 393 +#define ITEM_TM67 394 +#define ITEM_TM68 395 +#define ITEM_TM69 396 +#define ITEM_TM70 397 +#define ITEM_TM71 398 +#define ITEM_TM72 399 +#define ITEM_TM73 400 +#define ITEM_TM74 401 +#define ITEM_TM75 402 +#define ITEM_TM76 403 +#define ITEM_TM77 404 +#define ITEM_TM78 405 +#define ITEM_TM79 406 +#define ITEM_TM80 407 +#define ITEM_TM81 408 +#define ITEM_TM82 409 +#define ITEM_TM83 410 +#define ITEM_TM84 411 +#define ITEM_TM85 412 +#define ITEM_TM86 413 +#define ITEM_TM87 414 +#define ITEM_TM88 415 +#define ITEM_TM89 416 +#define ITEM_TM90 417 +#define ITEM_TM91 418 +#define ITEM_TM92 419 +#define ITEM_HM01 420 +#define ITEM_HM02 421 +#define ITEM_HM03 422 +#define ITEM_HM04 423 +#define ITEM_HM05 424 +#define ITEM_HM06 425 +#define ITEM_HM07 426 +#define ITEM_HM08 427 +#define ITEM_EXPLORER_KIT 428 +#define ITEM_LOOT_SACK 429 +#define ITEM_RULE_BOOK 430 +#define ITEM_POKE_RADAR 431 +#define ITEM_POINT_CARD 432 +#define ITEM_JOURNAL 433 +#define ITEM_SEAL_CASE 434 +#define ITEM_FASHION_CASE 435 +#define ITEM_SEAL_BAG 436 +#define ITEM_PAL_PAD 437 +#define ITEM_WORKS_KEY 438 +#define ITEM_OLD_CHARM 439 +#define ITEM_GALACTIC_KEY 440 +#define ITEM_RED_CHAIN 441 +#define ITEM_TOWN_MAP 442 +#define ITEM_VS__SEEKER 443 +#define ITEM_COIN_CASE 444 +#define ITEM_OLD_ROD 445 +#define ITEM_GOOD_ROD 446 +#define ITEM_SUPER_ROD 447 +#define ITEM_SPRAYDUCK 448 +#define ITEM_POFFIN_CASE 449 +#define ITEM_BICYCLE 450 +#define ITEM_SUITE_KEY 451 +#define ITEM_OAKS_LETTER 452 +#define ITEM_LUNAR_WING 453 +#define ITEM_MEMBER_CARD 454 +#define ITEM_AZURE_FLUTE 455 +#define ITEM_S_S__TICKET 456 +#define ITEM_CONTEST_PASS 457 +#define ITEM_MAGMA_STONE 458 +#define ITEM_PARCEL 459 +#define ITEM_COUPON_1 460 +#define ITEM_COUPON_2 461 +#define ITEM_COUPON_3 462 +#define ITEM_STORAGE_KEY 463 +#define ITEM_SECRETPOTION 464 + +#endif //POKEDIAMOND_CONSTANTS_ITEMS_H diff --git a/include/pokemon.h b/include/pokemon.h index 3e277ee1..db15ac14 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -507,7 +507,7 @@ int CalcLevelBySpeciesAndExp_PreloadedPersonal(struct BaseStats * personal, u16 u8 GetBoxMonNature(struct BoxPokemon * boxmon); u8 GetMonNature(struct Pokemon * mon); u8 GetNatureFromPersonality(u32 pid); +u8 GetBoxMonGender(struct BoxPokemon * boxmon); u8 GetGenderBySpeciesAndPersonality(u16 species, u32 pid); -u32 GetBoxMonGenderEncrypted(struct BoxPokemon * boxmon); #endif //POKEDIAMOND_POKEMON_H |