summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/alloc.h (renamed from include/malloc.h)6
-rw-r--r--include/battle.h4
-rw-r--r--include/battle_anim.h7
-rw-r--r--include/battle_setup.h2
-rw-r--r--include/constants/battle_setup.h2
-rw-r--r--include/constants/battle_string_ids.h746
-rw-r--r--include/constants/pokemon.h2
-rw-r--r--include/constants/weather.h1
-rw-r--r--include/event_scripts.h6
-rw-r--r--include/field_fadetransition.h12
-rw-r--r--include/field_screen.h24
-rw-r--r--include/field_screen_effect.h38
-rw-r--r--include/field_weather.h156
-rw-r--r--include/gba/isagbprint.h18
-rw-r--r--include/global.fieldmap.h4
-rw-r--r--include/global.h10
-rw-r--r--include/graphics.h10
-rw-r--r--include/menu.h1
-rw-r--r--include/overworld.h2
-rwxr-xr-xinclude/pokemon_summary_screen.h8
-rwxr-xr-xinclude/roulette.h34
-rw-r--r--include/roulette_util.h39
-rw-r--r--include/save.h6
-rw-r--r--include/shop.h22
-rw-r--r--include/strings.h76
-rw-r--r--include/trainer_see.h2
26 files changed, 692 insertions, 546 deletions
diff --git a/include/malloc.h b/include/alloc.h
index c215f56c0..f2dcf6d46 100644
--- a/include/malloc.h
+++ b/include/alloc.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_MALLOC_H
-#define GUARD_MALLOC_H
+#ifndef GUARD_ALLOC_H
+#define GUARD_ALLOC_H
#define HEAP_SIZE 0x1C000
#define malloc Alloc
@@ -19,4 +19,4 @@ void *AllocZeroed(u32 size);
void Free(void *pointer);
void InitHeap(void *pointer, u32 size);
-#endif // GUARD_MALLOC_H
+#endif // GUARD_ALLOC_H
diff --git a/include/battle.h b/include/battle.h
index c4a0fe9a5..9e67e8ec5 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -479,10 +479,10 @@ struct BattleStruct
u16 changedItems[MAX_BATTLERS_COUNT];
u8 intimidateBattler;
u8 switchInItemsCounter;
- u8 field_DA;
+ u8 arenaTurnCounter;
u8 turnSideTracker;
u8 fillerDC[0xDF-0xDC];
- u8 field_DF;
+ u8 givenExpMons; // Bits for enemy party's pokemon that gave exp to player's party.
u8 lastTakenMoveFrom[MAX_BATTLERS_COUNT * MAX_BATTLERS_COUNT * 2]; // a 3-D array [target][attacker][byte]
u16 castformPalette[MAX_BATTLERS_COUNT][16];
u8 field_180;
diff --git a/include/battle_anim.h b/include/battle_anim.h
index c3601bbd9..fa4058c1b 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -3,6 +3,7 @@
#include "battle.h"
#include "constants/battle_anim.h"
+#include "task.h"
enum
{
@@ -124,6 +125,12 @@ void sub_80A6D60(struct UnknownAnimStruct2*, const void*, u32);
void sub_80A6CC0(u32, const void*, u32);
void sub_80A6DAC(bool8);
void sub_80A634C(struct Sprite *);
+void sub_80A653C(struct Sprite *);
+void sub_80A7E6C(u8 spriteId);
+void sub_80A805C(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7);
+u8 sub_80A80C8(struct Task *task);
+void sub_80A8EE4(struct Sprite *);
+void sub_80A67F4(struct Sprite *);
enum
{
diff --git a/include/battle_setup.h b/include/battle_setup.h
index 98c366acd..3b327e3f7 100644
--- a/include/battle_setup.h
+++ b/include/battle_setup.h
@@ -38,7 +38,7 @@ void ConfigureAndSetUpOneTrainerBattle(u8 trainerEventObjId, const u8 *trainerSc
void ConfigureTwoTrainersBattle(u8 trainerEventObjId, const u8 *trainerScript);
void SetUpTwoTrainersBattle(void);
bool32 GetTrainerFlagFromScriptPointer(const u8 *data);
-void sub_80B16D8(void);
+void SetUpTrainerMovement(void);
u8 GetTrainerBattleMode(void);
bool8 GetTrainerFlag(void);
bool8 HasTrainerBeenFought(u16 trainerId);
diff --git a/include/constants/battle_setup.h b/include/constants/battle_setup.h
index 329bfa650..d98e1762f 100644
--- a/include/constants/battle_setup.h
+++ b/include/constants/battle_setup.h
@@ -10,7 +10,7 @@
#define TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE 6
#define TRAINER_BATTLE_REMATCH_DOUBLE 7
#define TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC 8
-#define TRAINER_BATTLE_9 9
+#define TRAINER_BATTLE_PYRAMID 9
#define TRAINER_BATTLE_SET_TRAINER_A 10
#define TRAINER_BATTLE_SET_TRAINER_B 11
#define TRAINER_BATTLE_12 12
diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h
index db9ed59bd..9e0d8e0be 100644
--- a/include/constants/battle_string_ids.h
+++ b/include/constants/battle_string_ids.h
@@ -5,382 +5,382 @@
#define BATTLESTRINGS_ID_ADDER 12 // all battlestrings have its ID + 12, because first 5 are reserved
-#define STRINGID_INTROMSG 0
+#define STRINGID_INTROMSG 0
#define STRINGID_INTROSENDOUT 1
-#define STRINGID_RETURNMON 2
+#define STRINGID_RETURNMON 2
#define STRINGID_SWITCHINMON 3
-#define STRINGID_USEDMOVE 4
-#define STRINGID_BATTLEEND 5
+#define STRINGID_USEDMOVE 4
+#define STRINGID_BATTLEEND 5
// todo: make some of those names less vague: attacker/target vs pkmn, etc.
-#define STRINGID_TRAINER1LOSETEXT 12
-#define STRINGID_PKMNGAINEDEXP 13
-#define STRINGID_PKMNGREWTOLV 14
-#define STRINGID_PKMNLEARNEDMOVE 15
-#define STRINGID_TRYTOLEARNMOVE1 16
-#define STRINGID_TRYTOLEARNMOVE2 17
-#define STRINGID_TRYTOLEARNMOVE3 18
-#define STRINGID_PKMNFORGOTMOVE 19
-#define STRINGID_STOPLEARNINGMOVE 20
-#define STRINGID_DIDNOTLEARNMOVE 21
-#define STRINGID_PKMNLEARNEDMOVE2 22
-#define STRINGID_ATTACKMISSED 23
-#define STRINGID_PKMNPROTECTEDITSELF 24
-#define STRINGID_STATSWONTINCREASE2 25
-#define STRINGID_AVOIDEDDAMAGE 26
-#define STRINGID_ITDOESNTAFFECT 27
-#define STRINGID_ATTACKERFAINTED 28
-#define STRINGID_TARGETFAINTED 29
-#define STRINGID_PLAYERGOTMONEY 30
-#define STRINGID_PLAYERWHITEOUT 31
-#define STRINGID_PLAYERWHITEOUT2 32
-#define STRINGID_PREVENTSESCAPE 33
-#define STRINGID_HITXTIMES 34
-#define STRINGID_PKMNFELLASLEEP 35
-#define STRINGID_PKMNMADESLEEP 36
-#define STRINGID_PKMNALREADYASLEEP 37
-#define STRINGID_PKMNALREADYASLEEP2 38
-#define STRINGID_PKMNWASNTAFFECTED 39
-#define STRINGID_PKMNWASPOISONED 40
-#define STRINGID_PKMNPOISONEDBY 41
-#define STRINGID_PKMNHURTBYPOISON 42
-#define STRINGID_PKMNALREADYPOISONED 43
-#define STRINGID_PKMNBADLYPOISONED 44
-#define STRINGID_PKMNENERGYDRAINED 45
-#define STRINGID_PKMNWASBURNED 46
-#define STRINGID_PKMNBURNEDBY 47
-#define STRINGID_PKMNHURTBYBURN 48
-#define STRINGID_PKMNWASFROZEN 49
-#define STRINGID_PKMNFROZENBY 50
-#define STRINGID_PKMNISFROZEN 51
-#define STRINGID_PKMNWASDEFROSTED 52
-#define STRINGID_PKMNWASDEFROSTED2 53
-#define STRINGID_PKMNWASDEFROSTEDBY 54
-#define STRINGID_PKMNWASPARALYZED 55
-#define STRINGID_PKMNWASPARALYZEDBY 56
-#define STRINGID_PKMNISPARALYZED 57
-#define STRINGID_PKMNISALREADYPARALYZED 58
-#define STRINGID_PKMNHEALEDPARALYSIS 59
-#define STRINGID_PKMNDREAMEATEN 60
-#define STRINGID_STATSWONTINCREASE 61
-#define STRINGID_STATSWONTDECREASE 62
-#define STRINGID_TEAMSTOPPEDWORKING 63
-#define STRINGID_FOESTOPPEDWORKING 64
-#define STRINGID_PKMNISCONFUSED 65
-#define STRINGID_PKMNHEALEDCONFUSION 66
-#define STRINGID_PKMNWASCONFUSED 67
-#define STRINGID_PKMNALREADYCONFUSED 68
-#define STRINGID_PKMNFELLINLOVE 69
-#define STRINGID_PKMNINLOVE 70
-#define STRINGID_PKMNIMMOBILIZEDBYLOVE 71
-#define STRINGID_PKMNBLOWNAWAY 72
-#define STRINGID_PKMNCHANGEDTYPE 73
-#define STRINGID_PKMNFLINCHED 74
-#define STRINGID_PKMNREGAINEDHEALTH 75
-#define STRINGID_PKMNHPFULL 76
-#define STRINGID_PKMNRAISEDSPDEF 77
-#define STRINGID_PKMNRAISEDDEF 78
-#define STRINGID_PKMNCOVEREDBYVEIL 79
-#define STRINGID_PKMNUSEDSAFEGUARD 80
-#define STRINGID_PKMNSAFEGUARDEXPIRED 81
-#define STRINGID_PKMNWENTTOSLEEP 82
-#define STRINGID_PKMNSLEPTHEALTHY 83
-#define STRINGID_PKMNWHIPPEDWHIRLWIND 84
-#define STRINGID_PKMNTOOKSUNLIGHT 85
-#define STRINGID_PKMNLOWEREDHEAD 86
-#define STRINGID_PKMNISGLOWING 87
-#define STRINGID_PKMNFLEWHIGH 88
-#define STRINGID_PKMNDUGHOLE 89
-#define STRINGID_PKMNSQUEEZEDBYBIND 90
-#define STRINGID_PKMNTRAPPEDINVORTEX 91
-#define STRINGID_PKMNWRAPPEDBY 92
-#define STRINGID_PKMNCLAMPED 93
-#define STRINGID_PKMNHURTBY 94
-#define STRINGID_PKMNFREEDFROM 95
-#define STRINGID_PKMNCRASHED 96
-#define STRINGID_PKMNSHROUDEDINMIST 97
-#define STRINGID_PKMNPROTECTEDBYMIST 98
-#define STRINGID_PKMNGETTINGPUMPED 99
-#define STRINGID_PKMNHITWITHRECOIL 100
-#define STRINGID_PKMNPROTECTEDITSELF2 101
-#define STRINGID_PKMNBUFFETEDBYSANDSTORM 102
-#define STRINGID_PKMNPELTEDBYHAIL 103
-#define STRINGID_PKMNSEEDED 104
-#define STRINGID_PKMNEVADEDATTACK 105
-#define STRINGID_PKMNSAPPEDBYLEECHSEED 106
-#define STRINGID_PKMNFASTASLEEP 107
-#define STRINGID_PKMNWOKEUP 108
-#define STRINGID_PKMNUPROARKEPTAWAKE 109
-#define STRINGID_PKMNWOKEUPINUPROAR 110
-#define STRINGID_PKMNCAUSEDUPROAR 111
-#define STRINGID_PKMNMAKINGUPROAR 112
-#define STRINGID_PKMNCALMEDDOWN 113
-#define STRINGID_PKMNCANTSLEEPINUPROAR 114
-#define STRINGID_PKMNSTOCKPILED 115
-#define STRINGID_PKMNCANTSTOCKPILE 116
-#define STRINGID_PKMNCANTSLEEPINUPROAR2 117
-#define STRINGID_UPROARKEPTPKMNAWAKE 118
-#define STRINGID_PKMNSTAYEDAWAKEUSING 119
-#define STRINGID_PKMNSTORINGENERGY 120
-#define STRINGID_PKMNUNLEASHEDENERGY 121
-#define STRINGID_PKMNFATIGUECONFUSION 122
-#define STRINGID_PKMNPICKEDUPITEM 123
-#define STRINGID_PKMNUNAFFECTED 124
-#define STRINGID_PKMNTRANSFORMEDINTO 125
-#define STRINGID_PKMNMADESUBSTITUTE 126
-#define STRINGID_PKMNHASSUBSTITUTE 127
-#define STRINGID_SUBSTITUTEDAMAGED 128
-#define STRINGID_PKMNSUBSTITUTEFADED 129
-#define STRINGID_PKMNMUSTRECHARGE 130
-#define STRINGID_PKMNRAGEBUILDING 131
-#define STRINGID_PKMNMOVEWASDISABLED 132
-#define STRINGID_PKMNMOVEISDISABLED 133
-#define STRINGID_PKMNMOVEDISABLEDNOMORE 134
-#define STRINGID_PKMNGOTENCORE 135
-#define STRINGID_PKMNENCOREENDED 136
-#define STRINGID_PKMNTOOKAIM 137
-#define STRINGID_PKMNSKETCHEDMOVE 138
-#define STRINGID_PKMNTRYINGTOTAKEFOE 139
-#define STRINGID_PKMNTOOKFOE 140
-#define STRINGID_PKMNREDUCEDPP 141
-#define STRINGID_PKMNSTOLEITEM 142
-#define STRINGID_TARGETCANTESCAPENOW 143
-#define STRINGID_PKMNFELLINTONIGHTMARE 144
-#define STRINGID_PKMNLOCKEDINNIGHTMARE 145
-#define STRINGID_PKMNLAIDCURSE 146
-#define STRINGID_PKMNAFFLICTEDBYCURSE 147
-#define STRINGID_SPIKESSCATTERED 148
-#define STRINGID_PKMNHURTBYSPIKES 149
-#define STRINGID_PKMNIDENTIFIED 150
-#define STRINGID_PKMNPERISHCOUNTFELL 151
-#define STRINGID_PKMNBRACEDITSELF 152
-#define STRINGID_PKMNENDUREDHIT 153
-#define STRINGID_MAGNITUDESTRENGTH 154
-#define STRINGID_PKMNCUTHPMAXEDATTACK 155
-#define STRINGID_PKMNCOPIEDSTATCHANGES 156
-#define STRINGID_PKMNGOTFREE 157
-#define STRINGID_PKMNSHEDLEECHSEED 158
-#define STRINGID_PKMNBLEWAWAYSPIKES 159
-#define STRINGID_PKMNFLEDFROMBATTLE 160
-#define STRINGID_PKMNFORESAWATTACK 161
-#define STRINGID_PKMNTOOKATTACK 162
-#define STRINGID_PKMNATTACK 163
-#define STRINGID_PKMNCENTERATTENTION 164
-#define STRINGID_PKMNCHARGINGPOWER 165
-#define STRINGID_NATUREPOWERTURNEDINTO 166
-#define STRINGID_PKMNSTATUSNORMAL 167
-#define STRINGID_PKMNHASNOMOVESLEFT 168
-#define STRINGID_PKMNSUBJECTEDTOTORMENT 169
-#define STRINGID_PKMNCANTUSEMOVETORMENT 170
-#define STRINGID_PKMNTIGHTENINGFOCUS 171
-#define STRINGID_PKMNFELLFORTAUNT 172
-#define STRINGID_PKMNCANTUSEMOVETAUNT 173
-#define STRINGID_PKMNREADYTOHELP 174
-#define STRINGID_PKMNSWITCHEDITEMS 175
-#define STRINGID_PKMNCOPIEDFOE 176
-#define STRINGID_PKMNMADEWISH 177
-#define STRINGID_PKMNWISHCAMETRUE 178
-#define STRINGID_PKMNPLANTEDROOTS 179
-#define STRINGID_PKMNABSORBEDNUTRIENTS 180
-#define STRINGID_PKMNANCHOREDITSELF 181
-#define STRINGID_PKMNWASMADEDROWSY 182
-#define STRINGID_PKMNKNOCKEDOFF 183
-#define STRINGID_PKMNSWAPPEDABILITIES 184
-#define STRINGID_PKMNSEALEDOPPONENTMOVE 185
-#define STRINGID_PKMNCANTUSEMOVESEALED 186
-#define STRINGID_PKMNWANTSGRUDGE 187
-#define STRINGID_PKMNLOSTPPGRUDGE 188
-#define STRINGID_PKMNSHROUDEDITSELF 189
-#define STRINGID_PKMNMOVEBOUNCED 190
-#define STRINGID_PKMNWAITSFORTARGET 191
-#define STRINGID_PKMNSNATCHEDMOVE 192
-#define STRINGID_PKMNMADEITRAIN 193
-#define STRINGID_PKMNRAISEDSPEED 194
-#define STRINGID_PKMNPROTECTEDBY 195
-#define STRINGID_PKMNPREVENTSUSAGE 196
-#define STRINGID_PKMNRESTOREDHPUSING 197
-#define STRINGID_PKMNCHANGEDTYPEWITH 198
-#define STRINGID_PKMNPREVENTSPARALYSISWITH 199
-#define STRINGID_PKMNPREVENTSROMANCEWITH 200
-#define STRINGID_PKMNPREVENTSPOISONINGWITH 201
-#define STRINGID_PKMNPREVENTSCONFUSIONWITH 202
-#define STRINGID_PKMNRAISEDFIREPOWERWITH 203
-#define STRINGID_PKMNANCHORSITSELFWITH 204
-#define STRINGID_PKMNCUTSATTACKWITH 205
-#define STRINGID_PKMNPREVENTSSTATLOSSWITH 206
-#define STRINGID_PKMNHURTSWITH 207
-#define STRINGID_PKMNTRACED 208
-#define STRINGID_STATSHARPLY 209
-#define STRINGID_STATROSE 210
-#define STRINGID_STATHARSHLY 211
-#define STRINGID_STATFELL 212
-#define STRINGID_PKMNSSTATCHANGED 213
-#define STRINGID_PKMNSSTATCHANGED2 214
-#define STRINGID_PKMNSSTATCHANGED3 215
-#define STRINGID_PKMNSSTATCHANGED4 216
-#define STRINGID_CRITICALHIT 217
-#define STRINGID_ONEHITKO 218
-#define STRINGID_123POOF 219
-#define STRINGID_ANDELLIPSIS 220
-#define STRINGID_NOTVERYEFFECTIVE 221
-#define STRINGID_SUPEREFFECTIVE 222
-#define STRINGID_GOTAWAYSAFELY 223
-#define STRINGID_WILDPKMNFLED 224
-#define STRINGID_NORUNNINGFROMTRAINERS 225
-#define STRINGID_CANTESCAPE 226
-#define STRINGID_DONTLEAVEBIRCH 227
-#define STRINGID_BUTNOTHINGHAPPENED 228
-#define STRINGID_BUTITFAILED 229
-#define STRINGID_ITHURTCONFUSION 230
-#define STRINGID_MIRRORMOVEFAILED 231
-#define STRINGID_STARTEDTORAIN 232
-#define STRINGID_DOWNPOURSTARTED 233
-#define STRINGID_RAINCONTINUES 234
-#define STRINGID_DOWNPOURCONTINUES 235
-#define STRINGID_RAINSTOPPED 236
-#define STRINGID_SANDSTORMBREWED 237
-#define STRINGID_SANDSTORMRAGES 238
-#define STRINGID_SANDSTORMSUBSIDED 239
-#define STRINGID_SUNLIGHTGOTBRIGHT 240
-#define STRINGID_SUNLIGHTSTRONG 241
-#define STRINGID_SUNLIGHTFADED 242
-#define STRINGID_STARTEDHAIL 243
-#define STRINGID_HAILCONTINUES 244
-#define STRINGID_HAILSTOPPED 245
-#define STRINGID_FAILEDTOSPITUP 246
-#define STRINGID_FAILEDTOSWALLOW 247
-#define STRINGID_WINDBECAMEHEATWAVE 248
-#define STRINGID_STATCHANGESGONE 249
-#define STRINGID_COINSSCATTERED 250
-#define STRINGID_TOOWEAKFORSUBSTITUTE 251
-#define STRINGID_SHAREDPAIN 252
-#define STRINGID_BELLCHIMED 253
-#define STRINGID_FAINTINTHREE 254
-#define STRINGID_NOPPLEFT 255
-#define STRINGID_BUTNOPPLEFT 256
-#define STRINGID_PLAYERUSEDITEM 257
-#define STRINGID_WALLYUSEDITEM 258
-#define STRINGID_TRAINERBLOCKEDBALL 259
-#define STRINGID_DONTBEATHIEF 260
-#define STRINGID_ITDODGEDBALL 261
-#define STRINGID_YOUMISSEDPKMN 262
-#define STRINGID_PKMNBROKEFREE 263
-#define STRINGID_ITAPPEAREDCAUGHT 264
-#define STRINGID_AARGHALMOSTHADIT 265
-#define STRINGID_SHOOTSOCLOSE 266
-#define STRINGID_GOTCHAPKMNCAUGHT 267
-#define STRINGID_GOTCHAPKMNCAUGHT2 268
-#define STRINGID_GIVENICKNAMECAPTURED 269
-#define STRINGID_PKMNSENTTOPC 270
-#define STRINGID_PKMNDATAADDEDTODEX 271
-#define STRINGID_ITISRAINING 272
-#define STRINGID_SANDSTORMISRAGING 273
-#define STRINGID_CANTESCAPE2 274
-#define STRINGID_PKMNIGNORESASLEEP 275
-#define STRINGID_PKMNIGNOREDORDERS 276
-#define STRINGID_PKMNBEGANTONAP 277
-#define STRINGID_PKMNLOAFING 278
-#define STRINGID_PKMNWONTOBEY 279
-#define STRINGID_PKMNTURNEDAWAY 280
-#define STRINGID_PKMNPRETENDNOTNOTICE 281
-#define STRINGID_ENEMYABOUTTOSWITCHPKMN 282
-#define STRINGID_CREPTCLOSER 283
-#define STRINGID_CANTGETCLOSER 284
-#define STRINGID_PKMNWATCHINGCAREFULLY 285
-#define STRINGID_PKMNCURIOUSABOUTX 286
-#define STRINGID_PKMNENTHRALLEDBYX 287
-#define STRINGID_PKMNIGNOREDX 288
-#define STRINGID_THREWPOKEBLOCKATPKMN 289
-#define STRINGID_OUTOFSAFARIBALLS 290
-#define STRINGID_PKMNSITEMCUREDPARALYSIS 291
-#define STRINGID_PKMNSITEMCUREDPOISON 292
-#define STRINGID_PKMNSITEMHEALEDBURN 293
-#define STRINGID_PKMNSITEMDEFROSTEDIT 294
-#define STRINGID_PKMNSITEMWOKEIT 295
-#define STRINGID_PKMNSITEMSNAPPEDOUT 296
-#define STRINGID_PKMNSITEMCUREDPROBLEM 297
-#define STRINGID_PKMNSITEMRESTOREDHEALTH 298
-#define STRINGID_PKMNSITEMRESTOREDPP 299
-#define STRINGID_PKMNSITEMRESTOREDSTATUS 300
-#define STRINGID_PKMNSITEMRESTOREDHPALITTLE 301
-#define STRINGID_ITEMALLOWSONLYYMOVE 302
-#define STRINGID_PKMNHUNGONWITHX 303
-#define STRINGID_EMPTYSTRING3 304
-#define STRINGID_PKMNSXPREVENTSBURNS 305
-#define STRINGID_PKMNSXBLOCKSY 306
-#define STRINGID_PKMNSXRESTOREDHPALITTLE2 307
-#define STRINGID_PKMNSXWHIPPEDUPSANDSTORM 308
-#define STRINGID_PKMNSXPREVENTSYLOSS 309
-#define STRINGID_PKMNSXINFATUATEDY 310
-#define STRINGID_PKMNSXMADEYINEFFECTIVE 311
-#define STRINGID_PKMNSXCUREDYPROBLEM 312
-#define STRINGID_ITSUCKEDLIQUIDOOZE 313
-#define STRINGID_PKMNTRANSFORMED 314
-#define STRINGID_ELECTRICITYWEAKENED 315
-#define STRINGID_FIREWEAKENED 316
-#define STRINGID_PKMNHIDUNDERWATER 317
-#define STRINGID_PKMNSPRANGUP 318
-#define STRINGID_HMMOVESCANTBEFORGOTTEN 319
-#define STRINGID_XFOUNDONEY 320
-#define STRINGID_PLAYERDEFEATEDTRAINER1 321
-#define STRINGID_SOOTHINGAROMA 322
-#define STRINGID_ITEMSCANTBEUSEDNOW 323
-#define STRINGID_FORXCOMMAYZ 324
-#define STRINGID_USINGXTHEYOFZN 325
-#define STRINGID_PKMNUSEDXTOGETPUMPED 326
-#define STRINGID_PKMNSXMADEYUSELESS 327
-#define STRINGID_PKMNTRAPPEDBYSANDTOMB 328
-#define STRINGID_EMPTYSTRING4 329
-#define STRINGID_ABOOSTED 330
-#define STRINGID_PKMNSXINTENSIFIEDSUN 331
-#define STRINGID_PKMNMAKESGROUNDMISS 332
-#define STRINGID_YOUTHROWABALLNOWRIGHT 333
-#define STRINGID_PKMNSXTOOKATTACK 334
-#define STRINGID_PKMNCHOSEXASDESTINY 335
-#define STRINGID_PKMNLOSTFOCUS 336
-#define STRINGID_USENEXTPKMN 337
-#define STRINGID_PKMNFLEDUSINGITS 338
-#define STRINGID_PKMNFLEDUSING 339
-#define STRINGID_PKMNWASDRAGGEDOUT 340
-#define STRINGID_PREVENTEDFROMWORKING 341
-#define STRINGID_PKMNSITEMNORMALIZEDSTATUS 342
-#define STRINGID_TRAINER1USEDITEM 343
-#define STRINGID_BOXISFULL 344
-#define STRINGID_PKMNAVOIDEDATTACK 345
-#define STRINGID_PKMNSXMADEITINEFFECTIVE 346
-#define STRINGID_PKMNSXPREVENTSFLINCHING 347
-#define STRINGID_PKMNALREADYHASBURN 348
-#define STRINGID_STATSWONTDECREASE2 349
-#define STRINGID_PKMNSXBLOCKSY2 350
-#define STRINGID_PKMNSXWOREOFF 351
-#define STRINGID_PKMNRAISEDDEFALITTLE 352
-#define STRINGID_PKMNRAISEDSPDEFALITTLE 353
-#define STRINGID_THEWALLSHATTERED 354
-#define STRINGID_PKMNSXPREVENTSYSZ 355
-#define STRINGID_PKMNSXCUREDITSYPROBLEM 356
-#define STRINGID_ATTACKERCANTESCAPE 357
-#define STRINGID_PKMNOBTAINEDX 358
-#define STRINGID_PKMNOBTAINEDX2 359
-#define STRINGID_PKMNOBTAINEDXYOBTAINEDZ 360
-#define STRINGID_BUTNOEFFECT 361
-#define STRINGID_PKMNSXHADNOEFFECTONY 362
-#define STRINGID_TWOENEMIESDEFEATED 363
-#define STRINGID_TRAINER2LOSETEXT 364
-#define STRINGID_PKMNINCAPABLEOFPOWER 365
-#define STRINGID_GLINTAPPEARSINEYE 366
-#define STRINGID_PKMNGETTINGINTOPOSITION 367
-#define STRINGID_PKMNBEGANGROWLINGDEEPLY 368
-#define STRINGID_PKMNEAGERFORMORE 369
-#define STRINGID_DEFEATEDOPPONENTBYREFEREE 370
-#define STRINGID_LOSTTOOPPONENTBYREFEREE 371
-#define STRINGID_TIEDOPPONENTBYREFEREE 372
-#define STRINGID_QUESTIONFORFEITMATCH 373
-#define STRINGID_FORFEITEDMATCH 374
-#define STRINGID_PKMNTRANSFERREDSOMEONESPC 375
-#define STRINGID_PKMNTRANSFERREDLANETTESPC 376
-#define STRINGID_PKMNBOXSOMEONESPCFULL 377
-#define STRINGID_PKMNBOXLANETTESPCFULL 378
-#define STRINGID_TRAINER1WINTEXT 379
-#define STRINGID_TRAINER2WINTEXT 380
+#define STRINGID_TRAINER1LOSETEXT 12
+#define STRINGID_PKMNGAINEDEXP 13
+#define STRINGID_PKMNGREWTOLV 14
+#define STRINGID_PKMNLEARNEDMOVE 15
+#define STRINGID_TRYTOLEARNMOVE1 16
+#define STRINGID_TRYTOLEARNMOVE2 17
+#define STRINGID_TRYTOLEARNMOVE3 18
+#define STRINGID_PKMNFORGOTMOVE 19
+#define STRINGID_STOPLEARNINGMOVE 20
+#define STRINGID_DIDNOTLEARNMOVE 21
+#define STRINGID_PKMNLEARNEDMOVE2 22
+#define STRINGID_ATTACKMISSED 23
+#define STRINGID_PKMNPROTECTEDITSELF 24
+#define STRINGID_STATSWONTINCREASE2 25
+#define STRINGID_AVOIDEDDAMAGE 26
+#define STRINGID_ITDOESNTAFFECT 27
+#define STRINGID_ATTACKERFAINTED 28
+#define STRINGID_TARGETFAINTED 29
+#define STRINGID_PLAYERGOTMONEY 30
+#define STRINGID_PLAYERWHITEOUT 31
+#define STRINGID_PLAYERWHITEOUT2 32
+#define STRINGID_PREVENTSESCAPE 33
+#define STRINGID_HITXTIMES 34
+#define STRINGID_PKMNFELLASLEEP 35
+#define STRINGID_PKMNMADESLEEP 36
+#define STRINGID_PKMNALREADYASLEEP 37
+#define STRINGID_PKMNALREADYASLEEP2 38
+#define STRINGID_PKMNWASNTAFFECTED 39
+#define STRINGID_PKMNWASPOISONED 40
+#define STRINGID_PKMNPOISONEDBY 41
+#define STRINGID_PKMNHURTBYPOISON 42
+#define STRINGID_PKMNALREADYPOISONED 43
+#define STRINGID_PKMNBADLYPOISONED 44
+#define STRINGID_PKMNENERGYDRAINED 45
+#define STRINGID_PKMNWASBURNED 46
+#define STRINGID_PKMNBURNEDBY 47
+#define STRINGID_PKMNHURTBYBURN 48
+#define STRINGID_PKMNWASFROZEN 49
+#define STRINGID_PKMNFROZENBY 50
+#define STRINGID_PKMNISFROZEN 51
+#define STRINGID_PKMNWASDEFROSTED 52
+#define STRINGID_PKMNWASDEFROSTED2 53
+#define STRINGID_PKMNWASDEFROSTEDBY 54
+#define STRINGID_PKMNWASPARALYZED 55
+#define STRINGID_PKMNWASPARALYZEDBY 56
+#define STRINGID_PKMNISPARALYZED 57
+#define STRINGID_PKMNISALREADYPARALYZED 58
+#define STRINGID_PKMNHEALEDPARALYSIS 59
+#define STRINGID_PKMNDREAMEATEN 60
+#define STRINGID_STATSWONTINCREASE 61
+#define STRINGID_STATSWONTDECREASE 62
+#define STRINGID_TEAMSTOPPEDWORKING 63
+#define STRINGID_FOESTOPPEDWORKING 64
+#define STRINGID_PKMNISCONFUSED 65
+#define STRINGID_PKMNHEALEDCONFUSION 66
+#define STRINGID_PKMNWASCONFUSED 67
+#define STRINGID_PKMNALREADYCONFUSED 68
+#define STRINGID_PKMNFELLINLOVE 69
+#define STRINGID_PKMNINLOVE 70
+#define STRINGID_PKMNIMMOBILIZEDBYLOVE 71
+#define STRINGID_PKMNBLOWNAWAY 72
+#define STRINGID_PKMNCHANGEDTYPE 73
+#define STRINGID_PKMNFLINCHED 74
+#define STRINGID_PKMNREGAINEDHEALTH 75
+#define STRINGID_PKMNHPFULL 76
+#define STRINGID_PKMNRAISEDSPDEF 77
+#define STRINGID_PKMNRAISEDDEF 78
+#define STRINGID_PKMNCOVEREDBYVEIL 79
+#define STRINGID_PKMNUSEDSAFEGUARD 80
+#define STRINGID_PKMNSAFEGUARDEXPIRED 81
+#define STRINGID_PKMNWENTTOSLEEP 82
+#define STRINGID_PKMNSLEPTHEALTHY 83
+#define STRINGID_PKMNWHIPPEDWHIRLWIND 84
+#define STRINGID_PKMNTOOKSUNLIGHT 85
+#define STRINGID_PKMNLOWEREDHEAD 86
+#define STRINGID_PKMNISGLOWING 87
+#define STRINGID_PKMNFLEWHIGH 88
+#define STRINGID_PKMNDUGHOLE 89
+#define STRINGID_PKMNSQUEEZEDBYBIND 90
+#define STRINGID_PKMNTRAPPEDINVORTEX 91
+#define STRINGID_PKMNWRAPPEDBY 92
+#define STRINGID_PKMNCLAMPED 93
+#define STRINGID_PKMNHURTBY 94
+#define STRINGID_PKMNFREEDFROM 95
+#define STRINGID_PKMNCRASHED 96
+#define STRINGID_PKMNSHROUDEDINMIST 97
+#define STRINGID_PKMNPROTECTEDBYMIST 98
+#define STRINGID_PKMNGETTINGPUMPED 99
+#define STRINGID_PKMNHITWITHRECOIL 100
+#define STRINGID_PKMNPROTECTEDITSELF2 101
+#define STRINGID_PKMNBUFFETEDBYSANDSTORM 102
+#define STRINGID_PKMNPELTEDBYHAIL 103
+#define STRINGID_PKMNSEEDED 104
+#define STRINGID_PKMNEVADEDATTACK 105
+#define STRINGID_PKMNSAPPEDBYLEECHSEED 106
+#define STRINGID_PKMNFASTASLEEP 107
+#define STRINGID_PKMNWOKEUP 108
+#define STRINGID_PKMNUPROARKEPTAWAKE 109
+#define STRINGID_PKMNWOKEUPINUPROAR 110
+#define STRINGID_PKMNCAUSEDUPROAR 111
+#define STRINGID_PKMNMAKINGUPROAR 112
+#define STRINGID_PKMNCALMEDDOWN 113
+#define STRINGID_PKMNCANTSLEEPINUPROAR 114
+#define STRINGID_PKMNSTOCKPILED 115
+#define STRINGID_PKMNCANTSTOCKPILE 116
+#define STRINGID_PKMNCANTSLEEPINUPROAR2 117
+#define STRINGID_UPROARKEPTPKMNAWAKE 118
+#define STRINGID_PKMNSTAYEDAWAKEUSING 119
+#define STRINGID_PKMNSTORINGENERGY 120
+#define STRINGID_PKMNUNLEASHEDENERGY 121
+#define STRINGID_PKMNFATIGUECONFUSION 122
+#define STRINGID_PKMNPICKEDUPITEM 123
+#define STRINGID_PKMNUNAFFECTED 124
+#define STRINGID_PKMNTRANSFORMEDINTO 125
+#define STRINGID_PKMNMADESUBSTITUTE 126
+#define STRINGID_PKMNHASSUBSTITUTE 127
+#define STRINGID_SUBSTITUTEDAMAGED 128
+#define STRINGID_PKMNSUBSTITUTEFADED 129
+#define STRINGID_PKMNMUSTRECHARGE 130
+#define STRINGID_PKMNRAGEBUILDING 131
+#define STRINGID_PKMNMOVEWASDISABLED 132
+#define STRINGID_PKMNMOVEISDISABLED 133
+#define STRINGID_PKMNMOVEDISABLEDNOMORE 134
+#define STRINGID_PKMNGOTENCORE 135
+#define STRINGID_PKMNENCOREENDED 136
+#define STRINGID_PKMNTOOKAIM 137
+#define STRINGID_PKMNSKETCHEDMOVE 138
+#define STRINGID_PKMNTRYINGTOTAKEFOE 139
+#define STRINGID_PKMNTOOKFOE 140
+#define STRINGID_PKMNREDUCEDPP 141
+#define STRINGID_PKMNSTOLEITEM 142
+#define STRINGID_TARGETCANTESCAPENOW 143
+#define STRINGID_PKMNFELLINTONIGHTMARE 144
+#define STRINGID_PKMNLOCKEDINNIGHTMARE 145
+#define STRINGID_PKMNLAIDCURSE 146
+#define STRINGID_PKMNAFFLICTEDBYCURSE 147
+#define STRINGID_SPIKESSCATTERED 148
+#define STRINGID_PKMNHURTBYSPIKES 149
+#define STRINGID_PKMNIDENTIFIED 150
+#define STRINGID_PKMNPERISHCOUNTFELL 151
+#define STRINGID_PKMNBRACEDITSELF 152
+#define STRINGID_PKMNENDUREDHIT 153
+#define STRINGID_MAGNITUDESTRENGTH 154
+#define STRINGID_PKMNCUTHPMAXEDATTACK 155
+#define STRINGID_PKMNCOPIEDSTATCHANGES 156
+#define STRINGID_PKMNGOTFREE 157
+#define STRINGID_PKMNSHEDLEECHSEED 158
+#define STRINGID_PKMNBLEWAWAYSPIKES 159
+#define STRINGID_PKMNFLEDFROMBATTLE 160
+#define STRINGID_PKMNFORESAWATTACK 161
+#define STRINGID_PKMNTOOKATTACK 162
+#define STRINGID_PKMNATTACK 163
+#define STRINGID_PKMNCENTERATTENTION 164
+#define STRINGID_PKMNCHARGINGPOWER 165
+#define STRINGID_NATUREPOWERTURNEDINTO 166
+#define STRINGID_PKMNSTATUSNORMAL 167
+#define STRINGID_PKMNHASNOMOVESLEFT 168
+#define STRINGID_PKMNSUBJECTEDTOTORMENT 169
+#define STRINGID_PKMNCANTUSEMOVETORMENT 170
+#define STRINGID_PKMNTIGHTENINGFOCUS 171
+#define STRINGID_PKMNFELLFORTAUNT 172
+#define STRINGID_PKMNCANTUSEMOVETAUNT 173
+#define STRINGID_PKMNREADYTOHELP 174
+#define STRINGID_PKMNSWITCHEDITEMS 175
+#define STRINGID_PKMNCOPIEDFOE 176
+#define STRINGID_PKMNMADEWISH 177
+#define STRINGID_PKMNWISHCAMETRUE 178
+#define STRINGID_PKMNPLANTEDROOTS 179
+#define STRINGID_PKMNABSORBEDNUTRIENTS 180
+#define STRINGID_PKMNANCHOREDITSELF 181
+#define STRINGID_PKMNWASMADEDROWSY 182
+#define STRINGID_PKMNKNOCKEDOFF 183
+#define STRINGID_PKMNSWAPPEDABILITIES 184
+#define STRINGID_PKMNSEALEDOPPONENTMOVE 185
+#define STRINGID_PKMNCANTUSEMOVESEALED 186
+#define STRINGID_PKMNWANTSGRUDGE 187
+#define STRINGID_PKMNLOSTPPGRUDGE 188
+#define STRINGID_PKMNSHROUDEDITSELF 189
+#define STRINGID_PKMNMOVEBOUNCED 190
+#define STRINGID_PKMNWAITSFORTARGET 191
+#define STRINGID_PKMNSNATCHEDMOVE 192
+#define STRINGID_PKMNMADEITRAIN 193
+#define STRINGID_PKMNRAISEDSPEED 194
+#define STRINGID_PKMNPROTECTEDBY 195
+#define STRINGID_PKMNPREVENTSUSAGE 196
+#define STRINGID_PKMNRESTOREDHPUSING 197
+#define STRINGID_PKMNCHANGEDTYPEWITH 198
+#define STRINGID_PKMNPREVENTSPARALYSISWITH 199
+#define STRINGID_PKMNPREVENTSROMANCEWITH 200
+#define STRINGID_PKMNPREVENTSPOISONINGWITH 201
+#define STRINGID_PKMNPREVENTSCONFUSIONWITH 202
+#define STRINGID_PKMNRAISEDFIREPOWERWITH 203
+#define STRINGID_PKMNANCHORSITSELFWITH 204
+#define STRINGID_PKMNCUTSATTACKWITH 205
+#define STRINGID_PKMNPREVENTSSTATLOSSWITH 206
+#define STRINGID_PKMNHURTSWITH 207
+#define STRINGID_PKMNTRACED 208
+#define STRINGID_STATSHARPLY 209
+#define STRINGID_STATROSE 210
+#define STRINGID_STATHARSHLY 211
+#define STRINGID_STATFELL 212
+#define STRINGID_PKMNSSTATCHANGED 213
+#define STRINGID_PKMNSSTATCHANGED2 214
+#define STRINGID_PKMNSSTATCHANGED3 215
+#define STRINGID_PKMNSSTATCHANGED4 216
+#define STRINGID_CRITICALHIT 217
+#define STRINGID_ONEHITKO 218
+#define STRINGID_123POOF 219
+#define STRINGID_ANDELLIPSIS 220
+#define STRINGID_NOTVERYEFFECTIVE 221
+#define STRINGID_SUPEREFFECTIVE 222
+#define STRINGID_GOTAWAYSAFELY 223
+#define STRINGID_WILDPKMNFLED 224
+#define STRINGID_NORUNNINGFROMTRAINERS 225
+#define STRINGID_CANTESCAPE 226
+#define STRINGID_DONTLEAVEBIRCH 227
+#define STRINGID_BUTNOTHINGHAPPENED 228
+#define STRINGID_BUTITFAILED 229
+#define STRINGID_ITHURTCONFUSION 230
+#define STRINGID_MIRRORMOVEFAILED 231
+#define STRINGID_STARTEDTORAIN 232
+#define STRINGID_DOWNPOURSTARTED 233
+#define STRINGID_RAINCONTINUES 234
+#define STRINGID_DOWNPOURCONTINUES 235
+#define STRINGID_RAINSTOPPED 236
+#define STRINGID_SANDSTORMBREWED 237
+#define STRINGID_SANDSTORMRAGES 238
+#define STRINGID_SANDSTORMSUBSIDED 239
+#define STRINGID_SUNLIGHTGOTBRIGHT 240
+#define STRINGID_SUNLIGHTSTRONG 241
+#define STRINGID_SUNLIGHTFADED 242
+#define STRINGID_STARTEDHAIL 243
+#define STRINGID_HAILCONTINUES 244
+#define STRINGID_HAILSTOPPED 245
+#define STRINGID_FAILEDTOSPITUP 246
+#define STRINGID_FAILEDTOSWALLOW 247
+#define STRINGID_WINDBECAMEHEATWAVE 248
+#define STRINGID_STATCHANGESGONE 249
+#define STRINGID_COINSSCATTERED 250
+#define STRINGID_TOOWEAKFORSUBSTITUTE 251
+#define STRINGID_SHAREDPAIN 252
+#define STRINGID_BELLCHIMED 253
+#define STRINGID_FAINTINTHREE 254
+#define STRINGID_NOPPLEFT 255
+#define STRINGID_BUTNOPPLEFT 256
+#define STRINGID_PLAYERUSEDITEM 257
+#define STRINGID_WALLYUSEDITEM 258
+#define STRINGID_TRAINERBLOCKEDBALL 259
+#define STRINGID_DONTBEATHIEF 260
+#define STRINGID_ITDODGEDBALL 261
+#define STRINGID_YOUMISSEDPKMN 262
+#define STRINGID_PKMNBROKEFREE 263
+#define STRINGID_ITAPPEAREDCAUGHT 264
+#define STRINGID_AARGHALMOSTHADIT 265
+#define STRINGID_SHOOTSOCLOSE 266
+#define STRINGID_GOTCHAPKMNCAUGHT 267
+#define STRINGID_GOTCHAPKMNCAUGHT2 268
+#define STRINGID_GIVENICKNAMECAPTURED 269
+#define STRINGID_PKMNSENTTOPC 270
+#define STRINGID_PKMNDATAADDEDTODEX 271
+#define STRINGID_ITISRAINING 272
+#define STRINGID_SANDSTORMISRAGING 273
+#define STRINGID_CANTESCAPE2 274
+#define STRINGID_PKMNIGNORESASLEEP 275
+#define STRINGID_PKMNIGNOREDORDERS 276
+#define STRINGID_PKMNBEGANTONAP 277
+#define STRINGID_PKMNLOAFING 278
+#define STRINGID_PKMNWONTOBEY 279
+#define STRINGID_PKMNTURNEDAWAY 280
+#define STRINGID_PKMNPRETENDNOTNOTICE 281
+#define STRINGID_ENEMYABOUTTOSWITCHPKMN 282
+#define STRINGID_CREPTCLOSER 283
+#define STRINGID_CANTGETCLOSER 284
+#define STRINGID_PKMNWATCHINGCAREFULLY 285
+#define STRINGID_PKMNCURIOUSABOUTX 286
+#define STRINGID_PKMNENTHRALLEDBYX 287
+#define STRINGID_PKMNIGNOREDX 288
+#define STRINGID_THREWPOKEBLOCKATPKMN 289
+#define STRINGID_OUTOFSAFARIBALLS 290
+#define STRINGID_PKMNSITEMCUREDPARALYSIS 291
+#define STRINGID_PKMNSITEMCUREDPOISON 292
+#define STRINGID_PKMNSITEMHEALEDBURN 293
+#define STRINGID_PKMNSITEMDEFROSTEDIT 294
+#define STRINGID_PKMNSITEMWOKEIT 295
+#define STRINGID_PKMNSITEMSNAPPEDOUT 296
+#define STRINGID_PKMNSITEMCUREDPROBLEM 297
+#define STRINGID_PKMNSITEMRESTOREDHEALTH 298
+#define STRINGID_PKMNSITEMRESTOREDPP 299
+#define STRINGID_PKMNSITEMRESTOREDSTATUS 300
+#define STRINGID_PKMNSITEMRESTOREDHPALITTLE 301
+#define STRINGID_ITEMALLOWSONLYYMOVE 302
+#define STRINGID_PKMNHUNGONWITHX 303
+#define STRINGID_EMPTYSTRING3 304
+#define STRINGID_PKMNSXPREVENTSBURNS 305
+#define STRINGID_PKMNSXBLOCKSY 306
+#define STRINGID_PKMNSXRESTOREDHPALITTLE2 307
+#define STRINGID_PKMNSXWHIPPEDUPSANDSTORM 308
+#define STRINGID_PKMNSXPREVENTSYLOSS 309
+#define STRINGID_PKMNSXINFATUATEDY 310
+#define STRINGID_PKMNSXMADEYINEFFECTIVE 311
+#define STRINGID_PKMNSXCUREDYPROBLEM 312
+#define STRINGID_ITSUCKEDLIQUIDOOZE 313
+#define STRINGID_PKMNTRANSFORMED 314
+#define STRINGID_ELECTRICITYWEAKENED 315
+#define STRINGID_FIREWEAKENED 316
+#define STRINGID_PKMNHIDUNDERWATER 317
+#define STRINGID_PKMNSPRANGUP 318
+#define STRINGID_HMMOVESCANTBEFORGOTTEN 319
+#define STRINGID_XFOUNDONEY 320
+#define STRINGID_PLAYERDEFEATEDTRAINER1 321
+#define STRINGID_SOOTHINGAROMA 322
+#define STRINGID_ITEMSCANTBEUSEDNOW 323
+#define STRINGID_FORXCOMMAYZ 324
+#define STRINGID_USINGXTHEYOFZN 325
+#define STRINGID_PKMNUSEDXTOGETPUMPED 326
+#define STRINGID_PKMNSXMADEYUSELESS 327
+#define STRINGID_PKMNTRAPPEDBYSANDTOMB 328
+#define STRINGID_EMPTYSTRING4 329
+#define STRINGID_ABOOSTED 330
+#define STRINGID_PKMNSXINTENSIFIEDSUN 331
+#define STRINGID_PKMNMAKESGROUNDMISS 332
+#define STRINGID_YOUTHROWABALLNOWRIGHT 333
+#define STRINGID_PKMNSXTOOKATTACK 334
+#define STRINGID_PKMNCHOSEXASDESTINY 335
+#define STRINGID_PKMNLOSTFOCUS 336
+#define STRINGID_USENEXTPKMN 337
+#define STRINGID_PKMNFLEDUSINGITS 338
+#define STRINGID_PKMNFLEDUSING 339
+#define STRINGID_PKMNWASDRAGGEDOUT 340
+#define STRINGID_PREVENTEDFROMWORKING 341
+#define STRINGID_PKMNSITEMNORMALIZEDSTATUS 342
+#define STRINGID_TRAINER1USEDITEM 343
+#define STRINGID_BOXISFULL 344
+#define STRINGID_PKMNAVOIDEDATTACK 345
+#define STRINGID_PKMNSXMADEITINEFFECTIVE 346
+#define STRINGID_PKMNSXPREVENTSFLINCHING 347
+#define STRINGID_PKMNALREADYHASBURN 348
+#define STRINGID_STATSWONTDECREASE2 349
+#define STRINGID_PKMNSXBLOCKSY2 350
+#define STRINGID_PKMNSXWOREOFF 351
+#define STRINGID_PKMNRAISEDDEFALITTLE 352
+#define STRINGID_PKMNRAISEDSPDEFALITTLE 353
+#define STRINGID_THEWALLSHATTERED 354
+#define STRINGID_PKMNSXPREVENTSYSZ 355
+#define STRINGID_PKMNSXCUREDITSYPROBLEM 356
+#define STRINGID_ATTACKERCANTESCAPE 357
+#define STRINGID_PKMNOBTAINEDX 358
+#define STRINGID_PKMNOBTAINEDX2 359
+#define STRINGID_PKMNOBTAINEDXYOBTAINEDZ 360
+#define STRINGID_BUTNOEFFECT 361
+#define STRINGID_PKMNSXHADNOEFFECTONY 362
+#define STRINGID_TWOENEMIESDEFEATED 363
+#define STRINGID_TRAINER2LOSETEXT 364
+#define STRINGID_PKMNINCAPABLEOFPOWER 365
+#define STRINGID_GLINTAPPEARSINEYE 366
+#define STRINGID_PKMNGETTINGINTOPOSITION 367
+#define STRINGID_PKMNBEGANGROWLINGDEEPLY 368
+#define STRINGID_PKMNEAGERFORMORE 369
+#define STRINGID_DEFEATEDOPPONENTBYREFEREE 370
+#define STRINGID_LOSTTOOPPONENTBYREFEREE 371
+#define STRINGID_TIEDOPPONENTBYREFEREE 372
+#define STRINGID_QUESTIONFORFEITMATCH 373
+#define STRINGID_FORFEITEDMATCH 374
+#define STRINGID_PKMNTRANSFERREDSOMEONESPC 375
+#define STRINGID_PKMNTRANSFERREDLANETTESPC 376
+#define STRINGID_PKMNBOXSOMEONESPCFULL 377
+#define STRINGID_PKMNBOXLANETTESPCFULL 378
+#define STRINGID_TRAINER1WINTEXT 379
+#define STRINGID_TRAINER2WINTEXT 380
#endif // GUARD_CONSTANTS_BATTLE_STRING_IDS_H
diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h
index 1a4741574..f63d755ad 100644
--- a/include/constants/pokemon.h
+++ b/include/constants/pokemon.h
@@ -2,6 +2,7 @@
#define GUARD_CONSTANTS_POKEMON_H
// Pokemon types
+#define TYPE_NONE 0xFF
#define TYPE_NORMAL 0x00
#define TYPE_FIGHTING 0x01
#define TYPE_FLYING 0x02
@@ -22,6 +23,7 @@
#define TYPE_DARK 0x11
#define NUMBER_OF_MON_TYPES 0x12
+
// Pokemon egg groups
#define EGG_GROUP_NONE 0
#define EGG_GROUP_MONSTER 1
diff --git a/include/constants/weather.h b/include/constants/weather.h
index 953cc2753..d0a81c34c 100644
--- a/include/constants/weather.h
+++ b/include/constants/weather.h
@@ -16,6 +16,7 @@
#define WEATHER_DROUGHT 12
#define WEATHER_RAIN_HEAVY 13
#define WEATHER_BUBBLES 14
+#define WEATHER_15 15
#define WEATHER_ROUTE119_CYCLE 20
#define WEATHER_ROUTE123_CYCLE 21
diff --git a/include/event_scripts.h b/include/event_scripts.h
index 058cec39b..7f69ef3ae 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -10,11 +10,11 @@ extern const u8 EventScript_275D0C[];
extern const u8 EventScript_275D1F[];
extern const u8 EventScript_275D2E[];
extern const u8 EventScript_271354[];
-extern const u8 EventScript_2713C2[];
+extern const u8 EventScript_DoTainerBattle[];
extern const u8 EventScript_TryDoDoubleTrainerBattle[];
-extern const u8 EventScript_271362[];
+extern const u8 EventScript_TryDoNormalTrainerBattle[];
extern const u8 EventScript_TryDoDoubleRematchBattle[];
-extern const u8 EventScript_2713D1[];
+extern const u8 EventScript_TryDoRematchBattle[];
extern const u8 EventScript_SecretPower1[];
extern const u8 EventScript_SecretPower2[];
diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h
deleted file mode 100644
index 7c2d16a24..000000000
--- a/include/field_fadetransition.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef GUARD_FIELD_FADETRANSITION_H
-#define GUARD_FIELD_FADETRANSITION_H
-
-void sub_80AF734(void);
-void sp13E_warp_to_last_warp(void);
-void sub_80AF7D0(void);
-void sp13F_fall_to_last_warp(void);
-
-void sub_80AF848(void);
-void sub_80AF87C(void);
-
-#endif // GUARD_FIELD_FADETRANSITION_H
diff --git a/include/field_screen.h b/include/field_screen.h
deleted file mode 100644
index 021d2b9e9..000000000
--- a/include/field_screen.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef GUARD_FIELD_SCREEN_H
-#define GUARD_FIELD_SCREEN_H
-
-// Exported type declarations
-
-// Exported RAM declarations
-
-// Exported ROM declarations
-void pal_fill_black(void);
-bool8 IsWeatherNotFadingIn(void);
-void sub_80AF168(void);
-void sub_80AF2B4(u8 taskId);
-void UpdateWeatherPerDay(u16 days);
-void sub_80AC3D0(void);
-void sub_80AC3E4(void);
-void PreservePaletteInWeather(u8);
-void sub_80AF128(void);
-void sub_80AB104(u8);
-void sub_80AF80C(u8);
-void sub_80AF828(void);
-void sub_80AF838(void);
-void sub_80B0268(void);
-
-#endif //GUARD_FIELD_SCREEN_H
diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h
index ef81c2f9e..f3ac2e866 100644
--- a/include/field_screen_effect.h
+++ b/include/field_screen_effect.h
@@ -1,8 +1,44 @@
#ifndef GUARD_FIELD_SCREEN_EFFECT_H
#define GUARD_FIELD_SCREEN_EFFECT_H
+void pal_fill_for_maplights(void);
+void pal_fill_black(void);
+void WarpFadeScreen(void);
+void sub_80AF128(void);
+void sub_80AF168(void);
+void sub_80AF188(void);
+void sub_80AF214(void);
+void sub_80AF2B4(u8 taskId);
+void sub_80AF314(void);
+void mapldr_default(void);
+void sub_80AF3B0(void);
+void sub_80AF3C8(void);
+void sub_80AF3E8(void);
+void sub_80AF40C(void);
+void sub_80AF688(void);
+bool8 sub_80AF6A4(void);
+void sub_80AF6D4(void);
+void sub_80AF6F0(void);
+void sub_80AF734(void);
+void sp13E_warp_to_last_warp(void);
void sub_80AF79C(void);
-void sub_80B009C(u8);
+void sub_80AF7D0(void);
+void sp13F_fall_to_last_warp(void);
+void sub_80AF80C(u8 metatileBehavior);
+void sub_80AF828(void);
+void sub_80AF838(void);
+void sub_80AF848(void);
+void sub_80AF87C(void);
+void sub_80AF8B8(void);
+void sub_80AF948(void);
+void sub_80AF9F8(void);
+void sub_80AFC60(void);
+void sub_80B009C(u8 flashLevel);
+void door_upload_tiles(void);
void sub_80B0244(void);
+void sub_80B0268(void);
+void sub_80B0534(void);
+void sub_80B058C(void);
+void sub_80B05B4(void);
#endif // GUARD_FIELD_SCREEN_EFFECT_H
diff --git a/include/field_weather.h b/include/field_weather.h
index a48361b8a..c032183e1 100644
--- a/include/field_weather.h
+++ b/include/field_weather.h
@@ -4,13 +4,23 @@
#include "sprite.h"
// Controls how the weather should be changing the screen palettes.
-enum {
+enum
+{
WEATHER_PAL_STATE_CHANGING_WEATHER,
WEATHER_PAL_STATE_SCREEN_FADING_IN,
WEATHER_PAL_STATE_SCREEN_FADING_OUT,
WEATHER_PAL_STATE_IDLE,
};
+// For the FadeScreen function.
+enum
+{
+ FADE_FROM_BLACK,
+ FADE_TO_BLACK,
+ FADE_FROM_WHITE,
+ FADE_TO_WHITE,
+};
+
struct Weather
{
union
@@ -38,11 +48,11 @@ struct Weather
u8 gammaStepDelay;
u8 gammaStepFrameCounter;
u16 fadeDestColor;
- u8 palProcessingState;
- u8 fadeScreenCounter;
- bool8 readyForInit;
- u8 taskId;
- u8 unknown_6CA;
+ /*0x6C6*/ u8 palProcessingState;
+ /*0x6C7*/ u8 fadeScreenCounter;
+ /*0x6C8*/ bool8 readyForInit;
+ /*0x6C9*/ u8 taskId;
+ /*0x6CA*/ u8 unknown_6CA;
u8 unknown_6CB;
u16 initStep;
u16 finishStep;
@@ -121,57 +131,103 @@ struct Weather
u8 loadDroughtPalsOffset;
};
+// field_weather.c
+extern struct Weather gWeather;
+extern struct Weather *const gWeatherPtr;
+
void StartWeather(void);
void ChangeWeather(u8 weather);
-void sub_807C988(u8 effect);
-void sub_807C9B4(u8 effect);
-void Task_WeatherInit(u8);
-void Task_WeatherMain(u8);
-void sub_807CAE8(void);
-void nullsub_38(void);
-void SetWeatherScreenFadeOut(void);
-
-enum
-{
- FADE_FROM_BLACK,
- FADE_TO_BLACK,
- FADE_FROM_WHITE,
- FADE_TO_WHITE,
-};
-
-void FadeScreen(u8, s8);
-// ...
-void UpdateSpritePaletteWithWeather(u8 tag);
-void ApplyWeatherGammaShiftToPal(u8);
-// ...
-void Weather_SetBlendCoeffs(u8, u8);
-// ...
-void PlayRainSoundEffect(void);
-// ...
-void SetSav1Weather(u32);
-u8 GetSav1Weather(void);
-void sub_80AEDBC(void);
-
-void SetSav1WeatherFromCurrMapHeader(void);
-// ...
-void DoCurrentWeather(void);
-void sub_8080750(void);
-
+void sub_80AB104(u8 weather);
+void sub_80AB130(u8 weather);
+void sub_80ABC48(s8 gammaIndex);
+void sub_80ABC7C(u8 gammaIndex, u8 gammaTargetIndex, u8 gammaStepDelay);
+void FadeScreen(u8 mode, s8 delay);
bool8 IsWeatherNotFadingIn(void);
-bool8 IsWeatherChangeComplete(void);
-void SetWeather(u32);
-void UpdateWeatherPerDay(u16);
-void PreservePaletteInWeather(u8 index);
-void ResetPreservedPalettesInWeather(void);
-extern void ResetDroughtWeatherPaletteLoading(void);
+void UpdateSpritePaletteWithWeather(u8 spritePaletteIndex);
+void ApplyWeatherGammaShiftToPal(u8 paletteIndex);
+u8 sub_80ABF20(void);
+void LoadCustomWeatherSpritePalette(const u16 *palette);
void ResetDroughtWeatherPaletteLoading(void);
bool8 LoadDroughtWeatherPalettes(void);
+void sub_80ABFE0(s8 gammaIndex);
+void sub_80ABFF0(void);
+void sub_80AC01C(void);
+void Weather_SetBlendCoeffs(u8 eva, u8 evb);
+void Weather_SetTargetBlendCoeffs(u8 eva, u8 evb, int delay);
+bool8 Weather_UpdateBlend(void);
+void sub_80AC274(u8 a);
u8 GetCurrentWeather(void);
-void LoadCustomWeatherSpritePalette(const u16 *palette);
-
+void SetRainStrengthFromSoundEffect(u16 soundEffect);
+void PlayRainSoundEffect(void);
+u8 IsWeatherChangeComplete(void);
+void SetWeatherScreenFadeOut(void);
+void sub_80AC3E4(void);
+void PreservePaletteInWeather(u8 preservedPalIndex);
+void ResetPreservedPalettesInWeather(void);
-extern struct Weather gWeather;
+// field_weather_effect.c
+void Clouds_InitVars(void);
+void Clouds_Main(void);
+void Clouds_InitAll(void);
+bool8 Clouds_Finish(void);
+void Weather2_InitVars(void);
+void Weather2_Main(void);
+void Weather2_InitAll(void);
+bool8 Weather2_Finish(void);
+void LightRain_InitVars(void);
+void LightRain_Main(void);
+void LightRain_InitAll(void);
+bool8 LightRain_Finish(void);
+void Snow_InitVars(void);
+void Snow_Main(void);
+void Snow_InitAll(void);
+bool8 Snow_Finish(void);
+void MedRain_InitVars(void);
+void Rain_Main(void);
+void MedRain_InitAll(void);
+bool8 Rain_Finish(void);
+void Fog1_InitVars(void);
+void Fog1_Main(void);
+void Fog1_InitAll(void);
+bool8 Fog1_Finish(void);
+void Ash_InitVars(void);
+void Ash_Main(void);
+void Ash_InitAll(void);
+bool8 Ash_Finish(void);
+void Sandstorm_InitVars(void);
+void Sandstorm_Main(void);
+void Sandstorm_InitAll(void);
+bool8 Sandstorm_Finish(void);
+void Fog2_InitVars(void);
+void Fog2_Main(void);
+void Fog2_InitAll(void);
+bool8 Fog2_Finish(void);
+void Fog1_InitVars(void);
+void Fog1_Main(void);
+void Fog1_InitAll(void);
+bool8 Fog1_Finish(void);
+void Shade_InitVars(void);
+void Shade_Main(void);
+void Shade_InitAll(void);
+bool8 Shade_Finish(void);
+void Drought_InitVars(void);
+void Drought_Main(void);
+void Drought_InitAll(void);
+bool8 Drought_Finish(void);
+void HeavyRain_InitVars(void);
+void Rain_Main(void);
+void HeavyRain_InitAll(void);
+bool8 Rain_Finish(void);
+void Bubbles_InitVars(void);
+void Bubbles_Main(void);
+void Bubbles_InitAll(void);
+bool8 Bubbles_Finish(void);
-extern struct Weather *const gWeatherPtr;
+u8 GetSav1Weather(void);
+void SetSav1Weather(u32 weather);
+void SetSav1WeatherFromCurrMapHeader(void);
+void SetWeather(u32 weather);
+void DoCurrentWeather(void);
+void UpdateWeatherPerDay(u16 increment);
#endif // GUARD_WEATHER_H
diff --git a/include/gba/isagbprint.h b/include/gba/isagbprint.h
index c5eb456c3..1be3852e3 100644
--- a/include/gba/isagbprint.h
+++ b/include/gba/isagbprint.h
@@ -5,7 +5,7 @@
#define AGBPrintInit()
#define AGBPutc(cChr)
#define AGBPrint(pBuf)
-#define AGBPrintf(pBuf, ...)
+#define AGBPrintf(pBuf, ...)
#define AGBPrintFlush1Block()
#define AGBPrintFlush()
#define AGBAssert(pFile, nLine, pExpression, nStopProgram)
@@ -21,30 +21,30 @@ void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopP
#undef AGB_ASSERT
#ifdef NDEBUG
-#define AGB_ASSERT(exp)
+#define AGB_ASSERT(exp)
#else
-#define AGB_ASSERT(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 1);
+#define AGB_ASSERT(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 1);
#endif
#undef AGB_WARNING
#ifdef NDEBUG
-#define AGB_WARNING(exp)
+#define AGB_WARNING(exp)
#else
-#define AGB_WARNING(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 0);
+#define AGB_WARNING(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 0);
#endif
// for matching purposes
#ifdef NDEBUG
-#define AGB_ASSERT_EX(exp, file, line)
+#define AGB_ASSERT_EX(exp, file, line)
#else
-#define AGB_ASSERT_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 1);
+#define AGB_ASSERT_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 1);
#endif
#ifdef NDEBUG
-#define AGB_WARNING_EX(exp, file, line)
+#define AGB_WARNING_EX(exp, file, line)
#else
-#define AGB_WARNING_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 0);
+#define AGB_WARNING_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 0);
#endif
#endif // GUARD_GBA_ISAGBPRINT_H
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index 1f14880f0..5ed9b250a 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -294,10 +294,10 @@ struct PlayerAvatar
/*0x09*/ u8 newDirBackup; // during bike movement, the new direction as opposed to player's direction is backed up here.
/*0x0A*/ u8 bikeFrameCounter; // on the mach bike, when this value is 1, the bike is moving but not accelerating yet for 1 tile. on the acro bike, this acts as a timer for acro bike.
/*0x0B*/ u8 bikeSpeed;
- // acro bike only
+ // acro bike only
/*0x0C*/ u32 directionHistory; // up/down/left/right history is stored in each nybble, but using the field directions and not the io inputs.
/*0x10*/ u32 abStartSelectHistory; // same as above but for A + B + start + select only
- // these two are timer history arrays which [0] is the active timer for acro bike. every element is backed up to the next element upon update.
+ // these two are timer history arrays which [0] is the active timer for acro bike. every element is backed up to the next element upon update.
/*0x14*/ u8 dirTimerHistory[8];
/*0x1C*/ u8 abStartSelectTimerHistory[8];
};
diff --git a/include/global.h b/include/global.h
index cc8df049f..33a31bf4d 100644
--- a/include/global.h
+++ b/include/global.h
@@ -79,6 +79,14 @@
#define T2_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24))
#define T2_READ_PTR(ptr) (void*) T2_READ_32(ptr)
+#define S16TOPOSFLOAT(val) \
+({ \
+ s16 v = (val); \
+ float f = (float)v; \
+ if(v < 0) f += 65536.0f; \
+ f; \
+})
+
// Invalid Versions show as "----------" in Gen 4 and Gen 5's summary screen.
// In Gens 6 and 7, invalid versions instead show "a distant land" in the summary screen.
// In Gen 4 only, migrated Pokemon with Diamond, Pearl, or Platinum's ID show as "----------".
@@ -881,7 +889,7 @@ struct SaveBlock1
/*0x24*/ struct WarpData warp4;
/*0x2C*/ u16 savedMusic;
/*0x2E*/ u8 weather;
- /*0x2F*/ u8 filler_2F;
+ /*0x2F*/ u8 weatherCycleStage;
/*0x30*/ u8 flashLevel;
/*0x32*/ u16 mapLayoutId;
/*0x34*/ u16 mapView[0x100];
diff --git a/include/graphics.h b/include/graphics.h
index f51d7fa47..e2889ed86 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -3360,7 +3360,7 @@ extern const u32 gRaySceneHushBg_Gfx[];
extern const u32 gRaySceneHushRing_Gfx[];
// Pokeballs
-extern const u32 gItemIcon_MasterBall[];
+extern const u32 gItemIcon_MasterBall[];
extern const u32 gItemIconPalette_MasterBall[];
extern const u32 gItemIcon_UltraBall[];
extern const u32 gItemIconPalette_UltraBall[];
@@ -4740,4 +4740,12 @@ extern const u32 gUnknown_08D8D58C[];
extern const u32 gPokedexAreaScreenAreaUnknown_Gfx[];
extern const u16 gPokedexAreaScreenAreaUnknown_Pal[];
+// Cable Car
+extern const u32 gUnknown_08DBA5B8[];
+extern const u16 gUnknown_08DBA518[];
+extern const u32 gCableCar_Gfx[];
+extern const u32 gCableCarDoor_Gfx[];
+extern const u32 gCableCarCord_Gfx[];
+extern const u16 gCableCar_Pal[];
+
#endif //GUARD_GRAPHICS_H
diff --git a/include/menu.h b/include/menu.h
index eb525efe9..894dfd78e 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -36,6 +36,7 @@ u32 GetPlayerTextSpeed(void);
u8 GetPlayerTextSpeedDelay(void);
void sub_81978B0(u16 arg0);
void AddTextPrinterWithCallbackForMessage(bool8 a1, void (*callback)(struct TextPrinterTemplate *, u16));
+void sub_8199DF0(u32 bg, u8 a1, int a2, int a3);
void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str);
void sub_8198070(u8 windowId, bool8 copyToVram);
void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock);
diff --git a/include/overworld.h b/include/overworld.h
index 60d9d5133..1f53662b3 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -91,7 +91,7 @@ void Overworld_ClearSavedMusic(void);
void Overworld_ChangeMusicToDefault(void);
void Overworld_ChangeMusicTo(u16 newMusic);
u8 GetMapMusicFadeoutSpeed(void);
-void music_something(void);
+void TryFadeOutOldMapMusic(void);
bool8 BGMusicStopped(void);
void Overworld_FadeOutMapMusic(void);
void UpdateAmbientCry(s16 *state, u16 *delayCounter);
diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h
index a8eee9c18..5dc37c70d 100755
--- a/include/pokemon_summary_screen.h
+++ b/include/pokemon_summary_screen.h
@@ -17,10 +17,10 @@ enum PokemonSummaryScreenMode
enum PokemonSummaryScreenPage
{
- PSS_PAGE_INFO,
- PSS_PAGE_SKILLS,
- PSS_PAGE_BATTLE_MOVES,
- PSS_PAGE_CONTEST_MOVES,
+ PSS_PAGE_INFO,
+ PSS_PAGE_SKILLS,
+ PSS_PAGE_BATTLE_MOVES,
+ PSS_PAGE_CONTEST_MOVES,
};
#endif // GUARD_POKEMON_SUMMARY_SCREEN_H
diff --git a/include/roulette.h b/include/roulette.h
new file mode 100755
index 000000000..71100d0d3
--- /dev/null
+++ b/include/roulette.h
@@ -0,0 +1,34 @@
+#ifndef GUARD_ROULETTE_H
+#define GUARD_ROULETTE_H
+
+struct UnkStruct1
+{
+ u16 var00;
+ u16 var02;
+ u8 var04;
+ u8 var05;
+ u8 var06;
+ s8 var07_0:5;
+ s8 var07_5:2;
+ s8 var07_7:1;
+};
+
+struct UnkStruct3
+{
+ u8 var00_0:7;
+ u8 var00_7:1;
+ u8 var01;
+ s8 var02;
+ s8 var03;
+ struct UnkStruct1 var04;
+};
+
+struct UnkStruct0
+{
+ u8 var00;
+ u8 var01;
+ u16 var02; //flag for each UnkStruct3
+ struct UnkStruct3 var04[0x10];
+};
+
+#endif // GUARD_ROULETTE_H
diff --git a/include/roulette_util.h b/include/roulette_util.h
index f59c4e44c..964f551fe 100644
--- a/include/roulette_util.h
+++ b/include/roulette_util.h
@@ -1,17 +1,46 @@
#ifndef GUARD_ROULETTE_UTIL_H
#define GUARD_ROULETTE_UTIL_H
+struct InnerStruct203CF18_3
+{
+ u16 unk0;
+ u16 unk2;
+ u8 unk4;
+ u8 unk5;
+ u8 unk6;
+ s8 unk7_0:4;
+ s8 unk7_4:2;
+ s8 unk7_6:1;
+ s8 unk7_7:1;
+};
+
+struct InnerStruct203CF18_2
+{
+ u8 unk0;
+ u8 unk1_0:4;
+ u8 unk1_4:1;
+ s8 unk1_5:1;
+ s8 unk1_6:1;
+ u32 unk1_7:1;
+ u8 unk2;
+ u8 unk3;
+ struct InnerStruct203CF18_3 unk4;
+};
+
// structures
struct InnerStruct203CF18
{
- u8 filler[0xC4];
+ u16 unk0;
+ struct InnerStruct203CF18_2 unk4[16];
};
-void sub_8151B68(struct InnerStruct203CF18 *, const u8*);
+int sub_8151B68(struct InnerStruct203CF18 *, const struct InnerStruct203CF18_3 *);
void sub_8151B3C(struct InnerStruct203CF18 *);
-void sub_8151CA8(struct InnerStruct203CF18 *, u8, u8);
-void sub_8151C50(struct InnerStruct203CF18 *, u8, u8);
-void sub_8151D28(struct InnerStruct203CF18 *, u8, u8);
+void sub_8151CA8(struct InnerStruct203CF18 *, u16, u8);
+void sub_8151C50(struct InnerStruct203CF18 *, u16, u8);
+void sub_8151D28(struct InnerStruct203CF18 *, u16, u8);
void sub_8151E50(struct InnerStruct203CF18 *);
+void sub_8152008(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height);
+void sub_8152058(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height);
#endif // GUARD_ROULETTE_UTIL_H
diff --git a/include/save.h b/include/save.h
index b151f1064..42ce8b3f3 100644
--- a/include/save.h
+++ b/include/save.h
@@ -25,8 +25,8 @@ struct UnkSaveSection
struct SaveSectionOffsets
{
- u16 toAdd;
- u16 size;
+ u16 toAdd;
+ u16 size;
};
// Emerald changes this definition to be the sectors per slot.
@@ -48,7 +48,7 @@ enum
SAVE_NORMAL,
SAVE_LINK,
//EREADER_SAVE, // deprecated in Emerald
- SAVE_LINK2, // unknown 2nd link save
+ SAVE_LINK2, // unknown 2nd link save
SAVE_HALL_OF_FAME,
SAVE_OVERWRITE_DIFFERENT_FILE,
SAVE_HALL_OF_FAME_ERASE_BEFORE // unused
diff --git a/include/shop.h b/include/shop.h
index 7f2d877dc..1e4ffdb5c 100644
--- a/include/shop.h
+++ b/include/shop.h
@@ -17,7 +17,7 @@ enum
X_COORD,
Y_COORD,
ANIM_NUM,
- LAYER_TYPE
+ LAYER_TYPE
};
struct MartInfo
@@ -32,16 +32,16 @@ struct MartInfo
struct ShopData
{
- /*0x0000*/ u16 tilemapBuffers[4][0x400];
- /*0x2000*/ u32 totalCost;
- /*0x2004*/ u16 itemsShowed;
- /*0x2006*/ u16 selectedRow;
- /*0x2008*/ u16 scrollOffset;
- /*0x200A*/ u8 maxQuantity;
- /*0x200B*/ u8 scrollIndicatorsTaskId;
- /*0x200C*/ u8 iconSlot;
- /*0x200D*/ u8 itemSpriteIds[2];
- /*0x2010*/ s16 viewportObjects[16][5];
+ /*0x0000*/ u16 tilemapBuffers[4][0x400];
+ /*0x2000*/ u32 totalCost;
+ /*0x2004*/ u16 itemsShowed;
+ /*0x2006*/ u16 selectedRow;
+ /*0x2008*/ u16 scrollOffset;
+ /*0x200A*/ u8 maxQuantity;
+ /*0x200B*/ u8 scrollIndicatorsTaskId;
+ /*0x200C*/ u8 iconSlot;
+ /*0x200D*/ u8 itemSpriteIds[2];
+ /*0x2010*/ s16 viewportObjects[16][5];
};
void CreatePokemartMenu(const u16 *);
diff --git a/include/strings.h b/include/strings.h
index 29807386d..f0df4bdec 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -1000,44 +1000,44 @@ extern const u8 gUnknown_085E8840[];
extern const u8 gUnknown_085E887C[];
extern const u8 gUnknown_085E88A6[];
extern const u8 gUnknown_085E88C8[];
-extern const u8 gUnknown_085E88DF[];
-extern const u8 gUnknown_085E88E9[];
-extern const u8 gUnknown_085E88F6[];
-extern const u8 gUnknown_085E8905[];
-extern const u8 gUnknown_085E8911[];
-extern const u8 gUnknown_085E891F[];
-extern const u8 gUnknown_085E892D[];
-extern const u8 gUnknown_085E893A[];
-extern const u8 gUnknown_085E8948[];
-extern const u8 gUnknown_085E894C[];
-extern const u8 gUnknown_085E8950[];
-extern const u8 gUnknown_085E8954[];
-extern const u8 gUnknown_085E8958[];
-extern const u8 gUnknown_085E895C[];
-extern const u8 gUnknown_085E8960[];
-extern const u8 gUnknown_085E8964[];
-extern const u8 gUnknown_085E8968[];
-extern const u8 gUnknown_085E896B[];
-extern const u8 gUnknown_085E896F[];
-extern const u8 gUnknown_085E8974[];
-extern const u8 gUnknown_085E897B[];
-extern const u8 gUnknown_085E8981[];
-extern const u8 gUnknown_085E8987[];
-extern const u8 gUnknown_085E898D[];
-extern const u8 gUnknown_085E8994[];
-extern const u8 gUnknown_085E8999[];
-extern const u8 gUnknown_085E899F[];
-extern const u8 gUnknown_085E89A4[];
-extern const u8 gUnknown_085E89BB[];
-extern const u8 gUnknown_085E89D4[];
-extern const u8 gUnknown_085E8A02[];
-extern const u8 gUnknown_085E8A37[];
-extern const u8 gUnknown_085E8A73[];
-extern const u8 gUnknown_085E8AAF[];
-extern const u8 gUnknown_085E8AEA[];
-extern const u8 gUnknown_085E8B25[];
-extern const u8 gUnknown_085E8B26[];
-extern const u8 gUnknown_085E8B35[];
+extern const u8 gText_DexHoennTitle[];
+extern const u8 gText_DexNatTitle[];
+extern const u8 gText_DexSortNumericalTitle[];
+extern const u8 gText_DexSortAtoZTitle[];
+extern const u8 gText_DexSortHeaviestTitle[];
+extern const u8 gText_DexSortLightestTitle[];
+extern const u8 gText_DexSortTallestTitle[];
+extern const u8 gText_DexSortSmallestTitle[];
+extern const u8 gText_DexSearchAlphaABC[];
+extern const u8 gText_DexSearchAlphaDEF[];
+extern const u8 gText_DexSearchAlphaGHI[];
+extern const u8 gText_DexSearchAlphaJKL[];
+extern const u8 gText_DexSearchAlphaMNO[];
+extern const u8 gText_DexSearchAlphaPQR[];
+extern const u8 gText_DexSearchAlphaSTU[];
+extern const u8 gText_DexSearchAlphaVWX[];
+extern const u8 gText_DexSearchAlphaYZ[];
+extern const u8 gText_DexSearchColorRed[];
+extern const u8 gText_DexSearchColorBlue[];
+extern const u8 gText_DexSearchColorYellow[];
+extern const u8 gText_DexSearchColorGreen[];
+extern const u8 gText_DexSearchColorBlack[];
+extern const u8 gText_DexSearchColorBrown[];
+extern const u8 gText_DexSearchColorPurple[];
+extern const u8 gText_DexSearchColorGray[];
+extern const u8 gText_DexSearchColorWhite[];
+extern const u8 gText_DexSearchColorPink[];
+extern const u8 gText_DexHoennDescription[];
+extern const u8 gText_DexNatDescription[];
+extern const u8 gText_DexSortNumericalDescription[];
+extern const u8 gText_DexSortAtoZDescription[];
+extern const u8 gText_DexSortHeaviestDescription[];
+extern const u8 gText_DexSortLightestDescription[];
+extern const u8 gText_DexSortTallestDescription[];
+extern const u8 gText_DexSortSmallestDescription[];
+extern const u8 gText_DexEmptyString[];
+extern const u8 gText_DexSearchDontSpecify[];
+extern const u8 gText_DexSearchTypeNone[];
extern const u8 gUnknown_085EAEC3[];
extern const u8 gUnknown_085EAED6[];
diff --git a/include/trainer_see.h b/include/trainer_see.h
index 43f8b82d2..a9b92d71b 100644
--- a/include/trainer_see.h
+++ b/include/trainer_see.h
@@ -19,7 +19,7 @@ extern u8 gApproachingTrainerId;
bool8 CheckForTrainersWantingBattle(void);
void sub_80B4578(struct EventObject *var);
void EndTrainerApproach(void);
-void sub_80B45D0(void);
+void TryPrepareSecondApproachingTrainer(void);
u8 FldEff_ExclamationMarkIcon(void);
u8 FldEff_QuestionMarkIcon(void);
u8 FldEff_HeartIcon(void);