summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-06-13 11:26:10 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-06-13 11:26:10 -0400
commite81dfc98e26bece01763110254648d7c20cb198d (patch)
tree90b72a7eaf35e112bfb52c3941b80e35f04397ec
parent0747fe684c46d010d8917c4257dd1f1a52241385 (diff)
through SetBoxMonDataInternal
-rw-r--r--arm9/asm/pokemon_s.s1113
-rw-r--r--arm9/asm/unk_0206B16C.s2
-rw-r--r--arm9/asm/unk_0207FD00.s50
-rw-r--r--arm9/global.inc2
-rw-r--r--arm9/modules/05/asm/module_05.s2
-rw-r--r--arm9/modules/14/asm/module_14.s4
-rw-r--r--arm9/modules/83/asm/module_83.s122
-rw-r--r--arm9/src/pokemon.c522
-rw-r--r--include/pokemon.h14
-rw-r--r--include/proto.h1
-rw-r--r--include/seals.h4
11 files changed, 602 insertions, 1234 deletions
diff --git a/arm9/asm/pokemon_s.s b/arm9/asm/pokemon_s.s
index ecd0ba95..c901ba32 100644
--- a/arm9/asm/pokemon_s.s
+++ b/arm9/asm/pokemon_s.s
@@ -24,1081 +24,6 @@ UNK_021C5AC0: ; 0x021C5AC0
.text
- thumb_func_start SetMonData
-SetMonData: ; 0x02067830
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldrh r0, [r5, #0x4]
- add r4, r1, #0x0
- add r6, r2, #0x0
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bne _02067886
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonDecryptSegment
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonDecryptSegment
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- ldrh r1, [r5, #0x6]
- cmp r0, r1
- beq _02067886
- cmp r0, r1
- beq _02067870
- bl ErrorHandling
-_02067870:
- ldrh r1, [r5, #0x4]
- mov r0, #0x4
- orr r0, r1
- strh r0, [r5, #0x4]
- ldrh r2, [r5, #0x6]
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
- pop {r4-r6, pc}
-_02067886:
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl SetMonDataInternal
- ldrh r0, [r5, #0x4]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bne _020678BC
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonEncryptSegment
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- strh r0, [r5, #0x6]
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
-_020678BC:
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start SetMonDataInternal
-SetMonDataInternal: ; 0x020678C0
- push {r3, lr}
- add r3, r0, #0x0
- add r0, r1, #0x0
- sub r0, #0x9f
- cmp r0, #0xb
- bhi _02067958
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_020678D8: ; jump table (using 16-bit offset)
- .short _020678F0 - _020678D8 - 2; case 0
- .short _020678F8 - _020678D8 - 2; case 1
- .short _02067900 - _020678D8 - 2; case 2
- .short _02067908 - _020678D8 - 2; case 3
- .short _02067910 - _020678D8 - 2; case 4
- .short _02067918 - _020678D8 - 2; case 5
- .short _02067920 - _020678D8 - 2; case 6
- .short _02067928 - _020678D8 - 2; case 7
- .short _02067930 - _020678D8 - 2; case 8
- .short _02067938 - _020678D8 - 2; case 9
- .short _02067940 - _020678D8 - 2; case 10
- .short _0206794C - _020678D8 - 2; case 11
-_020678F0:
- ldr r0, [r2, #0x0]
- add r3, #0x88
- str r0, [r3, #0x0]
- pop {r3, pc}
-_020678F8:
- ldrb r0, [r2, #0x0]
- add r3, #0x8c
- strb r0, [r3, #0x0]
- pop {r3, pc}
-_02067900:
- ldrb r0, [r2, #0x0]
- add r3, #0x8d
- strb r0, [r3, #0x0]
- pop {r3, pc}
-_02067908:
- ldrh r0, [r2, #0x0]
- add r3, #0x8e
- strh r0, [r3, #0x0]
- pop {r3, pc}
-_02067910:
- ldrh r0, [r2, #0x0]
- add r3, #0x90
- strh r0, [r3, #0x0]
- pop {r3, pc}
-_02067918:
- ldrh r0, [r2, #0x0]
- add r3, #0x92
- strh r0, [r3, #0x0]
- pop {r3, pc}
-_02067920:
- ldrh r0, [r2, #0x0]
- add r3, #0x94
- strh r0, [r3, #0x0]
- pop {r3, pc}
-_02067928:
- ldrh r0, [r2, #0x0]
- add r3, #0x96
- strh r0, [r3, #0x0]
- pop {r3, pc}
-_02067930:
- ldrh r0, [r2, #0x0]
- add r3, #0x98
- strh r0, [r3, #0x0]
- pop {r3, pc}
-_02067938:
- ldrh r0, [r2, #0x0]
- add r3, #0x9a
- strh r0, [r3, #0x0]
- pop {r3, pc}
-_02067940:
- add r3, #0x9c
- add r0, r2, #0x0
- add r1, r3, #0x0
- bl CopySealsObject
- pop {r3, pc}
-_0206794C:
- add r3, #0xd4
- add r0, r2, #0x0
- add r1, r3, #0x0
- bl FUN_02029C74
- pop {r3, pc}
-_02067958:
- add r0, r3, #0x0
- bl SetBoxMonData
- pop {r3, pc}
-
- thumb_func_start SetBoxMonDataEncrypted
-SetBoxMonDataEncrypted: ; 0x02067960
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldrh r0, [r5, #0x4]
- add r4, r1, #0x0
- add r6, r2, #0x0
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- bne _020679AA
- ldrh r2, [r5, #0x6]
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl MonDecryptSegment
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- ldrh r1, [r5, #0x6]
- cmp r0, r1
- beq _020679AA
- cmp r0, r1
- beq _02067994
- bl ErrorHandling
-_02067994:
- ldrh r1, [r5, #0x4]
- mov r0, #0x4
- orr r0, r1
- strh r0, [r5, #0x4]
- ldrh r2, [r5, #0x6]
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
- pop {r4-r6, pc}
-_020679AA:
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl SetBoxMonData
- ldrh r0, [r5, #0x4]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- bne _020679D4
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- strh r0, [r5, #0x6]
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
-_020679D4:
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start SetBoxMonData
-SetBoxMonData: ; 0x020679D8
- push {r4-r7, lr}
- sub sp, #0x4c
- str r1, [sp, #0x4]
- add r1, r0, #0x0
- add r4, r2, #0x0
- ldr r1, [r1, #0x0]
- str r0, [sp, #0x0]
- mov r2, #0x0
- bl GetSubstruct
- add r7, r0, #0x0
- ldr r0, [sp, #0x0]
- mov r2, #0x1
- add r1, r0, #0x0
- ldr r1, [r1, #0x0]
- bl GetSubstruct
- add r5, r0, #0x0
- ldr r0, [sp, #0x0]
- mov r2, #0x2
- add r1, r0, #0x0
- ldr r1, [r1, #0x0]
- bl GetSubstruct
- add r6, r0, #0x0
- ldr r0, [sp, #0x0]
- mov r2, #0x3
- add r1, r0, #0x0
- ldr r1, [r1, #0x0]
- bl GetSubstruct
- add r1, r0, #0x0
- ldr r0, [sp, #0x4]
- cmp r0, #0xb2
- bls _02067A20
- b _02067FF6
-_02067A20:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02067A2C: ; jump table (using 16-bit offset)
- .short _02067B92 - _02067A2C - 2; case 0
- .short _02067B9C - _02067A2C - 2; case 1
- .short _02067BBA - _02067A2C - 2; case 2
- .short _02067BD6 - _02067A2C - 2; case 3
- .short _02067BEE - _02067A2C - 2; case 4
- .short _02067BF8 - _02067A2C - 2; case 5
- .short _02067C00 - _02067A2C - 2; case 6
- .short _02067C08 - _02067A2C - 2; case 7
- .short _02067C10 - _02067A2C - 2; case 8
- .short _02067C18 - _02067A2C - 2; case 9
- .short _02067C20 - _02067A2C - 2; case 10
- .short _02067C28 - _02067A2C - 2; case 11
- .short _02067C30 - _02067A2C - 2; case 12
- .short _02067C38 - _02067A2C - 2; case 13
- .short _02067C40 - _02067A2C - 2; case 14
- .short _02067C48 - _02067A2C - 2; case 15
- .short _02067C50 - _02067A2C - 2; case 16
- .short _02067C58 - _02067A2C - 2; case 17
- .short _02067C60 - _02067A2C - 2; case 18
- .short _02067C68 - _02067A2C - 2; case 19
- .short _02067C70 - _02067A2C - 2; case 20
- .short _02067C78 - _02067A2C - 2; case 21
- .short _02067C80 - _02067A2C - 2; case 22
- .short _02067C88 - _02067A2C - 2; case 23
- .short _02067C90 - _02067A2C - 2; case 24
- .short _02067C98 - _02067A2C - 2; case 25
- .short _02067C98 - _02067A2C - 2; case 26
- .short _02067C98 - _02067A2C - 2; case 27
- .short _02067C98 - _02067A2C - 2; case 28
- .short _02067C98 - _02067A2C - 2; case 29
- .short _02067C98 - _02067A2C - 2; case 30
- .short _02067C98 - _02067A2C - 2; case 31
- .short _02067C98 - _02067A2C - 2; case 32
- .short _02067C98 - _02067A2C - 2; case 33
- .short _02067C98 - _02067A2C - 2; case 34
- .short _02067C98 - _02067A2C - 2; case 35
- .short _02067C98 - _02067A2C - 2; case 36
- .short _02067C98 - _02067A2C - 2; case 37
- .short _02067C98 - _02067A2C - 2; case 38
- .short _02067C98 - _02067A2C - 2; case 39
- .short _02067C98 - _02067A2C - 2; case 40
- .short _02067C98 - _02067A2C - 2; case 41
- .short _02067C98 - _02067A2C - 2; case 42
- .short _02067C98 - _02067A2C - 2; case 43
- .short _02067C98 - _02067A2C - 2; case 44
- .short _02067C98 - _02067A2C - 2; case 45
- .short _02067C98 - _02067A2C - 2; case 46
- .short _02067C98 - _02067A2C - 2; case 47
- .short _02067C98 - _02067A2C - 2; case 48
- .short _02067C98 - _02067A2C - 2; case 49
- .short _02067C98 - _02067A2C - 2; case 50
- .short _02067C98 - _02067A2C - 2; case 51
- .short _02067C98 - _02067A2C - 2; case 52
- .short _02067C98 - _02067A2C - 2; case 53
- .short _02067CC6 - _02067A2C - 2; case 54
- .short _02067CC6 - _02067A2C - 2; case 55
- .short _02067CC6 - _02067A2C - 2; case 56
- .short _02067CC6 - _02067A2C - 2; case 57
- .short _02067CD6 - _02067A2C - 2; case 58
- .short _02067CD6 - _02067A2C - 2; case 59
- .short _02067CD6 - _02067A2C - 2; case 60
- .short _02067CD6 - _02067A2C - 2; case 61
- .short _02067CE6 - _02067A2C - 2; case 62
- .short _02067CE6 - _02067A2C - 2; case 63
- .short _02067CE6 - _02067A2C - 2; case 64
- .short _02067CE6 - _02067A2C - 2; case 65
- .short _02067FF6 - _02067A2C - 2; case 66
- .short _02067FF6 - _02067A2C - 2; case 67
- .short _02067FF6 - _02067A2C - 2; case 68
- .short _02067FF6 - _02067A2C - 2; case 69
- .short _02067CF6 - _02067A2C - 2; case 70
- .short _02067D0A - _02067A2C - 2; case 71
- .short _02067D1E - _02067A2C - 2; case 72
- .short _02067D32 - _02067A2C - 2; case 73
- .short _02067D46 - _02067A2C - 2; case 74
- .short _02067D5A - _02067A2C - 2; case 75
- .short _02067D6E - _02067A2C - 2; case 76
- .short _02067D82 - _02067A2C - 2; case 77
- .short _02067D94 - _02067A2C - 2; case 78
- .short _02067D94 - _02067A2C - 2; case 79
- .short _02067D94 - _02067A2C - 2; case 80
- .short _02067D94 - _02067A2C - 2; case 81
- .short _02067D94 - _02067A2C - 2; case 82
- .short _02067D94 - _02067A2C - 2; case 83
- .short _02067D94 - _02067A2C - 2; case 84
- .short _02067D94 - _02067A2C - 2; case 85
- .short _02067D94 - _02067A2C - 2; case 86
- .short _02067D94 - _02067A2C - 2; case 87
- .short _02067D94 - _02067A2C - 2; case 88
- .short _02067D94 - _02067A2C - 2; case 89
- .short _02067D94 - _02067A2C - 2; case 90
- .short _02067D94 - _02067A2C - 2; case 91
- .short _02067D94 - _02067A2C - 2; case 92
- .short _02067D94 - _02067A2C - 2; case 93
- .short _02067D94 - _02067A2C - 2; case 94
- .short _02067D94 - _02067A2C - 2; case 95
- .short _02067D94 - _02067A2C - 2; case 96
- .short _02067D94 - _02067A2C - 2; case 97
- .short _02067D94 - _02067A2C - 2; case 98
- .short _02067D94 - _02067A2C - 2; case 99
- .short _02067D94 - _02067A2C - 2; case 100
- .short _02067D94 - _02067A2C - 2; case 101
- .short _02067D94 - _02067A2C - 2; case 102
- .short _02067D94 - _02067A2C - 2; case 103
- .short _02067D94 - _02067A2C - 2; case 104
- .short _02067D94 - _02067A2C - 2; case 105
- .short _02067D94 - _02067A2C - 2; case 106
- .short _02067D94 - _02067A2C - 2; case 107
- .short _02067D94 - _02067A2C - 2; case 108
- .short _02067D94 - _02067A2C - 2; case 109
- .short _02067DC2 - _02067A2C - 2; case 110
- .short _02067DD6 - _02067A2C - 2; case 111
- .short _02067DEA - _02067A2C - 2; case 112
- .short _02067DFE - _02067A2C - 2; case 113
- .short _02067E06 - _02067A2C - 2; case 114
- .short _02067FF6 - _02067A2C - 2; case 115
- .short _02067E2C - _02067A2C - 2; case 116
- .short _02067E0E - _02067A2C - 2; case 117
- .short _02067E6C - _02067A2C - 2; case 118
- .short _02067E40 - _02067A2C - 2; case 119
- .short _02067E7A - _02067A2C - 2; case 120
- .short _02067E82 - _02067A2C - 2; case 121
- .short _02067E8A - _02067A2C - 2; case 122
- .short _02067E8A - _02067A2C - 2; case 123
- .short _02067E8A - _02067A2C - 2; case 124
- .short _02067E8A - _02067A2C - 2; case 125
- .short _02067E8A - _02067A2C - 2; case 126
- .short _02067E8A - _02067A2C - 2; case 127
- .short _02067E8A - _02067A2C - 2; case 128
- .short _02067E8A - _02067A2C - 2; case 129
- .short _02067E8A - _02067A2C - 2; case 130
- .short _02067E8A - _02067A2C - 2; case 131
- .short _02067E8A - _02067A2C - 2; case 132
- .short _02067E8A - _02067A2C - 2; case 133
- .short _02067E8A - _02067A2C - 2; case 134
- .short _02067E8A - _02067A2C - 2; case 135
- .short _02067E8A - _02067A2C - 2; case 136
- .short _02067E8A - _02067A2C - 2; case 137
- .short _02067E8A - _02067A2C - 2; case 138
- .short _02067E8A - _02067A2C - 2; case 139
- .short _02067E8A - _02067A2C - 2; case 140
- .short _02067E8A - _02067A2C - 2; case 141
- .short _02067E8A - _02067A2C - 2; case 142
- .short _02067ECE - _02067A2C - 2; case 143
- .short _02067EE2 - _02067A2C - 2; case 144
- .short _02067EEE - _02067A2C - 2; case 145
- .short _02067EF6 - _02067A2C - 2; case 146
- .short _02067EFE - _02067A2C - 2; case 147
- .short _02067F06 - _02067A2C - 2; case 148
- .short _02067F0E - _02067A2C - 2; case 149
- .short _02067F16 - _02067A2C - 2; case 150
- .short _02067F1E - _02067A2C - 2; case 151
- .short _02067F26 - _02067A2C - 2; case 152
- .short _02067F2E - _02067A2C - 2; case 153
- .short _02067F36 - _02067A2C - 2; case 154
- .short _02067F3E - _02067A2C - 2; case 155
- .short _02067F52 - _02067A2C - 2; case 156
- .short _02067F66 - _02067A2C - 2; case 157
- .short _02067F6E - _02067A2C - 2; case 158
- .short _02067FF6 - _02067A2C - 2; case 159
- .short _02067FF6 - _02067A2C - 2; case 160
- .short _02067FF6 - _02067A2C - 2; case 161
- .short _02067FF6 - _02067A2C - 2; case 162
- .short _02067FF6 - _02067A2C - 2; case 163
- .short _02067FF6 - _02067A2C - 2; case 164
- .short _02067FF6 - _02067A2C - 2; case 165
- .short _02067FF6 - _02067A2C - 2; case 166
- .short _02067FF6 - _02067A2C - 2; case 167
- .short _02067FF6 - _02067A2C - 2; case 168
- .short _02067FF6 - _02067A2C - 2; case 169
- .short _02067FF6 - _02067A2C - 2; case 170
- .short _02067FF6 - _02067A2C - 2; case 171
- .short _02067FF6 - _02067A2C - 2; case 172
- .short _02067FF6 - _02067A2C - 2; case 173
- .short _02067F76 - _02067A2C - 2; case 174
- .short _02067FF6 - _02067A2C - 2; case 175
- .short _02067FF6 - _02067A2C - 2; case 176
- .short _02067FF6 - _02067A2C - 2; case 177
- .short _02067FDE - _02067A2C - 2; case 178
-_02067B92:
- ldr r0, [sp, #0x0]
- ldr r1, [r4, #0x0]
- add sp, #0x4c
- str r1, [r0, #0x0]
- pop {r4-r7, pc}
-_02067B9C:
- bl ErrorHandling
- ldr r0, [sp, #0x0]
- ldrb r1, [r4, #0x0]
- ldrh r2, [r0, #0x4]
- mov r0, #0x1
- bic r2, r0
- mov r0, #0x1
- and r0, r1
- add r1, r2, #0x0
- orr r1, r0
- ldr r0, [sp, #0x0]
- add sp, #0x4c
- strh r1, [r0, #0x4]
- pop {r4-r7, pc}
-_02067BBA:
- bl ErrorHandling
- ldr r0, [sp, #0x0]
- ldrh r1, [r0, #0x4]
- mov r0, #0x2
- bic r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1e
- orr r1, r0
- ldr r0, [sp, #0x0]
- add sp, #0x4c
- strh r1, [r0, #0x4]
- pop {r4-r7, pc}
-_02067BD6:
- ldr r0, [sp, #0x0]
- ldrh r1, [r0, #0x4]
- mov r0, #0x4
- bic r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1d
- orr r1, r0
- ldr r0, [sp, #0x0]
- add sp, #0x4c
- strh r1, [r0, #0x4]
- pop {r4-r7, pc}
-_02067BEE:
- ldrh r1, [r4, #0x0]
- ldr r0, [sp, #0x0]
- add sp, #0x4c
- strh r1, [r0, #0x6]
- pop {r4-r7, pc}
-_02067BF8:
- ldrh r0, [r4, #0x0]
- add sp, #0x4c
- strh r0, [r7, #0x0]
- pop {r4-r7, pc}
-_02067C00:
- ldrh r0, [r4, #0x0]
- add sp, #0x4c
- strh r0, [r7, #0x2]
- pop {r4-r7, pc}
-_02067C08:
- ldr r0, [r4, #0x0]
- add sp, #0x4c
- str r0, [r7, #0x4]
- pop {r4-r7, pc}
-_02067C10:
- ldr r0, [r4, #0x0]
- add sp, #0x4c
- str r0, [r7, #0x8]
- pop {r4-r7, pc}
-_02067C18:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0xc]
- pop {r4-r7, pc}
-_02067C20:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0xd]
- pop {r4-r7, pc}
-_02067C28:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0xe]
- pop {r4-r7, pc}
-_02067C30:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0xf]
- pop {r4-r7, pc}
-_02067C38:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x10]
- pop {r4-r7, pc}
-_02067C40:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x11]
- pop {r4-r7, pc}
-_02067C48:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x12]
- pop {r4-r7, pc}
-_02067C50:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x13]
- pop {r4-r7, pc}
-_02067C58:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x14]
- pop {r4-r7, pc}
-_02067C60:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x15]
- pop {r4-r7, pc}
-_02067C68:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x16]
- pop {r4-r7, pc}
-_02067C70:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x17]
- pop {r4-r7, pc}
-_02067C78:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x18]
- pop {r4-r7, pc}
-_02067C80:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x19]
- pop {r4-r7, pc}
-_02067C88:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x1a]
- pop {r4-r7, pc}
-_02067C90:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x1b]
- pop {r4-r7, pc}
-_02067C98:
- ldrb r4, [r4, #0x0]
- ldr r2, [sp, #0x4]
- mov r1, #0x0
- sub r2, #0x19
- add r0, r4, #0x0
- str r2, [sp, #0x4]
- bl _ll_shl
- cmp r4, #0x0
- beq _02067CB6
- ldr r1, [r7, #0x1c]
- add sp, #0x4c
- orr r0, r1
- str r0, [r7, #0x1c]
- pop {r4-r7, pc}
-_02067CB6:
- mov r1, #0x0
- sub r1, r1, #0x1
- ldr r2, [r7, #0x1c]
- eor r0, r1
- and r0, r2
- add sp, #0x4c
- str r0, [r7, #0x1c]
- pop {r4-r7, pc}
-_02067CC6:
- ldr r0, [sp, #0x4]
- ldrh r1, [r4, #0x0]
- sub r0, #0x36
- str r0, [sp, #0x4]
- lsl r0, r0, #0x1
- add sp, #0x4c
- strh r1, [r5, r0]
- pop {r4-r7, pc}
-_02067CD6:
- ldr r0, [sp, #0x4]
- ldrb r1, [r4, #0x0]
- sub r0, #0x3a
- str r0, [sp, #0x4]
- add r0, r5, r0
- strb r1, [r0, #0x8]
- add sp, #0x4c
- pop {r4-r7, pc}
-_02067CE6:
- ldr r0, [sp, #0x4]
- ldrb r1, [r4, #0x0]
- sub r0, #0x3e
- str r0, [sp, #0x4]
- add r0, r5, r0
- strb r1, [r0, #0xc]
- add sp, #0x4c
- pop {r4-r7, pc}
-_02067CF6:
- ldr r2, [r5, #0x10]
- mov r0, #0x1f
- bic r2, r0
- ldrb r1, [r4, #0x0]
- mov r0, #0x1f
- add sp, #0x4c
- and r0, r1
- orr r0, r2
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D0A:
- ldr r1, [r5, #0x10]
- ldr r0, _02067FFC ; =0xFFFFFC1F
- add sp, #0x4c
- and r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x16
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D1E:
- ldr r1, [r5, #0x10]
- ldr r0, _02068000 ; =0xFFFF83FF
- add sp, #0x4c
- and r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x11
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D32:
- ldr r1, [r5, #0x10]
- ldr r0, _02068004 ; =0xFFF07FFF
- add sp, #0x4c
- and r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0xc
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D46:
- ldr r1, [r5, #0x10]
- ldr r0, _02068008 ; =0xFE0FFFFF
- add sp, #0x4c
- and r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x7
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D5A:
- ldr r1, [r5, #0x10]
- ldr r0, _0206800C ; =0xC1FFFFFF
- add sp, #0x4c
- and r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x2
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D6E:
- ldr r1, [r5, #0x10]
- ldr r0, _02068010 ; =0xBFFFFFFF
- add sp, #0x4c
- and r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D82:
- ldr r1, [r5, #0x10]
- ldr r0, _02068014 ; =0x7FFFFFFF
- add sp, #0x4c
- and r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1f
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D94:
- ldrb r4, [r4, #0x0]
- ldr r2, [sp, #0x4]
- mov r1, #0x0
- sub r2, #0x4e
- add r0, r4, #0x0
- str r2, [sp, #0x4]
- bl _ll_shl
- cmp r4, #0x0
- beq _02067DB2
- ldr r1, [r5, #0x14]
- add sp, #0x4c
- orr r0, r1
- str r0, [r5, #0x14]
- pop {r4-r7, pc}
-_02067DB2:
- mov r1, #0x0
- sub r1, r1, #0x1
- ldr r2, [r5, #0x14]
- eor r0, r1
- and r0, r2
- add sp, #0x4c
- str r0, [r5, #0x14]
- pop {r4-r7, pc}
-_02067DC2:
- ldrb r2, [r5, #0x18]
- ldrb r1, [r4, #0x0]
- mov r0, #0x1
- bic r2, r0
- mov r0, #0x1
- and r0, r1
- orr r0, r2
- add sp, #0x4c
- strb r0, [r5, #0x18]
- pop {r4-r7, pc}
-_02067DD6:
- ldrb r1, [r5, #0x18]
- mov r0, #0x6
- add sp, #0x4c
- bic r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1d
- orr r0, r1
- strb r0, [r5, #0x18]
- pop {r4-r7, pc}
-_02067DEA:
- ldrb r1, [r5, #0x18]
- mov r0, #0xf8
- add sp, #0x4c
- bic r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x18
- orr r0, r1
- strb r0, [r5, #0x18]
- pop {r4-r7, pc}
-_02067DFE:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r5, #0x19]
- pop {r4-r7, pc}
-_02067E06:
- ldrh r0, [r4, #0x0]
- add sp, #0x4c
- strh r0, [r5, #0x1a]
- pop {r4-r7, pc}
-_02067E0E:
- ldrh r0, [r7, #0x0]
- mov r1, #0x0
- add r2, sp, #0x34
- bl GetSpeciesName
- add r0, sp, #0x34
- add r1, r4, #0x0
- bl StringNotEqual
- ldr r2, [r5, #0x10]
- ldr r1, _02068014 ; =0x7FFFFFFF
- lsl r0, r0, #0x1f
- and r1, r2
- orr r0, r1
- str r0, [r5, #0x10]
-_02067E2C:
- mov r1, #0x0
-_02067E2E:
- ldrh r0, [r4, #0x0]
- add r1, r1, #0x1
- add r4, r4, #0x2
- strh r0, [r6, #0x0]
- add r6, r6, #0x2
- cmp r1, #0xb
- blo _02067E2E
- add sp, #0x4c
- pop {r4-r7, pc}
-_02067E40:
- ldrh r0, [r7, #0x0]
- add r2, sp, #0x1c
- mov r1, #0x0
- add r2, #0x2
- bl GetSpeciesName
- add r0, r4, #0x0
- add r1, sp, #0x8
- mov r2, #0xb
- bl FUN_02021EF0
- add r0, sp, #0x1c
- add r0, #0x2
- add r1, sp, #0x8
- bl StringNotEqual
- ldr r2, [r5, #0x10]
- ldr r1, _02068014 ; =0x7FFFFFFF
- lsl r0, r0, #0x1f
- and r1, r2
- orr r0, r1
- str r0, [r5, #0x10]
-_02067E6C:
- add r0, r4, #0x0
- add r1, r6, #0x0
- mov r2, #0xb
- bl FUN_02021EF0
- add sp, #0x4c
- pop {r4-r7, pc}
-_02067E7A:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r6, #0x16]
- pop {r4-r7, pc}
-_02067E82:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r6, #0x17]
- pop {r4-r7, pc}
-_02067E8A:
- ldrb r4, [r4, #0x0]
- ldr r2, [sp, #0x4]
- mov r1, #0x0
- sub r2, #0x7a
- add r0, r4, #0x0
- str r2, [sp, #0x4]
- bl _ll_shl
- cmp r4, #0x0
- beq _02067EB2
- add r4, r6, #0x0
- add r4, #0x18
- ldr r3, [r6, #0x18]
- ldr r2, [r4, #0x4]
- orr r0, r3
- orr r1, r2
- str r0, [r6, #0x18]
- add sp, #0x4c
- str r1, [r4, #0x4]
- pop {r4-r7, pc}
-_02067EB2:
- add r4, r6, #0x0
- mov r5, #0x0
- mvn r5, r5
- add r4, #0x18
- ldr r3, [r6, #0x18]
- eor r0, r5
- ldr r2, [r4, #0x4]
- eor r1, r5
- and r0, r3
- and r1, r2
- str r0, [r6, #0x18]
- add sp, #0x4c
- str r1, [r4, #0x4]
- pop {r4-r7, pc}
-_02067ECE:
- mov r2, #0x0
-_02067ED0:
- ldrh r0, [r4, #0x0]
- add r2, r2, #0x1
- add r4, r4, #0x2
- strh r0, [r1, #0x0]
- add r1, r1, #0x2
- cmp r2, #0x8
- blo _02067ED0
- add sp, #0x4c
- pop {r4-r7, pc}
-_02067EE2:
- add r0, r4, #0x0
- mov r2, #0x8
- bl FUN_02021EF0
- add sp, #0x4c
- pop {r4-r7, pc}
-_02067EEE:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x10]
- pop {r4-r7, pc}
-_02067EF6:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x11]
- pop {r4-r7, pc}
-_02067EFE:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x12]
- pop {r4-r7, pc}
-_02067F06:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x13]
- pop {r4-r7, pc}
-_02067F0E:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x14]
- pop {r4-r7, pc}
-_02067F16:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x15]
- pop {r4-r7, pc}
-_02067F1E:
- ldrh r0, [r4, #0x0]
- add sp, #0x4c
- strh r0, [r1, #0x16]
- pop {r4-r7, pc}
-_02067F26:
- ldrh r0, [r4, #0x0]
- add sp, #0x4c
- strh r0, [r1, #0x18]
- pop {r4-r7, pc}
-_02067F2E:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x1a]
- pop {r4-r7, pc}
-_02067F36:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x1b]
- pop {r4-r7, pc}
-_02067F3E:
- ldrb r3, [r1, #0x1c]
- ldrb r2, [r4, #0x0]
- mov r0, #0x7f
- bic r3, r0
- mov r0, #0x7f
- and r0, r2
- orr r0, r3
- strb r0, [r1, #0x1c]
- add sp, #0x4c
- pop {r4-r7, pc}
-_02067F52:
- ldrb r2, [r1, #0x1c]
- mov r0, #0x80
- add sp, #0x4c
- bic r2, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x18
- orr r0, r2
- strb r0, [r1, #0x1c]
- pop {r4-r7, pc}
-_02067F66:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x1d]
- pop {r4-r7, pc}
-_02067F6E:
- ldrh r0, [r4, #0x0]
- add sp, #0x4c
- strh r0, [r1, #0x1e]
- pop {r4-r7, pc}
-_02067F76:
- ldr r2, [r5, #0x10]
- mov r0, #0x1f
- bic r2, r0
- ldr r1, [r4, #0x0]
- mov r0, #0x1f
- and r1, r0
- and r0, r1
- add r1, r2, #0x0
- orr r1, r0
- ldr r0, _02067FFC ; =0xFFFFFC1F
- str r1, [r5, #0x10]
- and r1, r0
- ldr r0, [r4, #0x0]
- add sp, #0x4c
- lsr r0, r0, #0x5
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x16
- orr r1, r0
- ldr r0, _02068000 ; =0xFFFF83FF
- str r1, [r5, #0x10]
- and r1, r0
- ldr r0, [r4, #0x0]
- lsr r0, r0, #0xa
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x11
- orr r1, r0
- ldr r0, _02068004 ; =0xFFF07FFF
- str r1, [r5, #0x10]
- and r1, r0
- ldr r0, [r4, #0x0]
- lsr r0, r0, #0xf
- lsl r0, r0, #0x1b
- lsr r0, r0, #0xc
- orr r1, r0
- ldr r0, _02068008 ; =0xFE0FFFFF
- str r1, [r5, #0x10]
- and r1, r0
- ldr r0, [r4, #0x0]
- lsr r0, r0, #0x14
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x7
- orr r1, r0
- ldr r0, _0206800C ; =0xC1FFFFFF
- str r1, [r5, #0x10]
- and r1, r0
- ldr r0, [r4, #0x0]
- lsr r0, r0, #0x19
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x2
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067FDE:
- ldrh r0, [r7, #0x0]
- mov r1, #0x0
- bl FUN_0200AA50
- add r4, r0, #0x0
- add r1, r6, #0x0
- mov r2, #0xb
- bl FUN_02021EF0
- add r0, r4, #0x0
- bl FUN_02021A20
-_02067FF6:
- add sp, #0x4c
- pop {r4-r7, pc}
- nop
-_02067FFC: .word 0xFFFFFC1F
-_02068000: .word 0xFFFF83FF
-_02068004: .word 0xFFF07FFF
-_02068008: .word 0xFE0FFFFF
-_0206800C: .word 0xC1FFFFFF
-_02068010: .word 0xBFFFFFFF
-_02068014: .word 0x7FFFFFFF
-
thumb_func_start AddMonPartyStatEncrypted
AddMonPartyStatEncrypted: ; 0x02068018
push {r4-r6, lr}
@@ -4317,17 +3242,17 @@ _0206978A:
ldr r2, [sp, #0x8]
add r0, r5, #0x0
add r1, #0x36
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r1, r4, #0x0
add r0, r5, #0x0
add r1, #0x3a
add r2, r7, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r1, r4, #0x0
add r0, r5, #0x0
add r1, #0x3e
add r2, r6, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
ldr r0, [sp, #0x8]
add r4, r4, #0x1
add r0, r0, #0x2
@@ -4359,7 +3284,7 @@ FUN_020697D4: ; 0x020697D4
add r1, #0x36
add r2, sp, #0x14
add r5, r0, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r1, r4, #0x0
add r0, r5, #0x0
add r1, #0x3e
@@ -4376,7 +3301,7 @@ FUN_020697D4: ; 0x020697D4
add r0, r5, #0x0
add r1, r4, #0x0
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
pop {r3-r5}
pop {r3}
add sp, #0x10
@@ -4540,35 +3465,35 @@ FUN_020698E8: ; 0x020698E8
add r0, r5, #0x0
add r1, #0x36
add r2, #0x2
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r1, r4, #0x0
add r2, sp, #0x0
add r0, r5, #0x0
add r1, #0x3a
add r2, #0x3
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r4, #0x3e
add r2, sp, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
add r2, #0x1
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r1, r6, #0x0
add r0, r5, #0x0
add r1, #0x36
add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r1, r6, #0x0
add r2, sp, #0x0
add r0, r5, #0x0
add r1, #0x3a
add r2, #0x2
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r6, #0x3e
add r0, r5, #0x0
add r1, r6, #0x0
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add sp, #0x8
pop {r4-r6, pc}
.balign 4
@@ -5304,7 +4229,7 @@ FUN_02069ECC: ; 0x02069ECC
add r0, r5, #0x0
mov r1, #0x70
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
_02069F1C:
add sp, #0x4
pop {r3-r6, pc}
@@ -5497,15 +4422,15 @@ FUN_0206A054: ; 0x0206A054
ldr r2, _0206A090 ; =gGameVersion
add r0, r4, #0x0
mov r1, #0x79
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x9a
add r2, sp, #0x18
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x9d
add r2, sp, #0x20
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add sp, #0x4
pop {r3-r4}
pop {r3}
@@ -5712,19 +4637,19 @@ FUN_0206A1CC: ; 0x0206A1CC
add r0, r5, #0x0
mov r1, #0xa
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
b _0206A230
_0206A21A:
add r0, r5, #0x0
mov r1, #0xa
add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
b _0206A230
_0206A226:
add r0, r5, #0x0
mov r1, #0xa
add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
_0206A230:
add r0, r5, #0x0
add r1, r7, #0x0
@@ -7034,7 +5959,7 @@ _0206AAC6:
add r0, r5, #0x0
add r1, #0x3a
add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
_0206AAF0:
add r4, r4, #0x1
cmp r4, #0x4
diff --git a/arm9/asm/unk_0206B16C.s b/arm9/asm/unk_0206B16C.s
index 3d75fe2c..f454c441 100644
--- a/arm9/asm/unk_0206B16C.s
+++ b/arm9/asm/unk_0206B16C.s
@@ -635,7 +635,7 @@ _0206B5C4:
add r0, r1, r0
ldr r2, [sp, #0x18]
add r1, r7, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
bl FUN_02022830
pop {r3-r7, pc}
.balign 4
diff --git a/arm9/asm/unk_0207FD00.s b/arm9/asm/unk_0207FD00.s
index 8103e3c4..1f17ee0a 100644
--- a/arm9/asm/unk_0207FD00.s
+++ b/arm9/asm/unk_0207FD00.s
@@ -1662,7 +1662,7 @@ _02080A66:
add r0, r4, #0x0
mov r1, #0x97
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x94
mov r2, #0x0
@@ -1671,7 +1671,7 @@ _02080A66:
add r0, r4, #0x0
mov r1, #0x91
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x95
mov r2, #0x0
@@ -1680,7 +1680,7 @@ _02080A66:
add r0, r4, #0x0
mov r1, #0x92
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x96
mov r2, #0x0
@@ -1689,7 +1689,7 @@ _02080A66:
add r0, r4, #0x0
mov r1, #0x93
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
_02080ACC:
add r0, r4, #0x0
add r1, r5, #0x0
@@ -1723,15 +1723,15 @@ FUN_02080AE4: ; 0x02080AE4
add r0, r5, #0x0
mov r1, #0x7
add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x9c
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x90
add r2, r4, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
bl FUN_02021A20
add sp, #0x8
@@ -1751,19 +1751,19 @@ FUN_02080B30: ; 0x02080B30
bne _02080B76
add r0, r5, #0x0
mov r1, #0x97
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x91
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x92
add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x93
add r2, sp, #0x8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add sp, #0x10
pop {r3-r5}
pop {r3}
@@ -1772,19 +1772,19 @@ FUN_02080B30: ; 0x02080B30
_02080B76:
add r0, r5, #0x0
mov r1, #0x98
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x94
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x95
add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x96
add r2, sp, #0x8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add sp, #0x10
pop {r3-r5}
pop {r3}
@@ -1803,36 +1803,36 @@ FUN_02080BA8: ; 0x02080BA8
add r2, sp, #0x0
bne _02080BE0
mov r1, #0x97
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x91
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x92
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x93
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add sp, #0x4
pop {r3-r4, pc}
_02080BE0:
mov r1, #0x98
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x94
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x95
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x96
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add sp, #0x4
pop {r3-r4, pc}
@@ -1848,7 +1848,7 @@ FUN_02080C08: ; 0x02080C08
add r0, r4, #0x0
mov r1, #0x9b
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add sp, #0x4
pop {r3-r4, pc}
.balign 4
@@ -1860,5 +1860,5 @@ FUN_02080C28: ; 0x02080C28
str r1, [sp, #0x0]
mov r1, #0x6e
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
pop {r3, pc}
diff --git a/arm9/global.inc b/arm9/global.inc
index c35613ab..f7346352 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -4722,7 +4722,7 @@
.extern GetMonData
.extern GetBoxMonData
.extern SetMonData
-.extern SetBoxMonDataEncrypted
+.extern SetBoxMonData
.extern AddMonPartyStatEncrypted
.extern AllocAndLoadMonPersonal
.extern GetPersonalAttr
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s
index 442a394e..cb8c25bd 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -43401,7 +43401,7 @@ MOD05_021EC744: ; 0x021EC744
add r0, r4, #0
mov r1, #8
add r2, sp, #0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0
bl CalcBoxMonLevelEncrypted
add r4, r0, #0
diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s
index 7b09367a..e8b7dfbc 100644
--- a/arm9/modules/14/asm/module_14.s
+++ b/arm9/modules/14/asm/module_14.s
@@ -9557,7 +9557,7 @@ MOD14_021DC1AC: ; 0x021DC1AC
ldr r0, [r4, #0x4c]
mov r1, #0xb
add r2, sp, #0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0
bl MOD14_021DC3CC
cmp r0, #0
@@ -9623,7 +9623,7 @@ _021DC24A:
ldr r0, [r4]
mov r1, #6
add r2, sp, #0x1c
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
_021DC254:
ldr r0, [r4]
mov r1, #5
diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s
index 21f1b081..1dbf90c3 100644
--- a/arm9/modules/83/asm/module_83.s
+++ b/arm9/modules/83/asm/module_83.s
@@ -21876,7 +21876,7 @@ MOD83_02237F6C: ; 0x02237F6C
add r0, r4, #0
mov r1, #0
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0xb
mov r2, #0
@@ -21887,7 +21887,7 @@ MOD83_02237F6C: ; 0x02237F6C
add r0, r4, #0
mov r1, #5
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0xc
mov r2, #0
@@ -21903,7 +21903,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #6
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #1
mov r2, #0
@@ -21912,7 +21912,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #7
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x19
mov r2, #0
@@ -21921,13 +21921,13 @@ _02237FCE:
add r0, r4, #0
mov r1, #8
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
mov r0, #0x46
str r0, [sp, #8]
add r0, r4, #0
mov r1, #9
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
add r1, r4, #0
bl MOD83_02237F04
@@ -21935,7 +21935,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0xa
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #8
mov r2, #0
@@ -21944,7 +21944,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0xb
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #3
mov r2, #0
@@ -21953,7 +21953,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0xc
add r2, sp, #4
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x1a
mov r2, #0
@@ -21962,7 +21962,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0xd
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x1b
mov r2, #0
@@ -21971,7 +21971,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0xe
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x1c
mov r2, #0
@@ -21980,7 +21980,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0xf
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x1d
mov r2, #0
@@ -21989,7 +21989,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x10
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x1e
mov r2, #0
@@ -21998,7 +21998,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x11
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x1f
mov r2, #0
@@ -22007,7 +22007,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x12
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x16
mov r2, #0
@@ -22016,7 +22016,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x13
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x17
mov r2, #0
@@ -22025,7 +22025,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x14
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x18
mov r2, #0
@@ -22034,7 +22034,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x15
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x21
mov r2, #0
@@ -22043,7 +22043,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x16
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x2f
mov r2, #0
@@ -22052,7 +22052,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x17
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x30
mov r2, #0
@@ -22061,7 +22061,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x18
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
mov r5, #0
add r7, r5, #0
_0223815E:
@@ -22075,7 +22075,7 @@ _0223815E:
add r0, r4, #0
add r1, #0x36
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x15
mov r2, #0
@@ -22090,7 +22090,7 @@ _0223815E:
add r0, r4, #0
add r1, #0x3e
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r1, r5, #0
add r0, r4, #0
add r1, #0x42
@@ -22101,7 +22101,7 @@ _0223815E:
add r0, r4, #0
add r1, #0x3a
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r5, r5, #1
add r7, r7, #2
cmp r5, #4
@@ -22114,7 +22114,7 @@ _0223815E:
add r0, r4, #0
mov r1, #0x46
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x28
mov r2, #0
@@ -22123,7 +22123,7 @@ _0223815E:
add r0, r4, #0
mov r1, #0x47
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x29
mov r2, #0
@@ -22132,7 +22132,7 @@ _0223815E:
add r0, r4, #0
mov r1, #0x48
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x2a
mov r2, #0
@@ -22141,7 +22141,7 @@ _0223815E:
add r0, r4, #0
mov r1, #0x49
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x2b
mov r2, #0
@@ -22150,7 +22150,7 @@ _0223815E:
add r0, r4, #0
mov r1, #0x4a
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x2c
mov r2, #0
@@ -22159,7 +22159,7 @@ _0223815E:
add r0, r4, #0
mov r1, #0x4b
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x2d
mov r2, #0
@@ -22168,7 +22168,7 @@ _0223815E:
add r0, r4, #0
mov r1, #0x4c
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x32
mov r2, #0
@@ -22186,7 +22186,7 @@ _0223826C:
add r0, r4, #0
add r1, #0x4e
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r5, r5, #1
cmp r5, r7
blt _0223826C
@@ -22208,7 +22208,7 @@ _02238298:
add r0, r4, #0
add r1, #0x52
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r5, r5, #1
cmp r5, r7
blt _02238298
@@ -22230,7 +22230,7 @@ _022382C4:
add r0, r4, #0
add r1, #0x56
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r5, r5, #1
cmp r5, r7
blt _022382C4
@@ -22252,7 +22252,7 @@ _022382F0:
add r0, r4, #0
add r1, #0x5a
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r5, r5, #1
cmp r5, r7
blt _022382F0
@@ -22274,7 +22274,7 @@ _0223831C:
add r0, r4, #0
add r1, #0x5e
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r5, r5, #1
cmp r5, r7
blt _0223831C
@@ -22287,7 +22287,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x62
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x44
mov r2, #0
@@ -22296,7 +22296,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x63
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x45
mov r2, #0
@@ -22305,7 +22305,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x64
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x46
mov r2, #0
@@ -22314,7 +22314,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x65
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x47
mov r2, #0
@@ -22323,7 +22323,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x66
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x48
mov r2, #0
@@ -22332,7 +22332,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x67
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x49
mov r2, #0
@@ -22341,7 +22341,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x68
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x4a
mov r2, #0
@@ -22350,7 +22350,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x69
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x4b
mov r2, #0
@@ -22359,7 +22359,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x6a
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
@@ -22368,7 +22368,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x6b
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x4d
mov r2, #0
@@ -22377,7 +22377,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x6c
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x4e
mov r2, #0
@@ -22386,7 +22386,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x6d
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x50
mov r2, #0
@@ -22395,14 +22395,14 @@ _02238332:
add r0, r4, #0
mov r1, #0x6e
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0
bl GetBoxMonGenderEncrypted
str r0, [sp, #8]
add r0, r4, #0
mov r1, #0x6f
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0
mov r1, #5
mov r2, #0
@@ -22436,7 +22436,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x70
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
_022384AE:
add r0, r4, #0
mov r1, #5
@@ -22481,7 +22481,7 @@ _022384F4:
add r0, r4, #0
mov r1, #0x70
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
_022384FE:
add r0, r6, #0
mov r1, #2
@@ -22495,7 +22495,7 @@ _022384FE:
add r0, r4, #0
mov r1, #0x75
add r2, sp, #0xc
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #3
mov r2, #0
@@ -22509,7 +22509,7 @@ _022384FE:
add r0, r4, #0
mov r1, #0x4d
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
_0223853E:
add r0, r6, #0
mov r1, #0x25
@@ -22519,7 +22519,7 @@ _0223853E:
add r0, r4, #0
mov r1, #0x79
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #7
add r2, sp, #0x24
@@ -22532,7 +22532,7 @@ _0223853E:
add r0, r4, #0
mov r1, #0x8f
add r2, sp, #0xc
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x23
mov r2, #0
@@ -22541,7 +22541,7 @@ _0223853E:
add r0, r4, #0
mov r1, #0x98
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x22
mov r2, #0
@@ -22550,7 +22550,7 @@ _0223853E:
add r0, r4, #0
mov r1, #0x99
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x26
mov r2, #0
@@ -22559,7 +22559,7 @@ _0223853E:
add r0, r4, #0
mov r1, #0x9a
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x24
mov r2, #0
@@ -22568,7 +22568,7 @@ _0223853E:
add r0, r4, #0
mov r1, #0x9b
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x31
mov r2, #0
@@ -22577,7 +22577,7 @@ _0223853E:
add r0, r4, #0
mov r1, #0x9c
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
ldr r1, [sp]
add r0, r4, #0
bl TryEncryptBoxMon
diff --git a/arm9/src/pokemon.c b/arm9/src/pokemon.c
index 43404100..c1f69ded 100644
--- a/arm9/src/pokemon.c
+++ b/arm9/src/pokemon.c
@@ -29,6 +29,7 @@ int ApplyNatureModToStat(u8 nature, u16 statval, u32 statno);
#define ENCRYPT_BOX(boxmon) MonEncryptSegment(ENCRY_ARGS_BOX(boxmon))
#define DECRYPT_PTY(mon) MonDecryptSegment(ENCRY_ARGS_PTY(mon))
#define DECRYPT_BOX(boxmon) MonDecryptSegment(ENCRY_ARGS_BOX(boxmon))
+#define CHECKSUM(boxmon) CalcMonChecksum((boxmon)->substructs, sizeof((boxmon)->substructs))
#define SHINY_CHECK(otid, pid) (( \
((((otid) & 0xFFFF0000u) >> 16u)) ^ \
(((otid) & 0xFFFFu)) ^ \
@@ -183,7 +184,7 @@ BOOL TryEncryptMon(struct Pokemon * mon, BOOL decrypt_result)
mon->box.party_lock = FALSE;
mon->box.box_lock = FALSE;
ENCRYPT_PTY(mon);
- mon->box.checksum = CalcMonChecksum(&mon->box.substructs, sizeof(mon->box.substructs));
+ mon->box.checksum = CHECKSUM(&mon->box);
ENCRYPT_BOX(&mon->box);
}
return ret;
@@ -209,7 +210,7 @@ BOOL TryEncryptBoxMon(struct BoxPokemon * mon, BOOL decrypt_result)
{
ret = TRUE;
mon->box_lock = FALSE;
- mon->checksum = CalcMonChecksum(&mon->substructs, sizeof(mon->substructs));
+ mon->checksum = CHECKSUM(mon);
ENCRYPT_BOX(mon);
}
return ret;
@@ -247,7 +248,7 @@ void CreateBoxMon(struct BoxPokemon * boxPokemon, int species, int level, int fi
{
fixedPersonality = (rand_LC() | (rand_LC() << 16));
}
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_PERSONALITY, &fixedPersonality);
+ SetBoxMonData(boxPokemon, MON_DATA_PERSONALITY, &fixedPersonality);
if (otIdType == 2)
{
do
@@ -257,57 +258,57 @@ void CreateBoxMon(struct BoxPokemon * boxPokemon, int species, int level, int fi
}
else if (otIdType != 1)
fixedOtId = 0;
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_OTID, &fixedOtId);
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_GAME_LANGUAGE, &gGameLanguage);
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_SPECIES, &species);
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_SPECIES_NAME, NULL);
+ SetBoxMonData(boxPokemon, MON_DATA_OTID, &fixedOtId);
+ SetBoxMonData(boxPokemon, MON_DATA_GAME_LANGUAGE, (void *)&gGameLanguage);
+ SetBoxMonData(boxPokemon, MON_DATA_SPECIES, &species);
+ SetBoxMonData(boxPokemon, MON_DATA_SPECIES_NAME, NULL);
exp = GetMonExpBySpeciesAndLevel(species, level);
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_EXPERIENCE, &exp);
+ SetBoxMonData(boxPokemon, MON_DATA_EXPERIENCE, &exp);
exp = GetMonBaseStat(species, BASE_FRIENDSHIP);
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_FRIENDSHIP, &exp);
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_MET_LEVEL, &level);
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_GAME_VERSION, &gGameVersion);
+ SetBoxMonData(boxPokemon, MON_DATA_FRIENDSHIP, &exp);
+ SetBoxMonData(boxPokemon, MON_DATA_MET_LEVEL, &level);
+ SetBoxMonData(boxPokemon, MON_DATA_GAME_VERSION, (void *)&gGameVersion);
exp = 4;
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_POKEBALL, &exp);
+ SetBoxMonData(boxPokemon, MON_DATA_POKEBALL, &exp);
if (fixedIV < 0x20)
{
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_HP_IV, &fixedIV);
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_ATK_IV, &fixedIV);
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_DEF_IV, &fixedIV);
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_SPEED_IV, &fixedIV);
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_SPATK_IV, &fixedIV);
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_SPDEF_IV, &fixedIV);
+ SetBoxMonData(boxPokemon, MON_DATA_HP_IV, &fixedIV);
+ SetBoxMonData(boxPokemon, MON_DATA_ATK_IV, &fixedIV);
+ SetBoxMonData(boxPokemon, MON_DATA_DEF_IV, &fixedIV);
+ SetBoxMonData(boxPokemon, MON_DATA_SPEED_IV, &fixedIV);
+ SetBoxMonData(boxPokemon, MON_DATA_SPATK_IV, &fixedIV);
+ SetBoxMonData(boxPokemon, MON_DATA_SPDEF_IV, &fixedIV);
}
else
{
exp = rand_LC();
iv = exp & 0x1F;
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_HP_IV, &iv);
+ SetBoxMonData(boxPokemon, MON_DATA_HP_IV, &iv);
iv = (exp & 0x3E0) >> 5;
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_ATK_IV, &iv);
+ SetBoxMonData(boxPokemon, MON_DATA_ATK_IV, &iv);
iv = (exp & 0x7C00) >> 10;
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_DEF_IV, &iv);
+ SetBoxMonData(boxPokemon, MON_DATA_DEF_IV, &iv);
exp = rand_LC();
iv = exp & 0x1F;
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_SPEED_IV, &iv);
+ SetBoxMonData(boxPokemon, MON_DATA_SPEED_IV, &iv);
iv = (exp & 0x3E0) >> 5;
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_SPATK_IV, &iv);
+ SetBoxMonData(boxPokemon, MON_DATA_SPATK_IV, &iv);
iv = (exp & 0x7C00) >> 10;
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_SPDEF_IV, &iv);
+ SetBoxMonData(boxPokemon, MON_DATA_SPDEF_IV, &iv);
}
exp = GetMonBaseStat(species, BASE_ABILITY_1);
iv = GetMonBaseStat(species, BASE_ABILITY_2);
if (iv != 0)
{
if (fixedPersonality & 1)
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_ABILITY, &iv);
+ SetBoxMonData(boxPokemon, MON_DATA_ABILITY, &iv);
else
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_ABILITY, &exp);
+ SetBoxMonData(boxPokemon, MON_DATA_ABILITY, &exp);
}
else
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_ABILITY, &exp);
+ SetBoxMonData(boxPokemon, MON_DATA_ABILITY, &exp);
exp = GetBoxMonGenderEncrypted(boxPokemon);
- SetBoxMonDataEncrypted(boxPokemon, MON_DATA_GENDER, &exp);
+ SetBoxMonData(boxPokemon, MON_DATA_GENDER, &exp);
InitBoxMonMoveset(boxPokemon);
TryEncryptBoxMon(boxPokemon, decry);
}
@@ -480,7 +481,7 @@ u32 GetMonData(struct Pokemon * pokemon, int attr, void * dest)
{
DECRYPT_PTY(pokemon);
DECRYPT_BOX(&pokemon->box);
- checksum = CalcMonChecksum(&pokemon->box.substructs, sizeof(pokemon->box.substructs));
+ checksum = CHECKSUM(&pokemon->box);
if (checksum != pokemon->box.checksum)
{
GF_ASSERT(checksum == pokemon->box.checksum);
@@ -538,7 +539,7 @@ u32 GetBoxMonData(struct BoxPokemon * boxmon, int attr, void * dest)
if (!boxmon->box_lock)
{
DECRYPT_BOX(boxmon);
- checksum = CalcMonChecksum(&boxmon->substructs, sizeof(boxmon->substructs));
+ checksum = CHECKSUM(boxmon);
if (checksum != boxmon->checksum)
{
GF_ASSERT(checksum == boxmon->checksum);
@@ -707,29 +708,25 @@ u32 GetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * dest)
case MON_DATA_MOVE2:
case MON_DATA_MOVE3:
case MON_DATA_MOVE4:
- attr -= MON_DATA_MOVE1;
- ret = blockB->moves[attr];
+ ret = blockB->moves[attr - MON_DATA_MOVE1];
break;
case MON_DATA_MOVE1PP:
case MON_DATA_MOVE2PP:
case MON_DATA_MOVE3PP:
case MON_DATA_MOVE4PP:
- attr -= MON_DATA_MOVE1PP;
- ret = blockB->movePP[attr];
+ ret = blockB->movePP[attr - MON_DATA_MOVE1PP];
break;
case MON_DATA_MOVE1PPUP:
case MON_DATA_MOVE2PPUP:
case MON_DATA_MOVE3PPUP:
case MON_DATA_MOVE4PPUP:
- attr -= MON_DATA_MOVE1PPUP;
- ret = blockB->movePpUps[attr];
+ ret = blockB->movePpUps[attr - MON_DATA_MOVE1PPUP];
break;
case MON_DATA_MOVE1MAXPP:
case MON_DATA_MOVE2MAXPP:
case MON_DATA_MOVE3MAXPP:
case MON_DATA_MOVE4MAXPP:
- attr -= MON_DATA_MOVE1MAXPP;
- ret = FUN_0206AB30(blockB->moves[attr], blockB->movePpUps[attr]);
+ ret = FUN_0206AB30(blockB->moves[attr - MON_DATA_MOVE1MAXPP], blockB->movePpUps[attr - MON_DATA_MOVE1MAXPP]);
break;
case MON_DATA_HP_IV:
ret = blockB->hpIV;
@@ -822,10 +819,10 @@ u32 GetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * dest)
dest16[ret] = EOS;
}
break;
- case MON_DATA_NICKNAME_3:
+ case MON_DATA_NICKNAME_4:
ret = blockB->isNicknamed;
// fallthrough
- case MON_DATA_NICKNAME_2:
+ case MON_DATA_NICKNAME_3:
if (boxmon->checksum_fail)
{
u16 * buffer = FUN_0200AA50(SPECIES_MANAPHY_EGG, 0);
@@ -951,3 +948,448 @@ u32 GetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * dest)
}
return ret;
}
+
+void SetMonData(struct Pokemon * pokemon, int attr, void * value)
+{
+ u16 checksum;
+ if (!pokemon->box.party_lock)
+ {
+ DECRYPT_PTY(pokemon);
+ DECRYPT_BOX(&pokemon->box);
+ checksum = CHECKSUM(&pokemon->box);
+ if (checksum != pokemon->box.checksum)
+ {
+ GF_ASSERT(checksum == pokemon->box.checksum);
+ pokemon->box.checksum_fail = TRUE;
+ ENCRYPT_BOX(&pokemon->box);
+ return;
+ }
+ }
+ SetMonDataInternal(pokemon, attr, value);
+ if (!pokemon->box.party_lock)
+ {
+ ENCRYPT_PTY(pokemon);
+ pokemon->box.checksum = CHECKSUM(&pokemon->box);
+ ENCRYPT_BOX(&pokemon->box);
+ }
+}
+
+void SetMonDataInternal(struct Pokemon * pokemon, int attr, void * value)
+{
+#define VALUE(type) (*(const type *)value)
+ switch (attr)
+ {
+ case MON_DATA_STATUS:
+ pokemon->party.status = VALUE(u32);
+ break;
+ case MON_DATA_LEVEL:
+ pokemon->party.level = VALUE(u8);
+ break;
+ case MON_DATA_CAPSULE:
+ pokemon->party.capsule = VALUE(u8);
+ break;
+ case MON_DATA_HP:
+ pokemon->party.hp = VALUE(u16);
+ break;
+ case MON_DATA_MAXHP:
+ pokemon->party.maxHp = VALUE(u16);
+ break;
+ case MON_DATA_ATK:
+ pokemon->party.atk = VALUE(u16);
+ break;
+ case MON_DATA_DEF:
+ pokemon->party.def = VALUE(u16);
+ break;
+ case MON_DATA_SPEED:
+ pokemon->party.speed = VALUE(u16);
+ break;
+ case MON_DATA_SPATK:
+ pokemon->party.spatk = VALUE(u16);
+ break;
+ case MON_DATA_SPDEF:
+ pokemon->party.spdef = VALUE(u16);
+ break;
+ case MON_DATA_SEAL_STRUCT:
+ CopySealsObject((const struct SealStruct *)value, &pokemon->party.seal_something);
+ break;
+ case MON_DATA_SEAL_COORDS:
+ FUN_02029C74((const u8 *)value, pokemon->party.sealCoords);
+ break;
+ default:
+ SetBoxMonDataInternal(&pokemon->box, attr, value);
+ break;
+ }
+#undef VALUE
+}
+
+void SetBoxMonData(struct BoxPokemon * boxmon, int attr, void * value)
+{
+ u16 checksum;
+ if (!boxmon->box_lock)
+ {
+ DECRYPT_BOX(boxmon);
+ checksum = CHECKSUM(boxmon);
+ if (checksum != boxmon->checksum)
+ {
+ GF_ASSERT(checksum == boxmon->checksum);
+ boxmon->checksum_fail = TRUE;
+ ENCRYPT_BOX(boxmon);
+ return;
+ }
+ }
+ SetBoxMonDataInternal(boxmon, attr, value);
+ if (!boxmon->box_lock)
+ {
+ boxmon->checksum = CHECKSUM(boxmon);
+ ENCRYPT_BOX(boxmon);
+ }
+}
+
+
+void SetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * value)
+{
+#define VALUE(type) (*(const type *)value)
+ u8 flag;
+ u64 mask;
+ u32 i;
+ u16 namebuf[POKEMON_NAME_LENGTH + 1];
+ u16 namebuf2[POKEMON_NAME_LENGTH + 1];
+ u16 namebuf3[POKEMON_NAME_LENGTH + 1];
+ u16 * speciesName;
+ u8 iv;
+
+ PokemonDataBlockA *blockA = &GetSubstruct(boxmon, boxmon->pid, 0)->blockA;
+ PokemonDataBlockB *blockB = &GetSubstruct(boxmon, boxmon->pid, 1)->blockB;
+ PokemonDataBlockC *blockC = &GetSubstruct(boxmon, boxmon->pid, 2)->blockC;
+ PokemonDataBlockD *blockD = &GetSubstruct(boxmon, boxmon->pid, 3)->blockD;
+
+ switch (attr)
+ {
+ case MON_DATA_PERSONALITY:
+ boxmon->pid = VALUE(u32);
+ break;
+ case MON_DATA_PARTY_LOCK:
+ GF_ASSERT(0);
+ boxmon->party_lock = VALUE(u8);
+ break;
+ case MON_DATA_BOX_LOCK:
+ GF_ASSERT(0);
+ boxmon->box_lock = VALUE(u8);
+ break;
+ case MON_DATA_CHECKSUM_FAILED:
+ boxmon->checksum_fail = VALUE(u8);
+ break;
+ case MON_DATA_CHECKSUM:
+ boxmon->checksum = VALUE(u16);
+ break;
+ case MON_DATA_SPECIES:
+ blockA->species = VALUE(u16);
+ break;
+ case MON_DATA_HELD_ITEM:
+ blockA->heldItem = VALUE(u16);
+ break;
+ case MON_DATA_OTID:
+ blockA->otID = VALUE(u32);
+ break;
+ case MON_DATA_EXPERIENCE:
+ blockA->exp = VALUE(u32);
+ break;
+ case MON_DATA_FRIENDSHIP:
+ blockA->friendship = VALUE(u8);
+ break;
+ case MON_DATA_ABILITY:
+ blockA->ability = VALUE(u8);
+ break;
+ case MON_DATA_MARKINGS:
+ blockA->markings = VALUE(u8);
+ break;
+ case MON_DATA_GAME_LANGUAGE:
+ blockA->originLanguage = VALUE(u8);
+ break;
+ case MON_DATA_HP_EV:
+ blockA->hpEV = VALUE(u8);
+ break;
+ case MON_DATA_ATK_EV:
+ blockA->atkEV = VALUE(u8);
+ break;
+ case MON_DATA_DEF_EV:
+ blockA->defEV = VALUE(u8);
+ break;
+ case MON_DATA_SPEED_EV:
+ blockA->spdEV = VALUE(u8);
+ break;
+ case MON_DATA_SPATK_EV:
+ blockA->spatkEV = VALUE(u8);
+ break;
+ case MON_DATA_SPDEF_EV:
+ blockA->spdefEV = VALUE(u8);
+ break;
+ case MON_DATA_COOL:
+ blockA->coolStat = VALUE(u8);
+ break;
+ case MON_DATA_BEAUTY:
+ blockA->beautyStat = VALUE(u8);
+ break;
+ case MON_DATA_CUTE:
+ blockA->cuteStat = VALUE(u8);
+ break;
+ case MON_DATA_SMART:
+ blockA->smartStat = VALUE(u8);
+ break;
+ case MON_DATA_TOUGH:
+ blockA->toughStat = VALUE(u8);
+ break;
+ case MON_DATA_SHEEN:
+ blockA->sheen = VALUE(u8);
+ break;
+ case MON_DATA_SINNOH_CHAMP_RIBBON:
+ case MON_DATA_SINNOH_RIBBON_26:
+ case MON_DATA_SINNOH_RIBBON_27:
+ case MON_DATA_SINNOH_RIBBON_28:
+ case MON_DATA_SINNOH_RIBBON_29:
+ case MON_DATA_SINNOH_RIBBON_30:
+ case MON_DATA_SINNOH_RIBBON_31:
+ case MON_DATA_SINNOH_RIBBON_32:
+ case MON_DATA_SINNOH_RIBBON_33:
+ case MON_DATA_SINNOH_RIBBON_34:
+ case MON_DATA_SINNOH_RIBBON_35:
+ case MON_DATA_SINNOH_RIBBON_36:
+ case MON_DATA_SINNOH_RIBBON_37:
+ case MON_DATA_SINNOH_RIBBON_38:
+ case MON_DATA_SINNOH_RIBBON_39:
+ case MON_DATA_SINNOH_RIBBON_40:
+ case MON_DATA_SINNOH_RIBBON_41:
+ case MON_DATA_SINNOH_RIBBON_42:
+ case MON_DATA_SINNOH_RIBBON_43:
+ case MON_DATA_SINNOH_RIBBON_44:
+ case MON_DATA_SINNOH_RIBBON_45:
+ case MON_DATA_SINNOH_RIBBON_46:
+ case MON_DATA_SINNOH_RIBBON_47:
+ case MON_DATA_SINNOH_RIBBON_48:
+ case MON_DATA_SINNOH_RIBBON_49:
+ case MON_DATA_SINNOH_RIBBON_50:
+ case MON_DATA_SINNOH_RIBBON_51:
+ case MON_DATA_SINNOH_RIBBON_52:
+ case MON_DATA_SINNOH_RIBBON_53:
+ flag = VALUE(u8);
+ mask = (u64)flag << (attr - MON_DATA_SINNOH_CHAMP_RIBBON);
+ if (flag)
+ blockA->sinnohRibbons |= mask;
+ else
+ blockA->sinnohRibbons &= -1ull ^ mask;
+ break;
+ case MON_DATA_MOVE1:
+ case MON_DATA_MOVE2:
+ case MON_DATA_MOVE3:
+ case MON_DATA_MOVE4:
+ blockB->moves[attr - MON_DATA_MOVE1] = VALUE(u16);
+ break;
+ case MON_DATA_MOVE1PP:
+ case MON_DATA_MOVE2PP:
+ case MON_DATA_MOVE3PP:
+ case MON_DATA_MOVE4PP:
+ blockB->movePP[attr - MON_DATA_MOVE1PP] = VALUE(u8);
+ break;
+ case MON_DATA_MOVE1PPUP:
+ case MON_DATA_MOVE2PPUP:
+ case MON_DATA_MOVE3PPUP:
+ case MON_DATA_MOVE4PPUP:
+ blockB->movePpUps[attr - MON_DATA_MOVE1PPUP] = VALUE(u8);
+ break;
+ case MON_DATA_HP_IV:
+ blockB->hpIV = VALUE(u8);
+ break;
+ case MON_DATA_ATK_IV:
+ blockB->atkIV = VALUE(u8);
+ break;
+ case MON_DATA_DEF_IV:
+ blockB->defIV = VALUE(u8);
+ break;
+ case MON_DATA_SPEED_IV:
+ blockB->spdIV = VALUE(u8);
+ break;
+ case MON_DATA_SPATK_IV:
+ blockB->spatkIV = VALUE(u8);
+ break;
+ case MON_DATA_SPDEF_IV:
+ blockB->spdefIV = VALUE(u8);
+ break;
+ case MON_DATA_IS_EGG:
+ blockB->isEgg = VALUE(u8);
+ break;
+ case MON_DATA_HAS_NICKNAME:
+ blockB->isNicknamed = VALUE(u8);
+ break;
+ case MON_DATA_COOL_RIBBON:
+ case MON_DATA_HOENN_RIBBON_79:
+ case MON_DATA_HOENN_RIBBON_80:
+ case MON_DATA_HOENN_RIBBON_81:
+ case MON_DATA_HOENN_RIBBON_82:
+ case MON_DATA_HOENN_RIBBON_83:
+ case MON_DATA_HOENN_RIBBON_84:
+ case MON_DATA_HOENN_RIBBON_85:
+ case MON_DATA_HOENN_RIBBON_86:
+ case MON_DATA_HOENN_RIBBON_87:
+ case MON_DATA_HOENN_RIBBON_88:
+ case MON_DATA_HOENN_RIBBON_89:
+ case MON_DATA_HOENN_RIBBON_90:
+ case MON_DATA_HOENN_RIBBON_91:
+ case MON_DATA_HOENN_RIBBON_92:
+ case MON_DATA_HOENN_RIBBON_93:
+ case MON_DATA_HOENN_RIBBON_94:
+ case MON_DATA_HOENN_RIBBON_95:
+ case MON_DATA_HOENN_RIBBON_96:
+ case MON_DATA_HOENN_RIBBON_97:
+ case MON_DATA_HOENN_RIBBON_98:
+ case MON_DATA_HOENN_RIBBON_99:
+ case MON_DATA_HOENN_RIBBON_100:
+ case MON_DATA_HOENN_RIBBON_101:
+ case MON_DATA_HOENN_RIBBON_102:
+ case MON_DATA_HOENN_RIBBON_103:
+ case MON_DATA_HOENN_RIBBON_104:
+ case MON_DATA_HOENN_RIBBON_105:
+ case MON_DATA_HOENN_RIBBON_106:
+ case MON_DATA_HOENN_RIBBON_107:
+ case MON_DATA_HOENN_RIBBON_108:
+ case MON_DATA_HOENN_RIBBON_109:
+ flag = VALUE(u8);
+ mask = (u64)flag << (attr - MON_DATA_COOL_RIBBON);
+ if (flag)
+ blockB->ribbonFlags |= mask;
+ else
+ blockB->ribbonFlags &= -1ull ^ mask;
+ break;
+ case MON_DATA_FATEFUL_ENCOUNTER:
+ blockB->fatefulEncounter = VALUE(u8);
+ break;
+ case MON_DATA_GENDER:
+ blockB->gender = VALUE(u8);
+ break;
+ case MON_DATA_FORME:
+ blockB->alternateForm = VALUE(u8);
+ break;
+ case MON_DATA_RESERVED_113:
+ blockB->HGSS_shinyLeaves = VALUE(u8);
+ break;
+ case MON_DATA_RESERVED_114:
+ blockB->Unused = VALUE(u16);
+ break;
+ case MON_DATA_NICKNAME_2:
+ GetSpeciesName(blockA->species, 0, namebuf);
+ blockB->isNicknamed = StringNotEqual(namebuf, value);
+ // fallthrough
+ case MON_DATA_NICKNAME:
+ for (i = 0; i < POKEMON_NAME_LENGTH + 1; i++)
+ {
+ blockC->nickname[i] = VALUE(u16); value = (void *const )((char *)value + 2);
+ }
+ break;
+ case MON_DATA_NICKNAME_4:
+ GetSpeciesName(blockA->species, 0, namebuf2);
+ FUN_02021EF0(value, namebuf3, POKEMON_NAME_LENGTH + 1);
+ blockB->isNicknamed = StringNotEqual(namebuf2, namebuf3);
+ // fallthrough
+ case MON_DATA_NICKNAME_3:
+ FUN_02021EF0(value, blockC->nickname, POKEMON_NAME_LENGTH + 1);
+ break;
+ case MON_DATA_UNK_120:
+ blockC->Unused = VALUE(u8);
+ break;
+ case MON_DATA_GAME_VERSION:
+ blockC->originGame = VALUE(u8);
+ break;
+ case MON_DATA_SINNOH_RIBBON_122:
+ case MON_DATA_SINNOH_RIBBON_123:
+ case MON_DATA_SINNOH_RIBBON_124:
+ case MON_DATA_SINNOH_RIBBON_125:
+ case MON_DATA_SINNOH_RIBBON_126:
+ case MON_DATA_SINNOH_RIBBON_127:
+ case MON_DATA_SINNOH_RIBBON_128:
+ case MON_DATA_SINNOH_RIBBON_129:
+ case MON_DATA_SINNOH_RIBBON_130:
+ case MON_DATA_SINNOH_RIBBON_131:
+ case MON_DATA_SINNOH_RIBBON_132:
+ case MON_DATA_SINNOH_RIBBON_133:
+ case MON_DATA_SINNOH_RIBBON_134:
+ case MON_DATA_SINNOH_RIBBON_135:
+ case MON_DATA_SINNOH_RIBBON_136:
+ case MON_DATA_SINNOH_RIBBON_137:
+ case MON_DATA_SINNOH_RIBBON_138:
+ case MON_DATA_SINNOH_RIBBON_139:
+ case MON_DATA_SINNOH_RIBBON_140:
+ case MON_DATA_SINNOH_RIBBON_141:
+ case MON_DATA_SINNOH_RIBBON_142:
+ flag = VALUE(u8);
+ mask = (u64)flag << (attr - MON_DATA_SINNOH_RIBBON_122);
+ if (flag)
+ blockC->sinnohRibbons2 |= mask;
+ else
+ blockC->sinnohRibbons2 &= -1ull ^ mask;
+ break;
+ case MON_DATA_OT_NAME:
+ for (i = 0; i < OT_NAME_LENGTH + 1; i++)
+ {
+ blockD->otTrainerName[i] = VALUE(u16); value = (void *)((char *)value + 2);
+ }
+ break;
+ case MON_DATA_OT_NAME_2:
+ FUN_02021EF0(value, blockD->otTrainerName, OT_NAME_LENGTH + 1);
+ break;
+ case MON_DATA_EGG_MET_YEAR:
+ blockD->dateEggReceived[0] = VALUE(u8);
+ break;
+ case MON_DATA_EGG_MET_MONTH:
+ blockD->dateEggReceived[1] = VALUE(u8);
+ break;
+ case MON_DATA_EGG_MET_DAY:
+ blockD->dateEggReceived[2] = VALUE(u8);
+ break;
+ case MON_DATA_MET_YEAR:
+ blockD->dateMet[0] = VALUE(u8);
+ break;
+ case MON_DATA_MET_MONTH:
+ blockD->dateMet[1] = VALUE(u8);
+ break;
+ case MON_DATA_MET_DAY:
+ blockD->dateMet[2] = VALUE(u8);
+ break;
+ case MON_DATA_EGG_MET_LOCATION:
+ blockD->DP_EggLocation = VALUE(u16);
+ break;
+ case MON_DATA_MET_LOCATION:
+ blockD->DP_MetLocation = VALUE(u16);
+ break;
+ case MON_DATA_POKERUS:
+ blockD->pokerus = VALUE(u8);
+ break;
+ case MON_DATA_POKEBALL:
+ blockD->pokeball = VALUE(u8);
+ break;
+ case MON_DATA_MET_LEVEL:
+ blockD->metLevel = VALUE(u8);
+ break;
+ case MON_DATA_MET_GENDER:
+ blockD->metGender = VALUE(u8);
+ break;
+ case MON_DATA_ENCOUNTER_TYPE:
+ blockD->encounterType = VALUE(u8);
+ break;
+ case MON_DATA_RESERVED_158:
+ blockD->HGSS_Pokeball = VALUE(u16);
+ break;
+ case MON_DATA_IVS_WORD:
+ blockB->hpIV = (VALUE(u32) >> 0) & 0x1F;
+ blockB->atkIV = (VALUE(u32) >> 5) & 0x1F;
+ blockB->defIV = (VALUE(u32) >> 10) & 0x1F;
+ blockB->spdIV = (VALUE(u32) >> 15) & 0x1F;
+ blockB->spatkIV = (VALUE(u32) >> 20) & 0x1F;
+ blockB->spdefIV = (VALUE(u32) >> 25) & 0x1F;
+ break;
+ case MON_DATA_SPECIES_NAME:
+ speciesName = FUN_0200AA50(blockA->species, 0);
+ FUN_02021EF0(speciesName, blockC->nickname, POKEMON_NAME_LENGTH + 1);
+ FUN_02021A20(speciesName);
+ break;
+ }
+#undef VALUE
+}
diff --git a/include/pokemon.h b/include/pokemon.h
index 7cc5ef5d..451c7d1b 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -125,9 +125,9 @@
#define MON_DATA_RESERVED_114 114 // Plat
#define MON_DATA_UNUSED_115 115
#define MON_DATA_NICKNAME 116
-#define MON_DATA_UNUSED_117 117
-#define MON_DATA_NICKNAME_2 118 // ???
-#define MON_DATA_NICKNAME_3 119 // ???
+#define MON_DATA_NICKNAME_2 117
+#define MON_DATA_NICKNAME_3 118 // ???
+#define MON_DATA_NICKNAME_4 119 // ???
#define MON_DATA_UNK_120 120
#define MON_DATA_GAME_VERSION 121
#define MON_DATA_SINNOH_RIBBON_122 122
@@ -500,10 +500,10 @@ u32 GetBoxMonData();
u32 GetMonData(struct Pokemon * pokemon, int attr, void * ptr);
u32 GetBoxMonData(struct BoxPokemon * pokemon, int attr, void * ptr);
#endif
-void SetMonDataInternal(struct Pokemon * pokemon, int attr, const void * ptr);
-void SetMonData(struct Pokemon * pokemon, int attr, const void * ptr);
-void SetBoxMonData(struct BoxPokemon * pokemon, int attr, const void * ptr);
-void SetBoxMonDataEncrypted(struct BoxPokemon * pokemon, int attr, const void * ptr);
+void SetMonDataInternal(struct Pokemon * pokemon, int attr, void * ptr);
+void SetMonData(struct Pokemon * pokemon, int attr, void * ptr);
+void SetBoxMonDataInternal(struct BoxPokemon * pokemon, int attr, void * ptr);
+void SetBoxMonData(struct BoxPokemon * pokemon, int attr, void * ptr);
void AddMonData(struct Pokemon * pokemon, int attr, u32 amount);
void AddBoxMonData(struct Pokemon * pokemon, int attr, u32 amount);
diff --git a/include/proto.h b/include/proto.h
index 37655429..c8f50d33 100644
--- a/include/proto.h
+++ b/include/proto.h
@@ -7,6 +7,7 @@ u16 * FUN_0200AA50(u16 species, u32 heap_id);
void FUN_02021A74(u16 * dest, u16 * src);
void FUN_02021A20(void * ptr);
void FUN_02021E28(u16 * dest, u16 * src);
+void FUN_02021EF0(const u16 * src, u16 * dest, u32 count);
u32 FUN_0206E7B8(u16 item, u32 a1, u32 a2);
u32 GetArceusTypeByPlate(u16 plate);
diff --git a/include/seals.h b/include/seals.h
index fc0fc449..8fda23b9 100644
--- a/include/seals.h
+++ b/include/seals.h
@@ -9,7 +9,7 @@ struct SealStruct
struct SealStruct * CreateNewSealsObject(u32 heap_id);
-void CopySealsObject(struct SealStruct *, struct SealStruct *);
-void FUN_02029C74(u8 *, u8 *);
+void CopySealsObject(const struct SealStruct *, struct SealStruct *);
+void FUN_02029C74(const u8 *, u8 *);
#endif //POKEDIAMOND_SEALS_H