summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle.h11
-rw-r--r--include/battle_setup.h8
-rw-r--r--include/constants/opponents.h1388
-rw-r--r--include/constants/species.h832
-rw-r--r--include/global.h4
-rw-r--r--include/graphics.h4
-rw-r--r--include/pokemon_storage_system.h36
-rw-r--r--include/secret_base.h2
8 files changed, 1572 insertions, 713 deletions
diff --git a/include/battle.h b/include/battle.h
index 06a390cdf..ac95f6fff 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -3,6 +3,7 @@
#include "sprite.h"
#include "constants/battle_constants.h"
+#include "battle_setup.h"
#define GET_BATTLER_POSITION(bank)((gBattlerPositions[bank]))
#define GET_BATTLER_SIDE(bank)((GetBattlerPosition(bank) & BIT_SIDE))
@@ -60,6 +61,14 @@ enum
BATTLE_TERRAIN_PLAIN,
};
+union TrainerMonPtr
+{
+ const struct TrainerMonNoItemDefaultMoves *NoItemDefaultMoves;
+ const struct TrainerMonNoItemCustomMoves *NoItemCustomMoves;
+ const struct TrainerMonItemDefaultMoves *ItemDefaultMoves;
+ const struct TrainerMonItemCustomMoves *ItemCustomMoves;
+};
+
struct Trainer
{
/*0x00*/ u8 partyFlags;
@@ -71,7 +80,7 @@ struct Trainer
/*0x18*/ bool8 doubleBattle;
/*0x1C*/ u32 aiFlags;
/*0x20*/ u8 partySize;
- /*0x24*/ const void *party;
+ /*0x24*/ union TrainerMonPtr party;
};
struct BattleHistory
diff --git a/include/battle_setup.h b/include/battle_setup.h
index 88afcdf0a..fec5a249a 100644
--- a/include/battle_setup.h
+++ b/include/battle_setup.h
@@ -5,7 +5,7 @@
#define TRAINER_REMATCH_STEPS 255
// IV + LEVEL + SPECIES
-struct TrainerPartyMember0
+struct TrainerMonNoItemDefaultMoves
{
u16 iv;
u8 level;
@@ -13,7 +13,7 @@ struct TrainerPartyMember0
};
// IV + LEVEL + SPECIES + MOVES
-struct TrainerPartyMember1
+struct TrainerMonNoItemCustomMoves
{
u16 iv;
u8 level;
@@ -22,7 +22,7 @@ struct TrainerPartyMember1
};
// IV + LEVEL + SPECIES + ITEMS
-struct TrainerPartyMember2
+struct TrainerMonItemDefaultMoves
{
u16 iv;
u8 level;
@@ -31,7 +31,7 @@ struct TrainerPartyMember2
};
// IV + LEVEL + SPECIES + ITEMS + MOVES
-struct TrainerPartyMember3
+struct TrainerMonItemCustomMoves
{
u16 iv;
u8 level;
diff --git a/include/constants/opponents.h b/include/constants/opponents.h
index d907153bd..11dd87ec4 100644
--- a/include/constants/opponents.h
+++ b/include/constants/opponents.h
@@ -1,699 +1,699 @@
#ifndef GUARD_CONSTANTS_OPPONENTS_H
#define GUARD_CONSTANTS_OPPONENTS_H
-#define OPPONENT_NONE 0
-#define OPPONENT_ARCHIE_1 1
-#define OPPONENT_GRUNT_1 2
-#define OPPONENT_GRUNT_2 3
-#define OPPONENT_GRUNT_3 4
-#define OPPONENT_GRUNT_4 5
-#define OPPONENT_GRUNT_5 6
-#define OPPONENT_GRUNT_6 7
-#define OPPONENT_GRUNT_7 8
-#define OPPONENT_GRUNT_8 9
-#define OPPONENT_GRUNT_9 10
-#define OPPONENT_GRUNT_10 11
-#define OPPONENT_GRUNT_11 12
-#define OPPONENT_GRUNT_12 13
-#define OPPONENT_GRUNT_13 14
-#define OPPONENT_GRUNT_14 15
-#define OPPONENT_GRUNT_15 16
-#define OPPONENT_GRUNT_16 17
-#define OPPONENT_GRUNT_17 18
-#define OPPONENT_GRUNT_18 19
-#define OPPONENT_GRUNT_19 20
-#define OPPONENT_GRUNT_20 21
-#define OPPONENT_GRUNT_21 22
-#define OPPONENT_GRUNT_22 23
-#define OPPONENT_GRUNT_23 24
-#define OPPONENT_GRUNT_24 25
-#define OPPONENT_GRUNT_25 26
-#define OPPONENT_GRUNT_26 27
-#define OPPONENT_GRUNT_27 28
-#define OPPONENT_ANONYMOUS_1 29
-#define OPPONENT_MATT_1 30
-#define OPPONENT_MATT_2 31
-#define OPPONENT_SHELLY_1 32
-#define OPPONENT_SHELLY_2 33
-#define OPPONENT_ARCHIE_2 34
-#define OPPONENT_ARCHIE_3 35
-#define OPPONENT_DAISY 36
-#define OPPONENT_ROSE_1 37
-#define OPPONENT_LILY 38
-#define OPPONENT_VIOLET 39
-#define OPPONENT_ROSE_2 40
-#define OPPONENT_ROSE_3 41
-#define OPPONENT_ROSE_4 42
-#define OPPONENT_ROSE_5 43
-#define OPPONENT_DUSTY_1 44
-#define OPPONENT_CHIP 45
-#define OPPONENT_FOSTER 46
-#define OPPONENT_DUSTY_2 47
-#define OPPONENT_DUSTY_3 48
-#define OPPONENT_DUSTY_4 49
-#define OPPONENT_DUSTY_5 50
-#define OPPONENT_GABBY_AND_TY_1 51
-#define OPPONENT_GABBY_AND_TY_2 52
-#define OPPONENT_GABBY_AND_TY_3 53
-#define OPPONENT_GABBY_AND_TY_4 54
-#define OPPONENT_GABBY_AND_TY_5 55
-#define OPPONENT_GABBY_AND_TY_6 56
-#define OPPONENT_LOLA_1 57
-#define OPPONENT_CARMEN 58
-#define OPPONENT_GWEN 59
-#define OPPONENT_LOLA_2 60
-#define OPPONENT_LOLA_3 61
-#define OPPONENT_LOLA_4 62
-#define OPPONENT_LOLA_5 63
-#define OPPONENT_RICKY_1 64
-#define OPPONENT_SIMON 65
-#define OPPONENT_CHARLIE 66
-#define OPPONENT_RICKY_2 67
-#define OPPONENT_RICKY_3 68
-#define OPPONENT_RICKY_4 69
-#define OPPONENT_RICKY_5 70
-#define OPPONENT_RANDALL 71
-#define OPPONENT_PARKER 72
-#define OPPONENT_GEORGE 73
-#define OPPONENT_BERKE 74
-#define OPPONENT_CLYDE 75
-#define OPPONENT_VINCENT 76
-#define OPPONENT_LEROY 77
-#define OPPONENT_WILTON_1 78
-#define OPPONENT_EDGAR 79
-#define OPPONENT_ALBERT 80
-#define OPPONENT_SAMUEL 81
-#define OPPONENT_VITO 82
-#define OPPONENT_OWEN 83
-#define OPPONENT_WILTON_2 84
-#define OPPONENT_WILTON_3 85
-#define OPPONENT_WILTON_4 86
-#define OPPONENT_WILTON_5 87
-#define OPPONENT_WARREN 88
-#define OPPONENT_MARY 89
-#define OPPONENT_LORI 90
-#define OPPONENT_JODY 91
-#define OPPONENT_WENDY 92
-#define OPPONENT_ELAINE 93
-#define OPPONENT_BROOKE_1 94
-#define OPPONENT_JENNIFER 95
-#define OPPONENT_HOPE 96
-#define OPPONENT_SHANNON 97
-#define OPPONENT_MICHELLE 98
-#define OPPONENT_CAROLINE 99
-#define OPPONENT_JULIE 100
-#define OPPONENT_BROOKE_2 101
-#define OPPONENT_BROOKE_3 102
-#define OPPONENT_BROOKE_4 103
-#define OPPONENT_BROOKE_5 104
-#define OPPONENT_PATRICIA 105
-#define OPPONENT_KINDRA 106
-#define OPPONENT_TAMMY 107
-#define OPPONENT_VALERIE_1 108
-#define OPPONENT_TASHA 109
-#define OPPONENT_VALERIE_2 110
-#define OPPONENT_VALERIE_3 111
-#define OPPONENT_VALERIE_4 112
-#define OPPONENT_VALERIE_5 113
-#define OPPONENT_CINDY_1 114
-#define OPPONENT_ANONYMOUS_2 115
-#define OPPONENT_BRIANNA_1 116
-#define OPPONENT_CINDY_2 117
-#define OPPONENT_BRIANNA_2 118
-#define OPPONENT_ANETTE 119
-#define OPPONENT_CINDY_3 120
-#define OPPONENT_CINDY_4 121
-#define OPPONENT_CINDY_5 122
-#define OPPONENT_CINDY_6 123
-#define OPPONENT_MELISSA 124
-#define OPPONENT_SHEILA 125
-#define OPPONENT_SHIRLEY 126
-#define OPPONENT_JESSICA_1 127
-#define OPPONENT_CONNIE 128
-#define OPPONENT_BRIDGET 129
-#define OPPONENT_OLIVIA 130
-#define OPPONENT_TIFFANY 131
-#define OPPONENT_JESSICA_2 132
-#define OPPONENT_JESSICA_3 133
-#define OPPONENT_JESSICA_4 134
-#define OPPONENT_JESSICA_5 135
-#define OPPONENT_WINSTON_1 136
-#define OPPONENT_ANONYMOUS_3 137
-#define OPPONENT_GARRET 138
-#define OPPONENT_WINSTON_2 139
-#define OPPONENT_WINSTON_3 140
-#define OPPONENT_WINSTON_4 141
-#define OPPONENT_WINSTON_5 142
-#define OPPONENT_STEVE_1 143
-#define OPPONENT_CHRIS 144
-#define OPPONENT_MARK 145
-#define OPPONENT_KENN 146
-#define OPPONENT_STEVE_2 147
-#define OPPONENT_STEVE_3 148
-#define OPPONENT_STEVE_4 149
-#define OPPONENT_STEVE_5 150
-#define OPPONENT_LUIS 151
-#define OPPONENT_AUSTIN 152
-#define OPPONENT_DOUGLAS 153
-#define OPPONENT_DARRIN 154
-#define OPPONENT_TONY_1 155
-#define OPPONENT_JEROME 156
-#define OPPONENT_MATTHEW 157
-#define OPPONENT_DAVID 158
-#define OPPONENT_SPENCER 159
-#define OPPONENT_ROLAND 160
-#define OPPONENT_CODY 161
-#define OPPONENT_STAN 162
-#define OPPONENT_BARRY 163
-#define OPPONENT_DEAN 164
-#define OPPONENT_RODNEY 165
-#define OPPONENT_RICHARD 166
-#define OPPONENT_HERMAN 167
-#define OPPONENT_ANONYMOUS_4 168
-#define OPPONENT_GILBERT 169
-#define OPPONENT_FRANKLIN 170
-#define OPPONENT_DANNY 171
-#define OPPONENT_JACK 172
-#define OPPONENT_DUDLEY 173
-#define OPPONENT_CHAD 174
-#define OPPONENT_TONY_2 175
-#define OPPONENT_TONY_3 176
-#define OPPONENT_TONY_4 177
-#define OPPONENT_TONY_5 178
-#define OPPONENT_HIDEKI 179
-#define OPPONENT_HITOSHI 180
-#define OPPONENT_KIYO 181
-#define OPPONENT_KOICHI 182
-#define OPPONENT_NOB_1 183
-#define OPPONENT_NOB_2 184
-#define OPPONENT_NOB_3 185
-#define OPPONENT_NOB_4 186
-#define OPPONENT_NOB_5 187
-#define OPPONENT_YUJI 188
-#define OPPONENT_DAISUKE 189
-#define OPPONENT_ATSUSHI 190
-#define OPPONENT_KIRK 191
-#define OPPONENT_SCOTT 192
-#define OPPONENT_HARVEY 193
-#define OPPONENT_SHAWN 194
-#define OPPONENT_RANDY 195
-#define OPPONENT_DALTON_1 196
-#define OPPONENT_DALTON_2 197
-#define OPPONENT_DALTON_3 198
-#define OPPONENT_DALTON_4 199
-#define OPPONENT_DALTON_5 200
-#define OPPONENT_COLE 201
-#define OPPONENT_FLINT 202
-#define OPPONENT_AXLE 203
-#define OPPONENT_JAKE 204
-#define OPPONENT_ANDY 205
-#define OPPONENT_BERNIE_1 206
-#define OPPONENT_BERNIE_2 207
-#define OPPONENT_BERNIE_3 208
-#define OPPONENT_BERNIE_4 209
-#define OPPONENT_BERNIE_5 210
-#define OPPONENT_DREW 211
-#define OPPONENT_CLIFF 212
-#define OPPONENT_LARRY 213
-#define OPPONENT_SHANE 214
-#define OPPONENT_JUSTIN 215
-#define OPPONENT_ETHAN_1 216
-#define OPPONENT_JEFF 217
-#define OPPONENT_TRAVIS 218
-#define OPPONENT_ETHAN_2 219
-#define OPPONENT_ETHAN_3 220
-#define OPPONENT_ETHAN_4 221
-#define OPPONENT_ETHAN_5 222
-#define OPPONENT_BRENT 223
-#define OPPONENT_DONALD 224
-#define OPPONENT_TAYLOR 225
-#define OPPONENT_BRANDON_1 226
-#define OPPONENT_DEREK 227
-#define OPPONENT_BRANDON_2 228
-#define OPPONENT_BRANDON_3 229
-#define OPPONENT_BRANDON_4 230
-#define OPPONENT_BRANDON_5 231
-#define OPPONENT_EDWARD 232
-#define OPPONENT_PRESTON 233
-#define OPPONENT_VIRGIL 234
-#define OPPONENT_FRITZ 235
-#define OPPONENT_WILLIAM 236
-#define OPPONENT_JOSHUA 237
-#define OPPONENT_CAMERON_1 238
-#define OPPONENT_CAMERON_2 239
-#define OPPONENT_CAMERON_3 240
-#define OPPONENT_CAMERON_4 241
-#define OPPONENT_CAMERON_5 242
-#define OPPONENT_JACLYN 243
-#define OPPONENT_HANNAH 244
-#define OPPONENT_SAMANTHA 245
-#define OPPONENT_MAURA 246
-#define OPPONENT_KAYLA 247
-#define OPPONENT_ALEXIS 248
-#define OPPONENT_JACKI_1 249
-#define OPPONENT_JACKI_2 250
-#define OPPONENT_JACKI_3 251
-#define OPPONENT_JACKI_4 252
-#define OPPONENT_JACKI_5 253
-#define OPPONENT_WALTER_1 254
-#define OPPONENT_TUCKER 255
-#define OPPONENT_THOMAS 256
-#define OPPONENT_WALTER_2 257
-#define OPPONENT_WALTER_3 258
-#define OPPONENT_WALTER_4 259
-#define OPPONENT_WALTER_5 260
-#define OPPONENT_SIDNEY 261
-#define OPPONENT_PHOEBE 262
-#define OPPONENT_GLACIA 263
-#define OPPONENT_DRAKE 264
-#define OPPONENT_ROXANNE 265
-#define OPPONENT_BRAWLY 266
-#define OPPONENT_WATTSON 267
-#define OPPONENT_FLANNERY 268
-#define OPPONENT_NORMAN 269
-#define OPPONENT_WINONA 270
-#define OPPONENT_TATE_AND_LIZA 271
-#define OPPONENT_WALLACE 272
-#define OPPONENT_JERRY_1 273
-#define OPPONENT_TED 274
-#define OPPONENT_PAUL 275
-#define OPPONENT_JERRY_2 276
-#define OPPONENT_JERRY_3 277
-#define OPPONENT_JERRY_4 278
-#define OPPONENT_JERRY_5 279
-#define OPPONENT_KAREN_1 280
-#define OPPONENT_GEORGIA 281
-#define OPPONENT_KAREN_2 282
-#define OPPONENT_KAREN_3 283
-#define OPPONENT_KAREN_4 284
-#define OPPONENT_KAREN_5 285
-#define OPPONENT_KATE_AND_JOY 286
-#define OPPONENT_ANNA_AND_MEG_1 287
-#define OPPONENT_ANNA_AND_MEG_2 288
-#define OPPONENT_ANNA_AND_MEG_3 289
-#define OPPONENT_ANNA_AND_MEG_4 290
-#define OPPONENT_ANNA_AND_MEG_5 291
-#define OPPONENT_VICTOR 292
-#define OPPONENT_MIGUEL_1 293
-#define OPPONENT_COLTON 294
-#define OPPONENT_MIGUEL_2 295
-#define OPPONENT_MIGUEL_3 296
-#define OPPONENT_MIGUEL_4 297
-#define OPPONENT_MIGUEL_5 298
-#define OPPONENT_VICTORIA 299
-#define OPPONENT_VANESSA 300
-#define OPPONENT_MARISSA 301
-#define OPPONENT_ISABEL_1 302
-#define OPPONENT_ISABEL_2 303
-#define OPPONENT_ISABEL_3 304
-#define OPPONENT_ISABEL_4 305
-#define OPPONENT_ISABEL_5 306
-#define OPPONENT_TIMOTHY_1 307
-#define OPPONENT_TIMOTHY_2 308
-#define OPPONENT_TIMOTHY_3 309
-#define OPPONENT_TIMOTHY_4 310
-#define OPPONENT_TIMOTHY_5 311
-#define OPPONENT_VICKY 312
-#define OPPONENT_SHELBY_1 313
-#define OPPONENT_SHELBY_2 314
-#define OPPONENT_SHELBY_3 315
-#define OPPONENT_SHELBY_4 316
-#define OPPONENT_SHELBY_5 317
-#define OPPONENT_CALVIN_1 318
-#define OPPONENT_BILLY 319
-#define OPPONENT_JOSH 320
-#define OPPONENT_TOMMY 321
-#define OPPONENT_JOEY 322
-#define OPPONENT_BEN 323
-#define OPPONENT_ANONYMOUS_5 324
-#define OPPONENT_KEVIN 325
-#define OPPONENT_NEAL 326
-#define OPPONENT_DILLON 327
-#define OPPONENT_CALVIN_2 328
-#define OPPONENT_CALVIN_3 329
-#define OPPONENT_CALVIN_4 330
-#define OPPONENT_CALVIN_5 331
-#define OPPONENT_EDDIE 332
-#define OPPONENT_ALLEN 333
-#define OPPONENT_TIMMY 334
-#define OPPONENT_STEVEN 335
-#define OPPONENT_ANDREW 336
-#define OPPONENT_IVAN 337
-#define OPPONENT_CLAUDE 338
-#define OPPONENT_ELLIOT_1 339
-#define OPPONENT_NED 340
-#define OPPONENT_DALE 341
-#define OPPONENT_NOLAN 342
-#define OPPONENT_BARNY 343
-#define OPPONENT_WADE 344
-#define OPPONENT_CARTER 345
-#define OPPONENT_ELLIOT_2 346
-#define OPPONENT_ELLIOT_3 347
-#define OPPONENT_ELLIOT_4 348
-#define OPPONENT_ELLIOT_5 349
-#define OPPONENT_RONALD 350
-#define OPPONENT_JACOB 351
-#define OPPONENT_ANTHONY 352
-#define OPPONENT_BENJAMIN_1 353
-#define OPPONENT_BENJAMIN_2 354
-#define OPPONENT_BENJAMIN_3 355
-#define OPPONENT_BENJAMIN_4 356
-#define OPPONENT_BENJAMIN_5 357
-#define OPPONENT_ABIGAIL_1 358
-#define OPPONENT_JASMINE 359
-#define OPPONENT_ABIGAIL_2 360
-#define OPPONENT_ABIGAIL_3 361
-#define OPPONENT_ABIGAIL_4 362
-#define OPPONENT_ABIGAIL_5 363
-#define OPPONENT_DYLAN_1 364
-#define OPPONENT_DYLAN_2 365
-#define OPPONENT_DYLAN_3 366
-#define OPPONENT_DYLAN_4 367
-#define OPPONENT_DYLAN_5 368
-#define OPPONENT_MARIA_1 369
-#define OPPONENT_MARIA_2 370
-#define OPPONENT_MARIA_3 371
-#define OPPONENT_MARIA_4 372
-#define OPPONENT_MARIA_5 373
-#define OPPONENT_CALEB 374
-#define OPPONENT_ANONYMOUS_6 375
-#define OPPONENT_ISAIAH_1 376
-#define OPPONENT_ANONYMOUS_7 377
-#define OPPONENT_CHASE 378
-#define OPPONENT_ISAIAH_2 379
-#define OPPONENT_ISAIAH_3 380
-#define OPPONENT_ISAIAH_4 381
-#define OPPONENT_ISAIAH_5 382
-#define OPPONENT_ANONYMOUS_8 383
-#define OPPONENT_CONNOR 384
-#define OPPONENT_ANONYMOUS_9 385
-#define OPPONENT_KATELYN_1 386
-#define OPPONENT_ALLISON 387
-#define OPPONENT_KATELYN_2 388
-#define OPPONENT_KATELYN_3 389
-#define OPPONENT_KATELYN_4 390
-#define OPPONENT_KATELYN_5 391
-#define OPPONENT_NICOLAS_1 392
-#define OPPONENT_NICOLAS_2 393
-#define OPPONENT_NICOLAS_3 394
-#define OPPONENT_NICOLAS_4 395
-#define OPPONENT_NICOLAS_5 396
-#define OPPONENT_AARON 397
-#define OPPONENT_PERRY 398
-#define OPPONENT_HUGH 399
-#define OPPONENT_PHIL 400
-#define OPPONENT_JARED 401
-#define OPPONENT_ANONYMOUS_10 402
-#define OPPONENT_TANNER 403
-#define OPPONENT_WILL 404
-#define OPPONENT_COLIN 405
-#define OPPONENT_ROBERT_1 406
-#define OPPONENT_BENNY 407
-#define OPPONENT_CHESTER 408
-#define OPPONENT_ROBERT_2 409
-#define OPPONENT_ROBERT_3 410
-#define OPPONENT_ROBERT_4 411
-#define OPPONENT_ROBERT_5 412
-#define OPPONENT_ALEX 413
-#define OPPONENT_BECK 414
-#define OPPONENT_YASU 415
-#define OPPONENT_TAKASHI 416
-#define OPPONENT_MAKOTO 417
-#define OPPONENT_HIDEO_1 418
-#define OPPONENT_LAO_1 419
-#define OPPONENT_LUNG 420
-#define OPPONENT_LAO_2 421
-#define OPPONENT_LAO_3 422
-#define OPPONENT_LAO_4 423
-#define OPPONENT_LAO_5 424
-#define OPPONENT_TESSA 425
-#define OPPONENT_LAURA 426
-#define OPPONENT_CYNDY_1 427
-#define OPPONENT_CORA 428
-#define OPPONENT_JILL 429
-#define OPPONENT_CYNDY_2 430
-#define OPPONENT_CYNDY_3 431
-#define OPPONENT_CYNDY_4 432
-#define OPPONENT_CYNDY_5 433
-#define OPPONENT_MADELINE_1 434
-#define OPPONENT_CLARISSA 435
-#define OPPONENT_ANGELICA 436
-#define OPPONENT_MADELINE_2 437
-#define OPPONENT_MADELINE_3 438
-#define OPPONENT_MADELINE_4 439
-#define OPPONENT_MADELINE_5 440
-#define OPPONENT_BEVERLY 441
-#define OPPONENT_DAWN 442
-#define OPPONENT_NICOLE 443
-#define OPPONENT_DENISE 444
-#define OPPONENT_BETH 445
-#define OPPONENT_TARA 446
-#define OPPONENT_MISSY 447
-#define OPPONENT_ALICE 448
-#define OPPONENT_JENNY_1 449
-#define OPPONENT_GRACE 450
-#define OPPONENT_TANYA 451
-#define OPPONENT_SHARON 452
-#define OPPONENT_NIKKI 453
-#define OPPONENT_BRENDA 454
-#define OPPONENT_KATIE 455
-#define OPPONENT_SUSIE 456
-#define OPPONENT_KARA 457
-#define OPPONENT_DANA 458
-#define OPPONENT_ERIN 459
-#define OPPONENT_DEBRA 460
-#define OPPONENT_LINDA 461
-#define OPPONENT_KAYLEE 462
-#define OPPONENT_LAUREL 463
-#define OPPONENT_DARCY 464
-#define OPPONENT_JENNY_2 465
-#define OPPONENT_JENNY_3 466
-#define OPPONENT_JENNY_4 467
-#define OPPONENT_JENNY_5 468
-#define OPPONENT_HEIDI 469
-#define OPPONENT_BECKY 470
-#define OPPONENT_CAROL 471
-#define OPPONENT_NANCY 472
-#define OPPONENT_MARTHA 473
-#define OPPONENT_DIANA_1 474
-#define OPPONENT_NINA 475
-#define OPPONENT_IRENE 476
-#define OPPONENT_DIANA_2 477
-#define OPPONENT_DIANA_3 478
-#define OPPONENT_DIANA_4 479
-#define OPPONENT_DIANA_5 480
-#define OPPONENT_AMY_AND_LIV_1 481
-#define OPPONENT_AMY_AND_LIV_2 482
-#define OPPONENT_GINA_AND_MIA_1 483
-#define OPPONENT_MIU_AND_YUKI 484
-#define OPPONENT_AMY_AND_LIV_3 485
-#define OPPONENT_GINA_AND_MIA_2 486
-#define OPPONENT_AMY_AND_LIV_4 487
-#define OPPONENT_AMY_AND_LIV_5 488
-#define OPPONENT_AMY_AND_LIV_6 489
-#define OPPONENT_HUEY 490
-#define OPPONENT_EDMOND 491
-#define OPPONENT_ERNEST_1 492
-#define OPPONENT_DWAYNE 493
-#define OPPONENT_PHILLIP 494
-#define OPPONENT_LEONARD 495
-#define OPPONENT_DUNCAN 496
-#define OPPONENT_ERNEST_2 497
-#define OPPONENT_ERNEST_3 498
-#define OPPONENT_ERNEST_4 499
-#define OPPONENT_ERNEST_5 500
-#define OPPONENT_ANONYMOUS_11 501
-#define OPPONENT_ANONYMOUS_12 502
-#define OPPONENT_ANONYMOUS_13 503
-#define OPPONENT_SONNY 504
-#define OPPONENT_DONOVAN 505
-#define OPPONENT_GERALD 506
-#define OPPONENT_KELVIN 507
-#define OPPONENT_KODY 508
-#define OPPONENT_TEVIN 509
-#define OPPONENT_DAMON 510
-#define OPPONENT_PABLO 511
-#define OPPONENT_EDWIN_1 512
-#define OPPONENT_HECTOR_1 513
-#define OPPONENT_HECTOR_2 514
-#define OPPONENT_EDWIN_2 515
-#define OPPONENT_EDWIN_3 516
-#define OPPONENT_EDWIN_4 517
-#define OPPONENT_EDWIN_5 518
-#define OPPONENT_WALLY_1 519
-#define OPPONENT_BRENDAN_1 520
-#define OPPONENT_BRENDAN_2 521
-#define OPPONENT_BRENDAN_3 522
-#define OPPONENT_BRENDAN_4 523
-#define OPPONENT_BRENDAN_5 524
-#define OPPONENT_BRENDAN_6 525
-#define OPPONENT_BRENDAN_7 526
-#define OPPONENT_BRENDAN_8 527
-#define OPPONENT_BRENDAN_9 528
-#define OPPONENT_MAY_1 529
-#define OPPONENT_MAY_2 530
-#define OPPONENT_MAY_3 531
-#define OPPONENT_MAY_4 532
-#define OPPONENT_MAY_5 533
-#define OPPONENT_MAY_6 534
-#define OPPONENT_MAY_7 535
-#define OPPONENT_MAY_8 536
-#define OPPONENT_MAY_9 537
-#define OPPONENT_ISAAC_1 538
-#define OPPONENT_RILEY 539
-#define OPPONENT_AIDAN 540
-#define OPPONENT_ISAAC_2 541
-#define OPPONENT_ISAAC_3 542
-#define OPPONENT_ISAAC_4 543
-#define OPPONENT_ISAAC_5 544
-#define OPPONENT_LYDIA_1 545
-#define OPPONENT_ALEXIA 546
-#define OPPONENT_DANIELLE 547
-#define OPPONENT_LYDIA_2 548
-#define OPPONENT_LYDIA_3 549
-#define OPPONENT_LYDIA_4 550
-#define OPPONENT_LYDIA_5 551
-#define OPPONENT_JACKSON_1 552
-#define OPPONENT_CARLOS 553
-#define OPPONENT_SEBASTIAN 554
-#define OPPONENT_JACKSON_2 555
-#define OPPONENT_JACKSON_3 556
-#define OPPONENT_JACKSON_4 557
-#define OPPONENT_JACKSON_5 558
-#define OPPONENT_CATHERINE_1 559
-#define OPPONENT_JENNA 560
-#define OPPONENT_SOPHIA 561
-#define OPPONENT_CATHERINE_2 562
-#define OPPONENT_CATHERINE_3 563
-#define OPPONENT_CATHERINE_4 564
-#define OPPONENT_CATHERINE_5 565
-#define OPPONENT_MAXIE_1 566
-#define OPPONENT_GRUNT_28 567
-#define OPPONENT_GRUNT_29 568
-#define OPPONENT_GRUNT_30 569
-#define OPPONENT_GRUNT_31 570
-#define OPPONENT_GRUNT_32 571
-#define OPPONENT_GRUNT_33 572
-#define OPPONENT_GRUNT_34 573
-#define OPPONENT_GRUNT_35 574
-#define OPPONENT_GRUNT_36 575
-#define OPPONENT_GRUNT_37 576
-#define OPPONENT_GRUNT_38 577
-#define OPPONENT_GRUNT_39 578
-#define OPPONENT_GRUNT_40 579
-#define OPPONENT_GRUNT_41 580
-#define OPPONENT_GRUNT_42 581
-#define OPPONENT_GRUNT_43 582
-#define OPPONENT_GRUNT_44 583
-#define OPPONENT_GRUNT_45 584
-#define OPPONENT_GRUNT_46 585
-#define OPPONENT_GRUNT_47 586
-#define OPPONENT_GRUNT_48 587
-#define OPPONENT_GRUNT_49 588
-#define OPPONENT_GRUNT_50 589
-#define OPPONENT_GRUNT_51 590
-#define OPPONENT_GRUNT_52 591
-#define OPPONENT_GRUNT_53 592
-#define OPPONENT_GRUNT_54 593
-#define OPPONENT_ANONYMOUS_14 594
-#define OPPONENT_ANONYMOUS_15 595
-#define OPPONENT_TABITHA_1 596
-#define OPPONENT_TABITHA_2 597
-#define OPPONENT_ANONYMOUS_16 598
-#define OPPONENT_COURTNEY_1 599
-#define OPPONENT_COURTNEY_2 600
-#define OPPONENT_MAXIE_2 601
-#define OPPONENT_MAXIE_3 602
-#define OPPONENT_TIANA 603
-#define OPPONENT_HALEY_1 604
-#define OPPONENT_JANICE 605
-#define OPPONENT_VIVI 606
-#define OPPONENT_HALEY_2 607
-#define OPPONENT_HALEY_3 608
-#define OPPONENT_HALEY_4 609
-#define OPPONENT_HALEY_5 610
-#define OPPONENT_SALLY 611
-#define OPPONENT_ROBIN 612
-#define OPPONENT_ANDREA 613
-#define OPPONENT_CRISSY 614
-#define OPPONENT_RICK 615
-#define OPPONENT_LYLE 616
-#define OPPONENT_JOSE 617
-#define OPPONENT_DOUG 618
-#define OPPONENT_GREG 619
-#define OPPONENT_KENT 620
-#define OPPONENT_JAMES_1 621
-#define OPPONENT_JAMES_2 622
-#define OPPONENT_JAMES_3 623
-#define OPPONENT_JAMES_4 624
-#define OPPONENT_JAMES_5 625
-#define OPPONENT_BRICE 626
-#define OPPONENT_TRENT_1 627
-#define OPPONENT_LENNY 628
-#define OPPONENT_LUCAS_1 629
-#define OPPONENT_ALAN 630
-#define OPPONENT_CLARK 631
-#define OPPONENT_ERIC 632
-#define OPPONENT_LUCAS_2 633
-#define OPPONENT_MIKE_1 634
-#define OPPONENT_MIKE_2 635
-#define OPPONENT_TRENT_2 636
-#define OPPONENT_TRENT_3 637
-#define OPPONENT_TRENT_4 638
-#define OPPONENT_TRENT_5 639
-#define OPPONENT_DEZ_AND_LUKE 640
-#define OPPONENT_LEA_AND_JED 641
-#define OPPONENT_LOIS_AND_HAL_1 642
-#define OPPONENT_LOIS_AND_HAL_2 643
-#define OPPONENT_LOIS_AND_HAL_3 644
-#define OPPONENT_LOIS_AND_HAL_4 645
-#define OPPONENT_LOIS_AND_HAL_5 646
-#define OPPONENT_JOHANNA 647
-#define OPPONENT_ZANE 648
-#define OPPONENT_VIVIAN 649
-#define OPPONENT_SADIE 650
-#define OPPONENT_HIDEO_2 651
-#define OPPONENT_KEIGO 652
-#define OPPONENT_TSUNAO 653
-#define OPPONENT_TERRELL 654
-#define OPPONENT_KYLEE 655
-#define OPPONENT_WALLY_2 656
-#define OPPONENT_WALLY_3 657
-#define OPPONENT_WALLY_4 658
-#define OPPONENT_WALLY_5 659
-#define OPPONENT_WALLY_6 660
-#define OPPONENT_BRENDAN_10 661
-#define OPPONENT_BRENDAN_11 662
-#define OPPONENT_BRENDAN_12 663
-#define OPPONENT_MAY_10 664
-#define OPPONENT_MAY_11 665
-#define OPPONENT_MAY_12 666
-#define OPPONENT_JONAH 667
-#define OPPONENT_HENRY 668
-#define OPPONENT_ROGER 669
-#define OPPONENT_ALEXA 670
-#define OPPONENT_RUBEN 671
-#define OPPONENT_KOJI 672
-#define OPPONENT_WAYNE 673
-#define OPPONENT_BYRON 674
-#define OPPONENT_REED 675
-#define OPPONENT_TISHA 676
-#define OPPONENT_TORI_AND_TIA 677
-#define OPPONENT_KIM_AND_IRIS 678
-#define OPPONENT_TYRA_AND_IVY 679
-#define OPPONENT_MEL_AND_PAUL 680
-#define OPPONENT_JOHN_AND_JAY_1 681
-#define OPPONENT_JOHN_AND_JAY_2 682
-#define OPPONENT_JOHN_AND_JAY_3 683
-#define OPPONENT_JOHN_AND_JAY_4 684
-#define OPPONENT_JOHN_AND_JAY_5 685
-#define OPPONENT_RELI_AND_IAN 686
-#define OPPONENT_RITA_AND_SAM_1 687
-#define OPPONENT_RITA_AND_SAM_2 688
-#define OPPONENT_RITA_AND_SAM_3 689
-#define OPPONENT_RITA_AND_SAM_4 690
-#define OPPONENT_RITA_AND_SAM_5 691
-#define OPPONENT_LISA_AND_RAY 692
-#define OPPONENT_EUGENE 693
+#define TRAINER_NONE 0
+#define TRAINER_ARCHIE_1 1
+#define TRAINER_GRUNT_1 2
+#define TRAINER_GRUNT_2 3
+#define TRAINER_GRUNT_3 4
+#define TRAINER_GRUNT_4 5
+#define TRAINER_GRUNT_5 6
+#define TRAINER_GRUNT_6 7
+#define TRAINER_GRUNT_7 8
+#define TRAINER_GRUNT_8 9
+#define TRAINER_GRUNT_9 10
+#define TRAINER_GRUNT_10 11
+#define TRAINER_GRUNT_11 12
+#define TRAINER_GRUNT_12 13
+#define TRAINER_GRUNT_13 14
+#define TRAINER_GRUNT_14 15
+#define TRAINER_GRUNT_15 16
+#define TRAINER_GRUNT_16 17
+#define TRAINER_GRUNT_17 18
+#define TRAINER_GRUNT_18 19
+#define TRAINER_GRUNT_19 20
+#define TRAINER_GRUNT_20 21
+#define TRAINER_GRUNT_21 22
+#define TRAINER_GRUNT_22 23
+#define TRAINER_GRUNT_23 24
+#define TRAINER_GRUNT_24 25
+#define TRAINER_GRUNT_25 26
+#define TRAINER_GRUNT_26 27
+#define TRAINER_GRUNT_27 28
+#define TRAINER_ANONYMOUS_1 29
+#define TRAINER_MATT_1 30
+#define TRAINER_MATT_2 31
+#define TRAINER_SHELLY_1 32
+#define TRAINER_SHELLY_2 33
+#define TRAINER_ARCHIE_2 34
+#define TRAINER_ARCHIE_3 35
+#define TRAINER_DAISY 36
+#define TRAINER_ROSE_1 37
+#define TRAINER_LILY 38
+#define TRAINER_VIOLET 39
+#define TRAINER_ROSE_2 40
+#define TRAINER_ROSE_3 41
+#define TRAINER_ROSE_4 42
+#define TRAINER_ROSE_5 43
+#define TRAINER_DUSTY_1 44
+#define TRAINER_CHIP 45
+#define TRAINER_FOSTER 46
+#define TRAINER_DUSTY_2 47
+#define TRAINER_DUSTY_3 48
+#define TRAINER_DUSTY_4 49
+#define TRAINER_DUSTY_5 50
+#define TRAINER_GABBY_AND_TY_1 51
+#define TRAINER_GABBY_AND_TY_2 52
+#define TRAINER_GABBY_AND_TY_3 53
+#define TRAINER_GABBY_AND_TY_4 54
+#define TRAINER_GABBY_AND_TY_5 55
+#define TRAINER_GABBY_AND_TY_6 56
+#define TRAINER_LOLA_1 57
+#define TRAINER_CARMEN 58
+#define TRAINER_GWEN 59
+#define TRAINER_LOLA_2 60
+#define TRAINER_LOLA_3 61
+#define TRAINER_LOLA_4 62
+#define TRAINER_LOLA_5 63
+#define TRAINER_RICKY_1 64
+#define TRAINER_SIMON 65
+#define TRAINER_CHARLIE 66
+#define TRAINER_RICKY_2 67
+#define TRAINER_RICKY_3 68
+#define TRAINER_RICKY_4 69
+#define TRAINER_RICKY_5 70
+#define TRAINER_RANDALL 71
+#define TRAINER_PARKER 72
+#define TRAINER_GEORGE 73
+#define TRAINER_BERKE 74
+#define TRAINER_CLYDE 75
+#define TRAINER_VINCENT 76
+#define TRAINER_LEROY 77
+#define TRAINER_WILTON_1 78
+#define TRAINER_EDGAR 79
+#define TRAINER_ALBERT 80
+#define TRAINER_SAMUEL 81
+#define TRAINER_VITO 82
+#define TRAINER_OWEN 83
+#define TRAINER_WILTON_2 84
+#define TRAINER_WILTON_3 85
+#define TRAINER_WILTON_4 86
+#define TRAINER_WILTON_5 87
+#define TRAINER_WARREN 88
+#define TRAINER_MARY 89
+#define TRAINER_LORI 90
+#define TRAINER_JODY 91
+#define TRAINER_WENDY 92
+#define TRAINER_ELAINE 93
+#define TRAINER_BROOKE_1 94
+#define TRAINER_JENNIFER 95
+#define TRAINER_HOPE 96
+#define TRAINER_SHANNON 97
+#define TRAINER_MICHELLE 98
+#define TRAINER_CAROLINE 99
+#define TRAINER_JULIE 100
+#define TRAINER_BROOKE_2 101
+#define TRAINER_BROOKE_3 102
+#define TRAINER_BROOKE_4 103
+#define TRAINER_BROOKE_5 104
+#define TRAINER_PATRICIA 105
+#define TRAINER_KINDRA 106
+#define TRAINER_TAMMY 107
+#define TRAINER_VALERIE_1 108
+#define TRAINER_TASHA 109
+#define TRAINER_VALERIE_2 110
+#define TRAINER_VALERIE_3 111
+#define TRAINER_VALERIE_4 112
+#define TRAINER_VALERIE_5 113
+#define TRAINER_CINDY_1 114
+#define TRAINER_ANONYMOUS_2 115
+#define TRAINER_BRIANNA_1 116
+#define TRAINER_CINDY_2 117
+#define TRAINER_BRIANNA_2 118
+#define TRAINER_ANETTE 119
+#define TRAINER_CINDY_3 120
+#define TRAINER_CINDY_4 121
+#define TRAINER_CINDY_5 122
+#define TRAINER_CINDY_6 123
+#define TRAINER_MELISSA 124
+#define TRAINER_SHEILA 125
+#define TRAINER_SHIRLEY 126
+#define TRAINER_JESSICA_1 127
+#define TRAINER_CONNIE 128
+#define TRAINER_BRIDGET 129
+#define TRAINER_OLIVIA 130
+#define TRAINER_TIFFANY 131
+#define TRAINER_JESSICA_2 132
+#define TRAINER_JESSICA_3 133
+#define TRAINER_JESSICA_4 134
+#define TRAINER_JESSICA_5 135
+#define TRAINER_WINSTON_1 136
+#define TRAINER_ANONYMOUS_3 137
+#define TRAINER_GARRET 138
+#define TRAINER_WINSTON_2 139
+#define TRAINER_WINSTON_3 140
+#define TRAINER_WINSTON_4 141
+#define TRAINER_WINSTON_5 142
+#define TRAINER_STEVE_1 143
+#define TRAINER_CHRIS 144
+#define TRAINER_MARK 145
+#define TRAINER_KENN 146
+#define TRAINER_STEVE_2 147
+#define TRAINER_STEVE_3 148
+#define TRAINER_STEVE_4 149
+#define TRAINER_STEVE_5 150
+#define TRAINER_LUIS 151
+#define TRAINER_AUSTIN 152
+#define TRAINER_DOUGLAS 153
+#define TRAINER_DARRIN 154
+#define TRAINER_TONY_1 155
+#define TRAINER_JEROME 156
+#define TRAINER_MATTHEW 157
+#define TRAINER_DAVID 158
+#define TRAINER_SPENCER 159
+#define TRAINER_ROLAND 160
+#define TRAINER_CODY 161
+#define TRAINER_STAN 162
+#define TRAINER_BARRY 163
+#define TRAINER_DEAN 164
+#define TRAINER_RODNEY 165
+#define TRAINER_RICHARD 166
+#define TRAINER_HERMAN 167
+#define TRAINER_ANONYMOUS_4 168
+#define TRAINER_GILBERT 169
+#define TRAINER_FRANKLIN 170
+#define TRAINER_DANNY 171
+#define TRAINER_JACK 172
+#define TRAINER_DUDLEY 173
+#define TRAINER_CHAD 174
+#define TRAINER_TONY_2 175
+#define TRAINER_TONY_3 176
+#define TRAINER_TONY_4 177
+#define TRAINER_TONY_5 178
+#define TRAINER_HIDEKI 179
+#define TRAINER_HITOSHI 180
+#define TRAINER_KIYO 181
+#define TRAINER_KOICHI 182
+#define TRAINER_NOB_1 183
+#define TRAINER_NOB_2 184
+#define TRAINER_NOB_3 185
+#define TRAINER_NOB_4 186
+#define TRAINER_NOB_5 187
+#define TRAINER_YUJI 188
+#define TRAINER_DAISUKE 189
+#define TRAINER_ATSUSHI 190
+#define TRAINER_KIRK 191
+#define TRAINER_SCOTT 192
+#define TRAINER_HARVEY 193
+#define TRAINER_SHAWN 194
+#define TRAINER_RANDY 195
+#define TRAINER_DALTON_1 196
+#define TRAINER_DALTON_2 197
+#define TRAINER_DALTON_3 198
+#define TRAINER_DALTON_4 199
+#define TRAINER_DALTON_5 200
+#define TRAINER_COLE 201
+#define TRAINER_FLINT 202
+#define TRAINER_AXLE 203
+#define TRAINER_JAKE 204
+#define TRAINER_ANDY 205
+#define TRAINER_BERNIE_1 206
+#define TRAINER_BERNIE_2 207
+#define TRAINER_BERNIE_3 208
+#define TRAINER_BERNIE_4 209
+#define TRAINER_BERNIE_5 210
+#define TRAINER_DREW 211
+#define TRAINER_CLIFF 212
+#define TRAINER_LARRY 213
+#define TRAINER_SHANE 214
+#define TRAINER_JUSTIN 215
+#define TRAINER_ETHAN_1 216
+#define TRAINER_JEFF 217
+#define TRAINER_TRAVIS 218
+#define TRAINER_ETHAN_2 219
+#define TRAINER_ETHAN_3 220
+#define TRAINER_ETHAN_4 221
+#define TRAINER_ETHAN_5 222
+#define TRAINER_BRENT 223
+#define TRAINER_DONALD 224
+#define TRAINER_TAYLOR 225
+#define TRAINER_BRANDON_1 226
+#define TRAINER_DEREK 227
+#define TRAINER_BRANDON_2 228
+#define TRAINER_BRANDON_3 229
+#define TRAINER_BRANDON_4 230
+#define TRAINER_BRANDON_5 231
+#define TRAINER_EDWARD 232
+#define TRAINER_PRESTON 233
+#define TRAINER_VIRGIL 234
+#define TRAINER_FRITZ 235
+#define TRAINER_WILLIAM 236
+#define TRAINER_JOSHUA 237
+#define TRAINER_CAMERON_1 238
+#define TRAINER_CAMERON_2 239
+#define TRAINER_CAMERON_3 240
+#define TRAINER_CAMERON_4 241
+#define TRAINER_CAMERON_5 242
+#define TRAINER_JACLYN 243
+#define TRAINER_HANNAH 244
+#define TRAINER_SAMANTHA 245
+#define TRAINER_MAURA 246
+#define TRAINER_KAYLA 247
+#define TRAINER_ALEXIS 248
+#define TRAINER_JACKI_1 249
+#define TRAINER_JACKI_2 250
+#define TRAINER_JACKI_3 251
+#define TRAINER_JACKI_4 252
+#define TRAINER_JACKI_5 253
+#define TRAINER_WALTER_1 254
+#define TRAINER_TUCKER 255
+#define TRAINER_THOMAS 256
+#define TRAINER_WALTER_2 257
+#define TRAINER_WALTER_3 258
+#define TRAINER_WALTER_4 259
+#define TRAINER_WALTER_5 260
+#define TRAINER_SIDNEY 261
+#define TRAINER_PHOEBE 262
+#define TRAINER_GLACIA 263
+#define TRAINER_DRAKE 264
+#define TRAINER_ROXANNE 265
+#define TRAINER_BRAWLY 266
+#define TRAINER_WATTSON 267
+#define TRAINER_FLANNERY 268
+#define TRAINER_NORMAN 269
+#define TRAINER_WINONA 270
+#define TRAINER_TATE_AND_LIZA 271
+#define TRAINER_WALLACE 272
+#define TRAINER_JERRY_1 273
+#define TRAINER_TED 274
+#define TRAINER_PAUL 275
+#define TRAINER_JERRY_2 276
+#define TRAINER_JERRY_3 277
+#define TRAINER_JERRY_4 278
+#define TRAINER_JERRY_5 279
+#define TRAINER_KAREN_1 280
+#define TRAINER_GEORGIA 281
+#define TRAINER_KAREN_2 282
+#define TRAINER_KAREN_3 283
+#define TRAINER_KAREN_4 284
+#define TRAINER_KAREN_5 285
+#define TRAINER_KATE_AND_JOY 286
+#define TRAINER_ANNA_AND_MEG_1 287
+#define TRAINER_ANNA_AND_MEG_2 288
+#define TRAINER_ANNA_AND_MEG_3 289
+#define TRAINER_ANNA_AND_MEG_4 290
+#define TRAINER_ANNA_AND_MEG_5 291
+#define TRAINER_VICTOR 292
+#define TRAINER_MIGUEL_1 293
+#define TRAINER_COLTON 294
+#define TRAINER_MIGUEL_2 295
+#define TRAINER_MIGUEL_3 296
+#define TRAINER_MIGUEL_4 297
+#define TRAINER_MIGUEL_5 298
+#define TRAINER_VICTORIA 299
+#define TRAINER_VANESSA 300
+#define TRAINER_MARISSA 301
+#define TRAINER_ISABEL_1 302
+#define TRAINER_ISABEL_2 303
+#define TRAINER_ISABEL_3 304
+#define TRAINER_ISABEL_4 305
+#define TRAINER_ISABEL_5 306
+#define TRAINER_TIMOTHY_1 307
+#define TRAINER_TIMOTHY_2 308
+#define TRAINER_TIMOTHY_3 309
+#define TRAINER_TIMOTHY_4 310
+#define TRAINER_TIMOTHY_5 311
+#define TRAINER_VICKY 312
+#define TRAINER_SHELBY_1 313
+#define TRAINER_SHELBY_2 314
+#define TRAINER_SHELBY_3 315
+#define TRAINER_SHELBY_4 316
+#define TRAINER_SHELBY_5 317
+#define TRAINER_CALVIN_1 318
+#define TRAINER_BILLY 319
+#define TRAINER_JOSH 320
+#define TRAINER_TOMMY 321
+#define TRAINER_JOEY 322
+#define TRAINER_BEN 323
+#define TRAINER_ANONYMOUS_5 324
+#define TRAINER_KEVIN 325
+#define TRAINER_NEAL 326
+#define TRAINER_DILLON 327
+#define TRAINER_CALVIN_2 328
+#define TRAINER_CALVIN_3 329
+#define TRAINER_CALVIN_4 330
+#define TRAINER_CALVIN_5 331
+#define TRAINER_EDDIE 332
+#define TRAINER_ALLEN 333
+#define TRAINER_TIMMY 334
+#define TRAINER_STEVEN 335
+#define TRAINER_ANDREW 336
+#define TRAINER_IVAN 337
+#define TRAINER_CLAUDE 338
+#define TRAINER_ELLIOT_1 339
+#define TRAINER_NED 340
+#define TRAINER_DALE 341
+#define TRAINER_NOLAN 342
+#define TRAINER_BARNY 343
+#define TRAINER_WADE 344
+#define TRAINER_CARTER 345
+#define TRAINER_ELLIOT_2 346
+#define TRAINER_ELLIOT_3 347
+#define TRAINER_ELLIOT_4 348
+#define TRAINER_ELLIOT_5 349
+#define TRAINER_RONALD 350
+#define TRAINER_JACOB 351
+#define TRAINER_ANTHONY 352
+#define TRAINER_BENJAMIN_1 353
+#define TRAINER_BENJAMIN_2 354
+#define TRAINER_BENJAMIN_3 355
+#define TRAINER_BENJAMIN_4 356
+#define TRAINER_BENJAMIN_5 357
+#define TRAINER_ABIGAIL_1 358
+#define TRAINER_JASMINE 359
+#define TRAINER_ABIGAIL_2 360
+#define TRAINER_ABIGAIL_3 361
+#define TRAINER_ABIGAIL_4 362
+#define TRAINER_ABIGAIL_5 363
+#define TRAINER_DYLAN_1 364
+#define TRAINER_DYLAN_2 365
+#define TRAINER_DYLAN_3 366
+#define TRAINER_DYLAN_4 367
+#define TRAINER_DYLAN_5 368
+#define TRAINER_MARIA_1 369
+#define TRAINER_MARIA_2 370
+#define TRAINER_MARIA_3 371
+#define TRAINER_MARIA_4 372
+#define TRAINER_MARIA_5 373
+#define TRAINER_CALEB 374
+#define TRAINER_ANONYMOUS_6 375
+#define TRAINER_ISAIAH_1 376
+#define TRAINER_ANONYMOUS_7 377
+#define TRAINER_CHASE 378
+#define TRAINER_ISAIAH_2 379
+#define TRAINER_ISAIAH_3 380
+#define TRAINER_ISAIAH_4 381
+#define TRAINER_ISAIAH_5 382
+#define TRAINER_ANONYMOUS_8 383
+#define TRAINER_CONNOR 384
+#define TRAINER_ANONYMOUS_9 385
+#define TRAINER_KATELYN_1 386
+#define TRAINER_ALLISON 387
+#define TRAINER_KATELYN_2 388
+#define TRAINER_KATELYN_3 389
+#define TRAINER_KATELYN_4 390
+#define TRAINER_KATELYN_5 391
+#define TRAINER_NICOLAS_1 392
+#define TRAINER_NICOLAS_2 393
+#define TRAINER_NICOLAS_3 394
+#define TRAINER_NICOLAS_4 395
+#define TRAINER_NICOLAS_5 396
+#define TRAINER_AARON 397
+#define TRAINER_PERRY 398
+#define TRAINER_HUGH 399
+#define TRAINER_PHIL 400
+#define TRAINER_JARED 401
+#define TRAINER_ANONYMOUS_10 402
+#define TRAINER_TANNER 403
+#define TRAINER_WILL 404
+#define TRAINER_COLIN 405
+#define TRAINER_ROBERT_1 406
+#define TRAINER_BENNY 407
+#define TRAINER_CHESTER 408
+#define TRAINER_ROBERT_2 409
+#define TRAINER_ROBERT_3 410
+#define TRAINER_ROBERT_4 411
+#define TRAINER_ROBERT_5 412
+#define TRAINER_ALEX 413
+#define TRAINER_BECK 414
+#define TRAINER_YASU 415
+#define TRAINER_TAKASHI 416
+#define TRAINER_MAKOTO 417
+#define TRAINER_HIDEO_1 418
+#define TRAINER_LAO_1 419
+#define TRAINER_LUNG 420
+#define TRAINER_LAO_2 421
+#define TRAINER_LAO_3 422
+#define TRAINER_LAO_4 423
+#define TRAINER_LAO_5 424
+#define TRAINER_TESSA 425
+#define TRAINER_LAURA 426
+#define TRAINER_CYNDY_1 427
+#define TRAINER_CORA 428
+#define TRAINER_JILL 429
+#define TRAINER_CYNDY_2 430
+#define TRAINER_CYNDY_3 431
+#define TRAINER_CYNDY_4 432
+#define TRAINER_CYNDY_5 433
+#define TRAINER_MADELINE_1 434
+#define TRAINER_CLARISSA 435
+#define TRAINER_ANGELICA 436
+#define TRAINER_MADELINE_2 437
+#define TRAINER_MADELINE_3 438
+#define TRAINER_MADELINE_4 439
+#define TRAINER_MADELINE_5 440
+#define TRAINER_BEVERLY 441
+#define TRAINER_DAWN 442
+#define TRAINER_NICOLE 443
+#define TRAINER_DENISE 444
+#define TRAINER_BETH 445
+#define TRAINER_TARA 446
+#define TRAINER_MISSY 447
+#define TRAINER_ALICE 448
+#define TRAINER_JENNY_1 449
+#define TRAINER_GRACE 450
+#define TRAINER_TANYA 451
+#define TRAINER_SHARON 452
+#define TRAINER_NIKKI 453
+#define TRAINER_BRENDA 454
+#define TRAINER_KATIE 455
+#define TRAINER_SUSIE 456
+#define TRAINER_KARA 457
+#define TRAINER_DANA 458
+#define TRAINER_ERIN 459
+#define TRAINER_DEBRA 460
+#define TRAINER_LINDA 461
+#define TRAINER_KAYLEE 462
+#define TRAINER_LAUREL 463
+#define TRAINER_DARCY 464
+#define TRAINER_JENNY_2 465
+#define TRAINER_JENNY_3 466
+#define TRAINER_JENNY_4 467
+#define TRAINER_JENNY_5 468
+#define TRAINER_HEIDI 469
+#define TRAINER_BECKY 470
+#define TRAINER_CAROL 471
+#define TRAINER_NANCY 472
+#define TRAINER_MARTHA 473
+#define TRAINER_DIANA_1 474
+#define TRAINER_NINA 475
+#define TRAINER_IRENE 476
+#define TRAINER_DIANA_2 477
+#define TRAINER_DIANA_3 478
+#define TRAINER_DIANA_4 479
+#define TRAINER_DIANA_5 480
+#define TRAINER_AMY_AND_LIV_1 481
+#define TRAINER_AMY_AND_LIV_2 482
+#define TRAINER_GINA_AND_MIA_1 483
+#define TRAINER_MIU_AND_YUKI 484
+#define TRAINER_AMY_AND_LIV_3 485
+#define TRAINER_GINA_AND_MIA_2 486
+#define TRAINER_AMY_AND_LIV_4 487
+#define TRAINER_AMY_AND_LIV_5 488
+#define TRAINER_AMY_AND_LIV_6 489
+#define TRAINER_HUEY 490
+#define TRAINER_EDMOND 491
+#define TRAINER_ERNEST_1 492
+#define TRAINER_DWAYNE 493
+#define TRAINER_PHILLIP 494
+#define TRAINER_LEONARD 495
+#define TRAINER_DUNCAN 496
+#define TRAINER_ERNEST_2 497
+#define TRAINER_ERNEST_3 498
+#define TRAINER_ERNEST_4 499
+#define TRAINER_ERNEST_5 500
+#define TRAINER_ANONYMOUS_11 501
+#define TRAINER_ANONYMOUS_12 502
+#define TRAINER_ANONYMOUS_13 503
+#define TRAINER_SONNY 504
+#define TRAINER_DONOVAN 505
+#define TRAINER_GERALD 506
+#define TRAINER_KELVIN 507
+#define TRAINER_KODY 508
+#define TRAINER_TEVIN 509
+#define TRAINER_DAMON 510
+#define TRAINER_PABLO 511
+#define TRAINER_EDWIN_1 512
+#define TRAINER_HECTOR_1 513
+#define TRAINER_HECTOR_2 514
+#define TRAINER_EDWIN_2 515
+#define TRAINER_EDWIN_3 516
+#define TRAINER_EDWIN_4 517
+#define TRAINER_EDWIN_5 518
+#define TRAINER_WALLY_1 519
+#define TRAINER_BRENDAN_1 520
+#define TRAINER_BRENDAN_2 521
+#define TRAINER_BRENDAN_3 522
+#define TRAINER_BRENDAN_4 523
+#define TRAINER_BRENDAN_5 524
+#define TRAINER_BRENDAN_6 525
+#define TRAINER_BRENDAN_7 526
+#define TRAINER_BRENDAN_8 527
+#define TRAINER_BRENDAN_9 528
+#define TRAINER_MAY_1 529
+#define TRAINER_MAY_2 530
+#define TRAINER_MAY_3 531
+#define TRAINER_MAY_4 532
+#define TRAINER_MAY_5 533
+#define TRAINER_MAY_6 534
+#define TRAINER_MAY_7 535
+#define TRAINER_MAY_8 536
+#define TRAINER_MAY_9 537
+#define TRAINER_ISAAC_1 538
+#define TRAINER_RILEY 539
+#define TRAINER_AIDAN 540
+#define TRAINER_ISAAC_2 541
+#define TRAINER_ISAAC_3 542
+#define TRAINER_ISAAC_4 543
+#define TRAINER_ISAAC_5 544
+#define TRAINER_LYDIA_1 545
+#define TRAINER_ALEXIA 546
+#define TRAINER_DANIELLE 547
+#define TRAINER_LYDIA_2 548
+#define TRAINER_LYDIA_3 549
+#define TRAINER_LYDIA_4 550
+#define TRAINER_LYDIA_5 551
+#define TRAINER_JACKSON_1 552
+#define TRAINER_CARLOS 553
+#define TRAINER_SEBASTIAN 554
+#define TRAINER_JACKSON_2 555
+#define TRAINER_JACKSON_3 556
+#define TRAINER_JACKSON_4 557
+#define TRAINER_JACKSON_5 558
+#define TRAINER_CATHERINE_1 559
+#define TRAINER_JENNA 560
+#define TRAINER_SOPHIA 561
+#define TRAINER_CATHERINE_2 562
+#define TRAINER_CATHERINE_3 563
+#define TRAINER_CATHERINE_4 564
+#define TRAINER_CATHERINE_5 565
+#define TRAINER_MAXIE_1 566
+#define TRAINER_GRUNT_28 567
+#define TRAINER_GRUNT_29 568
+#define TRAINER_GRUNT_30 569
+#define TRAINER_GRUNT_31 570
+#define TRAINER_GRUNT_32 571
+#define TRAINER_GRUNT_33 572
+#define TRAINER_GRUNT_34 573
+#define TRAINER_GRUNT_35 574
+#define TRAINER_GRUNT_36 575
+#define TRAINER_GRUNT_37 576
+#define TRAINER_GRUNT_38 577
+#define TRAINER_GRUNT_39 578
+#define TRAINER_GRUNT_40 579
+#define TRAINER_GRUNT_41 580
+#define TRAINER_GRUNT_42 581
+#define TRAINER_GRUNT_43 582
+#define TRAINER_GRUNT_44 583
+#define TRAINER_GRUNT_45 584
+#define TRAINER_GRUNT_46 585
+#define TRAINER_GRUNT_47 586
+#define TRAINER_GRUNT_48 587
+#define TRAINER_GRUNT_49 588
+#define TRAINER_GRUNT_50 589
+#define TRAINER_GRUNT_51 590
+#define TRAINER_GRUNT_52 591
+#define TRAINER_GRUNT_53 592
+#define TRAINER_GRUNT_54 593
+#define TRAINER_ANONYMOUS_14 594
+#define TRAINER_ANONYMOUS_15 595
+#define TRAINER_TABITHA_1 596
+#define TRAINER_TABITHA_2 597
+#define TRAINER_ANONYMOUS_16 598
+#define TRAINER_COURTNEY_1 599
+#define TRAINER_COURTNEY_2 600
+#define TRAINER_MAXIE_2 601
+#define TRAINER_MAXIE_3 602
+#define TRAINER_TIANA 603
+#define TRAINER_HALEY_1 604
+#define TRAINER_JANICE 605
+#define TRAINER_VIVI 606
+#define TRAINER_HALEY_2 607
+#define TRAINER_HALEY_3 608
+#define TRAINER_HALEY_4 609
+#define TRAINER_HALEY_5 610
+#define TRAINER_SALLY 611
+#define TRAINER_ROBIN 612
+#define TRAINER_ANDREA 613
+#define TRAINER_CRISSY 614
+#define TRAINER_RICK 615
+#define TRAINER_LYLE 616
+#define TRAINER_JOSE 617
+#define TRAINER_DOUG 618
+#define TRAINER_GREG 619
+#define TRAINER_KENT 620
+#define TRAINER_JAMES_1 621
+#define TRAINER_JAMES_2 622
+#define TRAINER_JAMES_3 623
+#define TRAINER_JAMES_4 624
+#define TRAINER_JAMES_5 625
+#define TRAINER_BRICE 626
+#define TRAINER_TRENT_1 627
+#define TRAINER_LENNY 628
+#define TRAINER_LUCAS_1 629
+#define TRAINER_ALAN 630
+#define TRAINER_CLARK 631
+#define TRAINER_ERIC 632
+#define TRAINER_LUCAS_2 633
+#define TRAINER_MIKE_1 634
+#define TRAINER_MIKE_2 635
+#define TRAINER_TRENT_2 636
+#define TRAINER_TRENT_3 637
+#define TRAINER_TRENT_4 638
+#define TRAINER_TRENT_5 639
+#define TRAINER_DEZ_AND_LUKE 640
+#define TRAINER_LEA_AND_JED 641
+#define TRAINER_LOIS_AND_HAL_1 642
+#define TRAINER_LOIS_AND_HAL_2 643
+#define TRAINER_LOIS_AND_HAL_3 644
+#define TRAINER_LOIS_AND_HAL_4 645
+#define TRAINER_LOIS_AND_HAL_5 646
+#define TRAINER_JOHANNA 647
+#define TRAINER_ZANE 648
+#define TRAINER_VIVIAN 649
+#define TRAINER_SADIE 650
+#define TRAINER_HIDEO_2 651
+#define TRAINER_KEIGO 652
+#define TRAINER_TSUNAO 653
+#define TRAINER_TERRELL 654
+#define TRAINER_KYLEE 655
+#define TRAINER_WALLY_2 656
+#define TRAINER_WALLY_3 657
+#define TRAINER_WALLY_4 658
+#define TRAINER_WALLY_5 659
+#define TRAINER_WALLY_6 660
+#define TRAINER_BRENDAN_10 661
+#define TRAINER_BRENDAN_11 662
+#define TRAINER_BRENDAN_12 663
+#define TRAINER_MAY_10 664
+#define TRAINER_MAY_11 665
+#define TRAINER_MAY_12 666
+#define TRAINER_JONAH 667
+#define TRAINER_HENRY 668
+#define TRAINER_ROGER 669
+#define TRAINER_ALEXA 670
+#define TRAINER_RUBEN 671
+#define TRAINER_KOJI 672
+#define TRAINER_WAYNE 673
+#define TRAINER_BYRON 674
+#define TRAINER_REED 675
+#define TRAINER_TISHA 676
+#define TRAINER_TORI_AND_TIA 677
+#define TRAINER_KIM_AND_IRIS 678
+#define TRAINER_TYRA_AND_IVY 679
+#define TRAINER_MEL_AND_PAUL 680
+#define TRAINER_JOHN_AND_JAY_1 681
+#define TRAINER_JOHN_AND_JAY_2 682
+#define TRAINER_JOHN_AND_JAY_3 683
+#define TRAINER_JOHN_AND_JAY_4 684
+#define TRAINER_JOHN_AND_JAY_5 685
+#define TRAINER_RELI_AND_IAN 686
+#define TRAINER_RITA_AND_SAM_1 687
+#define TRAINER_RITA_AND_SAM_2 688
+#define TRAINER_RITA_AND_SAM_3 689
+#define TRAINER_RITA_AND_SAM_4 690
+#define TRAINER_RITA_AND_SAM_5 691
+#define TRAINER_LISA_AND_RAY 692
+#define TRAINER_EUGENE 693
#endif // GUARD_CONSTANTS_OPPONENTS_H
diff --git a/include/constants/species.h b/include/constants/species.h
index dc9856081..80c90381e 100644
--- a/include/constants/species.h
+++ b/include/constants/species.h
@@ -447,6 +447,838 @@
#define NUM_SPECIES SPECIES_EGG
+// National Dex Index Defines
+
+#define NATIONAL_DEX_BULBASAUR 1
+#define NATIONAL_DEX_IVYSAUR 2
+#define NATIONAL_DEX_VENUSAUR 3
+#define NATIONAL_DEX_CHARMANDER 4
+#define NATIONAL_DEX_CHARMELEON 5
+#define NATIONAL_DEX_CHARIZARD 6
+#define NATIONAL_DEX_SQUIRTLE 7
+#define NATIONAL_DEX_WARTORTLE 8
+#define NATIONAL_DEX_BLASTOISE 9
+#define NATIONAL_DEX_CATERPIE 10
+#define NATIONAL_DEX_METAPOD 11
+#define NATIONAL_DEX_BUTTERFREE 12
+#define NATIONAL_DEX_WEEDLE 13
+#define NATIONAL_DEX_KAKUNA 14
+#define NATIONAL_DEX_BEEDRILL 15
+#define NATIONAL_DEX_PIDGEY 16
+#define NATIONAL_DEX_PIDGEOTTO 17
+#define NATIONAL_DEX_PIDGEOT 18
+#define NATIONAL_DEX_RATTATA 19
+#define NATIONAL_DEX_RATICATE 20
+#define NATIONAL_DEX_SPEAROW 21
+#define NATIONAL_DEX_FEAROW 22
+#define NATIONAL_DEX_EKANS 23
+#define NATIONAL_DEX_ARBOK 24
+#define NATIONAL_DEX_PIKACHU 25
+#define NATIONAL_DEX_RAICHU 26
+#define NATIONAL_DEX_SANDSHREW 27
+#define NATIONAL_DEX_SANDSLASH 28
+#define NATIONAL_DEX_NIDORAN_F 29
+#define NATIONAL_DEX_NIDORINA 30
+#define NATIONAL_DEX_NIDOQUEEN 31
+#define NATIONAL_DEX_NIDORAN_M 32
+#define NATIONAL_DEX_NIDORINO 33
+#define NATIONAL_DEX_NIDOKING 34
+#define NATIONAL_DEX_CLEFAIRY 35
+#define NATIONAL_DEX_CLEFABLE 36
+#define NATIONAL_DEX_VULPIX 37
+#define NATIONAL_DEX_NINETALES 38
+#define NATIONAL_DEX_JIGGLYPUFF 39
+#define NATIONAL_DEX_WIGGLYTUFF 40
+#define NATIONAL_DEX_ZUBAT 41
+#define NATIONAL_DEX_GOLBAT 42
+#define NATIONAL_DEX_ODDISH 43
+#define NATIONAL_DEX_GLOOM 44
+#define NATIONAL_DEX_VILEPLUME 45
+#define NATIONAL_DEX_PARAS 46
+#define NATIONAL_DEX_PARASECT 47
+#define NATIONAL_DEX_VENONAT 48
+#define NATIONAL_DEX_VENOMOTH 49
+#define NATIONAL_DEX_DIGLETT 50
+#define NATIONAL_DEX_DUGTRIO 51
+#define NATIONAL_DEX_MEOWTH 52
+#define NATIONAL_DEX_PERSIAN 53
+#define NATIONAL_DEX_PSYDUCK 54
+#define NATIONAL_DEX_GOLDUCK 55
+#define NATIONAL_DEX_MANKEY 56
+#define NATIONAL_DEX_PRIMEAPE 57
+#define NATIONAL_DEX_GROWLITHE 58
+#define NATIONAL_DEX_ARCANINE 59
+#define NATIONAL_DEX_POLIWAG 60
+#define NATIONAL_DEX_POLIWHIRL 61
+#define NATIONAL_DEX_POLIWRATH 62
+#define NATIONAL_DEX_ABRA 63
+#define NATIONAL_DEX_KADABRA 64
+#define NATIONAL_DEX_ALAKAZAM 65
+#define NATIONAL_DEX_MACHOP 66
+#define NATIONAL_DEX_MACHOKE 67
+#define NATIONAL_DEX_MACHAMP 68
+#define NATIONAL_DEX_BELLSPROUT 69
+#define NATIONAL_DEX_WEEPINBELL 70
+#define NATIONAL_DEX_VICTREEBEL 71
+#define NATIONAL_DEX_TENTACOOL 72
+#define NATIONAL_DEX_TENTACRUEL 73
+#define NATIONAL_DEX_GEODUDE 74
+#define NATIONAL_DEX_GRAVELER 75
+#define NATIONAL_DEX_GOLEM 76
+#define NATIONAL_DEX_PONYTA 77
+#define NATIONAL_DEX_RAPIDASH 78
+#define NATIONAL_DEX_SLOWPOKE 79
+#define NATIONAL_DEX_SLOWBRO 80
+#define NATIONAL_DEX_MAGNEMITE 81
+#define NATIONAL_DEX_MAGNETON 82
+#define NATIONAL_DEX_FARFETCHD 83
+#define NATIONAL_DEX_DODUO 84
+#define NATIONAL_DEX_DODRIO 85
+#define NATIONAL_DEX_SEEL 86
+#define NATIONAL_DEX_DEWGONG 87
+#define NATIONAL_DEX_GRIMER 88
+#define NATIONAL_DEX_MUK 89
+#define NATIONAL_DEX_SHELLDER 90
+#define NATIONAL_DEX_CLOYSTER 91
+#define NATIONAL_DEX_GASTLY 92
+#define NATIONAL_DEX_HAUNTER 93
+#define NATIONAL_DEX_GENGAR 94
+#define NATIONAL_DEX_ONIX 95
+#define NATIONAL_DEX_DROWZEE 96
+#define NATIONAL_DEX_HYPNO 97
+#define NATIONAL_DEX_KRABBY 98
+#define NATIONAL_DEX_KINGLER 99
+#define NATIONAL_DEX_VOLTORB 100
+#define NATIONAL_DEX_ELECTRODE 101
+#define NATIONAL_DEX_EXEGGCUTE 102
+#define NATIONAL_DEX_EXEGGUTOR 103
+#define NATIONAL_DEX_CUBONE 104
+#define NATIONAL_DEX_MAROWAK 105
+#define NATIONAL_DEX_HITMONLEE 106
+#define NATIONAL_DEX_HITMONCHAN 107
+#define NATIONAL_DEX_LICKITUNG 108
+#define NATIONAL_DEX_KOFFING 109
+#define NATIONAL_DEX_WEEZING 110
+#define NATIONAL_DEX_RHYHORN 111
+#define NATIONAL_DEX_RHYDON 112
+#define NATIONAL_DEX_CHANSEY 113
+#define NATIONAL_DEX_TANGELA 114
+#define NATIONAL_DEX_KANGASKHAN 115
+#define NATIONAL_DEX_HORSEA 116
+#define NATIONAL_DEX_SEADRA 117
+#define NATIONAL_DEX_GOLDEEN 118
+#define NATIONAL_DEX_SEAKING 119
+#define NATIONAL_DEX_STARYU 120
+#define NATIONAL_DEX_STARMIE 121
+#define NATIONAL_DEX_MR_MIME 122
+#define NATIONAL_DEX_SCYTHER 123
+#define NATIONAL_DEX_JYNX 124
+#define NATIONAL_DEX_ELECTABUZZ 125
+#define NATIONAL_DEX_MAGMAR 126
+#define NATIONAL_DEX_PINSIR 127
+#define NATIONAL_DEX_TAUROS 128
+#define NATIONAL_DEX_MAGIKARP 129
+#define NATIONAL_DEX_GYARADOS 130
+#define NATIONAL_DEX_LAPRAS 131
+#define NATIONAL_DEX_DITTO 132
+#define NATIONAL_DEX_EEVEE 133
+#define NATIONAL_DEX_VAPOREON 134
+#define NATIONAL_DEX_JOLTEON 135
+#define NATIONAL_DEX_FLAREON 136
+#define NATIONAL_DEX_PORYGON 137
+#define NATIONAL_DEX_OMANYTE 138
+#define NATIONAL_DEX_OMASTAR 139
+#define NATIONAL_DEX_KABUTO 140
+#define NATIONAL_DEX_KABUTOPS 141
+#define NATIONAL_DEX_AERODACTYL 142
+#define NATIONAL_DEX_SNORLAX 143
+#define NATIONAL_DEX_ARTICUNO 144
+#define NATIONAL_DEX_ZAPDOS 145
+#define NATIONAL_DEX_MOLTRES 146
+#define NATIONAL_DEX_DRATINI 147
+#define NATIONAL_DEX_DRAGONAIR 148
+#define NATIONAL_DEX_DRAGONITE 149
+#define NATIONAL_DEX_MEWTWO 150
+#define NATIONAL_DEX_MEW 151
+#define NATIONAL_DEX_CHIKORITA 152
+#define NATIONAL_DEX_BAYLEEF 153
+#define NATIONAL_DEX_MEGANIUM 154
+#define NATIONAL_DEX_CYNDAQUIL 155
+#define NATIONAL_DEX_QUILAVA 156
+#define NATIONAL_DEX_TYPHLOSION 157
+#define NATIONAL_DEX_TOTODILE 158
+#define NATIONAL_DEX_CROCONAW 159
+#define NATIONAL_DEX_FERALIGATR 160
+#define NATIONAL_DEX_SENTRET 161
+#define NATIONAL_DEX_FURRET 162
+#define NATIONAL_DEX_HOOTHOOT 163
+#define NATIONAL_DEX_NOCTOWL 164
+#define NATIONAL_DEX_LEDYBA 165
+#define NATIONAL_DEX_LEDIAN 166
+#define NATIONAL_DEX_SPINARAK 167
+#define NATIONAL_DEX_ARIADOS 168
+#define NATIONAL_DEX_CROBAT 169
+#define NATIONAL_DEX_CHINCHOU 170
+#define NATIONAL_DEX_LANTURN 171
+#define NATIONAL_DEX_PICHU 172
+#define NATIONAL_DEX_CLEFFA 173
+#define NATIONAL_DEX_IGGLYBUFF 174
+#define NATIONAL_DEX_TOGEPI 175
+#define NATIONAL_DEX_TOGETIC 176
+#define NATIONAL_DEX_NATU 177
+#define NATIONAL_DEX_XATU 178
+#define NATIONAL_DEX_MAREEP 179
+#define NATIONAL_DEX_FLAAFFY 180
+#define NATIONAL_DEX_AMPHAROS 181
+#define NATIONAL_DEX_BELLOSSOM 182
+#define NATIONAL_DEX_MARILL 183
+#define NATIONAL_DEX_AZUMARILL 184
+#define NATIONAL_DEX_SUDOWOODO 185
+#define NATIONAL_DEX_POLITOED 186
+#define NATIONAL_DEX_HOPPIP 187
+#define NATIONAL_DEX_SKIPLOOM 188
+#define NATIONAL_DEX_JUMPLUFF 189
+#define NATIONAL_DEX_AIPOM 190
+#define NATIONAL_DEX_SUNKERN 191
+#define NATIONAL_DEX_SUNFLORA 192
+#define NATIONAL_DEX_YANMA 193
+#define NATIONAL_DEX_WOOPER 194
+#define NATIONAL_DEX_QUAGSIRE 195
+#define NATIONAL_DEX_ESPEON 196
+#define NATIONAL_DEX_UMBREON 197
+#define NATIONAL_DEX_MURKROW 198
+#define NATIONAL_DEX_SLOWKING 199
+#define NATIONAL_DEX_MISDREAVUS 200
+#define NATIONAL_DEX_UNOWN 201
+#define NATIONAL_DEX_WOBBUFFET 202
+#define NATIONAL_DEX_GIRAFARIG 203
+#define NATIONAL_DEX_PINECO 204
+#define NATIONAL_DEX_FORRETRESS 205
+#define NATIONAL_DEX_DUNSPARCE 206
+#define NATIONAL_DEX_GLIGAR 207
+#define NATIONAL_DEX_STEELIX 208
+#define NATIONAL_DEX_SNUBBULL 209
+#define NATIONAL_DEX_GRANBULL 210
+#define NATIONAL_DEX_QWILFISH 211
+#define NATIONAL_DEX_SCIZOR 212
+#define NATIONAL_DEX_SHUCKLE 213
+#define NATIONAL_DEX_HERACROSS 214
+#define NATIONAL_DEX_SNEASEL 215
+#define NATIONAL_DEX_TEDDIURSA 216
+#define NATIONAL_DEX_URSARING 217
+#define NATIONAL_DEX_SLUGMA 218
+#define NATIONAL_DEX_MAGCARGO 219
+#define NATIONAL_DEX_SWINUB 220
+#define NATIONAL_DEX_PILOSWINE 221
+#define NATIONAL_DEX_CORSOLA 222
+#define NATIONAL_DEX_REMORAID 223
+#define NATIONAL_DEX_OCTILLERY 224
+#define NATIONAL_DEX_DELIBIRD 225
+#define NATIONAL_DEX_MANTINE 226
+#define NATIONAL_DEX_SKARMORY 227
+#define NATIONAL_DEX_HOUNDOUR 228
+#define NATIONAL_DEX_HOUNDOOM 229
+#define NATIONAL_DEX_KINGDRA 230
+#define NATIONAL_DEX_PHANPY 231
+#define NATIONAL_DEX_DONPHAN 232
+#define NATIONAL_DEX_PORYGON2 233
+#define NATIONAL_DEX_STANTLER 234
+#define NATIONAL_DEX_SMEARGLE 235
+#define NATIONAL_DEX_TYROGUE 236
+#define NATIONAL_DEX_HITMONTOP 237
+#define NATIONAL_DEX_SMOOCHUM 238
+#define NATIONAL_DEX_ELEKID 239
+#define NATIONAL_DEX_MAGBY 240
+#define NATIONAL_DEX_MILTANK 241
+#define NATIONAL_DEX_BLISSEY 242
+#define NATIONAL_DEX_RAIKOU 243
+#define NATIONAL_DEX_ENTEI 244
+#define NATIONAL_DEX_SUICUNE 245
+#define NATIONAL_DEX_LARVITAR 246
+#define NATIONAL_DEX_PUPITAR 247
+#define NATIONAL_DEX_TYRANITAR 248
+#define NATIONAL_DEX_LUGIA 249
+#define NATIONAL_DEX_HO_OH 250
+#define NATIONAL_DEX_CELEBI 251
+
+#define NATIONAL_DEX_OLD_UNOWN_B 387
+#define NATIONAL_DEX_OLD_UNOWN_C 388
+#define NATIONAL_DEX_OLD_UNOWN_D 389
+#define NATIONAL_DEX_OLD_UNOWN_E 390
+#define NATIONAL_DEX_OLD_UNOWN_F 391
+#define NATIONAL_DEX_OLD_UNOWN_G 392
+#define NATIONAL_DEX_OLD_UNOWN_H 393
+#define NATIONAL_DEX_OLD_UNOWN_I 394
+#define NATIONAL_DEX_OLD_UNOWN_J 395
+#define NATIONAL_DEX_OLD_UNOWN_K 396
+#define NATIONAL_DEX_OLD_UNOWN_L 397
+#define NATIONAL_DEX_OLD_UNOWN_M 398
+#define NATIONAL_DEX_OLD_UNOWN_N 399
+#define NATIONAL_DEX_OLD_UNOWN_O 400
+#define NATIONAL_DEX_OLD_UNOWN_P 401
+#define NATIONAL_DEX_OLD_UNOWN_Q 402
+#define NATIONAL_DEX_OLD_UNOWN_R 403
+#define NATIONAL_DEX_OLD_UNOWN_S 404
+#define NATIONAL_DEX_OLD_UNOWN_T 405
+#define NATIONAL_DEX_OLD_UNOWN_U 406
+#define NATIONAL_DEX_OLD_UNOWN_V 407
+#define NATIONAL_DEX_OLD_UNOWN_W 408
+#define NATIONAL_DEX_OLD_UNOWN_X 409
+#define NATIONAL_DEX_OLD_UNOWN_Y 410
+#define NATIONAL_DEX_OLD_UNOWN_Z 411
+
+#define NATIONAL_DEX_TREECKO 252
+#define NATIONAL_DEX_GROVYLE 253
+#define NATIONAL_DEX_SCEPTILE 254
+#define NATIONAL_DEX_TORCHIC 255
+#define NATIONAL_DEX_COMBUSKEN 256
+#define NATIONAL_DEX_BLAZIKEN 257
+#define NATIONAL_DEX_MUDKIP 258
+#define NATIONAL_DEX_MARSHTOMP 259
+#define NATIONAL_DEX_SWAMPERT 260
+#define NATIONAL_DEX_POOCHYENA 261
+#define NATIONAL_DEX_MIGHTYENA 262
+#define NATIONAL_DEX_ZIGZAGOON 263
+#define NATIONAL_DEX_LINOONE 264
+#define NATIONAL_DEX_WURMPLE 265
+#define NATIONAL_DEX_SILCOON 266
+#define NATIONAL_DEX_BEAUTIFLY 267
+#define NATIONAL_DEX_CASCOON 268
+#define NATIONAL_DEX_DUSTOX 269
+#define NATIONAL_DEX_LOTAD 270
+#define NATIONAL_DEX_LOMBRE 271
+#define NATIONAL_DEX_LUDICOLO 272
+#define NATIONAL_DEX_SEEDOT 273
+#define NATIONAL_DEX_NUZLEAF 274
+#define NATIONAL_DEX_SHIFTRY 275
+#define NATIONAL_DEX_NINCADA 290
+#define NATIONAL_DEX_NINJASK 291
+#define NATIONAL_DEX_SHEDINJA 292
+#define NATIONAL_DEX_TAILLOW 276
+#define NATIONAL_DEX_SWELLOW 277
+#define NATIONAL_DEX_SHROOMISH 285
+#define NATIONAL_DEX_BRELOOM 286
+#define NATIONAL_DEX_SPINDA 327
+#define NATIONAL_DEX_WINGULL 278
+#define NATIONAL_DEX_PELIPPER 279
+#define NATIONAL_DEX_SURSKIT 283
+#define NATIONAL_DEX_MASQUERAIN 284
+#define NATIONAL_DEX_WAILMER 320
+#define NATIONAL_DEX_WAILORD 321
+#define NATIONAL_DEX_SKITTY 300
+#define NATIONAL_DEX_DELCATTY 301
+#define NATIONAL_DEX_KECLEON 352
+#define NATIONAL_DEX_BALTOY 343
+#define NATIONAL_DEX_CLAYDOL 344
+#define NATIONAL_DEX_NOSEPASS 299
+#define NATIONAL_DEX_TORKOAL 324
+#define NATIONAL_DEX_SABLEYE 302
+#define NATIONAL_DEX_BARBOACH 339
+#define NATIONAL_DEX_WHISCASH 340
+#define NATIONAL_DEX_LUVDISC 370
+#define NATIONAL_DEX_CORPHISH 341
+#define NATIONAL_DEX_CRAWDAUNT 342
+#define NATIONAL_DEX_FEEBAS 349
+#define NATIONAL_DEX_MILOTIC 350
+#define NATIONAL_DEX_CARVANHA 318
+#define NATIONAL_DEX_SHARPEDO 319
+#define NATIONAL_DEX_TRAPINCH 328
+#define NATIONAL_DEX_VIBRAVA 329
+#define NATIONAL_DEX_FLYGON 330
+#define NATIONAL_DEX_MAKUHITA 296
+#define NATIONAL_DEX_HARIYAMA 297
+#define NATIONAL_DEX_ELECTRIKE 309
+#define NATIONAL_DEX_MANECTRIC 310
+#define NATIONAL_DEX_NUMEL 322
+#define NATIONAL_DEX_CAMERUPT 323
+#define NATIONAL_DEX_SPHEAL 363
+#define NATIONAL_DEX_SEALEO 364
+#define NATIONAL_DEX_WALREIN 365
+#define NATIONAL_DEX_CACNEA 331
+#define NATIONAL_DEX_CACTURNE 332
+#define NATIONAL_DEX_SNORUNT 361
+#define NATIONAL_DEX_GLALIE 362
+#define NATIONAL_DEX_LUNATONE 337
+#define NATIONAL_DEX_SOLROCK 338
+#define NATIONAL_DEX_AZURILL 298
+#define NATIONAL_DEX_SPOINK 325
+#define NATIONAL_DEX_GRUMPIG 326
+#define NATIONAL_DEX_PLUSLE 311
+#define NATIONAL_DEX_MINUN 312
+#define NATIONAL_DEX_MAWILE 303
+#define NATIONAL_DEX_MEDITITE 307
+#define NATIONAL_DEX_MEDICHAM 308
+#define NATIONAL_DEX_SWABLU 333
+#define NATIONAL_DEX_ALTARIA 334
+#define NATIONAL_DEX_WYNAUT 360
+#define NATIONAL_DEX_DUSKULL 355
+#define NATIONAL_DEX_DUSCLOPS 356
+#define NATIONAL_DEX_ROSELIA 315
+#define NATIONAL_DEX_SLAKOTH 287
+#define NATIONAL_DEX_VIGOROTH 288
+#define NATIONAL_DEX_SLAKING 289
+#define NATIONAL_DEX_GULPIN 316
+#define NATIONAL_DEX_SWALOT 317
+#define NATIONAL_DEX_TROPIUS 357
+#define NATIONAL_DEX_WHISMUR 293
+#define NATIONAL_DEX_LOUDRED 294
+#define NATIONAL_DEX_EXPLOUD 295
+#define NATIONAL_DEX_CLAMPERL 366
+#define NATIONAL_DEX_HUNTAIL 367
+#define NATIONAL_DEX_GOREBYSS 368
+#define NATIONAL_DEX_ABSOL 359
+#define NATIONAL_DEX_SHUPPET 353
+#define NATIONAL_DEX_BANETTE 354
+#define NATIONAL_DEX_SEVIPER 336
+#define NATIONAL_DEX_ZANGOOSE 335
+#define NATIONAL_DEX_RELICANTH 369
+#define NATIONAL_DEX_ARON 304
+#define NATIONAL_DEX_LAIRON 305
+#define NATIONAL_DEX_AGGRON 306
+#define NATIONAL_DEX_CASTFORM 351
+#define NATIONAL_DEX_VOLBEAT 313
+#define NATIONAL_DEX_ILLUMISE 314
+#define NATIONAL_DEX_LILEEP 345
+#define NATIONAL_DEX_CRADILY 346
+#define NATIONAL_DEX_ANORITH 347
+#define NATIONAL_DEX_ARMALDO 348
+#define NATIONAL_DEX_RALTS 280
+#define NATIONAL_DEX_KIRLIA 281
+#define NATIONAL_DEX_GARDEVOIR 282
+#define NATIONAL_DEX_BAGON 371
+#define NATIONAL_DEX_SHELGON 372
+#define NATIONAL_DEX_SALAMENCE 373
+#define NATIONAL_DEX_BELDUM 374
+#define NATIONAL_DEX_METANG 375
+#define NATIONAL_DEX_METAGROSS 376
+#define NATIONAL_DEX_REGIROCK 377
+#define NATIONAL_DEX_REGICE 378
+#define NATIONAL_DEX_REGISTEEL 379
+#define NATIONAL_DEX_KYOGRE 382
+#define NATIONAL_DEX_GROUDON 383
+#define NATIONAL_DEX_RAYQUAZA 384
+#define NATIONAL_DEX_LATIAS 380
+#define NATIONAL_DEX_LATIOS 381
+#define NATIONAL_DEX_JIRACHI 385
+#define NATIONAL_DEX_DEOXYS 386
+#define NATIONAL_DEX_CHIMECHO 358
+
+// Hoenn Dex Index Defines
+
+#define HOENN_DEX_BULBASAUR 203
+#define HOENN_DEX_IVYSAUR 204
+#define HOENN_DEX_VENUSAUR 205
+#define HOENN_DEX_CHARMANDER 206
+#define HOENN_DEX_CHARMELEON 207
+#define HOENN_DEX_CHARIZARD 208
+#define HOENN_DEX_SQUIRTLE 209
+#define HOENN_DEX_WARTORTLE 210
+#define HOENN_DEX_BLASTOISE 211
+#define HOENN_DEX_CATERPIE 212
+#define HOENN_DEX_METAPOD 213
+#define HOENN_DEX_BUTTERFREE 214
+#define HOENN_DEX_WEEDLE 215
+#define HOENN_DEX_KAKUNA 216
+#define HOENN_DEX_BEEDRILL 217
+#define HOENN_DEX_PIDGEY 218
+#define HOENN_DEX_PIDGEOTTO 219
+#define HOENN_DEX_PIDGEOT 220
+#define HOENN_DEX_RATTATA 221
+#define HOENN_DEX_RATICATE 222
+#define HOENN_DEX_SPEAROW 223
+#define HOENN_DEX_FEAROW 224
+#define HOENN_DEX_EKANS 225
+#define HOENN_DEX_ARBOK 226
+#define HOENN_DEX_PIKACHU 156
+#define HOENN_DEX_RAICHU 157
+#define HOENN_DEX_SANDSHREW 112
+#define HOENN_DEX_SANDSLASH 113
+#define HOENN_DEX_NIDORAN_F 227
+#define HOENN_DEX_NIDORINA 228
+#define HOENN_DEX_NIDOQUEEN 229
+#define HOENN_DEX_NIDORAN_M 230
+#define HOENN_DEX_NIDORINO 231
+#define HOENN_DEX_NIDOKING 232
+#define HOENN_DEX_CLEFAIRY 233
+#define HOENN_DEX_CLEFABLE 234
+#define HOENN_DEX_VULPIX 153
+#define HOENN_DEX_NINETALES 154
+#define HOENN_DEX_JIGGLYPUFF 138
+#define HOENN_DEX_WIGGLYTUFF 139
+#define HOENN_DEX_ZUBAT 63
+#define HOENN_DEX_GOLBAT 64
+#define HOENN_DEX_ODDISH 88
+#define HOENN_DEX_GLOOM 89
+#define HOENN_DEX_VILEPLUME 90
+#define HOENN_DEX_PARAS 235
+#define HOENN_DEX_PARASECT 236
+#define HOENN_DEX_VENONAT 237
+#define HOENN_DEX_VENOMOTH 238
+#define HOENN_DEX_DIGLETT 239
+#define HOENN_DEX_DUGTRIO 240
+#define HOENN_DEX_MEOWTH 241
+#define HOENN_DEX_PERSIAN 242
+#define HOENN_DEX_PSYDUCK 158
+#define HOENN_DEX_GOLDUCK 159
+#define HOENN_DEX_MANKEY 243
+#define HOENN_DEX_PRIMEAPE 244
+#define HOENN_DEX_GROWLITHE 245
+#define HOENN_DEX_ARCANINE 246
+#define HOENN_DEX_POLIWAG 247
+#define HOENN_DEX_POLIWHIRL 248
+#define HOENN_DEX_POLIWRATH 249
+#define HOENN_DEX_ABRA 39
+#define HOENN_DEX_KADABRA 40
+#define HOENN_DEX_ALAKAZAM 41
+#define HOENN_DEX_MACHOP 73
+#define HOENN_DEX_MACHOKE 74
+#define HOENN_DEX_MACHAMP 75
+#define HOENN_DEX_BELLSPROUT 250
+#define HOENN_DEX_WEEPINBELL 251
+#define HOENN_DEX_VICTREEBEL 252
+#define HOENN_DEX_TENTACOOL 66
+#define HOENN_DEX_TENTACRUEL 67
+#define HOENN_DEX_GEODUDE 57
+#define HOENN_DEX_GRAVELER 58
+#define HOENN_DEX_GOLEM 59
+#define HOENN_DEX_PONYTA 253
+#define HOENN_DEX_RAPIDASH 254
+#define HOENN_DEX_SLOWPOKE 255
+#define HOENN_DEX_SLOWBRO 256
+#define HOENN_DEX_MAGNEMITE 82
+#define HOENN_DEX_MAGNETON 83
+#define HOENN_DEX_FARFETCHD 257
+#define HOENN_DEX_DODUO 92
+#define HOENN_DEX_DODRIO 93
+#define HOENN_DEX_SEEL 258
+#define HOENN_DEX_DEWGONG 259
+#define HOENN_DEX_GRIMER 106
+#define HOENN_DEX_MUK 107
+#define HOENN_DEX_SHELLDER 260
+#define HOENN_DEX_CLOYSTER 261
+#define HOENN_DEX_GASTLY 262
+#define HOENN_DEX_HAUNTER 263
+#define HOENN_DEX_GENGAR 264
+#define HOENN_DEX_ONIX 265
+#define HOENN_DEX_DROWZEE 266
+#define HOENN_DEX_HYPNO 267
+#define HOENN_DEX_KRABBY 268
+#define HOENN_DEX_KINGLER 269
+#define HOENN_DEX_VOLTORB 84
+#define HOENN_DEX_ELECTRODE 85
+#define HOENN_DEX_EXEGGCUTE 270
+#define HOENN_DEX_EXEGGUTOR 271
+#define HOENN_DEX_CUBONE 272
+#define HOENN_DEX_MAROWAK 273
+#define HOENN_DEX_HITMONLEE 274
+#define HOENN_DEX_HITMONCHAN 275
+#define HOENN_DEX_LICKITUNG 276
+#define HOENN_DEX_KOFFING 108
+#define HOENN_DEX_WEEZING 109
+#define HOENN_DEX_RHYHORN 169
+#define HOENN_DEX_RHYDON 170
+#define HOENN_DEX_CHANSEY 277
+#define HOENN_DEX_TANGELA 278
+#define HOENN_DEX_KANGASKHAN 279
+#define HOENN_DEX_HORSEA 184
+#define HOENN_DEX_SEADRA 185
+#define HOENN_DEX_GOLDEEN 50
+#define HOENN_DEX_SEAKING 51
+#define HOENN_DEX_STARYU 143
+#define HOENN_DEX_STARMIE 144
+#define HOENN_DEX_MR_MIME 280
+#define HOENN_DEX_SCYTHER 281
+#define HOENN_DEX_JYNX 282
+#define HOENN_DEX_ELECTABUZZ 283
+#define HOENN_DEX_MAGMAR 284
+#define HOENN_DEX_PINSIR 167
+#define HOENN_DEX_TAUROS 285
+#define HOENN_DEX_MAGIKARP 52
+#define HOENN_DEX_GYARADOS 53
+#define HOENN_DEX_LAPRAS 286
+#define HOENN_DEX_DITTO 287
+#define HOENN_DEX_EEVEE 288
+#define HOENN_DEX_VAPOREON 289
+#define HOENN_DEX_JOLTEON 290
+#define HOENN_DEX_FLAREON 291
+#define HOENN_DEX_PORYGON 292
+#define HOENN_DEX_OMANYTE 293
+#define HOENN_DEX_OMASTAR 294
+#define HOENN_DEX_KABUTO 295
+#define HOENN_DEX_KABUTOPS 296
+#define HOENN_DEX_AERODACTYL 297
+#define HOENN_DEX_SNORLAX 298
+#define HOENN_DEX_ARTICUNO 299
+#define HOENN_DEX_ZAPDOS 300
+#define HOENN_DEX_MOLTRES 301
+#define HOENN_DEX_DRATINI 302
+#define HOENN_DEX_DRAGONAIR 303
+#define HOENN_DEX_DRAGONITE 304
+#define HOENN_DEX_MEWTWO 305
+#define HOENN_DEX_MEW 306
+#define HOENN_DEX_CHIKORITA 307
+#define HOENN_DEX_BAYLEEF 308
+#define HOENN_DEX_MEGANIUM 309
+#define HOENN_DEX_CYNDAQUIL 310
+#define HOENN_DEX_QUILAVA 311
+#define HOENN_DEX_TYPHLOSION 312
+#define HOENN_DEX_TOTODILE 313
+#define HOENN_DEX_CROCONAW 314
+#define HOENN_DEX_FERALIGATR 315
+#define HOENN_DEX_SENTRET 316
+#define HOENN_DEX_FURRET 317
+#define HOENN_DEX_HOOTHOOT 318
+#define HOENN_DEX_NOCTOWL 319
+#define HOENN_DEX_LEDYBA 320
+#define HOENN_DEX_LEDIAN 321
+#define HOENN_DEX_SPINARAK 322
+#define HOENN_DEX_ARIADOS 323
+#define HOENN_DEX_CROBAT 65
+#define HOENN_DEX_CHINCHOU 181
+#define HOENN_DEX_LANTURN 182
+#define HOENN_DEX_PICHU 155
+#define HOENN_DEX_CLEFFA 324
+#define HOENN_DEX_IGGLYBUFF 137
+#define HOENN_DEX_TOGEPI 325
+#define HOENN_DEX_TOGETIC 326
+#define HOENN_DEX_NATU 162
+#define HOENN_DEX_XATU 163
+#define HOENN_DEX_MAREEP 327
+#define HOENN_DEX_FLAAFFY 328
+#define HOENN_DEX_AMPHAROS 329
+#define HOENN_DEX_BELLOSSOM 91
+#define HOENN_DEX_MARILL 55
+#define HOENN_DEX_AZUMARILL 56
+#define HOENN_DEX_SUDOWOODO 330
+#define HOENN_DEX_POLITOED 331
+#define HOENN_DEX_HOPPIP 332
+#define HOENN_DEX_SKIPLOOM 333
+#define HOENN_DEX_JUMPLUFF 334
+#define HOENN_DEX_AIPOM 335
+#define HOENN_DEX_SUNKERN 336
+#define HOENN_DEX_SUNFLORA 337
+#define HOENN_DEX_YANMA 338
+#define HOENN_DEX_WOOPER 339
+#define HOENN_DEX_QUAGSIRE 340
+#define HOENN_DEX_ESPEON 341
+#define HOENN_DEX_UMBREON 342
+#define HOENN_DEX_MURKROW 343
+#define HOENN_DEX_SLOWKING 344
+#define HOENN_DEX_MISDREAVUS 345
+#define HOENN_DEX_UNOWN 346
+#define HOENN_DEX_WOBBUFFET 161
+#define HOENN_DEX_GIRAFARIG 164
+#define HOENN_DEX_PINECO 347
+#define HOENN_DEX_FORRETRESS 348
+#define HOENN_DEX_DUNSPARCE 349
+#define HOENN_DEX_GLIGAR 350
+#define HOENN_DEX_STEELIX 351
+#define HOENN_DEX_SNUBBULL 352
+#define HOENN_DEX_GRANBULL 353
+#define HOENN_DEX_QWILFISH 354
+#define HOENN_DEX_SCIZOR 355
+#define HOENN_DEX_SHUCKLE 356
+#define HOENN_DEX_HERACROSS 168
+#define HOENN_DEX_SNEASEL 357
+#define HOENN_DEX_TEDDIURSA 358
+#define HOENN_DEX_URSARING 359
+#define HOENN_DEX_SLUGMA 103
+#define HOENN_DEX_MAGCARGO 104
+#define HOENN_DEX_SWINUB 360
+#define HOENN_DEX_PILOSWINE 361
+#define HOENN_DEX_CORSOLA 180
+#define HOENN_DEX_REMORAID 362
+#define HOENN_DEX_OCTILLERY 363
+#define HOENN_DEX_DELIBIRD 364
+#define HOENN_DEX_MANTINE 365
+#define HOENN_DEX_SKARMORY 115
+#define HOENN_DEX_HOUNDOUR 366
+#define HOENN_DEX_HOUNDOOM 367
+#define HOENN_DEX_KINGDRA 186
+#define HOENN_DEX_PHANPY 165
+#define HOENN_DEX_DONPHAN 166
+#define HOENN_DEX_PORYGON2 368
+#define HOENN_DEX_STANTLER 369
+#define HOENN_DEX_SMEARGLE 370
+#define HOENN_DEX_TYROGUE 371
+#define HOENN_DEX_HITMONTOP 372
+#define HOENN_DEX_SMOOCHUM 373
+#define HOENN_DEX_ELEKID 374
+#define HOENN_DEX_MAGBY 375
+#define HOENN_DEX_MILTANK 376
+#define HOENN_DEX_BLISSEY 377
+#define HOENN_DEX_RAIKOU 378
+#define HOENN_DEX_ENTEI 379
+#define HOENN_DEX_SUICUNE 380
+#define HOENN_DEX_LARVITAR 381
+#define HOENN_DEX_PUPITAR 382
+#define HOENN_DEX_TYRANITAR 383
+#define HOENN_DEX_LUGIA 384
+#define HOENN_DEX_HO_OH 385
+#define HOENN_DEX_CELEBI 386
+
+#define HOENN_DEX_OLD_UNOWN_B 387
+#define HOENN_DEX_OLD_UNOWN_C 388
+#define HOENN_DEX_OLD_UNOWN_D 389
+#define HOENN_DEX_OLD_UNOWN_E 390
+#define HOENN_DEX_OLD_UNOWN_F 391
+#define HOENN_DEX_OLD_UNOWN_G 392
+#define HOENN_DEX_OLD_UNOWN_H 393
+#define HOENN_DEX_OLD_UNOWN_I 394
+#define HOENN_DEX_OLD_UNOWN_J 395
+#define HOENN_DEX_OLD_UNOWN_K 396
+#define HOENN_DEX_OLD_UNOWN_L 397
+#define HOENN_DEX_OLD_UNOWN_M 398
+#define HOENN_DEX_OLD_UNOWN_N 399
+#define HOENN_DEX_OLD_UNOWN_O 400
+#define HOENN_DEX_OLD_UNOWN_P 401
+#define HOENN_DEX_OLD_UNOWN_Q 402
+#define HOENN_DEX_OLD_UNOWN_R 403
+#define HOENN_DEX_OLD_UNOWN_S 404
+#define HOENN_DEX_OLD_UNOWN_T 405
+#define HOENN_DEX_OLD_UNOWN_U 406
+#define HOENN_DEX_OLD_UNOWN_V 407
+#define HOENN_DEX_OLD_UNOWN_W 408
+#define HOENN_DEX_OLD_UNOWN_X 409
+#define HOENN_DEX_OLD_UNOWN_Y 410
+#define HOENN_DEX_OLD_UNOWN_Z 411
+
+#define HOENN_DEX_TREECKO 1
+#define HOENN_DEX_GROVYLE 2
+#define HOENN_DEX_SCEPTILE 3
+#define HOENN_DEX_TORCHIC 4
+#define HOENN_DEX_COMBUSKEN 5
+#define HOENN_DEX_BLAZIKEN 6
+#define HOENN_DEX_MUDKIP 7
+#define HOENN_DEX_MARSHTOMP 8
+#define HOENN_DEX_SWAMPERT 9
+#define HOENN_DEX_POOCHYENA 10
+#define HOENN_DEX_MIGHTYENA 11
+#define HOENN_DEX_ZIGZAGOON 12
+#define HOENN_DEX_LINOONE 13
+#define HOENN_DEX_WURMPLE 14
+#define HOENN_DEX_SILCOON 15
+#define HOENN_DEX_BEAUTIFLY 16
+#define HOENN_DEX_CASCOON 17
+#define HOENN_DEX_DUSTOX 18
+#define HOENN_DEX_LOTAD 19
+#define HOENN_DEX_LOMBRE 20
+#define HOENN_DEX_LUDICOLO 21
+#define HOENN_DEX_SEEDOT 22
+#define HOENN_DEX_NUZLEAF 23
+#define HOENN_DEX_SHIFTRY 24
+#define HOENN_DEX_NINCADA 42
+#define HOENN_DEX_NINJASK 43
+#define HOENN_DEX_SHEDINJA 44
+#define HOENN_DEX_TAILLOW 25
+#define HOENN_DEX_SWELLOW 26
+#define HOENN_DEX_SHROOMISH 34
+#define HOENN_DEX_BRELOOM 35
+#define HOENN_DEX_SPINDA 114
+#define HOENN_DEX_WINGULL 27
+#define HOENN_DEX_PELIPPER 28
+#define HOENN_DEX_SURSKIT 32
+#define HOENN_DEX_MASQUERAIN 33
+#define HOENN_DEX_WAILMER 99
+#define HOENN_DEX_WAILORD 100
+#define HOENN_DEX_SKITTY 61
+#define HOENN_DEX_DELCATTY 62
+#define HOENN_DEX_KECLEON 145
+#define HOENN_DEX_BALTOY 131
+#define HOENN_DEX_CLAYDOL 132
+#define HOENN_DEX_NOSEPASS 60
+#define HOENN_DEX_TORKOAL 105
+#define HOENN_DEX_SABLEYE 68
+#define HOENN_DEX_BARBOACH 127
+#define HOENN_DEX_WHISCASH 128
+#define HOENN_DEX_LUVDISC 183
+#define HOENN_DEX_CORPHISH 129
+#define HOENN_DEX_CRAWDAUNT 130
+#define HOENN_DEX_FEEBAS 140
+#define HOENN_DEX_MILOTIC 141
+#define HOENN_DEX_CARVANHA 97
+#define HOENN_DEX_SHARPEDO 98
+#define HOENN_DEX_TRAPINCH 116
+#define HOENN_DEX_VIBRAVA 117
+#define HOENN_DEX_FLYGON 118
+#define HOENN_DEX_MAKUHITA 48
+#define HOENN_DEX_HARIYAMA 49
+#define HOENN_DEX_ELECTRIKE 78
+#define HOENN_DEX_MANECTRIC 79
+#define HOENN_DEX_NUMEL 101
+#define HOENN_DEX_CAMERUPT 102
+#define HOENN_DEX_SPHEAL 173
+#define HOENN_DEX_SEALEO 174
+#define HOENN_DEX_WALREIN 175
+#define HOENN_DEX_CACNEA 119
+#define HOENN_DEX_CACTURNE 120
+#define HOENN_DEX_SNORUNT 171
+#define HOENN_DEX_GLALIE 172
+#define HOENN_DEX_LUNATONE 125
+#define HOENN_DEX_SOLROCK 126
+#define HOENN_DEX_AZURILL 54
+#define HOENN_DEX_SPOINK 110
+#define HOENN_DEX_GRUMPIG 111
+#define HOENN_DEX_PLUSLE 80
+#define HOENN_DEX_MINUN 81
+#define HOENN_DEX_MAWILE 69
+#define HOENN_DEX_MEDITITE 76
+#define HOENN_DEX_MEDICHAM 77
+#define HOENN_DEX_SWABLU 121
+#define HOENN_DEX_ALTARIA 122
+#define HOENN_DEX_WYNAUT 160
+#define HOENN_DEX_DUSKULL 148
+#define HOENN_DEX_DUSCLOPS 149
+#define HOENN_DEX_ROSELIA 94
+#define HOENN_DEX_SLAKOTH 36
+#define HOENN_DEX_VIGOROTH 37
+#define HOENN_DEX_SLAKING 38
+#define HOENN_DEX_GULPIN 95
+#define HOENN_DEX_SWALOT 96
+#define HOENN_DEX_TROPIUS 150
+#define HOENN_DEX_WHISMUR 45
+#define HOENN_DEX_LOUDRED 46
+#define HOENN_DEX_EXPLOUD 47
+#define HOENN_DEX_CLAMPERL 176
+#define HOENN_DEX_HUNTAIL 177
+#define HOENN_DEX_GOREBYSS 178
+#define HOENN_DEX_ABSOL 152
+#define HOENN_DEX_SHUPPET 146
+#define HOENN_DEX_BANETTE 147
+#define HOENN_DEX_SEVIPER 124
+#define HOENN_DEX_ZANGOOSE 123
+#define HOENN_DEX_RELICANTH 179
+#define HOENN_DEX_ARON 70
+#define HOENN_DEX_LAIRON 71
+#define HOENN_DEX_AGGRON 72
+#define HOENN_DEX_CASTFORM 142
+#define HOENN_DEX_VOLBEAT 86
+#define HOENN_DEX_ILLUMISE 87
+#define HOENN_DEX_LILEEP 133
+#define HOENN_DEX_CRADILY 134
+#define HOENN_DEX_ANORITH 135
+#define HOENN_DEX_ARMALDO 136
+#define HOENN_DEX_RALTS 29
+#define HOENN_DEX_KIRLIA 30
+#define HOENN_DEX_GARDEVOIR 31
+#define HOENN_DEX_BAGON 187
+#define HOENN_DEX_SHELGON 188
+#define HOENN_DEX_SALAMENCE 189
+#define HOENN_DEX_BELDUM 190
+#define HOENN_DEX_METANG 191
+#define HOENN_DEX_METAGROSS 192
+#define HOENN_DEX_REGIROCK 193
+#define HOENN_DEX_REGICE 194
+#define HOENN_DEX_REGISTEEL 195
+#define HOENN_DEX_KYOGRE 198
+#define HOENN_DEX_GROUDON 199
+#define HOENN_DEX_RAYQUAZA 200
+#define HOENN_DEX_LATIAS 196
+#define HOENN_DEX_LATIOS 197
+#define HOENN_DEX_JIRACHI 201
+#define HOENN_DEX_DEOXYS 202
+#define HOENN_DEX_CHIMECHO 151
+
#ifdef SAPPHIRE
#define ROAMER_SPECIES SPECIES_LATIAS
#else
diff --git a/include/global.h b/include/global.h
index 3c0169606..36e1db978 100644
--- a/include/global.h
+++ b/include/global.h
@@ -176,7 +176,7 @@ struct SecretBaseRecord
/*0x1A19*/ u8 sbr_field_11;
/*0x1A1A*/ u8 decorations[16];
/*0x1A2A*/ u8 decorationPos[16];
- /*0x1A3A*/ u32 partyPersonality[6];
+ /*0x1A3C*/ u32 partyPersonality[6];
/*0x1A54*/ u16 partyMoves[6 * 4];
/*0x1A84*/ u16 partySpecies[6];
/*0x1A90*/ u16 partyHeldItems[6];
@@ -808,7 +808,7 @@ struct BattleTowerData
/*0x04BC, 0x0564*/ u8 battleTowerTrainerId; // index for gBattleTowerTrainers table
/*0x04BD, 0x0565*/ u8 selectedPartyMons[0x3]; // indices of the 3 selected player party mons.
/*0x04C0, 0x0568*/ u16 prizeItem;
- /*0x04C2, 0x056A*/ u8 filler_4C2[0x6];
+ /*0x04C2, 0x056A*/ u8 battledTrainerIds[6];
/*0x04C8, 0x0570*/ u16 totalBattleTowerWins;
/*0x04CA, 0x0572*/ u16 bestBattleTowerWinStreak;
/*0x04CC, 0x0574*/ u16 currentWinStreaks[2];
diff --git a/include/graphics.h b/include/graphics.h
index 8e8e0c97e..f242e3752 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -2472,7 +2472,7 @@ extern const u8 gBagPalette[];
extern const u8 gBagScreen_Gfx[];
extern const u8 gBagScreenMale_Pal[];
extern const u8 gBagScreenFemale_Pal[];
-extern const u16 gUnknown_08E77004[];
+extern const u16 gBagScreen_Tilemap[];
extern const u8 gBuyMenuFrame_Gfx[];
extern const u8 gMenuMoneyPal[];
extern const u8 gBuyMenuFrame_Tilemap[];
@@ -2615,7 +2615,7 @@ extern const u8 gMailTilemap_Dream[];
extern const u8 gMailTilemap_Fab[];
extern const u8 gMailTilemap_Retro[];
-extern const u8 gUnknown_08E96EC8[];
+extern const u8 gBagScreenLabels_Tilemap[];
extern const u8 gMenuTrainerCard_Gfx[];
extern const u16 gMenuTrainerCard0Star_Pal[];
diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h
index 9c8fbdc13..735b7f4f9 100644
--- a/include/pokemon_storage_system.h
+++ b/include/pokemon_storage_system.h
@@ -40,19 +40,30 @@ enum {
PC_TEXT_FMT_MON_NAME_AFTER_EXCL_MARK
};
+struct PokemonStorageSystemFunc
+{
+ u8 (*func)(void);
+ s8 unk4;
+};
+
struct StorageAction {
const u8 *text;
u8 format;
};
+struct StorageText {
+ const u8 *text;
+ int textId;
+};
+
struct PSS_MenuStringPtrs {
const u8 *text;
const u8 *desc;
};
struct UnkStruct_2000028 {
- void *unk_00;
- void *unk_04;
+ const u8 *unk_00;
+ u8 *unk_04;
u16 unk_08;
u16 unk_0a;
void (*unk_0c)(struct UnkStruct_2000028 *data);
@@ -88,7 +99,7 @@ struct PokemonStorageSystemData {
struct PCScreenEffectStruct unk_000c;
struct UnkStruct_2000020 unk_0020;
struct UnkStruct_2000028 unk_0028[8];
- u16 unk_00a8[0x400];
+ u8 unk_00a8[0x800];
u16 unk_08a8;
u16 unk_08aa;
u8 unk_08ac;
@@ -142,7 +153,14 @@ struct PokemonStorageSystemData {
s8 unk_117b;
u8 unk_117c;
u8 unk_117d;
- u8 filler_117e[0x42];
+ u8 filler_117e[2];
+ struct StorageText unk_1180[6];
+ u8 filler_11b0[8];
+ u8 unk_11b8;
+ u8 unk_11b9;
+ u16 unk_11ba;
+ u16 unk_11bc;
+ u8 filler_11be;
struct Sprite *unk_11c0;
struct Sprite *unk_11c4;
s32 unk_11c8;
@@ -158,7 +176,7 @@ struct PokemonStorageSystemData {
u8 unk_11e1;
u8 unk_11e2;
u8 unk_11e3;
- u8 filler_11e4[4];
+ u8 unk_11e4[4];
const u8 *unk_11e8;
u32 unk_11ec;
u16 unk_11f0;
@@ -213,7 +231,7 @@ struct PokemonStorageSystemData {
u8 unk_4784[0x800];
};
-extern u16 gUnknown_02039760[0x600];
+extern u8 gUnknown_02039760[0xC00];
extern struct UnkPSSStruct_2002370 *gUnknown_02038478;
extern struct PokemonStorageSystemData *const gPokemonStorageSystemPtr;
extern u8 *const gUnknown_083B6DB8;
@@ -295,9 +313,9 @@ void sub_809CE84(void);
s16 sub_809CF30(void);
void sub_809CFDC(struct UnkStruct_2000020 *a0, struct UnkStruct_2000028 *a1, u8 a2);
void sub_809CFF0(void);
-void sub_809D034(void *dest, u16 dLeft, u16 dTop, const void *src, u16 sLeft, u16 sTop, u16 width, u16 height);
-void sub_809D104(void *dest, u16 dLeft, u16 dTop, const void *src, u16 sLeft, u16 sTop, u16 width, u16 height);
-void sub_809D16C(void *dest, u16 dLeft, u16 dTop, u16 width, u16 height);
+bool8 sub_809D034(u8 *dest, u16 dLeft, u16 dTop, const u8 *src, u16 sLeft, u16 sTop, u16 width, u16 height);
+void sub_809D104(u8 *dest, u16 dLeft, u16 dTop, const u8 *src, u16 sLeft, u16 sTop, u16 width, u16 height);
+bool8 sub_809D16C(void *dest, u16 dLeft, u16 dTop, u16 width, u16 height);
void ShowPokemonStorageSystem(void);
void debug_sub_80A433C(struct Pokemon *pokemon, void (*func)(void));
diff --git a/include/secret_base.h b/include/secret_base.h
index 4748c83d7..a9a205bc4 100644
--- a/include/secret_base.h
+++ b/include/secret_base.h
@@ -15,7 +15,7 @@ void SetCurrentSecretBaseFromPosition(struct MapPosition *, struct MapEvents *);
void sub_80BC038(struct MapPosition *, struct MapEvents *);
u8 sub_80BC050();
u8 *GetSecretBaseMapName(u8 *dest);
-void sub_80BC300();
+void SetPlayerSecretBaseRecordMixingParty();
u8 sub_80BCCA4(u8 secretBaseIndex);
const u8 *GetSecretBaseTrainerLoseText(void);
void sub_80BCF1C(u8 taskId);