Merge branch 'master' into pokeathlon-part-1

This commit is contained in:
red031000 2025-11-04 21:40:14 +00:00 committed by GitHub
commit eb55ea352e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
38 changed files with 1037 additions and 993 deletions

View File

@ -4304,20 +4304,20 @@ ov12_0226C324: ; 0x0226C324
.public ov12_0226C33C
ov12_0226C33C: ; 0x0226C33C
.word MON_DATA_MAXHP
.word MON_DATA_MAX_HP
.word MON_DATA_ATK
.word MON_DATA_DEF
.word MON_DATA_SPATK
.word MON_DATA_SPDEF
.word MON_DATA_SP_ATK
.word MON_DATA_SP_DEF
.word MON_DATA_SPEED
.public ov12_0226C354
ov12_0226C354: ; 0x0226C354
.word MON_DATA_MAXHP
.word MON_DATA_MAX_HP
.word MON_DATA_ATK
.word MON_DATA_DEF
.word MON_DATA_SPATK
.word MON_DATA_SPDEF
.word MON_DATA_SP_ATK
.word MON_DATA_SP_DEF
.word MON_DATA_SPEED
.public ov12_0226C36C
@ -4331,11 +4331,11 @@ ov12_0226C36C: ; 0x0226C36C
.public ov12_0226C384
ov12_0226C384: ; 0x0226C384
.word MON_DATA_MAXHP
.word MON_DATA_MAX_HP
.word MON_DATA_ATK
.word MON_DATA_DEF
.word MON_DATA_SPATK
.word MON_DATA_SPDEF
.word MON_DATA_SP_ATK
.word MON_DATA_SP_DEF
.word MON_DATA_SPEED
.public sLowKickDamageTable

View File

