Merged Emerald Expansion and Follower Pokemon

This commit is contained in:
Suppai_Neko committed 2023-04-07 19:22:49 -07:00
1 parent ff2afb0eec
commit d28afca972
988 files changed
+22901 -829

No files matched your search

+5 -5
View File
@@ -32,10 +32,10 @@
// Forms are kept based on the base species, Eg: Meowth and Persian will keep all of their forms, but Perrserker will not be available if P_GEN_8_POKEMON is set to FALSE.
// If you're disabling a generation previous to others (eg: Gen 5 but not Gen 6, 7 and 8),
// remember to update NATIONAL_DEX enum in include/constants/pokedex.h to avoid players from softlocking in the non-existant entries.
#define P_GEN_4_POKEMON TRUE // Generation 4 Pokémon (DPPt, HGSS)
#define P_GEN_5_POKEMON TRUE // Generation 5 Pokémon (BW, B2W2)
#define P_GEN_6_POKEMON TRUE // Generation 6 Pokémon (XY, ORAS)
#define P_GEN_7_POKEMON TRUE // Generation 7 Pokémon (SM, USUM, LGPE)
#define P_GEN_8_POKEMON TRUE // Generation 8 Pokémon (SwSh, BDSP, LA)
#define P_GEN_4_POKEMON FALSE // Generation 4 Pokémon (DPPt, HGSS)
#define P_GEN_5_POKEMON FALSE // Generation 5 Pokémon (BW, B2W2)
#define P_GEN_6_POKEMON FALSE // Generation 6 Pokémon (XY, ORAS)
#define P_GEN_7_POKEMON FALSE // Generation 7 Pokémon (SM, USUM, LGPE)
#define P_GEN_8_POKEMON FALSE // Generation 8 Pokémon (SwSh, BDSP, LA)
#endif // GUARD_CONFIG_POKEMON_H
+1 -1
View File
@@ -1095,7 +1095,7 @@
#define EC_WORD_OLD ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 30)
#define EC_WORD_YOUNG ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 31)
#define EC_WORD_UGLY ((EC_GROUP_TRENDY_SAYING << EC_MASK_BITS) | 32)
#define NUM_ADDITIONAL_PHRASES 33
#define NUM_TRENDY_SAYINGS 33
// Special Berry Masters Wife phrases
#define NOT_SPECIAL_PHRASE 0
+10 -1
View File
@@ -82,7 +82,8 @@
#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP 0x4E
#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT 0x4F
#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT 0x50
#define NUM_MOVEMENT_TYPES 0x51
#define MOVEMENT_TYPE_FOLLOWING_POKEMON 0x51
#define NUM_MOVEMENT_TYPES 0x52
#define MOVEMENT_ACTION_FACE_DOWN 0x0
#define MOVEMENT_ACTION_FACE_UP 0x1
@@ -242,6 +243,14 @@
#define MOVEMENT_ACTION_FIGURE_8 0x9B
#define MOVEMENT_ACTION_FLY_UP 0x9C
#define MOVEMENT_ACTION_FLY_DOWN 0x9D
#define MOVEMENT_ACTION_FOLLOWING_POKEMON 0x9E
#define MOVEMENT_ACTION_FOLLOWING_POKEMON_FACESOUTH 0x9F
#define MOVEMENT_ACTION_FOLLOWING_POKEMON_FACENORTH 0xA0
#define MOVEMENT_ACTION_FOLLOWING_POKEMON_FACEWEST 0xA1
#define MOVEMENT_ACTION_FOLLOWING_POKEMON_FACEEAST 0xA2
#define MOVEMENT_ACTION_FOLLOWING_POKEMON_WALKSOUTH 0xA3
#define MOVEMENT_ACTION_FOLLOWING_POKEMON_SHRINK 0xA4
#define MOVEMENT_ACTION_FOLLOWING_POKEMON_GROW 0xA5
#define MOVEMENT_ACTION_STEP_END 0xFE
#define MOVEMENT_ACTION_NONE 0xFF
+655 -10
View File
@@ -240,17 +240,658 @@
#define OBJ_EVENT_GFX_LINK_RS_MAY 236
#define OBJ_EVENT_GFX_LUGIA 237
#define OBJ_EVENT_GFX_HOOH 238
#define OBJ_EVENT_GFX_BULBASAUR 239
#define OBJ_EVENT_GFX_IVYSAUR 240
#define OBJ_EVENT_GFX_VENUSAUR 241
#define OBJ_EVENT_GFX_CHARMANDER 242
#define OBJ_EVENT_GFX_CHARMELEON 243
#define OBJ_EVENT_GFX_CHARIZARD 244
#define OBJ_EVENT_GFX_SQUIRTLE 245
#define OBJ_EVENT_GFX_WARTORTLE 246
#define OBJ_EVENT_GFX_BLASTOISE 247
#define OBJ_EVENT_GFX_CATERPIE 248
#define OBJ_EVENT_GFX_METAPOD 249
#define OBJ_EVENT_GFX_BUTTERFREE 250
#define OBJ_EVENT_GFX_WEEDLE 251
#define OBJ_EVENT_GFX_KAKUNA 252
#define OBJ_EVENT_GFX_BEEDRILL 253
#define OBJ_EVENT_GFX_PIDGEY 254
#define OBJ_EVENT_GFX_PIDGEOTTO 255
#define OBJ_EVENT_GFX_PIDGEOT 256
#define OBJ_EVENT_GFX_RATTATA 257
#define OBJ_EVENT_GFX_RATICATE 258
#define OBJ_EVENT_GFX_SPEAROW 259
#define OBJ_EVENT_GFX_FEAROW 260
#define OBJ_EVENT_GFX_EKANS 261
#define OBJ_EVENT_GFX_ARBOK 262
#define OBJ_EVENT_GFX_PIKACHU_FOLLOWER 263
#define OBJ_EVENT_GFX_RAICHU 264
#define OBJ_EVENT_GFX_SANDSHREW 265
#define OBJ_EVENT_GFX_SANDSLASH 266
#define OBJ_EVENT_GFX_NIDORAN_F 267
#define OBJ_EVENT_GFX_NIDORINA 268
#define OBJ_EVENT_GFX_NIDOQUEEN 269
#define OBJ_EVENT_GFX_NIDORAN_M 270
#define OBJ_EVENT_GFX_NIDORINO 271
#define OBJ_EVENT_GFX_NIDOKING 272
#define OBJ_EVENT_GFX_CLEFAIRY 273
#define OBJ_EVENT_GFX_CLEFABLE 274
#define OBJ_EVENT_GFX_VULPIX 275
#define OBJ_EVENT_GFX_NINETALES 276
#define OBJ_EVENT_GFX_JIGGLYPUFF 277
#define OBJ_EVENT_GFX_WIGGLYTUFF 278
#define OBJ_EVENT_GFX_ZUBAT 279
#define OBJ_EVENT_GFX_GOLBAT 280
#define OBJ_EVENT_GFX_ODDISH 281
#define OBJ_EVENT_GFX_GLOOM 282
#define OBJ_EVENT_GFX_VILEPLUME 283
#define OBJ_EVENT_GFX_PARAS 284
#define OBJ_EVENT_GFX_PARASECT 285
#define OBJ_EVENT_GFX_VENONAT 286
#define OBJ_EVENT_GFX_VENOMOTH 287
#define OBJ_EVENT_GFX_DIGLETT 288
#define OBJ_EVENT_GFX_DUGTRIO 289
#define OBJ_EVENT_GFX_MEOWTH 290
#define OBJ_EVENT_GFX_PERSIAN 291
#define OBJ_EVENT_GFX_PSYDUCK 292
#define OBJ_EVENT_GFX_GOLDUCK 293
#define OBJ_EVENT_GFX_MANKEY 294
#define OBJ_EVENT_GFX_PRIMEAPE 295
#define OBJ_EVENT_GFX_GROWLITHE 296
#define OBJ_EVENT_GFX_ARCANINE 297
#define OBJ_EVENT_GFX_POLIWAG 298
#define OBJ_EVENT_GFX_POLIWHIRL 299
#define OBJ_EVENT_GFX_POLIWRATH 300
#define OBJ_EVENT_GFX_ABRA 301
#define OBJ_EVENT_GFX_KADABRA 302
#define OBJ_EVENT_GFX_ALAKAZAM 303
#define OBJ_EVENT_GFX_MACHOP 304
#define OBJ_EVENT_GFX_MACHOKE 305
#define OBJ_EVENT_GFX_MACHAMP 306
#define OBJ_EVENT_GFX_BELLSPROUT 307
#define OBJ_EVENT_GFX_WEEPINBELL 308
#define OBJ_EVENT_GFX_VICTREEBEL 309
#define OBJ_EVENT_GFX_TENTACOOL 310
#define OBJ_EVENT_GFX_TENTACRUEL 311
#define OBJ_EVENT_GFX_GEODUDE 312
#define OBJ_EVENT_GFX_GRAVELER 313
#define OBJ_EVENT_GFX_GOLEM 314
#define OBJ_EVENT_GFX_PONYTA 315
#define OBJ_EVENT_GFX_RAPIDASH 316
#define OBJ_EVENT_GFX_SLOWPOKE 317
#define OBJ_EVENT_GFX_SLOWBRO 318
#define OBJ_EVENT_GFX_MAGNEMITE 319
#define OBJ_EVENT_GFX_MAGNETON 320
#define OBJ_EVENT_GFX_FARFETCHD 321
#define OBJ_EVENT_GFX_DODUO 322
#define OBJ_EVENT_GFX_DODRIO 323
#define OBJ_EVENT_GFX_SEEL 324
#define OBJ_EVENT_GFX_DEWGONG 325
#define OBJ_EVENT_GFX_GRIMER 326
#define OBJ_EVENT_GFX_MUK 327
#define OBJ_EVENT_GFX_SHELLDER 328
#define OBJ_EVENT_GFX_CLOYSTER 329
#define OBJ_EVENT_GFX_GASTLY 330
#define OBJ_EVENT_GFX_HAUNTER 331
#define OBJ_EVENT_GFX_GENGAR 332
#define OBJ_EVENT_GFX_ONIX 333
#define OBJ_EVENT_GFX_DROWZEE 334
#define OBJ_EVENT_GFX_HYPNO 335
#define OBJ_EVENT_GFX_KRABBY 336
#define OBJ_EVENT_GFX_KINGLER 337
#define OBJ_EVENT_GFX_VOLTORB 338
#define OBJ_EVENT_GFX_ELECTRODE 339
#define OBJ_EVENT_GFX_EXEGGCUTE 340
#define OBJ_EVENT_GFX_EXEGGUTOR 341
#define OBJ_EVENT_GFX_CUBONE 342
#define OBJ_EVENT_GFX_MAROWAK 343
#define OBJ_EVENT_GFX_HITMONLEE 344
#define OBJ_EVENT_GFX_HITMONCHAN 345
#define OBJ_EVENT_GFX_LICKITUNG 346
#define OBJ_EVENT_GFX_KOFFING 347
#define OBJ_EVENT_GFX_WEEZING 348
#define OBJ_EVENT_GFX_RHYHORN 349
#define OBJ_EVENT_GFX_RHYDON 350
#define OBJ_EVENT_GFX_CHANSEY 351
#define OBJ_EVENT_GFX_TANGELA 352
#define OBJ_EVENT_GFX_KANGASKHAN 353
#define OBJ_EVENT_GFX_HORSEA 354
#define OBJ_EVENT_GFX_SEADRA 355
#define OBJ_EVENT_GFX_GOLDEEN 356
#define OBJ_EVENT_GFX_SEAKING 357
#define OBJ_EVENT_GFX_STARYU 358
#define OBJ_EVENT_GFX_STARMIE 359
#define OBJ_EVENT_GFX_MR_MIME 360
#define OBJ_EVENT_GFX_SCYTHER 361
#define OBJ_EVENT_GFX_JYNX 362
#define OBJ_EVENT_GFX_ELECTABUZZ 363
#define OBJ_EVENT_GFX_MAGMAR 364
#define OBJ_EVENT_GFX_PINSIR 365
#define OBJ_EVENT_GFX_TAUROS 366
#define OBJ_EVENT_GFX_MAGIKARP 367
#define OBJ_EVENT_GFX_GYARADOS 368
#define OBJ_EVENT_GFX_LAPRAS 369
#define OBJ_EVENT_GFX_DITTO 370
#define OBJ_EVENT_GFX_EEVEE 371
#define OBJ_EVENT_GFX_VAPOREON 372
#define OBJ_EVENT_GFX_JOLTEON 373
#define OBJ_EVENT_GFX_FLAREON 374
#define OBJ_EVENT_GFX_PORYGON 375
#define OBJ_EVENT_GFX_OMANYTE 376
#define OBJ_EVENT_GFX_OMASTAR 377
#define OBJ_EVENT_GFX_KABUTO 378
#define OBJ_EVENT_GFX_KABUTOPS 379
#define OBJ_EVENT_GFX_AERODACTYL 380
#define OBJ_EVENT_GFX_SNORLAX 381
#define OBJ_EVENT_GFX_ARTICUNO 382
#define OBJ_EVENT_GFX_ZAPDOS 383
#define OBJ_EVENT_GFX_MOLTRES 384
#define OBJ_EVENT_GFX_DRATINI 385
#define OBJ_EVENT_GFX_DRAGONAIR 386
#define OBJ_EVENT_GFX_DRAGONITE 387
#define OBJ_EVENT_GFX_MEWTWO 388
#define OBJ_EVENT_GFX_MEW_FOLLOWER 389
#define OBJ_EVENT_GFX_CHIKORITA 390
#define OBJ_EVENT_GFX_BAYLEEF 391
#define OBJ_EVENT_GFX_MEGANIUM 392
#define OBJ_EVENT_GFX_CYNDAQUIL 393
#define OBJ_EVENT_GFX_QUILAVA 394
#define OBJ_EVENT_GFX_TYPHLOSION 395
#define OBJ_EVENT_GFX_TOTODILE 396
#define OBJ_EVENT_GFX_CROCONAW 397
#define OBJ_EVENT_GFX_FERALIGATR 398
#define OBJ_EVENT_GFX_SENTRET 399
#define OBJ_EVENT_GFX_FURRET 400
#define OBJ_EVENT_GFX_HOOTHOOT 401
#define OBJ_EVENT_GFX_NOCTOWL 402
#define OBJ_EVENT_GFX_LEDYBA 403
#define OBJ_EVENT_GFX_LEDIAN 404
#define OBJ_EVENT_GFX_SPINARAK 405
#define OBJ_EVENT_GFX_ARIADOS 406
#define OBJ_EVENT_GFX_CROBAT 407
#define OBJ_EVENT_GFX_CHINCHOU 408
#define OBJ_EVENT_GFX_LANTURN 409
#define OBJ_EVENT_GFX_PICHU 410
#define OBJ_EVENT_GFX_CLEFFA 411
#define OBJ_EVENT_GFX_IGGLYBUFF 412
#define OBJ_EVENT_GFX_TOGEPI 413
#define OBJ_EVENT_GFX_TOGETIC 414
#define OBJ_EVENT_GFX_NATU 415
#define OBJ_EVENT_GFX_XATU 416
#define OBJ_EVENT_GFX_MAREEP 417
#define OBJ_EVENT_GFX_FLAAFFY 418
#define OBJ_EVENT_GFX_AMPHAROS 419
#define OBJ_EVENT_GFX_BELLOSSOM 420
#define OBJ_EVENT_GFX_MARILL 421
#define OBJ_EVENT_GFX_AZUMARILL_FOLLOWER 422
#define OBJ_EVENT_GFX_SUDOWOODO_FOLLOWER 423
#define OBJ_EVENT_GFX_POLITOED 424
#define OBJ_EVENT_GFX_HOPPIP 425
#define OBJ_EVENT_GFX_SKIPLOOM 426
#define OBJ_EVENT_GFX_JUMPLUFF 427
#define OBJ_EVENT_GFX_AIPOM 428
#define OBJ_EVENT_GFX_SUNKERN 429
#define OBJ_EVENT_GFX_SUNFLORA 430
#define OBJ_EVENT_GFX_YANMA 431
#define OBJ_EVENT_GFX_WOOPER 432
#define OBJ_EVENT_GFX_QUAGSIRE 433
#define OBJ_EVENT_GFX_ESPEON 434
#define OBJ_EVENT_GFX_UMBREON 435
#define OBJ_EVENT_GFX_MURKROW 436
#define OBJ_EVENT_GFX_SLOWKING 437
#define OBJ_EVENT_GFX_MISDREAVUS 438
#define OBJ_EVENT_GFX_UNOWN_A 439
#define OBJ_EVENT_GFX_WOBBUFFET 440
#define OBJ_EVENT_GFX_GIRAFARIG 441
#define OBJ_EVENT_GFX_PINECO 442
#define OBJ_EVENT_GFX_FORRETRESS 443
#define OBJ_EVENT_GFX_DUNSPARCE 444
#define OBJ_EVENT_GFX_GLIGAR 445
#define OBJ_EVENT_GFX_STEELIX 446
#define OBJ_EVENT_GFX_SNUBBULL 447
#define OBJ_EVENT_GFX_GRANBULL 448
#define OBJ_EVENT_GFX_QWILFISH 449
#define OBJ_EVENT_GFX_SCIZOR 450
#define OBJ_EVENT_GFX_SHUCKLE 451
#define OBJ_EVENT_GFX_HERACROSS 452
#define OBJ_EVENT_GFX_SNEASEL 453
#define OBJ_EVENT_GFX_TEDDIURSA 454
#define OBJ_EVENT_GFX_URSARING 455
#define OBJ_EVENT_GFX_SLUGMA 456
#define OBJ_EVENT_GFX_MAGCARGO 457
#define OBJ_EVENT_GFX_SWINUB 458
#define OBJ_EVENT_GFX_PILOSWINE 459
#define OBJ_EVENT_GFX_CORSOLA 460
#define OBJ_EVENT_GFX_REMORAID 461
#define OBJ_EVENT_GFX_OCTILLERY 462
#define OBJ_EVENT_GFX_DELIBIRD 463
#define OBJ_EVENT_GFX_MANTINE 464
#define OBJ_EVENT_GFX_SKARMORY 465
#define OBJ_EVENT_GFX_HOUNDOUR 466
#define OBJ_EVENT_GFX_HOUNDOOM 467
#define OBJ_EVENT_GFX_KINGDRA 468
#define OBJ_EVENT_GFX_PHANPY 469
#define OBJ_EVENT_GFX_DONPHAN 470
#define OBJ_EVENT_GFX_PORYGON2 471
#define OBJ_EVENT_GFX_STANTLER 472
#define OBJ_EVENT_GFX_SMEARGLE 473
#define OBJ_EVENT_GFX_TYROGUE 474
#define OBJ_EVENT_GFX_HITMONTOP 475
#define OBJ_EVENT_GFX_SMOOCHUM 476
#define OBJ_EVENT_GFX_ELEKID 477
#define OBJ_EVENT_GFX_MAGBY 478
#define OBJ_EVENT_GFX_MILTANK 479
#define OBJ_EVENT_GFX_BLISSEY 480
#define OBJ_EVENT_GFX_RAIKOU 481
#define OBJ_EVENT_GFX_ENTEI 482
#define OBJ_EVENT_GFX_SUICUNE 483
#define OBJ_EVENT_GFX_LARVITAR 484
#define OBJ_EVENT_GFX_PUPITAR 485
#define OBJ_EVENT_GFX_TYRANITAR 486
#define OBJ_EVENT_GFX_LUGIA_FOLLOWER 487
#define OBJ_EVENT_GFX_HOOH_FOLLOWER 488
#define OBJ_EVENT_GFX_CELEBI 489
// NOTE: By default, the max value for NUM_OBJ_EVENT_GFX is 239.
//
// Object event graphics ids are 1 byte in size (max value of 255), and the dynamic
// graphics ids that start after NUM_OBJ_EVENT_GFX reach this limit. No graphics id
// uses the value 239 itself, so removing the "+ 1" in OBJ_EVENT_GFX_VARS would
// allow increasing NUM_OBJ_EVENT_GFX to 240. There are also a handful of unused
// object graphics that can be removed. If more graphics are needed, anything that
// stores graphics ids will need to be increased in size. See wiki entry below:
// https://github.com/pret/pokeemerald/wiki/Feature-Branches#overworld-expansion
#define NUM_OBJ_EVENT_GFX 239
#ifndef POKEMON_EXPANSION
#define OBJ_EVENT_GFX_GREAT_BALL 490
#define OBJ_EVENT_GFX_ULTRA_BALL 491
#define OBJ_EVENT_GFX_MASTER_BALL 492
#define OBJ_EVENT_GFX_SAFARI_BALL 493
#define OBJ_EVENT_GFX_NET_BALL 494
#define OBJ_EVENT_GFX_DIVE_BALL 495
#define OBJ_EVENT_GFX_NEST_BALL 496
#define OBJ_EVENT_GFX_REPEAT_BALL 497
#define OBJ_EVENT_GFX_TIMER_BALL 498
#define OBJ_EVENT_GFX_LUXURY_BALL 499
#define OBJ_EVENT_GFX_PREMIER_BALL 500
#define OBJ_EVENT_GFX_HEAL_BALL 501
#define OBJ_EVENT_GFX_DUSK_BALL 502
#define OBJ_EVENT_GFX_QUICK_BALL 503
#define OBJ_EVENT_GFX_LEVEL_BALL 504
#define OBJ_EVENT_GFX_LURE_BALL 505
#define OBJ_EVENT_GFX_MOON_BALL 506
#define OBJ_EVENT_GFX_FRIEND_BALL 507
#define OBJ_EVENT_GFX_LOVE_BALL 508
#define OBJ_EVENT_GFX_FAST_BALL 509
#define OBJ_EVENT_GFX_HEAVY_BALL 510
#define OBJ_EVENT_GFX_DREAM_BALL 511
#define OBJ_EVENT_GFX_SPORT_BALL 512
#define OBJ_EVENT_GFX_PARK_BALL 513
#define OBJ_EVENT_GFX_CHERISH_BALL 514
// Jump in numbers due to SPECIES_OLD_UNOWN constants
#define OBJ_EVENT_GFX_TREECKO 515
#define OBJ_EVENT_GFX_GROVYLE 516
#define OBJ_EVENT_GFX_SCEPTILE 517
#define OBJ_EVENT_GFX_TORCHIC 518
#define OBJ_EVENT_GFX_COMBUSKEN 519
#define OBJ_EVENT_GFX_BLAZIKEN 520
#define OBJ_EVENT_GFX_MUDKIP 521
#define OBJ_EVENT_GFX_MARSHTOMP 522
#define OBJ_EVENT_GFX_SWAMPERT 523
#define OBJ_EVENT_GFX_POOCHYENA_FOLLOWER 524
#define OBJ_EVENT_GFX_MIGHTYENA 525
#define OBJ_EVENT_GFX_ZIGZAGOON_FOLLOWER 526
#define OBJ_EVENT_GFX_LINOONE 527
#define OBJ_EVENT_GFX_WURMPLE 528
#define OBJ_EVENT_GFX_SILCOON 529
#define OBJ_EVENT_GFX_BEAUTIFLY 530
#define OBJ_EVENT_GFX_CASCOON 531
#define OBJ_EVENT_GFX_DUSTOX 532
#define OBJ_EVENT_GFX_LOTAD 533
#define OBJ_EVENT_GFX_LOMBRE 534
#define OBJ_EVENT_GFX_LUDICOLO 535
#define OBJ_EVENT_GFX_SEEDOT 536
#define OBJ_EVENT_GFX_NUZLEAF 537
#define OBJ_EVENT_GFX_SHIFTRY 538
#define OBJ_EVENT_GFX_NINCADA 539
#define OBJ_EVENT_GFX_NINJASK 540
#define OBJ_EVENT_GFX_SHEDINJA 541
#define OBJ_EVENT_GFX_TAILLOW 542
#define OBJ_EVENT_GFX_SWELLOW 543
#define OBJ_EVENT_GFX_SHROOMISH 544
#define OBJ_EVENT_GFX_BRELOOM 545
#define OBJ_EVENT_GFX_SPINDA 546
#define OBJ_EVENT_GFX_WINGULL_FOLLOWER 547
#define OBJ_EVENT_GFX_PELIPPER 548
#define OBJ_EVENT_GFX_SURSKIT 549
#define OBJ_EVENT_GFX_MASQUERAIN 550
#define OBJ_EVENT_GFX_WAILMER 551
#define OBJ_EVENT_GFX_WAILORD 552
#define OBJ_EVENT_GFX_SKITTY_FOLLOWER 553
#define OBJ_EVENT_GFX_DELCATTY 554
#define OBJ_EVENT_GFX_KECLEON_FOLLOWER 555
#define OBJ_EVENT_GFX_BALTOY 556
#define OBJ_EVENT_GFX_CLAYDOL 557
#define OBJ_EVENT_GFX_NOSEPASS 558
#define OBJ_EVENT_GFX_TORKOAL 559
#define OBJ_EVENT_GFX_SABLEYE 560
#define OBJ_EVENT_GFX_BARBOACH 561
#define OBJ_EVENT_GFX_WHISCASH 562
#define OBJ_EVENT_GFX_LUVDISC 563
#define OBJ_EVENT_GFX_CORPHISH 564
#define OBJ_EVENT_GFX_CRAWDAUNT 565
#define OBJ_EVENT_GFX_FEEBAS 566
#define OBJ_EVENT_GFX_MILOTIC 567
#define OBJ_EVENT_GFX_CARVANHA 568
#define OBJ_EVENT_GFX_SHARPEDO 569
#define OBJ_EVENT_GFX_TRAPINCH 570
#define OBJ_EVENT_GFX_VIBRAVA 571
#define OBJ_EVENT_GFX_FLYGON 572
#define OBJ_EVENT_GFX_MAKUHITA 573
#define OBJ_EVENT_GFX_HARIYAMA 574
#define OBJ_EVENT_GFX_ELECTRIKE 575
#define OBJ_EVENT_GFX_MANECTRIC 576
#define OBJ_EVENT_GFX_NUMEL 577
#define OBJ_EVENT_GFX_CAMERUPT 578
#define OBJ_EVENT_GFX_SPHEAL 579
#define OBJ_EVENT_GFX_SEALEO 580
#define OBJ_EVENT_GFX_WALREIN 581
#define OBJ_EVENT_GFX_CACNEA 582
#define OBJ_EVENT_GFX_CACTURNE 583
#define OBJ_EVENT_GFX_SNORUNT 584
#define OBJ_EVENT_GFX_GLALIE 585
#define OBJ_EVENT_GFX_LUNATONE 586
#define OBJ_EVENT_GFX_SOLROCK 587
#define OBJ_EVENT_GFX_AZURILL_FOLLOWER 588
#define OBJ_EVENT_GFX_SPOINK 589
#define OBJ_EVENT_GFX_GRUMPIG 590
#define OBJ_EVENT_GFX_PLUSLE 591
#define OBJ_EVENT_GFX_MINUN 592
#define OBJ_EVENT_GFX_MAWILE 593
#define OBJ_EVENT_GFX_MEDITITE 594
#define OBJ_EVENT_GFX_MEDICHAM 595
#define OBJ_EVENT_GFX_SWABLU 596
#define OBJ_EVENT_GFX_ALTARIA 597
#define OBJ_EVENT_GFX_WYNAUT 598
#define OBJ_EVENT_GFX_DUSKULL 599
#define OBJ_EVENT_GFX_DUSCLOPS_FOLLOWER 600
#define OBJ_EVENT_GFX_ROSELIA 601
#define OBJ_EVENT_GFX_SLAKOTH 602
#define OBJ_EVENT_GFX_VIGOROTH_FOLLOWER 603
#define OBJ_EVENT_GFX_SLAKING 604
#define OBJ_EVENT_GFX_GULPIN 605
#define OBJ_EVENT_GFX_SWALOT 606
#define OBJ_EVENT_GFX_TROPIUS 607
#define OBJ_EVENT_GFX_WHISMUR 608
#define OBJ_EVENT_GFX_LOUDRED 609
#define OBJ_EVENT_GFX_EXPLOUD 610
#define OBJ_EVENT_GFX_CLAMPERL 611
#define OBJ_EVENT_GFX_HUNTAIL 612
#define OBJ_EVENT_GFX_GOREBYSS 613
#define OBJ_EVENT_GFX_ABSOL 614
#define OBJ_EVENT_GFX_SHUPPET 615
#define OBJ_EVENT_GFX_BANETTE 616
#define OBJ_EVENT_GFX_SEVIPER 617
#define OBJ_EVENT_GFX_ZANGOOSE 618
#define OBJ_EVENT_GFX_RELICANTH 619
#define OBJ_EVENT_GFX_ARON 620
#define OBJ_EVENT_GFX_LAIRON 621
#define OBJ_EVENT_GFX_AGGRON 622
#define OBJ_EVENT_GFX_CASTFORM 623
#define OBJ_EVENT_GFX_VOLBEAT 624
#define OBJ_EVENT_GFX_ILLUMISE 625
#define OBJ_EVENT_GFX_LILEEP 626
#define OBJ_EVENT_GFX_CRADILY 627
#define OBJ_EVENT_GFX_ANORITH 628
#define OBJ_EVENT_GFX_ARMALDO 629
#define OBJ_EVENT_GFX_RALTS 630
#define OBJ_EVENT_GFX_KIRLIA_FOLLOWER 631
#define OBJ_EVENT_GFX_GARDEVOIR 632
#define OBJ_EVENT_GFX_BAGON 633
#define OBJ_EVENT_GFX_SHELGON 634
#define OBJ_EVENT_GFX_SALAMENCE 635
#define OBJ_EVENT_GFX_BELDUM 636
#define OBJ_EVENT_GFX_METANG 637
#define OBJ_EVENT_GFX_METAGROSS 638
#define OBJ_EVENT_GFX_REGIROCK_FOLLOWER 639
#define OBJ_EVENT_GFX_REGICE_FOLLOWER 640
#define OBJ_EVENT_GFX_REGISTEEL_FOLLOWER 641
#define OBJ_EVENT_GFX_KYOGRE 642
#define OBJ_EVENT_GFX_GROUDON 643
#define OBJ_EVENT_GFX_RAYQUAZA_FOLLOWER 644
#define OBJ_EVENT_GFX_LATIAS_FOLLOWER 645
#define OBJ_EVENT_GFX_LATIOS_FOLLOWER 646
#define OBJ_EVENT_GFX_JIRACHI 647
#define OBJ_EVENT_GFX_DEOXYS_NORMAL 648
#define OBJ_EVENT_GFX_CHIMECHO 649
// Other forms
#define OBJ_EVENT_GFX_DEOXYS_ATTACK 650
#define OBJ_EVENT_GFX_DEOXYS_DEFENSE 651
#define OBJ_EVENT_GFX_DEOXYS_SPEED 652
#define OBJ_EVENT_GFX_UNOWN_B 653
#define OBJ_EVENT_GFX_UNOWN_C 654
#define OBJ_EVENT_GFX_UNOWN_D 655
#define OBJ_EVENT_GFX_UNOWN_E 656
#define OBJ_EVENT_GFX_UNOWN_F 657
#define OBJ_EVENT_GFX_UNOWN_G 658
#define OBJ_EVENT_GFX_UNOWN_H 659
#define OBJ_EVENT_GFX_UNOWN_I 660
#define OBJ_EVENT_GFX_UNOWN_J 661
#define OBJ_EVENT_GFX_UNOWN_K 662
#define OBJ_EVENT_GFX_UNOWN_L 663
#define OBJ_EVENT_GFX_UNOWN_M 664
#define OBJ_EVENT_GFX_UNOWN_N 665
#define OBJ_EVENT_GFX_UNOWN_O 666
#define OBJ_EVENT_GFX_UNOWN_P 667
#define OBJ_EVENT_GFX_UNOWN_Q 668
#define OBJ_EVENT_GFX_UNOWN_R 669
#define OBJ_EVENT_GFX_UNOWN_S 670
#define OBJ_EVENT_GFX_UNOWN_T 671
#define OBJ_EVENT_GFX_UNOWN_U 672
#define OBJ_EVENT_GFX_UNOWN_V 673
#define OBJ_EVENT_GFX_UNOWN_W 674
#define OBJ_EVENT_GFX_UNOWN_X 675
#define OBJ_EVENT_GFX_UNOWN_Y 676
#define OBJ_EVENT_GFX_UNOWN_Z 677
#define OBJ_EVENT_GFX_UNOWN_EXCLAMATION 678
#define OBJ_EVENT_GFX_UNOWN_QUESTION 679
#define OBJ_EVENT_GFX_EXPANDING_SPARKLE 680
#else
// There are no OLD_UNOWN constants in the pokemon_expansion, and the species constants are reordered
#define OBJ_EVENT_GFX_TREECKO 490
#define OBJ_EVENT_GFX_GROVYLE 491
#define OBJ_EVENT_GFX_SCEPTILE 492
#define OBJ_EVENT_GFX_TORCHIC 493
#define OBJ_EVENT_GFX_COMBUSKEN 494
#define OBJ_EVENT_GFX_BLAZIKEN 495
#define OBJ_EVENT_GFX_MUDKIP 496
#define OBJ_EVENT_GFX_MARSHTOMP 497
#define OBJ_EVENT_GFX_SWAMPERT 498
#define OBJ_EVENT_GFX_POOCHYENA_FOLLOWER 499
#define OBJ_EVENT_GFX_MIGHTYENA 500
#define OBJ_EVENT_GFX_ZIGZAGOON_FOLLOWER 501
#define OBJ_EVENT_GFX_LINOONE 502
#define OBJ_EVENT_GFX_WURMPLE 503
#define OBJ_EVENT_GFX_SILCOON 504
#define OBJ_EVENT_GFX_BEAUTIFLY 505
#define OBJ_EVENT_GFX_CASCOON 506
#define OBJ_EVENT_GFX_DUSTOX 507
#define OBJ_EVENT_GFX_LOTAD 508
#define OBJ_EVENT_GFX_LOMBRE 509
#define OBJ_EVENT_GFX_LUDICOLO 510
#define OBJ_EVENT_GFX_SEEDOT 511
#define OBJ_EVENT_GFX_NUZLEAF 512
#define OBJ_EVENT_GFX_SHIFTRY 513
#define OBJ_EVENT_GFX_TAILLOW 514
#define OBJ_EVENT_GFX_SWELLOW 515
#define OBJ_EVENT_GFX_WINGULL_FOLLOWER 516
#define OBJ_EVENT_GFX_PELIPPER 517
#define OBJ_EVENT_GFX_RALTS 518
#define OBJ_EVENT_GFX_KIRLIA_FOLLOWER 519
#define OBJ_EVENT_GFX_GARDEVOIR 520
#define OBJ_EVENT_GFX_SURSKIT 521
#define OBJ_EVENT_GFX_MASQUERAIN 522
#define OBJ_EVENT_GFX_SHROOMISH 523
#define OBJ_EVENT_GFX_BRELOOM 524
#define OBJ_EVENT_GFX_SLAKOTH 525
#define OBJ_EVENT_GFX_VIGOROTH_FOLLOWER 526
#define OBJ_EVENT_GFX_SLAKING 527
#define OBJ_EVENT_GFX_NINCADA 528
#define OBJ_EVENT_GFX_NINJASK 529
#define OBJ_EVENT_GFX_SHEDINJA 530
#define OBJ_EVENT_GFX_WHISMUR 531
#define OBJ_EVENT_GFX_LOUDRED 532
#define OBJ_EVENT_GFX_EXPLOUD 533
#define OBJ_EVENT_GFX_MAKUHITA 534
#define OBJ_EVENT_GFX_HARIYAMA 535
#define OBJ_EVENT_GFX_AZURILL_FOLLOWER 536
#define OBJ_EVENT_GFX_NOSEPASS 537
#define OBJ_EVENT_GFX_SKITTY_FOLLOWER 538
#define OBJ_EVENT_GFX_DELCATTY 539
#define OBJ_EVENT_GFX_SABLEYE 540
#define OBJ_EVENT_GFX_MAWILE 541
#define OBJ_EVENT_GFX_ARON 542
#define OBJ_EVENT_GFX_LAIRON 543
#define OBJ_EVENT_GFX_AGGRON 544
#define OBJ_EVENT_GFX_MEDITITE 545
#define OBJ_EVENT_GFX_MEDICHAM 546
#define OBJ_EVENT_GFX_ELECTRIKE 547
#define OBJ_EVENT_GFX_MANECTRIC 548
#define OBJ_EVENT_GFX_PLUSLE 549
#define OBJ_EVENT_GFX_MINUN 550
#define OBJ_EVENT_GFX_VOLBEAT 551
#define OBJ_EVENT_GFX_ILLUMISE 552
#define OBJ_EVENT_GFX_ROSELIA 553
#define OBJ_EVENT_GFX_GULPIN 554
#define OBJ_EVENT_GFX_SWALOT 555
#define OBJ_EVENT_GFX_CARVANHA 556
#define OBJ_EVENT_GFX_SHARPEDO 557
#define OBJ_EVENT_GFX_WAILMER 558
#define OBJ_EVENT_GFX_WAILORD 559
#define OBJ_EVENT_GFX_NUMEL 560
#define OBJ_EVENT_GFX_CAMERUPT 561
#define OBJ_EVENT_GFX_TORKOAL 562
#define OBJ_EVENT_GFX_SPOINK 563
#define OBJ_EVENT_GFX_GRUMPIG 564
#define OBJ_EVENT_GFX_SPINDA 565
#define OBJ_EVENT_GFX_TRAPINCH 566
#define OBJ_EVENT_GFX_VIBRAVA 567
#define OBJ_EVENT_GFX_FLYGON 568
#define OBJ_EVENT_GFX_CACNEA 569
#define OBJ_EVENT_GFX_CACTURNE 570
#define OBJ_EVENT_GFX_SWABLU 571
#define OBJ_EVENT_GFX_ALTARIA 572
#define OBJ_EVENT_GFX_ZANGOOSE 573
#define OBJ_EVENT_GFX_SEVIPER 574
#define OBJ_EVENT_GFX_LUNATONE 575
#define OBJ_EVENT_GFX_SOLROCK 576
#define OBJ_EVENT_GFX_BARBOACH 577
#define OBJ_EVENT_GFX_WHISCASH 578
#define OBJ_EVENT_GFX_CORPHISH 579
#define OBJ_EVENT_GFX_CRAWDAUNT 580
#define OBJ_EVENT_GFX_BALTOY 581
#define OBJ_EVENT_GFX_CLAYDOL 582
#define OBJ_EVENT_GFX_LILEEP 583
#define OBJ_EVENT_GFX_CRADILY 584
#define OBJ_EVENT_GFX_ANORITH 585
#define OBJ_EVENT_GFX_ARMALDO 586
#define OBJ_EVENT_GFX_FEEBAS 587
#define OBJ_EVENT_GFX_MILOTIC 588
#define OBJ_EVENT_GFX_CASTFORM 589
#define OBJ_EVENT_GFX_KECLEON_FOLLOWER 590
#define OBJ_EVENT_GFX_SHUPPET 591
#define OBJ_EVENT_GFX_BANETTE 592
#define OBJ_EVENT_GFX_DUSKULL 593
#define OBJ_EVENT_GFX_DUSCLOPS_FOLLOWER 594
#define OBJ_EVENT_GFX_TROPIUS 595
#define OBJ_EVENT_GFX_CHIMECHO 596
#define OBJ_EVENT_GFX_ABSOL 597
#define OBJ_EVENT_GFX_WYNAUT 598
#define OBJ_EVENT_GFX_SNORUNT 599
#define OBJ_EVENT_GFX_GLALIE 600
#define OBJ_EVENT_GFX_SPHEAL 601
#define OBJ_EVENT_GFX_SEALEO 602
#define OBJ_EVENT_GFX_WALREIN 603
#define OBJ_EVENT_GFX_CLAMPERL 604
#define OBJ_EVENT_GFX_HUNTAIL 605
#define OBJ_EVENT_GFX_GOREBYSS 606
#define OBJ_EVENT_GFX_RELICANTH 607
#define OBJ_EVENT_GFX_LUVDISC 608
#define OBJ_EVENT_GFX_BAGON 609
#define OBJ_EVENT_GFX_SHELGON 610
#define OBJ_EVENT_GFX_SALAMENCE 611
#define OBJ_EVENT_GFX_BELDUM 612
#define OBJ_EVENT_GFX_METANG 613
#define OBJ_EVENT_GFX_METAGROSS 614
#define OBJ_EVENT_GFX_REGIROCK_FOLLOWER 615
#define OBJ_EVENT_GFX_REGICE_FOLLOWER 616
#define OBJ_EVENT_GFX_REGISTEEL_FOLLOWER 617
#define OBJ_EVENT_GFX_LATIAS_FOLLOWER 618
#define OBJ_EVENT_GFX_LATIOS_FOLLOWER 619
#define OBJ_EVENT_GFX_KYOGRE 620
#define OBJ_EVENT_GFX_GROUDON 621
#define OBJ_EVENT_GFX_RAYQUAZA_FOLLOWER 622
#define OBJ_EVENT_GFX_JIRACHI 623
#define OBJ_EVENT_GFX_DEOXYS_NORMAL 624
// Other forms
#define OBJ_EVENT_GFX_DEOXYS_ATTACK 625
#define OBJ_EVENT_GFX_DEOXYS_DEFENSE 626
#define OBJ_EVENT_GFX_DEOXYS_SPEED 627
#define OBJ_EVENT_GFX_UNOWN_B 628
#define OBJ_EVENT_GFX_UNOWN_C 629
#define OBJ_EVENT_GFX_UNOWN_D 630
#define OBJ_EVENT_GFX_UNOWN_E 631
#define OBJ_EVENT_GFX_UNOWN_F 632
#define OBJ_EVENT_GFX_UNOWN_G 633
#define OBJ_EVENT_GFX_UNOWN_H 634
#define OBJ_EVENT_GFX_UNOWN_I 635
#define OBJ_EVENT_GFX_UNOWN_J 636
#define OBJ_EVENT_GFX_UNOWN_K 637
#define OBJ_EVENT_GFX_UNOWN_L 638
#define OBJ_EVENT_GFX_UNOWN_M 639
#define OBJ_EVENT_GFX_UNOWN_N 640
#define OBJ_EVENT_GFX_UNOWN_O 641
#define OBJ_EVENT_GFX_UNOWN_P 642
#define OBJ_EVENT_GFX_UNOWN_Q 643
#define OBJ_EVENT_GFX_UNOWN_R 644
#define OBJ_EVENT_GFX_UNOWN_S 645
#define OBJ_EVENT_GFX_UNOWN_T 646
#define OBJ_EVENT_GFX_UNOWN_U 647
#define OBJ_EVENT_GFX_UNOWN_V 648
#define OBJ_EVENT_GFX_UNOWN_W 649
#define OBJ_EVENT_GFX_UNOWN_X 650
#define OBJ_EVENT_GFX_UNOWN_Y 651
#define OBJ_EVENT_GFX_UNOWN_Z 652
#define OBJ_EVENT_GFX_UNOWN_EXCLAMATION 653
#define OBJ_EVENT_GFX_UNOWN_QUESTION 654
#define OBJ_EVENT_GFX_GREAT_BALL 655
#define OBJ_EVENT_GFX_ULTRA_BALL 656
#define OBJ_EVENT_GFX_MASTER_BALL 657
#define OBJ_EVENT_GFX_SAFARI_BALL 658
#define OBJ_EVENT_GFX_NET_BALL 659
#define OBJ_EVENT_GFX_DIVE_BALL 660
#define OBJ_EVENT_GFX_NEST_BALL 661
#define OBJ_EVENT_GFX_REPEAT_BALL 662
#define OBJ_EVENT_GFX_TIMER_BALL 663
#define OBJ_EVENT_GFX_LUXURY_BALL 664
#define OBJ_EVENT_GFX_PREMIER_BALL 665
#define OBJ_EVENT_GFX_HEAL_BALL 666
#define OBJ_EVENT_GFX_DUSK_BALL 667
#define OBJ_EVENT_GFX_QUICK_BALL 668
#define OBJ_EVENT_GFX_LEVEL_BALL 669
#define OBJ_EVENT_GFX_LURE_BALL 670
#define OBJ_EVENT_GFX_MOON_BALL 671
#define OBJ_EVENT_GFX_FRIEND_BALL 672
#define OBJ_EVENT_GFX_LOVE_BALL 673
#define OBJ_EVENT_GFX_FAST_BALL 674
#define OBJ_EVENT_GFX_HEAVY_BALL 675
#define OBJ_EVENT_GFX_DREAM_BALL 676
#define OBJ_EVENT_GFX_SPORT_BALL 677
#define OBJ_EVENT_GFX_PARK_BALL 678
#define OBJ_EVENT_GFX_CHERISH_BALL 679
#define OBJ_EVENT_GFX_EXPANDING_SPARKLE 680
#endif
#define NUM_OBJ_EVENT_GFX 681
// These are dynamic object gfx ids.
@@ -285,6 +926,9 @@
#define TRACKS_NONE 0
#define TRACKS_FOOT 1
#define TRACKS_BIKE_TIRE 2
#define TRACKS_SLITHER 3
#define TRACKS_SPOT 4
#define TRACKS_BUG 5
#define FIRST_DECORATION_SPRITE_GFX OBJ_EVENT_GFX_PICHU_DOLL
@@ -293,6 +937,7 @@
// Special object event local ids
#define OBJ_EVENT_ID_PLAYER 0xFF
#define OBJ_EVENT_ID_FOLLOWER 0xFE
#define OBJ_EVENT_ID_CAMERA 0x7F
// Object event local ids referenced in C files
+6
View File
@@ -68,6 +68,9 @@
#define FLDEFF_RAYQUAZA_SPOTLIGHT 64
#define FLDEFF_DESTROY_DEOXYS_ROCK 65
#define FLDEFF_MOVE_DEOXYS_ROCK 66
#define FLDEFF_TRACKS_SLITHER 67
#define FLDEFF_TRACKS_SPOT 68
#define FLDEFF_TRACKS_BUG 69
#define FLDEFFOBJ_SHADOW_S 0
#define FLDEFFOBJ_SHADOW_M 1
@@ -106,6 +109,9 @@
#define FLDEFFOBJ_BUBBLES 34
#define FLDEFFOBJ_SMALL_SPARKLE 35
#define FLDEFFOBJ_RAYQUAZA 36
#define FLDEFFOBJ_TRACKS_SLITHER 37
#define FLDEFFOBJ_TRACKS_SPOT 38
#define FLDEFFOBJ_TRACKS_BUG 39
#define FLDEFF_PAL_TAG_CUT_GRASS 0x1000
#define FLDEFF_PAL_TAG_SECRET_POWER_TREE 0x1003
+5 -4
View File
@@ -41,8 +41,9 @@
#define FLAG_TEMP_1F (TEMP_FLAGS_START + 0x1F)
#define TEMP_FLAGS_END FLAG_TEMP_1F
#define FLAG_UNUSED_0x020 0x20 // Unused Flag
#define FLAG_UNUSED_0x021 0x21 // Unused Flag
#define FLAG_FOLLOWER_ACTIVE 0x20 // Reveals the follower object
#define FLAG_FOLLOWER_IN_BUILDING 0x21 // Used for speeding up follower door exiting
#define FLAG_UNUSED_0x022 0x22 // Unused Flag
#define FLAG_UNUSED_0x023 0x23 // Unused Flag
#define FLAG_UNUSED_0x024 0x24 // Unused Flag
@@ -1123,7 +1124,7 @@
#define FLAG_ITEM_NEW_MAUVILLE_ULTRA_BALL 0x433
#define FLAG_ITEM_NEW_MAUVILLE_ESCAPE_ROPE 0x434
#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_6_LUXURY_BALL 0x435
#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_4_SCANNER 0x436
#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_2_SCANNER 0x436
#define FLAG_ITEM_SCORCHED_SLAB_TM11 0x437
#define FLAG_ITEM_METEOR_FALLS_B1F_2R_TM02 0x438
#define FLAG_ITEM_SHOAL_CAVE_ENTRANCE_BIG_PEARL 0x439
@@ -1348,7 +1349,7 @@
#define FLAG_UNUSED_0x863 (SYSTEM_FLAGS + 0x3) // Unused Flag
#define FLAG_SYS_GAME_CLEAR (SYSTEM_FLAGS + 0x4)
#define FLAG_SYS_CHAT_USED (SYSTEM_FLAGS + 0x5)
#define FLAG_SYS_HIPSTER_MEET (SYSTEM_FLAGS + 0x6)
#define FLAG_UNLOCKED_TRENDY_SAYINGS (SYSTEM_FLAGS + 0x6)
// Badges
#define FLAG_BADGE01_GET (SYSTEM_FLAGS + 0x7)
+19
View File
@@ -0,0 +1,19 @@
#ifndef GUARD_CONSTANTS_FOLLOW_ME_H
#define GUARD_CONSTANTS_FOLLOW_ME_H
#define FOLLOWER_FLAG_HAS_RUNNING_FRAMES 0x1
#define FOLLOWER_FLAG_CAN_BIKE 0x2
#define FOLLOWER_FLAG_CAN_LEAVE_ROUTE 0x4 // teleport, dig, fly, etc
#define FOLLOWER_FLAG_CAN_SURF 0x8
#define FOLLOWER_FLAG_CAN_WATERFALL 0x10
#define FOLLOWER_FLAG_CAN_DIVE 0x20
#define FOLLOWER_FLAG_CAN_ROCK_CLIMB 0x40 // need rock climb implemented
#define FOLLOWER_FLAG_CLEAR_ON_WHITE_OUT 0x80
#define FOLLOWER_FLAG_CUSTOM_FOLLOW_SCRIPT 0x100 // follower has custom script while following (use loadword prior to setfollower)
#define FOLLOWER_FLAG_ALL_WATER FOLLOWER_FLAG_CAN_SURF | FOLLOWER_FLAG_CAN_WATERFALL | FOLLOWER_FLAG_CAN_DIVE
#define FOLLOWER_FLAG_ALL_LAND FOLLOWER_FLAG_HAS_RUNNING_FRAMES | FOLLOWER_FLAG_CAN_BIKE | FOLLOWER_FLAG_CAN_LEAVE_ROUTE
#define FOLLOWER_FLAG_ALL FOLLOWER_FLAG_ALL_WATER | FOLLOWER_FLAG_ALL_LAND | FOLLOWER_FLAG_CLEAR_ON_WHITE_OUT
#endif // GUARD_CONSTANTS_FOLLOW_ME_H
+5
View File
@@ -167,4 +167,9 @@
#define CONNECTION_DIVE 5
#define CONNECTION_EMERGE 6
#define SIDEWAYS_STAIRS_IMPLEMENTED FALSE
#define POST_BATTLE_FOLLOWER_FIX FALSE
#define FAST_FOLLOWERS FALSE
#endif // GUARD_CONSTANTS_GLOBAL_H
+2 -2
View File
@@ -128,11 +128,11 @@ void InitializeEasyChatWordArray(u16 *words, u16 length);
u8 *ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 columns, u16 rows);
bool8 IsBardWordInvalid(u16 word);
u16 GetRandomEasyChatWordFromGroup(u16 group);
u16 GetNewHipsterPhraseToTeach(void);
u16 UnlockRandomTrendySaying(void);
u16 EasyChat_GetNumWordsInGroup(u8);
u16 GetRandomEasyChatWordFromUnlockedGroup(u16);
void DoEasyChatScreen(u8 type, u16 *words, MainCallback callback, u8 displayedPersonType);
void InitQuestionnaireWords(void);
void UnlockAdditionalPhrase(u8 additionalPhraseId);
void UnlockTrendySaying(u8 wordIndex);
#endif // GUARD_EASYCHAT_H
+1 -1
View File
@@ -22,7 +22,7 @@ u16 *GetVarPointer(u16 id);
u16 VarGet(u16 id);
u16 VarGetIfExist(u16 id);
bool8 VarSet(u16 id, u16 value);
u8 VarGetObjectEventGraphicsId(u8 id);
u16 VarGetObjectEventGraphicsId(u8 id);
u8 *GetFlagPointer(u16 id);
u8 FlagSet(u16 id);
u8 FlagToggle(u16 id);
+22 -8
View File
@@ -92,11 +92,10 @@ struct LockedAnimObjectEvents
extern const struct OamData gObjectEventBaseOam_32x8;
extern const struct OamData gObjectEventBaseOam_32x32;
extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[];
extern const u8 gReflectionEffectPaletteMap[];
extern const u8 *const gBerryTreeObjectEventGraphicsIdTablePointers[];
extern const u16 *const gBerryTreeObjectEventGraphicsIdTablePointers[];
extern const struct SpriteFrameImage *const gBerryTreePicTablePointers[];
extern const u8 *const gBerryTreePaletteSlotTablePointers[];
extern const u16 *const gBerryTreePaletteSlotTablePointers[];
void ResetObjectEvents(void);
u8 GetMoveDirectionAnimNum(u8 direction);
@@ -105,6 +104,7 @@ bool8 TryGetObjectEventIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroupId, u
u8 GetObjectEventIdByXY(s16 x, s16 y);
void SetObjectEventDirection(struct ObjectEvent *objectEvent, u8 direction);
u8 GetFirstInactiveObjectEventId(void);
void RemoveObjectEvent(struct ObjectEvent *objectEvent);
void RemoveObjectEventByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup);
void LoadPlayerObjectReflectionPalette(u16 tag, u8 slot);
void LoadSpecialObjectReflectionPalette(u16 tag, u8 slot);
@@ -120,14 +120,14 @@ void ObjectEventClearHeldMovementIfActive(struct ObjectEvent *);
void TrySpawnObjectEvents(s16 cameraX, s16 cameraY);
u8 CreateObjectGraphicsSprite(u16, void (*)(struct Sprite *), s16 x, s16 y, u8 subpriority);
u8 TrySpawnObjectEvent(u8 localId, u8 mapNum, u8 mapGroup);
u8 SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 elevation);
u8 SpawnSpecialObjectEventParameterized(u16 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 elevation);
u8 SpawnSpecialObjectEvent(struct ObjectEventTemplate *);
void SetSpritePosToMapCoords(s16 mapX, s16 mapY, s16 *destX, s16 *destY);
void CameraObjectReset1(void);
void ObjectEventSetGraphicsId(struct ObjectEvent *, u8 graphicsId);
void ObjectEventSetGraphicsId(struct ObjectEvent *, u16 graphicsId);
const struct ObjectEventGraphicsInfo *GetObjectEventGraphicsInfo(u16 graphicsId);
void ObjectEventTurn(struct ObjectEvent *, u8 direction);
void ObjectEventTurnByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, u8 direction);
const struct ObjectEventGraphicsInfo *GetObjectEventGraphicsInfo(u8 graphicsId);
void SetObjectInvisibility(u8 localId, u8 mapNum, u8 mapGroup, bool8 invisible);
void FreeAndReserveObjectSpritePalettes(void);
void SetObjectEventSpritePosByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y);
@@ -212,8 +212,12 @@ void UpdateObjectEventSpriteInvisibility(struct Sprite *sprite, bool8 invisible)
s16 GetFigure8XOffset(s16 idx);
s16 GetFigure8YOffset(s16 idx);
void CameraObjectReset2(void);
void LoadObjectEventPalette(u16 paletteTag);
u8 GetObjectEventBerryTreeId(u8 objectEventId);
void SetBerryTreeJustPicked(u8 mapId, u8 mapNumber, u8 mapGroup);
const struct ObjectEventTemplate *GetObjectEventTemplateByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup);
u8 TrySpawnObjectEventTemplate(const struct ObjectEventTemplate *objectEventTemplate, u8 mapNum, u8 mapGroup, s16 cameraX, s16 cameraY);
bool8 ObjectEventPokemonFacePlayer(struct ObjectEvent *, struct ObjectEvent *);
bool8 IsBerryTreeSparkling(u8 localId, u8 mapNum, u8 mapGroup);
void MovementType_None(struct Sprite *);
@@ -271,6 +275,7 @@ void MovementType_JogInPlace(struct Sprite *);
void MovementType_RunInPlace(struct Sprite *);
void MovementType_Invisible(struct Sprite *);
void MovementType_WalkSlowlyInPlace(struct Sprite *);
void MovementType_FollowingPokemon(struct Sprite *);
u8 GetSlideMovementAction(u32);
u8 GetJumpMovementAction(u32);
u8 GetJump2MovementAction(u32);
@@ -431,13 +436,22 @@ u8 MovementType_RunInPlace_Step0(struct ObjectEvent *, struct Sprite *);
u8 MovementType_Invisible_Step0(struct ObjectEvent *, struct Sprite *);
u8 MovementType_Invisible_Step1(struct ObjectEvent *, struct Sprite *);
u8 MovementType_Invisible_Step2(struct ObjectEvent *, struct Sprite *);
u8 MovementType_FollowingPokemon_Step0(struct ObjectEvent *, struct Sprite *);
u8 MovementType_FollowingPokemon_Step1(struct ObjectEvent *, struct Sprite *);
u8 MovementType_FollowingPokemon_Step2(struct ObjectEvent *, struct Sprite *);
u8 MovementType_FollowingPokemon_Step3(struct ObjectEvent *, struct Sprite *);
u8 CreateVirtualObject(u8 graphicsId, u8 virtualObjId, s16 x, s16 y, u8 elevation, u8 direction);
u8 CreateVirtualObject(u16 graphicsId, u8 virtualObjId, s16 x, s16 y, u8 z, u8 direction);
void TurnVirtualObject(u8 virtualObjId, u8 direction);
void SetVirtualObjectGraphics(u8 virtualObjId, u8 graphicsId);
void SetVirtualObjectGraphics(u8 virtualObjId, u16 graphicsId);
void SetVirtualObjectInvisibility(u8 virtualObjId, bool32 invisible);
bool32 IsVirtualObjectInvisible(u8 virtualObjId);
void SetVirtualObjectSpriteAnim(u8 virtualObjId, u8 animNum);
bool32 IsVirtualObjectAnimating(u8 virtualObjId);
// NEW
u16 GetMiniStepCount(u8 speed);
void RunMiniStep(struct Sprite *sprite, u8 speed, u8 currentFrame);
bool8 PlayerIsUnderWaterfall(struct ObjectEvent *objectEvent);
#endif //GUARD_EVENT_OBJECT_MOVEMENT_H
+1 -1
View File
@@ -32,7 +32,7 @@ bool8 TryDoDiveWarp(struct MapPosition *position, u16 b);
int SetCableClubWarp(void);
u8 TrySetDiveWarp(void);
const u8 *GetInteractedLinkPlayerScript(struct MapPosition *position, u8 metatileBehavior, u8 direction);
u8 *GetCoordEventScriptAtMapPosition(struct MapPosition *position);
const u8 *GetCoordEventScriptAtMapPosition(struct MapPosition *position);
void ClearPoisonStepCounter(void);
#endif // GUARD_FIELDCONTROLAVATAR_H
+1
View File
@@ -41,5 +41,6 @@ void UpdateBubblesFieldEffect(struct Sprite *);
void UpdateSparkleFieldEffect(struct Sprite *);
void SetSpriteInvisible(u8 spriteId);
void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y);
void LoadFieldEffectPalette(u8 fieldEffect);
#endif //GUARD_FIELD_EFFECT_HELPERS_H
+8 -8
View File
@@ -3,8 +3,8 @@
void PlayerStep(u8 direction, u16 newKeys, u16 heldKeys);
void ClearPlayerAvatarInfo(void);
void SetPlayerAvatarExtraStateTransition(u8, u8);
u8 GetPlayerAvatarGenderByGraphicsId(u8);
void SetPlayerAvatarExtraStateTransition(u16, u8);
u8 GetPlayerAvatarGenderByGraphicsId(u16);
bool8 TestPlayerAvatarFlags(u8);
u8 GetPlayerAvatarSpriteId(void);
void PlayerGetDestCoords(s16 *, s16 *);
@@ -38,11 +38,11 @@ void PlayerFreeze(void);
void StopPlayerAvatar(void);
void SetSpinStartFacingDir(u8);
void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr);
u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender);
u16 GetRivalAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender);
void SetPlayerAvatarFieldMove(void);
u8 GetPlayerAvatarGraphicsIdByCurrentState(void);
void SetPlayerAvatarStateMask(u8 flags);
u8 GetPlayerAvatarGraphicsIdByStateId(u8 state);
u16 GetPlayerAvatarGraphicsIdByCurrentState(void);
void SetPlayerAvatarStateMask(u8 a);
u16 GetPlayerAvatarGraphicsIdByStateId(u8 a);
u8 GetJumpSpecialMovementAction(u32);
bool8 PartyHasMonWithSurf(void);
bool8 IsPlayerFacingSurfableFishableWater(void);
@@ -50,8 +50,8 @@ bool8 IsPlayerSurfingNorth(void);
void SetPlayerAvatarWatering(u8 direction);
u8 GetPlayerAvatarFlags(void);
void UpdatePlayerAvatarTransitionState(void);
u8 GetFRLGAvatarGraphicsIdByGender(u8);
u8 GetRSAvatarGraphicsIdByGender(u8);
u16 GetFRLGAvatarGraphicsIdByGender(u8);
u16 GetRSAvatarGraphicsIdByGender(u8);
void PlayerWheelieInPlace(u8 direction);
void PlayerWheelieMove(u8 direction);
void PlayerPopWheelieWhileMoving(u8 direction);
+2
View File
@@ -41,5 +41,7 @@ void DoOrbEffect(void);
void FadeOutOrbEffect(void);
void WriteFlashScanlineEffectBuffer(u8 flashLevel);
bool8 IsPlayerStandingStill(void);
void SetPlayerVisibility(bool8 visible);
void Task_WarpAndLoadMap(u8 taskId);
#endif // GUARD_FIELD_SCREEN_EFFECT_H
+1
View File
@@ -5,6 +5,7 @@ extern bool8 gBikeCyclingChallenge;
extern u8 gBikeCollisions;
u8 GetLeadMonIndex(void);
u8 GetLeadMonNotFaintedIndex(void);
u8 IsDestinationBoxFull(void);
u16 GetPCBoxToSendMon(void);
bool8 InMultiPartnerRoom(void);
+10 -1
View File
@@ -141,6 +141,15 @@ extern struct Weather gWeather;
extern struct Weather *const gWeatherPtr;
extern const u16 gFogPalette[];
enum
{
COLOR_MAP_NONE,
COLOR_MAP_DARK_CONTRAST,
COLOR_MAP_CONTRAST,
};
void UpdatePaletteGammaType(u8 index, u8 gammaType);
// field_weather_effect.c
extern const u8 gWeatherFogHorizontalTiles[];
@@ -154,7 +163,7 @@ void FadeScreen(u8 mode, s8 delay);
bool8 IsWeatherNotFadingIn(void);
void UpdateSpritePaletteWithWeather(u8 spritePaletteIndex);
void ApplyWeatherColorMapToPal(u8 paletteIndex);
void LoadCustomWeatherSpritePalette(const u16 *palette);
void LoadCustomWeatherSpritePalette(const struct SpritePalette *palette);
void ResetDroughtWeatherPaletteLoading(void);
bool8 LoadDroughtWeatherPalettes(void);
void DroughtStateInit(void);
+2 -2
View File
@@ -48,8 +48,8 @@ void LoadSecondaryTilesetPalette(struct MapLayout const *mapLayout);
void CopySecondaryTilesetToVramUsingHeap(struct MapLayout const *mapLayout);
void CopyPrimaryTilesetToVram(const struct MapLayout *);
void CopySecondaryTilesetToVram(const struct MapLayout *);
struct MapHeader const *const GetMapHeaderFromConnection(struct MapConnection *connection);
struct MapConnection *GetMapConnectionAtPos(s16 x, s16 y);
const struct MapHeader *const GetMapHeaderFromConnection(const struct MapConnection *connection);
const struct MapConnection *GetMapConnectionAtPos(s16 x, s16 y);
void MapGridSetMetatileImpassabilityAt(int x, int y, bool32 impassable);
// field_region_map.c
+1 -1
View File
@@ -46,7 +46,7 @@ bool8 SetUpFieldMove_Dig(void);
bool8 FldEff_UseDig(void);
// rock smash
bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId);
bool8 CheckObjectGraphicsInFrontOfPlayer(u16 graphicsId);
u8 CreateFieldMoveTask(void);
bool8 SetUpFieldMove_RockSmash(void);
bool8 FldEff_UseRockSmash(void);
+58
View File
@@ -0,0 +1,58 @@
#ifndef GUARD_FOLLOW_ME_H
#define GUARD_FOLLOW_ME_H
#include "constants/follow_me.h"
#define DEFAULT_FOLLOWER_LOCAL_ID 0xFE
#define MOVEMENT_INVALID 0xFE
enum FollowerSpriteTypes
{
FOLLOWER_SPRITE_INDEX_NORMAL,
FOLLOWER_SPRITE_INDEX_MACH_BIKE,
FOLLOWER_SPRITE_INDEX_ACRO_BIKE,
FOLLOWER_SPRITE_INDEX_SURF,
FOLLOWER_SPRITE_INDEX_UNDERWATER,
};
// Exported Functions
void SetUpFollowerSprite(u8 localId, u16 flags);
void DestroyFollower(void);
void PlayerFaceFollowerSprite(void);
void CheckPlayerHasFollower(void);
bool8 FollowerComingThroughDoor(void);
u8 GetFollowerObjectId(void);
u8 GetFollowerLocalId(void);
const u8* GetFollowerScriptPointer(void);
void HideFollower(void);
void TryFreezeFollowerAnim(struct ObjectEvent* npc);
void IsFollowerStoppingRockClimb(void);
void FollowMe_SetIndicatorToComeOutDoor(void);
void FollowMe_SetIndicatorToRecreateSurfBlob(void);
void FollowMe_TryRemoveFollowerOnWhiteOut(void);
void FollowMe(struct ObjectEvent* npc, u8 state, bool8 ignoreScriptActive);
void FollowMe_Ledges(struct ObjectEvent* npc, struct Sprite* obj, u16* ledgeFramesTbl);
bool8 FollowMe_IsCollisionExempt(struct ObjectEvent* obstacle, struct ObjectEvent* collider);
void FollowMe_FollowerToWater(void);
void FollowMe_BindToSurbBlobOnReloadScreen(void);
void PrepareFollowerDismountSurf(void);
void StairsMoveFollower(void);
void FollowMe_HandleBike(void);
void FollowMe_HandleSprite(void);
void FollowMe_WarpSetEnd(void);
void CreateFollowerAvatar(void);
void EscalatorMoveFollower(u8 movementType);
void EscalatorMoveFollowerFinish(void);
bool8 FollowerCanBike(void);
bool8 CheckFollowerFlag(u16 flag);
void FollowerPositionFix(u8 offset);
void SetFollowerSprite(u8 spriteIndex);
bool8 PlayerHasFollower(void);
// moved from field_screen_effect.c
void Task_DoDoorWarp(u8 taskId);
bool8 IsPlayerOnFoot(void);
#endif //GUARD_FOLLOW_ME_H
+15 -16
View File
@@ -50,10 +50,10 @@ struct MapLayout
{
/*0x00*/ s32 width;
/*0x04*/ s32 height;
/*0x08*/ u16 *border;
/*0x0C*/ u16 *map;
/*0x10*/ struct Tileset *primaryTileset;
/*0x14*/ struct Tileset *secondaryTileset;
/*0x08*/ const u16 *border;
/*0x0C*/ const u16 *map;
/*0x10*/ const struct Tileset *primaryTileset;
/*0x14*/ const struct Tileset *secondaryTileset;
};
struct BackupMapLayout
@@ -66,9 +66,8 @@ struct BackupMapLayout
struct ObjectEventTemplate
{
/*0x00*/ u8 localId;
/*0x01*/ u8 graphicsId;
/*0x02*/ u8 kind; // Always OBJ_KIND_NORMAL in Emerald.
/*0x03*/ //u8 padding1;
/*0x02*/ u8 kind; // Leftover from FRLG
u16 graphicsId;
/*0x04*/ s16 x;
/*0x06*/ s16 y;
/*0x08*/ u8 elevation;
@@ -98,7 +97,7 @@ struct CoordEvent
u8 elevation;
u16 trigger;
u16 index;
u8 *script;
const u8 *script;
};
struct BgEvent
@@ -107,7 +106,7 @@ struct BgEvent
u8 elevation;
u8 kind; // The "kind" field determines how to access bgUnion union below.
union {
u8 *script;
const u8 *script;
struct {
u16 item;
u16 hiddenItemId;
@@ -122,10 +121,10 @@ struct MapEvents
u8 warpCount;
u8 coordEventCount;
u8 bgEventCount;
struct ObjectEventTemplate *objectEvents;
struct WarpEvent *warps;
struct CoordEvent *coordEvents;
struct BgEvent *bgEvents;
const struct ObjectEventTemplate *objectEvents;
const struct WarpEvent *warps;
const struct CoordEvent *coordEvents;
const struct BgEvent *bgEvents;
};
struct MapConnection
@@ -139,7 +138,7 @@ struct MapConnection
struct MapConnections
{
s32 count;
struct MapConnection *connections;
const struct MapConnection *connections;
};
struct MapHeader
@@ -195,9 +194,9 @@ struct ObjectEvent
u32 disableJumpLandingGroundEffect:1;
u32 fixedPriority:1;
u32 hideReflection:1;
//u32 padding:4;
int :0;
/*0x04*/ u8 spriteId;
/*0x05*/ u8 graphicsId;
/*0x05*/ u16 graphicsId;
/*0x06*/ u8 movementType;
/*0x07*/ u8 trainerType;
/*0x08*/ u8 localId;
+29 -3
View File
@@ -137,7 +137,7 @@
#define NUM_DEX_FLAG_BYTES ROUND_BITS_TO_BYTES(POKEMON_SLOTS_NUMBER)
#define NUM_FLAG_BYTES ROUND_BITS_TO_BYTES(FLAGS_COUNT)
#define NUM_ADDITIONAL_PHRASE_BYTES ROUND_BITS_TO_BYTES(NUM_ADDITIONAL_PHRASES)
#define NUM_TRENDY_SAYING_BYTES ROUND_BITS_TO_BYTES(NUM_TRENDY_SAYINGS)
// Calls m0/m1/.../m8 depending on how many arguments are passed.
#define VARARG_8(m, ...) CAT(m, NARG_8(__VA_ARGS__))(__VA_ARGS__)
@@ -488,6 +488,31 @@ struct RankingHall1P
//u8 padding;
};
// follow me
struct FollowerMapData
{
/*0x0*/ u8 id;
/*0x1*/ u8 number;
/*0x2*/ u8 group;
}; /* size = 0x4 */
struct Follower
{
/*0x00*/ u8 inProgress:1;
u8 warpEnd:1;
u8 createSurfBlob:3;
u8 comeOutDoorStairs:3;
/*0x01*/ u8 objId;
/*0x02*/ u8 currentSprite;
/*0x03*/ u8 delayedState;
/*0x04*/ struct FollowerMapData map;
/*0x08*/ struct Coords16 log;
/*0x0C*/ const u8* script;
/*0x10*/ u16 flag;
/*0x12*/ u16 graphicsId;
/*0x14*/ u16 flags;
/*0x15*/ u8 locked;
}; /* size = 0x18 */
struct RankingHall2P
{
u8 id1[TRAINER_ID_LENGTH];
@@ -533,6 +558,7 @@ struct SaveBlock2
/*0x57C*/ struct RankingHall2P hallRecords2P[FRONTIER_LVL_MODE_COUNT][HALL_RECORDS_COUNT]; // From record mixing.
/*0x624*/ u16 contestLinkResults[CONTEST_CATEGORIES_COUNT][CONTESTANT_COUNT];
/*0x64C*/ struct BattleFrontier frontier;
struct Follower follower;
}; // sizeof=0xF2C
extern struct SaveBlock2 *gSaveBlock2Ptr;
@@ -687,7 +713,7 @@ struct MauvilleManGiddy
struct MauvilleManHipster
{
u8 id;
bool8 alreadySpoken;
bool8 taughtWord;
u8 language;
};
@@ -1045,7 +1071,7 @@ struct SaveBlock1
/*0x2BC8*/ u16 easyChatBattleWon[EASY_CHAT_BATTLE_WORDS_COUNT];
/*0x2BD4*/ u16 easyChatBattleLost[EASY_CHAT_BATTLE_WORDS_COUNT];
/*0x2BE0*/ struct Mail mail[MAIL_COUNT];
/*0x2E20*/ u8 additionalPhrases[NUM_ADDITIONAL_PHRASE_BYTES]; // bitfield for 33 additional phrases in easy chat system
/*0x2E20*/ u8 unlockedTrendySayings[NUM_TRENDY_SAYING_BYTES]; // Bitfield for unlockable Easy Chat words in EC_GROUP_TRENDY_SAYING
/*0x2E25*/ //u8 padding5[3];
/*0x2E28*/ OldMan oldMan;
/*0x2e64*/ struct DewfordTrend dewfordTrends[SAVED_TRENDS_COUNT];
+4
View File
@@ -154,5 +154,9 @@ bool32 Overworld_RecvKeysFromLinkIsRunning(void);
bool32 Overworld_SendKeysToLinkIsRunning(void);
bool32 IsSendingKeysOverCable(void);
void ClearLinkPlayerObjectEvents(void);
void UpdateFollowerPokemonGraphic(void);
void FollowerPokeballSparkle(void);
void FollowerIntoPokeball(void);
bool8 IsBigSprite(u16);
#endif // GUARD_OVERWORLD_H
+3
View File
@@ -62,4 +62,7 @@ void InitRamScript_NoObjectEvent(u8 *script, u16 scriptSize);
// srccmd.h
void SetMovingNpcId(u16 npcId);
// NEW
u8* ReadWord(u8 index);
#endif // GUARD_SCRIPT_H