Merge branch 'master' of https://github.com/pret/pokefirered into doc-ql

This commit is contained in:
GriffinR
2023-04-10 10:18:07 -04:00
372 changed files with 6942 additions and 8149 deletions
+1 -1
View File
@@ -518,7 +518,7 @@ struct BattleScripting
u8 pursuitDoublesAttacker;
u8 reshowMainState;
u8 reshowHelperState;
u8 field_23;
u8 levelUpHP;
};
struct BattleSpriteInfo
+22
View File
@@ -13,6 +13,28 @@
// Fire Red likely forgot to define NDEBUG/NOAGBPRN before release, leading
// to the inclusion of asserts in the retail ROM.
#ifndef NDEBUG
#define PRETTY_PRINT_OFF (0)
#define PRETTY_PRINT_MINI_PRINTF (1)
#define PRETTY_PRINT_LIBC (2)
#define LOG_HANDLER_AGB_PRINT (0)
#define LOG_HANDLER_NOCASH_PRINT (1)
#define LOG_HANDLER_MGBA_PRINT (2)
// Use this switch to choose a handler for pretty printing.
// NOTE: mini_printf supports a custom pretty printing formatter to display preproc encoded strings. (%S)
// some libc distributions (especially dkp arm-libc) will fail to link pretty printing.
#define PRETTY_PRINT_HANDLER (PRETTY_PRINT_OFF)
// Use this switch to choose a handler for printf output.
// NOTE: These will only work on the respective emulators and should not be used in a productive environment.
// Some emulators or real hardware might (and is allowed to) crash if they are used.
// AGB_PRINT is supported on respective debug units.
#define LOG_HANDLER (LOG_HANDLER_AGB_PRINT)
#endif // NDEBUG
// Define the game version for use elsewhere
#if defined(FIRERED)
#define GAME_VERSION VERSION_FIRE_RED
+1 -1
View File
@@ -28,7 +28,7 @@
#define HOLD_EFFECT_MACHO_BRACE 24
#define HOLD_EFFECT_EXP_SHARE 25
#define HOLD_EFFECT_QUICK_CLAW 26
#define HOLD_EFFECT_HAPPINESS_UP 27
#define HOLD_EFFECT_FRIENDSHIP_UP 27
#define HOLD_EFFECT_CURE_ATTRACT 28
#define HOLD_EFFECT_CHOICE_BAND 29
#define HOLD_EFFECT_FLINCH 30
+15 -2
View File
@@ -3,7 +3,7 @@
// field 0 masks
#define ITEM0_X_ATTACK 0x0F
#define ITEM0_HIGH_CRIT 0x30 // For Dire Hit, works the same way as move Focus Energy.
#define ITEM0_DIRE_HIT 0x30 // Works the same way as move Focus Energy.
#define ITEM0_SACRED_ASH 0x40
#define ITEM0_INFATUATION 0x80
@@ -23,7 +23,7 @@
#define ITEM3_POISON 0x10
#define ITEM3_SLEEP 0x20
#define ITEM3_LEVEL_UP 0x40
#define ITEM3_MIST 0x80 // For Guard Specs, works the same way as move Mist.
#define ITEM3_GUARD_SPEC 0x80 // Works the same way as the move Mist.
#define ITEM3_STATUS_ALL (ITEM3_CONFUSION | ITEM3_PARALYSIS | ITEM3_FREEZE | ITEM3_BURN | ITEM3_POISON | ITEM3_SLEEP)
@@ -50,6 +50,19 @@
#define ITEM5_FRIENDSHIP_ALL (ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID | ITEM5_FRIENDSHIP_HIGH)
// fields 6 and onwards are item-specific arguments
#define ITEM_EFFECT_ARG_START 6
// Special HP recovery amounts for ITEM4_HEAL_HP
#define ITEM6_HEAL_HP_FULL ((u8) -1)
#define ITEM6_HEAL_HP_HALF ((u8) -2)
#define ITEM6_HEAL_HP_LVL_UP ((u8) -3)
// Special PP recovery amounts for ITEM4_HEAL_PP
#define ITEM6_HEAL_PP_FULL 0x7F
// Amount of EV modified by ITEM4_EV_HP, ITEM4_EV_ATK, ITEM5_EV_DEF, ITEM5_EV_SPEED, ITEM5_EV_SPDEF and ITEM5_EV_SPATK
#define ITEM6_ADD_EV 10
#define ITEM6_SUBTRACT_EV -10
// Used for GetItemEffectType.
#define ITEM_EFFECT_X_ITEM 0
+2
View File
@@ -70,6 +70,8 @@
#define MULTICHOICE_JOIN_OR_LEAD 63
#define MULTICHOICE_TRAINER_TOWER_MODE 64
#define MULTICHOICE_NONE 255
#define LISTMENU_BADGES 0
#define LISTMENU_SILPHCO_FLOORS 1
#define LISTMENU_ROCKET_HIDEOUT_FLOORS 2
+263 -263
View File
@@ -1,298 +1,298 @@
#ifndef GUARD_METATILE_LABELS_H
#define GUARD_METATILE_LABELS_H
// gTileset_General
#define METATILE_General_Plain_Mowed 0x001
#define METATILE_General_ThinTreeTop_Grass 0x00A
#define METATILE_General_WideTreeTopLeft_Grass 0x00B
#define METATILE_General_WideTreeTopRight_Grass 0x00C
#define METATILE_General_Plain_Grass 0x00D
#define METATILE_General_WideTreeTopLeft_Mowed 0x00E
#define METATILE_General_WideTreeTopRight_Mowed 0x00F
#define METATILE_General_ThinTreeTop_Mowed 0x013
#define METATILE_General_CalmWater 0x12B
#define METATILE_General_Door 0x03D
#define METATILE_General_SlidingSingleDoor 0x062
#define METATILE_General_SlidingDoubleDoor 0x15B
// gTileset_Building
#define METATILE_Building_PCOff 0x062
#define METATILE_Building_PCOn 0x063
// gTileset_GenericBuilding1
#define METATILE_GenericBuilding1_PlayersPCOn 0x28A
#define METATILE_GenericBuilding1_PlayersPCOff 0x28F
// gTileset_Mart
#define METATILE_Mart_CounterMid_Top 0x2BF
#define METATILE_Mart_CounterMid_Bottom 0x2C0
// gTileset_PokemonCenter
#define METATILE_PokemonCenter_Floor_ShadeLeft 0x2C5
#define METATILE_PokemonCenter_CounterBarrier 0x2F9
#define METATILE_PokemonCenter_NetworkMachine_ScreenLeft_On 0x35A
#define METATILE_PokemonCenter_NetworkMachine_ScreenRight_On 0x35B
#define METATILE_PokemonCenter_NetworkMachine_Ruby 0x35D
#define METATILE_PokemonCenter_NetworkMachine_Sapphire 0x35F
#define METATILE_PokemonCenter_Escalator_Top_Normal 0x2E4
#define METATILE_PokemonCenter_Escalator_Top_Transition1 0x317
#define METATILE_PokemonCenter_Escalator_Top_Transition2 0x315
#define METATILE_PokemonCenter_Escalator_TopNext_Normal 0x2E3
#define METATILE_PokemonCenter_Escalator_TopNext_Transition1 0x316
#define METATILE_PokemonCenter_Escalator_TopNext_Transition2 0x314
#define METATILE_PokemonCenter_Escalator_TopNextRail_Normal 0x2EB
#define METATILE_PokemonCenter_Escalator_TopNextRail_Transition1 0x31E
#define METATILE_PokemonCenter_Escalator_TopNextRail_Transition2 0x31C
#define METATILE_PokemonCenter_Escalator_Bottom_Normal 0x2D9
#define METATILE_PokemonCenter_Escalator_Bottom_Transition1 0x313
#define METATILE_PokemonCenter_Escalator_Bottom_Transition2 0x311
#define METATILE_PokemonCenter_Escalator_BottomRail_Normal 0x2D1
#define METATILE_PokemonCenter_Escalator_BottomRail_Transition1 0x30B
#define METATILE_PokemonCenter_Escalator_BottomRail_Transition2 0x309
#define METATILE_PokemonCenter_Escalator_BottomNext_Normal 0x2D8
#define METATILE_PokemonCenter_Escalator_BottomNext_Transition1 0x312
#define METATILE_PokemonCenter_Escalator_BottomNext_Transition2 0x310
#define METATILE_PokemonCenter_Escalator_BottomNextRail_Normal 0x2D0
#define METATILE_PokemonCenter_Escalator_BottomNextRail_Transition1 0x30A
#define METATILE_PokemonCenter_Escalator_BottomNextRail_Transition2 0x308
#define METATILE_PokemonCenter_CableClubDoor 0x2DE
#define METATILE_Building_PCOff 0x062
#define METATILE_Building_PCOn 0x063
// gTileset_Cave
#define METATILE_Cave_Floor_Ledge_Top 0x2D1
#define METATILE_Cave_Floor_Ledge_Bottom 0x2E1
#define METATILE_Cave_RockBarrier_Top 0x307
#define METATILE_Cave_RockBarrier_Bottom 0x317
#define METATILE_Cave_Floor_Ledge_Bottom 0x2E1
#define METATILE_Cave_Floor_Ledge_Top 0x2D1
#define METATILE_Cave_RockBarrier_Bottom 0x317
#define METATILE_Cave_RockBarrier_Top 0x307
// gTileset_PalletTown
#define METATILE_PalletTown_Door 0x2A3
#define METATILE_PalletTown_OaksLabDoor 0x2AC
// gTileset_ViridianCity
#define METATILE_ViridianCity_Door 0x299
// gTileset_ViridianForest
#define METATILE_ViridianForest_HugeTreeTopMiddle_Grass 0x284
#define METATILE_ViridianForest_HugeTreeTopMiddle_Mowed 0x281
// gTileset_PewterCity
#define METATILE_PewterCity_Door 0x2CE
// gTileset_CeladonCity
#define METATILE_CeladonCity_CyclingRoad_Grass 0x352
#define METATILE_CeladonCity_CyclingRoad_Mowed 0x33E
#define METATILE_CeladonCity_DeptStoreDoor 0x294
// gTileset_CeruleanCity
#define METATILE_CeruleanCity_Door 0x298
// gTileset_SeaCottage
#define METATILE_SeaCottage_Teleporter_Light_Green 0x28A
#define METATILE_SeaCottage_Teleporter_Light_Yellow 0x2B5
#define METATILE_SeaCottage_Teleporter_Light_Red 0x2B6
#define METATILE_SeaCottage_Teleporter_Cable_Top 0x285
#define METATILE_SeaCottage_Teleporter_Cable_Bottom 0x2B4
#define METATILE_SeaCottage_Teleporter_CableBall_Top 0x2B9
#define METATILE_SeaCottage_Teleporter_CableBall_Bottom 0x2BA
#define METATILE_SeaCottage_Teleporter_Door 0x296
#define METATILE_SeaCottage_Teleporter_Door_HalfGlowing 0x2B7
#define METATILE_SeaCottage_Teleporter_Door_FullGlowing 0x2B8
// gTileset_VermilionCity
#define METATILE_VermilionCity_Door 0x29E
#define METATILE_VermilionCity_SSAnneWarp 0x2E1
// gTileset_VermilionGym
#define METATILE_VermilionGym_Floor 0x281
#define METATILE_VermilionGym_Beam_MidTop 0x285
#define METATILE_VermilionGym_Beam_MidBottom 0x28D
#define METATILE_VermilionGym_Beam_Node_TopLeft_Off 0x293
#define METATILE_VermilionGym_Beam_Node_TopLeft_Edge_Off 0x294
#define METATILE_VermilionGym_Beam_Node_TopRight_Edge_Off 0x295
#define METATILE_VermilionGym_Beam_Node_TopRight_Off 0x296
#define METATILE_VermilionGym_Beam_Node_BottomLeft_Off 0x29B
#define METATILE_VermilionGym_Beam_Node_BottomLeft_Edge_Off 0x29C
#define METATILE_VermilionGym_Beam_Node_BottomRight_Edge_Off 0x29D
#define METATILE_VermilionGym_Beam_Node_BottomRight_Off 0x29E
#define METATILE_VermilionGym_Beam_Node_TopLeft_On 0x2A9
#define METATILE_VermilionGym_Beam_Node_TopLeft_Edge_On 0x2AA
#define METATILE_VermilionGym_Beam_Node_TopRight_Edge_On 0x2AB
#define METATILE_VermilionGym_Beam_Node_TopRight_On 0x2AC
#define METATILE_VermilionGym_Beam_Node_BottomLeft_On 0x2B1
#define METATILE_VermilionGym_Beam_Node_BottomLeft_Edge_On 0x2B2
#define METATILE_VermilionGym_Beam_Node_BottomRight_Edge_On 0x2B3
#define METATILE_VermilionGym_Beam_Node_BottomRight_On 0x2B4
#define METATILE_VermilionGym_Beam_Node_TopLeft_HalfOn 0x2BB
#define METATILE_VermilionGym_Beam_Node_TopLeft_Edge_HalfOn 0x2BC
#define METATILE_VermilionGym_Beam_MidTop_HalfOn 0x2BD
#define METATILE_VermilionGym_Beam_Node_TopRight_Edge_HalfOn 0x2BE
#define METATILE_VermilionGym_Beam_Node_TopRight_HalfOn 0x2BF
#define METATILE_VermilionGym_Beam_Node_BottomLeft_HalfOn 0x2C3
#define METATILE_VermilionGym_Beam_Node_BottomLeft_Edge_HalfOn 0x2C4
#define METATILE_VermilionGym_Beam_MidBottom_HalfOn 0x2C5
#define METATILE_VermilionGym_Beam_Node_BottomRight_Edge_HalfOn 0x2C6
#define METATILE_VermilionGym_Beam_Node_BottomRight_HalfOn 0x2C7
// gTileset_SSAnne
#define METATILE_SSAnne_Door 0x281
// gTileset_LavenderTown
#define METATILE_LavenderTown_Door 0x2A2
// gTilset_CeladonCity
#define METATILE_CeladonCity_DeptStoreDoor 0x294
#define METATILE_CeladonCity_CyclingRoad_Grass 0x352
#define METATILE_CeladonCity_CyclingRoad_Mowed 0x33E
// gTileset_DepartmentStore
#define METATILE_DepartmentStore_ElevatorDoor 0x28D
// gTileset_GameCorner
#define METATILE_GameCorner_Floor_ShadeFull 0x292
#define METATILE_GameCorner_Floor_StairsTop 0x29D
#define METATILE_GameCorner_StairsTop 0x29E
#define METATILE_GameCorner_StairsBottom 0x29F
#define METATILE_GameCorner_PurpleWall_Floor 0x2CF
#define METATILE_GameCorner_PurpleWall_StairsTop 0x2A6
#define METATILE_GameCorner_PurpleWall_stairsBottom 0x2A7
#define METATILE_GameCorner_CheckeredFloor_ShadeLeft 0x2E1
#define METATILE_GameCorner_CounterBarrier 0x2F7
// gTileset_SaffronCity
#define METATILE_SaffronCity_Door 0x284
#define METATILE_SaffronCity_SilphCoDoor 0x2BC
// gTileset_SilphCo Includes Silph Co, Rocket Hideout/Warehouse, and all Elevators
#define METATILE_SilphCo_HideoutFloor 0x281
#define METATILE_SilphCo_HideoutFloor_ShadeFull 0x282
#define METATILE_SilphCo_Arrow_Up 0x2A0
#define METATILE_SilphCo_Arrow_Left 0x2A1
#define METATILE_SilphCo_Arrow_Down 0x2A8
#define METATILE_SilphCo_Arrow_Right 0x2A9
#define METATILE_SilphCo_HideoutBarrier_TopLeft_Wall 0x2C6
#define METATILE_SilphCo_HideoutBarrier_TopRight_Wall 0x2C7
#define METATILE_SilphCo_HideoutBarrier_TopLeft_Floor 0x2CE
#define METATILE_SilphCo_HideoutBarrier_TopRight_Floor 0x2CF
#define METATILE_SilphCo_HideoutBarrier_BottomLeft 0x2D6
#define METATILE_SilphCo_HideoutBarrier_BottomRight 0x2D7
#define METATILE_SilphCo_HideoutElevatorDoor 0x2AB
#define METATILE_SilphCo_ElevatorDoor 0x2E2
#define METATILE_SilphCo_ElevatorWindow_Top0 0x2E8
#define METATILE_SilphCo_ElevatorWindow_Top1 0x2E9
#define METATILE_SilphCo_ElevatorWindow_Top2 0x2EA
#define METATILE_SilphCo_ElevatorWindow_Mid0 0x2F0
#define METATILE_SilphCo_ElevatorWindow_Mid1 0x2F1
#define METATILE_SilphCo_ElevatorWindow_Mid2 0x2F2
#define METATILE_SilphCo_ElevatorWindow_Bottom0 0x2F8
#define METATILE_SilphCo_ElevatorWindow_Bottom1 0x2F9
#define METATILE_SilphCo_ElevatorWindow_Bottom2 0x2FA
#define METATILE_SilphCo_Floor 0x334
#define METATILE_SilphCo_Floor_ShadeFull 0x335
#define METATILE_SilphCo_Floor_WallLeftCorner 0x339
#define METATILE_SilphCo_Floor_WallRightCorner 0x33A
#define METATILE_SilphCo_Wall_RightEdge 0x346
#define METATILE_SilphCo_Wall_LeftEdge 0x347
#define METATILE_SilphCo_HorizontalBarrier_TopLeft 0x3B0
#define METATILE_SilphCo_HorizontalBarrier_TopRight 0x3B1
#define METATILE_SilphCo_HorizontalBarrier_BottomLeft 0x3B8
#define METATILE_SilphCo_HorizontalBarrier_BottomRight 0x3B9
#define METATILE_SilphCo_VerticalBarrier_TopLeft 0x3C0
#define METATILE_SilphCo_VerticalBarrier_TopRight 0x3C1
#define METATILE_SilphCo_VerticalBarrier_MidLeft 0x3C2
#define METATILE_SilphCo_VerticalBarrier_MidRight 0x3C3
#define METATILE_SilphCo_VerticalBarrier_BottomLeft 0x3C4
#define METATILE_SilphCo_VerticalBarrier_BottomRight 0x3C5
// gTileset_FuchsiaCity
#define METATILE_FuchsiaCity_Door 0x2BF
#define METATILE_FuchsiaCity_SafariZoneDoor 0x2D2
#define METATILE_FuchsiaCity_SafariZoneTreeTopLeft_Grass 0x300
#define METATILE_FuchsiaCity_SafariZoneTreeTopMiddle_Grass 0x301
#define METATILE_FuchsiaCity_SafariZoneTreeTopRight_Grass 0x302
#define METATILE_FuchsiaCity_SafariZoneTreeTopLeft_Mowed 0x310
#define METATILE_FuchsiaCity_SafariZoneTreeTopMiddle_Mowed 0x311
#define METATILE_FuchsiaCity_SafariZoneTreeTopRight_Mowed 0x312
// gTileset_CinnabarIsland
#define METATILE_CinnabarIsland_LabDoor 0x2AD
#define METATILE_CeruleanCity_Door 0x298
// gTileset_CinnabarGym
#define METATILE_CinnabarGym_Floor 0x281
#define METATILE_CinnabarGym_Floor_ShadeDiagonal 0x282
#define METATILE_CinnabarGym_Floor_ShadeFull 0x289
#define METATILE_CinnabarGym_Floor_WallRightCorner 0x2C6
#define METATILE_CinnabarGym_Floor_WallLeftCorner 0x2C7
#define METATILE_CinnabarGym_Floor_WallRightEdge 0x2CE
#define METATILE_CinnabarGym_Floor_WallLeftEdge 0x2CF
#define METATILE_CinnabarGym_Floor_WallRightCorner 0x2C6
#define METATILE_CinnabarGym_Floor_WallRightEdge 0x2CE
#define METATILE_CinnabarGym_Wall_RetractedBarrier 0x2D1
// gTileset_PokemonMansion
#define METATILE_PokemonMansion_Floor 0x284
#define METATILE_PokemonMansion_Floor_ShadeFull 0x285
#define METATILE_PokemonMansion_BasementFloor 0x286
#define METATILE_PokemonMansion_BasementFloor_ShadeFull 0x287
#define METATILE_PokemonMansion_Wall_EndPost_Mid 0x2A5
#define METATILE_PokemonMansion_Wall_EndPost_Bottom 0x2AD
#define METATILE_PokemonMansion_Wall_EndCap_Basement 0x2B0
#define METATILE_PokemonMansion_Wall_EndCap 0x2B5
#define METATILE_PokemonMansion_Barrier_Horizontal_TopLeft 0x2F8
#define METATILE_PokemonMansion_Barrier_Horizontal_TopMid 0x2F9
#define METATILE_PokemonMansion_Barrier_Horizontal_TopRight 0x2FA
#define METATILE_PokemonMansion_Barrier_Horizontal_BottomLeft 0x300
#define METATILE_PokemonMansion_Barrier_Horizontal_BottomMid 0x301
#define METATILE_PokemonMansion_Barrier_Horizontal_BottomRight 0x302
#define METATILE_PokemonMansion_Barrier_Horizontal_BottomLeft_Basement 0x354
#define METATILE_PokemonMansion_Barrier_Horizontal_BottomMid_Basement 0x355
#define METATILE_PokemonMansion_Barrier_Horizontal_BottomRight_Basement 0x356
#define METATILE_PokemonMansion_Barrier_Vertical_TopWall 0x350
#define METATILE_PokemonMansion_Barrier_Vertical_TopBase 0x358
#define METATILE_PokemonMansion_Barrier_Vertical_MidShadow 0x360
#define METATILE_PokemonMansion_Barrier_Vertical_Mid 0x368
#define METATILE_PokemonMansion_Barrier_Vertical_Bottom 0x370
#define METATILE_PokemonMansion_Barrier_Vertical_MidShadow_Basement 0x362
#define METATILE_PokemonMansion_Barrier_Vertical_Mid_Basement 0x36A
#define METATILE_PokemonMansion_Barrier_Vertical_Bottom_Basement 0x372
#define METATILE_PokemonMansion_Statue_BlackEyes 0x314
#define METATILE_PokemonMansion_Statue_BlackEyes_Shade 0x315
#define METATILE_PokemonMansion_Statue_BlackEyes_Basement 0x316
#define METATILE_PokemonMansion_Statue_RedEyes 0x34D
#define METATILE_PokemonMansion_Statue_RedEyes_Shade 0x34E
#define METATILE_PokemonMansion_Statue_RedEyes_Basement 0x34F
// gTileset_CinnabarIsland
#define METATILE_CinnabarIsland_LabDoor 0x2AD
// gTileset_PokemonLeague
#define METATILE_PokemonLeague_Door_Top_Open 0x28E
#define METATILE_PokemonLeague_Door_Mid_Open 0x296
#define METATILE_PokemonLeague_Entry_TopLeft_Closed 0x29D
#define METATILE_PokemonLeague_Entry_TopMid_Closed 0x29E
#define METATILE_PokemonLeague_Entry_TopRight_Closed 0x29F
#define METATILE_PokemonLeague_Entry_BottomLeft_Closed 0x2A5
#define METATILE_PokemonLeague_Entry_BottomMid_Closed 0x2A6
#define METATILE_PokemonLeague_Entry_BottomRight_Closed 0x2A7
#define METATILE_PokemonLeague_Floor_ShadeFull_Lance 0x311
// gTileset_DepartmentStore
#define METATILE_DepartmentStore_ElevatorDoor 0x28D
// gTileset_FuchsiaCity
#define METATILE_FuchsiaCity_Door 0x2BF
#define METATILE_FuchsiaCity_SafariZoneDoor 0x2D2
#define METATILE_FuchsiaCity_SafariZoneTreeTopLeft_Grass 0x300
#define METATILE_FuchsiaCity_SafariZoneTreeTopLeft_Mowed 0x310
#define METATILE_FuchsiaCity_SafariZoneTreeTopMiddle_Grass 0x301
#define METATILE_FuchsiaCity_SafariZoneTreeTopMiddle_Mowed 0x311
#define METATILE_FuchsiaCity_SafariZoneTreeTopRight_Grass 0x302
#define METATILE_FuchsiaCity_SafariZoneTreeTopRight_Mowed 0x312
// gTileset_GameCorner
#define METATILE_GameCorner_CheckeredFloor_ShadeLeft 0x2E1
#define METATILE_GameCorner_CounterBarrier 0x2F7
#define METATILE_GameCorner_Floor_ShadeFull 0x292
#define METATILE_GameCorner_Floor_StairsTop 0x29D
#define METATILE_GameCorner_PurpleWall_Floor 0x2CF
#define METATILE_GameCorner_PurpleWall_StairsTop 0x2A6
#define METATILE_GameCorner_PurpleWall_stairsBottom 0x2A7
#define METATILE_GameCorner_StairsBottom 0x29F
#define METATILE_GameCorner_StairsTop 0x29E
// gTileset_General
#define METATILE_General_CalmWater 0x12B
#define METATILE_General_Door 0x03D
#define METATILE_General_Plain_Grass 0x00D
#define METATILE_General_Plain_Mowed 0x001
#define METATILE_General_SlidingDoubleDoor 0x15B
#define METATILE_General_SlidingSingleDoor 0x062
#define METATILE_General_ThinTreeTop_Grass 0x00A
#define METATILE_General_ThinTreeTop_Mowed 0x013
#define METATILE_General_WideTreeTopLeft_Grass 0x00B
#define METATILE_General_WideTreeTopLeft_Mowed 0x00E
#define METATILE_General_WideTreeTopRight_Grass 0x00C
#define METATILE_General_WideTreeTopRight_Mowed 0x00F
// gTileset_GenericBuilding1
#define METATILE_GenericBuilding1_PlayersPCOff 0x28F
#define METATILE_GenericBuilding1_PlayersPCOn 0x28A
// gTileset_LavenderTown
#define METATILE_LavenderTown_Door 0x2A2
// gTileset_Mart
#define METATILE_Mart_CounterMid_Bottom 0x2C0
#define METATILE_Mart_CounterMid_Top 0x2BF
// gTileset_MtEmber
#define METATILE_MtEmber_CaveEntrance 0x346
// gTileset_SeafoamIslands
#define METATILE_SeafoamIslands_SlidingIce 0x34B
#define METATILE_SeafoamIslands_UncrackedIce 0x359
#define METATILE_SeafoamIslands_CrackedIce 0x35A
#define METATILE_SeafoamIslands_IceHole 0x35B
// gTileset_PalletTown
#define METATILE_PalletTown_Door 0x2A3
#define METATILE_PalletTown_OaksLabDoor 0x2AC
// gTileset_TrainerTower
#define METATILE_TrainerTower_Floor_ShadeBottomLeft 0x287
#define METATILE_TrainerTower_CounterBarrier 0x2B4
#define METATILE_TrainerTower_LobbyElevatorDoor 0x2C3
#define METATILE_TrainerTower_RoofElevatorDoor 0x356
// gTileset_PewterCity
#define METATILE_PewterCity_Door 0x2CE
// gTileset_PokemonCenter
#define METATILE_PokemonCenter_CableClubDoor 0x2DE
#define METATILE_PokemonCenter_CounterBarrier 0x2F9
#define METATILE_PokemonCenter_Escalator_BottomNextRail_Normal 0x2D0
#define METATILE_PokemonCenter_Escalator_BottomNextRail_Transition1 0x30A
#define METATILE_PokemonCenter_Escalator_BottomNextRail_Transition2 0x308
#define METATILE_PokemonCenter_Escalator_BottomNext_Normal 0x2D8
#define METATILE_PokemonCenter_Escalator_BottomNext_Transition1 0x312
#define METATILE_PokemonCenter_Escalator_BottomNext_Transition2 0x310
#define METATILE_PokemonCenter_Escalator_BottomRail_Normal 0x2D1
#define METATILE_PokemonCenter_Escalator_BottomRail_Transition1 0x30B
#define METATILE_PokemonCenter_Escalator_BottomRail_Transition2 0x309
#define METATILE_PokemonCenter_Escalator_Bottom_Normal 0x2D9
#define METATILE_PokemonCenter_Escalator_Bottom_Transition1 0x313
#define METATILE_PokemonCenter_Escalator_Bottom_Transition2 0x311
#define METATILE_PokemonCenter_Escalator_TopNextRail_Normal 0x2EB
#define METATILE_PokemonCenter_Escalator_TopNextRail_Transition1 0x31E
#define METATILE_PokemonCenter_Escalator_TopNextRail_Transition2 0x31C
#define METATILE_PokemonCenter_Escalator_TopNext_Normal 0x2E3
#define METATILE_PokemonCenter_Escalator_TopNext_Transition1 0x316
#define METATILE_PokemonCenter_Escalator_TopNext_Transition2 0x314
#define METATILE_PokemonCenter_Escalator_Top_Normal 0x2E4
#define METATILE_PokemonCenter_Escalator_Top_Transition1 0x317
#define METATILE_PokemonCenter_Escalator_Top_Transition2 0x315
#define METATILE_PokemonCenter_Floor_ShadeLeft 0x2C5
#define METATILE_PokemonCenter_NetworkMachine_Ruby 0x35D
#define METATILE_PokemonCenter_NetworkMachine_Sapphire 0x35F
#define METATILE_PokemonCenter_NetworkMachine_ScreenLeft_On 0x35A
#define METATILE_PokemonCenter_NetworkMachine_ScreenRight_On 0x35B
// gTileset_PokemonLeague
#define METATILE_PokemonLeague_Door_Mid_Open 0x296
#define METATILE_PokemonLeague_Door_Top_Open 0x28E
#define METATILE_PokemonLeague_Entry_BottomLeft_Closed 0x2A5
#define METATILE_PokemonLeague_Entry_BottomMid_Closed 0x2A6
#define METATILE_PokemonLeague_Entry_BottomRight_Closed 0x2A7
#define METATILE_PokemonLeague_Entry_TopLeft_Closed 0x29D
#define METATILE_PokemonLeague_Entry_TopMid_Closed 0x29E
#define METATILE_PokemonLeague_Entry_TopRight_Closed 0x29F
#define METATILE_PokemonLeague_Floor_ShadeFull_Lance 0x311
// gTileset_PokemonMansion
#define METATILE_PokemonMansion_Barrier_Horizontal_BottomLeft 0x300
#define METATILE_PokemonMansion_Barrier_Horizontal_BottomLeft_Basement 0x354
#define METATILE_PokemonMansion_Barrier_Horizontal_BottomMid 0x301
#define METATILE_PokemonMansion_Barrier_Horizontal_BottomMid_Basement 0x355
#define METATILE_PokemonMansion_Barrier_Horizontal_BottomRight 0x302
#define METATILE_PokemonMansion_Barrier_Horizontal_BottomRight_Basement 0x356
#define METATILE_PokemonMansion_Barrier_Horizontal_TopLeft 0x2F8
#define METATILE_PokemonMansion_Barrier_Horizontal_TopMid 0x2F9
#define METATILE_PokemonMansion_Barrier_Horizontal_TopRight 0x2FA
#define METATILE_PokemonMansion_Barrier_Vertical_Bottom 0x370
#define METATILE_PokemonMansion_Barrier_Vertical_Bottom_Basement 0x372
#define METATILE_PokemonMansion_Barrier_Vertical_Mid 0x368
#define METATILE_PokemonMansion_Barrier_Vertical_MidShadow 0x360
#define METATILE_PokemonMansion_Barrier_Vertical_MidShadow_Basement 0x362
#define METATILE_PokemonMansion_Barrier_Vertical_Mid_Basement 0x36A
#define METATILE_PokemonMansion_Barrier_Vertical_TopBase 0x358
#define METATILE_PokemonMansion_Barrier_Vertical_TopWall 0x350
#define METATILE_PokemonMansion_BasementFloor 0x286
#define METATILE_PokemonMansion_BasementFloor_ShadeFull 0x287
#define METATILE_PokemonMansion_Floor 0x284
#define METATILE_PokemonMansion_Floor_ShadeFull 0x285
#define METATILE_PokemonMansion_Statue_BlackEyes 0x314
#define METATILE_PokemonMansion_Statue_BlackEyes_Basement 0x316
#define METATILE_PokemonMansion_Statue_BlackEyes_Shade 0x315
#define METATILE_PokemonMansion_Statue_RedEyes 0x34D
#define METATILE_PokemonMansion_Statue_RedEyes_Basement 0x34F
#define METATILE_PokemonMansion_Statue_RedEyes_Shade 0x34E
#define METATILE_PokemonMansion_Wall_EndCap 0x2B5
#define METATILE_PokemonMansion_Wall_EndCap_Basement 0x2B0
#define METATILE_PokemonMansion_Wall_EndPost_Bottom 0x2AD
#define METATILE_PokemonMansion_Wall_EndPost_Mid 0x2A5
// gTileset_SSAnne
#define METATILE_SSAnne_Door 0x281
// gTileset_SaffronCity
#define METATILE_SaffronCity_Door 0x284
#define METATILE_SaffronCity_SilphCoDoor 0x2BC
// gTileset_SeaCottage
#define METATILE_SeaCottage_Teleporter_CableBall_Bottom 0x2BA
#define METATILE_SeaCottage_Teleporter_CableBall_Top 0x2B9
#define METATILE_SeaCottage_Teleporter_Cable_Bottom 0x2B4
#define METATILE_SeaCottage_Teleporter_Cable_Top 0x285
#define METATILE_SeaCottage_Teleporter_Door 0x296
#define METATILE_SeaCottage_Teleporter_Door_FullGlowing 0x2B8
#define METATILE_SeaCottage_Teleporter_Door_HalfGlowing 0x2B7
#define METATILE_SeaCottage_Teleporter_Light_Green 0x28A
#define METATILE_SeaCottage_Teleporter_Light_Red 0x2B6
#define METATILE_SeaCottage_Teleporter_Light_Yellow 0x2B5
// gTileset_SeafoamIslands
#define METATILE_SeafoamIslands_CrackedIce 0x35A
#define METATILE_SeafoamIslands_IceHole 0x35B
#define METATILE_SeafoamIslands_SlidingIce 0x34B
#define METATILE_SeafoamIslands_UncrackedIce 0x359
// gTileset_SeviiIslands123
#define METATILE_SeviiIslands123_Door 0x297
#define METATILE_SeviiIslands123_GameCornerDoor 0x29B
#define METATILE_SeviiIslands123_PokeCenterDoor 0x2EB
#define METATILE_SeviiIslands123_Door 0x297
#define METATILE_SeviiIslands123_GameCornerDoor 0x29B
#define METATILE_SeviiIslands123_PokeCenterDoor 0x2EB
// gTileset_SeviiIslands45
#define METATILE_SeviiIslands45_Door 0x29A
#define METATILE_SeviiIslands45_DayCareDoor 0x2B9
#define METATILE_SeviiIslands45_RocketWarehouseDoor_Locked 0x30B
#define METATILE_SeviiIslands45_RocketWarehouseDoor_Unlocked 0x2AF
#define METATILE_SeviiIslands45_DayCareDoor 0x2B9
#define METATILE_SeviiIslands45_Door 0x29A
#define METATILE_SeviiIslands45_RocketWarehouseDoor_Locked 0x30B
#define METATILE_SeviiIslands45_RocketWarehouseDoor_Unlocked 0x2AF
// gTileset_SeviiIslands67
#define METATILE_SeviiIslands67_Door 0x30C
#define METATILE_SeviiIslands67_DottedHoleDoor_Closed 0x357
#define METATILE_SeviiIslands67_DottedHoleDoor_Open 0x358
// gTileset_SilphCo
#define METATILE_SilphCo_Arrow_Down 0x2A8
#define METATILE_SilphCo_Arrow_Left 0x2A1
#define METATILE_SilphCo_Arrow_Right 0x2A9
#define METATILE_SilphCo_Arrow_Up 0x2A0
#define METATILE_SilphCo_ElevatorDoor 0x2E2
#define METATILE_SilphCo_ElevatorWindow_Bottom0 0x2F8
#define METATILE_SilphCo_ElevatorWindow_Bottom1 0x2F9
#define METATILE_SilphCo_ElevatorWindow_Bottom2 0x2FA
#define METATILE_SilphCo_ElevatorWindow_Mid0 0x2F0
#define METATILE_SilphCo_ElevatorWindow_Mid1 0x2F1
#define METATILE_SilphCo_ElevatorWindow_Mid2 0x2F2
#define METATILE_SilphCo_ElevatorWindow_Top0 0x2E8
#define METATILE_SilphCo_ElevatorWindow_Top1 0x2E9
#define METATILE_SilphCo_ElevatorWindow_Top2 0x2EA
#define METATILE_SilphCo_Floor 0x334
#define METATILE_SilphCo_Floor_ShadeFull 0x335
#define METATILE_SilphCo_Floor_WallLeftCorner 0x339
#define METATILE_SilphCo_Floor_WallRightCorner 0x33A
#define METATILE_SilphCo_HideoutBarrier_BottomLeft 0x2D6
#define METATILE_SilphCo_HideoutBarrier_BottomRight 0x2D7
#define METATILE_SilphCo_HideoutBarrier_TopLeft_Floor 0x2CE
#define METATILE_SilphCo_HideoutBarrier_TopLeft_Wall 0x2C6
#define METATILE_SilphCo_HideoutBarrier_TopRight_Floor 0x2CF
#define METATILE_SilphCo_HideoutBarrier_TopRight_Wall 0x2C7
#define METATILE_SilphCo_HideoutElevatorDoor 0x2AB
#define METATILE_SilphCo_HideoutFloor 0x281
#define METATILE_SilphCo_HideoutFloor_ShadeFull 0x282
#define METATILE_SilphCo_HorizontalBarrier_BottomLeft 0x3B8
#define METATILE_SilphCo_HorizontalBarrier_BottomRight 0x3B9
#define METATILE_SilphCo_HorizontalBarrier_TopLeft 0x3B0
#define METATILE_SilphCo_HorizontalBarrier_TopRight 0x3B1
#define METATILE_SilphCo_VerticalBarrier_BottomLeft 0x3C4
#define METATILE_SilphCo_VerticalBarrier_BottomRight 0x3C5
#define METATILE_SilphCo_VerticalBarrier_MidLeft 0x3C2
#define METATILE_SilphCo_VerticalBarrier_MidRight 0x3C3
#define METATILE_SilphCo_VerticalBarrier_TopLeft 0x3C0
#define METATILE_SilphCo_VerticalBarrier_TopRight 0x3C1
#define METATILE_SilphCo_Wall_LeftEdge 0x347
#define METATILE_SilphCo_Wall_RightEdge 0x346
// gTileset_TrainerTower
#define METATILE_TrainerTower_CounterBarrier 0x2B4
#define METATILE_TrainerTower_Floor_ShadeBottomLeft 0x287
#define METATILE_TrainerTower_LobbyElevatorDoor 0x2C3
#define METATILE_TrainerTower_RoofElevatorDoor 0x356
// gTileset_VermilionCity
#define METATILE_VermilionCity_Door 0x29E
#define METATILE_VermilionCity_SSAnneWarp 0x2E1
// gTileset_VermilionGym
#define METATILE_VermilionGym_Beam_MidBottom 0x28D
#define METATILE_VermilionGym_Beam_MidBottom_HalfOn 0x2C5
#define METATILE_VermilionGym_Beam_MidTop 0x285
#define METATILE_VermilionGym_Beam_MidTop_HalfOn 0x2BD
#define METATILE_VermilionGym_Beam_Node_BottomLeft_Edge_HalfOn 0x2C4
#define METATILE_VermilionGym_Beam_Node_BottomLeft_Edge_Off 0x29C
#define METATILE_VermilionGym_Beam_Node_BottomLeft_Edge_On 0x2B2
#define METATILE_VermilionGym_Beam_Node_BottomLeft_HalfOn 0x2C3
#define METATILE_VermilionGym_Beam_Node_BottomLeft_Off 0x29B
#define METATILE_VermilionGym_Beam_Node_BottomLeft_On 0x2B1
#define METATILE_VermilionGym_Beam_Node_BottomRight_Edge_HalfOn 0x2C6
#define METATILE_VermilionGym_Beam_Node_BottomRight_Edge_Off 0x29D
#define METATILE_VermilionGym_Beam_Node_BottomRight_Edge_On 0x2B3
#define METATILE_VermilionGym_Beam_Node_BottomRight_HalfOn 0x2C7
#define METATILE_VermilionGym_Beam_Node_BottomRight_Off 0x29E
#define METATILE_VermilionGym_Beam_Node_BottomRight_On 0x2B4
#define METATILE_VermilionGym_Beam_Node_TopLeft_Edge_HalfOn 0x2BC
#define METATILE_VermilionGym_Beam_Node_TopLeft_Edge_Off 0x294
#define METATILE_VermilionGym_Beam_Node_TopLeft_Edge_On 0x2AA
#define METATILE_VermilionGym_Beam_Node_TopLeft_HalfOn 0x2BB
#define METATILE_VermilionGym_Beam_Node_TopLeft_Off 0x293
#define METATILE_VermilionGym_Beam_Node_TopLeft_On 0x2A9
#define METATILE_VermilionGym_Beam_Node_TopRight_Edge_HalfOn 0x2BE
#define METATILE_VermilionGym_Beam_Node_TopRight_Edge_Off 0x295
#define METATILE_VermilionGym_Beam_Node_TopRight_Edge_On 0x2AB
#define METATILE_VermilionGym_Beam_Node_TopRight_HalfOn 0x2BF
#define METATILE_VermilionGym_Beam_Node_TopRight_Off 0x296
#define METATILE_VermilionGym_Beam_Node_TopRight_On 0x2AC
#define METATILE_VermilionGym_Floor 0x281
// gTileset_ViridianCity
#define METATILE_ViridianCity_Door 0x299
// gTileset_ViridianForest
#define METATILE_ViridianForest_HugeTreeTopMiddle_Grass 0x284
#define METATILE_ViridianForest_HugeTreeTopMiddle_Mowed 0x281
#endif // GUARD_METATILE_LABELS_H
+177 -118
View File
@@ -2,95 +2,95 @@
#define GUARD_CONSTANTS_POKEMON_H
// For (Set|Get)(Box)?MonData
#define MON_DATA_PERSONALITY 0
#define MON_DATA_OT_ID 1
#define MON_DATA_NICKNAME 2
#define MON_DATA_LANGUAGE 3
#define MON_DATA_SANITY_IS_BAD_EGG 4
#define MON_DATA_SANITY_HAS_SPECIES 5
#define MON_DATA_SANITY_IS_EGG 6
#define MON_DATA_OT_NAME 7
#define MON_DATA_MARKINGS 8
#define MON_DATA_CHECKSUM 9
#define MON_DATA_ENCRYPT_SEPARATOR 10
#define MON_DATA_SPECIES 11
#define MON_DATA_HELD_ITEM 12
#define MON_DATA_MOVE1 13
#define MON_DATA_MOVE2 14
#define MON_DATA_MOVE3 15
#define MON_DATA_MOVE4 16
#define MON_DATA_PP1 17
#define MON_DATA_PP2 18
#define MON_DATA_PP3 19
#define MON_DATA_PP4 20
#define MON_DATA_PP_BONUSES 21
#define MON_DATA_COOL 22
#define MON_DATA_BEAUTY 23
#define MON_DATA_CUTE 24
#define MON_DATA_EXP 25
#define MON_DATA_HP_EV 26
#define MON_DATA_ATK_EV 27
#define MON_DATA_DEF_EV 28
#define MON_DATA_SPEED_EV 29
#define MON_DATA_SPATK_EV 30
#define MON_DATA_SPDEF_EV 31
#define MON_DATA_FRIENDSHIP 32
#define MON_DATA_SMART 33
#define MON_DATA_POKERUS 34
#define MON_DATA_MET_LOCATION 35
#define MON_DATA_MET_LEVEL 36
#define MON_DATA_MET_GAME 37
#define MON_DATA_POKEBALL 38
#define MON_DATA_HP_IV 39
#define MON_DATA_ATK_IV 40
#define MON_DATA_DEF_IV 41
#define MON_DATA_SPEED_IV 42
#define MON_DATA_SPATK_IV 43
#define MON_DATA_SPDEF_IV 44
#define MON_DATA_IS_EGG 45
#define MON_DATA_ABILITY_NUM 46
#define MON_DATA_TOUGH 47
#define MON_DATA_SHEEN 48
#define MON_DATA_OT_GENDER 49
#define MON_DATA_COOL_RIBBON 50
#define MON_DATA_BEAUTY_RIBBON 51
#define MON_DATA_CUTE_RIBBON 52
#define MON_DATA_SMART_RIBBON 53
#define MON_DATA_TOUGH_RIBBON 54
#define MON_DATA_STATUS 55
#define MON_DATA_LEVEL 56
#define MON_DATA_HP 57
#define MON_DATA_MAX_HP 58
#define MON_DATA_ATK 59
#define MON_DATA_DEF 60
#define MON_DATA_SPEED 61
#define MON_DATA_SPATK 62
#define MON_DATA_SPDEF 63
#define MON_DATA_MAIL 64
#define MON_DATA_SPECIES2 65
#define MON_DATA_IVS 66
#define MON_DATA_CHAMPION_RIBBON 67
#define MON_DATA_WINNING_RIBBON 68
#define MON_DATA_VICTORY_RIBBON 69
#define MON_DATA_ARTIST_RIBBON 70
#define MON_DATA_EFFORT_RIBBON 71
#define MON_DATA_MARINE_RIBBON 72
#define MON_DATA_LAND_RIBBON 73
#define MON_DATA_SKY_RIBBON 74
#define MON_DATA_COUNTRY_RIBBON 75
#define MON_DATA_NATIONAL_RIBBON 76
#define MON_DATA_EARTH_RIBBON 77
#define MON_DATA_WORLD_RIBBON 78
#define MON_DATA_UNUSED_RIBBONS 79
#define MON_DATA_EVENT_LEGAL 80
#define MON_DATA_KNOWN_MOVES 81
#define MON_DATA_RIBBON_COUNT 82
#define MON_DATA_RIBBONS 83
#define MON_DATA_ATK2 84
#define MON_DATA_DEF2 85
#define MON_DATA_SPEED2 86
#define MON_DATA_SPATK2 87
#define MON_DATA_SPDEF2 88
#define MON_DATA_PERSONALITY 0
#define MON_DATA_OT_ID 1
#define MON_DATA_NICKNAME 2
#define MON_DATA_LANGUAGE 3
#define MON_DATA_SANITY_IS_BAD_EGG 4
#define MON_DATA_SANITY_HAS_SPECIES 5
#define MON_DATA_SANITY_IS_EGG 6
#define MON_DATA_OT_NAME 7
#define MON_DATA_MARKINGS 8
#define MON_DATA_CHECKSUM 9
#define MON_DATA_ENCRYPT_SEPARATOR 10
#define MON_DATA_SPECIES 11
#define MON_DATA_HELD_ITEM 12
#define MON_DATA_MOVE1 13
#define MON_DATA_MOVE2 14
#define MON_DATA_MOVE3 15
#define MON_DATA_MOVE4 16
#define MON_DATA_PP1 17
#define MON_DATA_PP2 18
#define MON_DATA_PP3 19
#define MON_DATA_PP4 20
#define MON_DATA_PP_BONUSES 21
#define MON_DATA_COOL 22
#define MON_DATA_BEAUTY 23
#define MON_DATA_CUTE 24
#define MON_DATA_EXP 25
#define MON_DATA_HP_EV 26
#define MON_DATA_ATK_EV 27
#define MON_DATA_DEF_EV 28
#define MON_DATA_SPEED_EV 29
#define MON_DATA_SPATK_EV 30
#define MON_DATA_SPDEF_EV 31
#define MON_DATA_FRIENDSHIP 32
#define MON_DATA_SMART 33
#define MON_DATA_POKERUS 34
#define MON_DATA_MET_LOCATION 35
#define MON_DATA_MET_LEVEL 36
#define MON_DATA_MET_GAME 37
#define MON_DATA_POKEBALL 38
#define MON_DATA_HP_IV 39
#define MON_DATA_ATK_IV 40
#define MON_DATA_DEF_IV 41
#define MON_DATA_SPEED_IV 42
#define MON_DATA_SPATK_IV 43
#define MON_DATA_SPDEF_IV 44
#define MON_DATA_IS_EGG 45
#define MON_DATA_ABILITY_NUM 46
#define MON_DATA_TOUGH 47
#define MON_DATA_SHEEN 48
#define MON_DATA_OT_GENDER 49
#define MON_DATA_COOL_RIBBON 50
#define MON_DATA_BEAUTY_RIBBON 51
#define MON_DATA_CUTE_RIBBON 52
#define MON_DATA_SMART_RIBBON 53
#define MON_DATA_TOUGH_RIBBON 54
#define MON_DATA_STATUS 55
#define MON_DATA_LEVEL 56
#define MON_DATA_HP 57
#define MON_DATA_MAX_HP 58
#define MON_DATA_ATK 59
#define MON_DATA_DEF 60
#define MON_DATA_SPEED 61
#define MON_DATA_SPATK 62
#define MON_DATA_SPDEF 63
#define MON_DATA_MAIL 64
#define MON_DATA_SPECIES_OR_EGG 65
#define MON_DATA_IVS 66
#define MON_DATA_CHAMPION_RIBBON 67
#define MON_DATA_WINNING_RIBBON 68
#define MON_DATA_VICTORY_RIBBON 69
#define MON_DATA_ARTIST_RIBBON 70
#define MON_DATA_EFFORT_RIBBON 71
#define MON_DATA_MARINE_RIBBON 72
#define MON_DATA_LAND_RIBBON 73
#define MON_DATA_SKY_RIBBON 74
#define MON_DATA_COUNTRY_RIBBON 75
#define MON_DATA_NATIONAL_RIBBON 76
#define MON_DATA_EARTH_RIBBON 77
#define MON_DATA_WORLD_RIBBON 78
#define MON_DATA_UNUSED_RIBBONS 79
#define MON_DATA_MODERN_FATEFUL_ENCOUNTER 80
#define MON_DATA_KNOWN_MOVES 81
#define MON_DATA_RIBBON_COUNT 82
#define MON_DATA_RIBBONS 83
#define MON_DATA_ATK2 84
#define MON_DATA_DEF2 85
#define MON_DATA_SPEED2 86
#define MON_DATA_SPATK2 87
#define MON_DATA_SPDEF2 88
// Pokemon types
#define TYPE_NONE 255
@@ -115,21 +115,21 @@
#define NUMBER_OF_MON_TYPES 18
// Pokemon egg groups
#define EGG_GROUP_NONE 0
#define EGG_GROUP_MONSTER 1
#define EGG_GROUP_WATER_1 2
#define EGG_GROUP_BUG 3
#define EGG_GROUP_FLYING 4
#define EGG_GROUP_FIELD 5
#define EGG_GROUP_FAIRY 6
#define EGG_GROUP_GRASS 7
#define EGG_GROUP_HUMAN_LIKE 8
#define EGG_GROUP_WATER_3 9
#define EGG_GROUP_MINERAL 10
#define EGG_GROUP_AMORPHOUS 11
#define EGG_GROUP_WATER_2 12
#define EGG_GROUP_DITTO 13
#define EGG_GROUP_DRAGON 14
#define EGG_GROUP_NONE 0
#define EGG_GROUP_MONSTER 1
#define EGG_GROUP_WATER_1 2
#define EGG_GROUP_BUG 3
#define EGG_GROUP_FLYING 4
#define EGG_GROUP_FIELD 5
#define EGG_GROUP_FAIRY 6
#define EGG_GROUP_GRASS 7
#define EGG_GROUP_HUMAN_LIKE 8
#define EGG_GROUP_WATER_3 9
#define EGG_GROUP_MINERAL 10
#define EGG_GROUP_AMORPHOUS 11
#define EGG_GROUP_WATER_2 12
#define EGG_GROUP_DITTO 13
#define EGG_GROUP_DRAGON 14
#define EGG_GROUP_UNDISCOVERED 15
#define EGG_GROUPS_PER_MON 2
@@ -184,23 +184,29 @@
// Shiny odds
#define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536
#define MAX_LEVEL 100
#define OT_ID_PLAYER_ID 0
#define OT_ID_PRESET 1
#define OT_ID_RANDOM_NO_SHINY 2
#define MON_GIVEN_TO_PARTY 0
#define MON_GIVEN_TO_PC 1
#define MON_CANT_GIVE 2
#define PLAYER_HAS_TWO_USABLE_MONS 0
#define PLAYER_HAS_ONE_MON 1
#define PLAYER_HAS_ONE_USABLE_MON 2
// Learning moves
#define MON_ALREADY_KNOWS_MOVE 0xFFFE
#define MON_HAS_MAX_MOVES 0xFFFF
#define PLAYER_HAS_TWO_USABLE_MONS 0x0
#define PLAYER_HAS_ONE_MON 0x1
#define PLAYER_HAS_ONE_USABLE_MON 0x2
#define LEVEL_UP_MOVE_ID 0x01FF
#define LEVEL_UP_MOVE_LV 0xFE00
#define LEVEL_UP_END 0xFFFF
#define MAX_LEVEL 100
#define OT_ID_RANDOM_NO_SHINY 2
#define OT_ID_PRESET 1
#define OT_ID_PLAYER_ID 0
#define MON_GIVEN_TO_PARTY 0x0
#define MON_GIVEN_TO_PC 0x1
#define MON_CANT_GIVE 0x2
#define MAX_LEVEL_UP_MOVES 20
#define MON_MALE 0x00
#define MON_FEMALE 0xFE
@@ -217,6 +223,10 @@
#define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 8
#define FRIENDSHIP_EVENT_FAINT_LARGE 9
#define MAX_FRIENDSHIP 255
#define MAX_SHEEN 255
#define MAX_CONDITION 255
#define MAX_PER_STAT_IVS 31
#define MAX_IV_MASK 31
#define USE_RANDOM_IVS (MAX_PER_STAT_IVS + 1)
@@ -224,8 +234,52 @@
#define MAX_TOTAL_EVS 510
#define EV_ITEM_RAISE_LIMIT 100
#define PARTY_SIZE 6
#define BOX_NAME_LENGTH 8
// Battle move flags
#define FLAG_MAKES_CONTACT (1 << 0)
#define FLAG_PROTECT_AFFECTED (1 << 1)
#define FLAG_MAGIC_COAT_AFFECTED (1 << 2)
#define FLAG_SNATCH_AFFECTED (1 << 3)
#define FLAG_MIRROR_MOVE_AFFECTED (1 << 4)
#define FLAG_KINGS_ROCK_AFFECTED (1 << 5)
// Growth rates
#define GROWTH_MEDIUM_FAST 0
#define GROWTH_ERRATIC 1
#define GROWTH_FLUCTUATING 2
#define GROWTH_MEDIUM_SLOW 3
#define GROWTH_FAST 4
#define GROWTH_SLOW 5
// Body colors for pokedex search
#define BODY_COLOR_RED 0
#define BODY_COLOR_BLUE 1
#define BODY_COLOR_YELLOW 2
#define BODY_COLOR_GREEN 3
#define BODY_COLOR_BLACK 4
#define BODY_COLOR_BROWN 5
#define BODY_COLOR_PURPLE 6
#define BODY_COLOR_GRAY 7
#define BODY_COLOR_WHITE 8
#define BODY_COLOR_PINK 9
// Evolution types
#define EVO_FRIENDSHIP 1 // Pokémon levels up with friendship ≥ 220
#define EVO_FRIENDSHIP_DAY 2 // Pokémon levels up during the day with friendship ≥ 220
#define EVO_FRIENDSHIP_NIGHT 3 // Pokémon levels up at night with friendship ≥ 220
#define EVO_LEVEL 4 // Pokémon reaches the specified level
#define EVO_TRADE 5 // Pokémon is traded
#define EVO_TRADE_ITEM 6 // Pokémon is traded while it's holding the specified item
#define EVO_ITEM 7 // specified item is used on Pokémon
#define EVO_LEVEL_ATK_GT_DEF 8 // Pokémon reaches the specified level with attack > defense
#define EVO_LEVEL_ATK_EQ_DEF 9 // Pokémon reaches the specified level with attack = defense
#define EVO_LEVEL_ATK_LT_DEF 10 // Pokémon reaches the specified level with attack < defense
#define EVO_LEVEL_SILCOON 11 // Pokémon reaches the specified level with a Silcoon personality value
#define EVO_LEVEL_CASCOON 12 // Pokémon reaches the specified level with a Cascoon personality value
#define EVO_LEVEL_NINJASK 13 // Pokémon reaches the specified level (special value for Ninjask)
#define EVO_LEVEL_SHEDINJA 14 // Pokémon reaches the specified level (special value for Shedinja)
#define EVO_BEAUTY 15 // Pokémon levels up with beauty ≥ specified value
#define EVOS_PER_MON 5
#define EVO_MODE_NORMAL 0
#define EVO_MODE_TRADE 1
@@ -236,6 +290,11 @@
#define MON_PIC_HEIGHT 64
#define MON_PIC_SIZE (MON_PIC_WIDTH * MON_PIC_HEIGHT / 2)
// Most pokemon have 1 frame. There are 2 exceptions:
// - Castform has 4 frames, 1 for each form
// - Deoxys has 2 frames, 1 for each form
#define MAX_MON_PIC_FRAMES 4
// used by ShouldIgnoreDeoxysForm
#define DEOXYS_CHECK_BATTLE_SPRITE 1
#define DEOXYS_CHECK_TRADE_MAIN 3
-8
View File
@@ -3,14 +3,6 @@
#include "global.h"
enum HiddenItemAttr
{
HIDDEN_ITEM_ID = 0,
HIDDEN_ITEM_FLAG,
HIDDEN_ITEM_QUANTITY,
HIDDEN_ITEM_UNDERFOOT
};
u8 GetLeadMonIndex(void);
s32 CountDigits(s32 number);
void TV_PrintIntToStringVar(u8 varidx, s32 number);
+2 -2
View File
@@ -33,8 +33,8 @@ void GetCameraCoords(u16 *, u16 *);
bool8 MapGridGetCollisionAt(s32, s32);
s32 GetMapBorderIdAt(s32, s32);
bool32 CanCameraMoveInDirection(s32);
const struct MapHeader * GetMapHeaderFromConnection(struct MapConnection * connection);
struct MapConnection * GetMapConnectionAtPos(s16 x, s16 y);
const struct MapHeader * GetMapHeaderFromConnection(const struct MapConnection * connection);
const struct MapConnection * GetMapConnectionAtPos(s16 x, s16 y);
void ApplyGlobalTintToPaletteSlot(u8 slot, u8 count);
void SaveMapView(void);
u32 ExtractMetatileAttribute(u32 attributes, u8 attributeType);
+53 -39
View File
@@ -1,55 +1,69 @@
#ifndef GUARD_GBA_ISAGBPRINT_H
#define GUARD_GBA_ISAGBPRINT_H
#include "gba/types.h"
#define MGBA_LOG_FATAL (0)
#define MGBA_LOG_ERROR (1)
#define MGBA_LOG_WARN (2)
#define MGBA_LOG_INFO (3)
#define MGBA_LOG_DEBUG (4)
#ifdef NDEBUG
#define DebugPrintf(pBuf, ...)
#define DebugPrintfLevel(level, pBuf, ...)
#define MgbaOpen()
#define MgbaClose()
#define AGBPrintInit()
#define AGBPutc(cChr)
#define AGBPrint(pBuf)
#define AGBPrintf(pBuf, ...)
#define AGBPrintFlush1Block()
#define AGBPrintFlush()
#define AGBAssert(pFile, nLine, pExpression, nStopProgram)
#define DebugAssert(pFile, nLine, pExpression, nStopProgram)
#else
void AGBPrintInit(void);
void AGBPutc(const char cChr);
void AGBPrint(const char *pBuf);
bool32 MgbaOpen(void);
void MgbaClose(void);
void MgbaPrintf(s32 level, const char *pBuf, ...);
void MgbaAssert(const char *pFile, s32 nLine, const char *pExpression, bool32 nStopProgram);
void NoCashGBAPrintf(const char *pBuf, ...);
void NoCashGBAAssert(const char *pFile, s32 nLine, const char *pExpression, bool32 nStopProgram);
void AGBPrintf(const char *pBuf, ...);
void AGBPrintFlush1Block(void);
void AGBPrintFlush(void);
void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopProgram);
void AGBPrintInit(void);
#if (LOG_HANDLER == LOG_HANDLER_MGBA_PRINT)
#define DebugPrintf(pBuf, ...) MgbaPrintf(MGBA_LOG_INFO, pBuf, ## __VA_ARGS__)
#define DebugAssert(pFile, nLine, pExpression, nStopProgram) MgbaAssert(pFile, nLine, pExpression, nStopProgram)
#define DebugPrintfLevel(level, pBuf, ...) MgbaPrintf(level, pBuf, ## __VA_ARGS__)
#elif (LOG_HANDLER == LOG_HANDLER_NOCASH_PRINT)
#define DebugPrintf(pBuf, ...) NoCashGBAPrintf(pBuf, ## __VA_ARGS__)
#define DebugAssert(pFile, nLine, pExpression, nStopProgram) NoCashGBAAssert(pFile, nLine, pExpression, nStopProgram)
#define DebugPrintfLevel(level, pBuf, ...) NoCashGBAPrintf(pBuf, ## __VA_ARGS__)
#else // Default to AGBPrint
#define DebugPrintf(pBuf, ...) AGBPrintf(pBuf, ## __VA_ARGS__)
#define DebugAssert(pFile, nLine, pExpression, nStopProgram) AGBAssert(pFile, nLine, pExpression, nStopProgram)
#define DebugPrintfLevel(level, pBuf, ...) AGBPrintf(pBuf, ## __VA_ARGS__)
#endif
#undef AGB_ASSERT
#ifdef NDEBUG
#define AGB_ASSERT(exp)
#else
#define AGB_ASSERT(exp) (exp) ? ((void *)0) : AGBAssert(__FILE__, __LINE__, #exp, 1);
#endif
#undef AGB_WARNING
#ifdef NDEBUG
#define AGB_WARNING(exp)
#else
#define AGB_WARNING(exp) (exp) ? ((void *)0) : AGBAssert(__FILE__, __LINE__, #exp, 0);
#endif
// for matching purposes
#if MODERN
#define AGB_ASSERT_EX(exp, file, line) AGB_ASSERT(exp)
#define AGB_WARNING_EX(exp, file, line) AGB_WARNING(exp)
#else
#ifdef NDEBUG
#define AGB_ASSERT_EX(exp, file, line)
#else
#define AGB_ASSERT_EX(exp, file, line) (exp) ? ((void *)0) : AGBAssert(file, line, #exp, 1);
#endif
#ifdef NDEBUG
#define AGB_WARNING_EX(exp, file, line)
#define AGB_ASSERT(exp)
#define AGB_WARNING(exp)
#define AGB_ASSERT_EX(exp, file, line)
#define AGB_WARNING_EX(exp, file, line)
#else
#define AGB_WARNING_EX(exp, file, line) (exp) ? ((void *)0) : AGBAssert(file, line, #exp, 0);
#endif
#define AGB_ASSERT(exp) (exp) ? ((void*)0) : DebugAssert(__FILE__, __LINE__, #exp, TRUE)
#define AGB_WARNING(exp) (exp) ? ((void*)0) : DebugAssert(__FILE__, __LINE__, #exp, FALSE)
#define AGB_WARNING_EX(exp, file, line) (exp) ? ((void *)0) : DebugAssert(file, line, #exp, FALSE);
#define AGB_ASSERT_EX(exp, file, line) (exp) ? ((void *)0) : DebugAssert(file, line, #exp, TRUE);
#endif
#endif // GUARD_GBA_ISAGBPRINT_H
+37 -18
View File
@@ -50,6 +50,31 @@ enum
TILE_TERRAIN_WATERFALL,
};
// Identifiers for the hidden item data stored in BgEvent's u32 hiddenItem
enum
{
HIDDEN_ITEM_ITEM,
HIDDEN_ITEM_FLAG,
HIDDEN_ITEM_QUANTITY,
HIDDEN_ITEM_UNDERFOOT
};
// Masks/shifts to read the data above from the u32 hiddenItem, calculated from size.
#define HIDDEN_ITEM_ITEM_BITS 16
#define HIDDEN_ITEM_FLAG_BITS 8
#define HIDDEN_ITEM_QUANTITY_BITS 7
#define HIDDEN_ITEM_UNDERFOOT_BITS 1
#define HIDDEN_ITEM_ITEM_SHIFT 0
#define HIDDEN_ITEM_FLAG_SHIFT (HIDDEN_ITEM_ITEM_SHIFT + HIDDEN_ITEM_ITEM_BITS)
#define HIDDEN_ITEM_QUANTITY_SHIFT (HIDDEN_ITEM_FLAG_SHIFT + HIDDEN_ITEM_FLAG_BITS)
#define HIDDEN_ITEM_UNDERFOOT_SHIFT (HIDDEN_ITEM_QUANTITY_SHIFT + HIDDEN_ITEM_QUANTITY_BITS)
#define GET_HIDDEN_ITEM_ITEM(raw) (((raw) >> HIDDEN_ITEM_ITEM_SHIFT) & ((1 << HIDDEN_ITEM_ITEM_BITS) - 1))
#define GET_HIDDEN_ITEM_FLAG(raw) (((raw) >> HIDDEN_ITEM_FLAG_SHIFT) & ((1 << HIDDEN_ITEM_FLAG_BITS) - 1))
#define GET_HIDDEN_ITEM_QUANTITY(raw) (((raw) >> HIDDEN_ITEM_QUANTITY_SHIFT) & ((1 << HIDDEN_ITEM_QUANTITY_BITS) - 1))
#define GET_HIDDEN_ITEM_UNDERFOOT(raw)(((raw) >> HIDDEN_ITEM_UNDERFOOT_SHIFT) & ((1 << HIDDEN_ITEM_UNDERFOOT_BITS) - 1))
typedef void (*TilesetCB)(void);
struct Tileset
@@ -67,10 +92,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;
/*0x18*/ u8 borderWidth;
/*0x19*/ u8 borderHeight;
};
@@ -123,7 +148,7 @@ struct CoordEvent
u8 elevation;
u16 trigger;
u16 index;
u8 *script;
const u8 *script;
};
struct BgEvent
@@ -132,14 +157,8 @@ struct BgEvent
u8 elevation;
u8 kind; // The "kind" field determines how to access bgUnion union below.
union {
u8 *script;
struct {
u32 itemId:16;
u32 hiddenItemId:8; // flag offset to determine flag lookup
u32 quantity:7;
u32 isUnderfoot:1;
} hiddenItemStr;
u32 hiddenItem;
const u8 *script;
u32 hiddenItem; // Contains all the hidden item data. See GET_HIDDEN_ITEM_* defines further up
} bgUnion;
};
@@ -149,10 +168,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
@@ -166,7 +185,7 @@ struct MapConnection
struct MapConnections
{
s32 count;
struct MapConnection *connections;
const struct MapConnection *connections;
};
struct MapHeader
+19 -126
View File
@@ -2751,113 +2751,6 @@ extern const u16 gFireRedMenuElements2_Pal[];
extern const u8 gItemIcon_QuestionMark[];
extern const u8 gItemIconPalette_QuestionMark[];
extern const u8 gUnknown_08DB7AA0[];
extern const u8 gUnknown_08DB7B34[];
extern const u8 gUnknown_08DB7B5C[];
extern const u8 gUnknown_08DB7BEC[];
extern const u8 gUnknown_08DB7C08[];
extern const u8 gUnknown_08DB7CE8[];
extern const u8 gUnknown_08DB7D08[];
extern const u8 gUnknown_08DB7DCC[];
extern const u8 gUnknown_08DB7DF4[];
extern const u8 gUnknown_08DB7EA0[];
extern const u8 gUnknown_08DB7EC4[];
extern const u8 gUnknown_08DB7F60[];
extern const u8 gUnknown_08DB7F7C[];
extern const u8 gUnknown_08DB8070[];
extern const u8 gUnknown_08DB808C[];
extern const u8 gUnknown_08DB8138[];
extern const u8 gUnknown_08DB8160[];
extern const u8 gUnknown_08DB8218[];
extern const u8 gUnknown_08DB823C[];
extern const u8 gUnknown_08DB8300[];
extern const u8 gUnknown_08DB8328[];
extern const u8 gUnknown_08DB8430[];
extern const u8 gUnknown_08DB8458[];
extern const u8 gUnknown_08DB8528[];
extern const u8 gUnknown_08DB854C[];
extern const u8 gUnknown_08DB862C[];
extern const u8 gUnknown_08DB8654[];
extern const u8 gUnknown_08DB86C4[];
extern const u8 gUnknown_08DB86E0[];
extern const u8 gUnknown_08DB8750[];
extern const u8 gUnknown_08DB876C[];
extern const u8 gUnknown_08DB87DC[];
extern const u8 gUnknown_08DB87F8[];
extern const u8 gUnknown_08DB88D8[];
extern const u8 gUnknown_08DB8900[];
extern const u8 gUnknown_08DB89E0[];
extern const u8 gUnknown_08DB8A08[];
extern const u8 gUnknown_08DB8A68[];
extern const u8 gUnknown_08DB8A84[];
extern const u8 gUnknown_08DB8B40[];
extern const u8 gUnknown_08DB8B68[];
extern const u8 gUnknown_08DB8C40[];
extern const u8 gUnknown_08DB8C5C[];
extern const u8 gUnknown_08DB8CF4[];
extern const u8 gUnknown_08DB8D18[];
extern const u8 gUnknown_08DB8DB0[];
extern const u8 gUnknown_08DB8DD4[];
extern const u8 gUnknown_08DB8E80[];
extern const u8 gUnknown_08DB8EA0[];
extern const u8 gUnknown_08DB8F58[];
extern const u8 gUnknown_08DB8F7C[];
extern const u8 gUnknown_08DB9038[];
extern const u8 gUnknown_08DB9058[];
extern const u8 gUnknown_08DB9130[];
extern const u8 gUnknown_08DB9154[];
extern const u8 gUnknown_08DB9218[];
extern const u8 gUnknown_08DB9234[];
extern const u8 gUnknown_08DB92FC[];
extern const u8 gUnknown_08DB931C[];
extern const u8 gUnknown_08DB93E8[];
extern const u8 gUnknown_08DB940C[];
extern const u8 gUnknown_08DB94CC[];
extern const u8 gUnknown_08DB94E8[];
extern const u8 gUnknown_08DB95AC[];
extern const u8 gUnknown_08DB95D0[];
extern const u8 gUnknown_08DB96C4[];
extern const u8 gUnknown_08DB96EC[];
extern const u8 gUnknown_08DB97F4[];
extern const u8 gUnknown_08DB981C[];
extern const u8 gUnknown_08DB9908[];
extern const u8 gUnknown_08DB9930[];
extern const u8 gUnknown_08DB9A54[];
extern const u8 gUnknown_08DB9A7C[];
extern const u8 gUnknown_08DB9B7C[];
extern const u8 gUnknown_08DB9BA4[];
extern const u8 gUnknown_08DB9CB0[];
extern const u8 gUnknown_08DB9CD8[];
extern const u8 gUnknown_08DB9DAC[];
extern const u8 gUnknown_08DB9DD4[];
extern const u8 gUnknown_08DB9EE4[];
extern const u8 gUnknown_08DB9F08[];
extern const u8 gUnknown_08DB9FFC[];
extern const u8 gUnknown_08DBA020[];
extern const u8 gUnknown_08DBA12C[];
extern const u8 gUnknown_08DCC05C[];
extern const u16 gUnknown_08DCC01C[];
extern const u16 gUnknown_08DCC03C[];
extern const u8 gUnknown_08DCC648[];
extern const u8 gUnknown_08DCC908[];
extern const u8 gUnknown_08DD87C0[];
extern const u8 gUnknown_08DD8EE0[];
extern const u16 gUnknown_08DD8780[];
extern const u8 gUnknown_08DD90E0[];
extern const u8 gUnknown_08DD9718[];
extern const u16 gUnknown_08DD9080[];
extern const u8 gUnknown_08DD98B4[];
extern const u8 gUnknown_08DD9E58[];
extern const u16 gUnknown_08DD9874[];
extern const u8 gUnknown_08DDA02C[];
extern const u8 gUnknown_08DDA63C[];
extern const u16 gUnknown_08DD9FEC[];
extern const u8 gUnknown_08DDA840[];
extern const u8 gUnknown_08DDAE40[];
extern const u16 gUnknown_08DDA800[];
extern const u8 gUnknown_08DDB020[];
extern const u8 gUnknown_08DDB2C4[];
extern const u16 gUnknown_08DDAFE0[];
// fame_checker
extern const u16 gFameCheckerBgPals[0x30];
@@ -4343,12 +4236,12 @@ extern const u32 gPartyMenuBg_Tilemap[];
extern const u32 gPartyMenuBg_Pal[];
// credits
extern const u32 gCreditsPokeballBgGfxTiles[];
extern const u32 gCreditsPokeballBgGfxMap[];
extern const u16 gCreditsMonBackdropPals[][16];
extern const u16 gCreditsAllRightsReservedGfxPal[];
extern const u8 gCreditsAllRightsReservedGfxTiles[];
extern const u8 gCreditsAllRightsReservedGfxMap[];
extern const u32 gCreditsMonPokeball_Tiles[];
extern const u32 gCreditsMonPokeball_Tilemap[];
extern const u16 gCreditsMonPokeball_Pals[][16];
extern const u16 gCreditsCopyright_Pal[];
extern const u8 gCreditsCopyright_Tiles[];
extern const u8 gCreditsCopyright_Tilemap[];
// berry_pouch
extern const u32 gBerryPouchSpriteTiles[];
@@ -4837,9 +4730,9 @@ extern const u32 gFile_graphics_misc_confetti_sheet[];
extern const u32 gFile_graphics_misc_confetti_palette[];
// learn_move
extern const u16 gUnknown_8E97DDC[];
extern const u32 gUnknown_8E97DFC[];
extern const u32 gUnknown_8E97EC4[];
extern const u16 gMoveRelearner_Pal[];
extern const u32 gMoveRelearner_Gfx[];
extern const u32 gMoveRelearner_Tilemap[];
// shop menu
extern const u32 gBuyMenuFrame_Gfx[];
@@ -4866,22 +4759,22 @@ extern const u16 gBattleInterface_Healthbox_Pal[];
extern const u16 gBattleInterface_Healthbar_Pal[];
// item_menu
extern const u32 gUnknown_8E830CC[];
extern const u32 gUnknown_8E832C0[];
extern const u32 gUnknown_8E83444[];
extern const u32 gBagBg_Gfx[];
extern const u32 gBagBg_Tilemap[];
extern const u32 gBagBg_ItemPC_Tilemap[];
extern const u32 gBagBgPalette[];
extern const u32 gBagBgPalette_FemaleOverride[];
// union_room_chat_display
extern const u16 gUnionRoomChatPanelBgPal_7[];
extern const u32 gUnionRoomChatPanelBgTiles[];
extern const u32 gUnionRoomChatPanelBgMap[];
extern const u16 gLinkMiscMenu_Pal[];
extern const u32 gLinkMiscMenu_Gfx[];
extern const u32 gLinkMiscMenu_Tilemap[];
extern const u16 gUnionRoomChat_Panel_Pal[];
extern const u32 gUnionRoomChat_Panel_Gfx[];
extern const u32 gUnionRoomChat_Panel_Tilemap[];
extern const u16 gUnionRoomChat_Bg_Pal[];
extern const u32 gUnionRoomChat_Bg_Gfx[];
extern const u32 gUnionRoomChat_Bg_Tilemap[];
// union_room_chat_objects
extern const u32 gUnionRoomChatIcons[];
extern const u32 gUnionRoomChat_Icons_Gfx[];
// battle_bg
extern const u32 gFile_graphics_battle_transitions_vs_frame_sheet[];
+2
View File
@@ -14,6 +14,8 @@
ptr = NULL; \
}
#define TRY_FREE_AND_SET_NULL(ptr) if (ptr != NULL) FREE_AND_SET_NULL(ptr)
extern u8 gHeap[];
void *Alloc(u32 size);
void *AllocZeroed(u32 size);
+52
View File
@@ -0,0 +1,52 @@
/*
* The Minimal snprintf() implementation
*
* Copyright (c) 2013 Michal Ludvig <michal@logix.cz>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the auhor nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*
* Courtey of https://github.com/mludvig/mini-printf
* stripped to reduce file size for agb needs
*/
#ifndef __MINI_PRINTF__
#define __MINI_PRINTF__
#include <stdarg.h>
#include "gba/types.h"
#ifdef NDEBUG
#define mini_vsnprintf(buffer, buffer_len, fmt, va)
#define mini_vpprintf(buf, fmt, va)
#else
s32 mini_vsnprintf(char* buffer, u32 buffer_len, const char *fmt, va_list va);
s32 mini_vpprintf(void* buf, const char *fmt, va_list va);
#endif
#endif
+62 -104
View File
@@ -4,7 +4,6 @@
#include "global.h"
#include "sprite.h"
#include "constants/pokemon.h"
#include "pokemon_storage_system.h"
struct PokemonSubstruct0
{
@@ -13,12 +12,13 @@ struct PokemonSubstruct0
u32 experience;
u8 ppBonuses;
u8 friendship;
u16 filler;
};
struct PokemonSubstruct1
{
u16 moves[4];
u8 pp[4];
u16 moves[MAX_MON_MOVES];
u8 pp[MAX_MON_MOVES];
};
struct PokemonSubstruct2
@@ -56,34 +56,50 @@ struct PokemonSubstruct3
/* 0x07 */ u32 isEgg:1;
/* 0x07 */ u32 abilityNum:1;
/* 0x08 */ u32 coolRibbon:3;
/* 0x08 */ u32 beautyRibbon:3;
/* 0x08 */ u32 cuteRibbon:3;
/* 0x09 */ u32 smartRibbon:3;
/* 0x09 */ u32 toughRibbon:3;
/* 0x09 */ u32 championRibbon:1;
/* 0x0A */ u32 winningRibbon:1;
/* 0x0A */ u32 victoryRibbon:1;
/* 0x0A */ u32 artistRibbon:1;
/* 0x0A */ u32 effortRibbon:1;
/* 0x0A */ u32 marineRibbon:1; // never distributed
/* 0x0A */ u32 landRibbon:1; // never distributed
/* 0x0A */ u32 skyRibbon:1; // never distributed
/* 0x0A */ u32 countryRibbon:1; // distributed during Pokémon Festa '04 and '05 to tournament winners
/* 0x0B */ u32 nationalRibbon:1;
/* 0x0B */ u32 earthRibbon:1;
/* 0x0B */ u32 worldRibbon:1; // distributed during Pokémon Festa '04 and '05 to tournament winners
/* 0x0B */ u32 unusedRibbons:4; // discarded in Gen 4
/* 0x0B */ u32 eventLegal:1; // controls Mew & Deoxys obedience; if set, Pokémon is a fateful encounter in FRLG & Gen 4+ summary screens; set for in-game event island legendaries, some distributed events, and Pokémon from XD: Gale of Darkness.
/* 0x08 */ u32 coolRibbon:3; // Stores the highest contest rank achieved in the Cool category.
/* 0x08 */ u32 beautyRibbon:3; // Stores the highest contest rank achieved in the Beauty category.
/* 0x08 */ u32 cuteRibbon:3; // Stores the highest contest rank achieved in the Cute category.
/* 0x09 */ u32 smartRibbon:3; // Stores the highest contest rank achieved in the Smart category.
/* 0x09 */ u32 toughRibbon:3; // Stores the highest contest rank achieved in the Tough category.
/* 0x09 */ u32 championRibbon:1; // Given when defeating the Champion. Because both RSE and FRLG use it, later generations don't specify from which region it comes from.
/* 0x0A */ u32 winningRibbon:1; // Given at the Battle Tower's Level 50 challenge by winning a set of seven battles that extends the current streak to 56 or more.
/* 0x0A */ u32 victoryRibbon:1; // Given at the Battle Tower's Level 100 challenge by winning a set of seven battles that extends the current streak to 56 or more.
/* 0x0A */ u32 artistRibbon:1; // Given at the Contest Hall by winning a Master Rank contest with at least 800 points, and agreeing to have the Pokémon's portrait placed in the museum after being offered.
/* 0x0A */ u32 effortRibbon:1; // Given at Slateport's market to Pokémon with maximum EVs.
/* 0x0A */ u32 marineRibbon:1; // Never distributed.
/* 0x0A */ u32 landRibbon:1; // Never distributed.
/* 0x0A */ u32 skyRibbon:1; // Never distributed.
/* 0x0A */ u32 countryRibbon:1; // Distributed during Pokémon Festa '04 and '05 to tournament winners.
/* 0x0B */ u32 nationalRibbon:1; // Given to purified Shadow Pokémon in Colosseum/XD.
/* 0x0B */ u32 earthRibbon:1; // Given to teams that have beaten Mt. Battle's 100-battle challenge in Colosseum/XD.
/* 0x0B */ u32 worldRibbon:1; // Distributed during Pokémon Festa '04 and '05 to tournament winners.
/* 0x0B */ u32 unusedRibbons:4; // Discarded in Gen 4.
// The functionality of this bit changed in FRLG:
// In RS, this bit does nothing, is never set, & is accidentally unset when hatching Eggs.
// In FRLG & Emerald, this controls Mew & Deoxys obedience and whether they can be traded.
// If set, a Pokémon is a fateful encounter in FRLG's summary screen if hatched & for all Pokémon in Gen 4+ summary screens.
// Set for in-game event island legendaries, events distributed after a certain date, & Pokémon from XD: Gale of Darkness.
// Not to be confused with METLOC_FATEFUL_ENCOUNTER.
/* 0x0B */ u32 modernFatefulEncounter:1;
};
// Number of bytes in the largest Pokémon substruct.
// They are assumed to be the same size, and will be padded to
// the largest size by the union.
// By default they are all 12 bytes.
#define NUM_SUBSTRUCT_BYTES (max(sizeof(struct PokemonSubstruct0), \
max(sizeof(struct PokemonSubstruct1), \
max(sizeof(struct PokemonSubstruct2), \
sizeof(struct PokemonSubstruct3)))))
union PokemonSubstruct
{
struct PokemonSubstruct0 type0;
struct PokemonSubstruct1 type1;
struct PokemonSubstruct2 type2;
struct PokemonSubstruct3 type3;
u16 raw[6];
u16 raw[NUM_SUBSTRUCT_BYTES / 2]; // /2 because it's u16, not u8
};
struct BoxPokemon
@@ -103,7 +119,7 @@ struct BoxPokemon
union
{
u32 raw[12];
u32 raw[(NUM_SUBSTRUCT_BYTES * 4) / 4]; // *4 because there are 4 substructs, /4 because it's u32, not u8
union PokemonSubstruct substructs[4];
} secure;
};
@@ -123,19 +139,11 @@ struct Pokemon
u16 spDefense;
};
struct PokemonStorage
{
/*0x0000*/ u8 currentBox;
/*0x0001*/ struct BoxPokemon boxes[TOTAL_BOXES_COUNT][IN_BOX_COUNT];
/*0x8344*/ u8 boxNames[TOTAL_BOXES_COUNT][BOX_NAME_LENGTH + 1];
/*0x83C2*/ u8 boxWallpapers[TOTAL_BOXES_COUNT];
};
struct BattleTowerPokemon
{
/*0x00*/ u16 species;
/*0x02*/ u16 heldItem;
/*0x04*/ u16 moves[4];
/*0x04*/ u16 moves[MAX_MON_MOVES];
/*0x0C*/ u8 level;
/*0x0D*/ u8 ppBonuses;
/*0x0E*/ u8 hpEV;
@@ -154,12 +162,10 @@ struct BattleTowerPokemon
u32 gap:1;
u32 abilityNum:1;
/*0x1C*/ u32 personality;
/*0x20*/ u8 nickname[11];
/*0x20*/ u8 nickname[POKEMON_NAME_LENGTH + 1];
/*0x2B*/ u8 friendship;
};
#define BATTLE_STATS_NO 8
struct BattlePokemon
{
/*0x00*/ u16 species;
@@ -168,7 +174,7 @@ struct BattlePokemon
/*0x06*/ u16 speed;
/*0x08*/ u16 spAttack;
/*0x0A*/ u16 spDefense;
/*0x0C*/ u16 moves[4];
/*0x0C*/ u16 moves[MAX_MON_MOVES];
/*0x14*/ u32 hpIV:5;
/*0x14*/ u32 attackIV:5;
/*0x15*/ u32 defenseIV:5;
@@ -177,12 +183,12 @@ struct BattlePokemon
/*0x17*/ u32 spDefenseIV:5;
/*0x17*/ u32 isEgg:1;
/*0x17*/ u32 abilityNum:1;
/*0x18*/ s8 statStages[BATTLE_STATS_NO];
/*0x18*/ s8 statStages[NUM_BATTLE_STATS];
/*0x20*/ u8 ability;
/*0x21*/ u8 type1;
/*0x22*/ u8 type2;
/*0x23*/ u8 unknown;
/*0x24*/ u8 pp[4];
/*0x24*/ u8 pp[MAX_MON_MOVES];
/*0x28*/ u16 hp;
/*0x2A*/ u8 level;
/*0x2B*/ u8 friendship;
@@ -190,7 +196,7 @@ struct BattlePokemon
/*0x2E*/ u16 item;
/*0x30*/ u8 nickname[POKEMON_NAME_LENGTH + 1];
/*0x3B*/ u8 ppBonuses;
/*0x3C*/ u8 otName[8];
/*0x3C*/ u8 otName[PLAYER_NAME_LENGTH + 1];
/*0x44*/ u32 experience;
/*0x48*/ u32 personality;
/*0x4C*/ u32 status1;
@@ -198,7 +204,7 @@ struct BattlePokemon
/*0x54*/ u32 otId;
};
struct BaseStats
struct SpeciesInfo
{
/* 0x00 */ u8 baseHP;
/* 0x01 */ u8 baseAttack;
@@ -206,8 +212,7 @@ struct BaseStats
/* 0x03 */ u8 baseSpeed;
/* 0x04 */ u8 baseSpAttack;
/* 0x05 */ u8 baseSpDefense;
/* 0x06 */ u8 type1;
/* 0x07 */ u8 type2;
/* 0x06 */ u8 types[2];
/* 0x08 */ u8 catchRate;
/* 0x09 */ u8 expYield;
/* 0x0A */ u16 evYield_HP:2;
@@ -216,14 +221,13 @@ struct BaseStats
/* 0x0A */ u16 evYield_Speed:2;
/* 0x0B */ u16 evYield_SpAttack:2;
/* 0x0B */ u16 evYield_SpDefense:2;
/* 0x0C */ u16 item1;
/* 0x0E */ u16 item2;
/* 0x0C */ u16 itemCommon;
/* 0x0E */ u16 itemRare;
/* 0x10 */ u8 genderRatio;
/* 0x11 */ u8 eggCycles;
/* 0x12 */ u8 friendship;
/* 0x13 */ u8 growthRate;
/* 0x14 */ u8 eggGroup1;
/* 0x15 */ u8 eggGroup2;
/* 0x14 */ u8 eggGroups[2];
/* 0x16 */ u8 abilities[2];
/* 0x18 */ u8 safariZoneFleeRate;
/* 0x19 */ u8 bodyColor : 7;
@@ -243,20 +247,13 @@ struct BattleMove
u8 flags;
};
extern const struct BattleMove gBattleMoves[];
// Battle move flags
#define FLAG_MAKES_CONTACT (1 << 0)
#define FLAG_PROTECT_AFFECTED (1 << 1)
#define FLAG_MAGIC_COAT_AFFECTED (1 << 2)
#define FLAG_SNATCH_AFFECTED (1 << 3)
#define FLAG_MIRROR_MOVE_AFFECTED (1 << 4)
#define FLAG_KINGS_ROCK_AFFECTED (1 << 5)
#define SPINDA_SPOT_WIDTH 16
#define SPINDA_SPOT_HEIGHT 16
struct SpindaSpot
{
u8 x, y;
u16 image[16];
u16 image[SPINDA_SPOT_HEIGHT];
};
struct __attribute__((packed)) LevelUpMove
@@ -265,46 +262,6 @@ struct __attribute__((packed)) LevelUpMove
u16 level:7;
};
enum
{
GROWTH_MEDIUM_FAST,
GROWTH_ERRATIC,
GROWTH_FLUCTUATING,
GROWTH_MEDIUM_SLOW,
GROWTH_FAST,
GROWTH_SLOW
};
enum
{
BODY_COLOR_RED,
BODY_COLOR_BLUE,
BODY_COLOR_YELLOW,
BODY_COLOR_GREEN,
BODY_COLOR_BLACK,
BODY_COLOR_BROWN,
BODY_COLOR_PURPLE,
BODY_COLOR_GRAY,
BODY_COLOR_WHITE,
BODY_COLOR_PINK
};
#define EVO_FRIENDSHIP 0x0001 // Pokémon levels up with friendship ≥ 220
#define EVO_FRIENDSHIP_DAY 0x0002 // Pokémon levels up during the day with friendship ≥ 220
#define EVO_FRIENDSHIP_NIGHT 0x0003 // Pokémon levels up at night with friendship ≥ 220
#define EVO_LEVEL 0x0004 // Pokémon reaches the specified level
#define EVO_TRADE 0x0005 // Pokémon is traded
#define EVO_TRADE_ITEM 0x0006 // Pokémon is traded while it's holding the specified item
#define EVO_ITEM 0x0007 // specified item is used on Pokémon
#define EVO_LEVEL_ATK_GT_DEF 0x0008 // Pokémon reaches the specified level with attack > defense
#define EVO_LEVEL_ATK_EQ_DEF 0x0009 // Pokémon reaches the specified level with attack = defense
#define EVO_LEVEL_ATK_LT_DEF 0x000a // Pokémon reaches the specified level with attack < defense
#define EVO_LEVEL_SILCOON 0x000b // Pokémon reaches the specified level with a Silcoon personality value
#define EVO_LEVEL_CASCOON 0x000c // Pokémon reaches the specified level with a Cascoon personality value
#define EVO_LEVEL_NINJASK 0x000d // Pokémon reaches the specified level (special value for Ninjask)
#define EVO_LEVEL_SHEDINJA 0x000e // Pokémon reaches the specified level (special value for Shedinja)
#define EVO_BEAUTY 0x000f // Pokémon levels up with beauty ≥ specified value
struct Evolution
{
u16 method;
@@ -312,8 +269,6 @@ struct Evolution
u16 targetSpecies;
};
#define EVOS_PER_MON 5
#define NUM_UNOWN_FORMS 28
#define GET_UNOWN_LETTER(personality) (( \
@@ -323,11 +278,14 @@ struct Evolution
| (((personality) & 0x00000003) >> 0) \
) % NUM_UNOWN_FORMS)
#define GET_SHINY_VALUE(otId, personality) (HIHALF(otId) ^ LOHALF(otId) ^ HIHALF(personality) ^ LOHALF(personality))
extern const struct BattleMove gBattleMoves[];
extern u8 gPlayerPartyCount;
extern struct Pokemon gPlayerParty[PARTY_SIZE];
extern u8 gEnemyPartyCount;
extern struct Pokemon gEnemyParty[PARTY_SIZE];
extern const struct BaseStats gBaseStats[];
extern const struct SpeciesInfo gSpeciesInfo[];
extern const u8 *const gItemEffectTable[];
extern const u8 gStatStageRatios[][2];
extern struct SpriteTemplate gMultiuseSpriteTemplate;
@@ -459,11 +417,11 @@ bool8 ShouldIgnoreDeoxysForm(u8 caseId, u8 battlerId);
void SetDeoxysStats(void);
u16 GetUnionRoomTrainerPic(void);
u16 GetUnionRoomTrainerClass(void);
void CreateEventLegalEnemyMon(void);
void CreateEnemyEventMon(void);
void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality);
bool8 CheckBattleTypeGhost(struct Pokemon *mon, u8 bank);
struct OakSpeechNidoranFStruct *OakSpeechNidoranFSetup(u8 battlePosition, bool8 enable);
void OakSpeechNidoranFFreeResources(void);
void *OakSpeechNidoranFGetBuffer(u8 bufferId);
struct MonSpritesGfxManager *CreateMonSpritesGfxManager(u8 battlePosition, u8 mode);
void DestroyMonSpritesGfxManager(void);
u8 *MonSpritesGfxManager_GetSpritePtr(u8 bufferId);
#endif // GUARD_POKEMON_H
+10
View File
@@ -2,11 +2,13 @@
#define GUARD_POKEMON_STORAGE_SYSTEM_H
#include "global.h"
#include "pokemon.h"
#define TOTAL_BOXES_COUNT 14
#define IN_BOX_ROWS 5 // Number of rows, 6 Pokémon per row
#define IN_BOX_COLUMNS 6 // Number of columns, 5 Pokémon per column
#define IN_BOX_COUNT (IN_BOX_ROWS * IN_BOX_COLUMNS)
#define BOX_NAME_LENGTH 8
/*
COLUMNS
@@ -39,6 +41,14 @@ enum
};
#define MAX_DEFAULT_WALLPAPER WALLPAPER_SAVANNA
struct PokemonStorage
{
/*0x0000*/ u8 currentBox;
/*0x0001*/ struct BoxPokemon boxes[TOTAL_BOXES_COUNT][IN_BOX_COUNT];
/*0x8344*/ u8 boxNames[TOTAL_BOXES_COUNT][BOX_NAME_LENGTH + 1];
/*0x83C2*/ u8 boxWallpapers[TOTAL_BOXES_COUNT];
};
u8 *GetBoxNamePtr(u8 boxNumber);
struct BoxPokemon *GetBoxedMonPtr(u8 boxId, u8 monPosition);
void SetBoxMonNickAt(u8 boxId, u8 monPosition, const u8 *newNick);