@ -82,7 +82,7 @@ sub_0202B684: ; 0x0202B684
add r2, r5, #0
strh r0, [r5, #8]
add r0, r4, #0
mov r1, #MON_DATA_NICKNAME_FLAT
mov r1, #MON_DATA_NICKNAME
add r2, #0xa
bl GetMonData
mov r1, #MON_DATA_PERSONALITY
@ -91,7 +91,7 @@ sub_0202B684: ; 0x0202B684
bl GetMonData
str r0, [r5]
add r0, r4, #0
mov r1, #MON_DATA_OTID
mov r1, #MON_DATA_OT_ID
mov r2, #0
bl GetMonData
str r0, [r5, #4]

View File

@ -2436,7 +2436,7 @@ _020769BC:
ldrb r1, [r1]
ldr r0, [r4, #0x28]
add r2, #0x66
add r1, #MON_DATA_MOVE1PPUP
add r1, #MON_DATA_MOVE1_PP_UPS
bl SetMonData
add r1, r4, #0
add r2, r4, #0
@ -2847,7 +2847,7 @@ _02076D32:
str r1, [sp, #4]
cmp r1, #0x36
blt _02076D32
mov r1, #MON_DATA_HOENN_COOL_RIBBON
mov r1, #MON_DATA_COOL_RIBBON
str r1, [sp, #4]
add r6, sp, #0
_02076D4A:
@ -2859,7 +2859,7 @@ _02076D4A:
str r1, [sp, #4]
cmp r1, #0x6e
blt _02076D4A
mov r1, #MON_DATA_COOL_RIBBON
mov r1, #MON_DATA_SUPER_COOL_RIBBON
str r1, [sp, #4]
add r6, sp, #0
_02076D62:

View File

@ -159,18 +159,18 @@
#define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536
#define MON_DATA_PERSONALITY 0
#define MON_DATA_PARTY_LOCK 1
#define MON_DATA_BOX_LOCK 2
#define MON_DATA_IS_PARTY_DECRYPTED 1
#define MON_DATA_IS_BOX_DECRYPTED 2
#define MON_DATA_CHECKSUM_FAILED 3
#define MON_DATA_CHECKSUM 4
#define MON_DATA_SPECIES 5
#define MON_DATA_HELD_ITEM 6
#define MON_DATA_OTID 7
#define MON_DATA_OT_ID 7
#define MON_DATA_EXPERIENCE 8
#define MON_DATA_FRIENDSHIP 9
#define MON_DATA_ABILITY 10
#define MON_DATA_MARKINGS 11
#define MON_DATA_GAME_LANGUAGE 12
#define MON_DATA_LANGUAGE 12
#define MON_DATA_HP_EV 13
#define MON_DATA_ATK_EV 14
#define MON_DATA_DEF_EV 15
@ -211,23 +211,23 @@
#define MON_DATA_CARNIVAL_RIBBON 50
#define MON_DATA_CLASSIC_RIBBON 51
#define MON_DATA_PREMIER_RIBBON 52
#define MON_DATA_SINNOH_RIBBON_53 53
#define MON_DATA_UNUSED_RIBBON_53 53
#define MON_DATA_MOVE1 54
#define MON_DATA_MOVE2 55
#define MON_DATA_MOVE3 56
#define MON_DATA_MOVE4 57
#define MON_DATA_MOVE1PP 58
#define MON_DATA_MOVE2PP 59
#define MON_DATA_MOVE3PP 60
#define MON_DATA_MOVE4PP 61
#define MON_DATA_MOVE1PPUP 62
#define MON_DATA_MOVE2PPUP 63
#define MON_DATA_MOVE3PPUP 64
#define MON_DATA_MOVE4PPUP 65
#define MON_DATA_MOVE1MAXPP 66
#define MON_DATA_MOVE2MAXPP 67
#define MON_DATA_MOVE3MAXPP 68
#define MON_DATA_MOVE4MAXPP 69
#define MON_DATA_MOVE1_PP 58
#define MON_DATA_MOVE2_PP 59
#define MON_DATA_MOVE3_PP 60
#define MON_DATA_MOVE4_PP 61
#define MON_DATA_MOVE1_PP_UPS 62
#define MON_DATA_MOVE2_PP_UPS 63
#define MON_DATA_MOVE3_PP_UPS 64
#define MON_DATA_MOVE4_PP_UPS 65
#define MON_DATA_MOVE1_MAX_PP 66
#define MON_DATA_MOVE2_MAX_PP 67
#define MON_DATA_MOVE3_MAX_PP 68
#define MON_DATA_MOVE4_MAX_PP 69
#define MON_DATA_HP_IV 70
#define MON_DATA_ATK_IV 71
#define MON_DATA_DEF_IV 72
@ -236,104 +236,104 @@
#define MON_DATA_SPDEF_IV 75
#define MON_DATA_IS_EGG 76
#define MON_DATA_HAS_NICKNAME 77
#define MON_DATA_HOENN_COOL_RIBBON 78
#define MON_DATA_HOENN_COOL_RIBBON_SUPER 79
#define MON_DATA_HOENN_COOL_RIBBON_HYPER 80
#define MON_DATA_HOENN_COOL_RIBBON_MASTER 81
#define MON_DATA_HOENN_BEAUTY_RIBBON 82
#define MON_DATA_HOENN_BEAUTY_RIBBON_SUPER 83
#define MON_DATA_HOENN_BEAUTY_RIBBON_HYPER 84
#define MON_DATA_HOENN_BEAUTY_RIBBON_MASTER 85
#define MON_DATA_HOENN_CUTE_RIBBON 86
#define MON_DATA_HOENN_CUTE_RIBBON_SUPER 87
#define MON_DATA_HOENN_CUTE_RIBBON_HYPER 88
#define MON_DATA_HOENN_CUTE_RIBBON_MASTER 89
#define MON_DATA_HOENN_SMART_RIBBON 90
#define MON_DATA_HOENN_SMART_RIBBON_SUPER 91
#define MON_DATA_HOENN_SMART_RIBBON_HYPER 92
#define MON_DATA_HOENN_SMART_RIBBON_MASTER 93
#define MON_DATA_HOENN_TOUGH_RIBBON 94
#define MON_DATA_HOENN_TOUGH_RIBBON_SUPER 95
#define MON_DATA_HOENN_TOUGH_RIBBON_HYPER 96
#define MON_DATA_HOENN_TOUGH_RIBBON_MASTER 97
#define MON_DATA_HOENN_CHAMPION_RIBBON 98
#define MON_DATA_HOENN_WINNING_RIBBON 99
#define MON_DATA_HOENN_VICTORY_RIBBON 100
#define MON_DATA_HOENN_ARTIST_RIBBON 101
#define MON_DATA_HOENN_EFFORT_RIBBON 102
#define MON_DATA_HOENN_MARINE_RIBBON 103
#define MON_DATA_HOENN_LAND_RIBBON 104
#define MON_DATA_HOENN_SKY_RIBBON 105
#define MON_DATA_HOENN_COUNTRY_RIBBON 106
#define MON_DATA_HOENN_NATIONAL_RIBBON 107
#define MON_DATA_HOENN_EARTH_RIBBON 108
#define MON_DATA_HOENN_WORLD_RIBBON 109
#define MON_DATA_COOL_RIBBON 78
#define MON_DATA_COOL_RIBBON_SUPER 79
#define MON_DATA_COOL_RIBBON_HYPER 80
#define MON_DATA_COOL_RIBBON_MASTER 81
#define MON_DATA_BEAUTY_RIBBON 82
#define MON_DATA_BEAUTY_RIBBON_SUPER 83
#define MON_DATA_BEAUTY_RIBBON_HYPER 84
#define MON_DATA_BEAUTY_RIBBON_MASTER 85
#define MON_DATA_CUTE_RIBBON 86
#define MON_DATA_CUTE_RIBBON_SUPER 87
#define MON_DATA_CUTE_RIBBON_HYPER 88
#define MON_DATA_CUTE_RIBBON_MASTER 89
#define MON_DATA_SMART_RIBBON 90
#define MON_DATA_SMART_RIBBON_SUPER 91
#define MON_DATA_SMART_RIBBON_HYPER 92
#define MON_DATA_SMART_RIBBON_MASTER 93
#define MON_DATA_TOUGH_RIBBON 94
#define MON_DATA_TOUGH_RIBBON_SUPER 95
#define MON_DATA_TOUGH_RIBBON_HYPER 96
#define MON_DATA_TOUGH_RIBBON_MASTER 97
#define MON_DATA_CHAMPION_RIBBON 98
#define MON_DATA_WINNING_RIBBON 99
#define MON_DATA_VICTORY_RIBBON 100
#define MON_DATA_ARTIST_RIBBON 101
#define MON_DATA_EFFORT_RIBBON 102
#define MON_DATA_MARINE_RIBBON 103
#define MON_DATA_LAND_RIBBON 104
#define MON_DATA_SKY_RIBBON 105
#define MON_DATA_COUNTRY_RIBBON 106
#define MON_DATA_NATIONAL_RIBBON 107
#define MON_DATA_EARTH_RIBBON 108
#define MON_DATA_WORLD_RIBBON 109
#define MON_DATA_FATEFUL_ENCOUNTER 110
#define MON_DATA_GENDER 111
#define MON_DATA_FORM 112
#define MON_DATA_RESERVED_113 113 // HGSS
#define MON_DATA_RESERVED_114 114 // Plat
#define MON_DATA_HGSS_EGG_MET_LOCATION 115
#define MON_DATA_HGSS_MET_LOCATION 116
#define MON_DATA_NICKNAME_FLAT 117
#define MON_DATA_UNUSED_113 113
#define MON_DATA_UNUSED_114 114
#define MON_DATA_EGG_LOCATION_PTHGSS 115
#define MON_DATA_MET_LOCATION_PTHGSS 116
#define MON_DATA_NICKNAME 117
#define MON_DATA_NICKNAME_FLAT_COMPARE 118
#define MON_DATA_NICKNAME_STRING 119
#define MON_DATA_NICKNAME_STRING_COMPARE 120
#define MON_DATA_UNK_121 121
#define MON_DATA_GAME_VERSION 122
#define MON_DATA_COOL_RIBBON 123
#define MON_DATA_COOL_RIBBON_GREAT 124
#define MON_DATA_COOL_RIBBON_ULTRA 125
#define MON_DATA_COOL_RIBBON_MASTER 126
#define MON_DATA_BEAUTY_RIBBON 127
#define MON_DATA_BEAUTY_RIBBON_GREAT 128
#define MON_DATA_BEAUTY_RIBBON_ULTRA 129
#define MON_DATA_BEAUTY_RIBBON_MASTER 130
#define MON_DATA_CUTE_RIBBON 131
#define MON_DATA_CUTE_RIBBON_GREAT 132
#define MON_DATA_CUTE_RIBBON_ULTRA 133
#define MON_DATA_CUTE_RIBBON_MASTER 134
#define MON_DATA_SMART_RIBBON 135
#define MON_DATA_SMART_RIBBON_GREAT 136
#define MON_DATA_SMART_RIBBON_ULTRA 137
#define MON_DATA_SMART_RIBBON_MASTER 138
#define MON_DATA_TOUGH_RIBBON 139
#define MON_DATA_TOUGH_RIBBON_GREAT 140
#define MON_DATA_TOUGH_RIBBON_ULTRA 141
#define MON_DATA_TOUGH_RIBBON_MASTER 142
#define MON_DATA_SINNOH_RIBBON_143 143
#define MON_DATA_NICKNAME_STRING_AND_FLAG 120
#define MON_DATA_UNUSED_121 121
#define MON_DATA_MET_GAME 122
#define MON_DATA_SUPER_COOL_RIBBON 123
#define MON_DATA_SUPER_COOL_RIBBON_GREAT 124
#define MON_DATA_SUPER_COOL_RIBBON_ULTRA 125
#define MON_DATA_SUPER_COOL_RIBBON_MASTER 126
#define MON_DATA_SUPER_BEAUTY_RIBBON 127
#define MON_DATA_SUPER_BEAUTY_RIBBON_GREAT 128
#define MON_DATA_SUPER_BEAUTY_RIBBON_ULTRA 129
#define MON_DATA_SUPER_BEAUTY_RIBBON_MASTER 130
#define MON_DATA_SUPER_CUTE_RIBBON 131
#define MON_DATA_SUPER_CUTE_RIBBON_GREAT 132
#define MON_DATA_SUPER_CUTE_RIBBON_ULTRA 133
#define MON_DATA_SUPER_CUTE_RIBBON_MASTER 134
#define MON_DATA_SUPER_SMART_RIBBON 135
#define MON_DATA_SUPER_SMART_RIBBON_GREAT 136
#define MON_DATA_SUPER_SMART_RIBBON_ULTRA 137
#define MON_DATA_SUPER_SMART_RIBBON_MASTER 138
#define MON_DATA_SUPER_TOUGH_RIBBON 139
#define MON_DATA_SUPER_TOUGH_RIBBON_GREAT 140
#define MON_DATA_SUPER_TOUGH_RIBBON_ULTRA 141
#define MON_DATA_SUPER_TOUGH_RIBBON_MASTER 142
#define MON_DATA_UNUSED_RIBBON_143 143
#define MON_DATA_OT_NAME 144
#define MON_DATA_OT_NAME_2 145
#define MON_DATA_EGG_MET_YEAR 146
#define MON_DATA_EGG_MET_MONTH 147
#define MON_DATA_EGG_MET_DAY 148
#define MON_DATA_OT_NAME_STRING 145
#define MON_DATA_EGG_YEAR 146
#define MON_DATA_EGG_MONTH 147
#define MON_DATA_EGG_DAY 148
#define MON_DATA_MET_YEAR 149
#define MON_DATA_MET_MONTH 150
#define MON_DATA_MET_DAY 151
#define MON_DATA_EGG_MET_LOCATION 152
#define MON_DATA_EGG_LOCATION 152
#define MON_DATA_MET_LOCATION 153
#define MON_DATA_POKERUS 154
#define MON_DATA_POKEBALL 155
#define MON_DATA_MET_LEVEL 156
#define MON_DATA_OT_GENDER 157
#define MON_DATA_ENCOUNTER_TYPE 158 // HGSS
#define MON_DATA_MET_TERRAIN 158
#define MON_DATA_RESERVED_159 159
#define MON_DATA_STATUS 160
#define MON_DATA_LEVEL 161
#define MON_DATA_CAPSULE 162
#define MON_DATA_BALL_CAPSULE_ID 162
#define MON_DATA_HP 163
#define MON_DATA_MAXHP 164
#define MON_DATA_MAX_HP 164
#define MON_DATA_ATK 165
#define MON_DATA_DEF 166
#define MON_DATA_SPEED 167
#define MON_DATA_SPATK 168
#define MON_DATA_SPDEF 169
#define MON_DATA_MAIL_STRUCT 170
#define MON_DATA_SEAL_COORDS 171
#define MON_DATA_SP_ATK 168
#define MON_DATA_SP_DEF 169
#define MON_DATA_MAIL 170
#define MON_DATA_BALL_CAPSULE 171
#define MON_DATA_SPECIES_EXISTS 172
#define MON_DATA_SANITY_IS_EGG 173
#define MON_DATA_SPECIES_OR_EGG 174 // If the Pokémon is in an Egg, return SPECIES_EGG.
#define MON_DATA_IVS_WORD 175
#define MON_DATA_COMBINED_IVS 175
#define MON_DATA_NO_PRINT_GENDER 176
#define MON_DATA_TYPE_1 177
#define MON_DATA_TYPE_2 178
@ -347,8 +347,6 @@
#define MON_DATA_SHINY_LEAF_CROWN 186
#define MON_DATA_MOOD 187
#define MON_DATA_NICKNAME (MON_DATA_NICKNAME_FLAT)
#define OT_ID_PLAYER_ID 0
#define OT_ID_PRESET 1
#define OT_ID_RANDOM_NO_SHINY 2

View File

@ -43,69 +43,101 @@ typedef struct BaseStats {
// Structs
/**
* @brief Block A of the BoxPokemon data structure
*/
typedef struct {
/* 0x00 */ u16 species;
/* 0x02 */ u16 heldItem;
/* 0x04 */ u32 otID; // low 16: visible; high 16: secret
/* 0x04 */ u32 otID;
/* 0x08 */ u32 exp;
/* 0x0C */ u8 friendship;
/* 0x0D */ u8 ability;
/* 0x0E */ u8 markings; // circle, triangle, square, heart, star, diamond
/* 0x0E */ u8 markings;
/* 0x0F */ u8 originLanguage;
/* 0x10 */ u8 hpEV;
/* 0x11 */ u8 atkEV;
/* 0x12 */ u8 defEV;
/* 0x13 */ u8 spdEV;
/* 0x14 */ u8 spatkEV;
/* 0x15 */ u8 spdefEV;
/* 0x16 */ u8 coolStat;
/* 0x17 */ u8 beautyStat;
/* 0x18 */ u8 cuteStat;
/* 0x19 */ u8 smartStat;
/* 0x1A */ u8 toughStat;
/* 0x13 */ u8 speedEV;
/* 0x14 */ u8 spAtkEV;
/* 0x15 */ u8 spDefEV;
/* 0x16 */ u8 cool;
/* 0x17 */ u8 beauty;
/* 0x18 */ u8 cute;
/* 0x19 */ u8 smart;
/* 0x1A */ u8 tough;
/* 0x1B */ u8 sheen;
// TODO: Finish SinnohRibbonSet1
/* 0x1C */ u32 sinnohRibbons;
// u8 sinnohChampRibbon:1, abilityRibbon:1;
// u8 field_0x1d;
// u8 gorgeousRoyalRibbon:1, footprintRibbon:1;
// u8 field_0x1f;
/* 0x1C */ u32 ribbonsDS1; //!< A bitmask of non-Super Contest ribbons introduced in Generation 4. Sinnoh Champ, Ability, Great Ability, Double Ability, Multi Ability, Pair Ability, World Ability, Alert, Shock, Downcast, Careless, Relax, Snooze, Smile, Gorgeous, Royal, Gorgeous Royal, Footprint, Record, History, Legend, Red, Green, Blue, Festival, Carnival, Classic and Premier Ribbons.
} PokemonDataBlockA;
/**
* @brief Block B of the BoxPokemon data structure
*/
typedef struct {
/* 0x00 */ u16 moves[MAX_MON_MOVES];
/* 0x08 */ u8 movePP[MAX_MON_MOVES];
/* 0x0C */ u8 movePpUps[MAX_MON_MOVES];
/* 0x10 */ u32 hpIV : 5, atkIV : 5, defIV : 5, spdIV : 5, spatkIV : 5, spdefIV : 5, isEgg : 1, isNicknamed : 1;
// TODO: Finish HoennRibbonSet
/* 0x14 */ u32 ribbonFlags; // cool, ...
/* 0x18 */ u8 fatefulEncounter : 1, gender : 2, alternateForm : 5;
/* 0x08 */ u8 moveCurrentPPs[MAX_MON_MOVES];
/* 0x0C */ u8 movePPUps[MAX_MON_MOVES];
/* 0x10 */ u32 hpIV : 5;
u32 atkIV : 5;
u32 defIV : 5;
u32 speedIV : 5;
u32 spAtkIV : 5;
u32 spDefIV : 5;
u32 isEgg : 1;
u32 hasNickname : 1;
/* 0x14 */ u32 ribbonsGBA; //!< A bitmask of ribbons introduced in Generation 3. Cool, Beauty, Cute, Smart, Tough, Champion, Winning, Victory, Artist, Effort, Marine, Land, Sky, Country, National, Earth and World Ribbons.
/* 0x18 */ u8 fatefulEncounter : 1;
u8 gender : 2;
u8 form : 5;
/* 0x19 */ u8 HGSS_shinyLeaves : 6;
/* 0x19 */ u8 unk_19_6 : 2;
/* 0x1A */ u16 Unused;
/* 0x1C */ u16 Platinum_EggLocation;
/* 0x1E */ u16 Platinum_MetLocation;
u8 unused1 : 2;
/* 0x1A */ u16 unused2;
/* 0x1C */ u16 EggLocation_PtHGSS;
/* 0x1E */ u16 MetLocation_PtHGSS;
} PokemonDataBlockB;
/**
* @brief Block C of the BoxPokemon data structure
*/
typedef struct {
/* 0x00 */ u16 nickname[11];
/* 0x16 */ u8 Unused;
/* 0x16 */ u8 unused;
/* 0x17 */ u8 originGame;
// TODO: Finish SinnohRibbonSet2
/* 0x18 */ u64 sinnohRibbons2; // cool, ...
/* 0x18 */ u64 ribbonsDS2;
} PokemonDataBlockC;
/**
* @brief Block D of the BoxPokemon data structure
*/
typedef struct {
/* 0x00 */ u16 otTrainerName[PLAYER_NAME_LENGTH + 1];
/* 0x10 */ u8 dateEggReceived[3];
/* 0x13 */ u8 dateMet[3];
/* 0x16 */ u16 DP_EggLocation;
/* 0x18 */ u16 DP_MetLocation;
/* 0x00 */ u16 otName[PLAYER_NAME_LENGTH + 1];
/* 0x10 */ u8 eggYear;
/* 0x11 */ u8 eggMonth;
/* 0x12 */ u8 eggDay;
/* 0x13 */ u8 metYear;
/* 0x14 */ u8 metMonth;
/* 0x15 */ u8 metDay;
/* 0x16 */ u16 EggLocation_DP;
/* 0x18 */ u16 MetLocation_DP;
/* 0x1A */ u8 pokerus;
/* 0x1B */ u8 pokeball;
/* 0x1C */ u8 metLevel : 7;
u8 otGender : 1;
/* 0x1D */ u8 encounterType;
u8 otGender : 1;
/* 0x1D */ u8 metTerrain;
/* 0x1E */ u8 HGSS_Pokeball;
/* 0x1F */ s8 mood;
} PokemonDataBlockD;
@ -117,14 +149,17 @@ typedef union {
PokemonDataBlockD blockD;
} PokemonDataBlock;
/**
* @brief Boxed Pokemon data structure
*/
typedef struct BoxPokemon {
/* 0x000 */ u32 pid;
/* 0x004 */ u16 party_lock : 1;
u16 box_lock : 1;
u16 checksum_fail : 1;
u16 Unused : 13; // Might be used for validity checks
/* 0x006 */ u16 checksum; // Stored checksum of pokemon
/* 0x008 */ PokemonDataBlock substructs[4];
/* 0x000 */ u32 personality;
/* 0x004 */ u16 partyDecrypted : 1;
u16 boxDecrypted : 1;
u16 checksumFailed : 1;
u16 unused : 13;
/* 0x006 */ u16 checksum;
/* 0x008 */ PokemonDataBlock dataBlocks[4];
} BoxPokemon;
union MailPatternData {
@ -156,31 +191,36 @@ typedef struct Mail {
MailMessage unk_20[3];
} Mail;
/**
* @brief Party Pokemon data structure
* This is used to store stats for a pokemon while it is in the players party.
* Rather than recalculating stats after each battle, they're stored here.
*/
typedef struct PartyPokemon {
/* 0x088 */ u32 status; // slp:3, psn:1, brn:1, frz:1, prz:1, tox:1, ...
/* 0x08C */ u8 level;
/* 0x08D */ u8 capsule;
/* 0x08E */ u16 hp;
/* 0x090 */ u16 maxHp;
/* 0x092 */ u16 atk;
/* 0x094 */ u16 def;
/* 0x096 */ u16 speed;
/* 0x098 */ u16 spatk;
/* 0x09A */ u16 spdef;
/* 0x08C */ u8 level; //!< The Pokemon's current level, as computed from its total EXP value and its species' level curve.
/* 0x08D */ u8 ballCapsuleID; //!< The ID of the ball capsule attached to the Pokemon.
/* 0x08E */ u16 hp; //!< The Pokemon's current HP.
/* 0x090 */ u16 maxHP; //!< The Pokemon's maximum HP.
/* 0x092 */ u16 atk; //!< The Pokemon's Attack stat.
/* 0x094 */ u16 def; //!< The Pokemon's Defense stat.
/* 0x096 */ u16 speed; //!< The Pokemon's Speed stat.
/* 0x098 */ u16 spatk; //!< The Pokemon's Special Attack stat.
/* 0x09A */ u16 spdef; //!< The Pokemon's Special Defense stat.
/* 0x09C */ Mail mail;
/* 0x0D4 */ CAPSULE sealCoords; // seal coords
} PARTYMON;
} PartyPokemon;
typedef struct {
/* 0x000 */ BoxPokemon box;
/* 0x088 */ PARTYMON party;
/* 0x088 */ PartyPokemon party;
} Pokemon; // size: 0xEC
struct UnkPokemonStruct_02072A98 {
/* 0x00 */ u32 pid;
/* 0x04 */ u16 party_lock : 1;
u16 box_lock : 1;
u16 checksum_fail : 1;
/* 0x00 */ u32 personality;
/* 0x04 */ u16 partyDecrypted : 1;
u16 boxDecrypted : 1;
u16 checksumFailed : 1;
/* 0x06 */ u16 species;
/* 0x08 */ u16 heldItem;
/* 0x0C */ u32 otID;
@ -190,32 +230,32 @@ struct UnkPokemonStruct_02072A98 {
/* 0x16 */ u8 hpEV;
/* 0x17 */ u8 atkEV;
/* 0x18 */ u8 defEV;
/* 0x19 */ u8 spdEV;
/* 0x1A */ u8 spatkEV;
/* 0x1B */ u8 spdefEV;
/* 0x19 */ u8 speedEV;
/* 0x1A */ u8 spAtkEV;
/* 0x1B */ u8 spDefEV;
/* 0x1C */ u16 moves[MAX_MON_MOVES];
/* 0x24 */ u8 movePP[MAX_MON_MOVES];
/* 0x28 */ u8 movePpUps[MAX_MON_MOVES];
/* 0x24 */ u8 moveCurrentPPs[MAX_MON_MOVES];
/* 0x28 */ u8 movePPUps[MAX_MON_MOVES];
/* 0x2C */ u32 hpIV : 5;
u32 atkIV : 5;
u32 defIV : 5;
u32 spdIV : 5;
u32 spatkIV : 5;
u32 spdefIV : 5;
u32 isEgg : 1;
u32 isNicknamed : 1;
u32 atkIV : 5;
u32 defIV : 5;
u32 speedIV : 5;
u32 spAtkIV : 5;
u32 spDefIV : 5;
u32 isEgg : 1;
u32 hasNickname : 1;
/* 0x30 */ u8 fatefulEncounter : 1;
u8 gender : 2;
u8 alternateForm : 5;
u8 gender : 2;
u8 form : 5;
/* 0x32 */ u16 nickname[POKEMON_NAME_LENGTH + 1];
/* 0x48 */ u16 otTrainerName[PLAYER_NAME_LENGTH + 1];
/* 0x48 */ u16 otName[PLAYER_NAME_LENGTH + 1];
/* 0x58 */ u8 pokeball;
/* 0x59 */ u8 originLanguage;
/* 0x5C */ u32 status;
/* 0x60 */ u8 level;
/* 0x61 */ u8 capsule;
/* 0x61 */ u8 ballCapsuleID;
/* 0x62 */ u16 hp;
/* 0x64 */ u16 maxHp;
/* 0x64 */ u16 maxHP;
/* 0x66 */ u16 atk;
/* 0x68 */ u16 def;
/* 0x6A */ u16 speed;

View File

@ -5996,7 +5996,7 @@ static void Task_GetExp(SysTask *task, void *inData) {
}
if (!ov12_022568B0(data->bsys, mon)) {
if (GetMonData(mon, MON_DATA_GAME_LANGUAGE, NULL) != gGameLanguage) {
if (GetMonData(mon, MON_DATA_LANGUAGE, NULL) != gGameLanguage) {
totalExp = totalExp * 170 / 100;
} else {
totalExp = totalExp * 150 / 100;
@ -6374,7 +6374,7 @@ static void Task_GetExp(SysTask *task, void *inData) {
data->unk30[0] = BattleSystem_PrintBattleMessage(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
i = 0;
SetMonData(mon, MON_DATA_MOVE1PPUP + data->unk30[5], &i);
SetMonData(mon, MON_DATA_MOVE1_PP_UPS + data->unk30[5], &i);
MonSetMoveInSlot(mon, data->unk30[4], data->unk30[5]);
if (data->ctx->selectedMonIndex[expBattler] == slot) {

View File

@ -526,8 +526,8 @@ BOOL BattleSystem_RecoverStatus(BattleSystem *bsys, int battlerId, int selectedM
if (GetItemAttr(item, ITEMATTR_PP_RESTORE, HEAP_ID_BATTLE)) {
data = GetItemAttr(item, ITEMATTR_PP_RESTORE_PARAM, HEAP_ID_BATTLE);
if (GetMonData(mon, MON_DATA_MOVE1PP + movePos, NULL) != GetMonData(mon, MON_DATA_MOVE1MAXPP + movePos, NULL)) {
AddMonData(mon, MON_DATA_MOVE1PP + movePos, data);
if (GetMonData(mon, MON_DATA_MOVE1_PP + movePos, NULL) != GetMonData(mon, MON_DATA_MOVE1_MAX_PP + movePos, NULL)) {
AddMonData(mon, MON_DATA_MOVE1_PP + movePos, data);
if (index1 == selectedMonIndex || index2 == selectedMonIndex) {
if (!(GetBattlerVar(ctx, battlerId, BMON_DATA_STATUS2, NULL) & STATUS2_TRANSFORM) && !(GetBattlerVar(ctx, battlerId, BMON_DATA_MIMICED_MOVE, NULL) & MaskOfFlagNo(movePos))) {
AddBattlerVar(ctx, battlerId, BMON_DATA_CUR_PP_1 + movePos, data);
@ -540,8 +540,8 @@ BOOL BattleSystem_RecoverStatus(BattleSystem *bsys, int battlerId, int selectedM
if (GetItemAttr(item, ITEMATTR_PP_RESTORE_ALL, HEAP_ID_BATTLE)) {
data = GetItemAttr(item, ITEMATTR_PP_RESTORE_PARAM, HEAP_ID_BATTLE);
for (movePos = 0; movePos < MAX_MON_MOVES; movePos++) {
if (GetMonData(mon, MON_DATA_MOVE1PP + movePos, NULL) != GetMonData(mon, MON_DATA_MOVE1MAXPP + movePos, NULL)) {
AddMonData(mon, MON_DATA_MOVE1PP + movePos, data);
if (GetMonData(mon, MON_DATA_MOVE1_PP + movePos, NULL) != GetMonData(mon, MON_DATA_MOVE1_MAX_PP + movePos, NULL)) {
AddMonData(mon, MON_DATA_MOVE1_PP + movePos, data);
if (index1 == selectedMonIndex || index2 == selectedMonIndex) {
if (!(GetBattlerVar(ctx, battlerId, BMON_DATA_STATUS2, NULL) & STATUS2_TRANSFORM) && !(GetBattlerVar(ctx, battlerId, BMON_DATA_MIMICED_MOVE, NULL) & MaskOfFlagNo(movePos))) {
AddBattlerVar(ctx, battlerId, BMON_DATA_CUR_PP_1 + movePos, data);
@ -561,20 +561,20 @@ BOOL BattleSystem_RecoverStatus(BattleSystem *bsys, int battlerId, int selectedM
} else {
data = GetMonData(mon, MON_DATA_HP, NULL);
}
if (data && GetMonData(mon, MON_DATA_HP, NULL) != GetMonData(mon, MON_DATA_MAXHP, NULL)) {
if (data && GetMonData(mon, MON_DATA_HP, NULL) != GetMonData(mon, MON_DATA_MAX_HP, NULL)) {
data = GetItemAttr(item, ITEMATTR_HP_RESTORE_PARAM, HEAP_ID_BATTLE);
switch (data) {
case HP_RESTORE_ALL:
data = GetMonData(mon, MON_DATA_MAXHP, NULL);
data = GetMonData(mon, MON_DATA_MAX_HP, NULL);
break;
case HP_RESTORE_HALF:
data = GetMonData(mon, MON_DATA_MAXHP, NULL) / 2;
data = GetMonData(mon, MON_DATA_MAX_HP, NULL) / 2;
if (data == 0) {
data = 1;
}
break;
case HP_RESTORE_QTR:
data = GetMonData(mon, MON_DATA_MAXHP, NULL) * 25 / 100;
data = GetMonData(mon, MON_DATA_MAX_HP, NULL) * 25 / 100;
if (data == 0) {
data = 1;
}
@ -617,7 +617,7 @@ BOOL BattleSystem_RecoverStatus(BattleSystem *bsys, int battlerId, int selectedM
if (BallToItemId(BattleSystem_GetMonBall(bsys, mon)) == ITEM_LUXURY_BALL) {
friendship++;
}
if (GetMonData(mon, MON_DATA_EGG_MET_LOCATION, NULL) == BattleSystem_GetLocation(bsys)) {
if (GetMonData(mon, MON_DATA_EGG_LOCATION, NULL) == BattleSystem_GetLocation(bsys)) {
friendship++;
}
data = GetMonData(mon, MON_DATA_HELD_ITEM, NULL);

View File

@ -50,13 +50,13 @@ void BattleSystem_GetBattleMon(BattleSystem *bsys, BattleContext *ctx, int battl
ctx->battleMons[battlerId].atk = GetMonData(mon, MON_DATA_ATK, NULL);
ctx->battleMons[battlerId].def = GetMonData(mon, MON_DATA_DEF, NULL);
ctx->battleMons[battlerId].speed = GetMonData(mon, MON_DATA_SPEED, NULL);
ctx->battleMons[battlerId].spAtk = GetMonData(mon, MON_DATA_SPATK, NULL);
ctx->battleMons[battlerId].spDef = GetMonData(mon, MON_DATA_SPDEF, NULL);
ctx->battleMons[battlerId].spAtk = GetMonData(mon, MON_DATA_SP_ATK, NULL);
ctx->battleMons[battlerId].spDef = GetMonData(mon, MON_DATA_SP_DEF, NULL);
for (i = 0; i < 4; i++) {
ctx->battleMons[battlerId].moves[i] = GetMonData(mon, MON_DATA_MOVE1 + i, NULL);
ctx->battleMons[battlerId].movePPCur[i] = GetMonData(mon, MON_DATA_MOVE1PP + i, NULL);
ctx->battleMons[battlerId].movePP[i] = GetMonData(mon, MON_DATA_MOVE1PPUP + i, NULL);
ctx->battleMons[battlerId].movePPCur[i] = GetMonData(mon, MON_DATA_MOVE1_PP + i, NULL);
ctx->battleMons[battlerId].movePP[i] = GetMonData(mon, MON_DATA_MOVE1_PP_UPS + i, NULL);
}
ctx->battleMons[battlerId].hpIV = GetMonData(mon, MON_DATA_HP_IV, NULL);
@ -113,11 +113,11 @@ void BattleSystem_GetBattleMon(BattleSystem *bsys, BattleContext *ctx, int battl
ctx->battleMons[battlerId].friendship = GetMonData(mon, MON_DATA_FRIENDSHIP, NULL);
ctx->battleMons[battlerId].hp = GetMonData(mon, MON_DATA_HP, NULL);
ctx->battleMons[battlerId].maxHp = GetMonData(mon, MON_DATA_MAXHP, NULL);
ctx->battleMons[battlerId].maxHp = GetMonData(mon, MON_DATA_MAX_HP, NULL);
ctx->battleMons[battlerId].exp = GetMonData(mon, MON_DATA_EXPERIENCE, NULL);
ctx->battleMons[battlerId].personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL);
ctx->battleMons[battlerId].otid = GetMonData(mon, MON_DATA_OTID, NULL);
ctx->battleMons[battlerId].otid = GetMonData(mon, MON_DATA_OT_ID, NULL);
ctx->battleMons[battlerId].otGender = GetMonData(mon, MON_DATA_OT_GENDER, NULL);
ctx->battleMons[battlerId].ball = BattleSystem_GetMonBall(bsys, mon);
@ -131,7 +131,7 @@ void BattleSystem_GetBattleMon(BattleSystem *bsys, BattleContext *ctx, int battl
PokedexData_UnloadAll(dexData);
PokedexData_Delete(dexData);
GetMonData(mon, MON_DATA_NICKNAME_FLAT, ctx->battleMons[battlerId].nickname);
GetMonData(mon, MON_DATA_NICKNAME, ctx->battleMons[battlerId].nickname);
GetMonData(mon, MON_DATA_OT_NAME, ctx->battleMons[battlerId].otName);
ctx->battleMons[battlerId].unk78 = 0;
@ -154,19 +154,19 @@ void BattleSystem_ReloadMonData(BattleSystem *bsys, BattleContext *ctx, int batt
ctx->battleMons[battlerId].atk = GetMonData(mon, MON_DATA_ATK, NULL);
ctx->battleMons[battlerId].def = GetMonData(mon, MON_DATA_DEF, NULL);
ctx->battleMons[battlerId].speed = GetMonData(mon, MON_DATA_SPEED, NULL);
ctx->battleMons[battlerId].spAtk = GetMonData(mon, MON_DATA_SPATK, NULL);
ctx->battleMons[battlerId].spDef = GetMonData(mon, MON_DATA_SPDEF, NULL);
ctx->battleMons[battlerId].spAtk = GetMonData(mon, MON_DATA_SP_ATK, NULL);
ctx->battleMons[battlerId].spDef = GetMonData(mon, MON_DATA_SP_DEF, NULL);
ctx->battleMons[battlerId].level = GetMonData(mon, MON_DATA_LEVEL, NULL);
ctx->battleMons[battlerId].friendship = GetMonData(mon, MON_DATA_FRIENDSHIP, NULL);
ctx->battleMons[battlerId].hp = GetMonData(mon, MON_DATA_HP, NULL);
ctx->battleMons[battlerId].maxHp = GetMonData(mon, MON_DATA_MAXHP, NULL);
ctx->battleMons[battlerId].maxHp = GetMonData(mon, MON_DATA_MAX_HP, NULL);
if (!(ctx->battleMons[battlerId].status2 & STATUS2_TRANSFORM)) {
for (i = 0; i < 4; i++) {
if (!(ctx->battleMons[battlerId].unk88.mimicedMoveIndex & MaskOfFlagNo(i))) {
ctx->battleMons[battlerId].moves[i] = GetMonData(mon, MON_DATA_MOVE1 + i, NULL);
ctx->battleMons[battlerId].movePPCur[i] = GetMonData(mon, MON_DATA_MOVE1PP + i, NULL);
ctx->battleMons[battlerId].movePP[i] = GetMonData(mon, MON_DATA_MOVE1PPUP + i, NULL);
ctx->battleMons[battlerId].movePPCur[i] = GetMonData(mon, MON_DATA_MOVE1_PP + i, NULL);
ctx->battleMons[battlerId].movePP[i] = GetMonData(mon, MON_DATA_MOVE1_PP_UPS + i, NULL);
}
}
ctx->battleMons[battlerId].exp = GetMonData(mon, MON_DATA_EXPERIENCE, NULL);
@ -5269,7 +5269,7 @@ BOOL ov12_022568B0(BattleSystem *bsys, Pokemon *mon) {
GetMonData(mon, MON_DATA_OT_NAME, otName);
if (trainerId == GetMonData(mon, MON_DATA_OTID, NULL) && gender == GetMonData(mon, MON_DATA_OT_GENDER, NULL) && !StringNotEqualN(name, otName, PLAYER_NAME_LENGTH)) {
if (trainerId == GetMonData(mon, MON_DATA_OT_ID, NULL) && gender == GetMonData(mon, MON_DATA_OT_GENDER, NULL) && !StringNotEqualN(name, otName, PLAYER_NAME_LENGTH)) {
return TRUE;
}
@ -5385,8 +5385,8 @@ BOOL Battler_CheckWeatherFormChange(BattleSystem *bsys, BattleContext *ctx, int
ctx->battleMons[ctx->battlerIdTemp].atk = GetMonData(mon2, MON_DATA_ATK, NULL);
ctx->battleMons[ctx->battlerIdTemp].def = GetMonData(mon2, MON_DATA_DEF, NULL);
ctx->battleMons[ctx->battlerIdTemp].speed = GetMonData(mon2, MON_DATA_SPEED, NULL);
ctx->battleMons[ctx->battlerIdTemp].spAtk = GetMonData(mon2, MON_DATA_SPATK, NULL);
ctx->battleMons[ctx->battlerIdTemp].spDef = GetMonData(mon2, MON_DATA_SPDEF, NULL);
ctx->battleMons[ctx->battlerIdTemp].spAtk = GetMonData(mon2, MON_DATA_SP_ATK, NULL);
ctx->battleMons[ctx->battlerIdTemp].spDef = GetMonData(mon2, MON_DATA_SP_DEF, NULL);
ctx->battleMons[ctx->battlerIdTemp].ability = GetMonData(mon2, MON_DATA_ABILITY, NULL);
ctx->battleMons[ctx->battlerIdTemp].form = GIRATINA_ALTERED;
ctx->battleStatus2 |= BATTLE_STATUS2_FORM_CHANGE;

View File

@ -67,7 +67,7 @@ BOOL Save_Daycare_MasudaCheck(Daycare *daycare) {
// Uses language as a proxy for country, even though it
// only accounts for European languages and Japanese.
// If true, shiny odds are increased.
return GetBoxMonData(&daycare->mons[0].mon, MON_DATA_GAME_LANGUAGE, NULL) != GetBoxMonData(&daycare->mons[1].mon, MON_DATA_GAME_LANGUAGE, NULL);
return GetBoxMonData(&daycare->mons[0].mon, MON_DATA_LANGUAGE, NULL) != GetBoxMonData(&daycare->mons[1].mon, MON_DATA_LANGUAGE, NULL);
}
void DaycareMon_Copy(DaycareMon *dest, const DaycareMon *src) {

View File

@ -1066,8 +1066,8 @@ BOOL ScrCmd_GiveTogepiEgg(ScriptContext *ctx) {
moveData = MOVE_EXTRASENSORY;
SetMonData(mon, MON_DATA_MOVE1 + i, &moveData);
pp = GetMonData(mon, MON_DATA_MOVE1MAXPP + i, 0);
SetMonData(mon, MON_DATA_MOVE1PP + i, &pp);
pp = GetMonData(mon, MON_DATA_MOVE1_MAX_PP + i, 0);
SetMonData(mon, MON_DATA_MOVE1_PP + i, &pp);
Party_AddMon(party, mon);
@ -1126,8 +1126,8 @@ BOOL ScrCmd_GiveSpikyEarPichu(ScriptContext *ctx) {
for (i = 0; i < MAX_MON_MOVES; i++) {
SetMonData(mon, MON_DATA_MOVE1 + i, &sSpikyEarPichuMoveset[i]);
maxPP = GetMonData(mon, MON_DATA_MOVE1MAXPP + i, 0);
SetMonData(mon, MON_DATA_MOVE1PP + i, &maxPP);
maxPP = GetMonData(mon, MON_DATA_MOVE1_MAX_PP + i, 0);
SetMonData(mon, MON_DATA_MOVE1_PP + i, &maxPP);
}
heldItem = ITEM_ZAP_PLATE;
@ -1415,10 +1415,10 @@ BOOL ScrCmd_CheckKyogreGroudonInParty(ScriptContext *ctx) {
for (c = 0; c < partyCount; c++) {
Pokemon *mon = Party_GetMonByIndex(playerParty, c);
u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
u8 gameVer = GetMonData(mon, MON_DATA_GAME_VERSION, NULL);
u8 gameVer = GetMonData(mon, MON_DATA_MET_GAME, NULL);
if (!GetMonData(mon, MON_DATA_IS_EGG, NULL)
&& !GetMonData(mon, MON_DATA_CHECKSUM_FAILED, NULL)
&& !GetMonData(mon, MON_DATA_EGG_MET_LOCATION, NULL)) {
&& !GetMonData(mon, MON_DATA_EGG_LOCATION, NULL)) {
switch (species) {
case SPECIES_KYOGRE:

View File

@ -210,9 +210,9 @@ void Save_CreateRoamerByID(SaveData *saveData, u8 idx) {
CreateMon(mon, species, level, 32, FALSE, 0, OT_ID_PRESET, PlayerProfile_GetTrainerID_VisibleHalf(profile));
SetRoamerData(roamerStats, ROAMER_DATA_STATUS, 0);
SetRoamerData(roamerStats, ROAMER_DATA_ACTIVE, TRUE);
SetRoamerData(roamerStats, ROAMER_DATA_IVS, GetMonData(mon, MON_DATA_IVS_WORD, NULL));
SetRoamerData(roamerStats, ROAMER_DATA_IVS, GetMonData(mon, MON_DATA_COMBINED_IVS, NULL));
SetRoamerData(roamerStats, ROAMER_DATA_PERSONALITY, GetMonData(mon, MON_DATA_PERSONALITY, NULL));
SetRoamerData(roamerStats, ROAMER_DATA_HP, GetMonData(mon, MON_DATA_MAXHP, NULL));
SetRoamerData(roamerStats, ROAMER_DATA_HP, GetMonData(mon, MON_DATA_MAX_HP, NULL));
Heap_Free(mon);
RoamerLocationSetRandom(roamerSave, idx, PlayerLocationHistoryGetBack(roamerSave));
}

View File

@ -547,7 +547,7 @@ static void Photo_InitFromArcData(Photo *photo, FieldSystem *fieldSystem, u8 ico
photo->numMons = photo->subjectSpriteId != 0 ? 1 : partySize;
Pokemon *leadMon = GetFirstAliveMonInParty_CrashIfNone(party);
GetMonData(leadMon, MON_DATA_NICKNAME_FLAT, photo->leadMonNick);
GetMonData(leadMon, MON_DATA_NICKNAME, photo->leadMonNick);
if (!photo->subjectSpriteId) {
for (i = 0; i < partySize; ++i) {
Pokemon *mon = Party_GetMonByIndex(party, i);

View File

@ -109,7 +109,7 @@ BOOL FrtCmd_187(FrontierContext *ctx) {
for (i = 0; i < partyCnt; i++) {
mon = Party_GetMonByIndex(arcadeData->playerParty, i);
data = arcadeData->savedHp[i];
SetMonData(mon, MON_DATA_MAXHP, &data);
SetMonData(mon, MON_DATA_MAX_HP, &data);
SetMonData(mon, MON_DATA_HP, &data);
data = arcadeData->savedAtk[i];
SetMonData(mon, MON_DATA_ATK, &data);
@ -118,9 +118,9 @@ BOOL FrtCmd_187(FrontierContext *ctx) {
data = arcadeData->savedSpd[i];
SetMonData(mon, MON_DATA_SPEED, &data);
data = arcadeData->savedSpAtk[i];
SetMonData(mon, MON_DATA_SPATK, &data);
SetMonData(mon, MON_DATA_SP_ATK, &data);
data = arcadeData->savedSpDef[i];
SetMonData(mon, MON_DATA_SPDEF, &data);
SetMonData(mon, MON_DATA_SP_DEF, &data);
}
BattleSetup_Delete(setup);
@ -166,12 +166,12 @@ static void GameBoardArgs_Set(GAME_BOARD_ARGS *args, ArcadeContext *data) {
for (int i = 0; i < partyCnt; i++) {
Pokemon *mon = Party_GetMonByIndex(data->playerParty, i);
data->savedHp[i] = GetMonData(mon, MON_DATA_MAXHP, NULL);
data->savedHp[i] = GetMonData(mon, MON_DATA_MAX_HP, NULL);
data->savedAtk[i] = GetMonData(mon, MON_DATA_ATK, NULL);
data->savedDef[i] = GetMonData(mon, MON_DATA_DEF, NULL);
data->savedSpd[i] = GetMonData(mon, MON_DATA_SPEED, NULL);
data->savedSpAtk[i] = GetMonData(mon, MON_DATA_SPATK, NULL);
data->savedSpDef[i] = GetMonData(mon, MON_DATA_SPDEF, NULL);
data->savedSpAtk[i] = GetMonData(mon, MON_DATA_SP_ATK, NULL);
data->savedSpDef[i] = GetMonData(mon, MON_DATA_SP_DEF, NULL);
}
}

View File

@ -95,9 +95,9 @@ static void DaycareMon_CopyFromPartySlot(Party *party, int partyIdx, DaycareMon
daycareMail = DaycareMon_GetExtras(daycareMon);
boxMon = DaycareMon_GetBoxMon(daycareMon);
playerNamePtr = PlayerProfile_GetNamePtr(Save_PlayerData_GetProfile(saveData));
GetMonData(partyMon, MON_DATA_NICKNAME_FLAT, nickname);
GetMonData(partyMon, MON_DATA_NICKNAME, nickname);
if (BoxMonIsHoldingMail(Mon_GetBoxMon(partyMon))) {
GetMonData(partyMon, MON_DATA_MAIL_STRUCT, DaycareMail_GetMailPtr(daycareMail));
GetMonData(partyMon, MON_DATA_MAIL, DaycareMail_GetMailPtr(daycareMail));
}
mood = 0;
SetMonData(partyMon, MON_DATA_MOOD, &mood);
@ -177,7 +177,7 @@ static int Save_Daycare_MoveMonToParty(Party *party, DaycareMon *daycareMon, Mes
Daycare_LearnLevelUpMoves(mon);
}
if (BoxMonIsHoldingMail(boxMon)) {
SetMonData(mon, MON_DATA_MAIL_STRUCT, DaycareMail_GetMailPtr(daycareMail));
SetMonData(mon, MON_DATA_MAIL, DaycareMail_GetMailPtr(daycareMail));
}
Party_AddMon(party, mon);
ZeroBoxMonData(boxMon);
@ -644,7 +644,7 @@ void SetEggStats(Pokemon *mon, int species, u8 metLocation, PlayerProfile *profi
SetMonData(mon, MON_DATA_MET_LEVEL, &metLevel);
if (metLocation != MAPSEC_MYSTERY_ZONE) {
SetMonData(mon, MON_DATA_EGG_MET_LOCATION, &metLocation);
SetMonData(mon, MON_DATA_EGG_LOCATION, &metLocation);
}
isEgg = TRUE;
SetMonData(mon, MON_DATA_IS_EGG, &isEgg);
@ -655,8 +655,8 @@ void SetEggStats(Pokemon *mon, int species, u8 metLocation, PlayerProfile *profi
otId = PlayerProfile_GetTrainerID(profile);
gender = PlayerProfile_GetTrainerGender(profile);
name = PlayerProfile_GetPlayerName_NewString(profile, HEAP_ID_FIELD3);
SetMonData(mon, MON_DATA_OT_NAME_2, name);
SetMonData(mon, MON_DATA_OTID, &otId);
SetMonData(mon, MON_DATA_OT_NAME_STRING, name);
SetMonData(mon, MON_DATA_OT_ID, &otId);
SetMonData(mon, MON_DATA_OT_GENDER, &gender);
String_Delete(name);
}
@ -762,7 +762,7 @@ static u8 ComputeCompatibilityBetweenBoxMons(BoxPokemon **parents) {
for (i = 0; i < 2; i++) {
species[i] = GetBoxMonData(parents[i], MON_DATA_SPECIES, NULL);
otIds[i] = GetBoxMonData(parents[i], MON_DATA_OTID, NULL);
otIds[i] = GetBoxMonData(parents[i], MON_DATA_OT_ID, NULL);
genders[i] = GetGenderBySpeciesAndPersonality(species[i], GetBoxMonData(parents[i], MON_DATA_PERSONALITY, NULL));
eggGroups[i][0] = GetMonBaseStat(species[i], BASE_EGG_GROUP_1);
eggGroups[i][1] = GetMonBaseStat(species[i], BASE_EGG_GROUP_2);
@ -1033,22 +1033,22 @@ static void sub_0206D038(Pokemon *mon, enum HeapID heapID) {
species = (u16)GetMonData(mon, MON_DATA_SPECIES, NULL);
for (i = 0; i < MAX_MON_MOVES; i++) {
moves[i] = GetMonData(mon, MON_DATA_MOVE1 + i, NULL);
pp[i] = GetMonData(mon, MON_DATA_MOVE1PP + i, NULL);
pp[i] = GetMonData(mon, MON_DATA_MOVE1_PP + i, NULL);
}
pid = GetMonData(mon, MON_DATA_PERSONALITY, NULL);
for (i = 0; i < NUM_STATS; i++) {
ivs[i] = GetMonData(mon, MON_DATA_HP_IV + i, NULL);
}
language = GetMonData(mon, MON_DATA_GAME_LANGUAGE, NULL);
version = GetMonData(mon, MON_DATA_GAME_VERSION, NULL);
language = GetMonData(mon, MON_DATA_LANGUAGE, NULL);
version = GetMonData(mon, MON_DATA_MET_GAME, NULL);
markings = GetMonData(mon, MON_DATA_MARKINGS, NULL);
pokerus = GetMonData(mon, MON_DATA_POKERUS, NULL);
fateful = GetMonData(mon, MON_DATA_FATEFUL_ENCOUNTER, NULL);
GetMonData(mon, MON_DATA_OT_NAME_2, string);
GetMonData(mon, MON_DATA_OT_NAME_STRING, string);
otGender = GetMonData(mon, MON_DATA_OT_GENDER, NULL);
otId = GetMonData(mon, MON_DATA_OTID, NULL);
otId = GetMonData(mon, MON_DATA_OT_ID, NULL);
form = GetMonData(mon, MON_DATA_FORM, NULL);
if (species == SPECIES_MANAPHY && GetMonData(mon, MON_DATA_EGG_MET_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_EXTERNAL, 1)) {
if (species == SPECIES_MANAPHY && GetMonData(mon, MON_DATA_EGG_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_EXTERNAL, 1)) {
if (CalcShininessByOtIdAndPersonality(otId, pid)) {
do {
pid = PRandom(pid);
@ -1058,30 +1058,30 @@ static void sub_0206D038(Pokemon *mon, enum HeapID heapID) {
CreateMon(tmpMon, species, 1, 32, TRUE, pid, OT_ID_PLAYER_ID, 0);
for (i = 0; i < MAX_MON_MOVES; i++) {
SetMonData(tmpMon, MON_DATA_MOVE1 + i, &moves[i]);
SetMonData(tmpMon, MON_DATA_MOVE1PP + i, &pp[i]);
SetMonData(tmpMon, MON_DATA_MOVE1_PP + i, &pp[i]);
}
for (i = 0; i < NUM_STATS; i++) {
SetMonData(tmpMon, MON_DATA_HP_IV + i, &ivs[i]);
}
SetMonData(tmpMon, MON_DATA_GAME_LANGUAGE, &language);
SetMonData(tmpMon, MON_DATA_GAME_VERSION, &version);
SetMonData(tmpMon, MON_DATA_LANGUAGE, &language);
SetMonData(tmpMon, MON_DATA_MET_GAME, &version);
SetMonData(tmpMon, MON_DATA_MARKINGS, &markings);
eggCycles = 120;
SetMonData(tmpMon, MON_DATA_FRIENDSHIP, &eggCycles);
SetMonData(tmpMon, MON_DATA_POKERUS, &pokerus);
SetMonData(tmpMon, MON_DATA_FATEFUL_ENCOUNTER, &fateful);
SetMonData(tmpMon, MON_DATA_OT_NAME_2, string);
SetMonData(tmpMon, MON_DATA_OT_NAME_STRING, string);
SetMonData(tmpMon, MON_DATA_OT_GENDER, &otGender);
SetMonData(tmpMon, MON_DATA_OTID, &otId);
SetMonData(tmpMon, MON_DATA_OT_ID, &otId);
SetMonData(tmpMon, MON_DATA_FORM, &form);
metLoc = GetMonData(mon, MON_DATA_EGG_MET_LOCATION, NULL);
metYear = GetMonData(mon, MON_DATA_EGG_MET_YEAR, NULL);
metMonth = GetMonData(mon, MON_DATA_EGG_MET_MONTH, NULL);
metDay = GetMonData(mon, MON_DATA_EGG_MET_DAY, NULL);
SetMonData(tmpMon, MON_DATA_EGG_MET_LOCATION, &metLoc);
SetMonData(tmpMon, MON_DATA_EGG_MET_YEAR, &metYear);
SetMonData(tmpMon, MON_DATA_EGG_MET_MONTH, &metMonth);
SetMonData(tmpMon, MON_DATA_EGG_MET_DAY, &metDay);
metLoc = GetMonData(mon, MON_DATA_EGG_LOCATION, NULL);
metYear = GetMonData(mon, MON_DATA_EGG_YEAR, NULL);
metMonth = GetMonData(mon, MON_DATA_EGG_MONTH, NULL);
metDay = GetMonData(mon, MON_DATA_EGG_DAY, NULL);
SetMonData(tmpMon, MON_DATA_EGG_LOCATION, &metLoc);
SetMonData(tmpMon, MON_DATA_EGG_YEAR, &metYear);
SetMonData(tmpMon, MON_DATA_EGG_MONTH, &metMonth);
SetMonData(tmpMon, MON_DATA_EGG_DAY, &metDay);
metLoc = GetMonData(mon, MON_DATA_MET_LOCATION, NULL);
metYear = GetMonData(mon, MON_DATA_MET_YEAR, NULL);
metMonth = GetMonData(mon, MON_DATA_MET_MONTH, NULL);
@ -1104,7 +1104,7 @@ void sub_0206D328(Pokemon *mon, enum HeapID heapID) {
sub_0206D038(mon, heapID);
SetMonData(mon, MON_DATA_IS_EGG, &isEgg);
GetSpeciesNameIntoArray(GetMonData(mon, MON_DATA_SPECIES, NULL), HEAP_ID_DEFAULT, nickname);
SetMonData(mon, MON_DATA_NICKNAME_FLAT, nickname);
SetMonData(mon, MON_DATA_NICKNAME, nickname);
SetMonData(mon, MON_DATA_HAS_NICKNAME, &hasNickname);
SetMonData(mon, MON_DATA_POKEBALL, &pokeball);
SetMonData(mon, MON_DATA_MET_LEVEL, &metLevel);

View File

@ -44,7 +44,7 @@ void Save_HOF_RecordParty(HallOfFame *hof, Party *party, RTCDate *date) {
team->party[j].level = GetMonData(mon, MON_DATA_LEVEL, NULL);
team->party[j].form = GetMonData(mon, MON_DATA_FORM, NULL);
team->party[j].personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL);
team->party[j].otid = GetMonData(mon, MON_DATA_OTID, NULL);
team->party[j].otid = GetMonData(mon, MON_DATA_OT_ID, NULL);
team->party[j].moves[0] = GetMonData(mon, MON_DATA_MOVE1, NULL);
team->party[j].moves[1] = GetMonData(mon, MON_DATA_MOVE2, NULL);
team->party[j].moves[2] = GetMonData(mon, MON_DATA_MOVE3, NULL);
@ -52,7 +52,7 @@ void Save_HOF_RecordParty(HallOfFame *hof, Party *party, RTCDate *date) {
if (string != NULL) {
GetMonData(mon, MON_DATA_NICKNAME_STRING, string);
CopyStringToU16Array(string, team->party[j].nickname, POKEMON_NAME_LENGTH + 1);
GetMonData(mon, MON_DATA_OT_NAME_2, string);
GetMonData(mon, MON_DATA_OT_NAME_STRING, string);
CopyStringToU16Array(string, team->party[j].otname, PLAYER_NAME_LENGTH + 1);
} else {
team->party[j].nickname[0] = EOS;

View File

@ -81,7 +81,7 @@ static BOOL Task_HatchEggInParty(TaskManager *taskManager) {
}
case HATCHEGGTASKSTATE_SET_MON_NAME:
if (!data->namingScreenArgs->noInput) {
SetMonData(data->unkC.mon, MON_DATA_NICKNAME_STRING_COMPARE, data->namingScreenArgs->nameInputString);
SetMonData(data->unkC.mon, MON_DATA_NICKNAME_STRING_AND_FLAG, data->namingScreenArgs->nameInputString);
}
NamingScreen_DeleteArgs(data->namingScreenArgs);
data->state++;

View File

@ -209,7 +209,7 @@ UseMailArgs *sub_02090F00(SaveData *saveData, Pokemon *mon, enum HeapID heapID)
Mail *mail = Mail_New(heapID);
ptr->mail = mail;
GetMonData(mon, MON_DATA_MAIL_STRUCT, ptr->mail);
GetMonData(mon, MON_DATA_MAIL, ptr->mail);
return ptr;
}
@ -236,7 +236,7 @@ BOOL sub_02090F70(UseMailArgs *args, Pokemon *mon) {
if (sub_02090F6C(args) == 0) {
return FALSE;
}
SetMonData(mon, MON_DATA_MAIL_STRUCT, args->mail);
SetMonData(mon, MON_DATA_MAIL, args->mail);
return TRUE;
}
@ -254,10 +254,10 @@ int Mailbox_MoveMessageFromMon(Mailbox *mailbox, Pokemon *mon, enum HeapID heapI
if (idx != -1) {
Mail *mail = Mail_New(heapID);
GetMonData(mon, MON_DATA_MAIL_STRUCT, mail);
GetMonData(mon, MON_DATA_MAIL, mail);
Mailbox_CopyMailToSlotI(&mailbox->msgs[0], 0, idx, mail);
Mail_Init(mail);
SetMonData(mon, MON_DATA_MAIL_STRUCT, mail);
SetMonData(mon, MON_DATA_MAIL, mail);
SetMonData(mon, MON_DATA_HELD_ITEM, &item);
Heap_Free(mail);
return idx;
@ -274,7 +274,7 @@ int sub_02091004(Mail *msgs, int i, Pokemon *mon, enum HeapID heapID) {
}
item = MailToItemId(Mail_GetType(mail));
SetMonData(mon, MON_DATA_MAIL_STRUCT, mail);
SetMonData(mon, MON_DATA_MAIL, mail);
SetMonData(mon, MON_DATA_HELD_ITEM, &item);
Mailbox_DeleteSlotI(msgs, 0, i);
Heap_Free(mail);

View File

@ -147,7 +147,7 @@ void BufferBoxMonNickname(MessageFormat *msgFmt, u32 fieldno, BoxPokemon *boxMon
}
void BufferBoxMonOTName(MessageFormat *msgFmt, u32 fieldno, BoxPokemon *boxMon) {
GetBoxMonData(boxMon, MON_DATA_OT_NAME_2, msgFmt->buffer);
GetBoxMonData(boxMon, MON_DATA_OT_NAME_STRING, msgFmt->buffer);
SetStringAsPlaceholder(msgFmt, fieldno, msgFmt->buffer, NULL);
}

View File

@ -73,7 +73,7 @@ void NPCTrade_MakeAndGiveLoanMon(FieldSystem *fieldSystem, NpcTradeNum tradeno,
name = _GetNpcTradeName(HEAP_ID_FIELD2, NPC_TRADE_OT_NUM(tradeno));
mailno = ItemToMailId(trade_dat->heldItem);
mail = CreateKenyaMail(mon, mailno, trade_dat->gender, name, trade_dat->otId);
SetMonData(kenya, MON_DATA_MAIL_STRUCT, mail);
SetMonData(kenya, MON_DATA_MAIL, mail);
String_Delete(name);
Heap_Free(mail);
}
@ -113,7 +113,7 @@ int NPCTrade_CanGiveUpLoanMon(FieldSystem *fieldSystem, NpcTradeNum tradeno, u8
return 1;
}
capsule = GetMonData(mon, MON_DATA_CAPSULE, NULL);
capsule = GetMonData(mon, MON_DATA_BALL_CAPSULE_ID, NULL);
if (capsule != 0) {
return 3;
}
@ -220,11 +220,11 @@ static void _CreateTradeMon(Pokemon *mon, NPCTrade *trade_dat, u32 level, NpcTra
SetMonData(mon, MON_DATA_HELD_ITEM, &trade_dat->heldItem);
name = _GetNpcTradeName((enum HeapID)heapId_2, NPC_TRADE_OT_NUM(tradeno));
SetMonData(mon, MON_DATA_OT_NAME_2, name);
SetMonData(mon, MON_DATA_OT_NAME_STRING, name);
String_Delete(name);
SetMonData(mon, MON_DATA_OT_GENDER, &trade_dat->gender);
SetMonData(mon, MON_DATA_GAME_LANGUAGE, &trade_dat->language);
SetMonData(mon, MON_DATA_LANGUAGE, &trade_dat->language);
mapsec = MapHeader_GetMapSec(mapno);
MonSetTrainerMemo(mon, NULL, met_level_strat, mapsec, heapID);

View File

@ -315,12 +315,12 @@ static void TrainerHouse_CopyToPokemon(TrainerHouseMon *trainerHouseMon, Pokemon
u16 move = trainerHouseMon->moves[i];
SetMonData(mon, MON_DATA_MOVE1 + i, &move);
tempByte = trainerHouseMon->ppUp >> (i * 2) & 3;
SetMonData(mon, MON_DATA_MOVE1PPUP + i, &tempByte);
u8 pp = GetMonData(mon, MON_DATA_MOVE1MAXPP + i, NULL);
SetMonData(mon, MON_DATA_MOVE1PP + i, &pp);
SetMonData(mon, MON_DATA_MOVE1_PP_UPS + i, &tempByte);
u8 pp = GetMonData(mon, MON_DATA_MOVE1_MAX_PP + i, NULL);
SetMonData(mon, MON_DATA_MOVE1_PP + i, &pp);
}
u32 otid = trainerHouseMon->otid;
SetMonData(mon, MON_DATA_OTID, &otid);
SetMonData(mon, MON_DATA_OT_ID, &otid);
for (i = 0; i < NUM_STATS; i++) {
tempByte = *(&trainerHouseMon->hpEv + i);
SetMonData(mon, MON_DATA_HP_EV + i, &tempByte);
@ -330,8 +330,8 @@ static void TrainerHouse_CopyToPokemon(TrainerHouseMon *trainerHouseMon, Pokemon
u16 nickname[POKEMON_NAME_LENGTH + 1];
StringFillEOS(nickname, NELEMS(nickname));
CopyU16StringArrayN(nickname, trainerHouseMon->nickname, POKEMON_NAME_LENGTH);
SetMonData(mon, MON_DATA_NICKNAME_FLAT, nickname);
SetMonData(mon, MON_DATA_GAME_LANGUAGE, &(trainerHouseMon->language));
SetMonData(mon, MON_DATA_NICKNAME, nickname);
SetMonData(mon, MON_DATA_LANGUAGE, &(trainerHouseMon->language));
CalcMonLevelAndStats(mon);
}

View File

@ -340,6 +340,6 @@ u16 BugContest_JudgePlayerMon(BugContest *bugContest, Pokemon *mon) {
stat_total += GetMonData(mon, MON_DATA_HP_IV + i, NULL);
}
score += stat_total * 100 / (31 * NUM_STATS);
score += GetMonData(mon, MON_DATA_HP, NULL) * 100 / GetMonData(mon, MON_DATA_MAXHP, NULL);
score += GetMonData(mon, MON_DATA_HP, NULL) * 100 / GetMonData(mon, MON_DATA_MAX_HP, NULL);
return score;
}

View File

@ -900,11 +900,11 @@ void PartyMenu_LevelUpPrintStatsChange(PartyMenu *partyMenu) {
Pokemon *mon;
mon = Party_GetMonByIndex(partyMenu->args->party, partyMenu->partyMonIndex);
stats[0] = GetMonData(mon, MON_DATA_MAXHP, NULL);
stats[0] = GetMonData(mon, MON_DATA_MAX_HP, NULL);
stats[1] = GetMonData(mon, MON_DATA_ATK, NULL);
stats[2] = GetMonData(mon, MON_DATA_DEF, NULL);
stats[3] = GetMonData(mon, MON_DATA_SPATK, NULL);
stats[4] = GetMonData(mon, MON_DATA_SPDEF, NULL);
stats[3] = GetMonData(mon, MON_DATA_SP_ATK, NULL);
stats[4] = GetMonData(mon, MON_DATA_SP_DEF, NULL);
stats[5] = GetMonData(mon, MON_DATA_SPEED, NULL);
AddWindowParameterized(partyMenu->bgConfig, &partyMenu->levelUpStatsWindow[0], GF_BG_LYR_MAIN_0, 1, 1, 14, 12, 0, 0x260);
DrawFrameAndWindow1(&partyMenu->levelUpStatsWindow[0], TRUE, 1, 14);

View File

@ -1036,10 +1036,10 @@ BOOL sub_02079E38(PartyMenu *partyMenu, u8 partySlot) {
PartyMenu_BufferMonNickname(partyMenu, mon, partySlot);
partyMenu->monsDrawState[partySlot].species = species;
partyMenu->monsDrawState[partySlot].hp = (u16)GetMonData(mon, MON_DATA_HP, NULL);
partyMenu->monsDrawState[partySlot].maxHp = (u16)GetMonData(mon, MON_DATA_MAXHP, NULL);
partyMenu->monsDrawState[partySlot].maxHp = (u16)GetMonData(mon, MON_DATA_MAX_HP, NULL);
partyMenu->monsDrawState[partySlot].level = (u16)GetMonData(mon, MON_DATA_LEVEL, NULL);
partyMenu->monsDrawState[partySlot].heldItem = (u16)GetMonData(mon, MON_DATA_HELD_ITEM, NULL);
partyMenu->monsDrawState[partySlot].capsule = (u16)GetMonData(mon, MON_DATA_CAPSULE, NULL);
partyMenu->monsDrawState[partySlot].capsule = (u16)GetMonData(mon, MON_DATA_BALL_CAPSULE_ID, NULL);
partyMenu->monsDrawState[partySlot].isEgg = (u8)GetMonData(mon, MON_DATA_IS_EGG, NULL);
partyMenu->monsDrawState[partySlot].form = (u8)GetMonData(mon, MON_DATA_FORM, NULL);
if (GetMonData(mon, MON_DATA_NO_PRINT_GENDER, NULL) == TRUE) {
@ -1081,34 +1081,34 @@ static u32 Pokemon_CountRibbonsByCategory(Pokemon *mon, u8 contestStat) {
u32 result;
switch (contestStat) {
case COOL:
result = GetMonData(mon, MON_DATA_COOL_RIBBON, NULL);
result += GetMonData(mon, MON_DATA_COOL_RIBBON_GREAT, NULL);
result += GetMonData(mon, MON_DATA_COOL_RIBBON_ULTRA, NULL);
result += GetMonData(mon, MON_DATA_COOL_RIBBON_MASTER, NULL);
result = GetMonData(mon, MON_DATA_SUPER_COOL_RIBBON, NULL);
result += GetMonData(mon, MON_DATA_SUPER_COOL_RIBBON_GREAT, NULL);
result += GetMonData(mon, MON_DATA_SUPER_COOL_RIBBON_ULTRA, NULL);
result += GetMonData(mon, MON_DATA_SUPER_COOL_RIBBON_MASTER, NULL);
break;
case BEAUTY:
result = GetMonData(mon, MON_DATA_BEAUTY_RIBBON, NULL);
result += GetMonData(mon, MON_DATA_BEAUTY_RIBBON_GREAT, NULL);
result += GetMonData(mon, MON_DATA_BEAUTY_RIBBON_ULTRA, NULL);
result += GetMonData(mon, MON_DATA_BEAUTY_RIBBON_MASTER, NULL);
result = GetMonData(mon, MON_DATA_SUPER_BEAUTY_RIBBON, NULL);
result += GetMonData(mon, MON_DATA_SUPER_BEAUTY_RIBBON_GREAT, NULL);
result += GetMonData(mon, MON_DATA_SUPER_BEAUTY_RIBBON_ULTRA, NULL);
result += GetMonData(mon, MON_DATA_SUPER_BEAUTY_RIBBON_MASTER, NULL);
break;
case CUTE:
result = GetMonData(mon, MON_DATA_CUTE_RIBBON, NULL);
result += GetMonData(mon, MON_DATA_CUTE_RIBBON_GREAT, NULL);
result += GetMonData(mon, MON_DATA_CUTE_RIBBON_ULTRA, NULL);
result += GetMonData(mon, MON_DATA_CUTE_RIBBON_MASTER, NULL);
result = GetMonData(mon, MON_DATA_SUPER_CUTE_RIBBON, NULL);
result += GetMonData(mon, MON_DATA_SUPER_CUTE_RIBBON_GREAT, NULL);
result += GetMonData(mon, MON_DATA_SUPER_CUTE_RIBBON_ULTRA, NULL);
result += GetMonData(mon, MON_DATA_SUPER_CUTE_RIBBON_MASTER, NULL);
break;
case SMART:
result = GetMonData(mon, MON_DATA_SMART_RIBBON, NULL);
result += GetMonData(mon, MON_DATA_SMART_RIBBON_GREAT, NULL);
result += GetMonData(mon, MON_DATA_SMART_RIBBON_ULTRA, NULL);
result += GetMonData(mon, MON_DATA_SMART_RIBBON_MASTER, NULL);
result = GetMonData(mon, MON_DATA_SUPER_SMART_RIBBON, NULL);
result += GetMonData(mon, MON_DATA_SUPER_SMART_RIBBON_GREAT, NULL);
result += GetMonData(mon, MON_DATA_SUPER_SMART_RIBBON_ULTRA, NULL);
result += GetMonData(mon, MON_DATA_SUPER_SMART_RIBBON_MASTER, NULL);
break;
case TOUGH:
result = GetMonData(mon, MON_DATA_TOUGH_RIBBON, NULL);
result += GetMonData(mon, MON_DATA_TOUGH_RIBBON_GREAT, NULL);
result += GetMonData(mon, MON_DATA_TOUGH_RIBBON_ULTRA, NULL);
result += GetMonData(mon, MON_DATA_TOUGH_RIBBON_MASTER, NULL);
result = GetMonData(mon, MON_DATA_SUPER_TOUGH_RIBBON, NULL);
result += GetMonData(mon, MON_DATA_SUPER_TOUGH_RIBBON_GREAT, NULL);
result += GetMonData(mon, MON_DATA_SUPER_TOUGH_RIBBON_ULTRA, NULL);
result += GetMonData(mon, MON_DATA_SUPER_TOUGH_RIBBON_MASTER, NULL);
break;
}
return result;

View File

@ -573,16 +573,16 @@ int PartyMenu_Subtask_SacredAsh(PartyMenu *partyMenu) {
static int PartyMenu_ItemUseFunc_LevelUp(PartyMenu *partyMenu) {
Pokemon *mon = Party_GetMonByIndex(partyMenu->args->party, partyMenu->partyMonIndex);
partyMenu->levelUpStatsTmp[0] = GetMonData(mon, MON_DATA_MAXHP, NULL);
partyMenu->levelUpStatsTmp[0] = GetMonData(mon, MON_DATA_MAX_HP, NULL);
partyMenu->levelUpStatsTmp[1] = GetMonData(mon, MON_DATA_ATK, NULL);
partyMenu->levelUpStatsTmp[2] = GetMonData(mon, MON_DATA_DEF, NULL);
partyMenu->levelUpStatsTmp[3] = GetMonData(mon, MON_DATA_SPATK, NULL);
partyMenu->levelUpStatsTmp[4] = GetMonData(mon, MON_DATA_SPDEF, NULL);
partyMenu->levelUpStatsTmp[3] = GetMonData(mon, MON_DATA_SP_ATK, NULL);
partyMenu->levelUpStatsTmp[4] = GetMonData(mon, MON_DATA_SP_DEF, NULL);
partyMenu->levelUpStatsTmp[5] = GetMonData(mon, MON_DATA_SPEED, NULL);
UseItemOnMonInParty(partyMenu->args->party, partyMenu->args->itemId, partyMenu->partyMonIndex, 0, PartyMenu_GetCurrentMapSec(partyMenu), HEAP_ID_PARTY_MENU);
partyMenu->monsDrawState[partyMenu->partyMonIndex].level = GetMonData(mon, MON_DATA_LEVEL, NULL);
partyMenu->monsDrawState[partyMenu->partyMonIndex].hp = GetMonData(mon, MON_DATA_HP, NULL);
partyMenu->monsDrawState[partyMenu->partyMonIndex].maxHp = GetMonData(mon, MON_DATA_MAXHP, NULL);
partyMenu->monsDrawState[partyMenu->partyMonIndex].maxHp = GetMonData(mon, MON_DATA_MAX_HP, NULL);
String *string = NewString_ReadMsgData(partyMenu->msgData, msg_0300_00177);
BufferBoxMonNickname(partyMenu->msgFormat, 0, Mon_GetBoxMon(mon));
BufferIntegerAsString(partyMenu->msgFormat, 1, partyMenu->monsDrawState[partyMenu->partyMonIndex].level, 3, PRINTING_MODE_LEFT_ALIGN, TRUE);
@ -897,9 +897,9 @@ void PartyMenu_LearnMoveToSlot(PartyMenu *partyMenu, Pokemon *mon, int moveIdx)
int data = partyMenu->args->moveId;
SetMonData(mon, MON_DATA_MOVE1 + moveIdx, &data);
data = 0;
SetMonData(mon, MON_DATA_MOVE1PPUP + moveIdx, &data);
SetMonData(mon, MON_DATA_MOVE1_PP_UPS + moveIdx, &data);
data = GetMoveMaxPP(partyMenu->args->moveId, 0);
SetMonData(mon, MON_DATA_MOVE1PP + moveIdx, &data);
SetMonData(mon, MON_DATA_MOVE1_PP + moveIdx, &data);
if (partyMenu->args->itemId != ITEM_NONE) {
if (!MoveIsHM(partyMenu->args->moveId)) {
Bag_TakeItem(partyMenu->args->bag, partyMenu->args->itemId, 1, HEAP_ID_PARTY_MENU);

View File

@ -662,7 +662,7 @@ static void PartyMonContextMenuAction_Set(PartyMenu *partyMenu, int *pState) {
int PartyMenu_HandleSetMonCapsule(PartyMenu *partyMenu) {
Pokemon *mon = Party_GetMonByIndex(partyMenu->args->party, partyMenu->partyMonIndex);
if (GetMonData(mon, MON_DATA_CAPSULE, NULL) == 0) {
if (GetMonData(mon, MON_DATA_BALL_CAPSULE_ID, NULL) == 0) {
ReadMsgDataIntoString(partyMenu->msgData, msg_0300_00118, partyMenu->formattedStrBuf);
Sprite_SetDrawFlag(partyMenu->sprites[PARTY_MENU_SPRITE_ID_MON1_CAPSULE + partyMenu->partyMonIndex], TRUE);
} else {

View File

@ -804,7 +804,7 @@ void Pokedex_SetMonCaughtFlag(Pokedex *pokedex, Pokemon *mon) {
u32 gender_ct;
species = GetMonData(mon, MON_DATA_SPECIES, NULL);
language = GetMonData(mon, MON_DATA_GAME_LANGUAGE, NULL);
language = GetMonData(mon, MON_DATA_LANGUAGE, NULL);
personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL);
gender = GetMonGender(mon);

File diff suppressed because it is too large Load Diff

View File

@ -2032,7 +2032,7 @@ static void RegisterHallOfFame_GetPartyDetails(RegisterHallOfFameData *data) {
static RegisterHallOfFame_MetLocationType RegisterHallOfFame_GetMetLocationType(RegisterHallOfFameData *data, Pokemon *pokemon, PlayerProfile *profile) {
BOOL encry = AcquireMonLock(pokemon);
RegisterHallOfFame_MetLocationType ret;
int version = GetMonData(pokemon, MON_DATA_GAME_VERSION, NULL);
int version = GetMonData(pokemon, MON_DATA_MET_GAME, NULL);
if (version == VERSION_SAPPHIRE || version == VERSION_RUBY || version == VERSION_EMERALD) {
ret = REGHOF_METLOC_HOENN;
} else if (version == VERSION_FIRERED || version == VERSION_LEAFGREEN) {
@ -2047,16 +2047,16 @@ static RegisterHallOfFame_MetLocationType RegisterHallOfFame_GetMetLocationType(
ret = REGHOF_METLOC_SHUCKIE;
} else if (MonIsInGameTradePoke(pokemon, NPC_TRADE_KENYA_SPEAROW) == TRUE) {
ret = REGHOF_METLOC_KENYA;
} else if (PlayerProfile_GetTrainerID(profile) != GetMonData(pokemon, MON_DATA_OTID, NULL)) {
} else if (PlayerProfile_GetTrainerID(profile) != GetMonData(pokemon, MON_DATA_OT_ID, NULL)) {
ret = REGHOF_METLOC_TRADED;
} else {
PlayerName_FlatToString(profile, data->strbuf1);
GetMonData(pokemon, MON_DATA_OT_NAME_2, data->strbuf2);
GetMonData(pokemon, MON_DATA_OT_NAME_STRING, data->strbuf2);
if (String_Compare(data->strbuf1, data->strbuf2)) {
ret = REGHOF_METLOC_TRADED;
} else if (GetMonData(pokemon, MON_DATA_MET_LOCATION, NULL) >= METLOC_DAY_CARE_COUPLE) {
ret = REGHOF_METLOC_FATEFUL;
} else if (GetMonData(pokemon, MON_DATA_EGG_MET_MONTH, NULL) == 0) {
} else if (GetMonData(pokemon, MON_DATA_EGG_MONTH, NULL) == 0) {
ret = REGHOF_METLOC_CAUGHT;
} else {
ret = REGHOF_METLOC_HATCHED;

View File

@ -27,59 +27,59 @@ struct RibbonData {
};
static const struct RibbonData sRibbonInfo[] = {
{ MON_DATA_HOENN_CHAMPION_RIBBON, 72, 0, msg_0424_00000, RIBBON_DESC(FALSE, msg_0424_00080) },
{ MON_DATA_HOENN_COOL_RIBBON, 73, 0, msg_0424_00001, RIBBON_DESC(FALSE, msg_0424_00081) },
{ MON_DATA_HOENN_COOL_RIBBON_SUPER, 74, 0, msg_0424_00002, RIBBON_DESC(FALSE, msg_0424_00082) },
{ MON_DATA_HOENN_COOL_RIBBON_HYPER, 75, 0, msg_0424_00003, RIBBON_DESC(FALSE, msg_0424_00083) },
{ MON_DATA_HOENN_COOL_RIBBON_MASTER, 76, 0, msg_0424_00004, RIBBON_DESC(FALSE, msg_0424_00084) },
{ MON_DATA_HOENN_BEAUTY_RIBBON, 73, 1, msg_0424_00005, RIBBON_DESC(FALSE, msg_0424_00085) },
{ MON_DATA_HOENN_BEAUTY_RIBBON_SUPER, 74, 1, msg_0424_00006, RIBBON_DESC(FALSE, msg_0424_00086) },
{ MON_DATA_HOENN_BEAUTY_RIBBON_HYPER, 75, 1, msg_0424_00007, RIBBON_DESC(FALSE, msg_0424_00087) },
{ MON_DATA_HOENN_BEAUTY_RIBBON_MASTER, 76, 1, msg_0424_00008, RIBBON_DESC(FALSE, msg_0424_00088) },
{ MON_DATA_HOENN_CUTE_RIBBON, 73, 2, msg_0424_00009, RIBBON_DESC(FALSE, msg_0424_00089) },
{ MON_DATA_HOENN_CUTE_RIBBON_SUPER, 74, 2, msg_0424_00010, RIBBON_DESC(FALSE, msg_0424_00090) },
{ MON_DATA_HOENN_CUTE_RIBBON_HYPER, 75, 2, msg_0424_00011, RIBBON_DESC(FALSE, msg_0424_00091) },
{ MON_DATA_HOENN_CUTE_RIBBON_MASTER, 76, 2, msg_0424_00012, RIBBON_DESC(FALSE, msg_0424_00092) },
{ MON_DATA_HOENN_SMART_RIBBON, 73, 3, msg_0424_00013, RIBBON_DESC(FALSE, msg_0424_00093) },
{ MON_DATA_HOENN_SMART_RIBBON_SUPER, 74, 3, msg_0424_00014, RIBBON_DESC(FALSE, msg_0424_00094) },
{ MON_DATA_HOENN_SMART_RIBBON_HYPER, 75, 3, msg_0424_00015, RIBBON_DESC(FALSE, msg_0424_00095) },
{ MON_DATA_HOENN_SMART_RIBBON_MASTER, 76, 3, msg_0424_00016, RIBBON_DESC(FALSE, msg_0424_00096) },
{ MON_DATA_HOENN_TOUGH_RIBBON, 73, 4, msg_0424_00017, RIBBON_DESC(FALSE, msg_0424_00097) },
{ MON_DATA_HOENN_TOUGH_RIBBON_SUPER, 74, 4, msg_0424_00018, RIBBON_DESC(FALSE, msg_0424_00098) },
{ MON_DATA_HOENN_TOUGH_RIBBON_HYPER, 75, 4, msg_0424_00019, RIBBON_DESC(FALSE, msg_0424_00099) },
{ MON_DATA_HOENN_TOUGH_RIBBON_MASTER, 76, 4, msg_0424_00020, RIBBON_DESC(FALSE, msg_0424_00100) },
{ MON_DATA_HOENN_WINNING_RIBBON, 78, 0, msg_0424_00021, RIBBON_DESC(FALSE, msg_0424_00101) },
{ MON_DATA_HOENN_VICTORY_RIBBON, 77, 0, msg_0424_00022, RIBBON_DESC(FALSE, msg_0424_00102) },
{ MON_DATA_HOENN_ARTIST_RIBBON, 79, 1, msg_0424_00023, RIBBON_DESC(FALSE, msg_0424_00103) },
{ MON_DATA_HOENN_EFFORT_RIBBON, 80, 2, msg_0424_00024, RIBBON_DESC(FALSE, msg_0424_00104) },
{ MON_DATA_HOENN_MARINE_RIBBON, 81, 1, msg_0424_00025, RIBBON_DESC(TRUE, 0) },
{ MON_DATA_HOENN_LAND_RIBBON, 81, 3, msg_0424_00026, RIBBON_DESC(TRUE, 1) },
{ MON_DATA_HOENN_SKY_RIBBON, 81, 4, msg_0424_00027, RIBBON_DESC(TRUE, 2) },
{ MON_DATA_HOENN_COUNTRY_RIBBON, 82, 3, msg_0424_00028, RIBBON_DESC(FALSE, msg_0424_00178) },
{ MON_DATA_HOENN_NATIONAL_RIBBON, 82, 4, msg_0424_00029, RIBBON_DESC(FALSE, msg_0424_00190) },
{ MON_DATA_HOENN_EARTH_RIBBON, 83, 0, msg_0424_00030, RIBBON_DESC(FALSE, msg_0424_00191) },
{ MON_DATA_HOENN_WORLD_RIBBON, 83, 1, msg_0424_00031, RIBBON_DESC(FALSE, msg_0424_00178) },
{ MON_DATA_CHAMPION_RIBBON, 72, 0, msg_0424_00000, RIBBON_DESC(FALSE, msg_0424_00080) },
{ MON_DATA_COOL_RIBBON, 73, 0, msg_0424_00001, RIBBON_DESC(FALSE, msg_0424_00081) },
{ MON_DATA_COOL_RIBBON_SUPER, 74, 0, msg_0424_00002, RIBBON_DESC(FALSE, msg_0424_00082) },
{ MON_DATA_COOL_RIBBON_HYPER, 75, 0, msg_0424_00003, RIBBON_DESC(FALSE, msg_0424_00083) },
{ MON_DATA_COOL_RIBBON_MASTER, 76, 0, msg_0424_00004, RIBBON_DESC(FALSE, msg_0424_00084) },
{ MON_DATA_BEAUTY_RIBBON, 73, 1, msg_0424_00005, RIBBON_DESC(FALSE, msg_0424_00085) },
{ MON_DATA_BEAUTY_RIBBON_SUPER, 74, 1, msg_0424_00006, RIBBON_DESC(FALSE, msg_0424_00086) },
{ MON_DATA_BEAUTY_RIBBON_HYPER, 75, 1, msg_0424_00007, RIBBON_DESC(FALSE, msg_0424_00087) },
{ MON_DATA_BEAUTY_RIBBON_MASTER, 76, 1, msg_0424_00008, RIBBON_DESC(FALSE, msg_0424_00088) },
{ MON_DATA_CUTE_RIBBON, 73, 2, msg_0424_00009, RIBBON_DESC(FALSE, msg_0424_00089) },
{ MON_DATA_CUTE_RIBBON_SUPER, 74, 2, msg_0424_00010, RIBBON_DESC(FALSE, msg_0424_00090) },
{ MON_DATA_CUTE_RIBBON_HYPER, 75, 2, msg_0424_00011, RIBBON_DESC(FALSE, msg_0424_00091) },
{ MON_DATA_CUTE_RIBBON_MASTER, 76, 2, msg_0424_00012, RIBBON_DESC(FALSE, msg_0424_00092) },
{ MON_DATA_SMART_RIBBON, 73, 3, msg_0424_00013, RIBBON_DESC(FALSE, msg_0424_00093) },
{ MON_DATA_SMART_RIBBON_SUPER, 74, 3, msg_0424_00014, RIBBON_DESC(FALSE, msg_0424_00094) },
{ MON_DATA_SMART_RIBBON_HYPER, 75, 3, msg_0424_00015, RIBBON_DESC(FALSE, msg_0424_00095) },
{ MON_DATA_SMART_RIBBON_MASTER, 76, 3, msg_0424_00016, RIBBON_DESC(FALSE, msg_0424_00096) },
{ MON_DATA_TOUGH_RIBBON, 73, 4, msg_0424_00017, RIBBON_DESC(FALSE, msg_0424_00097) },
{ MON_DATA_TOUGH_RIBBON_SUPER, 74, 4, msg_0424_00018, RIBBON_DESC(FALSE, msg_0424_00098) },
{ MON_DATA_TOUGH_RIBBON_HYPER, 75, 4, msg_0424_00019, RIBBON_DESC(FALSE, msg_0424_00099) },
{ MON_DATA_TOUGH_RIBBON_MASTER, 76, 4, msg_0424_00020, RIBBON_DESC(FALSE, msg_0424_00100) },
{ MON_DATA_WINNING_RIBBON, 78, 0, msg_0424_00021, RIBBON_DESC(FALSE, msg_0424_00101) },
{ MON_DATA_VICTORY_RIBBON, 77, 0, msg_0424_00022, RIBBON_DESC(FALSE, msg_0424_00102) },
{ MON_DATA_ARTIST_RIBBON, 79, 1, msg_0424_00023, RIBBON_DESC(FALSE, msg_0424_00103) },
{ MON_DATA_EFFORT_RIBBON, 80, 2, msg_0424_00024, RIBBON_DESC(FALSE, msg_0424_00104) },
{ MON_DATA_MARINE_RIBBON, 81, 1, msg_0424_00025, RIBBON_DESC(TRUE, 0) },
{ MON_DATA_LAND_RIBBON, 81, 3, msg_0424_00026, RIBBON_DESC(TRUE, 1) },
{ MON_DATA_SKY_RIBBON, 81, 4, msg_0424_00027, RIBBON_DESC(TRUE, 2) },
{ MON_DATA_COUNTRY_RIBBON, 82, 3, msg_0424_00028, RIBBON_DESC(FALSE, msg_0424_00178) },
{ MON_DATA_NATIONAL_RIBBON, 82, 4, msg_0424_00029, RIBBON_DESC(FALSE, msg_0424_00190) },
{ MON_DATA_EARTH_RIBBON, 83, 0, msg_0424_00030, RIBBON_DESC(FALSE, msg_0424_00191) },
{ MON_DATA_WORLD_RIBBON, 83, 1, msg_0424_00031, RIBBON_DESC(FALSE, msg_0424_00178) },
{ MON_DATA_SINNOH_CHAMP_RIBBON, 88, 0, msg_0424_00032, RIBBON_DESC(FALSE, msg_0424_00105) },
{ MON_DATA_COOL_RIBBON, 89, 0, msg_0424_00033, RIBBON_DESC(FALSE, msg_0424_00106) },
{ MON_DATA_COOL_RIBBON_GREAT, 90, 0, msg_0424_00034, RIBBON_DESC(FALSE, msg_0424_00107) },
{ MON_DATA_COOL_RIBBON_ULTRA, 91, 0, msg_0424_00035, RIBBON_DESC(FALSE, msg_0424_00108) },
{ MON_DATA_COOL_RIBBON_MASTER, 92, 0, msg_0424_00036, RIBBON_DESC(FALSE, msg_0424_00109) },
{ MON_DATA_BEAUTY_RIBBON, 89, 1, msg_0424_00037, RIBBON_DESC(FALSE, msg_0424_00110) },
{ MON_DATA_BEAUTY_RIBBON_GREAT, 90, 1, msg_0424_00038, RIBBON_DESC(FALSE, msg_0424_00111) },
{ MON_DATA_BEAUTY_RIBBON_ULTRA, 91, 1, msg_0424_00039, RIBBON_DESC(FALSE, msg_0424_00112) },
{ MON_DATA_BEAUTY_RIBBON_MASTER, 92, 1, msg_0424_00040, RIBBON_DESC(FALSE, msg_0424_00113) },
{ MON_DATA_CUTE_RIBBON, 89, 2, msg_0424_00041, RIBBON_DESC(FALSE, msg_0424_00114) },
{ MON_DATA_CUTE_RIBBON_GREAT, 90, 2, msg_0424_00042, RIBBON_DESC(FALSE, msg_0424_00115) },
{ MON_DATA_CUTE_RIBBON_ULTRA, 91, 2, msg_0424_00043, RIBBON_DESC(FALSE, msg_0424_00116) },
{ MON_DATA_CUTE_RIBBON_MASTER, 92, 2, msg_0424_00044, RIBBON_DESC(FALSE, msg_0424_00117) },
{ MON_DATA_SMART_RIBBON, 89, 3, msg_0424_00045, RIBBON_DESC(FALSE, msg_0424_00118) },
{ MON_DATA_SMART_RIBBON_GREAT, 90, 3, msg_0424_00046, RIBBON_DESC(FALSE, msg_0424_00119) },
{ MON_DATA_SMART_RIBBON_ULTRA, 91, 3, msg_0424_00047, RIBBON_DESC(FALSE, msg_0424_00120) },
{ MON_DATA_SMART_RIBBON_MASTER, 92, 3, msg_0424_00048, RIBBON_DESC(FALSE, msg_0424_00121) },
{ MON_DATA_TOUGH_RIBBON, 89, 4, msg_0424_00049, RIBBON_DESC(FALSE, msg_0424_00122) },
{ MON_DATA_TOUGH_RIBBON_GREAT, 90, 4, msg_0424_00050, RIBBON_DESC(FALSE, msg_0424_00123) },
{ MON_DATA_TOUGH_RIBBON_ULTRA, 91, 4, msg_0424_00051, RIBBON_DESC(FALSE, msg_0424_00124) },
{ MON_DATA_TOUGH_RIBBON_MASTER, 92, 4, msg_0424_00052, RIBBON_DESC(FALSE, msg_0424_00125) },
{ MON_DATA_SUPER_COOL_RIBBON, 89, 0, msg_0424_00033, RIBBON_DESC(FALSE, msg_0424_00106) },
{ MON_DATA_SUPER_COOL_RIBBON_GREAT, 90, 0, msg_0424_00034, RIBBON_DESC(FALSE, msg_0424_00107) },
{ MON_DATA_SUPER_COOL_RIBBON_ULTRA, 91, 0, msg_0424_00035, RIBBON_DESC(FALSE, msg_0424_00108) },
{ MON_DATA_SUPER_COOL_RIBBON_MASTER, 92, 0, msg_0424_00036, RIBBON_DESC(FALSE, msg_0424_00109) },
{ MON_DATA_SUPER_BEAUTY_RIBBON, 89, 1, msg_0424_00037, RIBBON_DESC(FALSE, msg_0424_00110) },
{ MON_DATA_SUPER_BEAUTY_RIBBON_GREAT, 90, 1, msg_0424_00038, RIBBON_DESC(FALSE, msg_0424_00111) },
{ MON_DATA_SUPER_BEAUTY_RIBBON_ULTRA, 91, 1, msg_0424_00039, RIBBON_DESC(FALSE, msg_0424_00112) },
{ MON_DATA_SUPER_BEAUTY_RIBBON_MASTER, 92, 1, msg_0424_00040, RIBBON_DESC(FALSE, msg_0424_00113) },
{ MON_DATA_SUPER_CUTE_RIBBON, 89, 2, msg_0424_00041, RIBBON_DESC(FALSE, msg_0424_00114) },
{ MON_DATA_SUPER_CUTE_RIBBON_GREAT, 90, 2, msg_0424_00042, RIBBON_DESC(FALSE, msg_0424_00115) },
{ MON_DATA_SUPER_CUTE_RIBBON_ULTRA, 91, 2, msg_0424_00043, RIBBON_DESC(FALSE, msg_0424_00116) },
{ MON_DATA_SUPER_CUTE_RIBBON_MASTER, 92, 2, msg_0424_00044, RIBBON_DESC(FALSE, msg_0424_00117) },
{ MON_DATA_SUPER_SMART_RIBBON, 89, 3, msg_0424_00045, RIBBON_DESC(FALSE, msg_0424_00118) },
{ MON_DATA_SUPER_SMART_RIBBON_GREAT, 90, 3, msg_0424_00046, RIBBON_DESC(FALSE, msg_0424_00119) },
{ MON_DATA_SUPER_SMART_RIBBON_ULTRA, 91, 3, msg_0424_00047, RIBBON_DESC(FALSE, msg_0424_00120) },
{ MON_DATA_SUPER_SMART_RIBBON_MASTER, 92, 3, msg_0424_00048, RIBBON_DESC(FALSE, msg_0424_00121) },
{ MON_DATA_SUPER_TOUGH_RIBBON, 89, 4, msg_0424_00049, RIBBON_DESC(FALSE, msg_0424_00122) },
{ MON_DATA_SUPER_TOUGH_RIBBON_GREAT, 90, 4, msg_0424_00050, RIBBON_DESC(FALSE, msg_0424_00123) },
{ MON_DATA_SUPER_TOUGH_RIBBON_ULTRA, 91, 4, msg_0424_00051, RIBBON_DESC(FALSE, msg_0424_00124) },
{ MON_DATA_SUPER_TOUGH_RIBBON_MASTER, 92, 4, msg_0424_00052, RIBBON_DESC(FALSE, msg_0424_00125) },
{ MON_DATA_ABILITY_RIBBON, 93, 0, msg_0424_00053, RIBBON_DESC(FALSE, msg_0424_00126) },
{ MON_DATA_GREAT_ABILITY_RIBBON, 94, 0, msg_0424_00054, RIBBON_DESC(FALSE, msg_0424_00127) },
{ MON_DATA_DOUBLE_ABILITY_RIBBON, 95, 0, msg_0424_00055, RIBBON_DESC(FALSE, msg_0424_00128) },

View File

@ -2125,7 +2125,7 @@ BOOL ScrCmd_NicknameInput(ScriptContext *ctx) {
} else {
mon = Party_GetMonByIndex(SaveArray_Party_Get(fieldSystem->saveData), partyPos);
}
GetMonData(mon, MON_DATA_NICKNAME_FLAT, nickname);
GetMonData(mon, MON_DATA_NICKNAME, nickname);
var_ret = ScriptGetVarPointer(ctx);
species = GetMonData(mon, MON_DATA_SPECIES, NULL);
CallTask_NamingScreen(ctx->taskman, NAME_SCREEN_POKEMON, species, POKEMON_NAME_LENGTH, partyPos, nickname, var_ret);
@ -4388,7 +4388,7 @@ BOOL ScrCmd_FollowerPokeIsEventTrigger(ScriptContext *ctx) {
if (GetMonData(mon, MON_DATA_IS_EGG, NULL) || GetMonData(mon, MON_DATA_CHECKSUM_FAILED, NULL)) {
return FALSE;
}
if (!MonMetadataMatchesEvent(event, mon, GetMonData(mon, MON_DATA_OTID, NULL) == PlayerProfile_GetTrainerID(Save_PlayerData_GetProfile(ctx->fieldSystem->saveData)))) {
if (!MonMetadataMatchesEvent(event, mon, GetMonData(mon, MON_DATA_OT_ID, NULL) == PlayerProfile_GetTrainerID(Save_PlayerData_GetProfile(ctx->fieldSystem->saveData)))) {
return FALSE;
}

View File

@ -46,7 +46,7 @@ BOOL ScrCmd_LotoIdSearch(ScriptContext *ctx) {
for (monDigit = 0, monPosition = 0, i = 0; i < partyCount; i++) {
Pokemon *mon = Party_GetMonByIndex(SaveArray_Party_Get(fieldSystem->saveData), i);
if (!GetMonData(mon, MON_DATA_IS_EGG, NULL)) {
otid = GetMonData(mon, MON_DATA_OTID, NULL) & 0xffff;
otid = GetMonData(mon, MON_DATA_OT_ID, NULL) & 0xffff;
digitCount = LotoId_CountDigitsMatched(lotoId, otid);
if (digitCount != 0 && monDigit < digitCount) {
monDigit = digitCount;
@ -59,7 +59,7 @@ BOOL ScrCmd_LotoIdSearch(ScriptContext *ctx) {
for (j = 0; j < MONS_PER_BOX; j++) {
BoxPokemon *boxMon = PCStorage_GetMonByIndexPair(storage, ii, j);
if (GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL) != 0 && !GetBoxMonData(boxMon, MON_DATA_IS_EGG, NULL)) {
otid = GetBoxMonData(boxMon, MON_DATA_OTID, NULL) & 0xffff;
otid = GetBoxMonData(boxMon, MON_DATA_OT_ID, NULL) & 0xffff;
digitCount = LotoId_CountDigitsMatched(lotoId, otid);
if (digitCount != 0 && boxDigit < digitCount) {
boxDigit = digitCount;

View File

@ -211,9 +211,9 @@ static void MGGive_Mon(FieldSystem *fieldSys, MysteryGiftData *unused) {
Pokemon *tmpPokemon = NULL;
Pokemon *pokemon = &mgData->mon;
u8 *srcRibbons = mgData->ribbons;
int eggMetLocation = GetMonData(pokemon, MON_DATA_EGG_MET_LOCATION, NULL);
int eggMetLocation = GetMonData(pokemon, MON_DATA_EGG_LOCATION, NULL);
int personality = GetMonData(pokemon, MON_DATA_PERSONALITY, NULL);
int otid = GetMonData(pokemon, MON_DATA_OTID, NULL);
int otid = GetMonData(pokemon, MON_DATA_OT_ID, NULL);
int rand = PRandom(OS_GetTick());
if (personality != 0) {
@ -270,13 +270,13 @@ static void MGGive_Mon(FieldSystem *fieldSys, MysteryGiftData *unused) {
if (GetMonData(pokemon, MON_DATA_PREMIER_RIBBON, NULL)) {
ribbons->ribbons[GetSpecialRibbonNo(RIBBON_PREMIER)] = srcRibbons[6];
}
if (GetMonData(pokemon, MON_DATA_HOENN_MARINE_RIBBON, NULL)) {
if (GetMonData(pokemon, MON_DATA_MARINE_RIBBON, NULL)) {
ribbons->ribbons[GetSpecialRibbonNo(RIBBON_HOENN_MARINE)] = srcRibbons[7];
}
if (GetMonData(pokemon, MON_DATA_HOENN_LAND_RIBBON, NULL)) {
if (GetMonData(pokemon, MON_DATA_LAND_RIBBON, NULL)) {
ribbons->ribbons[GetSpecialRibbonNo(RIBBON_HOENN_LAND)] = srcRibbons[8];
}
if (GetMonData(pokemon, MON_DATA_HOENN_SKY_RIBBON, NULL)) {
if (GetMonData(pokemon, MON_DATA_SKY_RIBBON, NULL)) {
ribbons->ribbons[GetSpecialRibbonNo(RIBBON_HOENN_SKY)] = srcRibbons[9];
}
@ -290,8 +290,8 @@ static void MGGive_Mon(FieldSystem *fieldSys, MysteryGiftData *unused) {
GF_ASSERT(tmpPokemon != NULL);
#endif
CopyPokemonToPokemon(pokemon, tmpPokemon);
SetMonData(tmpPokemon, MON_DATA_OT_NAME_2, playerName);
SetMonData(tmpPokemon, MON_DATA_OTID, &trainerId);
SetMonData(tmpPokemon, MON_DATA_OT_NAME_STRING, playerName);
SetMonData(tmpPokemon, MON_DATA_OT_ID, &trainerId);
SetMonData(tmpPokemon, MON_DATA_OT_GENDER, &gender);
pokemon = tmpPokemon;
String_Delete(playerName);

View File

@ -64,7 +64,7 @@ BOOL ScrCmd_PartymonIsMine(ScriptContext *ctx) {
u16 *mine = ScriptGetVarPointer(ctx);
Pokemon *mon = Party_GetMonByIndex(SaveArray_Party_Get(fieldSystem->saveData), *slot);
u16 pokemonID = GetMonData(mon, MON_DATA_OTID, NULL);
u16 pokemonID = GetMonData(mon, MON_DATA_OT_ID, NULL);
u16 playerID = PlayerProfile_GetTrainerID(profile);
if (pokemonID == playerID) {
@ -253,7 +253,7 @@ BOOL ScrCmd_MonAddFriendship(ScriptContext *ctx) {
friendshipModifier++;
}
if (map == GetMonData(mon, MON_DATA_EGG_MET_LOCATION, NULL)) {
if (map == GetMonData(mon, MON_DATA_EGG_LOCATION, NULL)) {
friendshipModifier++;
}
@ -505,7 +505,7 @@ BOOL ScrCmd_KenyaCheck(ScriptContext *ctx) {
HandleLoadOverlay(FS_OVERLAY_ID(npc_trade), OVY_LOAD_ASYNC);
Mail *kenyaMail = NPCTrade_MakeKenyaMail();
Mail *mail = Mail_New(HEAP_ID_FIELD2);
GetMonData(mon, MON_DATA_MAIL_STRUCT, mail);
GetMonData(mon, MON_DATA_MAIL, mail);
*kenya = Mail_Compare(kenyaMail, mail);
Heap_Free(mail);
Heap_Free(kenyaMail);
@ -529,7 +529,7 @@ BOOL ScrCmd_KenyaCheckPartyOrMailbox(ScriptContext *ctx) {
for (i = 0; i < Party_GetCount(party); i++) {
Pokemon *mon = Party_GetMonByIndex(party, i);
if (ItemIdIsMail(GetMonData(mon, MON_DATA_HELD_ITEM, NULL))) {
GetMonData(mon, MON_DATA_MAIL_STRUCT, mail);
GetMonData(mon, MON_DATA_MAIL, mail);
if (Mail_Compare(kenyaMail, mail)) {
*kenya = TRUE;
Heap_Free(mail);
@ -572,7 +572,7 @@ BOOL ScrCmd_MonGiveMail(ScriptContext *ctx) {
item = ITEM_NONE;
Mail *mail = Mail_New(HEAP_ID_FIELD2);
Mail_Init(mail);
SetMonData(mon, MON_DATA_MAIL_STRUCT, mail);
SetMonData(mon, MON_DATA_MAIL, mail);
SetMonData(mon, MON_DATA_HELD_ITEM, &item);
Heap_Free(mail);

View File

@ -301,7 +301,7 @@ void sub_0208E994(Unk0208E600 *a0) {
// Returns true if the Pokemon has the proper metadata to trigger the event.
BOOL MonMetadataMatchesEvent(u8 eventNo, Pokemon *mon, BOOL isMine) {
u8 metCondition = MonMetCondition(mon, isMine);
u8 version = GetMonData(mon, MON_DATA_GAME_VERSION, NULL);
u8 version = GetMonData(mon, MON_DATA_MET_GAME, NULL);
if ((metCondition == MET_CONDITION_FATEFUL_ENCOUNTER || metCondition == MET_CONDITION_FATEFUL_ENCOUNTER_TRADED) && (eventNo != EVENT_ARCEUS_HALL_OF_ORIGIN)) {
return TRUE;
@ -348,10 +348,10 @@ static void FormatDateAndLocationMet(Unk0208E600 *a0, int msgNo) {
BufferIntegerAsString(a0->msgFmt, 2, GetMonData(a0->mon, MON_DATA_MET_DAY, NULL), 2, PRINTING_MODE_LEFT_ALIGN, TRUE);
BufferIntegerAsString(a0->msgFmt, 3, GetMonData(a0->mon, MON_DATA_MET_LEVEL, NULL), 3, PRINTING_MODE_LEFT_ALIGN, TRUE);
BufferLocationName(a0->msgFmt, 4, GetMonData(a0->mon, MON_DATA_MET_LOCATION, NULL));
BufferIntegerAsString(a0->msgFmt, 5, GetMonData(a0->mon, MON_DATA_EGG_MET_YEAR, NULL), 2, PRINTING_MODE_LEADING_ZEROS, TRUE);
BufferMonthNameAbbr(a0->msgFmt, 6, GetMonData(a0->mon, MON_DATA_EGG_MET_MONTH, NULL));
BufferIntegerAsString(a0->msgFmt, 7, GetMonData(a0->mon, MON_DATA_EGG_MET_DAY, NULL), 2, PRINTING_MODE_LEFT_ALIGN, TRUE);
BufferLocationName(a0->msgFmt, 8, GetMonData(a0->mon, MON_DATA_EGG_MET_LOCATION, NULL));
BufferIntegerAsString(a0->msgFmt, 5, GetMonData(a0->mon, MON_DATA_EGG_YEAR, NULL), 2, PRINTING_MODE_LEADING_ZEROS, TRUE);
BufferMonthNameAbbr(a0->msgFmt, 6, GetMonData(a0->mon, MON_DATA_EGG_MONTH, NULL));
BufferIntegerAsString(a0->msgFmt, 7, GetMonData(a0->mon, MON_DATA_EGG_DAY, NULL), 2, PRINTING_MODE_LEFT_ALIGN, TRUE);
BufferLocationName(a0->msgFmt, 8, GetMonData(a0->mon, MON_DATA_EGG_LOCATION, NULL));
StringExpandPlaceholders(a0->msgFmt, a0->notepad.dateLocationMet, str);
String_Delete(str);
@ -370,7 +370,7 @@ static void FormatDateAndLocation_Migrated(Unk0208E600 *a0, int msgNo) {
BufferIntegerAsString(a0->msgFmt, 2, GetMonData(a0->mon, MON_DATA_MET_DAY, NULL), 2, PRINTING_MODE_LEFT_ALIGN, TRUE);
BufferIntegerAsString(a0->msgFmt, 3, GetMonData(a0->mon, MON_DATA_MET_LEVEL, NULL), 3, PRINTING_MODE_LEFT_ALIGN, TRUE);
version = GetMonData(a0->mon, MON_DATA_GAME_VERSION, NULL);
version = GetMonData(a0->mon, MON_DATA_MET_GAME, NULL);
switch (version) {
case 0:
case 6:
@ -414,10 +414,10 @@ static void FormatDateAndLocation_Egg(Unk0208E600 *a0, int msgNo, BOOL hatched)
ReadMsgDataIntoString(a0->msgData, msgNo, str);
if (!hatched) {
BufferIntegerAsString(a0->msgFmt, 5, GetMonData(a0->mon, MON_DATA_EGG_MET_YEAR, NULL), 2, PRINTING_MODE_LEADING_ZEROS, TRUE);
BufferMonthNameAbbr(a0->msgFmt, 6, GetMonData(a0->mon, MON_DATA_EGG_MET_MONTH, NULL));
BufferIntegerAsString(a0->msgFmt, 7, GetMonData(a0->mon, MON_DATA_EGG_MET_DAY, NULL), 2, PRINTING_MODE_LEFT_ALIGN, TRUE);
BufferLocationName(a0->msgFmt, 8, GetMonData(a0->mon, MON_DATA_EGG_MET_LOCATION, NULL));
BufferIntegerAsString(a0->msgFmt, 5, GetMonData(a0->mon, MON_DATA_EGG_YEAR, NULL), 2, PRINTING_MODE_LEADING_ZEROS, TRUE);
BufferMonthNameAbbr(a0->msgFmt, 6, GetMonData(a0->mon, MON_DATA_EGG_MONTH, NULL));
BufferIntegerAsString(a0->msgFmt, 7, GetMonData(a0->mon, MON_DATA_EGG_DAY, NULL), 2, PRINTING_MODE_LEFT_ALIGN, TRUE);
BufferLocationName(a0->msgFmt, 8, GetMonData(a0->mon, MON_DATA_EGG_LOCATION, NULL));
} else {
BufferIntegerAsString(a0->msgFmt, 5, GetMonData(a0->mon, MON_DATA_MET_YEAR, NULL), 2, PRINTING_MODE_LEADING_ZEROS, TRUE);
BufferMonthNameAbbr(a0->msgFmt, 6, GetMonData(a0->mon, MON_DATA_MET_MONTH, NULL));
@ -624,7 +624,7 @@ static void FormatEggWatch(Unk0208E600 *a0) {
static MetCondition MonMetCondition(Pokemon *mon, BOOL isMine) {
if (!GetMonData(mon, MON_DATA_IS_EGG, NULL)) {
if (GetMonData(mon, MON_DATA_EGG_MET_LOCATION, NULL) == 0) {
if (GetMonData(mon, MON_DATA_EGG_LOCATION, NULL) == 0) {
if (GetMonData(mon, MON_DATA_MET_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_NORMAL, MAPLOC(MAPSEC_PAL_PARK))) {
return MET_CONDITION_MIGRATED;
}
@ -644,13 +644,13 @@ static MetCondition MonMetCondition(Pokemon *mon, BOOL isMine) {
return MET_CONDITION_WILD_ENCOUNTER_TRADED;
}
if (GetMonData(mon, MON_DATA_FATEFUL_ENCOUNTER, NULL) == TRUE) {
if (GetMonData(mon, MON_DATA_EGG_MET_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_GIFT, MAPLOC(METLOC_LINK_TRADE_2))) {
if (GetMonData(mon, MON_DATA_EGG_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_GIFT, MAPLOC(METLOC_LINK_TRADE_2))) {
if (isMine == TRUE) {
return MET_CONDITION_FATEFUL_EGG_HATCHED_GIFT;
}
return MET_CONDITION_FATEFUL_EGG_HATCHED_GIFT_TRADED;
}
if (GetMonData(mon, MON_DATA_EGG_MET_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_EXTERNAL, MAPLOC(METLOC_POKEMON_RANGER))) {
if (GetMonData(mon, MON_DATA_EGG_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_EXTERNAL, MAPLOC(METLOC_POKEMON_RANGER))) {
if (isMine == TRUE) {
return MET_CONDITION_FATEFUL_EGG_HATCHED_ARRIVED;
}
@ -662,7 +662,13 @@ static MetCondition MonMetCondition(Pokemon *mon, BOOL isMine) {
return MET_CONDITION_FATEFUL_EGG_HATCHED_TRADED;
}
if ((GetMonData(mon, MON_DATA_EGG_MET_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_GIFT, MAPLOC(METLOC_LINK_TRADE))) || (GetMonData(mon, MON_DATA_EGG_MET_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_GIFT, MAPLOC(METLOC_DAY_CARE_COUPLE))) || (GetMonData(mon, MON_DATA_EGG_MET_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_GIFT, MAPLOC(METLOC_TRAVELING_MAN))) || (GetMonData(mon, MON_DATA_EGG_MET_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_GIFT, MAPLOC(METLOC_RILEY))) || (GetMonData(mon, MON_DATA_EGG_MET_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_GIFT, MAPLOC(METLOC_CYNTHIA))) || (GetMonData(mon, MON_DATA_EGG_MET_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_GIFT, MAPLOC(METLOC_MR_POKEMON))) || (GetMonData(mon, MON_DATA_EGG_MET_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_GIFT, MAPLOC(METLOC_PRIMO)))) {
if ((GetMonData(mon, MON_DATA_EGG_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_GIFT, MAPLOC(METLOC_LINK_TRADE)))
|| (GetMonData(mon, MON_DATA_EGG_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_GIFT, MAPLOC(METLOC_DAY_CARE_COUPLE)))
|| (GetMonData(mon, MON_DATA_EGG_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_GIFT, MAPLOC(METLOC_TRAVELING_MAN)))
|| (GetMonData(mon, MON_DATA_EGG_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_GIFT, MAPLOC(METLOC_RILEY)))
|| (GetMonData(mon, MON_DATA_EGG_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_GIFT, MAPLOC(METLOC_CYNTHIA)))
|| (GetMonData(mon, MON_DATA_EGG_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_GIFT, MAPLOC(METLOC_MR_POKEMON)))
|| (GetMonData(mon, MON_DATA_EGG_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_GIFT, MAPLOC(METLOC_PRIMO)))) {
if (isMine == TRUE) {
return MET_CONDITION_EGG_HATCHED_GIFT;
}
@ -677,7 +683,7 @@ static MetCondition MonMetCondition(Pokemon *mon, BOOL isMine) {
if (isMine == TRUE) {
if (GetMonData(mon, MON_DATA_FATEFUL_ENCOUNTER, NULL) == TRUE) {
if (GetMonData(mon, MON_DATA_EGG_MET_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_EXTERNAL, MAPLOC(METLOC_POKEMON_RANGER))) {
if (GetMonData(mon, MON_DATA_EGG_LOCATION, NULL) == sub_02017FE4(MAPSECTYPE_EXTERNAL, MAPLOC(METLOC_POKEMON_RANGER))) {
return MET_CONDITION_FATEFUL_EGG_ARRIVED;
}
return MET_CONDITION_FATEFUL_EGG;
@ -776,16 +782,16 @@ void BoxMonSetTrainerMemo(BoxPokemon *boxMon, PlayerProfile *profile, int strat,
}
if (!BoxmonBelongsToPlayer(boxMon, profile, heapID)) {
var = GetBoxMonData(boxMon, MON_DATA_MET_LOCATION, NULL);
SetBoxMonData(boxMon, MON_DATA_EGG_MET_LOCATION, &var);
SetBoxMonData(boxMon, MON_DATA_EGG_LOCATION, &var);
var = GetBoxMonData(boxMon, MON_DATA_MET_YEAR, NULL);
SetBoxMonData(boxMon, MON_DATA_EGG_MET_YEAR, &var);
SetBoxMonData(boxMon, MON_DATA_EGG_YEAR, &var);
var = GetBoxMonData(boxMon, MON_DATA_MET_MONTH, NULL);
SetBoxMonData(boxMon, MON_DATA_EGG_MET_MONTH, &var);
SetBoxMonData(boxMon, MON_DATA_EGG_MONTH, &var);
var = GetBoxMonData(boxMon, MON_DATA_MET_DAY, NULL);
SetBoxMonData(boxMon, MON_DATA_EGG_MET_DAY, &var);
SetBoxMonData(boxMon, MON_DATA_EGG_DAY, &var);
}
BoxMon_SetMetDateAndLocation(boxMon, mapsec, SETMETDATEPARAM_MON);
BoxMon_SetOriginalTrainerData(boxMon, profile, heapID);
@ -798,9 +804,9 @@ static void BoxMon_SetOriginalTrainerData(BoxPokemon *boxMon, PlayerProfile *pro
u32 gender = PlayerProfile_GetTrainerGender(profile);
String *name = PlayerProfile_GetPlayerName_NewString(profile, heapID);
SetBoxMonData(boxMon, MON_DATA_OTID, &otId);
SetBoxMonData(boxMon, MON_DATA_OT_ID, &otId);
SetBoxMonData(boxMon, MON_DATA_OT_GENDER, &gender);
SetBoxMonData(boxMon, MON_DATA_OT_NAME_2, name);
SetBoxMonData(boxMon, MON_DATA_OT_NAME_STRING, name);
String_Delete(name);
}
@ -810,10 +816,10 @@ static void BoxMon_SetMetDateAndLocation(BoxPokemon *boxMon, int mapsec, int set
GF_RTC_CopyDate(&date);
if (setMetDateParam == SETMETDATEPARAM_EGG) {
SetBoxMonData(boxMon, MON_DATA_EGG_MET_LOCATION, &mapsec);
SetBoxMonData(boxMon, MON_DATA_EGG_MET_YEAR, &date.year);
SetBoxMonData(boxMon, MON_DATA_EGG_MET_MONTH, &date.month);
SetBoxMonData(boxMon, MON_DATA_EGG_MET_DAY, &date.day);
SetBoxMonData(boxMon, MON_DATA_EGG_LOCATION, &mapsec);
SetBoxMonData(boxMon, MON_DATA_EGG_YEAR, &date.year);
SetBoxMonData(boxMon, MON_DATA_EGG_MONTH, &date.month);
SetBoxMonData(boxMon, MON_DATA_EGG_DAY, &date.day);
} else {
SetBoxMonData(boxMon, MON_DATA_MET_LOCATION, &mapsec);
SetBoxMonData(boxMon, MON_DATA_MET_YEAR, &date.year);
@ -825,10 +831,10 @@ static void BoxMon_SetMetDateAndLocation(BoxPokemon *boxMon, int mapsec, int set
static void BoxMon_ClearMetDateAndLocation(BoxPokemon *boxMon, int setMetDateParam) {
int zero = 0;
if (setMetDateParam == SETMETDATEPARAM_EGG) {
SetBoxMonData(boxMon, MON_DATA_EGG_MET_LOCATION, &zero);
SetBoxMonData(boxMon, MON_DATA_EGG_MET_YEAR, &zero);
SetBoxMonData(boxMon, MON_DATA_EGG_MET_MONTH, &zero);
SetBoxMonData(boxMon, MON_DATA_EGG_MET_DAY, &zero);
SetBoxMonData(boxMon, MON_DATA_EGG_LOCATION, &zero);
SetBoxMonData(boxMon, MON_DATA_EGG_YEAR, &zero);
SetBoxMonData(boxMon, MON_DATA_EGG_MONTH, &zero);
SetBoxMonData(boxMon, MON_DATA_EGG_DAY, &zero);
} else {
SetBoxMonData(boxMon, MON_DATA_MET_LOCATION, &zero);
SetBoxMonData(boxMon, MON_DATA_MET_YEAR, &zero);

View File

@ -700,18 +700,18 @@ static void sub_0204B34C(UnkStruct_0204B470 *a0, Pokemon *mon) {
a0->item = GetMonData(mon, MON_DATA_HELD_ITEM, NULL);
for (s32 i = 0; i < MAX_MON_MOVES; i++) {
a0->moves[i] = GetMonData(mon, MON_DATA_MOVE1 + i, NULL);
a0->ppUp |= GetMonData(mon, MON_DATA_MOVE1PPUP + i, NULL) << (i * 2);
a0->ppUp |= GetMonData(mon, MON_DATA_MOVE1_PP_UPS + i, NULL) << (i * 2);
}
a0->language = GetMonData(mon, MON_DATA_GAME_LANGUAGE, NULL);
a0->otId = GetMonData(mon, MON_DATA_OTID, NULL);
a0->language = GetMonData(mon, MON_DATA_LANGUAGE, NULL);
a0->otId = GetMonData(mon, MON_DATA_OT_ID, NULL);
a0->pid = GetMonData(mon, MON_DATA_PERSONALITY, NULL);
a0->ivsWord = GetMonData(mon, MON_DATA_IVS_WORD, NULL);
a0->ivsWord = GetMonData(mon, MON_DATA_COMBINED_IVS, NULL);
for (s32 i = 0; i < NUM_STATS; i++) {
a0->evs[i] = GetMonData(mon, MON_DATA_HP_EV + i, NULL);
}
a0->ability = GetMonData(mon, MON_DATA_ABILITY, NULL);
a0->friendship = GetMonData(mon, MON_DATA_FRIENDSHIP, NULL);
GetMonData(mon, MON_DATA_NICKNAME_FLAT, a0->nickname);
GetMonData(mon, MON_DATA_NICKNAME, a0->nickname);
}
static void sub_0204B470(UnkStruct_Fsys_A0 *a0, SaveData *saveData, u32 a2) {

View File

@ -151,8 +151,8 @@ static BOOL sub_0206B984(TaskManager *taskManager) {
u32 index = r7->unk04->unk30 + 1;
if (partyMenu->partySlot != 7) {
Pokemon *mon = r7->unk04->mons[partyMenu->partySlot];
SetMonData(mon, MON_DATA_CAPSULE, &index);
SetMonData(mon, MON_DATA_SEAL_COORDS, SealCase_GetCapsuleI(r6->sealCase, index - 1));
SetMonData(mon, MON_DATA_BALL_CAPSULE_ID, &index);
SetMonData(mon, MON_DATA_BALL_CAPSULE, SealCase_GetCapsuleI(r6->sealCase, index - 1));
sub_0209106C(SealOnCapsuleGetID(CapsuleGetSealI(SealCase_GetCapsuleI(r6->sealCase, index - 1), 0)));
sub_020270C4(fieldSystem->saveData);
}

View File

@ -289,7 +289,7 @@ BOOL MonIsFromTogepiEgg(Pokemon *mon, SaveData *saveData) {
// to explicit variables before being compared for the function to match,
// even though the values are never used again afterwards. Also, the same
// variables are used for different calls to GetMonData.
int word = GetMonData(mon, MON_DATA_OTID, NULL);
int word = GetMonData(mon, MON_DATA_OT_ID, NULL);
if (word != PlayerProfile_GetTrainerID(profile)) {
return FALSE;
}
@ -297,11 +297,11 @@ BOOL MonIsFromTogepiEgg(Pokemon *mon, SaveData *saveData) {
if (byte != PlayerProfile_GetTrainerGender(profile)) {
return FALSE;
}
byte = GetMonData(mon, MON_DATA_GAME_LANGUAGE, NULL);
byte = GetMonData(mon, MON_DATA_LANGUAGE, NULL);
if (byte != gGameLanguage) {
return FALSE;
}
byte = GetMonData(mon, MON_DATA_GAME_VERSION, NULL);
byte = GetMonData(mon, MON_DATA_MET_GAME, NULL);
if (byte != gGameVersion) {
return FALSE;
}
@ -329,7 +329,7 @@ static BOOL MonIsInGameTradePokeInternal(Pokemon *mon, NPCTrade *trade, NpcTrade
else if (species != trade->give_species) {
return FALSE;
}
u32 otId = GetMonData(mon, MON_DATA_OTID, NULL);
u32 otId = GetMonData(mon, MON_DATA_OT_ID, NULL);
if (otId != trade->otId) {
return FALSE;
}
@ -341,11 +341,11 @@ static BOOL MonIsInGameTradePokeInternal(Pokemon *mon, NPCTrade *trade, NpcTrade
if (gender != trade->gender) {
return FALSE;
}
u8 language = GetMonData(mon, MON_DATA_GAME_LANGUAGE, NULL);
u8 language = GetMonData(mon, MON_DATA_LANGUAGE, NULL);
if (language != trade->language) {
return FALSE;
}
u8 version = GetMonData(mon, MON_DATA_GAME_VERSION, NULL);
u8 version = GetMonData(mon, MON_DATA_MET_GAME, NULL);
if (version != gGameVersion) {
return FALSE;
}
@ -361,7 +361,7 @@ static BOOL MonIsInGameTradePokeInternal(Pokemon *mon, NPCTrade *trade, NpcTrade
return FALSE;
}
String *monOtName = String_New(8, HEAP_ID_FIELD2);
GetMonData(mon, MON_DATA_OT_NAME_2, monOtName);
GetMonData(mon, MON_DATA_OT_NAME_STRING, monOtName);
String *tradeOtName = NewString_ReadMsgData(messageData, NPC_TRADE_OT_NUM(tradeNum));
BOOL differentOtName = String_Compare(monOtName, tradeOtName);
String_Delete(tradeOtName);

View File

@ -62,7 +62,7 @@ BOOL CanUseItemOnPokemon(Pokemon *mon, u16 itemID, s32 moveIdx, enum HeapID heap
Heap_Free(itemData);
return TRUE;
}
} else if (GetItemAttr_PreloadedItemData(itemData, ITEMATTR_HP_RESTORE) && hp != 0 && hp < GetMonData(mon, MON_DATA_MAXHP, NULL)) {
} else if (GetItemAttr_PreloadedItemData(itemData, ITEMATTR_HP_RESTORE) && hp != 0 && hp < GetMonData(mon, MON_DATA_MAX_HP, NULL)) {
Heap_Free(itemData);
return TRUE;
}
@ -78,7 +78,7 @@ BOOL CanUseItemOnPokemon(Pokemon *mon, u16 itemID, s32 moveIdx, enum HeapID heap
}
if (GetItemAttr_PreloadedItemData(itemData, ITEMATTR_PP_UP) || GetItemAttr_PreloadedItemData(itemData, ITEMATTR_PP_MAX)) {
if (GetMonData(mon, MON_DATA_MOVE1PPUP + moveIdx, NULL) < 3 && GetMoveMaxPP(GetMonData(mon, MON_DATA_MOVE1 + moveIdx, NULL), 0) >= 5) {
if (GetMonData(mon, MON_DATA_MOVE1_PP_UPS + moveIdx, NULL) < 3 && GetMoveMaxPP(GetMonData(mon, MON_DATA_MOVE1 + moveIdx, NULL), 0) >= 5) {
Heap_Free(itemData);
return TRUE;
}
@ -275,7 +275,7 @@ BOOL UseItemOnPokemon(Pokemon *mon, u16 itemID, u16 moveIdx, u16 location, enum
}
sp54 = GetMonData(mon, MON_DATA_HP, NULL);
sp58 = GetMonData(mon, MON_DATA_MAXHP, NULL);
sp58 = GetMonData(mon, MON_DATA_MAX_HP, NULL);
if ((GetItemAttr_PreloadedItemData(itemData, ITEMATTR_REVIVE) || GetItemAttr_PreloadedItemData(itemData, ITEMATTR_REVIVE_ALL)) && GetItemAttr_PreloadedItemData(itemData, ITEMATTR_LEVEL_UP)) {
if (sp54 == 0) {
RestoreMonHPBy(mon, sp54, sp58, GetItemAttr_PreloadedItemData(itemData, ITEMATTR_HP_RESTORE_PARAM));
@ -296,7 +296,7 @@ BOOL UseItemOnPokemon(Pokemon *mon, u16 itemID, u16 moveIdx, u16 location, enum
AddMonData(mon, MON_DATA_EXPERIENCE, CalcMonExpToNextLevel(mon));
CalcMonLevelAndStats(mon);
if (sp54 == 0) {
sp60 = GetMonData(mon, MON_DATA_MAXHP, NULL);
sp60 = GetMonData(mon, MON_DATA_MAX_HP, NULL);
RestoreMonHPBy(mon, sp54, sp60, sp60 - sp58);
}
hadEffect = TRUE;
@ -483,8 +483,8 @@ BOOL MonMoveCanRestorePP(Pokemon *mon, int moveIdx) {
return FALSE;
}
u8 pp = GetMonData(mon, MON_DATA_MOVE1PP + moveIdx, NULL);
u8 ppUp = GetMonData(mon, MON_DATA_MOVE1PPUP + moveIdx, NULL);
u8 pp = GetMonData(mon, MON_DATA_MOVE1_PP + moveIdx, NULL);
u8 ppUp = GetMonData(mon, MON_DATA_MOVE1_PP_UPS + moveIdx, NULL);
return (u8)(pp < GetMoveMaxPP(moveID, ppUp));
}
@ -494,9 +494,9 @@ BOOL MonMoveRestorePP(Pokemon *mon, int moveIdx, int ppRestore) {
return FALSE;
}
int ppAttr = MON_DATA_MOVE1PP + moveIdx;
int ppAttr = MON_DATA_MOVE1_PP + moveIdx;
u8 pp = GetMonData(mon, ppAttr, NULL);
int ppUpAttr = MON_DATA_MOVE1PPUP + moveIdx;
int ppUpAttr = MON_DATA_MOVE1_PP_UPS + moveIdx;
u8 maxPp = GetMoveMaxPP(move_id, GetMonData(mon, ppUpAttr, NULL));
if (pp < maxPp) {
if (ppRestore == PP_RESTORE_ALL) {
@ -517,7 +517,7 @@ BOOL BoostMonMovePpUpBy(Pokemon *mon, int moveIdx, int nPpUp) {
u16 move;
u8 pp;
int ppUpAttr = MON_DATA_MOVE1PPUP + moveIdx;
int ppUpAttr = MON_DATA_MOVE1_PP_UPS + moveIdx;
u8 ppUp = GetMonData(mon, ppUpAttr, NULL);
if (ppUp == 3) {
return FALSE;
@ -528,7 +528,7 @@ BOOL BoostMonMovePpUpBy(Pokemon *mon, int moveIdx, int nPpUp) {
return FALSE;
}
int ppAttr = MON_DATA_MOVE1PP + moveIdx;
int ppAttr = MON_DATA_MOVE1_PP + moveIdx;
pp = GetMonData(mon, ppAttr, NULL);
u8 maxPp = GetMoveMaxPP(move, ppUp);
if ((u32)(ppUp + nPpUp) > 3) {
@ -627,7 +627,7 @@ BOOL DoItemFriendshipMod(Pokemon *mon, s32 friendship, s32 mod, u16 location, en
mod++;
}
if (location == GetMonData(mon, MON_DATA_EGG_MET_LOCATION, NULL)) {
if (location == GetMonData(mon, MON_DATA_EGG_LOCATION, NULL)) {
mod++;
}
@ -656,7 +656,7 @@ void HealParty(Party *party) {
for (i = 0; i < partyCount; i++) {
Pokemon *mon = Party_GetMonByIndex(party, i);
if (GetMonData(mon, MON_DATA_SPECIES_EXISTS, NULL)) {
u32 sp8 = GetMonData(mon, MON_DATA_MAXHP, NULL);
u32 sp8 = GetMonData(mon, MON_DATA_MAX_HP, NULL);
SetMonData(mon, MON_DATA_HP, &sp8);
sp8 = 0;