Data through gUnknown_84570C8

This commit is contained in:
PikalaxALT
2020-01-21 14:36:13 -05:00
parent d873b1c6aa
commit 9f9b4dd13d
5 changed files with 720 additions and 657 deletions
-208
View File
@@ -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
+130
View File
@@ -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
+1 -183
View File
@@ -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;
+536
View File
@@ -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
+53 -266
View File
@@ -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;
}
}