summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-01-21 14:36:13 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2020-01-21 14:36:13 -0500
commit9f9b4dd13dfdbb2367059df09a15ba877ecd84e7 (patch)
tree5bf63eee2a7b28d07e60709d4a32634908cac634
parentd873b1c6aaafb211f1184755b1534d9e9e2891af (diff)
Data through gUnknown_84570C8
-rw-r--r--data/union_room.s208
-rw-r--r--include/constants/pokemon.h130
-rw-r--r--include/pokemon.h184
-rw-r--r--src/data/union_room.h536
-rw-r--r--src/union_room.c319
5 files changed, 720 insertions, 657 deletions
diff --git a/data/union_room.s b/data/union_room.s
index 97a681485..afb79e74a 100644
--- a/data/union_room.s
+++ b/data/union_room.s
@@ -6,215 +6,7 @@
.section .rodata
.align 2
-gUnknown_8456D4C:: @ 8456D4C
- .byte 0x00, 0x01, 0x03, 0x11, 0x0A, 0x0F @ window template
- .2byte 0x0044
-
-gUnknown_8456D54:: @ 8456D54
- .byte 0x00, 0x14, 0x03, 0x07, 0x04, 0x0F @ window template
- .2byte 0x00EE
-
-gUnknown_8456D5C:: @ 8456D5C
- .word gUnknown_84571AC, 0
- .word gUnknown_84571AC, 1
- .word gUnknown_84571AC, 2
- .word gUnknown_84571AC, 3
- .word gUnknown_84571AC, 4
- .word gUnknown_84571AC, 5
- .word gUnknown_84571AC, 6
- .word gUnknown_84571AC, 7
- .word gUnknown_84571AC, 8
- .word gUnknown_84571AC, 9
- .word gUnknown_84571AC, 10
- .word gUnknown_84571AC, 11
- .word gUnknown_84571AC, 12
- .word gUnknown_84571AC, 13
- .word gUnknown_84571AC, 14
- .word gUnknown_84571AC, 15
-
-gUnknown_8456DDC:: @ 8456DDC
- .word gUnknown_8456D5C
- .word ListMenuDefaultCursorMoveFunc
- .word sub_8116F94
- .2byte 0x0010
- .2byte 0x0005
- .byte 0x00, 0x00, 0x08, 0x00, 0x20, 0x31, 0x50, 0x02
-
-gUnknown_8456DF4:: @ 8456DF4
- .byte 0x00, 0x14, 0x06, 0x08, 0x07, 0x0F @ window template?
- .2byte 0x0001
-
-gUnknown_8456DFC:: @ 8456DFC
- .word gUnknown_8459354, 0x00000208
- .word gUnknown_8459344, 0x00000241
- .word gUnknown_845934C, 0x00000245
- .word gUnknown_8459360, 0x00000040
-
-gUnknown_8456E1C:: @ 8456E1C
- .word gUnknown_8456DFC
- .word ListMenuDefaultCursorMoveFunc
- .word NULL
- .2byte 0x0004
- .2byte 0x0004
- .byte 0x00, 0x00, 0x08, 0x00, 0x20, 0x31, 0x01, 0x02
-
-gUnknown_8456E34:: @ 8456E34
- .byte 0x00, 0x12, 0x08, 0x0B, 0x05, 0x0F @ window template
- .2byte 0x0001
-
-gUnknown_8456E3C:: @ 8456E3C
- .word gText_Register, 1
- .word gUnknown_8459370, 2
- .word gUnknown_8459360, 3
-
-gUnknown_8456E54:: @ 8456E54
- .word gUnknown_8456E3C
- .word ListMenuDefaultCursorMoveFunc
- .word NULL
- .2byte 0x0003
- .2byte 0x0003
- .byte 0x00, 0x00, 0x08, 0x00, 0x20, 0x31, 0x01, 0x02
-
-gUnknown_8456E6C:: @ 8456E6C
- .byte 0x00, 0x14, 0x02, 0x09, 0x0B, 0x0F @ window template
- .2byte 0x0001
-
-gUnknown_8456E74:: @ 8456E74
- .word gTypeNames + 0x00, 0
- .word gTypeNames + 0x46, 10
- .word gTypeNames + 0x4D, 11
- .word gTypeNames + 0x5B, 13
- .word gTypeNames + 0x54, 12
- .word gTypeNames + 0x69, 15
- .word gTypeNames + 0x1C, 4
- .word gTypeNames + 0x23, 5
- .word gTypeNames + 0x0E, 2
- .word gTypeNames + 0x62, 14
- .word gTypeNames + 0x07, 1
- .word gTypeNames + 0x15, 3
- .word gTypeNames + 0x2A, 6
- .word gTypeNames + 0x31, 7
- .word gTypeNames + 0x70, 16
- .word gTypeNames + 0x38, 8
- .word gTypeNames + 0x77, 17
- .word gUnknown_8459360, 18
-
-gUnknown_8456F04:: @ 8456F04
- .word gUnknown_8456E74
- .word ListMenuDefaultCursorMoveFunc
- .word NULL
- .2byte 0x0012
- .2byte 0x0006
- .byte 0x00, 0x00, 0x08, 0x00, 0x22, 0x31, 0x01, 0x02
-
-gUnknown_8456F1C:: @ 8456F1C
- .byte 0x00, 0x01, 0x01, 0x1C, 0x02, 0x0D @ window template
- .2byte 0x0001
-
-gUnknown_8456F24:: @ 8456F24
- .byte 0x00, 0x01, 0x05, 0x1C, 0x0A, 0x0D @ window template
- .2byte 0x0039
-
-gUnknown_8456F2C:: @ 8456F2C
- .word gUnknown_84571AC, -3
- .word gUnknown_84571AC, 0
- .word gUnknown_84571AC, 1
- .word gUnknown_84571AC, 2
- .word gUnknown_84571AC, 3
- .word gUnknown_84571AC, 4
- .word gUnknown_84571AC, 5
- .word gUnknown_84571AC, 6
- .word gUnknown_84571AC, 7
- .word gUnknown_8459368, 8
-
-gUnknown_8456F7C:: @ 8456F7C
- .word gUnknown_8456F2C
- .word ListMenuDefaultCursorMoveFunc
- .word sub_811ACA4
- .2byte 0x000A
- .2byte 0x0005
- .byte 0x00, 0x00, 0x0C, 0x00, 0xE2, 0xDF, 0x09, 0x02
-
- @ unused window template?
- .byte 0x00, 0x01, 0x05, 0x1C, 0x0A, 0x0D
- .2byte 0x0039
-
-gUnknown_8456F9C:: @ 8456F9C
- .word gUnknown_84571AC, 0
- .word gUnknown_84571AC, 1
- .word gUnknown_84571AC, 2
- .word gUnknown_84571AC, 3
- .word gUnknown_84571AC, 4
- .word gUnknown_84571AC, 5
- .word gUnknown_84571AC, 6
- .word gUnknown_84571AC, 7
- .word gUnknown_84571AC, 8
- .word gUnknown_84571AC, 9
- .word gUnknown_84571AC, 10
- .word gUnknown_84571AC, 11
- .word gUnknown_84571AC, 12
- .word gUnknown_84571AC, 13
- .word gUnknown_84571AC, 14
- .word gUnknown_84571AC, 15
-
-gUnknown_845701C:: @ 845701C
- .word gUnknown_8456F9C
- .word ListMenuDefaultCursorMoveFunc
- .word nullsub_92
- .2byte 0x0010
- .2byte 0x0004
- .byte 0x00, 0x00, 0x08, 0x01, 0x20, 0x31, 0x41, 0x02
-
-gUnknown_8457034:: @ 8457034
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
@ starts at gUnknown_082F0474 in pokeemerald, union link groups
-gUnknown_845704C:: @ 845704C
- .byte 0x01, 0xFF, 0x00, 0x00
-gUnknown_8457050:: @ 8457050
- .byte 0x02, 0xFF, 0x00, 0x00
-gUnknown_8457054:: @ 8457054
- .byte 0x03, 0xFF, 0x00, 0x00
-gUnknown_8457058:: @ 8457058
- .byte 0x04, 0xFF, 0x00, 0x00
-gUnknown_845705C:: @ 845705C
- .byte 0x09, 0xFF, 0x00, 0x00
-gUnknown_8457060:: @ 8457060
- .byte 0x0A, 0xFF, 0x00, 0x00
-gUnknown_8457064:: @ 8457064
- .byte 0x0B, 0xFF, 0x00, 0x00
-gUnknown_8457068:: @ 8457068
- .byte 0x15, 0xFF, 0x00, 0x00
-gUnknown_845706C:: @ 845706C
- .byte 0x16, 0xFF, 0x00, 0x00
-gUnknown_8457070:: @ 8457070
- .byte 0x40, 0x41, 0x44, 0x45, 0x48, 0x51, 0x52, 0x53, 0x54, 0xFF, 0x00, 0x00
-gUnknown_845707C:: @ 845707C
- .byte 0x0C, 0xFF, 0x00, 0x00
-gUnknown_8457080:: @ 8457080
- .byte 0x01, 0x02, 0x03, 0x04, 0x09, 0x0A, 0x0B, 0x15, 0x16, 0x0D, 0xFF, 0x00
-gUnknown_845708C:: @ 845708C
- .byte 0x01, 0x02, 0x03, 0x04, 0x0A, 0xFF, 0x00, 0x00
-
-gUnknown_8457094:: @ 8457094
- .word gUnknown_845704C
- .word gUnknown_8457050
- .word gUnknown_8457054
- .word gUnknown_8457058
- .word gUnknown_845705C
- .word gUnknown_8457060
- .word gUnknown_8457064
- .word gUnknown_8457068
- .word gUnknown_845706C
- .word gUnknown_8457070
- .word gUnknown_845707C
- .word gUnknown_8457080
- .word gUnknown_845708C
-
-gUnknown_84570C8:: @ 84570C8
- .byte 0x01, 0x02, 0x03, 0x04, 0x09, 0x0A, 0x0B, 0x15, 0x16, 0xF7, 0x00, 0xAF, 0xF7, 0x01, 0xFF, 0x00
gUnknown_84570D8:: @ 84570D8
.byte 0x29, 0x36, 0x27, 0x12, 0x13, 0x14, 0x19, 0x1A, 0x00, 0x00, 0x2A, 0x3A, 0x28, 0x16, 0x17, 0x18, 0x1C, 0x1D, 0x00, 0x00
diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h
index c6fc55003..2c8eeb3ea 100644
--- a/include/constants/pokemon.h
+++ b/include/constants/pokemon.h
@@ -1,6 +1,97 @@
#ifndef GUARD_CONSTANTS_POKEMON_H
#define GUARD_CONSTANTS_POKEMON_H
+// For (Set|Get)(Box)?MonData
+#define MON_DATA_PERSONALITY 0
+#define MON_DATA_OT_ID 1
+#define MON_DATA_NICKNAME 2
+#define MON_DATA_LANGUAGE 3
+#define MON_DATA_SANITY_IS_BAD_EGG 4
+#define MON_DATA_SANITY_HAS_SPECIES 5
+#define MON_DATA_SANITY_IS_EGG 6
+#define MON_DATA_OT_NAME 7
+#define MON_DATA_MARKINGS 8
+#define MON_DATA_CHECKSUM 9
+#define MON_DATA_ENCRYPT_SEPARATOR 10
+#define MON_DATA_SPECIES 11
+#define MON_DATA_HELD_ITEM 12
+#define MON_DATA_MOVE1 13
+#define MON_DATA_MOVE2 14
+#define MON_DATA_MOVE3 15
+#define MON_DATA_MOVE4 16
+#define MON_DATA_PP1 17
+#define MON_DATA_PP2 18
+#define MON_DATA_PP3 19
+#define MON_DATA_PP4 20
+#define MON_DATA_PP_BONUSES 21
+#define MON_DATA_COOL 22
+#define MON_DATA_BEAUTY 23
+#define MON_DATA_CUTE 24
+#define MON_DATA_EXP 25
+#define MON_DATA_HP_EV 26
+#define MON_DATA_ATK_EV 27
+#define MON_DATA_DEF_EV 28
+#define MON_DATA_SPEED_EV 29
+#define MON_DATA_SPATK_EV 30
+#define MON_DATA_SPDEF_EV 31
+#define MON_DATA_FRIENDSHIP 32
+#define MON_DATA_SMART 33
+#define MON_DATA_POKERUS 34
+#define MON_DATA_MET_LOCATION 35
+#define MON_DATA_MET_LEVEL 36
+#define MON_DATA_MET_GAME 37
+#define MON_DATA_POKEBALL 38
+#define MON_DATA_HP_IV 39
+#define MON_DATA_ATK_IV 40
+#define MON_DATA_DEF_IV 41
+#define MON_DATA_SPEED_IV 42
+#define MON_DATA_SPATK_IV 43
+#define MON_DATA_SPDEF_IV 44
+#define MON_DATA_IS_EGG 45
+#define MON_DATA_ABILITY_NUM 46
+#define MON_DATA_TOUGH 47
+#define MON_DATA_SHEEN 48
+#define MON_DATA_OT_GENDER 49
+#define MON_DATA_COOL_RIBBON 50
+#define MON_DATA_BEAUTY_RIBBON 51
+#define MON_DATA_CUTE_RIBBON 52
+#define MON_DATA_SMART_RIBBON 53
+#define MON_DATA_TOUGH_RIBBON 54
+#define MON_DATA_STATUS 55
+#define MON_DATA_LEVEL 56
+#define MON_DATA_HP 57
+#define MON_DATA_MAX_HP 58
+#define MON_DATA_ATK 59
+#define MON_DATA_DEF 60
+#define MON_DATA_SPEED 61
+#define MON_DATA_SPATK 62
+#define MON_DATA_SPDEF 63
+#define MON_DATA_MAIL 64
+#define MON_DATA_SPECIES2 65
+#define MON_DATA_IVS 66
+#define MON_DATA_CHAMPION_RIBBON 67
+#define MON_DATA_WINNING_RIBBON 68
+#define MON_DATA_VICTORY_RIBBON 69
+#define MON_DATA_ARTIST_RIBBON 70
+#define MON_DATA_EFFORT_RIBBON 71
+#define MON_DATA_GIFT_RIBBON_1 72
+#define MON_DATA_GIFT_RIBBON_2 73
+#define MON_DATA_GIFT_RIBBON_3 74
+#define MON_DATA_GIFT_RIBBON_4 75
+#define MON_DATA_GIFT_RIBBON_5 76
+#define MON_DATA_GIFT_RIBBON_6 77
+#define MON_DATA_GIFT_RIBBON_7 78
+#define MON_DATA_FATEFUL_ENCOUNTER 79
+#define MON_DATA_OBEDIENCE 80
+#define MON_DATA_KNOWN_MOVES 81
+#define MON_DATA_RIBBON_COUNT 82
+#define MON_DATA_RIBBONS 83
+#define MON_DATA_ATK2 84
+#define MON_DATA_DEF2 85
+#define MON_DATA_SPEED2 86
+#define MON_DATA_SPATK2 87
+#define MON_DATA_SPDEF2 88
+
// Pokemon types
#define TYPE_NORMAL 0x00
#define TYPE_FIGHTING 0x01
@@ -77,6 +168,16 @@
#define STAT_ACC 6 // only in battles
#define STAT_EVASION 7 // only in battles
+// TODO: Why do we need these as separate defines?
+#define STAT_STAGE_HP 0
+#define STAT_STAGE_ATK 1
+#define STAT_STAGE_DEF 2
+#define STAT_STAGE_SPEED 3
+#define STAT_STAGE_SPATK 4
+#define STAT_STAGE_SPDEF 5
+#define STAT_STAGE_ACC 6
+#define STAT_STAGE_EVASION 7
+
#define NUM_STATS 6
#define NUM_BATTLE_STATS 8
@@ -91,4 +192,33 @@
#define PLAYER_HAS_ONE_MON 0x1
#define PLAYER_HAS_ONE_USABLE_MON 0x2
+#define MAX_LEVEL 100
+
+#define OT_ID_RANDOM_NO_SHINY 2
+#define OT_ID_PRESET 1
+#define OT_ID_PLAYER_ID 0
+
+#define MON_GIVEN_TO_PARTY 0x0
+#define MON_GIVEN_TO_PC 0x1
+#define MON_CANT_GIVE 0x2
+
+#define MON_MALE 0x00
+#define MON_FEMALE 0xFE
+#define MON_GENDERLESS 0xFF
+
+#define FRIENDSHIP_EVENT_GROW_LEVEL 0x0
+#define FRIENDSHIP_EVENT_VITAMIN 0x1
+#define FRIENDSHIP_EVENT_BATTLE_ITEM 0x2
+#define FRIENDSHIP_EVENT_LEAGUE_BATTLE 0x3
+#define FRIENDSHIP_EVENT_LEARN_TMHM 0x4
+#define FRIENDSHIP_EVENT_WALKING 0x5
+#define FRIENDSHIP_EVENT_FAINT_SMALL 0x6
+#define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 0x7
+#define FRIENDSHIP_EVENT_FAINT_LARGE 0x8
+
+#define PARTY_SIZE 6
+#define MAX_TOTAL_EVS 510
+#define UNOWN_FORM_COUNT 28
+#define MAX_MON_LEVEL 100
+
#endif // GUARD_CONSTANTS_POKEMON_H
diff --git a/include/pokemon.h b/include/pokemon.h
index ae909018c..be0a35877 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -3,167 +3,7 @@
#include "global.h"
#include "sprite.h"
-
-#define MON_DATA_PERSONALITY 0
-#define MON_DATA_OT_ID 1
-#define MON_DATA_NICKNAME 2
-#define MON_DATA_LANGUAGE 3
-#define MON_DATA_SANITY_IS_BAD_EGG 4
-#define MON_DATA_SANITY_HAS_SPECIES 5
-#define MON_DATA_SANITY_IS_EGG 6
-#define MON_DATA_OT_NAME 7
-#define MON_DATA_MARKINGS 8
-#define MON_DATA_CHECKSUM 9
-#define MON_DATA_ENCRYPT_SEPARATOR 10
-#define MON_DATA_SPECIES 11
-#define MON_DATA_HELD_ITEM 12
-#define MON_DATA_MOVE1 13
-#define MON_DATA_MOVE2 14
-#define MON_DATA_MOVE3 15
-#define MON_DATA_MOVE4 16
-#define MON_DATA_PP1 17
-#define MON_DATA_PP2 18
-#define MON_DATA_PP3 19
-#define MON_DATA_PP4 20
-#define MON_DATA_PP_BONUSES 21
-#define MON_DATA_COOL 22
-#define MON_DATA_BEAUTY 23
-#define MON_DATA_CUTE 24
-#define MON_DATA_EXP 25
-#define MON_DATA_HP_EV 26
-#define MON_DATA_ATK_EV 27
-#define MON_DATA_DEF_EV 28
-#define MON_DATA_SPEED_EV 29
-#define MON_DATA_SPATK_EV 30
-#define MON_DATA_SPDEF_EV 31
-#define MON_DATA_FRIENDSHIP 32
-#define MON_DATA_SMART 33
-#define MON_DATA_POKERUS 34
-#define MON_DATA_MET_LOCATION 35
-#define MON_DATA_MET_LEVEL 36
-#define MON_DATA_MET_GAME 37
-#define MON_DATA_POKEBALL 38
-#define MON_DATA_HP_IV 39
-#define MON_DATA_ATK_IV 40
-#define MON_DATA_DEF_IV 41
-#define MON_DATA_SPEED_IV 42
-#define MON_DATA_SPATK_IV 43
-#define MON_DATA_SPDEF_IV 44
-#define MON_DATA_IS_EGG 45
-#define MON_DATA_ABILITY_NUM 46
-#define MON_DATA_TOUGH 47
-#define MON_DATA_SHEEN 48
-#define MON_DATA_OT_GENDER 49
-#define MON_DATA_COOL_RIBBON 50
-#define MON_DATA_BEAUTY_RIBBON 51
-#define MON_DATA_CUTE_RIBBON 52
-#define MON_DATA_SMART_RIBBON 53
-#define MON_DATA_TOUGH_RIBBON 54
-#define MON_DATA_STATUS 55
-#define MON_DATA_LEVEL 56
-#define MON_DATA_HP 57
-#define MON_DATA_MAX_HP 58
-#define MON_DATA_ATK 59
-#define MON_DATA_DEF 60
-#define MON_DATA_SPEED 61
-#define MON_DATA_SPATK 62
-#define MON_DATA_SPDEF 63
-#define MON_DATA_MAIL 64
-#define MON_DATA_SPECIES2 65
-#define MON_DATA_IVS 66
-#define MON_DATA_CHAMPION_RIBBON 67
-#define MON_DATA_WINNING_RIBBON 68
-#define MON_DATA_VICTORY_RIBBON 69
-#define MON_DATA_ARTIST_RIBBON 70
-#define MON_DATA_EFFORT_RIBBON 71
-#define MON_DATA_GIFT_RIBBON_1 72
-#define MON_DATA_GIFT_RIBBON_2 73
-#define MON_DATA_GIFT_RIBBON_3 74
-#define MON_DATA_GIFT_RIBBON_4 75
-#define MON_DATA_GIFT_RIBBON_5 76
-#define MON_DATA_GIFT_RIBBON_6 77
-#define MON_DATA_GIFT_RIBBON_7 78
-#define MON_DATA_FATEFUL_ENCOUNTER 79
-#define MON_DATA_OBEDIENCE 80
-#define MON_DATA_KNOWN_MOVES 81
-#define MON_DATA_RIBBON_COUNT 82
-#define MON_DATA_RIBBONS 83
-#define MON_DATA_ATK2 84
-#define MON_DATA_DEF2 85
-#define MON_DATA_SPEED2 86
-#define MON_DATA_SPATK2 87
-#define MON_DATA_SPDEF2 88
-
-#define MAX_LEVEL 100
-
-#define OT_ID_RANDOM_NO_SHINY 2
-#define OT_ID_PRESET 1
-#define OT_ID_PLAYER_ID 0
-
-#define MON_GIVEN_TO_PARTY 0x0
-#define MON_GIVEN_TO_PC 0x1
-#define MON_CANT_GIVE 0x2
-
-#define MON_MALE 0x00
-#define MON_FEMALE 0xFE
-#define MON_GENDERLESS 0xFF
-
-#define FRIENDSHIP_EVENT_GROW_LEVEL 0x0
-#define FRIENDSHIP_EVENT_VITAMIN 0x1
-#define FRIENDSHIP_EVENT_BATTLE_ITEM 0x2
-#define FRIENDSHIP_EVENT_LEAGUE_BATTLE 0x3
-#define FRIENDSHIP_EVENT_LEARN_TMHM 0x4
-#define FRIENDSHIP_EVENT_WALKING 0x5
-#define FRIENDSHIP_EVENT_FAINT_SMALL 0x6
-#define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 0x7
-#define FRIENDSHIP_EVENT_FAINT_LARGE 0x8
-
-#define TYPE_NORMAL 0x00
-#define TYPE_FIGHTING 0x01
-#define TYPE_FLYING 0x02
-#define TYPE_POISON 0x03
-#define TYPE_GROUND 0x04
-#define TYPE_ROCK 0x05
-#define TYPE_BUG 0x06
-#define TYPE_GHOST 0x07
-#define TYPE_STEEL 0x08
-#define TYPE_MYSTERY 0x09
-#define TYPE_FIRE 0x0a
-#define TYPE_WATER 0x0b
-#define TYPE_GRASS 0x0c
-#define TYPE_ELECTRIC 0x0d
-#define TYPE_PSYCHIC 0x0e
-#define TYPE_ICE 0x0f
-#define TYPE_DRAGON 0x10
-#define TYPE_DARK 0x11
-
-#define NUMBER_OF_MON_TYPES 0x12
-
-#define PARTY_SIZE 6
-#define MAX_TOTAL_EVS 510
-#define NUM_STATS 6
-#define UNOWN_FORM_COUNT 28
-#define MAX_MON_LEVEL 100
-
-enum
-{
- EGG_GROUP_NONE,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- EGG_GROUP_BUG,
- EGG_GROUP_FLYING,
- EGG_GROUP_FIELD,
- EGG_GROUP_FAIRY,
- EGG_GROUP_GRASS,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_WATER_3,
- EGG_GROUP_MINERAL,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_WATER_2,
- EGG_GROUP_DITTO,
- EGG_GROUP_DRAGON,
- EGG_GROUP_UNDISCOVERED
-};
+#include "constants/pokemon.h"
struct PokemonSubstruct0
{
@@ -357,28 +197,6 @@ struct BattlePokemon
/*0x54*/ u32 otId;
};
-enum
-{
- STAT_STAGE_HP, // 0
- STAT_STAGE_ATK, // 1
- STAT_STAGE_DEF, // 2
- STAT_STAGE_SPEED, // 3
- STAT_STAGE_SPATK, // 4
- STAT_STAGE_SPDEF, // 5
- STAT_STAGE_ACC, // 6
- STAT_STAGE_EVASION, // 7
-};
-
-enum
-{
- STAT_HP, // 0
- STAT_ATK, // 1
- STAT_DEF, // 2
- STAT_SPD, // 3
- STAT_SPATK, // 4
- STAT_SPDEF, // 5
-};
-
struct BaseStats
{
/* 0x00 */ u8 baseHP;
diff --git a/src/data/union_room.h b/src/data/union_room.h
new file mode 100644
index 000000000..22655721b
--- /dev/null
+++ b/src/data/union_room.h
@@ -0,0 +1,536 @@
+extern const u8 gUnknown_84571AC[];
+extern const u8 gUnknown_8459344[];
+extern const u8 gUnknown_845934C[];
+extern const u8 gUnknown_8459354[];
+extern const u8 gUnknown_8459360[];
+extern const u8 gUnknown_8459368[];
+extern const u8 gUnknown_8459370[];
+extern const u8 gUnknown_8459394[];
+extern const u8 gUnknown_84593A4[];
+extern const u8 gUnknown_84593B4[];
+extern const u8 gUnknown_84593C4[];
+extern const u8 gUnknown_84593D4[];
+extern const u8 gUnknown_84593E4[];
+extern const u8 gUnknown_84593F4[];
+extern const u8 gUnknown_84593DC[];
+extern const u8 gUnknown_8459400[];
+extern const u8 gUnknown_8459410[];
+extern const u8 gUnknown_845941C[];
+extern const u8 gUnknown_845942C[];
+extern const u8 gUnknown_8459434[];
+extern const u8 gUnknown_8459440[];
+
+#define _8456CD8(a, b) ((a) | ((b) << 8))
+
+static const u8 *const gUnknown_8456C74[] = {
+ gUnknown_84571AC,
+ gUnknown_8459394,
+ gUnknown_84593A4,
+ gUnknown_84593B4,
+ gUnknown_84593C4,
+ gUnknown_84593D4,
+ gUnknown_84593E4,
+ gUnknown_84593F4,
+ gUnknown_84593DC,
+ gUnknown_8459400,
+ gUnknown_8459410,
+ gUnknown_845941C,
+ gUnknown_845942C,
+ gUnknown_8459434,
+ gUnknown_8459440,
+ gUnknown_84571AC,
+ gUnknown_84571AC,
+ gUnknown_84571AC,
+ gUnknown_84571AC,
+ gUnknown_84571AC,
+ gUnknown_84571AC,
+ gUnknown_84593E4,
+ gUnknown_84593F4
+};
+
+static const struct WindowTemplate gUnknown_8456CD0 = {
+ .bg = 0,
+ .tilemapLeft = 0,
+ .tilemapTop = 0,
+ .width = 30,
+ .height = 2,
+ .paletteNum = 0xF,
+ .baseBlock = 0x008
+};
+
+static const u32 gUnknown_8456CD8[] = {
+ _8456CD8( 1, 2),
+ _8456CD8( 2, 2),
+ _8456CD8( 3, 4),
+ _8456CD8( 4, 2),
+ _8456CD8( 9, 37),
+ _8456CD8(10, 37),
+ _8456CD8(11, 53),
+ _8456CD8(13, 53),
+ _8456CD8(14, 53)
+};
+
+static const struct WindowTemplate gUnknown_8456CFC = {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 3,
+ .width = 13,
+ .height = 10,
+ .paletteNum = 15,
+ .baseBlock = 0x044
+};
+
+static const struct WindowTemplate gUnknown_8456D04 = {
+ .bg = 0,
+ .tilemapLeft = 16,
+ .tilemapTop = 3,
+ .width = 7,
+ .height = 4,
+ .paletteNum = 15,
+ .baseBlock = 0x0C6
+};
+
+const struct ListMenuItem gUnknown_8456D0C[] = {
+ {gUnknown_84571AC, 0},
+ {gUnknown_84571AC, 1},
+ {gUnknown_84571AC, 2},
+ {gUnknown_84571AC, 3},
+ {gUnknown_84571AC, 4}
+};
+
+static const struct ListMenuTemplate gUnknown_8456D34 = {
+ .items = gUnknown_8456D0C,
+ .moveCursorFunc = NULL,
+ .itemPrintFunc = sub_81164C8,
+ .totalItems = 5,
+ .maxShowed = 5,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 1,
+ .cursor_X = 0,
+ .upText_Y = 0,
+ .cursorPal = 2,
+ .fillValue = 1,
+ .cursorShadowPal = 3,
+ .lettersSpacing = 0,
+ .itemVerticalPadding = 2,
+ .scrollMultiple = LIST_NO_MULTIPLE_SCROLL,
+ .fontId = 2,
+ .cursorKind = 1
+};
+
+static const struct WindowTemplate gUnknown_8456D4C = {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 3,
+ .width = 17,
+ .height = 10,
+ .paletteNum = 15,
+ .baseBlock = 0x044
+};
+
+static const struct WindowTemplate gUnknown_8456D54 = {
+ .bg = 0,
+ .tilemapLeft = 20,
+ .tilemapTop = 3,
+ .width = 7,
+ .height = 4,
+ .paletteNum = 15,
+ .baseBlock = 0x0EE
+};
+
+static const struct ListMenuItem gUnknown_8456D5C[] = {
+ {gUnknown_84571AC, 0},
+ {gUnknown_84571AC, 1},
+ {gUnknown_84571AC, 2},
+ {gUnknown_84571AC, 3},
+ {gUnknown_84571AC, 4},
+ {gUnknown_84571AC, 5},
+ {gUnknown_84571AC, 6},
+ {gUnknown_84571AC, 7},
+ {gUnknown_84571AC, 8},
+ {gUnknown_84571AC, 9},
+ {gUnknown_84571AC, 10},
+ {gUnknown_84571AC, 11},
+ {gUnknown_84571AC, 12},
+ {gUnknown_84571AC, 13},
+ {gUnknown_84571AC, 14},
+ {gUnknown_84571AC, 15}
+};
+
+static const struct ListMenuTemplate gUnknown_8456DDC = {
+ .items = gUnknown_8456D5C,
+ .moveCursorFunc = ListMenuDefaultCursorMoveFunc,
+ .itemPrintFunc = sub_8116F94,
+ .totalItems = 16,
+ .maxShowed = 5,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 8,
+ .cursor_X = 0,
+ .upText_Y = 0,
+ .cursorPal = 2,
+ .fillValue = 1,
+ .cursorShadowPal = 3,
+ .lettersSpacing = 0,
+ .itemVerticalPadding = 2,
+ .scrollMultiple = LIST_MULTIPLE_SCROLL_DPAD,
+ .fontId = 2,
+ .cursorKind = 0
+};
+
+static const struct WindowTemplate gUnknown_8456DF4 = {
+ .bg = 0,
+ .tilemapLeft = 20,
+ .tilemapTop = 6,
+ .width = 8,
+ .height = 7,
+ .paletteNum = 15,
+ .baseBlock = 0x001
+};
+
+static const struct ListMenuItem gUnknown_8456DFC[] = {
+ {gUnknown_8459354, _8456CD8( 8, 2)},
+ {gUnknown_8459344, _8456CD8(65, 2)},
+ {gUnknown_845934C, _8456CD8(69, 2)},
+ {gUnknown_8459360, _8456CD8(64, 0)}
+};
+
+static const struct ListMenuTemplate gUnknown_8456E1C = {
+ .items = gUnknown_8456DFC,
+ .moveCursorFunc = ListMenuDefaultCursorMoveFunc,
+ .itemPrintFunc = NULL,
+ .totalItems = 4,
+ .maxShowed = 4,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 8,
+ .cursor_X = 0,
+ .upText_Y = 0,
+ .cursorPal = 2,
+ .fillValue = 1,
+ .cursorShadowPal = 3,
+ .lettersSpacing = 1,
+ .itemVerticalPadding = 0,
+ .scrollMultiple = LIST_NO_MULTIPLE_SCROLL,
+ .fontId = 2,
+ .cursorKind = 0
+};
+
+static const struct WindowTemplate gUnknown_8456E34 = {
+ .bg = 0,
+ .tilemapLeft = 18,
+ .tilemapTop = 8,
+ .width = 11,
+ .height = 5,
+ .paletteNum = 15,
+ .baseBlock = 0x001
+};
+
+static const struct ListMenuItem gUnknown_8456E3C[] = {
+ {gText_Register, 1},
+ {gUnknown_8459370, 2},
+ {gUnknown_8459360, 3}
+};
+
+static const struct ListMenuTemplate gUnknown_8456E54 = {
+ .items = gUnknown_8456E3C,
+ .moveCursorFunc = ListMenuDefaultCursorMoveFunc,
+ .itemPrintFunc = NULL,
+ .totalItems = 3,
+ .maxShowed = 3,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 8,
+ .cursor_X = 0,
+ .upText_Y = 0,
+ .cursorPal = 2,
+ .fillValue = 1,
+ .cursorShadowPal = 3,
+ .lettersSpacing = 1,
+ .itemVerticalPadding = 0,
+ .scrollMultiple = LIST_NO_MULTIPLE_SCROLL,
+ .fontId = 2,
+ .cursorKind = 0
+};
+
+static const struct WindowTemplate gUnknown_8456E6C = {
+ .bg = 0,
+ .tilemapLeft = 20,
+ .tilemapTop = 2,
+ .width = 9,
+ .height = 11,
+ .paletteNum = 15,
+ .baseBlock = 0x001
+};
+
+static const struct ListMenuItem gUnknown_8456E74[] = {
+ {gTypeNames[TYPE_NORMAL], TYPE_NORMAL},
+ {gTypeNames[TYPE_FIRE], TYPE_FIRE},
+ {gTypeNames[TYPE_WATER], TYPE_WATER},
+ {gTypeNames[TYPE_ELECTRIC], TYPE_ELECTRIC},
+ {gTypeNames[TYPE_GRASS], TYPE_GRASS},
+ {gTypeNames[TYPE_ICE], TYPE_ICE},
+ {gTypeNames[TYPE_GROUND], TYPE_GROUND},
+ {gTypeNames[TYPE_ROCK], TYPE_ROCK},
+ {gTypeNames[TYPE_FLYING], TYPE_FLYING},
+ {gTypeNames[TYPE_PSYCHIC], TYPE_PSYCHIC},
+ {gTypeNames[TYPE_FIGHTING], TYPE_FIGHTING},
+ {gTypeNames[TYPE_POISON], TYPE_POISON},
+ {gTypeNames[TYPE_BUG], TYPE_BUG},
+ {gTypeNames[TYPE_GHOST], TYPE_GHOST},
+ {gTypeNames[TYPE_DRAGON], TYPE_DRAGON},
+ {gTypeNames[TYPE_STEEL], TYPE_STEEL},
+ {gTypeNames[TYPE_DARK], TYPE_DARK},
+ {gUnknown_8459360, NUMBER_OF_MON_TYPES}
+};
+
+static const struct ListMenuTemplate gUnknown_8456F04 = {
+ .items = gUnknown_8456E74,
+ .moveCursorFunc = ListMenuDefaultCursorMoveFunc,
+ .itemPrintFunc = NULL,
+ .totalItems = NUMBER_OF_MON_TYPES,
+ .maxShowed = 6,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 8,
+ .cursor_X = 0,
+ .upText_Y = 2,
+ .cursorPal = 2,
+ .fillValue = 1,
+ .cursorShadowPal = 3,
+ .lettersSpacing = 1,
+ .itemVerticalPadding = 0,
+ .scrollMultiple = LIST_NO_MULTIPLE_SCROLL,
+ .fontId = 2,
+ .cursorKind = 0
+};
+
+static const struct WindowTemplate gUnknown_8456F1C = {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 1,
+ .width = 28,
+ .height = 2,
+ .paletteNum = 13,
+ .baseBlock = 0x001
+};
+
+static const struct WindowTemplate gUnknown_8456F24 = {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 5,
+ .width = 28,
+ .height = 10,
+ .paletteNum = 13,
+ .baseBlock = 0x039
+};
+
+static const struct ListMenuItem gUnknown_8456F2C[] = {
+ {gUnknown_84571AC, -3},
+ {gUnknown_84571AC, 0},
+ {gUnknown_84571AC, 1},
+ {gUnknown_84571AC, 2},
+ {gUnknown_84571AC, 3},
+ {gUnknown_84571AC, 4},
+ {gUnknown_84571AC, 5},
+ {gUnknown_84571AC, 6},
+ {gUnknown_84571AC, 7},
+ {gUnknown_8459368, 8}
+};
+
+static const struct ListMenuTemplate gUnknown_8456F7C = {
+ .items = gUnknown_8456F2C,
+ .moveCursorFunc = ListMenuDefaultCursorMoveFunc,
+ .itemPrintFunc = sub_811ACA4,
+ .totalItems = 10,
+ .maxShowed = 5,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 12,
+ .cursor_X = 0,
+ .upText_Y = 2,
+ .cursorPal = 14,
+ .fillValue = 15,
+ .cursorShadowPal = 13,
+ .lettersSpacing = 1,
+ .itemVerticalPadding = 1,
+ .scrollMultiple = LIST_NO_MULTIPLE_SCROLL,
+ .fontId = 2,
+ .cursorKind = 0
+};
+
+static const struct WindowTemplate gUnknown_8456F94 = {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 5,
+ .width = 28,
+ .height = 10,
+ .paletteNum = 13,
+ .baseBlock = 0x039
+};
+
+static const struct ListMenuItem gUnknown_8456F9C[] = {
+ {gUnknown_84571AC, 0},
+ {gUnknown_84571AC, 1},
+ {gUnknown_84571AC, 2},
+ {gUnknown_84571AC, 3},
+ {gUnknown_84571AC, 4},
+ {gUnknown_84571AC, 5},
+ {gUnknown_84571AC, 6},
+ {gUnknown_84571AC, 7},
+ {gUnknown_84571AC, 8},
+ {gUnknown_84571AC, 9},
+ {gUnknown_84571AC, 10},
+ {gUnknown_84571AC, 11},
+ {gUnknown_84571AC, 12},
+ {gUnknown_84571AC, 13},
+ {gUnknown_84571AC, 14},
+ {gUnknown_84571AC, 15}
+};
+
+static const struct ListMenuTemplate gUnknown_845701C = {
+ .items = gUnknown_8456F9C,
+ .moveCursorFunc = ListMenuDefaultCursorMoveFunc,
+ .itemPrintFunc = nullsub_92,
+ .totalItems = 16,
+ .maxShowed = 4,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 8,
+ .cursor_X = 1,
+ .upText_Y = 0,
+ .cursorPal = 2,
+ .fillValue = 1,
+ .cursorShadowPal = 3,
+ .lettersSpacing = 1,
+ .itemVerticalPadding = 0,
+ .scrollMultiple = LIST_MULTIPLE_SCROLL_DPAD,
+ .fontId = 2,
+ .cursorKind = 0
+};
+
+static const struct UnkStruct_Shared gUnknown_8457034 = {};
+
+// starts at gUnknown_082F0474 in pokeemerald, union link groups
+
+ALIGNED(4) static const u8 gUnknown_845704C[] = {0x01, 0xFF};
+ALIGNED(4) static const u8 gUnknown_8457050[] = {0x02, 0xFF};
+ALIGNED(4) static const u8 gUnknown_8457054[] = {0x03, 0xFF};
+ALIGNED(4) static const u8 gUnknown_8457058[] = {0x04, 0xFF};
+ALIGNED(4) static const u8 gUnknown_845705C[] = {0x09, 0xFF};
+ALIGNED(4) static const u8 gUnknown_8457060[] = {0x0A, 0xFF};
+ALIGNED(4) static const u8 gUnknown_8457064[] = {0x0B, 0xFF};
+ALIGNED(4) static const u8 gUnknown_8457068[] = {0x15, 0xFF};
+ALIGNED(4) static const u8 gUnknown_845706C[] = {0x16, 0xFF};
+ALIGNED(4) static const u8 gUnknown_8457070[] = {0x40, 0x41, 0x44, 0x45, 0x48, 0x51, 0x52, 0x53, 0x54, 0xFF};
+ALIGNED(4) static const u8 gUnknown_845707C[] = {0x0C, 0xFF};
+ALIGNED(4) static const u8 gUnknown_8457080[] = {0x01, 0x02, 0x03, 0x04, 0x09, 0x0A, 0x0B, 0x15, 0x16, 0x0D, 0xFF};
+ALIGNED(4) static const u8 gUnknown_845708C[] = {0x01, 0x02, 0x03, 0x04, 0x0A, 0xFF};
+
+static const u8 *const gUnknown_8457094[] = {
+ gUnknown_845704C,
+ gUnknown_8457050,
+ gUnknown_8457054,
+ gUnknown_8457058,
+ gUnknown_845705C,
+ gUnknown_8457060,
+ gUnknown_8457064,
+ gUnknown_8457068,
+ gUnknown_845706C,
+ gUnknown_8457070,
+ gUnknown_845707C,
+ gUnknown_8457080,
+ gUnknown_845708C
+};
+
+static const u8 gUnknown_84570C8[] = {0x01, 0x02, 0x03, 0x04, 0x09, 0x0A, 0x0B, 0x15, 0x16, 0xF7, 0x00, 0xAF, 0xF7, 0x01, 0xFF, 0x00};
+
+extern const u8 gUnknown_84571B0[];
+extern const u8 gUnknown_84571B4[];
+extern const u8 gUnknown_84571B8[];
+extern const u8 gUnknown_84571E0[];
+extern const u8 gUnknown_8457234[];
+extern const u8 gUnknown_8457264[];
+extern const u8 *const gUnknown_845742C[][5];
+extern const u8 gUnknown_845747C[];
+extern const u8 gUnknown_84574A0[];
+extern const u8 gUnknown_84574C4[];
+extern const u8 gUnknown_84574EC[];
+extern const u8 gUnknown_8457514[];
+extern const u8 gUnknown_8457530[];
+extern const u8 gUnknown_8457554[];
+extern const u8 *const gUnknown_8457608[];
+extern const u8 gUnknown_8457610[];
+extern const u8 *const gUnknown_845767C[];
+extern const u8 gUnknown_84576AC[];
+extern const u8 gUnknown_84576C4[];
+extern const u8 gUnknown_8457700[];
+extern const u8 gUnknown_845771C[];
+extern const u8 *const gUnknown_8457754[];
+extern const u8 gUnknown_845777C[];
+extern const u8 gUnknown_84577BC[];
+extern const u8 gUnknown_84577F8[];
+extern const u8 *const gUnknown_8457838[];
+extern const u8 gUnknown_84578BC[];
+extern const u8 *const gUnknown_8457A34[];
+extern const u8 *const gUnknown_8457B04[][2];
+extern const u8 *const gUnknown_8457BCC[];
+extern const u8 *const gUnknown_8457C20[];
+extern const u8 gUnknown_8457C48[];
+extern const u8 gUnknown_8457CA4[];
+extern const u8 gUnknown_8457CF8[];
+extern const u8 gUnknown_8457D44[];
+extern const u8 gUnknown_8457DB8[];
+extern const u8 gUnknown_8457E0C[];
+extern const u8 gUnknown_8457E28[];
+extern const u8 gUnknown_8457E44[];
+extern const u8 gUnknown_8457E60[];
+extern const u8 *const gUnknown_8457F80[][2];
+extern const u8 gUnknown_8457F90[];
+extern const u8 *const gUnknown_84580F4[][4];
+extern const u8 *const gUnknown_8458230[][2][3];
+extern const u8 *const gUnknown_8458314[];
+extern const u8 *const gUnknown_84583B4[];
+extern const u8 *const gUnknown_845842C[];
+extern const u8 gUnknown_8458434[];
+extern const u8 gUnknown_845847C[];
+extern const u8 gUnknown_84584C0[];
+extern const u8 *const gUnknown_8458548[];
+extern const u8 *const gUnknown_84585E8[];
+extern const u8 *const gUnknown_8458758[2][4];
+extern const u8 *const gUnknown_84588BC[2][4];
+extern const u8 *const gUnknown_84589AC[2][2];
+extern const u8 *const gUnknown_8458A78[2][4];
+extern const u8 gUnknown_8458A98[];
+extern const u8 gUnknown_8458AB8[];
+extern const u8 gUnknown_8458B44[];
+extern const u8 gUnknown_8458CD4[];
+extern const u8 gUnknown_8458D1C[];
+extern const u8 gUnknown_8458D54[];
+extern const u8 gUnknown_8458D78[];
+extern const u8 gUnknown_8458D9C[];
+extern const u8 gUnknown_8458DBC[];
+extern const u8 gUnknown_8458DE8[];
+extern const u8 gUnknown_8458E10[];
+extern const u8 gUnknown_8458E70[];
+extern const u8 gUnknown_8458ED0[];
+extern const u8 gUnknown_8458F04[];
+extern const u8 gUnknown_8458F9C[];
+extern const u8 gUnknown_8458FBC[];
+extern const u8 gUnknown_8458FC8[];
+extern const u8 gUnknown_8458FE4[];
+extern const u8 gUnknown_84591DC[];
+extern const u8 *const gUnknown_84591B8[];
+extern const u8 gUnknown_8459238[];
+extern const u8 gUnknown_8459250[];
+extern const u8 gUnknown_845928C[];
+extern const u8 *const gUnknown_845933C[];
+extern const u8 gUnknown_8459378[];
+extern const u8 *const gUnknown_84594B0[];
+extern const u8 gUnknown_84594C4[];
+extern const u8 gUnknown_8459504[];
+extern const u8 *const gUnknown_8459580[];
+extern const u8 gUnknown_8459588[];
+
+#undef _8456CD8
diff --git a/src/union_room.c b/src/union_room.c
index 73e146a4d..32635debd 100644
--- a/src/union_room.c
+++ b/src/union_room.c
@@ -31,6 +31,7 @@
#include "script.h"
#include "script_pokemon_util.h"
#include "start_menu.h"
+#include "strings.h"
#include "task.h"
#include "trade.h"
#include "trade_scene.h"
@@ -61,13 +62,14 @@ static struct UnkStruct_URoom * sURoom;
void sub_8115A68(u8 taskId);
void sub_81161E4(struct UnkStruct_Leader * leader);
bool8 sub_8116444(struct UnkStruct_Leader * leader, u32 a1, u32 a2);
-void sub_81164C8(u8 arg0, s32 id, u8 arg2);
+void sub_81164C8(u8 windowId, s32 itemId, u8 y);
u8 sub_8116524(struct UnkStruct_Main0 * a0);
u8 sub_81165E8(struct UnkStruct_Main0 * a0);
void sub_8116738(u8 taskId);
u32 sub_8116D10(struct UnkStruct_Group * group, s32 id);
void sub_8116D60(struct UnkStruct_Group * group, s32 id);
void sub_8116E1C(u8 taskId);
+void sub_8116F94(u8 windowId, s32 itemId, u8 y);
u8 sub_8116FE4(void);
void sub_8117990(void);
void sub_81179A4(void);
@@ -99,12 +101,14 @@ bool8 sub_811A694(struct UnkStruct_Shared * arg0, const struct UnkStruct_Shared
bool32 sub_811A6DC(struct UnkStruct_Shared * arg0, struct UnkStruct_Shared * arg1);
u32 sub_811A748(struct UnkStruct_x20 * arg0, struct UnkStruct_x1C * arg1);
u8 sub_811A798(struct UnkStruct_x20 * arg0, struct UnkStruct_x1C * arg1, u8 arg2);
-void sub_811A81C(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 * arg3, u8 arg4, u8 id);
+void sub_811A81C(u8 windowId, u8 x, u8 y, struct UnkStruct_x20 * arg3, u8 arg4, u8 id);
void sub_811A910(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 * arg3, u8 arg4, u8 id);
bool32 sub_811A9B8(void);
u32 sub_811A9FC(s32 a0);
u32 sub_811AA24(struct UnkStruct_x20 * unkX20);
s32 sub_811AA5C(struct UnkStruct_Main0 * arg0, u8 arg1, u8 arg2, u32 playerGender);
+void nullsub_92(u8 windowId, s32 itemId, u8 y);
+void sub_811ACA4(u8 windowId, s32 itemId, u8 y);
s32 sub_811AD7C(struct UnkStruct_x20 * arg, s32 arg1);
s32 sub_811ADC4(s32 a0, struct UnkStruct_Main0 * a1);
s32 sub_811ADD0(u32 type, u32 species);
@@ -125,233 +129,16 @@ void sub_811B31C(u8 *dest, struct UnkStruct_URoom * uRoom, bool8 gender);
u8 sub_811B754(struct UnkStruct_8019BA8 * ptr);
void sub_811BA78(void);
-extern const u8 gUnknown_84571AC[];
-extern const u8 gUnknown_8459394[];
-extern const u8 gUnknown_84593A4[];
-extern const u8 gUnknown_84593B4[];
-extern const u8 gUnknown_84593C4[];
-extern const u8 gUnknown_84593D4[];
-extern const u8 gUnknown_84593E4[];
-extern const u8 gUnknown_84593F4[];
-extern const u8 gUnknown_84593DC[];
-extern const u8 gUnknown_8459400[];
-extern const u8 gUnknown_8459410[];
-extern const u8 gUnknown_845941C[];
-extern const u8 gUnknown_845942C[];
-extern const u8 gUnknown_8459434[];
-extern const u8 gUnknown_8459440[];
-
-static const u8 *const gUnknown_8456C74[] = {
- gUnknown_84571AC,
- gUnknown_8459394,
- gUnknown_84593A4,
- gUnknown_84593B4,
- gUnknown_84593C4,
- gUnknown_84593D4,
- gUnknown_84593E4,
- gUnknown_84593F4,
- gUnknown_84593DC,
- gUnknown_8459400,
- gUnknown_8459410,
- gUnknown_845941C,
- gUnknown_845942C,
- gUnknown_8459434,
- gUnknown_8459440,
- gUnknown_84571AC,
- gUnknown_84571AC,
- gUnknown_84571AC,
- gUnknown_84571AC,
- gUnknown_84571AC,
- gUnknown_84571AC,
- gUnknown_84593E4,
- gUnknown_84593F4
-};
-
-static const struct WindowTemplate gUnknown_8456CD0 = {
- .bg = 0,
- .tilemapLeft = 0,
- .tilemapTop = 0,
- .width = 30,
- .height = 2,
- .paletteNum = 0xF,
- .baseBlock = 0x008
-};
-
-#define _8456CD8(a, b) ((a) | ((b) << 8))
-
-static const u32 gUnknown_8456CD8[] = {
- _8456CD8( 1, 2),
- _8456CD8( 2, 2),
- _8456CD8( 3, 4),
- _8456CD8( 4, 2),
- _8456CD8( 9, 37),
- _8456CD8(10, 37),
- _8456CD8(11, 53),
- _8456CD8(13, 53),
- _8456CD8(14, 53)
-};
-
-#undef _8456CD8
-
-static const struct WindowTemplate gUnknown_8456CFC = {
- .bg = 0,
- .tilemapLeft = 1,
- .tilemapTop = 3,
- .width = 13,
- .height = 10,
- .paletteNum = 15,
- .baseBlock = 0x044
-};
-
-static const struct WindowTemplate gUnknown_8456D04 = {
- .bg = 0,
- .tilemapLeft = 16,
- .tilemapTop = 3,
- .width = 7,
- .height = 4,
- .paletteNum = 15,
- .baseBlock = 0x0C6
-};
-
-const struct ListMenuItem gUnknown_8456D0C[] = {
- {gUnknown_84571AC, 0},
- {gUnknown_84571AC, 1},
- {gUnknown_84571AC, 2},
- {gUnknown_84571AC, 3},
- {gUnknown_84571AC, 4}
-};
-
-static const struct ListMenuTemplate gUnknown_8456D34 = {
- .items = gUnknown_8456D0C,
- .moveCursorFunc = NULL,
- .itemPrintFunc = sub_81164C8,
- .totalItems = 5,
- .maxShowed = 5,
- .windowId = 0,
- .header_X = 0,
- .item_X = 1,
- .cursor_X = 0,
- .upText_Y = 0,
- .cursorPal = 2,
- .fillValue = 1,
- .cursorShadowPal = 3,
- .lettersSpacing = 0,
- .itemVerticalPadding = 2,
- .scrollMultiple = LIST_NO_MULTIPLE_SCROLL,
- .fontId = 2,
- .cursorKind = 1
-};
-
-extern const struct WindowTemplate gUnknown_8456D4C;
-extern const struct WindowTemplate gUnknown_8456D54;
-extern const struct ListMenuTemplate gUnknown_8456DDC;
-extern const struct WindowTemplate gUnknown_8456DF4;
-extern const struct ListMenuTemplate gUnknown_8456E1C;
-extern const struct WindowTemplate gUnknown_8456E34;
-extern const struct ListMenuTemplate gUnknown_8456E54;
-extern const struct WindowTemplate gUnknown_8456E6C;
-extern const struct ListMenuTemplate gUnknown_8456F04;
-extern const struct WindowTemplate gUnknown_8456F1C;
-extern const struct WindowTemplate gUnknown_8456F24;
-extern const struct ListMenuTemplate gUnknown_8456F7C;
-extern const struct UnkStruct_Shared gUnknown_8457034;
-extern const u8 *const gUnknown_8457094[13];
-extern const u8 gUnknown_84570C8[];
-extern const u8 gUnknown_84571B0[];
-extern const u8 gUnknown_84571B4[];
-extern const u8 gUnknown_84571B8[];
-extern const u8 gUnknown_84571E0[];
-extern const u8 gUnknown_8457234[];
-extern const u8 gUnknown_8457264[];
-extern const u8 *const gUnknown_845742C[][5];
-extern const u8 gUnknown_845747C[];
-extern const u8 gUnknown_84574A0[];
-extern const u8 gUnknown_84574C4[];
-extern const u8 gUnknown_84574EC[];
-extern const u8 gUnknown_8457514[];
-extern const u8 gUnknown_8457530[];
-extern const u8 gUnknown_8457554[];
-extern const u8 *const gUnknown_8457608[];
-extern const u8 gUnknown_8457610[];
-extern const u8 *const gUnknown_845767C[];
-extern const u8 gUnknown_84576AC[];
-extern const u8 gUnknown_84576C4[];
-extern const u8 gUnknown_8457700[];
-extern const u8 gUnknown_845771C[];
-extern const u8 *const gUnknown_8457754[];
-extern const u8 gUnknown_845777C[];
-extern const u8 gUnknown_84577BC[];
-extern const u8 gUnknown_84577F8[];
-extern const u8 *const gUnknown_8457838[];
-extern const u8 gUnknown_84578BC[];
-extern const u8 *const gUnknown_8457A34[];
-extern const u8 *const gUnknown_8457B04[][2];
-extern const u8 *const gUnknown_8457BCC[];
-extern const u8 *const gUnknown_8457C20[];
-extern const u8 gUnknown_8457C48[];
-extern const u8 gUnknown_8457CA4[];
-extern const u8 gUnknown_8457CF8[];
-extern const u8 gUnknown_8457D44[];
-extern const u8 gUnknown_8457DB8[];
-extern const u8 gUnknown_8457E0C[];
-extern const u8 gUnknown_8457E28[];
-extern const u8 gUnknown_8457E44[];
-extern const u8 gUnknown_8457E60[];
-extern const u8 *const gUnknown_8457F80[][2];
-extern const u8 gUnknown_8457F90[];
-extern const u8 *const gUnknown_84580F4[][4];
-extern const u8 *const gUnknown_8458230[][2][3];
-extern const u8 *const gUnknown_8458314[];
-extern const u8 *const gUnknown_84583B4[];
-extern const u8 *const gUnknown_845842C[];
-extern const u8 gUnknown_8458434[];
-extern const u8 gUnknown_845847C[];
-extern const u8 gUnknown_84584C0[];
-extern const u8 *const gUnknown_8458548[];
-extern const u8 *const gUnknown_84585E8[];
-extern const u8 *const gUnknown_8458758[2][4];
-extern const u8 *const gUnknown_84588BC[2][4];
-extern const u8 *const gUnknown_84589AC[2][2];
-extern const u8 *const gUnknown_8458A78[2][4];
-extern const u8 gUnknown_8458A98[];
-extern const u8 gUnknown_8458AB8[];
-extern const u8 gUnknown_8458B44[];
-extern const u8 gUnknown_8458CD4[];
-extern const u8 gUnknown_8458D1C[];
-extern const u8 gUnknown_8458D54[];
-extern const u8 gUnknown_8458D78[];
-extern const u8 gUnknown_8458D9C[];
-extern const u8 gUnknown_8458DBC[];
-extern const u8 gUnknown_8458DE8[];
-extern const u8 gUnknown_8458E10[];
-extern const u8 gUnknown_8458E70[];
-extern const u8 gUnknown_8458ED0[];
-extern const u8 gUnknown_8458F04[];
-extern const u8 gUnknown_8458F9C[];
-extern const u8 gUnknown_8458FBC[];
-extern const u8 gUnknown_8458FC8[];
-extern const u8 gUnknown_8458FE4[];
-extern const u8 gUnknown_84591DC[];
-extern const u8 *const gUnknown_84591B8[];
-extern const u8 gUnknown_8459238[];
-extern const u8 gUnknown_8459250[];
-extern const u8 gUnknown_845928C[];
-extern const u8 *const gUnknown_845933C[];
-extern const u8 gUnknown_8459378[];
-extern const u8 *const gUnknown_84594B0[];
-extern const u8 gUnknown_84594C4[];
-extern const u8 gUnknown_8459504[];
-extern const u8 *const gUnknown_8459580[];
-extern const u8 gUnknown_8459588[];
+#include "data/union_room.h"
// These are functions in Emmerald but inlined in FireRed
-#define sub_8018404(dest, arg1) ({ \
+#define IntlConvPartnerUname7(dest, arg1) ({ \
StringCopy7(dest, (arg1).unk.playerName); \
ConvertInternationalString(dest, (arg1).unk.field_0.unk_00.unk_00_0); \
})
-#define sub_8018404_2(dest, arg1) ({ \
+#define IntlConvPartnerUname(dest, arg1) ({ \
StringCopy(dest, (arg1).unk.playerName); \
ConvertInternationalString(dest, (arg1).unk.field_0.unk_00.unk_00_0); \
})
@@ -590,7 +377,7 @@ void sub_8115A68(u8 taskId)
}
else
{
- sub_8018404(gStringVar1, data->field_0->arr[data->field_13 - 1]);
+ IntlConvPartnerUname7(gStringVar1, data->field_0->arr[data->field_13 - 1]);
StringExpandPlaceholders(gStringVar4, gUnknown_8457554);
data->state = 13;
}
@@ -828,7 +615,7 @@ bool8 sub_8116444(struct UnkStruct_Leader * data, u32 arg1, u32 arg2)
case 1:
PlaySE(SE_PC_LOGIN);
RedrawListMenu(data->listTaskId);
- sub_8018404(gStringVar2, data->field_0->arr[data->field_13]);
+ IntlConvPartnerUname7(gStringVar2, data->field_0->arr[data->field_13]);
sub_8116244(gStringVar4, gUnknown_203B058);
data->state = arg1;
break;
@@ -842,15 +629,15 @@ bool8 sub_8116444(struct UnkStruct_Leader * data, u32 arg1, u32 arg2)
return FALSE;
}
-void sub_81164C8(u8 arg0, s32 id, u8 arg2)
+void sub_81164C8(u8 windowId, s32 itemId, u8 y)
{
struct UnkStruct_Leader * data = sUnionRoomMain.leader;
u8 var = 0;
- switch (data->field_0->arr[id].field_1A_0)
+ switch (data->field_0->arr[itemId].field_1A_0)
{
case 1:
- if (data->field_0->arr[id].field_1B != 0)
+ if (data->field_0->arr[itemId].field_1B != 0)
var = 2;
break;
case 2:
@@ -858,7 +645,7 @@ void sub_81164C8(u8 arg0, s32 id, u8 arg2)
break;
}
- sub_811A910(arg0, 0, arg2, &data->field_0->arr[id], var, id);
+ sub_811A910(windowId, 0, y, &data->field_0->arr[itemId], var, itemId);
}
u8 sub_8116524(struct UnkStruct_Main0 * arg0)
@@ -1059,7 +846,7 @@ void sub_8116738(u8 taskId)
sub_811631C(gStringVar4, gUnknown_203B058);
if (PrintOnTextbox(&data->textState, gStringVar4))
{
- sub_8018404(gStringVar1, data->field_0->arr[data->field_F]);
+ IntlConvPartnerUname7(gStringVar1, data->field_0->arr[data->field_F]);
data->state = 6;
}
break;
@@ -1228,7 +1015,7 @@ void sub_8116D60(struct UnkStruct_Group * data, s32 id)
LoadWirelessStatusIndicatorSpriteGfx();
CreateWirelessStatusIndicatorSprite(0, 0);
RedrawListMenu(data->listTaskId);
- sub_8018404(gStringVar1, data->field_0->arr[data->field_F]);
+ IntlConvPartnerUname7(gStringVar1, data->field_0->arr[data->field_F]);
sub_80FB008(gUnknown_84570C8[gSpecialVar_0x8004], 0, 1);
sub_80FBF54(data->field_0->arr[data->field_F].unk.playerName, ReadAsU16(data->field_0->arr[data->field_F].unk.field_0.unk_00.playerTrainerId));
}
@@ -1327,12 +1114,12 @@ u8 sub_8116F5C(struct UnkStruct_Group * data, u32 id)
return 0;
}
-void sub_8116F94(u8 arg0, s32 id, u8 arg2)
+void sub_8116F94(u8 windowId, s32 itemId, u8 y)
{
struct UnkStruct_Group * data = sUnionRoomMain.group;
- u8 var = sub_8116F5C(data, id);
+ u8 var = sub_8116F5C(data, itemId);
- sub_811A81C(arg0, 8, arg2, &data->field_0->arr[id], var, id);
+ sub_811A81C(windowId, 8, y, &data->field_0->arr[itemId], var, itemId);
}
u8 sub_8116FE4(void)
@@ -1827,7 +1614,7 @@ void sub_8117A0C(u8 taskId)
data->field_0->arr[data->field_13].field_1B = 0;
RedrawListMenu(data->listTaskId);
data->field_13++;
- sub_8018404(gStringVar1, data->field_0->arr[data->field_13 - 1]);
+ IntlConvPartnerUname7(gStringVar1, data->field_0->arr[data->field_13 - 1]);
StringExpandPlaceholders(gStringVar4, gUnknown_8457554);
data->state = 9;
sub_80F8F5C();
@@ -2005,7 +1792,7 @@ void sub_8117F20(u8 taskId)
LoadWirelessStatusIndicatorSpriteGfx();
CreateWirelessStatusIndicatorSprite(0, 0);
RedrawListMenu(data->listTaskId);
- sub_8018404_2(gStringVar1, data->field_0->arr[data->field_F]);
+ IntlConvPartnerUname(gStringVar1, data->field_0->arr[data->field_F]);
sub_80FBF54(data->field_0->arr[data->field_F].unk.playerName, ReadAsU16(data->field_0->arr[data->field_F].unk.field_0.unk_00.playerTrainerId));
PlaySE(SE_PN_ON);
data->state = 4;
@@ -2024,7 +1811,7 @@ void sub_8117F20(u8 taskId)
break;
case 4:
AddTextPrinterToWindow1(gUnknown_8459238);
- sub_8018404_2(gStringVar1, data->field_0->arr[data->field_F]);
+ IntlConvPartnerUname(gStringVar1, data->field_0->arr[data->field_F]);
data->state = 5;
break;
case 5:
@@ -2189,7 +1976,7 @@ void sub_81182DC(u8 taskId)
break;
case 4:
AddTextPrinterToWindow1(gUnknown_845928C);
- sub_8018404_2(gStringVar1, data->field_0->arr[data->field_F]);
+ IntlConvPartnerUname(gStringVar1, data->field_0->arr[data->field_F]);
data->state = 5;
break;
case 5:
@@ -3005,17 +2792,17 @@ void sub_81186E0(u8 taskId)
switch (sub_811ADD0(data->field_0->arr[var5].unk.field_0.type, data->field_0->arr[var5].unk.field_0.species))
{
case 0:
- sub_8018404_2(gStringVar1, data->field_0->arr[var5]);
+ IntlConvPartnerUname(gStringVar1, data->field_0->arr[var5]);
sub_8118664(49, gUnknown_8458E70);
taskData[1] = var5;
break;
case 1:
- sub_8018404_2(gStringVar1, data->field_0->arr[var5]);
+ IntlConvPartnerUname(gStringVar1, data->field_0->arr[var5]);
StringCopy(gStringVar2, gTypeNames[data->field_0->arr[var5].unk.field_0.type]);
sub_8118664(46, gUnknown_8458ED0);
break;
case 2:
- sub_8018404_2(gStringVar1, data->field_0->arr[var5]);
+ IntlConvPartnerUname(gStringVar1, data->field_0->arr[var5]);
StringCopy(gStringVar2, gTypeNames[data->field_0->arr[var5].unk.field_0.type]);
sub_8118664(46, gUnknown_8458F04);
break;
@@ -3053,7 +2840,7 @@ void sub_81186E0(u8 taskId)
case 51:
gUnknown_203B058 = 0x44;
sub_80FC114(data->field_0->arr[taskData[1]].unk.playerName, &data->field_0->arr[taskData[1]].unk.field_0, 0x44);
- sub_8018404_2(gStringVar1, data->field_0->arr[taskData[1]]);
+ IntlConvPartnerUname(gStringVar1, data->field_0->arr[taskData[1]]);
sub_811A0B4(gUnknown_8457A34[2]);
data->state = 25;
break;
@@ -3177,7 +2964,7 @@ void sub_81199FC(u8 taskId)
{
if (structPtr->field_0->arr[i].field_1A_0 == 1)
{
- sub_8018404_2(text, structPtr->field_0->arr[i]);
+ IntlConvPartnerUname(text, structPtr->field_0->arr[i]);
if (sub_80FD338(ReadAsU16(structPtr->field_0->arr[i].unk.field_0.unk_00.playerTrainerId), text))
{
StringCopy(sUnionRoomPlayerName, text);
@@ -3832,7 +3619,7 @@ void sub_811A81C(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4,
r2 = arg3->unk.field_0.unk_0a_0;
if (arg3->field_1A_0 == 1 && !(r2 & 0x40))
{
- sub_8018404_2(sp10, *arg3);
+ IntlConvPartnerUname(sp10, *arg3);
sub_811A444(arg0, 2, sp10, arg1, arg2, arg4);
ConvertIntToDecimalStringN(sp0, arg3->unk.field_0.unk_00.playerTrainerId[0] | (arg3->unk.field_0.unk_00.playerTrainerId[1] << 8), STR_CONV_MODE_LEADING_ZEROS, 5);
StringCopy(gStringVar4, gUnknown_84571B4);
@@ -3842,20 +3629,20 @@ void sub_811A81C(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4,
}
}
-void sub_811A910(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id)
+void sub_811A910(u8 windowId, u8 x, u8 y, struct UnkStruct_x20 *arg3, u8 arg4, u8 id)
{
u8 sp0[6];
u8 sp10[30];
if (arg3->field_1A_0 == 1)
{
- sub_8018404_2(sp10, *arg3);
- sub_811A444(arg0, 2, sp10, arg1, arg2, arg4);
+ IntlConvPartnerUname(sp10, *arg3);
+ sub_811A444(windowId, 2, sp10, x, y, arg4);
ConvertIntToDecimalStringN(sp0, arg3->unk.field_0.unk_00.playerTrainerId[0] | (arg3->unk.field_0.unk_00.playerTrainerId[1] << 8), STR_CONV_MODE_LEADING_ZEROS, 5);
StringCopy(gStringVar4, gUnknown_84571B4);
StringAppend(gStringVar4, sp0);
- arg1 += 71;
- sub_811A444(arg0, 0, gStringVar4, arg1, arg2, arg4);
+ x += 71;
+ sub_811A444(windowId, 0, gStringVar4, x, y, arg4);
}
}
@@ -3898,7 +3685,7 @@ u32 sub_811A9FC(s32 arg0)
u32 sub_811AA24(struct UnkStruct_x20 *arg0)
{
u8 sp0[30];
- sub_8018404_2(sp0, *arg0);
+ IntlConvPartnerUname(sp0, *arg0);
return sub_80FD338(ReadAsU16(arg0->unk.field_0.unk_00.playerTrainerId), sp0);
}
@@ -3910,7 +3697,7 @@ s32 sub_811AA5C(struct UnkStruct_Main0 *arg0, u8 arg1, u8 arg2, u32 playerGender
if (!r5->unk.field_0.unk_0a_7 && arg1 == 0)
{
- sub_8018404_2(gStringVar1, *r5);
+ IntlConvPartnerUname(gStringVar1, *r5);
r2 = sub_80FD338(ReadAsU16(r5->unk.field_0.unk_00.playerTrainerId), gStringVar1);
if (r5->unk.field_0.unk_0a_0 == 0x45)
{
@@ -3925,7 +3712,7 @@ s32 sub_811AA5C(struct UnkStruct_Main0 *arg0, u8 arg1, u8 arg2, u32 playerGender
}
else
{
- sub_8018404_2(gStringVar1, *r5);
+ IntlConvPartnerUname(gStringVar1, *r5);
if (arg1 != 0)
{
playerGender = (r5->unk.field_0.unk_00.playerTrainerId[arg1 + 1] >> 3) & 1;
@@ -3957,24 +3744,24 @@ void nullsub_92(u8 windowId, s32 itemId, u8 y)
}
-void sub_811ABE4(u8 arg0, u8 arg1, struct GFtgtGname * arg2, const u8 * str, u8 arg4)
+void sub_811ABE4(u8 windowId, u8 y, struct GFtgtGname * gname, const u8 * uname, u8 colorIdx)
{
- u8 sp8[4];
- u16 r8 = arg2->species;
- u8 r7 = arg2->type;
- u8 r9 = arg2->level;
+ u8 level_t[4];
+ u16 species = gname->species;
+ u8 type = gname->type;
+ u8 level = gname->level;
- sub_811A444(arg0, 2, str, 8, arg1, arg4);
- if (r8 == SPECIES_EGG)
+ sub_811A444(windowId, 2, uname, 8, y, colorIdx);
+ if (species == SPECIES_EGG)
{
- sub_811A444(arg0, 2, gUnknown_8458FBC, 0x44, arg1, arg4);
+ sub_811A444(windowId, 2, gUnknown_8458FBC, 0x44, y, colorIdx);
}
else
{
- BlitMoveInfoIcon(arg0, r7 + 1, 0x44, arg1);
- sub_811A444(arg0, 2, gSpeciesNames[r8], 0x76, arg1, arg4);
- ConvertIntToDecimalStringN(sp8, r9, STR_CONV_MODE_LEFT_ALIGN, 3);
- sub_811A444(arg0, 2, sp8, GetStringRightAlignXOffset(2, sp8, 218), arg1, arg4);
+ BlitMoveInfoIcon(windowId, type + 1, 0x44, y);
+ sub_811A444(windowId, 2, gSpeciesNames[species], 0x76, y, colorIdx);
+ ConvertIntToDecimalStringN(level_t, level, STR_CONV_MODE_LEFT_ALIGN, 3);
+ sub_811A444(windowId, 2, level_t, GetStringRightAlignXOffset(2, level_t, 218), y, colorIdx);
}
}
@@ -3983,7 +3770,7 @@ void sub_811ACA4(u8 windowId, s32 itemId, u8 y)
struct UnkStruct_Leader *leader = sUnionRoomMain.leader;
struct GFtgtGname *rfu;
s32 i, j;
- u8 sp4[8];
+ u8 uname[8];
if (itemId == -3 && y == gUnknown_8456F7C.upText_Y)
{
@@ -4004,8 +3791,8 @@ void sub_811ACA4(u8 windowId, s32 itemId, u8 y)
}
if (j == itemId + 1)
{
- sub_8018404_2(sp4, leader->field_0->arr[i]);
- sub_811ABE4(windowId, y, &leader->field_0->arr[i].unk.field_0, sp4, 6);
+ IntlConvPartnerUname(uname, leader->field_0->arr[i]);
+ sub_811ABE4(windowId, y, &leader->field_0->arr[i].unk.field_0, uname, 6);
break;
}
}