summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/arm9.lsf2
-rw-r--r--arm9/asm/scrcmd_4.s2
-rw-r--r--arm9/asm/script_pokemon_util.s (renamed from arm9/asm/unk_0204A01C.s)0
-rw-r--r--arm9/asm/unk_02006864.s30
-rw-r--r--arm9/asm/unk_02008DEC.s2
-rw-r--r--arm9/asm/unk_0200AA80.s4
-rw-r--r--arm9/asm/unk_0207FC5C.s180
-rw-r--r--arm9/asm/unk_02080C38.s2
-rw-r--r--arm9/asm/unk_020828BC.s6
-rw-r--r--arm9/asm/unk_02087A6C.s20
-rw-r--r--arm9/global.inc4
-rw-r--r--arm9/modules/05/asm/mod05_021DC0B8.s2
-rw-r--r--arm9/modules/05/asm/module_05.s4
-rw-r--r--arm9/modules/06/asm/module_06.s21
-rw-r--r--arm9/modules/12/asm/module_12.s2
-rw-r--r--arm9/modules/14/asm/module_14.s4
-rw-r--r--arm9/modules/17/asm/module_17.s18
-rw-r--r--arm9/modules/57/asm/module_57.s4
-rw-r--r--arm9/modules/64/asm/module_64.s4
-rw-r--r--arm9/modules/71/asm/module_71.s2
-rw-r--r--arm9/modules/81/asm/module_81.s2
-rw-r--r--arm9/modules/83/asm/module_83.s4
-rw-r--r--arm9/src/pokemon.c482
-rw-r--r--arm9/src/unk_0207FC5C.c533
-rw-r--r--include/constants/pokemon.h358
-rw-r--r--include/script.h2
-rw-r--r--include/unk_0207FC5C.h89
27 files changed, 1113 insertions, 670 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index 297c54fe..09d9d737 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -183,7 +183,7 @@ Static arm9
Object unk_02048120.o
Object unk_020484A8.o
Object unk_02048904.o
- Object unk_0204A01C.o
+ Object script_pokemon_util.o
Object unk_0204A368.o
Object unk_0204A498.o
Object unk_0204AB0C.o
diff --git a/arm9/asm/scrcmd_4.s b/arm9/asm/scrcmd_4.s
index d7e850ab..55341882 100644
--- a/arm9/asm/scrcmd_4.s
+++ b/arm9/asm/scrcmd_4.s
@@ -984,7 +984,7 @@ FUN_02040EB4: ; 0x02040EB4
lsr r2, r0, #0x10
ldr r0, [r6, #0x0]
add r1, r4, #0x0
- bl FUN_0200AD94
+ bl GetRibbonNameOrDesc
mov r0, #0x0
pop {r4-r6, pc}
.balign 4
diff --git a/arm9/asm/unk_0204A01C.s b/arm9/asm/script_pokemon_util.s
index 49ac1fa6..49ac1fa6 100644
--- a/arm9/asm/unk_0204A01C.s
+++ b/arm9/asm/script_pokemon_util.s
diff --git a/arm9/asm/unk_02006864.s b/arm9/asm/unk_02006864.s
index 8bd21720..cffea043 100644
--- a/arm9/asm/unk_02006864.s
+++ b/arm9/asm/unk_02006864.s
@@ -34,7 +34,7 @@ FUN_0200687C: ; 0x0200687C
ldr r2, [sp, #0x28]
ldr r3, [sp, #0x2c]
ldr r4, [sp, #0x24]
- bl FUN_02006C98
+ bl UncompressFromNarc
add r7, r0, #0x0
beq _020068C2
add r1, sp, #0x4
@@ -74,7 +74,7 @@ FUN_020068C8: ; 0x020068C8
ldr r2, [sp, #0x28]
ldr r3, [sp, #0x2c]
ldr r4, [sp, #0x24]
- bl FUN_02006C98
+ bl UncompressFromNarc
add r7, r0, #0x0
beq _0200692C
add r1, sp, #0x4
@@ -142,7 +142,7 @@ FUN_02006948: ; 0x02006948
mov r2, #0x0
ldr r6, [sp, #0x20]
ldr r5, [sp, #0x24]
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [sp, #0x4]
cmp r0, #0x0
beq _02006A2A
@@ -258,7 +258,7 @@ FUN_02006A34: ; 0x02006A34
ldr r2, [sp, #0x24]
ldr r3, [sp, #0x28]
ldr r4, [sp, #0x20]
- bl FUN_02006C98
+ bl UncompressFromNarc
add r7, r0, #0x0
beq _02006A80
add r1, sp, #0x4
@@ -302,7 +302,7 @@ FUN_02006A8C: ; 0x02006A8C
str r2, [sp, #0x0]
ldr r3, [sp, #0x20]
mov r2, #0x0
- bl FUN_02006C98
+ bl UncompressFromNarc
add r6, r0, #0x0
beq _02006AE0
add r1, sp, #0x4
@@ -344,7 +344,7 @@ FUN_02006AE4: ; 0x02006AE4
mov r3, #0x1
str r3, [sp, #0x0]
ldr r3, [sp, #0x24]
- bl FUN_02006C98
+ bl UncompressFromNarc
add r6, r0, #0x0
ldr r4, _02006B30 ; =0x00000000
beq _02006B28
@@ -387,7 +387,7 @@ FUN_02006B38: ; 0x02006B38
mov r3, #0x1
str r3, [sp, #0x0]
ldr r3, [sp, #0x24]
- bl FUN_02006C98
+ bl UncompressFromNarc
add r4, r0, #0x0
beq _02006B9E
add r1, sp, #0x4
@@ -449,7 +449,7 @@ FUN_02006BB0: ; 0x02006BB0
mov r3, #0x0
str r3, [sp, #0x0]
ldr r3, [sp, #0x10]
- bl FUN_02006C98
+ bl UncompressFromNarc
add r5, r0, #0x0
beq _02006BD6
add r1, r4, #0x0
@@ -472,7 +472,7 @@ FUN_02006BDC: ; 0x02006BDC
mov r3, #0x0
str r3, [sp, #0x0]
ldr r3, [sp, #0x10]
- bl FUN_02006C98
+ bl UncompressFromNarc
add r5, r0, #0x0
beq _02006C02
add r1, r4, #0x0
@@ -494,7 +494,7 @@ FUN_02006C08: ; 0x02006C08
add r5, r2, #0x0
mov r2, #0x0
str r2, [sp, #0x0]
- bl FUN_02006C98
+ bl UncompressFromNarc
add r4, r0, #0x0
beq _02006C2C
add r1, r5, #0x0
@@ -516,7 +516,7 @@ FUN_02006C30: ; 0x02006C30
mov r3, #0x0
str r3, [sp, #0x0]
ldr r3, [sp, #0x10]
- bl FUN_02006C98
+ bl UncompressFromNarc
add r5, r0, #0x0
beq _02006C56
add r1, r4, #0x0
@@ -539,7 +539,7 @@ FUN_02006C5C: ; 0x02006C5C
mov r3, #0x0
str r3, [sp, #0x0]
ldr r3, [sp, #0x10]
- bl FUN_02006C98
+ bl UncompressFromNarc
add r5, r0, #0x0
beq _02006C82
add r1, r4, #0x0
@@ -562,11 +562,11 @@ FUN_02006C88: ; 0x02006C88
mov r2, #0x0
str r2, [sp, #0x0]
mov r2, #0x1
- bl FUN_02006C98
+ bl UncompressFromNarc
pop {r3, pc}
- thumb_func_start FUN_02006C98
-FUN_02006C98: ; 0x02006C98
+ thumb_func_start UncompressFromNarc
+UncompressFromNarc: ; 0x02006C98
push {r3-r7, lr}
add r5, r2, #0x0
add r7, r0, #0x0
diff --git a/arm9/asm/unk_02008DEC.s b/arm9/asm/unk_02008DEC.s
index 50b83f92..1b0161ae 100644
--- a/arm9/asm/unk_02008DEC.s
+++ b/arm9/asm/unk_02008DEC.s
@@ -1604,7 +1604,7 @@ FUN_02009978: ; 0x02009978
add r1, r3, #0x0
ldr r2, [sp, #0x10]
ldr r3, [sp, #0x24]
- bl FUN_02006C98
+ bl UncompressFromNarc
add r1, r0, #0x0
ldr r0, [r5, #0x0]
ldr r2, [sp, #0x14]
diff --git a/arm9/asm/unk_0200AA80.s b/arm9/asm/unk_0200AA80.s
index c5065adc..ace139f6 100644
--- a/arm9/asm/unk_0200AA80.s
+++ b/arm9/asm/unk_0200AA80.s
@@ -427,8 +427,8 @@ _0200AD90:
pop {r3-r7, pc}
.balign 4
- thumb_func_start FUN_0200AD94
-FUN_0200AD94: ; 0x0200AD94
+ thumb_func_start GetRibbonNameOrDesc
+GetRibbonNameOrDesc: ; 0x0200AD94
push {r3-r7, lr}
add r5, r0, #0x0
add r6, r2, #0x0
diff --git a/arm9/asm/unk_0207FC5C.s b/arm9/asm/unk_0207FC5C.s
deleted file mode 100644
index b06b72e9..00000000
--- a/arm9/asm/unk_0207FC5C.s
+++ /dev/null
@@ -1,180 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .rodata
-
- .global UNK_020FB788
-UNK_020FB788: ; 0x020FB788
- .byte 0x62, 0x00, 0x00, 0x00
-
- .global UNK_020FB78C
-UNK_020FB78C: ; 0x020FB78C
- .byte 0x48, 0x00
-
- .global UNK_020FB78E
-UNK_020FB78E: ; 0x020FB78E
- .byte 0x00, 0x00
-
- .global UNK_020FB790
-UNK_020FB790: ; 0x020FB790
- .byte 0x00, 0x00
-
- .global UNK_020FB792
-UNK_020FB792: ; 0x020FB792
- .byte 0x50, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x01, 0x00, 0x51, 0x00, 0x4F, 0x00
- .byte 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x52, 0x00, 0x50, 0x00, 0x00, 0x00, 0x4B, 0x00
- .byte 0x00, 0x00, 0x03, 0x00, 0x53, 0x00, 0x51, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x04, 0x00
- .byte 0x54, 0x00, 0x52, 0x00, 0x00, 0x00, 0x49, 0x00, 0x01, 0x00, 0x05, 0x00, 0x55, 0x00, 0x53, 0x00
- .byte 0x00, 0x00, 0x4A, 0x00, 0x01, 0x00, 0x06, 0x00, 0x56, 0x00, 0x54, 0x00, 0x00, 0x00, 0x4B, 0x00
- .byte 0x01, 0x00, 0x07, 0x00, 0x57, 0x00, 0x55, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x01, 0x00, 0x08, 0x00
- .byte 0x58, 0x00, 0x56, 0x00, 0x00, 0x00, 0x49, 0x00, 0x02, 0x00, 0x09, 0x00, 0x59, 0x00, 0x57, 0x00
- .byte 0x00, 0x00, 0x4A, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x5A, 0x00, 0x58, 0x00, 0x00, 0x00, 0x4B, 0x00
- .byte 0x02, 0x00, 0x0B, 0x00, 0x5B, 0x00, 0x59, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x02, 0x00, 0x0C, 0x00
- .byte 0x5C, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x49, 0x00, 0x03, 0x00, 0x0D, 0x00, 0x5D, 0x00, 0x5B, 0x00
- .byte 0x00, 0x00, 0x4A, 0x00, 0x03, 0x00, 0x0E, 0x00, 0x5E, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x4B, 0x00
- .byte 0x03, 0x00, 0x0F, 0x00, 0x5F, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x03, 0x00, 0x10, 0x00
- .byte 0x60, 0x00, 0x5E, 0x00, 0x00, 0x00, 0x49, 0x00, 0x04, 0x00, 0x11, 0x00, 0x61, 0x00, 0x5F, 0x00
- .byte 0x00, 0x00, 0x4A, 0x00, 0x04, 0x00, 0x12, 0x00, 0x62, 0x00, 0x60, 0x00, 0x00, 0x00, 0x4B, 0x00
- .byte 0x04, 0x00, 0x13, 0x00, 0x63, 0x00, 0x61, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x04, 0x00, 0x14, 0x00
- .byte 0x64, 0x00, 0x63, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x15, 0x00, 0x65, 0x00, 0x64, 0x00
- .byte 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x16, 0x00, 0x66, 0x00, 0x65, 0x00, 0x00, 0x00, 0x4F, 0x00
- .byte 0x01, 0x00, 0x17, 0x00, 0x67, 0x00, 0x66, 0x00, 0x00, 0x00, 0x50, 0x00, 0x02, 0x00, 0x18, 0x00
- .byte 0x68, 0x00, 0x67, 0x00, 0x00, 0x00, 0x51, 0x00, 0x01, 0x00, 0x19, 0x00, 0x00, 0x80, 0x68, 0x00
- .byte 0x00, 0x00, 0x51, 0x00, 0x03, 0x00, 0x1A, 0x00, 0x01, 0x80, 0x69, 0x00, 0x00, 0x00, 0x51, 0x00
- .byte 0x04, 0x00, 0x1B, 0x00, 0x02, 0x80, 0x6A, 0x00, 0x00, 0x00, 0x52, 0x00, 0x03, 0x00, 0x1C, 0x00
- .byte 0xB2, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x52, 0x00, 0x04, 0x00, 0x1D, 0x00, 0xBE, 0x00, 0x6C, 0x00
- .byte 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xBF, 0x00, 0x6D, 0x00, 0x00, 0x00, 0x53, 0x00
- .byte 0x01, 0x00, 0x1F, 0x00, 0xB2, 0x00, 0x19, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x20, 0x00
- .byte 0x69, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x21, 0x00, 0x6A, 0x00, 0x7B, 0x00
- .byte 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x22, 0x00, 0x6B, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x5B, 0x00
- .byte 0x00, 0x00, 0x23, 0x00, 0x6C, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x24, 0x00
- .byte 0x6D, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x59, 0x00, 0x01, 0x00, 0x25, 0x00, 0x6E, 0x00, 0x7F, 0x00
- .byte 0x00, 0x00, 0x5A, 0x00, 0x01, 0x00, 0x26, 0x00, 0x6F, 0x00, 0x80, 0x00, 0x00, 0x00, 0x5B, 0x00
- .byte 0x01, 0x00, 0x27, 0x00, 0x70, 0x00, 0x81, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x01, 0x00, 0x28, 0x00
- .byte 0x71, 0x00, 0x82, 0x00, 0x00, 0x00, 0x59, 0x00, 0x02, 0x00, 0x29, 0x00, 0x72, 0x00, 0x83, 0x00
- .byte 0x00, 0x00, 0x5A, 0x00, 0x02, 0x00, 0x2A, 0x00, 0x73, 0x00, 0x84, 0x00, 0x00, 0x00, 0x5B, 0x00
- .byte 0x02, 0x00, 0x2B, 0x00, 0x74, 0x00, 0x85, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x02, 0x00, 0x2C, 0x00
- .byte 0x75, 0x00, 0x86, 0x00, 0x00, 0x00, 0x59, 0x00, 0x03, 0x00, 0x2D, 0x00, 0x76, 0x00, 0x87, 0x00
- .byte 0x00, 0x00, 0x5A, 0x00, 0x03, 0x00, 0x2E, 0x00, 0x77, 0x00, 0x88, 0x00, 0x00, 0x00, 0x5B, 0x00
- .byte 0x03, 0x00, 0x2F, 0x00, 0x78, 0x00, 0x89, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x03, 0x00, 0x30, 0x00
- .byte 0x79, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x59, 0x00, 0x04, 0x00, 0x31, 0x00, 0x7A, 0x00, 0x8B, 0x00
- .byte 0x00, 0x00, 0x5A, 0x00, 0x04, 0x00, 0x32, 0x00, 0x7B, 0x00, 0x8C, 0x00, 0x00, 0x00, 0x5B, 0x00
- .byte 0x04, 0x00, 0x33, 0x00, 0x7C, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x04, 0x00, 0x34, 0x00
- .byte 0x7D, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x35, 0x00, 0x7E, 0x00, 0x1B, 0x00
- .byte 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, 0x36, 0x00, 0x7F, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x5F, 0x00
- .byte 0x00, 0x00, 0x37, 0x00, 0x80, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x38, 0x00
- .byte 0x81, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x39, 0x00, 0x82, 0x00, 0x1F, 0x00
- .byte 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x83, 0x00, 0x20, 0x00, 0x00, 0x00, 0x63, 0x00
- .byte 0x02, 0x00, 0x3B, 0x00, 0x84, 0x00, 0x21, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x3C, 0x00
- .byte 0x85, 0x00, 0x22, 0x00, 0x00, 0x00, 0x65, 0x00, 0x01, 0x00, 0x3D, 0x00, 0x86, 0x00, 0x23, 0x00
- .byte 0x00, 0x00, 0x66, 0x00, 0x02, 0x00, 0x3E, 0x00, 0x87, 0x00, 0x24, 0x00, 0x00, 0x00, 0x67, 0x00
- .byte 0x03, 0x00, 0x3F, 0x00, 0x88, 0x00, 0x25, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x40, 0x00
- .byte 0x89, 0x00, 0x26, 0x00, 0x00, 0x00, 0x69, 0x00, 0x02, 0x00, 0x41, 0x00, 0x8A, 0x00, 0x27, 0x00
- .byte 0x00, 0x00, 0x6A, 0x00, 0x01, 0x00, 0x42, 0x00, 0x8B, 0x00, 0x28, 0x00, 0x00, 0x00, 0x6B, 0x00
- .byte 0x03, 0x00, 0x43, 0x00, 0x8C, 0x00, 0x29, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x44, 0x00
- .byte 0x8D, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00, 0x45, 0x00, 0x8E, 0x00, 0x2B, 0x00
- .byte 0x00, 0x00, 0x6E, 0x00, 0x01, 0x00, 0x46, 0x00, 0x8F, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x6F, 0x00
- .byte 0x03, 0x00, 0x47, 0x00, 0x90, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x48, 0x00
- .byte 0x91, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x49, 0x00, 0x07, 0x80, 0x2F, 0x00
- .byte 0x00, 0x00, 0x72, 0x00, 0x03, 0x00, 0x4A, 0x00, 0x08, 0x80, 0x30, 0x00, 0x00, 0x00, 0x73, 0x00
- .byte 0x01, 0x00, 0x4B, 0x00, 0x09, 0x80, 0x31, 0x00, 0x00, 0x00, 0x74, 0x00, 0x01, 0x00, 0x4C, 0x00
- .byte 0x0A, 0x80, 0x32, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x0B, 0x80, 0x33, 0x00
- .byte 0x00, 0x00, 0x76, 0x00, 0x01, 0x00, 0x4E, 0x00, 0x0C, 0x80, 0x34, 0x00, 0x00, 0x00, 0x77, 0x00
- .byte 0x00, 0x00, 0x4F, 0x00, 0x0D, 0x80
-
- .text
-
- thumb_func_start FUN_0207FC5C
-FUN_0207FC5C: ; 0x0207FC5C
- cmp r1, #0x4
- bhi _0207FCA8
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0207FC6C: ; jump table (using 16-bit offset)
- .short _0207FC76 - _0207FC6C - 2; case 0
- .short _0207FC80 - _0207FC6C - 2; case 1
- .short _0207FC8A - _0207FC6C - 2; case 2
- .short _0207FC94 - _0207FC6C - 2; case 3
- .short _0207FC9E - _0207FC6C - 2; case 4
-_0207FC76:
- mov r1, #0xc
- mul r1, r0
- ldr r0, _0207FCAC ; =UNK_020FB788
- ldr r0, [r0, r1]
- bx lr
-_0207FC80:
- mov r1, #0xc
- mul r1, r0
- ldr r0, _0207FCB0 ; =UNK_020FB78C
- ldrh r0, [r0, r1]
- bx lr
-_0207FC8A:
- mov r1, #0xc
- mul r1, r0
- ldr r0, _0207FCB4 ; =UNK_020FB78E
- ldrh r0, [r0, r1]
- bx lr
-_0207FC94:
- mov r1, #0xc
- mul r1, r0
- ldr r0, _0207FCB8 ; =UNK_020FB790
- ldrh r0, [r0, r1]
- bx lr
-_0207FC9E:
- mov r1, #0xc
- mul r1, r0
- ldr r0, _0207FCBC ; =UNK_020FB792
- ldrh r0, [r0, r1]
- bx lr
-_0207FCA8:
- mov r0, #0x0
- bx lr
- .balign 4
-_0207FCAC: .word UNK_020FB788
-_0207FCB0: .word UNK_020FB78C
-_0207FCB4: .word UNK_020FB78E
-_0207FCB8: .word UNK_020FB790
-_0207FCBC: .word UNK_020FB792
-
- thumb_func_start FUN_0207FCC0
-FUN_0207FCC0: ; 0x0207FCC0
- mov r2, #0xc
- mul r2, r1
- ldr r1, _0207FCDC ; =UNK_020FB792
- ldrh r2, [r1, r2]
- mov r1, #0x2
- lsl r1, r1, #0xe
- tst r1, r2
- beq _0207FCD8
- lsl r1, r2, #0x18
- lsr r1, r1, #0x18
- ldrb r2, [r0, r1]
- add r2, #0x92
-_0207FCD8:
- add r0, r2, #0x0
- bx lr
- .balign 4
-_0207FCDC: .word UNK_020FB792
-
- thumb_func_start FUN_0207FCE0
-FUN_0207FCE0: ; 0x0207FCE0
- mov r1, #0xc
- mul r1, r0
- ldr r0, _0207FCFC ; =UNK_020FB792
- ldrh r1, [r0, r1]
- mov r0, #0x2
- lsl r0, r0, #0xe
- tst r0, r1
- beq _0207FCF6
- lsl r0, r1, #0x18
- lsr r0, r0, #0x18
- bx lr
-_0207FCF6:
- mov r0, #0xff
- bx lr
- nop
-_0207FCFC: .word UNK_020FB792
diff --git a/arm9/asm/unk_02080C38.s b/arm9/asm/unk_02080C38.s
index 55901920..8eb1213d 100644
--- a/arm9/asm/unk_02080C38.s
+++ b/arm9/asm/unk_02080C38.s
@@ -3041,7 +3041,7 @@ _020822D6:
add r2, r0, #0x0
add r0, r4, #0x0
add r1, r5, #0x0
- bl FUN_0200AD94
+ bl GetRibbonNameOrDesc
pop {r3-r5, pc}
.balign 4
_020822EC: .word 0x0000011F
diff --git a/arm9/asm/unk_020828BC.s b/arm9/asm/unk_020828BC.s
index 3c10063d..f63a493e 100644
--- a/arm9/asm/unk_020828BC.s
+++ b/arm9/asm/unk_020828BC.s
@@ -177,7 +177,7 @@ _0208292A:
mov r0, #0x5a
add r2, r1, #0x0
add r3, r5, #0x0
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [sp, #0x14]
mov r0, #0x5a
mov r1, #0x0
@@ -513,7 +513,7 @@ FUN_02082B90: ; 0x02082B90
mov r0, #0x5a
mov r1, #0x2
mov r2, #0x0
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [sp, #0x14]
ldr r1, _02082D10 ; =0x00000121
ldr r0, [sp, #0x8]
@@ -938,7 +938,7 @@ FUN_02082ED0: ; 0x02082ED0
add r2, r5, #0x0
add r4, r5, #0x0
str r1, [sp, #0x0]
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [sp, #0x14]
mov r0, #0x5a
mov r1, #0x1
diff --git a/arm9/asm/unk_02087A6C.s b/arm9/asm/unk_02087A6C.s
index c91f5a47..d51eab43 100644
--- a/arm9/asm/unk_02087A6C.s
+++ b/arm9/asm/unk_02087A6C.s
@@ -249,7 +249,7 @@ FUN_02087C18: ; 0x02087C18
mov r0, #0x4b
add r2, r1, #0x0
str r1, [sp, #0x0]
- bl FUN_02006C98
+ bl UncompressFromNarc
pop {r3, pc}
.balign 4
@@ -261,7 +261,7 @@ FUN_02087C2C: ; 0x02087C2C
mov r0, #0x4b
mov r1, #0x1
str r2, [sp, #0x0]
- bl FUN_02006C98
+ bl UncompressFromNarc
pop {r3, pc}
.balign 4
@@ -277,14 +277,14 @@ FUN_02087C40: ; 0x02087C40
mov r0, #0x4b
mov r1, #0x9
add r3, r6, #0x0
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [r5, #0x0]
mov r2, #0x0
mov r0, #0x4b
mov r1, #0xa
add r3, r6, #0x0
str r2, [sp, #0x0]
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [r4, #0x0]
add sp, #0x4
pop {r3-r6, pc}
@@ -302,14 +302,14 @@ FUN_02087C70: ; 0x02087C70
mov r0, #0x4b
mov r1, #0x7
add r3, r6, #0x0
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [r5, #0x0]
mov r2, #0x0
mov r0, #0x4b
mov r1, #0x8
add r3, r6, #0x0
str r2, [sp, #0x0]
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [r4, #0x0]
add sp, #0x4
pop {r3-r6, pc}
@@ -327,14 +327,14 @@ FUN_02087CA0: ; 0x02087CA0
mov r0, #0x4b
mov r1, #0x5
add r3, r6, #0x0
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [r5, #0x0]
mov r2, #0x0
mov r0, #0x4b
mov r1, #0x6
add r3, r6, #0x0
str r2, [sp, #0x0]
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [r4, #0x0]
add sp, #0x4
pop {r3-r6, pc}
@@ -352,14 +352,14 @@ FUN_02087CD0: ; 0x02087CD0
mov r0, #0x4b
mov r1, #0x3
add r3, r6, #0x0
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [r5, #0x0]
mov r2, #0x0
mov r0, #0x4b
mov r1, #0x4
add r3, r6, #0x0
str r2, [sp, #0x0]
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [r4, #0x0]
add sp, #0x4
pop {r3-r6, pc}
diff --git a/arm9/global.inc b/arm9/global.inc
index 4fdc7064..16b7e5e2 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -408,7 +408,7 @@
.extern FUN_02006C30
.extern FUN_02006C5C
.extern FUN_02006C88
-.extern FUN_02006C98
+.extern UncompressFromNarc
.extern FUN_02006D18
.extern FUN_02006D98
.extern FUN_02006ED4
@@ -551,7 +551,7 @@
.extern FUN_0200AD18
.extern FUN_0200AD38
.extern FUN_0200AD5C
-.extern FUN_0200AD94
+.extern GetRibbonNameOrDesc
.extern FUN_0200ADCC
.extern FUN_0200AE04
.extern FUN_0200AE38
diff --git a/arm9/modules/05/asm/mod05_021DC0B8.s b/arm9/modules/05/asm/mod05_021DC0B8.s
index d660a9a4..5e07b24d 100644
--- a/arm9/modules/05/asm/mod05_021DC0B8.s
+++ b/arm9/modules/05/asm/mod05_021DC0B8.s
@@ -520,7 +520,7 @@ MOD05_021DC480: ; 0x021DC480
add r1, r5, #0
mov r2, #0
mov r3, #4
- bl FUN_02006C98
+ bl UncompressFromNarc
add r5, r0, #0
add r1, r4, #0
mov r2, #4
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s
index 4bd3be33..62d2e73a 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -38012,7 +38012,7 @@ MOD05_021F5268: ; 0x021F5268
add r1, r2, #0
str r5, [sp]
add r2, r5, #0
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [r4]
bl FUN_020BC13C
str r0, [r4, #4]
@@ -38105,7 +38105,7 @@ MOD05_021F531C: ; 0x021F531C
ldr r3, [sp, #0x18]
add r2, r6, #0
str r6, [sp]
- bl FUN_02006C98
+ bl UncompressFromNarc
add r2, r0, #0
ldr r3, [sp, #0x1c]
add r0, r5, #0
diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s
index e2f76b59..ee5fe56a 100644
--- a/arm9/modules/06/asm/module_06.s
+++ b/arm9/modules/06/asm/module_06.s
@@ -30992,7 +30992,7 @@ _0224886C:
mov r0, #0x73
add r1, r6, #0
add r3, r5, #0
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [r4]
str r5, [r4, #0x10]
str r6, [r4, #0xc]
@@ -31005,7 +31005,7 @@ _0224886C:
bl PlayerProfile_Clear
add r0, r5, #0
add r1, r6, #4
- bl MOD06_022489AC
+ bl GetInGameTradeMonOrPartnerName
add r5, r0, #0
add r1, sp, #4
mov r2, #0x80
@@ -31093,7 +31093,7 @@ MOD06_0224891C: ; 0x0224891C
ldr r0, [r5, #4]
ldr r1, [r5]
ldr r3, [r5, #0xc]
- bl MOD06_022489D4
+ bl CreateInGameTradeMon
ldr r1, [sp, #0x20]
add r0, r7, #0
bl FUN_02069B88
@@ -31135,8 +31135,8 @@ _022489A2:
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
- thumb_func_start MOD06_022489AC
-MOD06_022489AC: ; 0x022489AC
+ thumb_func_start GetInGameTradeMonOrPartnerName
+GetInGameTradeMonOrPartnerName: ; 0x022489AC
push {r3, r4, r5, lr}
ldr r2, _022489D0 ; =0x00000146
add r3, r0, #0
@@ -31155,8 +31155,9 @@ MOD06_022489AC: ; 0x022489AC
.align 2, 0
_022489D0: .word 0x00000146
- thumb_func_start MOD06_022489D4
-MOD06_022489D4: ; 0x022489D4
+ thumb_func_start CreateInGameTradeMon
+CreateInGameTradeMon: ; 0x022489D4
+ ; void CreateInGameTradeMon(struct Pokemon * mon, struct InGameTrade * trade, u32 level, u32 name_idx, u32 heap_id)
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r6, r3, #0
@@ -31174,7 +31175,7 @@ MOD06_022489D4: ; 0x022489D4
bl CreateMon
ldr r0, [sp, #0x28]
add r1, r6, #0
- bl MOD06_022489AC
+ bl GetInGameTradeMonOrPartnerName
add r7, r0, #0
add r0, r5, #0
mov r1, #0x76
@@ -31250,7 +31251,7 @@ MOD06_022489D4: ; 0x022489D4
bl SetMonData
ldr r0, [sp, #0x28]
add r1, r6, #4
- bl MOD06_022489AC
+ bl GetInGameTradeMonOrPartnerName
add r6, r0, #0
add r0, r5, #0
mov r1, #0x90
@@ -44315,7 +44316,7 @@ _0224EFCC:
add r1, r4, #4
mov r2, #0
mov r3, #4
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [r6, r7]
add r4, r4, #1
add r6, r6, #4
diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s
index 2d42f701..5d8f7ae6 100644
--- a/arm9/modules/12/asm/module_12.s
+++ b/arm9/modules/12/asm/module_12.s
@@ -47817,7 +47817,7 @@ MOD12_0224473C: ; 0x0224473C
mov r0, #0x5a
add r1, r1, #3
str r2, [sp]
- bl FUN_02006C98
+ bl UncompressFromNarc
pop {r3, pc}
.align 2, 0
diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s
index ff3ae9eb..4bd53150 100644
--- a/arm9/modules/14/asm/module_14.s
+++ b/arm9/modules/14/asm/module_14.s
@@ -13810,7 +13810,7 @@ MOD14_021DE1D0: ; 0x021DE1D0
ldr r1, _021DE26C ; =MOD14_021E65AD
ldrb r1, [r1, r3]
mov r3, #0xa
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [sp, #0x10]
cmp r0, #0
beq _021DE268
@@ -13890,7 +13890,7 @@ MOD14_021DE278: ; 0x021DE278
ldr r1, _021DE2E0 ; =MOD14_021E65AC
ldrb r1, [r1, r3]
mov r3, #0xa
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [sp, #4]
cmp r0, #0
beq _021DE2DC
diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s
index 52bc0583..5c020257 100644
--- a/arm9/modules/17/asm/module_17.s
+++ b/arm9/modules/17/asm/module_17.s
@@ -1752,7 +1752,7 @@ _021D81AC:
add r1, r4, #1
mov r2, #0
mov r3, #0xe
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [sp, #4]
cmp r0, #0
bne _021D81C6
@@ -1778,7 +1778,7 @@ _021D81C6:
mov r0, #0x19
add r2, r1, #0
mov r3, #0xe
- bl FUN_02006C98
+ bl UncompressFromNarc
add r4, r0, #0
ldr r0, [r6, #0x14]
add r1, r4, #0
@@ -1816,7 +1816,7 @@ _021D822A:
add r1, #0xce
mov r2, #0
mov r3, #0xe
- bl FUN_02006C98
+ bl UncompressFromNarc
add r2, r4, #0
add r1, r0, #0
add r2, #0x64
@@ -1837,7 +1837,7 @@ _021D822A:
str r0, [sp]
ldr r1, [sp, #8]
mov r0, #0x19
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [sp, #0xc]
ldr r0, [r5, #0x14]
ldr r1, [sp, #0xc]
@@ -1887,7 +1887,7 @@ MOD17_021D82B8: ; 0x021D82B8
mov r0, #0x19
mov r1, #0xeb
str r2, [sp]
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [r4, #0x28]
add sp, #4
pop {r3, r4, pc}
@@ -8834,7 +8834,7 @@ MOD17_021DB6D8: ; 0x021DB6D8
ldrh r0, [r1]
ldrh r1, [r1, #2]
mov r3, #0xe
- bl FUN_02006C98
+ bl UncompressFromNarc
add r1, r0, #0
add r0, r4, #0
mov r2, #0x76
@@ -8913,7 +8913,7 @@ MOD17_021DB700: ; 0x021DB700
ldrh r0, [r6]
ldrh r1, [r6, #2]
ldr r3, [sp, #0x30]
- bl FUN_02006C98
+ bl UncompressFromNarc
add r1, sp, #0x10
add r6, r0, #0
bl FUN_020B0088
@@ -13716,7 +13716,7 @@ _021DDAC6:
mov r0, #0x19
add r1, r5, #1
mov r2, #0
- bl FUN_02006C98
+ bl UncompressFromNarc
add r7, r0, #0
ldr r0, [r4, #0x10]
add r1, r7, #0
@@ -13749,7 +13749,7 @@ _021DDB1E:
ldr r3, [sp, #0xc]
mov r0, #0x19
add r2, r1, #0
- bl FUN_02006C98
+ bl UncompressFromNarc
add r5, r0, #0
ldr r0, [r4, #0x14]
add r1, r5, #0
diff --git a/arm9/modules/57/asm/module_57.s b/arm9/modules/57/asm/module_57.s
index 64319ede..9bf62714 100644
--- a/arm9/modules/57/asm/module_57.s
+++ b/arm9/modules/57/asm/module_57.s
@@ -1010,7 +1010,7 @@ MOD57_021D7CA4: ; 0x021D7CA4
mov r1, #0x1b
mov r3, #0x19
str r2, [sp]
- bl FUN_02006C98
+ bl UncompressFromNarc
ldr r1, _021D7ECC ; =0x000030B8
str r0, [r4, r1]
ldr r0, [r4, r1]
@@ -1064,7 +1064,7 @@ _021D7D9C:
mov r0, #0x33
mov r3, #0x19
str r2, [sp]
- bl FUN_02006C98
+ bl UncompressFromNarc
ldr r1, _021D7ECC ; =0x000030B8
str r0, [r4, r1]
ldr r0, [r4, r1]
diff --git a/arm9/modules/64/asm/module_64.s b/arm9/modules/64/asm/module_64.s
index 6ece5b85..e979f20e 100644
--- a/arm9/modules/64/asm/module_64.s
+++ b/arm9/modules/64/asm/module_64.s
@@ -1057,7 +1057,7 @@ MOD64_021D7D7C: ; 0x021D7D7C
add r4, r0, #0
str r2, [sp]
mov r0, #0x52
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [r4, #0x54]
bl FUN_020BC13C
str r0, [r4, #0x58]
@@ -1091,7 +1091,7 @@ MOD64_021D7DC0: ; 0x021D7DC0
str r2, [sp]
mov r0, #0x52
add r3, r6, #0
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [r4, #0x64]
mov r1, #0
bl FUN_020BC4C8
diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s
index c3249b66..6337fcb9 100644
--- a/arm9/modules/71/asm/module_71.s
+++ b/arm9/modules/71/asm/module_71.s
@@ -2220,7 +2220,7 @@ MOD71_0222E884: ; 0x0222E884
str r2, [sp]
ldr r2, [sp, #0x20]
ldr r3, [sp, #0x24]
- bl FUN_02006C98
+ bl UncompressFromNarc
add r6, r0, #0
beq _0222E8D6
add r1, sp, #4
diff --git a/arm9/modules/81/asm/module_81.s b/arm9/modules/81/asm/module_81.s
index 2153f93f..d21611f4 100644
--- a/arm9/modules/81/asm/module_81.s
+++ b/arm9/modules/81/asm/module_81.s
@@ -1657,7 +1657,7 @@ MOD81_02238A84: ; 0x02238A84
mov r2, #0
mov r3, #0x3a
add r5, r4, r6
- bl FUN_02006C98
+ bl UncompressFromNarc
str r0, [r4, r6]
ldr r1, [sp, #4]
add r0, r7, #0
diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s
index 8204f46d..bb52eeb3 100644
--- a/arm9/modules/83/asm/module_83.s
+++ b/arm9/modules/83/asm/module_83.s
@@ -9382,7 +9382,7 @@ MOD83_022320D8: ; 0x022320D8
add r6, r3, #0
ldr r3, [r5]
mov r0, #0x74
- bl FUN_02006C98
+ bl UncompressFromNarc
add r1, sp, #4
add r7, r0, #0
bl FUN_020B0180
@@ -24220,7 +24220,7 @@ MOD83_022391EC: ; 0x022391EC
ldr r3, [r3, #4]
mov r0, #0x74
mov r1, #0x1f
- bl FUN_02006C98
+ bl UncompressFromNarc
add r1, sp, #0x14
str r0, [sp, #0x10]
bl FUN_020B0180
diff --git a/arm9/src/pokemon.c b/arm9/src/pokemon.c
index dbf86d8a..20784ff6 100644
--- a/arm9/src/pokemon.c
+++ b/arm9/src/pokemon.c
@@ -701,33 +701,33 @@ u32 GetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * dest)
ret = blockA->sheen;
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_ABILITY_RIBBON:
+ case MON_DATA_GREAT_ABILITY_RIBBON:
+ case MON_DATA_DOUBLE_ABILITY_RIBBON:
+ case MON_DATA_MULTI_ABILITY_RIBBON:
+ case MON_DATA_PAIR_ABILITY_RIBBON:
+ case MON_DATA_WORLD_ABILITY_RIBBON:
+ case MON_DATA_ALERT_RIBBON:
+ case MON_DATA_SHOCK_RIBBON:
+ case MON_DATA_DOWNCAST_RIBBON:
+ case MON_DATA_CARELESS_RIBBON:
+ case MON_DATA_RELAX_RIBBON:
+ case MON_DATA_SNOOZE_RIBBON:
+ case MON_DATA_SMILE_RIBBON:
+ case MON_DATA_GORGEOUS_RIBBON:
+ case MON_DATA_ROYAL_RIBBON:
+ case MON_DATA_GORGEOUS_ROYAL_RIBBON:
+ case MON_DATA_FOOTPRINT_RIBBON:
+ case MON_DATA_RECORD_RIBBON:
+ case MON_DATA_HISTORY_RIBBON:
+ case MON_DATA_LEGEND_RIBBON:
+ case MON_DATA_RED_RIBBON:
+ case MON_DATA_GREEN_RIBBON:
+ case MON_DATA_BLUE_RIBBON:
+ case MON_DATA_FESTIVAL_RIBBON:
+ case MON_DATA_CARNIVAL_RIBBON:
+ case MON_DATA_CLASSIC_RIBBON:
+ case MON_DATA_PREMIER_RIBBON:
case MON_DATA_SINNOH_RIBBON_53:
{
if (blockA->sinnohRibbons & (1ll << (attr - MON_DATA_SINNOH_CHAMP_RIBBON)))
@@ -790,39 +790,39 @@ u32 GetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * dest)
case MON_DATA_HAS_NICKNAME:
ret = blockB->isNicknamed;
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:
- if (blockB->ribbonFlags & (1ll << (attr - MON_DATA_COOL_RIBBON)))
+ case MON_DATA_HOENN_COOL_RIBBON:
+ case MON_DATA_HOENN_COOL_RIBBON_SUPER:
+ case MON_DATA_HOENN_COOL_RIBBON_HYPER:
+ case MON_DATA_HOENN_COOL_RIBBON_MASTER:
+ case MON_DATA_HOENN_BEAUTY_RIBBON:
+ case MON_DATA_HOENN_BEAUTY_RIBBON_SUPER:
+ case MON_DATA_HOENN_BEAUTY_RIBBON_HYPER:
+ case MON_DATA_HOENN_BEAUTY_RIBBON_MASTER:
+ case MON_DATA_HOENN_CUTE_RIBBON:
+ case MON_DATA_HOENN_CUTE_RIBBON_SUPER:
+ case MON_DATA_HOENN_CUTE_RIBBON_HYPER:
+ case MON_DATA_HOENN_CUTE_RIBBON_MASTER:
+ case MON_DATA_HOENN_SMART_RIBBON:
+ case MON_DATA_HOENN_SMART_RIBBON_SUPER:
+ case MON_DATA_HOENN_SMART_RIBBON_HYPER:
+ case MON_DATA_HOENN_SMART_RIBBON_MASTER:
+ case MON_DATA_HOENN_TOUGH_RIBBON:
+ case MON_DATA_HOENN_TOUGH_RIBBON_SUPER:
+ case MON_DATA_HOENN_TOUGH_RIBBON_HYPER:
+ case MON_DATA_HOENN_TOUGH_RIBBON_MASTER:
+ case MON_DATA_HOENN_CHAMPION_RIBBON:
+ case MON_DATA_HOENN_WINNING_RIBBON:
+ case MON_DATA_HOENN_VICTORY_RIBBON:
+ case MON_DATA_HOENN_ARTIST_RIBBON:
+ case MON_DATA_HOENN_EFFORT_RIBBON:
+ case MON_DATA_HOENN_MARINE_RIBBON:
+ case MON_DATA_HOENN_LAND_RIBBON:
+ case MON_DATA_HOENN_SKY_RIBBON:
+ case MON_DATA_HOENN_COUNTRY_RIBBON:
+ case MON_DATA_HOENN_NATIONAL_RIBBON:
+ case MON_DATA_HOENN_EARTH_RIBBON:
+ case MON_DATA_HOENN_WORLD_RIBBON:
+ if (blockB->ribbonFlags & (1ll << (attr - MON_DATA_HOENN_COOL_RIBBON)))
ret = TRUE;
else
ret = FALSE;
@@ -876,28 +876,28 @@ u32 GetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * dest)
case MON_DATA_GAME_VERSION:
ret = blockC->originGame;
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_COOL_RIBBON:
+ case MON_DATA_COOL_RIBBON_GREAT:
+ case MON_DATA_COOL_RIBBON_ULTRA:
+ case MON_DATA_COOL_RIBBON_MASTER:
+ case MON_DATA_BEAUTY_RIBBON:
+ case MON_DATA_BEAUTY_RIBBON_GREAT:
+ case MON_DATA_BEAUTY_RIBBON_ULTRA:
+ case MON_DATA_BEAUTY_RIBBON_MASTER:
+ case MON_DATA_CUTE_RIBBON:
+ case MON_DATA_CUTE_RIBBON_GREAT:
+ case MON_DATA_CUTE_RIBBON_ULTRA:
+ case MON_DATA_CUTE_RIBBON_MASTER:
+ case MON_DATA_SMART_RIBBON:
+ case MON_DATA_SMART_RIBBON_GREAT:
+ case MON_DATA_SMART_RIBBON_ULTRA:
+ case MON_DATA_SMART_RIBBON_MASTER:
+ case MON_DATA_TOUGH_RIBBON:
+ case MON_DATA_TOUGH_RIBBON_GREAT:
+ case MON_DATA_TOUGH_RIBBON_ULTRA:
+ case MON_DATA_TOUGH_RIBBON_MASTER:
case MON_DATA_SINNOH_RIBBON_142:
- if (blockC->sinnohRibbons2 & (1ll << (attr - MON_DATA_SINNOH_RIBBON_122)))
+ if (blockC->sinnohRibbons2 & (1ll << (attr - MON_DATA_COOL_RIBBON)))
ret = TRUE;
else
ret = FALSE;
@@ -1178,33 +1178,33 @@ void SetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * value)
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_ABILITY_RIBBON:
+ case MON_DATA_GREAT_ABILITY_RIBBON:
+ case MON_DATA_DOUBLE_ABILITY_RIBBON:
+ case MON_DATA_MULTI_ABILITY_RIBBON:
+ case MON_DATA_PAIR_ABILITY_RIBBON:
+ case MON_DATA_WORLD_ABILITY_RIBBON:
+ case MON_DATA_ALERT_RIBBON:
+ case MON_DATA_SHOCK_RIBBON:
+ case MON_DATA_DOWNCAST_RIBBON:
+ case MON_DATA_CARELESS_RIBBON:
+ case MON_DATA_RELAX_RIBBON:
+ case MON_DATA_SNOOZE_RIBBON:
+ case MON_DATA_SMILE_RIBBON:
+ case MON_DATA_GORGEOUS_RIBBON:
+ case MON_DATA_ROYAL_RIBBON:
+ case MON_DATA_GORGEOUS_ROYAL_RIBBON:
+ case MON_DATA_FOOTPRINT_RIBBON:
+ case MON_DATA_RECORD_RIBBON:
+ case MON_DATA_HISTORY_RIBBON:
+ case MON_DATA_LEGEND_RIBBON:
+ case MON_DATA_RED_RIBBON:
+ case MON_DATA_GREEN_RIBBON:
+ case MON_DATA_BLUE_RIBBON:
+ case MON_DATA_FESTIVAL_RIBBON:
+ case MON_DATA_CARNIVAL_RIBBON:
+ case MON_DATA_CLASSIC_RIBBON:
+ case MON_DATA_PREMIER_RIBBON:
case MON_DATA_SINNOH_RIBBON_53:
flag = VALUE(u8);
mask = (u64)flag << (attr - MON_DATA_SINNOH_CHAMP_RIBBON);
@@ -1255,40 +1255,40 @@ void SetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * value)
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:
+ case MON_DATA_HOENN_COOL_RIBBON:
+ case MON_DATA_HOENN_COOL_RIBBON_SUPER:
+ case MON_DATA_HOENN_COOL_RIBBON_HYPER:
+ case MON_DATA_HOENN_COOL_RIBBON_MASTER:
+ case MON_DATA_HOENN_BEAUTY_RIBBON:
+ case MON_DATA_HOENN_BEAUTY_RIBBON_SUPER:
+ case MON_DATA_HOENN_BEAUTY_RIBBON_HYPER:
+ case MON_DATA_HOENN_BEAUTY_RIBBON_MASTER:
+ case MON_DATA_HOENN_CUTE_RIBBON:
+ case MON_DATA_HOENN_CUTE_RIBBON_SUPER:
+ case MON_DATA_HOENN_CUTE_RIBBON_HYPER:
+ case MON_DATA_HOENN_CUTE_RIBBON_MASTER:
+ case MON_DATA_HOENN_SMART_RIBBON:
+ case MON_DATA_HOENN_SMART_RIBBON_SUPER:
+ case MON_DATA_HOENN_SMART_RIBBON_HYPER:
+ case MON_DATA_HOENN_SMART_RIBBON_MASTER:
+ case MON_DATA_HOENN_TOUGH_RIBBON:
+ case MON_DATA_HOENN_TOUGH_RIBBON_SUPER:
+ case MON_DATA_HOENN_TOUGH_RIBBON_HYPER:
+ case MON_DATA_HOENN_TOUGH_RIBBON_MASTER:
+ case MON_DATA_HOENN_CHAMPION_RIBBON:
+ case MON_DATA_HOENN_WINNING_RIBBON:
+ case MON_DATA_HOENN_VICTORY_RIBBON:
+ case MON_DATA_HOENN_ARTIST_RIBBON:
+ case MON_DATA_HOENN_EFFORT_RIBBON:
+ case MON_DATA_HOENN_MARINE_RIBBON:
+ case MON_DATA_HOENN_LAND_RIBBON:
+ case MON_DATA_HOENN_SKY_RIBBON:
+ case MON_DATA_HOENN_COUNTRY_RIBBON:
+ case MON_DATA_HOENN_NATIONAL_RIBBON:
+ case MON_DATA_HOENN_EARTH_RIBBON:
+ case MON_DATA_HOENN_WORLD_RIBBON:
flag = VALUE(u8);
- mask = (u64)flag << (attr - MON_DATA_COOL_RIBBON);
+ mask = (u64)flag << (attr - MON_DATA_HOENN_COOL_RIBBON);
if (flag)
blockB->ribbonFlags |= mask;
else
@@ -1333,29 +1333,29 @@ void SetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * value)
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_COOL_RIBBON:
+ case MON_DATA_COOL_RIBBON_GREAT:
+ case MON_DATA_COOL_RIBBON_ULTRA:
+ case MON_DATA_COOL_RIBBON_MASTER:
+ case MON_DATA_BEAUTY_RIBBON:
+ case MON_DATA_BEAUTY_RIBBON_GREAT:
+ case MON_DATA_BEAUTY_RIBBON_ULTRA:
+ case MON_DATA_BEAUTY_RIBBON_MASTER:
+ case MON_DATA_CUTE_RIBBON:
+ case MON_DATA_CUTE_RIBBON_GREAT:
+ case MON_DATA_CUTE_RIBBON_ULTRA:
+ case MON_DATA_CUTE_RIBBON_MASTER:
+ case MON_DATA_SMART_RIBBON:
+ case MON_DATA_SMART_RIBBON_GREAT:
+ case MON_DATA_SMART_RIBBON_ULTRA:
+ case MON_DATA_SMART_RIBBON_MASTER:
+ case MON_DATA_TOUGH_RIBBON:
+ case MON_DATA_TOUGH_RIBBON_GREAT:
+ case MON_DATA_TOUGH_RIBBON_ULTRA:
+ case MON_DATA_TOUGH_RIBBON_MASTER:
case MON_DATA_SINNOH_RIBBON_142:
flag = VALUE(u8);
- mask = (u64)flag << (attr - MON_DATA_SINNOH_RIBBON_122);
+ mask = (u64)flag << (attr - MON_DATA_COOL_RIBBON);
if (flag)
blockC->sinnohRibbons2 |= mask;
else
@@ -1630,33 +1630,33 @@ void AddBoxMonData(struct BoxPokemon * boxmon, int attr, int value)
case MON_DATA_MARKINGS:
case MON_DATA_GAME_LANGUAGE:
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_ABILITY_RIBBON:
+ case MON_DATA_GREAT_ABILITY_RIBBON:
+ case MON_DATA_DOUBLE_ABILITY_RIBBON:
+ case MON_DATA_MULTI_ABILITY_RIBBON:
+ case MON_DATA_PAIR_ABILITY_RIBBON:
+ case MON_DATA_WORLD_ABILITY_RIBBON:
+ case MON_DATA_ALERT_RIBBON:
+ case MON_DATA_SHOCK_RIBBON:
+ case MON_DATA_DOWNCAST_RIBBON:
+ case MON_DATA_CARELESS_RIBBON:
+ case MON_DATA_RELAX_RIBBON:
+ case MON_DATA_SNOOZE_RIBBON:
+ case MON_DATA_SMILE_RIBBON:
+ case MON_DATA_GORGEOUS_RIBBON:
+ case MON_DATA_ROYAL_RIBBON:
+ case MON_DATA_GORGEOUS_ROYAL_RIBBON:
+ case MON_DATA_FOOTPRINT_RIBBON:
+ case MON_DATA_RECORD_RIBBON:
+ case MON_DATA_HISTORY_RIBBON:
+ case MON_DATA_LEGEND_RIBBON:
+ case MON_DATA_RED_RIBBON:
+ case MON_DATA_GREEN_RIBBON:
+ case MON_DATA_BLUE_RIBBON:
+ case MON_DATA_FESTIVAL_RIBBON:
+ case MON_DATA_CARNIVAL_RIBBON:
+ case MON_DATA_CLASSIC_RIBBON:
+ case MON_DATA_PREMIER_RIBBON:
case MON_DATA_SINNOH_RIBBON_53:
case MON_DATA_MOVE1:
case MON_DATA_MOVE2:
@@ -1664,38 +1664,38 @@ void AddBoxMonData(struct BoxPokemon * boxmon, int attr, int value)
case MON_DATA_MOVE4:
case MON_DATA_IS_EGG:
case MON_DATA_HAS_NICKNAME:
- 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:
+ case MON_DATA_HOENN_COOL_RIBBON:
+ case MON_DATA_HOENN_COOL_RIBBON_SUPER:
+ case MON_DATA_HOENN_COOL_RIBBON_HYPER:
+ case MON_DATA_HOENN_COOL_RIBBON_MASTER:
+ case MON_DATA_HOENN_BEAUTY_RIBBON:
+ case MON_DATA_HOENN_BEAUTY_RIBBON_SUPER:
+ case MON_DATA_HOENN_BEAUTY_RIBBON_HYPER:
+ case MON_DATA_HOENN_BEAUTY_RIBBON_MASTER:
+ case MON_DATA_HOENN_CUTE_RIBBON:
+ case MON_DATA_HOENN_CUTE_RIBBON_SUPER:
+ case MON_DATA_HOENN_CUTE_RIBBON_HYPER:
+ case MON_DATA_HOENN_CUTE_RIBBON_MASTER:
+ case MON_DATA_HOENN_SMART_RIBBON:
+ case MON_DATA_HOENN_SMART_RIBBON_SUPER:
+ case MON_DATA_HOENN_SMART_RIBBON_HYPER:
+ case MON_DATA_HOENN_SMART_RIBBON_MASTER:
+ case MON_DATA_HOENN_TOUGH_RIBBON:
+ case MON_DATA_HOENN_TOUGH_RIBBON_SUPER:
+ case MON_DATA_HOENN_TOUGH_RIBBON_HYPER:
+ case MON_DATA_HOENN_TOUGH_RIBBON_MASTER:
+ case MON_DATA_HOENN_CHAMPION_RIBBON:
+ case MON_DATA_HOENN_WINNING_RIBBON:
+ case MON_DATA_HOENN_VICTORY_RIBBON:
+ case MON_DATA_HOENN_ARTIST_RIBBON:
+ case MON_DATA_HOENN_EFFORT_RIBBON:
+ case MON_DATA_HOENN_MARINE_RIBBON:
+ case MON_DATA_HOENN_LAND_RIBBON:
+ case MON_DATA_HOENN_SKY_RIBBON:
+ case MON_DATA_HOENN_COUNTRY_RIBBON:
+ case MON_DATA_HOENN_NATIONAL_RIBBON:
+ case MON_DATA_HOENN_EARTH_RIBBON:
+ case MON_DATA_HOENN_WORLD_RIBBON:
case MON_DATA_FATEFUL_ENCOUNTER:
case MON_DATA_GENDER:
case MON_DATA_FORME:
@@ -1708,26 +1708,26 @@ void AddBoxMonData(struct BoxPokemon * boxmon, int attr, int value)
case MON_DATA_NICKNAME_4:
case MON_DATA_UNK_120:
case MON_DATA_GAME_VERSION:
- 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_COOL_RIBBON:
+ case MON_DATA_COOL_RIBBON_GREAT:
+ case MON_DATA_COOL_RIBBON_ULTRA:
+ case MON_DATA_COOL_RIBBON_MASTER:
+ case MON_DATA_BEAUTY_RIBBON:
+ case MON_DATA_BEAUTY_RIBBON_GREAT:
+ case MON_DATA_BEAUTY_RIBBON_ULTRA:
+ case MON_DATA_BEAUTY_RIBBON_MASTER:
+ case MON_DATA_CUTE_RIBBON:
+ case MON_DATA_CUTE_RIBBON_GREAT:
+ case MON_DATA_CUTE_RIBBON_ULTRA:
+ case MON_DATA_CUTE_RIBBON_MASTER:
+ case MON_DATA_SMART_RIBBON:
+ case MON_DATA_SMART_RIBBON_GREAT:
+ case MON_DATA_SMART_RIBBON_ULTRA:
+ case MON_DATA_SMART_RIBBON_MASTER:
+ case MON_DATA_TOUGH_RIBBON:
+ case MON_DATA_TOUGH_RIBBON_GREAT:
+ case MON_DATA_TOUGH_RIBBON_ULTRA:
+ case MON_DATA_TOUGH_RIBBON_MASTER:
case MON_DATA_SINNOH_RIBBON_142:
case MON_DATA_OT_NAME:
case MON_DATA_OT_NAME_2:
diff --git a/arm9/src/unk_0207FC5C.c b/arm9/src/unk_0207FC5C.c
new file mode 100644
index 00000000..1f001de1
--- /dev/null
+++ b/arm9/src/unk_0207FC5C.c
@@ -0,0 +1,533 @@
+#include "global.h"
+#include "unk_0207FC5C.h"
+#include "constants/pokemon.h"
+
+#pragma thumb on
+
+struct UnkStruct_020FB788
+{
+ u32 monDataId;
+ u16 gfxId;
+ u16 palId;
+ u16 nameIdx;
+ u16 descIdx;
+};
+
+const struct UnkStruct_020FB788 UNK_020FB788[] = {
+ {
+ MON_DATA_HOENN_CHAMPION_RIBBON,
+ 72,
+ 0,
+ RIBBON_HOENN_CHAMPION,
+ 80
+ }, {
+ MON_DATA_HOENN_COOL_RIBBON,
+ 73,
+ 0,
+ RIBBON_HOENN_COOL,
+ 81
+ }, {
+ MON_DATA_HOENN_COOL_RIBBON_SUPER,
+ 74,
+ 0,
+ RIBBON_HOENN_COOL_SUPER,
+ 82
+ }, {
+ MON_DATA_HOENN_COOL_RIBBON_HYPER,
+ 75,
+ 0,
+ RIBBON_HOENN_COOL_HYPER,
+ 83
+ }, {
+ MON_DATA_HOENN_COOL_RIBBON_MASTER,
+ 76,
+ 0,
+ RIBBON_HOENN_COOL_MASTER,
+ 84
+ }, {
+ MON_DATA_HOENN_BEAUTY_RIBBON,
+ 73,
+ 1,
+ RIBBON_HOENN_BEAUTY,
+ 85
+ }, {
+ MON_DATA_HOENN_BEAUTY_RIBBON_SUPER,
+ 74,
+ 1,
+ RIBBON_HOENN_BEAUTY_SUPER,
+ 86
+ }, {
+ MON_DATA_HOENN_BEAUTY_RIBBON_HYPER,
+ 75,
+ 1,
+ RIBBON_HOENN_BEAUTY_HYPER,
+ 87
+ }, {
+ MON_DATA_HOENN_BEAUTY_RIBBON_MASTER,
+ 76,
+ 1,
+ RIBBON_HOENN_BEAUTY_MASTER,
+ 88
+ }, {
+ MON_DATA_HOENN_CUTE_RIBBON,
+ 73,
+ 2,
+ RIBBON_HOENN_CUTE,
+ 89
+ }, {
+ MON_DATA_HOENN_CUTE_RIBBON_SUPER,
+ 74,
+ 2,
+ RIBBON_HOENN_CUTE_SUPER,
+ 90
+ }, {
+ MON_DATA_HOENN_CUTE_RIBBON_HYPER,
+ 75,
+ 2,
+ RIBBON_HOENN_CUTE_HYPER,
+ 91
+ }, {
+ MON_DATA_HOENN_CUTE_RIBBON_MASTER,
+ 76,
+ 2,
+ RIBBON_HOENN_CUTE_MASTER,
+ 92
+ }, {
+ MON_DATA_HOENN_SMART_RIBBON,
+ 73,
+ 3,
+ RIBBON_HOENN_SMART,
+ 93
+ }, {
+ MON_DATA_HOENN_SMART_RIBBON_SUPER,
+ 74,
+ 3,
+ RIBBON_HOENN_SMART_SUPER,
+ 94
+ }, {
+ MON_DATA_HOENN_SMART_RIBBON_HYPER,
+ 75,
+ 3,
+ RIBBON_HOENN_SMART_HYPER,
+ 95
+ }, {
+ MON_DATA_HOENN_SMART_RIBBON_MASTER,
+ 76,
+ 3,
+ RIBBON_HOENN_SMART_MASTER,
+ 96
+ }, {
+ MON_DATA_HOENN_TOUGH_RIBBON,
+ 73,
+ 4,
+ RIBBON_HOENN_TOUGH,
+ 97
+ }, {
+ MON_DATA_HOENN_TOUGH_RIBBON_SUPER,
+ 74,
+ 4,
+ RIBBON_HOENN_TOUGH_SUPER,
+ 98
+ }, {
+ MON_DATA_HOENN_TOUGH_RIBBON_HYPER,
+ 75,
+ 4,
+ RIBBON_HOENN_TOUGH_HYPER,
+ 99
+ }, {
+ MON_DATA_HOENN_TOUGH_RIBBON_MASTER,
+ 76,
+ 4,
+ RIBBON_HOENN_TOUGH_MASTER,
+ 100
+ }, {
+ MON_DATA_HOENN_WINNING_RIBBON,
+ 78,
+ 0,
+ RIBBON_HOENN_WINNING,
+ 101
+ }, {
+ MON_DATA_HOENN_VICTORY_RIBBON,
+ 77,
+ 0,
+ RIBBON_HOENN_VICTORY,
+ 102
+ }, {
+ MON_DATA_HOENN_ARTIST_RIBBON,
+ 79,
+ 1,
+ RIBBON_HOENN_ARTIST,
+ 103
+ }, {
+ MON_DATA_HOENN_EFFORT_RIBBON,
+ 80,
+ 2,
+ RIBBON_HOENN_EFFORT,
+ 104
+ }, {
+ MON_DATA_HOENN_MARINE_RIBBON,
+ 81,
+ 1,
+ RIBBON_HOENN_MARINE,
+ 0 | 0x8000
+ }, {
+ MON_DATA_HOENN_LAND_RIBBON,
+ 81,
+ 3,
+ RIBBON_HOENN_LAND,
+ 1 | 0x8000
+ }, {
+ MON_DATA_HOENN_SKY_RIBBON,
+ 81,
+ 4,
+ RIBBON_HOENN_SKY,
+ 2 | 0x8000
+ }, {
+ MON_DATA_HOENN_COUNTRY_RIBBON,
+ 82,
+ 3,
+ RIBBON_HOENN_COUNTRY,
+ 178
+ }, {
+ MON_DATA_HOENN_NATIONAL_RIBBON,
+ 82,
+ 4,
+ RIBBON_HOENN_NATIONAL,
+ 190
+ }, {
+ MON_DATA_HOENN_EARTH_RIBBON,
+ 83,
+ 0,
+ RIBBON_HOENN_EARTH,
+ 191
+ }, {
+ MON_DATA_HOENN_WORLD_RIBBON,
+ 83,
+ 1,
+ RIBBON_HOENN_WORLD,
+ 178
+ }, {
+ MON_DATA_SINNOH_CHAMP_RIBBON,
+ 88,
+ 0,
+ RIBBON_SINNOH_CHAMP,
+ 105
+ }, {
+ MON_DATA_COOL_RIBBON,
+ 89,
+ 0,
+ RIBBON_COOL,
+ 106
+ }, {
+ MON_DATA_COOL_RIBBON_GREAT,
+ 90,
+ 0,
+ RIBBON_COOL_GREAT,
+ 107
+ }, {
+ MON_DATA_COOL_RIBBON_ULTRA,
+ 91,
+ 0,
+ RIBBON_COOL_ULTRA,
+ 108
+ }, {
+ MON_DATA_COOL_RIBBON_MASTER,
+ 92,
+ 0,
+ RIBBON_COOL_MASTER,
+ 109
+ }, {
+ MON_DATA_BEAUTY_RIBBON,
+ 89,
+ 1,
+ RIBBON_BEAUTY,
+ 110
+ }, {
+ MON_DATA_BEAUTY_RIBBON_GREAT,
+ 90,
+ 1,
+ RIBBON_BEAUTY_GREAT,
+ 111
+ }, {
+ MON_DATA_BEAUTY_RIBBON_ULTRA,
+ 91,
+ 1,
+ RIBBON_BEAUTY_ULTRA,
+ 112
+ }, {
+ MON_DATA_BEAUTY_RIBBON_MASTER,
+ 92,
+ 1,
+ RIBBON_BEAUTY_MASTER,
+ 113
+ }, {
+ MON_DATA_CUTE_RIBBON,
+ 89,
+ 2,
+ RIBBON_CUTE,
+ 114
+ }, {
+ MON_DATA_CUTE_RIBBON_GREAT,
+ 90,
+ 2,
+ RIBBON_CUTE_GREAT,
+ 115
+ }, {
+ MON_DATA_CUTE_RIBBON_ULTRA,
+ 91,
+ 2,
+ RIBBON_CUTE_ULTRA,
+ 116
+ }, {
+ MON_DATA_CUTE_RIBBON_MASTER,
+ 92,
+ 2,
+ RIBBON_CUTE_MASTER,
+ 117
+ }, {
+ MON_DATA_SMART_RIBBON,
+ 89,
+ 3,
+ RIBBON_SMART,
+ 118
+ }, {
+ MON_DATA_SMART_RIBBON_GREAT,
+ 90,
+ 3,
+ RIBBON_SMART_GREAT,
+ 119
+ }, {
+ MON_DATA_SMART_RIBBON_ULTRA,
+ 91,
+ 3,
+ RIBBON_SMART_ULTRA,
+ 120
+ }, {
+ MON_DATA_SMART_RIBBON_MASTER,
+ 92,
+ 3,
+ RIBBON_SMART_MASTER,
+ 121
+ }, {
+ MON_DATA_TOUGH_RIBBON,
+ 89,
+ 4,
+ RIBBON_TOUGH,
+ 122
+ }, {
+ MON_DATA_TOUGH_RIBBON_GREAT,
+ 90,
+ 4,
+ RIBBON_TOUGH_GREAT,
+ 123
+ }, {
+ MON_DATA_TOUGH_RIBBON_ULTRA,
+ 91,
+ 4,
+ RIBBON_TOUGH_ULTRA,
+ 124
+ }, {
+ MON_DATA_TOUGH_RIBBON_MASTER,
+ 92,
+ 4,
+ RIBBON_TOUGH_MASTER,
+ 125
+ }, {
+ MON_DATA_ABILITY_RIBBON,
+ 93,
+ 0,
+ RIBBON_ABILITY,
+ 126
+ }, {
+ MON_DATA_GREAT_ABILITY_RIBBON,
+ 94,
+ 0,
+ RIBBON_GREAT_ABILITY,
+ 127
+ }, {
+ MON_DATA_DOUBLE_ABILITY_RIBBON,
+ 95,
+ 0,
+ RIBBON_DOUBLE_ABILITY,
+ 128
+ }, {
+ MON_DATA_MULTI_ABILITY_RIBBON,
+ 96,
+ 0,
+ RIBBON_MULTI_ABILITY,
+ 129
+ }, {
+ MON_DATA_PAIR_ABILITY_RIBBON,
+ 97,
+ 0,
+ RIBBON_PAIR_ABILITY,
+ 130
+ }, {
+ MON_DATA_WORLD_ABILITY_RIBBON,
+ 98,
+ 0,
+ RIBBON_WORLD_ABILITY,
+ 131
+ }, {
+ MON_DATA_ALERT_RIBBON,
+ 99,
+ 2,
+ RIBBON_ALERT,
+ 132
+ }, {
+ MON_DATA_SHOCK_RIBBON,
+ 100,
+ 0,
+ RIBBON_SHOCK,
+ 133
+ }, {
+ MON_DATA_DOWNCAST_RIBBON,
+ 101,
+ 1,
+ RIBBON_DOWNCAST,
+ 134
+ }, {
+ MON_DATA_CARELESS_RIBBON,
+ 102,
+ 2,
+ RIBBON_CARELESS,
+ 135
+ }, {
+ MON_DATA_RELAX_RIBBON,
+ 103,
+ 3,
+ RIBBON_RELAX,
+ 136
+ }, {
+ MON_DATA_SNOOZE_RIBBON,
+ 104,
+ 0,
+ RIBBON_SNOOZE,
+ 137
+ }, {
+ MON_DATA_SMILE_RIBBON,
+ 105,
+ 2,
+ RIBBON_SMILE,
+ 138
+ }, {
+ MON_DATA_GORGEOUS_RIBBON,
+ 106,
+ 1,
+ RIBBON_GORGEOUS,
+ 139
+ }, {
+ MON_DATA_ROYAL_RIBBON,
+ 107,
+ 3,
+ RIBBON_ROYAL,
+ 140
+ }, {
+ MON_DATA_GORGEOUS_ROYAL_RIBBON,
+ 108,
+ 0,
+ RIBBON_GORGEOUS_ROYAL,
+ 141
+ }, {
+ MON_DATA_FOOTPRINT_RIBBON,
+ 109,
+ 0,
+ RIBBON_FOOTPRINT,
+ 142
+ }, {
+ MON_DATA_RECORD_RIBBON,
+ 110,
+ 1,
+ RIBBON_RECORD,
+ 143
+ }, {
+ MON_DATA_HISTORY_RIBBON,
+ 111,
+ 3,
+ RIBBON_HISTORY,
+ 144
+ }, {
+ MON_DATA_LEGEND_RIBBON,
+ 112,
+ 0,
+ RIBBON_LEGEND,
+ 145
+ }, {
+ MON_DATA_RED_RIBBON,
+ 113,
+ 0,
+ RIBBON_RED,
+ 7 | 0x8000
+ }, {
+ MON_DATA_GREEN_RIBBON,
+ 114,
+ 3,
+ RIBBON_GREEN,
+ 8 | 0x8000
+ }, {
+ MON_DATA_BLUE_RIBBON,
+ 115,
+ 1,
+ RIBBON_BLUE,
+ 9 | 0x8000
+ }, {
+ MON_DATA_FESTIVAL_RIBBON,
+ 116,
+ 1,
+ RIBBON_FESTIVAL,
+ 10 | 0x8000
+ }, {
+ MON_DATA_CARNIVAL_RIBBON,
+ 117,
+ 0,
+ RIBBON_CARNIVAL,
+ 11 | 0x8000
+ }, {
+ MON_DATA_CLASSIC_RIBBON,
+ 118,
+ 1,
+ RIBBON_CLASSIC,
+ 12 | 0x8000
+ }, {
+ MON_DATA_PREMIER_RIBBON,
+ 119,
+ 0,
+ RIBBON_PREMIER,
+ 13 | 0x8000
+ }
+};
+
+u32 FUN_0207FC5C(u8 a0, u32 a1)
+{
+ switch (a1)
+ {
+ case 0:
+ return UNK_020FB788[a0].monDataId;
+ case 1:
+ return UNK_020FB788[a0].gfxId;
+ case 2:
+ return UNK_020FB788[a0].palId;
+ case 3:
+ return UNK_020FB788[a0].nameIdx;
+ case 4:
+ return UNK_020FB788[a0].descIdx;
+ default:
+ return 0;
+ }
+}
+
+int FUN_0207FCC0(u8 * a0, u32 a1)
+{
+ int ret = (int)UNK_020FB788[a1].descIdx;
+ if (ret & 0x8000)
+ ret = a0[(u8)ret] + 0x92;
+ return ret;
+}
+
+u8 FUN_0207FCE0(u32 a0)
+{
+ int ret = (int)UNK_020FB788[a0].descIdx;
+ if (ret & 0x8000)
+ return (u8)ret;
+ return 0xFF;
+}
diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h
index afaa0fb0..06a105b6 100644
--- a/include/constants/pokemon.h
+++ b/include/constants/pokemon.h
@@ -95,185 +95,185 @@
#define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536
-#define MON_DATA_PERSONALITY 0
-#define MON_DATA_PARTY_LOCK 1
-#define MON_DATA_BOX_LOCK 2
-#define MON_DATA_CHECKSUM_FAILED 3
-#define MON_DATA_CHECKSUM 4
-#define MON_DATA_SPECIES 5
-#define MON_DATA_HELD_ITEM 6
-#define MON_DATA_OTID 7
-#define MON_DATA_EXPERIENCE 8
-#define MON_DATA_FRIENDSHIP 9
-#define MON_DATA_ABILITY 10
-#define MON_DATA_MARKINGS 11
-#define MON_DATA_GAME_LANGUAGE 12
-#define MON_DATA_HP_EV 13
-#define MON_DATA_ATK_EV 14
-#define MON_DATA_DEF_EV 15
-#define MON_DATA_SPEED_EV 16
-#define MON_DATA_SPATK_EV 17
-#define MON_DATA_SPDEF_EV 18
-#define MON_DATA_COOL 19
-#define MON_DATA_BEAUTY 20
-#define MON_DATA_CUTE 21
-#define MON_DATA_SMART 22
-#define MON_DATA_TOUGH 23
-#define MON_DATA_SHEEN 24
-#define MON_DATA_SINNOH_CHAMP_RIBBON 25
-#define MON_DATA_SINNOH_RIBBON_26 26
-#define MON_DATA_SINNOH_RIBBON_27 27
-#define MON_DATA_SINNOH_RIBBON_28 28
-#define MON_DATA_SINNOH_RIBBON_29 29
-#define MON_DATA_SINNOH_RIBBON_30 30
-#define MON_DATA_SINNOH_RIBBON_31 31
-#define MON_DATA_SINNOH_RIBBON_32 32
-#define MON_DATA_SINNOH_RIBBON_33 33
-#define MON_DATA_SINNOH_RIBBON_34 34
-#define MON_DATA_SINNOH_RIBBON_35 35
-#define MON_DATA_SINNOH_RIBBON_36 36
-#define MON_DATA_SINNOH_RIBBON_37 37
-#define MON_DATA_SINNOH_RIBBON_38 38
-#define MON_DATA_SINNOH_RIBBON_39 39
-#define MON_DATA_SINNOH_RIBBON_40 40
-#define MON_DATA_SINNOH_RIBBON_41 41
-#define MON_DATA_SINNOH_RIBBON_42 42
-#define MON_DATA_SINNOH_RIBBON_43 43
-#define MON_DATA_SINNOH_RIBBON_44 44
-#define MON_DATA_SINNOH_RIBBON_45 45
-#define MON_DATA_SINNOH_RIBBON_46 46
-#define MON_DATA_SINNOH_RIBBON_47 47
-#define MON_DATA_SINNOH_RIBBON_48 48
-#define MON_DATA_SINNOH_RIBBON_49 49
-#define MON_DATA_SINNOH_RIBBON_50 50
-#define MON_DATA_SINNOH_RIBBON_51 51
-#define MON_DATA_SINNOH_RIBBON_52 52
-#define MON_DATA_SINNOH_RIBBON_53 53
-#define MON_DATA_MOVE1 54
-#define MON_DATA_MOVE2 55
-#define MON_DATA_MOVE3 56
-#define MON_DATA_MOVE4 57
-#define MON_DATA_MOVE1PP 58
-#define MON_DATA_MOVE2PP 59
-#define MON_DATA_MOVE3PP 60
-#define MON_DATA_MOVE4PP 61
-#define MON_DATA_MOVE1PPUP 62
-#define MON_DATA_MOVE2PPUP 63
-#define MON_DATA_MOVE3PPUP 64
-#define MON_DATA_MOVE4PPUP 65
-#define MON_DATA_MOVE1MAXPP 66
-#define MON_DATA_MOVE2MAXPP 67
-#define MON_DATA_MOVE3MAXPP 68
-#define MON_DATA_MOVE4MAXPP 69
-#define MON_DATA_HP_IV 70
-#define MON_DATA_ATK_IV 71
-#define MON_DATA_DEF_IV 72
-#define MON_DATA_SPEED_IV 73
-#define MON_DATA_SPATK_IV 74
-#define MON_DATA_SPDEF_IV 75
-#define MON_DATA_IS_EGG 76
-#define MON_DATA_HAS_NICKNAME 77
-#define MON_DATA_COOL_RIBBON 78
-#define MON_DATA_HOENN_RIBBON_79 79
-#define MON_DATA_HOENN_RIBBON_80 80
-#define MON_DATA_HOENN_RIBBON_81 81
-#define MON_DATA_HOENN_RIBBON_82 82
-#define MON_DATA_HOENN_RIBBON_83 83
-#define MON_DATA_HOENN_RIBBON_84 84
-#define MON_DATA_HOENN_RIBBON_85 85
-#define MON_DATA_HOENN_RIBBON_86 86
-#define MON_DATA_HOENN_RIBBON_87 87
-#define MON_DATA_HOENN_RIBBON_88 88
-#define MON_DATA_HOENN_RIBBON_89 89
-#define MON_DATA_HOENN_RIBBON_90 90
-#define MON_DATA_HOENN_RIBBON_91 91
-#define MON_DATA_HOENN_RIBBON_92 92
-#define MON_DATA_HOENN_RIBBON_93 93
-#define MON_DATA_HOENN_RIBBON_94 94
-#define MON_DATA_HOENN_RIBBON_95 95
-#define MON_DATA_HOENN_RIBBON_96 96
-#define MON_DATA_HOENN_RIBBON_97 97
-#define MON_DATA_HOENN_RIBBON_98 98
-#define MON_DATA_HOENN_RIBBON_99 99
-#define MON_DATA_HOENN_RIBBON_100 100
-#define MON_DATA_HOENN_RIBBON_101 101
-#define MON_DATA_HOENN_RIBBON_102 102
-#define MON_DATA_HOENN_RIBBON_103 103
-#define MON_DATA_HOENN_RIBBON_104 104
-#define MON_DATA_HOENN_RIBBON_105 105
-#define MON_DATA_HOENN_RIBBON_106 106
-#define MON_DATA_HOENN_RIBBON_107 107
-#define MON_DATA_HOENN_RIBBON_108 108
-#define MON_DATA_HOENN_RIBBON_109 109
-#define MON_DATA_FATEFUL_ENCOUNTER 110
-#define MON_DATA_GENDER 111
-#define MON_DATA_FORME 112
-#define MON_DATA_RESERVED_113 113 // HGSS
-#define MON_DATA_RESERVED_114 114 // Plat
-#define MON_DATA_UNUSED_115 115
-#define MON_DATA_NICKNAME 116
-#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
-#define MON_DATA_SINNOH_RIBBON_123 123
-#define MON_DATA_SINNOH_RIBBON_124 124
-#define MON_DATA_SINNOH_RIBBON_125 125
-#define MON_DATA_SINNOH_RIBBON_126 126
-#define MON_DATA_SINNOH_RIBBON_127 127
-#define MON_DATA_SINNOH_RIBBON_128 128
-#define MON_DATA_SINNOH_RIBBON_129 129
-#define MON_DATA_SINNOH_RIBBON_130 130
-#define MON_DATA_SINNOH_RIBBON_131 131
-#define MON_DATA_SINNOH_RIBBON_132 132
-#define MON_DATA_SINNOH_RIBBON_133 133
-#define MON_DATA_SINNOH_RIBBON_134 134
-#define MON_DATA_SINNOH_RIBBON_135 135
-#define MON_DATA_SINNOH_RIBBON_136 136
-#define MON_DATA_SINNOH_RIBBON_137 137
-#define MON_DATA_SINNOH_RIBBON_138 138
-#define MON_DATA_SINNOH_RIBBON_139 139
-#define MON_DATA_SINNOH_RIBBON_140 140
-#define MON_DATA_SINNOH_RIBBON_141 141
-#define MON_DATA_SINNOH_RIBBON_142 142
-#define MON_DATA_OT_NAME 143
-#define MON_DATA_OT_NAME_2 144 // ???
-#define MON_DATA_EGG_MET_YEAR 145
-#define MON_DATA_EGG_MET_MONTH 146
-#define MON_DATA_EGG_MET_DAY 147
-#define MON_DATA_MET_YEAR 148
-#define MON_DATA_MET_MONTH 149
-#define MON_DATA_MET_DAY 150
-#define MON_DATA_EGG_MET_LOCATION 151
-#define MON_DATA_MET_LOCATION 152
-#define MON_DATA_POKERUS 153
-#define MON_DATA_POKEBALL 154
-#define MON_DATA_MET_LEVEL 155
-#define MON_DATA_MET_GENDER 156
-#define MON_DATA_ENCOUNTER_TYPE 157
-#define MON_DATA_RESERVED_158 158 // HGSS
-#define MON_DATA_STATUS 159
-#define MON_DATA_LEVEL 160
-#define MON_DATA_CAPSULE 161
-#define MON_DATA_HP 162
-#define MON_DATA_MAXHP 163
-#define MON_DATA_ATK 164
-#define MON_DATA_DEF 165
-#define MON_DATA_SPEED 166
-#define MON_DATA_SPATK 167
-#define MON_DATA_SPDEF 168
-#define MON_DATA_SEAL_STRUCT 169
-#define MON_DATA_SEAL_COORDS 170
-#define MON_DATA_SPECIES_EXISTS 171
-#define MON_DATA_SANITY_IS_EGG 172
-#define MON_DATA_SPECIES2 173
-#define MON_DATA_IVS_WORD 174
-#define MON_DATA_UNK_175 175
-#define MON_DATA_TYPE_1 176
-#define MON_DATA_TYPE_2 177
-#define MON_DATA_SPECIES_NAME 178
+#define MON_DATA_PERSONALITY 0
+#define MON_DATA_PARTY_LOCK 1
+#define MON_DATA_BOX_LOCK 2
+#define MON_DATA_CHECKSUM_FAILED 3
+#define MON_DATA_CHECKSUM 4
+#define MON_DATA_SPECIES 5
+#define MON_DATA_HELD_ITEM 6
+#define MON_DATA_OTID 7
+#define MON_DATA_EXPERIENCE 8
+#define MON_DATA_FRIENDSHIP 9
+#define MON_DATA_ABILITY 10
+#define MON_DATA_MARKINGS 11
+#define MON_DATA_GAME_LANGUAGE 12
+#define MON_DATA_HP_EV 13
+#define MON_DATA_ATK_EV 14
+#define MON_DATA_DEF_EV 15
+#define MON_DATA_SPEED_EV 16
+#define MON_DATA_SPATK_EV 17
+#define MON_DATA_SPDEF_EV 18
+#define MON_DATA_COOL 19
+#define MON_DATA_BEAUTY 20
+#define MON_DATA_CUTE 21
+#define MON_DATA_SMART 22
+#define MON_DATA_TOUGH 23
+#define MON_DATA_SHEEN 24
+#define MON_DATA_SINNOH_CHAMP_RIBBON 25
+#define MON_DATA_ABILITY_RIBBON 26
+#define MON_DATA_GREAT_ABILITY_RIBBON 27
+#define MON_DATA_DOUBLE_ABILITY_RIBBON 28
+#define MON_DATA_MULTI_ABILITY_RIBBON 29
+#define MON_DATA_PAIR_ABILITY_RIBBON 30
+#define MON_DATA_WORLD_ABILITY_RIBBON 31
+#define MON_DATA_ALERT_RIBBON 32
+#define MON_DATA_SHOCK_RIBBON 33
+#define MON_DATA_DOWNCAST_RIBBON 34
+#define MON_DATA_CARELESS_RIBBON 35
+#define MON_DATA_RELAX_RIBBON 36
+#define MON_DATA_SNOOZE_RIBBON 37
+#define MON_DATA_SMILE_RIBBON 38
+#define MON_DATA_GORGEOUS_RIBBON 39
+#define MON_DATA_ROYAL_RIBBON 40
+#define MON_DATA_GORGEOUS_ROYAL_RIBBON 41
+#define MON_DATA_FOOTPRINT_RIBBON 42
+#define MON_DATA_RECORD_RIBBON 43
+#define MON_DATA_HISTORY_RIBBON 44
+#define MON_DATA_LEGEND_RIBBON 45
+#define MON_DATA_RED_RIBBON 46
+#define MON_DATA_GREEN_RIBBON 47
+#define MON_DATA_BLUE_RIBBON 48
+#define MON_DATA_FESTIVAL_RIBBON 49
+#define MON_DATA_CARNIVAL_RIBBON 50
+#define MON_DATA_CLASSIC_RIBBON 51
+#define MON_DATA_PREMIER_RIBBON 52
+#define MON_DATA_SINNOH_RIBBON_53 53
+#define MON_DATA_MOVE1 54
+#define MON_DATA_MOVE2 55
+#define MON_DATA_MOVE3 56
+#define MON_DATA_MOVE4 57
+#define MON_DATA_MOVE1PP 58
+#define MON_DATA_MOVE2PP 59
+#define MON_DATA_MOVE3PP 60
+#define MON_DATA_MOVE4PP 61
+#define MON_DATA_MOVE1PPUP 62
+#define MON_DATA_MOVE2PPUP 63
+#define MON_DATA_MOVE3PPUP 64
+#define MON_DATA_MOVE4PPUP 65
+#define MON_DATA_MOVE1MAXPP 66
+#define MON_DATA_MOVE2MAXPP 67
+#define MON_DATA_MOVE3MAXPP 68
+#define MON_DATA_MOVE4MAXPP 69
+#define MON_DATA_HP_IV 70
+#define MON_DATA_ATK_IV 71
+#define MON_DATA_DEF_IV 72
+#define MON_DATA_SPEED_IV 73
+#define MON_DATA_SPATK_IV 74
+#define MON_DATA_SPDEF_IV 75
+#define MON_DATA_IS_EGG 76
+#define MON_DATA_HAS_NICKNAME 77
+#define MON_DATA_HOENN_COOL_RIBBON 78
+#define MON_DATA_HOENN_COOL_RIBBON_SUPER 79
+#define MON_DATA_HOENN_COOL_RIBBON_HYPER 80
+#define MON_DATA_HOENN_COOL_RIBBON_MASTER 81
+#define MON_DATA_HOENN_BEAUTY_RIBBON 82
+#define MON_DATA_HOENN_BEAUTY_RIBBON_SUPER 83
+#define MON_DATA_HOENN_BEAUTY_RIBBON_HYPER 84
+#define MON_DATA_HOENN_BEAUTY_RIBBON_MASTER 85
+#define MON_DATA_HOENN_CUTE_RIBBON 86
+#define MON_DATA_HOENN_CUTE_RIBBON_SUPER 87
+#define MON_DATA_HOENN_CUTE_RIBBON_HYPER 88
+#define MON_DATA_HOENN_CUTE_RIBBON_MASTER 89
+#define MON_DATA_HOENN_SMART_RIBBON 90
+#define MON_DATA_HOENN_SMART_RIBBON_SUPER 91
+#define MON_DATA_HOENN_SMART_RIBBON_HYPER 92
+#define MON_DATA_HOENN_SMART_RIBBON_MASTER 93
+#define MON_DATA_HOENN_TOUGH_RIBBON 94
+#define MON_DATA_HOENN_TOUGH_RIBBON_SUPER 95
+#define MON_DATA_HOENN_TOUGH_RIBBON_HYPER 96
+#define MON_DATA_HOENN_TOUGH_RIBBON_MASTER 97
+#define MON_DATA_HOENN_CHAMPION_RIBBON 98
+#define MON_DATA_HOENN_WINNING_RIBBON 99
+#define MON_DATA_HOENN_VICTORY_RIBBON 100
+#define MON_DATA_HOENN_ARTIST_RIBBON 101
+#define MON_DATA_HOENN_EFFORT_RIBBON 102
+#define MON_DATA_HOENN_MARINE_RIBBON 103
+#define MON_DATA_HOENN_LAND_RIBBON 104
+#define MON_DATA_HOENN_SKY_RIBBON 105
+#define MON_DATA_HOENN_COUNTRY_RIBBON 106
+#define MON_DATA_HOENN_NATIONAL_RIBBON 107
+#define MON_DATA_HOENN_EARTH_RIBBON 108
+#define MON_DATA_HOENN_WORLD_RIBBON 109
+#define MON_DATA_FATEFUL_ENCOUNTER 110
+#define MON_DATA_GENDER 111
+#define MON_DATA_FORME 112
+#define MON_DATA_RESERVED_113 113 // HGSS
+#define MON_DATA_RESERVED_114 114 // Plat
+#define MON_DATA_UNUSED_115 115
+#define MON_DATA_NICKNAME 116
+#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_COOL_RIBBON 122
+#define MON_DATA_COOL_RIBBON_GREAT 123
+#define MON_DATA_COOL_RIBBON_ULTRA 124
+#define MON_DATA_COOL_RIBBON_MASTER 125
+#define MON_DATA_BEAUTY_RIBBON 126
+#define MON_DATA_BEAUTY_RIBBON_GREAT 127
+#define MON_DATA_BEAUTY_RIBBON_ULTRA 128
+#define MON_DATA_BEAUTY_RIBBON_MASTER 129
+#define MON_DATA_CUTE_RIBBON 130
+#define MON_DATA_CUTE_RIBBON_GREAT 131
+#define MON_DATA_CUTE_RIBBON_ULTRA 132
+#define MON_DATA_CUTE_RIBBON_MASTER 133
+#define MON_DATA_SMART_RIBBON 134
+#define MON_DATA_SMART_RIBBON_GREAT 135
+#define MON_DATA_SMART_RIBBON_ULTRA 136
+#define MON_DATA_SMART_RIBBON_MASTER 137
+#define MON_DATA_TOUGH_RIBBON 138
+#define MON_DATA_TOUGH_RIBBON_GREAT 139
+#define MON_DATA_TOUGH_RIBBON_ULTRA 140
+#define MON_DATA_TOUGH_RIBBON_MASTER 141
+#define MON_DATA_SINNOH_RIBBON_142 142
+#define MON_DATA_OT_NAME 143
+#define MON_DATA_OT_NAME_2 144 // ???
+#define MON_DATA_EGG_MET_YEAR 145
+#define MON_DATA_EGG_MET_MONTH 146
+#define MON_DATA_EGG_MET_DAY 147
+#define MON_DATA_MET_YEAR 148
+#define MON_DATA_MET_MONTH 149
+#define MON_DATA_MET_DAY 150
+#define MON_DATA_EGG_MET_LOCATION 151
+#define MON_DATA_MET_LOCATION 152
+#define MON_DATA_POKERUS 153
+#define MON_DATA_POKEBALL 154
+#define MON_DATA_MET_LEVEL 155
+#define MON_DATA_MET_GENDER 156
+#define MON_DATA_ENCOUNTER_TYPE 157
+#define MON_DATA_RESERVED_158 158 // HGSS
+#define MON_DATA_STATUS 159
+#define MON_DATA_LEVEL 160
+#define MON_DATA_CAPSULE 161
+#define MON_DATA_HP 162
+#define MON_DATA_MAXHP 163
+#define MON_DATA_ATK 164
+#define MON_DATA_DEF 165
+#define MON_DATA_SPEED 166
+#define MON_DATA_SPATK 167
+#define MON_DATA_SPDEF 168
+#define MON_DATA_SEAL_STRUCT 169
+#define MON_DATA_SEAL_COORDS 170
+#define MON_DATA_SPECIES_EXISTS 171
+#define MON_DATA_SANITY_IS_EGG 172
+#define MON_DATA_SPECIES2 173
+#define MON_DATA_IVS_WORD 174
+#define MON_DATA_UNK_175 175
+#define MON_DATA_TYPE_1 176
+#define MON_DATA_TYPE_2 177
+#define MON_DATA_SPECIES_NAME 178
#define MON_RATIO_MALE 0
#define MON_RATIO_EIGHTH 31
diff --git a/include/script.h b/include/script.h
index 7c4dae6d..8fd7696f 100644
--- a/include/script.h
+++ b/include/script.h
@@ -24,7 +24,7 @@ struct ScriptContext
u32 unk74;
struct MsgData * unk78;
u8 *unk7C;
- struct SaveBlock2 * unk80;
+ struct UnkStruct_0204639C * unk80;
};
#define ScriptReadByte(ctx) (*(ctx->scriptPtr++))
diff --git a/include/unk_0207FC5C.h b/include/unk_0207FC5C.h
new file mode 100644
index 00000000..0e26f38e
--- /dev/null
+++ b/include/unk_0207FC5C.h
@@ -0,0 +1,89 @@
+#ifndef POKEDIAMOND_UNK_0207FC5C_H
+#define POKEDIAMOND_UNK_0207FC5C_H
+
+#define RIBBON_HOENN_CHAMPION 0
+#define RIBBON_HOENN_COOL 1
+#define RIBBON_HOENN_COOL_SUPER 2
+#define RIBBON_HOENN_COOL_HYPER 3
+#define RIBBON_HOENN_COOL_MASTER 4
+#define RIBBON_HOENN_BEAUTY 5
+#define RIBBON_HOENN_BEAUTY_SUPER 6
+#define RIBBON_HOENN_BEAUTY_HYPER 7
+#define RIBBON_HOENN_BEAUTY_MASTER 8
+#define RIBBON_HOENN_CUTE 9
+#define RIBBON_HOENN_CUTE_SUPER 10
+#define RIBBON_HOENN_CUTE_HYPER 11
+#define RIBBON_HOENN_CUTE_MASTER 12
+#define RIBBON_HOENN_SMART 13
+#define RIBBON_HOENN_SMART_SUPER 14
+#define RIBBON_HOENN_SMART_HYPER 15
+#define RIBBON_HOENN_SMART_MASTER 16
+#define RIBBON_HOENN_TOUGH 17
+#define RIBBON_HOENN_TOUGH_SUPER 18
+#define RIBBON_HOENN_TOUGH_HYPER 19
+#define RIBBON_HOENN_TOUGH_MASTER 20
+#define RIBBON_HOENN_WINNING 21
+#define RIBBON_HOENN_VICTORY 22
+#define RIBBON_HOENN_ARTIST 23
+#define RIBBON_HOENN_EFFORT 24
+#define RIBBON_HOENN_MARINE 25
+#define RIBBON_HOENN_LAND 26
+#define RIBBON_HOENN_SKY 27
+#define RIBBON_HOENN_COUNTRY 28
+#define RIBBON_HOENN_NATIONAL 29
+#define RIBBON_HOENN_EARTH 30
+#define RIBBON_HOENN_WORLD 31
+#define RIBBON_SINNOH_CHAMP 32
+#define RIBBON_COOL 33
+#define RIBBON_COOL_GREAT 34
+#define RIBBON_COOL_ULTRA 35
+#define RIBBON_COOL_MASTER 36
+#define RIBBON_BEAUTY 37
+#define RIBBON_BEAUTY_GREAT 38
+#define RIBBON_BEAUTY_ULTRA 39
+#define RIBBON_BEAUTY_MASTER 40
+#define RIBBON_CUTE 41
+#define RIBBON_CUTE_GREAT 42
+#define RIBBON_CUTE_ULTRA 43
+#define RIBBON_CUTE_MASTER 44
+#define RIBBON_SMART 45
+#define RIBBON_SMART_GREAT 46
+#define RIBBON_SMART_ULTRA 47
+#define RIBBON_SMART_MASTER 48
+#define RIBBON_TOUGH 49
+#define RIBBON_TOUGH_GREAT 50
+#define RIBBON_TOUGH_ULTRA 51
+#define RIBBON_TOUGH_MASTER 52
+#define RIBBON_ABILITY 53
+#define RIBBON_GREAT_ABILITY 54
+#define RIBBON_DOUBLE_ABILITY 55
+#define RIBBON_MULTI_ABILITY 56
+#define RIBBON_PAIR_ABILITY 57
+#define RIBBON_WORLD_ABILITY 58
+#define RIBBON_ALERT 59
+#define RIBBON_SHOCK 60
+#define RIBBON_DOWNCAST 61
+#define RIBBON_CARELESS 62
+#define RIBBON_RELAX 63
+#define RIBBON_SNOOZE 64
+#define RIBBON_SMILE 65
+#define RIBBON_GORGEOUS 66
+#define RIBBON_ROYAL 67
+#define RIBBON_GORGEOUS_ROYAL 68
+#define RIBBON_FOOTPRINT 69
+#define RIBBON_RECORD 70
+#define RIBBON_HISTORY 71
+#define RIBBON_LEGEND 72
+#define RIBBON_RED 73
+#define RIBBON_GREEN 74
+#define RIBBON_BLUE 75
+#define RIBBON_FESTIVAL 76
+#define RIBBON_CARNIVAL 77
+#define RIBBON_CLASSIC 78
+#define RIBBON_PREMIER 79
+
+u32 FUN_0207FC5C(u8 a0, u32 a1);
+int FUN_0207FCC0(u8 * a0, u32 a1);
+u8 FUN_0207FCE0(u32 a0);
+
+#endif //POKEDIAMOND_UNK_0207FC5C_H