summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/constants/battle.h283
-rw-r--r--include/constants/moves.h4
-rw-r--r--include/constants/pokemon.h365
-rw-r--r--include/main.h4
-rw-r--r--include/move_data.h4
-rw-r--r--include/player_data.h2
-rw-r--r--include/pokemon.h4
-rw-r--r--include/save_block_2.h1
-rw-r--r--include/script.h2
-rw-r--r--include/sound.h2
-rw-r--r--include/unk_0207FC5C.h89
11 files changed, 571 insertions, 189 deletions
diff --git a/include/constants/battle.h b/include/constants/battle.h
new file mode 100644
index 00000000..21a5f080
--- /dev/null
+++ b/include/constants/battle.h
@@ -0,0 +1,283 @@
+#ifndef POKEDIAMOND_BATTLE_H
+#define POKEDIAMOND_BATTLE_H
+
+#define MOVE_EFFECT_NORMAL_HIT 0
+#define MOVE_EFFECT_SLEEP 1
+#define MOVE_EFFECT_POISON_HIT 2
+#define MOVE_EFFECT_DRAIN_HP 3
+#define MOVE_EFFECT_BURN_HIT 4
+#define MOVE_EFFECT_FREEZE_HIT 5
+#define MOVE_EFFECT_PARALYZE_HIT 6
+#define MOVE_EFFECT_EXPLOSION 7
+#define MOVE_EFFECT_DREAM_EATER 8
+#define MOVE_EFFECT_MIRROR_MOVE 9
+#define MOVE_EFFECT_ATTACK_UP 10
+#define MOVE_EFFECT_DEFENSE_UP 11
+#define MOVE_EFFECT_SPEED_UP 12 // unused
+#define MOVE_EFFECT_SPATK_UP 13
+#define MOVE_EFFECT_SPDEF_UP 14 // unused
+#define MOVE_EFFECT_ACCURACY_UP 15 // unused
+#define MOVE_EFFECT_EVASION_UP 16
+#define MOVE_EFFECT_ALWAYS_HIT 17
+#define MOVE_EFFECT_ATTACK_DOWN 18
+#define MOVE_EFFECT_DEFENSE_DOWN 19
+#define MOVE_EFFECT_SPEED_DOWN 20
+#define MOVE_EFFECT_SPATK_DOWN 21 // unused
+#define MOVE_EFFECT_SPDEF_DOWN 22 // unused
+#define MOVE_EFFECT_ACCURACY_DOWN 23
+#define MOVE_EFFECT_EVASION_DOWN 24
+#define MOVE_EFFECT_STATS_RESET 25
+#define MOVE_EFFECT_BIDE 26
+#define MOVE_EFFECT_RAMPAGE 27
+#define MOVE_EFFECT_SWITCH_FOE 28
+#define MOVE_EFFECT_MULTIHIT_2_5 29
+#define MOVE_EFFECT_CONVERSION 30
+#define MOVE_EFFECT_FLINCH_HIT 31
+#define MOVE_EFFECT_RESTORE_HP 32
+#define MOVE_EFFECT_TOXIC 33
+#define MOVE_EFFECT_PAYDAY 34
+#define MOVE_EFFECT_LIGHT_SCREEN 35
+#define MOVE_EFFECT_TRI_ATTACK 36
+#define MOVE_EFFECT_SLEEP_USER 37
+#define MOVE_EFFECT_OHKO 38
+#define MOVE_EFFECT_RAZOR_WIND 39
+#define MOVE_EFFECT_SUPER_FANG 40
+#define MOVE_EFFECT_FIXED_40 41
+#define MOVE_EFFECT_TRAP_HIT 42
+#define MOVE_EFFECT_HIGH_CRIT 43
+#define MOVE_EFFECT_DOUBLE_HIT 44
+#define MOVE_EFFECT_JUMP_KICK 45
+#define MOVE_EFFECT_MIST 46
+#define MOVE_EFFECT_CRIT_CHANCE_UP 47
+#define MOVE_EFFECT_RECOIL_HIT 48
+#define MOVE_EFFECT_CONFUSE 49
+#define MOVE_EFFECT_ATTACK_2UP 50
+#define MOVE_EFFECT_DEFENSE_2UP 51
+#define MOVE_EFFECT_SPEED_2UP 52
+#define MOVE_EFFECT_SPATK_2UP 53
+#define MOVE_EFFECT_SPDEF_2UP 54
+#define MOVE_EFFECT_ACCURACY_2UP 55 // unused
+#define MOVE_EFFECT_EVASION_2UP 56 // unused
+#define MOVE_EFFECT_TRANSFORM 57
+#define MOVE_EFFECT_ATTACK_2DOWN 58
+#define MOVE_EFFECT_DEFENSE_2DOWN 59
+#define MOVE_EFFECT_SPEED_2DOWN 60
+#define MOVE_EFFECT_SPATK_2DOWN 61 // unused
+#define MOVE_EFFECT_SPDEF_2DOWN 62
+#define MOVE_EFFECT_ACCURACY_2DOWN 63 // unused
+#define MOVE_EFFECT_EVASION_2DOWN 64 // unused
+#define MOVE_EFFECT_REFLECT 65
+#define MOVE_EFFECT_POISON 66
+#define MOVE_EFFECT_PARALYZE 67
+#define MOVE_EFFECT_ATTACK_DOWN_HIT 68
+#define MOVE_EFFECT_DEFENSE_DOWN_HIT 69
+#define MOVE_EFFECT_SPEED_DOWN_HIT 70
+#define MOVE_EFFECT_SPATK_DOWN_HIT 71
+#define MOVE_EFFECT_SPDEF_DOWN_HIT 72
+#define MOVE_EFFECT_ACCURACY_DOWN_HIT 73
+#define MOVE_EFFECT_EVASION_DOWN_HIT 74 // unused
+#define MOVE_EFFECT_SKY_ATTACK 75
+#define MOVE_EFFECT_CONFUSE_HIT 76
+#define MOVE_EFFECT_POISON_DOUBLE_HIT 77
+#define MOVE_EFFECT_VITAL_THROW 78
+#define MOVE_EFFECT_SUBSTITUTE 79
+#define MOVE_EFFECT_HIT_RECHARGE 80
+#define MOVE_EFFECT_RAGE 81
+#define MOVE_EFFECT_MIMIC 82
+#define MOVE_EFFECT_METRONOME 83
+#define MOVE_EFFECT_LEECH_SEED 84
+#define MOVE_EFFECT_NONE 85
+#define MOVE_EFFECT_DISABLE 86
+#define MOVE_EFFECT_LEVEL_DAMAGE 87
+#define MOVE_EFFECT_RANDOM_DAMAGE 88
+#define MOVE_EFFECT_COUNTER 89
+#define MOVE_EFFECT_ENCORE 90
+#define MOVE_EFFECT_PAIN_SPLIT 91
+#define MOVE_EFFECT_SNORE 92
+#define MOVE_EFFECT_CONVERSION_2 93
+#define MOVE_EFFECT_ENSURE_NEXT_HIT 94
+#define MOVE_EFFECT_SKETCH 95
+#define MOVE_EFFECT_UNK096 96 // unused
+#define MOVE_EFFECT_SLEEP_TALK 97
+#define MOVE_EFFECT_DESTINY_BOND 98
+#define MOVE_EFFECT_STRONGER_LOW_HP 99
+#define MOVE_EFFECT_SPITE 100
+#define MOVE_EFFECT_FALSE_SWIPE 101
+#define MOVE_EFFECT_HEAL_ALL_STATUS 102
+#define MOVE_EFFECT_PRIORITY_HIT 103
+#define MOVE_EFFECT_TRIPLE_KICK 104
+#define MOVE_EFFECT_STEAL_ITEM 105
+#define MOVE_EFFECT_PREVENT_ESCAPE 106
+#define MOVE_EFFECT_NIGHTMARE 107
+#define MOVE_EFFECT_MINIMIZE 108
+#define MOVE_EFFECT_CURSE 109
+#define MOVE_EFFECT_UNK110 110 // unused
+#define MOVE_EFFECT_PROTECT 111
+#define MOVE_EFFECT_SPIKES 112
+#define MOVE_EFFECT_IDENTIFY 113
+#define MOVE_EFFECT_PERISH_SONG 114
+#define MOVE_EFFECT_SANDSTORM 115
+#define MOVE_EFFECT_ENDURE 116
+#define MOVE_EFFECT_INCREASING_HIT 117
+#define MOVE_EFFECT_SWAGGER 118
+#define MOVE_EFFECT_FURY_CUTTER 119
+#define MOVE_EFFECT_ATTRACT 120
+#define MOVE_EFFECT_RETURN 121
+#define MOVE_EFFECT_PRESENT 122
+#define MOVE_EFFECT_FRUSTRATION 123
+#define MOVE_EFFECT_SAFEGUARD 124
+#define MOVE_EFFECT_BURN_HIT_THAW 125
+#define MOVE_EFFECT_MAGNITUDE 126
+#define MOVE_EFFECT_BATON_PASS 127
+#define MOVE_EFFECT_PURSUIT 128
+#define MOVE_EFFECT_RAPID_SPIN 129
+#define MOVE_EFFECT_FIXED_20 130
+#define MOVE_EFFECT_UNK131 131 // unused
+#define MOVE_EFFECT_RESTORE_HP_DAYTIME 132
+#define MOVE_EFFECT_UNK133 133 // unused
+#define MOVE_EFFECT_UNK134 134 // unused
+#define MOVE_EFFECT_HIDDEN_POWER 135 // unused
+#define MOVE_EFFECT_RAIN 136
+#define MOVE_EFFECT_SUNNY 137
+#define MOVE_EFFECT_DEFENSE_UP_HIT 138
+#define MOVE_EFFECT_ATTACK_UP_HIT 139
+#define MOVE_EFFECT_STATS_UP_HIT 140
+#define MOVE_EFFECT_UNK141 141 // unused
+#define MOVE_EFFECT_BELLY_DRUM 142
+#define MOVE_EFFECT_PSYCH_UP 143
+#define MOVE_EFFECT_MIRROR_COAT 144
+#define MOVE_EFFECT_SKULL_BASH 145
+#define MOVE_EFFECT_TWISTER 146
+#define MOVE_EFFECT_EARTHQUAKE 147
+#define MOVE_EFFECT_HIT_LATER 148
+#define MOVE_EFFECT_GUST 149
+#define MOVE_EFFECT_STOMP 150
+#define MOVE_EFFECT_SOLAR_BEAM 151
+#define MOVE_EFFECT_THUNDER 152
+#define MOVE_EFFECT_TELEPORT 153
+#define MOVE_EFFECT_BEAT_UP 154
+#define MOVE_EFFECT_FLY 155
+#define MOVE_EFFECT_DEFENSE_CURL 156
+#define MOVE_EFFECT_UNK157 157 // unused
+#define MOVE_EFFECT_FAKE_OUT 158
+#define MOVE_EFFECT_UPROAR 159
+#define MOVE_EFFECT_STOCKPILE 160
+#define MOVE_EFFECT_SPIT_UP 161
+#define MOVE_EFFECT_SWALLOW 162
+#define MOVE_EFFECT_UNK163 163 // unused
+#define MOVE_EFFECT_HAIL 164
+#define MOVE_EFFECT_TORMENT 165
+#define MOVE_EFFECT_FLATTER 166
+#define MOVE_EFFECT_BURN 167
+#define MOVE_EFFECT_MEMENTO 168
+#define MOVE_EFFECT_FACADE 169
+#define MOVE_EFFECT_FOCUS_PUNCH 170
+#define MOVE_EFFECT_SMELLING_SALTS 171
+#define MOVE_EFFECT_FOLLOW_ME 172
+#define MOVE_EFFECT_NATURE_POWER 173
+#define MOVE_EFFECT_CHARGE 174
+#define MOVE_EFFECT_TAUNT 175
+#define MOVE_EFFECT_HELPING_HAND 176
+#define MOVE_EFFECT_SWAP_ITEMS 177
+#define MOVE_EFFECT_ROLE_PLAY 178
+#define MOVE_EFFECT_WISH 179
+#define MOVE_EFFECT_ASSIST 180
+#define MOVE_EFFECT_INGRAIN 181
+#define MOVE_EFFECT_SUPERPOWER 182
+#define MOVE_EFFECT_MAGIC_COAT 183
+#define MOVE_EFFECT_RECYCLE 184
+#define MOVE_EFFECT_REVENGE 185
+#define MOVE_EFFECT_BRICK_BREAK 186
+#define MOVE_EFFECT_YAWN 187
+#define MOVE_EFFECT_KNOCK_OFF 188
+#define MOVE_EFFECT_ENDEAVOR 189
+#define MOVE_EFFECT_STRONGER_HIGH_HP 190
+#define MOVE_EFFECT_SKILL_SWAP 191
+#define MOVE_EFFECT_IMPRISON 192
+#define MOVE_EFFECT_REFRESH 193
+#define MOVE_EFFECT_GRUDGE 194
+#define MOVE_EFFECT_SNATCH 195
+#define MOVE_EFFECT_STRONGER_HEAVIER 196
+#define MOVE_EFFECT_SECRET_POWER 197
+#define MOVE_EFFECT_RECOIL_HIT_HARD 198
+#define MOVE_EFFECT_CONFUSE_ALL 199
+#define MOVE_EFFECT_BURN_HIT_HIGH_CRIT 200
+#define MOVE_EFFECT_MUD_SPORT 201
+#define MOVE_EFFECT_TOXIC_HIT 202
+#define MOVE_EFFECT_WEATHER_BALL 203
+#define MOVE_EFFECT_HIT_USER_SPATK_2_DOWN 204
+#define MOVE_EFFECT_ATTACK_DEFENSE_DOWN 205
+#define MOVE_EFFECT_DEFENSE_SPDEF_UP 206
+#define MOVE_EFFECT_SKY_UPPERCUT 207
+#define MOVE_EFFECT_ATTACK_DEFENSE_UP 208
+#define MOVE_EFFECT_POISON_HIT_HIGH_CRIT 209
+#define MOVE_EFFECT_WATER_SPORT 210
+#define MOVE_EFFECT_SPATK_SPDEF_UP 211
+#define MOVE_EFFECT_ATTACK_SPEED_UP 212
+#define MOVE_EFFECT_CAMOUFLAGE 213
+#define MOVE_EFFECT_ROOST 214
+#define MOVE_EFFECT_GRAVITY 215
+#define MOVE_EFFECT_MIRACLE_EYE 216
+#define MOVE_EFFECT_WAKE_UP_SLAP 217
+#define MOVE_EFFECT_HAMMER_ARM 218
+#define MOVE_EFFECT_GYRO_BALL 219
+#define MOVE_EFFECT_HEALING_WISH 220
+#define MOVE_EFFECT_BRINE 221
+#define MOVE_EFFECT_NATURAL_GIFT 222
+#define MOVE_EFFECT_FEINT 223
+#define MOVE_EFFECT_BUG_BITE 224
+#define MOVE_EFFECT_TAILWIND 225
+#define MOVE_EFFECT_ACUPRESSURE 226
+#define MOVE_EFFECT_METAL_BURST 227
+#define MOVE_EFFECT_U_TURN 228
+#define MOVE_EFFECT_CLOSE_COMBAT 229
+#define MOVE_EFFECT_PAYBACK 230
+#define MOVE_EFFECT_ASSURANCE 231
+#define MOVE_EFFECT_EMBARGO 232
+#define MOVE_EFFECT_FLING 233
+#define MOVE_EFFECT_PSYCHO_SHIFT 234
+#define MOVE_EFFECT_TRUMP_CARD 235
+#define MOVE_EFFECT_HEAL_BLOCK 236
+#define MOVE_EFFECT_CRUSH_GRIP 237
+#define MOVE_EFFECT_POWER_TRICK 238
+#define MOVE_EFFECT_GASTRO_ACID 239
+#define MOVE_EFFECT_LUCKY_CHANT 240
+#define MOVE_EFFECT_ME_FIRST 241
+#define MOVE_EFFECT_COPYCAT 242
+#define MOVE_EFFECT_POWER_SWAP 243
+#define MOVE_EFFECT_GUARD_SWAP 244
+#define MOVE_EFFECT_PUNISHMENT 245
+#define MOVE_EFFECT_LAST_RESORT 246
+#define MOVE_EFFECT_WORRY_SEED 247
+#define MOVE_EFFECT_SUCKER_PUNCH 248
+#define MOVE_EFFECT_TOXIC_SPIKES 249
+#define MOVE_EFFECT_HEART_SWAP 250
+#define MOVE_EFFECT_AQUA_RING 251
+#define MOVE_EFFECT_MAGNET_RISE 252
+#define MOVE_EFFECT_FLARE_BLITZ 253
+#define MOVE_EFFECT_STRUGGLE 254
+#define MOVE_EFFECT_DIVE 255
+#define MOVE_EFFECT_DIG 256
+#define MOVE_EFFECT_SURF 257
+#define MOVE_EFFECT_DEFOG 258
+#define MOVE_EFFECT_TRICK_ROOM 259
+#define MOVE_EFFECT_BLIZZARD 260
+#define MOVE_EFFECT_WHIRLPOOL 261
+#define MOVE_EFFECT_VOLT_TACKLE 262
+#define MOVE_EFFECT_BOUNCE 263
+#define MOVE_EFFECT_UNK264 264 // unused
+#define MOVE_EFFECT_CAPTIVATE 265
+#define MOVE_EFFECT_STEALTH_ROCK 266
+#define MOVE_EFFECT_CHATTER 267
+#define MOVE_EFFECT_JUDGMENT 268
+#define MOVE_EFFECT_HEAD_SMASH 269
+#define MOVE_EFFECT_LUNAR_DANCE 270
+#define MOVE_EFFECT_SEED_FLARE 271
+#define MOVE_EFFECT_SHADOW_FORCE 272
+#define MOVE_EFFECT_FIRE_FANG 273
+#define MOVE_EFFECT_ICE_FANG 274
+#define MOVE_EFFECT_THUNDER_FANG 275
+#define MOVE_EFFECT_CHARGE_BEAM 276
+
+
+#endif //POKEDIAMOND_BATTLE_H
diff --git a/include/constants/moves.h b/include/constants/moves.h
index bd658c17..b25e5f91 100644
--- a/include/constants/moves.h
+++ b/include/constants/moves.h
@@ -470,6 +470,10 @@
#define MOVE_OMINOUS_WIND 466
#define MOVE_SHADOW_FORCE 467
+#define CLASS_PHYSICAL 0
+#define CLASS_SPECIAL 1
+#define CLASS_STATUS 2
+
#define NUM_MOVES MOVE_SHADOW_FORCE
#endif //POKEDIAMOND_CONSTANTS_MOVES_H
diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h
index c83847c6..06a105b6 100644
--- a/include/constants/pokemon.h
+++ b/include/constants/pokemon.h
@@ -24,6 +24,13 @@
#define TYPE_DARK 17
#define NUMBER_OF_MON_TYPES 18
+// Contest types
+#define COOL 0
+#define BEAUTY 1
+#define CUTE 2
+#define SMART 3
+#define TOUGH 4
+
// Pokemon egg groups
#define EGG_GROUP_NONE 0
#define EGG_GROUP_MONSTER 1
@@ -88,185 +95,185 @@
#define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536
-#define MON_DATA_PERSONALITY 0
-#define MON_DATA_PARTY_LOCK 1
-#define MON_DATA_BOX_LOCK 2
-#define MON_DATA_CHECKSUM_FAILED 3
-#define MON_DATA_CHECKSUM 4
-#define MON_DATA_SPECIES 5
-#define MON_DATA_HELD_ITEM 6
-#define MON_DATA_OTID 7
-#define MON_DATA_EXPERIENCE 8
-#define MON_DATA_FRIENDSHIP 9
-#define MON_DATA_ABILITY 10
-#define MON_DATA_MARKINGS 11
-#define MON_DATA_GAME_LANGUAGE 12
-#define MON_DATA_HP_EV 13
-#define MON_DATA_ATK_EV 14
-#define MON_DATA_DEF_EV 15
-#define MON_DATA_SPEED_EV 16
-#define MON_DATA_SPATK_EV 17
-#define MON_DATA_SPDEF_EV 18
-#define MON_DATA_COOL 19
-#define MON_DATA_BEAUTY 20
-#define MON_DATA_CUTE 21
-#define MON_DATA_SMART 22
-#define MON_DATA_TOUGH 23
-#define MON_DATA_SHEEN 24
-#define MON_DATA_SINNOH_CHAMP_RIBBON 25
-#define MON_DATA_SINNOH_RIBBON_26 26
-#define MON_DATA_SINNOH_RIBBON_27 27
-#define MON_DATA_SINNOH_RIBBON_28 28
-#define MON_DATA_SINNOH_RIBBON_29 29
-#define MON_DATA_SINNOH_RIBBON_30 30
-#define MON_DATA_SINNOH_RIBBON_31 31
-#define MON_DATA_SINNOH_RIBBON_32 32
-#define MON_DATA_SINNOH_RIBBON_33 33
-#define MON_DATA_SINNOH_RIBBON_34 34
-#define MON_DATA_SINNOH_RIBBON_35 35
-#define MON_DATA_SINNOH_RIBBON_36 36
-#define MON_DATA_SINNOH_RIBBON_37 37
-#define MON_DATA_SINNOH_RIBBON_38 38
-#define MON_DATA_SINNOH_RIBBON_39 39
-#define MON_DATA_SINNOH_RIBBON_40 40
-#define MON_DATA_SINNOH_RIBBON_41 41
-#define MON_DATA_SINNOH_RIBBON_42 42
-#define MON_DATA_SINNOH_RIBBON_43 43
-#define MON_DATA_SINNOH_RIBBON_44 44
-#define MON_DATA_SINNOH_RIBBON_45 45
-#define MON_DATA_SINNOH_RIBBON_46 46
-#define MON_DATA_SINNOH_RIBBON_47 47
-#define MON_DATA_SINNOH_RIBBON_48 48
-#define MON_DATA_SINNOH_RIBBON_49 49
-#define MON_DATA_SINNOH_RIBBON_50 50
-#define MON_DATA_SINNOH_RIBBON_51 51
-#define MON_DATA_SINNOH_RIBBON_52 52
-#define MON_DATA_SINNOH_RIBBON_53 53
-#define MON_DATA_MOVE1 54
-#define MON_DATA_MOVE2 55
-#define MON_DATA_MOVE3 56
-#define MON_DATA_MOVE4 57
-#define MON_DATA_MOVE1PP 58
-#define MON_DATA_MOVE2PP 59
-#define MON_DATA_MOVE3PP 60
-#define MON_DATA_MOVE4PP 61
-#define MON_DATA_MOVE1PPUP 62
-#define MON_DATA_MOVE2PPUP 63
-#define MON_DATA_MOVE3PPUP 64
-#define MON_DATA_MOVE4PPUP 65
-#define MON_DATA_MOVE1MAXPP 66
-#define MON_DATA_MOVE2MAXPP 67
-#define MON_DATA_MOVE3MAXPP 68
-#define MON_DATA_MOVE4MAXPP 69
-#define MON_DATA_HP_IV 70
-#define MON_DATA_ATK_IV 71
-#define MON_DATA_DEF_IV 72
-#define MON_DATA_SPEED_IV 73
-#define MON_DATA_SPATK_IV 74
-#define MON_DATA_SPDEF_IV 75
-#define MON_DATA_IS_EGG 76
-#define MON_DATA_HAS_NICKNAME 77
-#define MON_DATA_COOL_RIBBON 78
-#define MON_DATA_HOENN_RIBBON_79 79
-#define MON_DATA_HOENN_RIBBON_80 80
-#define MON_DATA_HOENN_RIBBON_81 81
-#define MON_DATA_HOENN_RIBBON_82 82
-#define MON_DATA_HOENN_RIBBON_83 83
-#define MON_DATA_HOENN_RIBBON_84 84
-#define MON_DATA_HOENN_RIBBON_85 85
-#define MON_DATA_HOENN_RIBBON_86 86
-#define MON_DATA_HOENN_RIBBON_87 87
-#define MON_DATA_HOENN_RIBBON_88 88
-#define MON_DATA_HOENN_RIBBON_89 89
-#define MON_DATA_HOENN_RIBBON_90 90
-#define MON_DATA_HOENN_RIBBON_91 91
-#define MON_DATA_HOENN_RIBBON_92 92
-#define MON_DATA_HOENN_RIBBON_93 93
-#define MON_DATA_HOENN_RIBBON_94 94
-#define MON_DATA_HOENN_RIBBON_95 95
-#define MON_DATA_HOENN_RIBBON_96 96
-#define MON_DATA_HOENN_RIBBON_97 97
-#define MON_DATA_HOENN_RIBBON_98 98
-#define MON_DATA_HOENN_RIBBON_99 99
-#define MON_DATA_HOENN_RIBBON_100 100
-#define MON_DATA_HOENN_RIBBON_101 101
-#define MON_DATA_HOENN_RIBBON_102 102
-#define MON_DATA_HOENN_RIBBON_103 103
-#define MON_DATA_HOENN_RIBBON_104 104
-#define MON_DATA_HOENN_RIBBON_105 105
-#define MON_DATA_HOENN_RIBBON_106 106
-#define MON_DATA_HOENN_RIBBON_107 107
-#define MON_DATA_HOENN_RIBBON_108 108
-#define MON_DATA_HOENN_RIBBON_109 109
-#define MON_DATA_FATEFUL_ENCOUNTER 110
-#define MON_DATA_GENDER 111
-#define MON_DATA_FORME 112
-#define MON_DATA_RESERVED_113 113 // HGSS
-#define MON_DATA_RESERVED_114 114 // Plat
-#define MON_DATA_UNUSED_115 115
-#define MON_DATA_NICKNAME 116
-#define MON_DATA_NICKNAME_2 117
-#define MON_DATA_NICKNAME_3 118 // ???
-#define MON_DATA_NICKNAME_4 119 // ???
-#define MON_DATA_UNK_120 120
-#define MON_DATA_GAME_VERSION 121
-#define MON_DATA_SINNOH_RIBBON_122 122
-#define MON_DATA_SINNOH_RIBBON_123 123
-#define MON_DATA_SINNOH_RIBBON_124 124
-#define MON_DATA_SINNOH_RIBBON_125 125
-#define MON_DATA_SINNOH_RIBBON_126 126
-#define MON_DATA_SINNOH_RIBBON_127 127
-#define MON_DATA_SINNOH_RIBBON_128 128
-#define MON_DATA_SINNOH_RIBBON_129 129
-#define MON_DATA_SINNOH_RIBBON_130 130
-#define MON_DATA_SINNOH_RIBBON_131 131
-#define MON_DATA_SINNOH_RIBBON_132 132
-#define MON_DATA_SINNOH_RIBBON_133 133
-#define MON_DATA_SINNOH_RIBBON_134 134
-#define MON_DATA_SINNOH_RIBBON_135 135
-#define MON_DATA_SINNOH_RIBBON_136 136
-#define MON_DATA_SINNOH_RIBBON_137 137
-#define MON_DATA_SINNOH_RIBBON_138 138
-#define MON_DATA_SINNOH_RIBBON_139 139
-#define MON_DATA_SINNOH_RIBBON_140 140
-#define MON_DATA_SINNOH_RIBBON_141 141
-#define MON_DATA_SINNOH_RIBBON_142 142
-#define MON_DATA_OT_NAME 143
-#define MON_DATA_OT_NAME_2 144 // ???
-#define MON_DATA_EGG_MET_YEAR 145
-#define MON_DATA_EGG_MET_MONTH 146
-#define MON_DATA_EGG_MET_DAY 147
-#define MON_DATA_MET_YEAR 148
-#define MON_DATA_MET_MONTH 149
-#define MON_DATA_MET_DAY 150
-#define MON_DATA_EGG_MET_LOCATION 151
-#define MON_DATA_MET_LOCATION 152
-#define MON_DATA_POKERUS 153
-#define MON_DATA_POKEBALL 154
-#define MON_DATA_MET_LEVEL 155
-#define MON_DATA_MET_GENDER 156
-#define MON_DATA_ENCOUNTER_TYPE 157
-#define MON_DATA_RESERVED_158 158 // HGSS
-#define MON_DATA_STATUS 159
-#define MON_DATA_LEVEL 160
-#define MON_DATA_CAPSULE 161
-#define MON_DATA_HP 162
-#define MON_DATA_MAXHP 163
-#define MON_DATA_ATK 164
-#define MON_DATA_DEF 165
-#define MON_DATA_SPEED 166
-#define MON_DATA_SPATK 167
-#define MON_DATA_SPDEF 168
-#define MON_DATA_SEAL_STRUCT 169
-#define MON_DATA_SEAL_COORDS 170
-#define MON_DATA_SPECIES_EXISTS 171
-#define MON_DATA_SANITY_IS_EGG 172
-#define MON_DATA_SPECIES2 173
-#define MON_DATA_IVS_WORD 174
-#define MON_DATA_UNK_175 175
-#define MON_DATA_TYPE_1 176
-#define MON_DATA_TYPE_2 177
-#define MON_DATA_SPECIES_NAME 178
+#define MON_DATA_PERSONALITY 0
+#define MON_DATA_PARTY_LOCK 1
+#define MON_DATA_BOX_LOCK 2
+#define MON_DATA_CHECKSUM_FAILED 3
+#define MON_DATA_CHECKSUM 4
+#define MON_DATA_SPECIES 5
+#define MON_DATA_HELD_ITEM 6
+#define MON_DATA_OTID 7
+#define MON_DATA_EXPERIENCE 8
+#define MON_DATA_FRIENDSHIP 9
+#define MON_DATA_ABILITY 10
+#define MON_DATA_MARKINGS 11
+#define MON_DATA_GAME_LANGUAGE 12
+#define MON_DATA_HP_EV 13
+#define MON_DATA_ATK_EV 14
+#define MON_DATA_DEF_EV 15
+#define MON_DATA_SPEED_EV 16
+#define MON_DATA_SPATK_EV 17
+#define MON_DATA_SPDEF_EV 18
+#define MON_DATA_COOL 19
+#define MON_DATA_BEAUTY 20
+#define MON_DATA_CUTE 21
+#define MON_DATA_SMART 22
+#define MON_DATA_TOUGH 23
+#define MON_DATA_SHEEN 24
+#define MON_DATA_SINNOH_CHAMP_RIBBON 25
+#define MON_DATA_ABILITY_RIBBON 26
+#define MON_DATA_GREAT_ABILITY_RIBBON 27
+#define MON_DATA_DOUBLE_ABILITY_RIBBON 28
+#define MON_DATA_MULTI_ABILITY_RIBBON 29
+#define MON_DATA_PAIR_ABILITY_RIBBON 30
+#define MON_DATA_WORLD_ABILITY_RIBBON 31
+#define MON_DATA_ALERT_RIBBON 32
+#define MON_DATA_SHOCK_RIBBON 33
+#define MON_DATA_DOWNCAST_RIBBON 34
+#define MON_DATA_CARELESS_RIBBON 35
+#define MON_DATA_RELAX_RIBBON 36
+#define MON_DATA_SNOOZE_RIBBON 37
+#define MON_DATA_SMILE_RIBBON 38
+#define MON_DATA_GORGEOUS_RIBBON 39
+#define MON_DATA_ROYAL_RIBBON 40
+#define MON_DATA_GORGEOUS_ROYAL_RIBBON 41
+#define MON_DATA_FOOTPRINT_RIBBON 42
+#define MON_DATA_RECORD_RIBBON 43
+#define MON_DATA_HISTORY_RIBBON 44
+#define MON_DATA_LEGEND_RIBBON 45
+#define MON_DATA_RED_RIBBON 46
+#define MON_DATA_GREEN_RIBBON 47
+#define MON_DATA_BLUE_RIBBON 48
+#define MON_DATA_FESTIVAL_RIBBON 49
+#define MON_DATA_CARNIVAL_RIBBON 50
+#define MON_DATA_CLASSIC_RIBBON 51
+#define MON_DATA_PREMIER_RIBBON 52
+#define MON_DATA_SINNOH_RIBBON_53 53
+#define MON_DATA_MOVE1 54
+#define MON_DATA_MOVE2 55
+#define MON_DATA_MOVE3 56
+#define MON_DATA_MOVE4 57
+#define MON_DATA_MOVE1PP 58
+#define MON_DATA_MOVE2PP 59
+#define MON_DATA_MOVE3PP 60
+#define MON_DATA_MOVE4PP 61
+#define MON_DATA_MOVE1PPUP 62
+#define MON_DATA_MOVE2PPUP 63
+#define MON_DATA_MOVE3PPUP 64
+#define MON_DATA_MOVE4PPUP 65
+#define MON_DATA_MOVE1MAXPP 66
+#define MON_DATA_MOVE2MAXPP 67
+#define MON_DATA_MOVE3MAXPP 68
+#define MON_DATA_MOVE4MAXPP 69
+#define MON_DATA_HP_IV 70
+#define MON_DATA_ATK_IV 71
+#define MON_DATA_DEF_IV 72
+#define MON_DATA_SPEED_IV 73
+#define MON_DATA_SPATK_IV 74
+#define MON_DATA_SPDEF_IV 75
+#define MON_DATA_IS_EGG 76
+#define MON_DATA_HAS_NICKNAME 77
+#define MON_DATA_HOENN_COOL_RIBBON 78
+#define MON_DATA_HOENN_COOL_RIBBON_SUPER 79
+#define MON_DATA_HOENN_COOL_RIBBON_HYPER 80
+#define MON_DATA_HOENN_COOL_RIBBON_MASTER 81
+#define MON_DATA_HOENN_BEAUTY_RIBBON 82
+#define MON_DATA_HOENN_BEAUTY_RIBBON_SUPER 83
+#define MON_DATA_HOENN_BEAUTY_RIBBON_HYPER 84
+#define MON_DATA_HOENN_BEAUTY_RIBBON_MASTER 85
+#define MON_DATA_HOENN_CUTE_RIBBON 86
+#define MON_DATA_HOENN_CUTE_RIBBON_SUPER 87
+#define MON_DATA_HOENN_CUTE_RIBBON_HYPER 88
+#define MON_DATA_HOENN_CUTE_RIBBON_MASTER 89
+#define MON_DATA_HOENN_SMART_RIBBON 90
+#define MON_DATA_HOENN_SMART_RIBBON_SUPER 91
+#define MON_DATA_HOENN_SMART_RIBBON_HYPER 92
+#define MON_DATA_HOENN_SMART_RIBBON_MASTER 93
+#define MON_DATA_HOENN_TOUGH_RIBBON 94
+#define MON_DATA_HOENN_TOUGH_RIBBON_SUPER 95
+#define MON_DATA_HOENN_TOUGH_RIBBON_HYPER 96
+#define MON_DATA_HOENN_TOUGH_RIBBON_MASTER 97
+#define MON_DATA_HOENN_CHAMPION_RIBBON 98
+#define MON_DATA_HOENN_WINNING_RIBBON 99
+#define MON_DATA_HOENN_VICTORY_RIBBON 100
+#define MON_DATA_HOENN_ARTIST_RIBBON 101
+#define MON_DATA_HOENN_EFFORT_RIBBON 102
+#define MON_DATA_HOENN_MARINE_RIBBON 103
+#define MON_DATA_HOENN_LAND_RIBBON 104
+#define MON_DATA_HOENN_SKY_RIBBON 105
+#define MON_DATA_HOENN_COUNTRY_RIBBON 106
+#define MON_DATA_HOENN_NATIONAL_RIBBON 107
+#define MON_DATA_HOENN_EARTH_RIBBON 108
+#define MON_DATA_HOENN_WORLD_RIBBON 109
+#define MON_DATA_FATEFUL_ENCOUNTER 110
+#define MON_DATA_GENDER 111
+#define MON_DATA_FORME 112
+#define MON_DATA_RESERVED_113 113 // HGSS
+#define MON_DATA_RESERVED_114 114 // Plat
+#define MON_DATA_UNUSED_115 115
+#define MON_DATA_NICKNAME 116
+#define MON_DATA_NICKNAME_2 117
+#define MON_DATA_NICKNAME_3 118 // ???
+#define MON_DATA_NICKNAME_4 119 // ???
+#define MON_DATA_UNK_120 120
+#define MON_DATA_GAME_VERSION 121
+#define MON_DATA_COOL_RIBBON 122
+#define MON_DATA_COOL_RIBBON_GREAT 123
+#define MON_DATA_COOL_RIBBON_ULTRA 124
+#define MON_DATA_COOL_RIBBON_MASTER 125
+#define MON_DATA_BEAUTY_RIBBON 126
+#define MON_DATA_BEAUTY_RIBBON_GREAT 127
+#define MON_DATA_BEAUTY_RIBBON_ULTRA 128
+#define MON_DATA_BEAUTY_RIBBON_MASTER 129
+#define MON_DATA_CUTE_RIBBON 130
+#define MON_DATA_CUTE_RIBBON_GREAT 131
+#define MON_DATA_CUTE_RIBBON_ULTRA 132
+#define MON_DATA_CUTE_RIBBON_MASTER 133
+#define MON_DATA_SMART_RIBBON 134
+#define MON_DATA_SMART_RIBBON_GREAT 135
+#define MON_DATA_SMART_RIBBON_ULTRA 136
+#define MON_DATA_SMART_RIBBON_MASTER 137
+#define MON_DATA_TOUGH_RIBBON 138
+#define MON_DATA_TOUGH_RIBBON_GREAT 139
+#define MON_DATA_TOUGH_RIBBON_ULTRA 140
+#define MON_DATA_TOUGH_RIBBON_MASTER 141
+#define MON_DATA_SINNOH_RIBBON_142 142
+#define MON_DATA_OT_NAME 143
+#define MON_DATA_OT_NAME_2 144 // ???
+#define MON_DATA_EGG_MET_YEAR 145
+#define MON_DATA_EGG_MET_MONTH 146
+#define MON_DATA_EGG_MET_DAY 147
+#define MON_DATA_MET_YEAR 148
+#define MON_DATA_MET_MONTH 149
+#define MON_DATA_MET_DAY 150
+#define MON_DATA_EGG_MET_LOCATION 151
+#define MON_DATA_MET_LOCATION 152
+#define MON_DATA_POKERUS 153
+#define MON_DATA_POKEBALL 154
+#define MON_DATA_MET_LEVEL 155
+#define MON_DATA_MET_GENDER 156
+#define MON_DATA_ENCOUNTER_TYPE 157
+#define MON_DATA_RESERVED_158 158 // HGSS
+#define MON_DATA_STATUS 159
+#define MON_DATA_LEVEL 160
+#define MON_DATA_CAPSULE 161
+#define MON_DATA_HP 162
+#define MON_DATA_MAXHP 163
+#define MON_DATA_ATK 164
+#define MON_DATA_DEF 165
+#define MON_DATA_SPEED 166
+#define MON_DATA_SPATK 167
+#define MON_DATA_SPDEF 168
+#define MON_DATA_SEAL_STRUCT 169
+#define MON_DATA_SEAL_COORDS 170
+#define MON_DATA_SPECIES_EXISTS 171
+#define MON_DATA_SANITY_IS_EGG 172
+#define MON_DATA_SPECIES2 173
+#define MON_DATA_IVS_WORD 174
+#define MON_DATA_UNK_175 175
+#define MON_DATA_TYPE_1 176
+#define MON_DATA_TYPE_2 177
+#define MON_DATA_SPECIES_NAME 178
#define MON_RATIO_MALE 0
#define MON_RATIO_EIGHTH 31
diff --git a/include/main.h b/include/main.h
index a01f06ce..fa31953c 100644
--- a/include/main.h
+++ b/include/main.h
@@ -97,8 +97,8 @@ void NitroMain(void);
extern struct Unk21C48B8 gMain;
void FUN_02000DF4(void);
-void FUN_02000E0C(void);
-void FUN_02000E7C(FSOverlayID id, struct Unk21DBE18 * arg1);
+void Main_RunOverlayManager(void);
+void RegisterMainOverlay(FSOverlayID id, struct Unk21DBE18 * arg1);
void FUN_02000E9C(void);
void FUN_02000EC8(u32 parameter);
void FUN_02000EE8(void);
diff --git a/include/move_data.h b/include/move_data.h
index a970e1bf..9f8656d7 100644
--- a/include/move_data.h
+++ b/include/move_data.h
@@ -4,7 +4,7 @@
struct WazaTbl
{
u16 effect;
- u8 unk2;
+ u8 class;
u8 power;
u8 type;
u8 accuracy;
@@ -20,7 +20,7 @@ struct WazaTbl
typedef enum MoveAttr {
MOVEATTR_EFFECT = 0,
- MOVEATTR_UNK1,
+ MOVEATTR_CLASS,
MOVEATTR_POWER,
MOVEATTR_TYPE,
MOVEATTR_ACCURACY,
diff --git a/include/player_data.h b/include/player_data.h
index 28133f43..bd9cd3b9 100644
--- a/include/player_data.h
+++ b/include/player_data.h
@@ -12,7 +12,7 @@ struct PlayerData
/* 0x10 */ u32 playerId;
/* 0x14 */ u32 money;
/* 0x18 */ u8 gender;
- /* 0x19 */ u8 language;
+ /* 0x19 */ u8 country;
/* 0x1A */ u8 badges;
/* 0x1B */ u8 avatar;
/* 0x1C */ u8 field_1C;
diff --git a/include/pokemon.h b/include/pokemon.h
index d3be0c34..ed62c18e 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -9,7 +9,7 @@
#include "seals.h"
#include "constants/pokemon.h"
#include "string16.h"
-#include "save_block_2.h"
+#include "player_data.h"
struct BaseStats {
/* 0x00 */ u8 hp;
@@ -305,6 +305,6 @@ u16 GetLegendaryMon(u32 idx);
BOOL FUN_0206A998(struct Pokemon * pokemon);
BOOL FUN_0206A9AC(struct BoxPokemon * boxmon, struct PlayerData * sb2, u32 heap_id);
void FUN_0206AA84(struct Pokemon * pokemon);
-void FUN_0206AAB4(struct BoxPokemon * boxmon);
+void RestoreBoxMonPP(struct BoxPokemon * boxmon);
#endif //POKEDIAMOND_POKEMON_H
diff --git a/include/save_block_2.h b/include/save_block_2.h
index 5257b11d..304469c7 100644
--- a/include/save_block_2.h
+++ b/include/save_block_2.h
@@ -2,7 +2,6 @@
#define POKEDIAMOND_SAVE_BLOCK_2_H
#include "MATH_crc.h"
-#include "player_data.h"
struct SavArrayHeader
{
diff --git a/include/script.h b/include/script.h
index 7c4dae6d..8fd7696f 100644
--- a/include/script.h
+++ b/include/script.h
@@ -24,7 +24,7 @@ struct ScriptContext
u32 unk74;
struct MsgData * unk78;
u8 *unk7C;
- struct SaveBlock2 * unk80;
+ struct UnkStruct_0204639C * unk80;
};
#define ScriptReadByte(ctx) (*(ctx->scriptPtr++))
diff --git a/include/sound.h b/include/sound.h
index 9cec824d..9b50542f 100644
--- a/include/sound.h
+++ b/include/sound.h
@@ -3,7 +3,7 @@
#include "FS_file.h"
#include "sdat.h"
-#include "save_block_2.h"
+#include "player_data.h"
struct SoundData
{
diff --git a/include/unk_0207FC5C.h b/include/unk_0207FC5C.h
new file mode 100644
index 00000000..0e26f38e
--- /dev/null
+++ b/include/unk_0207FC5C.h
@@ -0,0 +1,89 @@
+#ifndef POKEDIAMOND_UNK_0207FC5C_H
+#define POKEDIAMOND_UNK_0207FC5C_H
+
+#define RIBBON_HOENN_CHAMPION 0
+#define RIBBON_HOENN_COOL 1
+#define RIBBON_HOENN_COOL_SUPER 2
+#define RIBBON_HOENN_COOL_HYPER 3
+#define RIBBON_HOENN_COOL_MASTER 4
+#define RIBBON_HOENN_BEAUTY 5
+#define RIBBON_HOENN_BEAUTY_SUPER 6
+#define RIBBON_HOENN_BEAUTY_HYPER 7
+#define RIBBON_HOENN_BEAUTY_MASTER 8
+#define RIBBON_HOENN_CUTE 9
+#define RIBBON_HOENN_CUTE_SUPER 10
+#define RIBBON_HOENN_CUTE_HYPER 11
+#define RIBBON_HOENN_CUTE_MASTER 12
+#define RIBBON_HOENN_SMART 13
+#define RIBBON_HOENN_SMART_SUPER 14
+#define RIBBON_HOENN_SMART_HYPER 15
+#define RIBBON_HOENN_SMART_MASTER 16
+#define RIBBON_HOENN_TOUGH 17
+#define RIBBON_HOENN_TOUGH_SUPER 18
+#define RIBBON_HOENN_TOUGH_HYPER 19
+#define RIBBON_HOENN_TOUGH_MASTER 20
+#define RIBBON_HOENN_WINNING 21
+#define RIBBON_HOENN_VICTORY 22
+#define RIBBON_HOENN_ARTIST 23
+#define RIBBON_HOENN_EFFORT 24
+#define RIBBON_HOENN_MARINE 25
+#define RIBBON_HOENN_LAND 26
+#define RIBBON_HOENN_SKY 27
+#define RIBBON_HOENN_COUNTRY 28
+#define RIBBON_HOENN_NATIONAL 29
+#define RIBBON_HOENN_EARTH 30
+#define RIBBON_HOENN_WORLD 31
+#define RIBBON_SINNOH_CHAMP 32
+#define RIBBON_COOL 33
+#define RIBBON_COOL_GREAT 34
+#define RIBBON_COOL_ULTRA 35
+#define RIBBON_COOL_MASTER 36
+#define RIBBON_BEAUTY 37
+#define RIBBON_BEAUTY_GREAT 38
+#define RIBBON_BEAUTY_ULTRA 39
+#define RIBBON_BEAUTY_MASTER 40
+#define RIBBON_CUTE 41
+#define RIBBON_CUTE_GREAT 42
+#define RIBBON_CUTE_ULTRA 43
+#define RIBBON_CUTE_MASTER 44
+#define RIBBON_SMART 45
+#define RIBBON_SMART_GREAT 46
+#define RIBBON_SMART_ULTRA 47
+#define RIBBON_SMART_MASTER 48
+#define RIBBON_TOUGH 49
+#define RIBBON_TOUGH_GREAT 50
+#define RIBBON_TOUGH_ULTRA 51
+#define RIBBON_TOUGH_MASTER 52
+#define RIBBON_ABILITY 53
+#define RIBBON_GREAT_ABILITY 54
+#define RIBBON_DOUBLE_ABILITY 55
+#define RIBBON_MULTI_ABILITY 56
+#define RIBBON_PAIR_ABILITY 57
+#define RIBBON_WORLD_ABILITY 58
+#define RIBBON_ALERT 59
+#define RIBBON_SHOCK 60
+#define RIBBON_DOWNCAST 61
+#define RIBBON_CARELESS 62
+#define RIBBON_RELAX 63
+#define RIBBON_SNOOZE 64
+#define RIBBON_SMILE 65
+#define RIBBON_GORGEOUS 66
+#define RIBBON_ROYAL 67
+#define RIBBON_GORGEOUS_ROYAL 68
+#define RIBBON_FOOTPRINT 69
+#define RIBBON_RECORD 70
+#define RIBBON_HISTORY 71
+#define RIBBON_LEGEND 72
+#define RIBBON_RED 73
+#define RIBBON_GREEN 74
+#define RIBBON_BLUE 75
+#define RIBBON_FESTIVAL 76
+#define RIBBON_CARNIVAL 77
+#define RIBBON_CLASSIC 78
+#define RIBBON_PREMIER 79
+
+u32 FUN_0207FC5C(u8 a0, u32 a1);
+int FUN_0207FCC0(u8 * a0, u32 a1);
+u8 FUN_0207FCE0(u32 a0);
+
+#endif //POKEDIAMOND_UNK_0207FC5C_H