Merge branch 'master' of https://github.com/DizzyEggg/pokeemerald into item_expansion

This commit is contained in:
DizzyEggg
2020-04-15 13:28:10 +02:00
377 changed files with 8941 additions and 8689 deletions

View File

@@ -67,6 +67,7 @@
#define FRONTIER_DOUBLES_PARTY_SIZE 4
#define FRONTIER_MULTI_PARTY_SIZE 2
#define MAX_FRONTIER_PARTY_SIZE FRONTIER_DOUBLES_PARTY_SIZE
#define UNION_ROOM_PARTY_SIZE 2
// string lengths
#define ITEM_NAME_LENGTH 14

View File

@@ -524,33 +524,64 @@
#define METATILE_SecretBase_MudBall 0x228
#define METATILE_SecretBase_Fence_Horizontal 0x22C
#define METATILE_SecretBase_Fence_Vertical 0x233
#define METATILE_SecretBase_Board_Top 0x234
#define METATILE_SecretBase_Board_Bottom 0x23C
#define METATILE_SecretBase_SolidBoard_Top 0x234
#define METATILE_SecretBase_SolidBoard_Bottom 0x23C
#define METATILE_SecretBase_RedTent_TopLeft 0x230
#define METATILE_SecretBase_RedTent_TopMid 0x231
#define METATILE_SecretBase_RedTent_TopRight 0x232
#define METATILE_SecretBase_RedTent_MidLeft 0x238
#define METATILE_SecretBase_RedTent_DoorTop 0x239
#define METATILE_SecretBase_RedTent_MidRight 0x23A
#define METATILE_SecretBase_RedTent_BottomLeft 0x240
#define METATILE_SecretBase_RedTent_Door 0x241
#define METATILE_SecretBase_RedTent_BottomRight 0x23B
#define METATILE_SecretBase_BlueTent_TopLeft 0x248
#define METATILE_SecretBase_BlueTent_TopMid 0x249
#define METATILE_SecretBase_BlueTent_TopRight 0x268
#define METATILE_SecretBase_BlueTent_MidLeft 0x250
#define METATILE_SecretBase_BlueTent_DoorTop 0x251
#define METATILE_SecretBase_BlueTent_MidRight 0x270
#define METATILE_SecretBase_BlueTent_BottomLeft 0x258
#define METATILE_SecretBase_BlueTent_Door 0x259
#define METATILE_SecretBase_Slide_Stairs 0x23D
#define METATILE_SecretBase_Slide 0x23E
#define METATILE_SecretBase_Stand_LeftCorner 0x26A
#define METATILE_SecretBase_Stand_RightCorner 0x26D
#define METATILE_SecretBase_BlueTent_BottomRight 0x269
#define METATILE_SecretBase_Slide_TopLeft 0x235
#define METATILE_SecretBase_Slide_TopRight 0x236
#define METATILE_SecretBase_Slide_StairLanding 0x23D
#define METATILE_SecretBase_Slide_SlideTop 0x23E
#define METATILE_SecretBase_Slide_Stairs 0x263
#define METATILE_SecretBase_Slide_SlideBottom 0x264
#define METATILE_SecretBase_Slide_MatLeft 0x26F
#define METATILE_SecretBase_Slide_MatRight 0x277
#define METATILE_SecretBase_Stand_CornerLeft 0x26A
#define METATILE_SecretBase_Stand_MidLeft 0x26B
#define METATILE_SecretBase_Stand_MidRight 0x26C
#define METATILE_SecretBase_Stand_CornerRight 0x26D
#define METATILE_SecretBase_Stand_StairsLeft 0x272
#define METATILE_SecretBase_Stand_BaseLeft 0x273
#define METATILE_SecretBase_Stand_BaseRight 0x274
#define METATILE_SecretBase_Stand_StairsRight 0x275
#define METATILE_SecretBase_BreakableDoor_TopClosed 0x237
#define METATILE_SecretBase_BreakableDoor_BottomClosed 0x23F
#define METATILE_SecretBase_BreakableDoor_TopOpen 0x26E
#define METATILE_SecretBase_BreakableDoor_BottomOpen 0x276
#define METATILE_SecretBase_NoteMat_C 0x278
#define METATILE_SecretBase_GlitterMat 0x260
#define METATILE_SecretBase_JumpMat 0x261
#define METATILE_SecretBase_SpinMat 0x262
#define METATILE_SecretBase_NoteMat_C_Low 0x278
#define METATILE_SecretBase_NoteMat_D 0x279
#define METATILE_SecretBase_NoteMat_E 0x27A
#define METATILE_SecretBase_NoteMat_F 0x27B
#define METATILE_SecretBase_NoteMat_G 0x27C
#define METATILE_SecretBase_NoteMat_A 0x27D
#define METATILE_SecretBase_NoteMat_B 0x27E
#define METATILE_SecretBase_NoteMat_C_Sharp 0x2B3
#define METATILE_SecretBase_NoteMat_C_High 0x2B3
#define METATILE_SecretBase_Tire_TopLeft 0x280
#define METATILE_SecretBase_Tire_TopRight 0x281
#define METATILE_SecretBase_Tire_BottomLeft 0x288
#define METATILE_SecretBase_Tire_BottomRight 0x289
#define METATILE_SecretBase_GlassOrnament_Top 0x282
#define METATILE_SecretBase_GlassOrnament_Base1 0x28A
#define METATILE_SecretBase_GlassOrnament_TopWall 0x283
#define METATILE_SecretBase_GlassOrnament_Base2 0x28B
#define METATILE_SecretBase_SandOrnament_BrokenTop 0x284
#define METATILE_SecretBase_SandOrnament_BrokenBase 0x28C
@@ -622,23 +653,41 @@
#define METATILE_SecretBase_RaggedChair 0x2C2
#define METATILE_SecretBase_BrickChair 0x2C8
#define METATILE_SecretBase_CampChair 0x2C9
#define METATILE_SecretBase_HardChair 0x2Ca
#define METATILE_SecretBase_HardChair 0x2CA
#define METATILE_SecretBase_RedPlant_Top 0x2D0
#define METATILE_SecretBase_RedPlant_Base1 0x2D8
#define METATILE_SecretBase_RedPlant_TopWall 0x2D1
#define METATILE_SecretBase_RedPlant_Base2 0x2D9
#define METATILE_SecretBase_TropicalPlant_Top 0x2D2
#define METATILE_SecretBase_TropicalPlant_Base1 0x2DA
#define METATILE_SecretBase_TropicalPlant_TopWall 0x2D3
#define METATILE_SecretBase_TropicalPlant_Base2 0x2DB
#define METATILE_SecretBase_PrettyFlower_Base1 0x2DC
#define METATILE_SecretBase_PrettyFlower_Base2 0x2DD
#define METATILE_SecretBase_ColorfulFlowers_BaseLeft1 0x2E8
#define METATILE_SecretBase_ColorfulFlowers_BaseRight1 0x2E9
#define METATILE_SecretBase_ColorfulFlowers_BaseLeft2 0x2EA
#define METATILE_SecretBase_ColorfulFlowers_BaseRight2 0x2EB
#define METATILE_SecretBase_PrettyFlowers_Top 0x2D4
#define METATILE_SecretBase_PrettyFlowers_Base1 0x2DC
#define METATILE_SecretBase_PrettyFlowers_TopWall 0x2D5
#define METATILE_SecretBase_PrettyFlowers_Base2 0x2DD
#define METATILE_SecretBase_ColorfulPlant_TopLeft 0x2E0
#define METATILE_SecretBase_ColorfulPlant_TopRight 0x2E2
#define METATILE_SecretBase_ColorfulPlant_BaseLeft1 0x2E8
#define METATILE_SecretBase_ColorfulPlant_BaseRight1 0x2E9
#define METATILE_SecretBase_ColorfulPlant_TopLeftWall 0x2E1
#define METATILE_SecretBase_ColorfulPlant_TopRightWall 0x2E3
#define METATILE_SecretBase_ColorfulPlant_BaseLeft2 0x2EA
#define METATILE_SecretBase_ColorfulPlant_BaseRight2 0x2EB
#define METATILE_SecretBase_BigPlant_TopLeft 0x2E4
#define METATILE_SecretBase_BigPlant_TopRight 0x2E6
#define METATILE_SecretBase_BigPlant_BaseLeft1 0x2EC
#define METATILE_SecretBase_BigPlant_BaseRight1 0x2ED
#define METATILE_SecretBase_BigPlant_TopLeftWall 0x2E5
#define METATILE_SecretBase_BigPlant_TopRightWall 0x2E6
#define METATILE_SecretBase_BigPlant_BaseLeft2 0x2EE
#define METATILE_SecretBase_BigPlant_BaseRight2 0x2EF
#define METATILE_SecretBase_GorgeousPlant_TopLeft 0x2F0
#define METATILE_SecretBase_GorgeousPlant_TopRight 0x2F2
#define METATILE_SecretBase_GorgeousPlant_BaseLeft1 0x2F8
#define METATILE_SecretBase_GorgeousPlant_BaseRight1 0x2F9
#define METATILE_SecretBase_GorgeousPlant_TopLeftWall 0x2F1
#define METATILE_SecretBase_GorgeousPlant_TopRightWall 0x2F3
#define METATILE_SecretBase_GorgeousPlant_BaseLeft2 0x2FA
#define METATILE_SecretBase_GorgeousPlant_BaseRight2 0x2FB
#define METATILE_SecretBase_TV 0x2F4
@@ -659,12 +708,79 @@
#define METATILE_SecretBase_RedPoster 0x332
#define METATILE_SecretBase_BluePoster 0x333
#define METATILE_SecretBase_CutePoster 0x334
#define METATILE_SecretBase_SilverShield_Top 0x2D6
#define METATILE_SecretBase_SilverShield_Base1 0x2DE
#define METATILE_SecretBase_SilverShield_TopWall 0x2D7
#define METATILE_SecretBase_SilverShield_Base2 0x2DF
#define METATILE_SecretBase_GoldShield_Top 0x32E
#define METATILE_SecretBase_GoldShield_Base1 0x336
#define METATILE_SecretBase_GoldShield_TopWall 0x32F
#define METATILE_SecretBase_GoldShield_Base2 0x337
#define METATILE_SecretBase_RedBalloon 0x338
#define METATILE_SecretBase_BlueBalloon 0x33c
#define METATILE_SecretBase_BlueBalloon 0x33C
#define METATILE_SecretBase_YellowBalloon 0x340
#define METATILE_SecretBase_SurfMat_TopLeft 0x242
#define METATILE_SecretBase_SurfMat_TopMid 0x243
#define METATILE_SecretBase_SurfMat_TopRight 0x244
#define METATILE_SecretBase_SurfMat_MidLeft 0x24A
#define METATILE_SecretBase_SurfMat_Center 0x24B
#define METATILE_SecretBase_SurfMat_MidRight 0x24C
#define METATILE_SecretBase_SurfMat_BottomLeft 0x252
#define METATILE_SecretBase_SurfMat_BottomMid 0x253
#define METATILE_SecretBase_SurfMat_BottomRight 0x254
#define METATILE_SecretBase_ThunderMat_TopLeft 0x245
#define METATILE_SecretBase_ThunderMat_TopMid 0x246
#define METATILE_SecretBase_ThunderMat_TopRight 0x247
#define METATILE_SecretBase_ThunderMat_MidLeft 0x24D
#define METATILE_SecretBase_ThunderMat_Center 0x24E
#define METATILE_SecretBase_ThunderMat_MidRight 0x24F
#define METATILE_SecretBase_ThunderMat_BottomLeft 0x255
#define METATILE_SecretBase_ThunderMat_BottomMid 0x256
#define METATILE_SecretBase_ThunderMat_BottomRight 0x257
#define METATILE_SecretBase_FireBlastMat_TopLeft 0x25A
#define METATILE_SecretBase_FireBlastMat_TopMid 0x25B
#define METATILE_SecretBase_FireBlastMat_TopRight 0x25C
#define METATILE_SecretBase_FireBlastMat_MidLeft 0x25D
#define METATILE_SecretBase_FireBlastMat_Center 0x25E
#define METATILE_SecretBase_FireBlastMat_MidRight 0x25F
#define METATILE_SecretBase_FireBlastMat_BottomLeft 0x265
#define METATILE_SecretBase_FireBlastMat_BottomMid 0x266
#define METATILE_SecretBase_FireBlastMat_BottomRight 0x267
#define METATILE_SecretBase_PowderSnowMat_TopLeft 0x300
#define METATILE_SecretBase_PowderSnowMat_TopMid 0x301
#define METATILE_SecretBase_PowderSnowMat_TopRight 0x302
#define METATILE_SecretBase_PowderSnowMat_MidLeft 0x308
#define METATILE_SecretBase_PowderSnowMat_Center 0x309
#define METATILE_SecretBase_PowderSnowMat_MidRight 0x30A
#define METATILE_SecretBase_PowderSnowMat_BottomLeft 0x310
#define METATILE_SecretBase_PowderSnowMat_BottomMid 0x311
#define METATILE_SecretBase_PowderSnowMat_BottomRight 0x312
#define METATILE_SecretBase_AttractMat_TopLeft 0x303
#define METATILE_SecretBase_AttractMat_TopMid 0x304
#define METATILE_SecretBase_AttractMat_TopRight 0x305
#define METATILE_SecretBase_AttractMat_MidLeft 0x30B
#define METATILE_SecretBase_AttractMat_Center 0x30C
#define METATILE_SecretBase_AttractMat_MidRight 0x30D
#define METATILE_SecretBase_AttractMat_BottomLeft 0x313
#define METATILE_SecretBase_AttractMat_BottomMid 0x314
#define METATILE_SecretBase_AttractMat_BottomRight 0x315
#define METATILE_SecretBase_FissureMat_TopLeft 0x306
#define METATILE_SecretBase_FissureMat_TopMid 0x307
#define METATILE_SecretBase_FissureMat_TopRight 0x318
#define METATILE_SecretBase_FissureMat_MidLeft 0x30E
#define METATILE_SecretBase_FissureMat_Center 0x30F
#define METATILE_SecretBase_FissureMat_MidRight 0x320
#define METATILE_SecretBase_FissureMat_BottomLeft 0x316
#define METATILE_SecretBase_FissureMat_BottomMid 0x317
#define METATILE_SecretBase_FissureMat_BottomRight 0x328
#define METATILE_SecretBase_SpikesMat_TopLeft 0x319
#define METATILE_SecretBase_SpikesMat_TopMid 0x31A
#define METATILE_SecretBase_SpikesMat_TopRight 0x31B
#define METATILE_SecretBase_SpikesMat_MidLeft 0x321
#define METATILE_SecretBase_SpikesMat_Center 0x322
#define METATILE_SecretBase_SpikesMat_MidRight 0x323
#define METATILE_SecretBase_SpikesMat_BottomLeft 0x329
#define METATILE_SecretBase_SpikesMat_BottomMid 0x32A
#define METATILE_SecretBase_SpikesMat_BottomRight 0x32B
#endif // GUARD_METATILE_LABELS_H

View File

@@ -175,7 +175,7 @@
#define MAPSEC_SEVII_ISLE_22 0xAB
#define MAPSEC_SEVII_ISLE_23 0xAC
#define MAPSEC_SEVII_ISLE_24 0xAD
#define MAPSEC_NAVEL_ROCK 0xAE
#define MAPSEC_NAVEL_ROCK_FRLG 0xAE
#define MAPSEC_MT_EMBER 0xAF
#define MAPSEC_BERRY_FOREST 0xB0
#define MAPSEC_ICEFALL_CAVE 0xB1
@@ -184,11 +184,11 @@
#define MAPSEC_DOTTED_HOLE 0xB4
#define MAPSEC_LOST_CAVE 0xB5
#define MAPSEC_PATTERN_BUSH 0xB6
#define MAPSEC_ALTERING_CAVE 0xB7
#define MAPSEC_ALTERING_CAVE_FRLG 0xB7
#define MAPSEC_TANOBY_CHAMBERS 0xB8
#define MAPSEC_THREE_ISLE_PATH 0xB9
#define MAPSEC_TANOBY_KEY 0xBA
#define MAPSEC_BIRTH_ISLAND 0xBB
#define MAPSEC_BIRTH_ISLAND_FRLG 0xBB
#define MAPSEC_MONEAN_CHAMBER 0xBC
#define MAPSEC_LIPTOO_CHAMBER 0xBD
#define MAPSEC_WEEPTH_CHAMBER 0xBE
@@ -201,7 +201,7 @@
#define MAPSEC_AQUA_HIDEOUT 0xC5
#define MAPSEC_MAGMA_HIDEOUT 0xC6
#define MAPSEC_MIRAGE_TOWER 0xC7
#define MAPSEC_BIRTH_ISLAND_2 0xC8
#define MAPSEC_BIRTH_ISLAND 0xC8
#define MAPSEC_FARAWAY_ISLAND 0xC9
#define MAPSEC_ARTISAN_CAVE 0xCA
#define MAPSEC_MARINE_CAVE 0xCB
@@ -211,8 +211,8 @@
#define MAPSEC_UNDERWATER_UNK1 0xCF
#define MAPSEC_UNDERWATER_129 0xD0
#define MAPSEC_DESERT_UNDERPASS 0xD1
#define MAPSEC_ALTERING_CAVE_2 0xD2
#define MAPSEC_NAVEL_ROCK2 0xD3
#define MAPSEC_ALTERING_CAVE 0xD2
#define MAPSEC_NAVEL_ROCK 0xD3
#define MAPSEC_TRAINER_HILL 0xD4
#define MAPSEC_NONE 0xD5

File diff suppressed because it is too large Load Diff

View File

@@ -39,28 +39,31 @@
// These are the "abnormal weather events" that are used
// to find Kyogre and Groudon.
#define ABNORMAL_WEATHER_COUNT_PER_LEGENDARY 8
#define ABNORMAL_WEATHER_GROUDON_LOCATIONS_START 1
#define ABNORMAL_WEATHER_KYOGRE_LOCATIONS_START 1 + ABNORMAL_WEATHER_COUNT_PER_LEGENDARY
#define ABNORMAL_WEATHER_LOCATIONS (MARINE_CAVE_LOCATIONS + TERRA_CAVE_LOCATIONS)
#define ABNORMAL_WEATHER_NONE 0
#define ABNORMAL_WEATHER_NONE 0
// Groudon locations
#define ABNORMAL_WEATHER_ROUTE_114_NORTH 1
#define ABNORMAL_WEATHER_ROUTE_114_SOUTH 2
#define ABNORMAL_WEATHER_ROUTE_115_WEST 3
#define ABNORMAL_WEATHER_ROUTE_115_EAST 4
#define ABNORMAL_WEATHER_ROUTE_116_NORTH 5
#define ABNORMAL_WEATHER_ROUTE_116_SOUTH 6
#define ABNORMAL_WEATHER_ROUTE_118_EAST 7
#define ABNORMAL_WEATHER_ROUTE_118_WEST 8
// Kyogre locations
#define ABNORMAL_WEATHER_ROUTE_105_NORTH 9
#define ABNORMAL_WEATHER_ROUTE_105_SOUTH 10
#define ABNORMAL_WEATHER_ROUTE_125_WEST 11
#define ABNORMAL_WEATHER_ROUTE_125_EAST 12
#define ABNORMAL_WEATHER_ROUTE_127_NORTH 13
#define ABNORMAL_WEATHER_ROUTE_127_SOUTH 14
#define ABNORMAL_WEATHER_ROUTE_129_WEST 15
#define ABNORMAL_WEATHER_ROUTE_129_EAST 16
// Groudon/Terra Cave locations
#define TERRA_CAVE_LOCATIONS_START 1
#define ABNORMAL_WEATHER_ROUTE_114_NORTH (TERRA_CAVE_LOCATIONS_START + 0)
#define ABNORMAL_WEATHER_ROUTE_114_SOUTH (TERRA_CAVE_LOCATIONS_START + 1)
#define ABNORMAL_WEATHER_ROUTE_115_WEST (TERRA_CAVE_LOCATIONS_START + 2)
#define ABNORMAL_WEATHER_ROUTE_115_EAST (TERRA_CAVE_LOCATIONS_START + 3)
#define ABNORMAL_WEATHER_ROUTE_116_NORTH (TERRA_CAVE_LOCATIONS_START + 4)
#define ABNORMAL_WEATHER_ROUTE_116_SOUTH (TERRA_CAVE_LOCATIONS_START + 5)
#define ABNORMAL_WEATHER_ROUTE_118_EAST (TERRA_CAVE_LOCATIONS_START + 6)
#define ABNORMAL_WEATHER_ROUTE_118_WEST (TERRA_CAVE_LOCATIONS_START + 7)
#define TERRA_CAVE_LOCATIONS 8
// Kyogre/Marina Cave locations
#define MARINE_CAVE_LOCATIONS_START (TERRA_CAVE_LOCATIONS_START + TERRA_CAVE_LOCATIONS)
#define ABNORMAL_WEATHER_ROUTE_105_NORTH (MARINE_CAVE_LOCATIONS_START + 0)
#define ABNORMAL_WEATHER_ROUTE_105_SOUTH (MARINE_CAVE_LOCATIONS_START + 1)
#define ABNORMAL_WEATHER_ROUTE_125_WEST (MARINE_CAVE_LOCATIONS_START + 2)
#define ABNORMAL_WEATHER_ROUTE_125_EAST (MARINE_CAVE_LOCATIONS_START + 3)
#define ABNORMAL_WEATHER_ROUTE_127_NORTH (MARINE_CAVE_LOCATIONS_START + 4)
#define ABNORMAL_WEATHER_ROUTE_127_SOUTH (MARINE_CAVE_LOCATIONS_START + 5)
#define ABNORMAL_WEATHER_ROUTE_129_WEST (MARINE_CAVE_LOCATIONS_START + 6)
#define ABNORMAL_WEATHER_ROUTE_129_EAST (MARINE_CAVE_LOCATIONS_START + 7)
#define MARINE_CAVE_LOCATIONS 8
#endif // GUARD_CONSTANTS_WEATHER_H

View File

@@ -52,14 +52,6 @@ struct Decoration
const u16 *tiles;
};
struct DecorationPCContext
{
u8 *items;
u8 *pos;
u8 size;
u8 isPlayerRoom;
};
extern const struct Decoration gDecorations[];
extern EWRAM_DATA u8 *gCurDecorationItems;
extern EWRAM_DATA u8 gCurDecorationIndex;

View File

@@ -12,10 +12,10 @@ extern struct DecorationInventory gDecorationInventories[];
void SetDecorationInventoriesPointers(void);
void ClearDecorationInventories(void);
s8 GetFirstEmptyDecorSlot(u8 category);
u8 CheckHasDecoration(u8);
u8 DecorationAdd(u8);
u8 DecorationCheckSpace(u8);
s8 DecorationRemove(u8);
u8 CheckHasDecoration(u8 decor);
u8 DecorationAdd(u8 decor);
u8 DecorationCheckSpace(u8 decor);
s8 DecorationRemove(u8 decor);
void CondenseDecorationsInCategory(u8 category);
u8 GetNumOwnedDecorationsInCategory(u8 category);
u8 GetNumOwnedDecorations(void);

26
include/digit_obj_util.h Normal file
View File

@@ -0,0 +1,26 @@
#ifndef GUARD_DIGIT_OBJ_UTIL_H
#define GUARD_DIGIT_OBJ_UTIL_H
struct DigitObjUtilTemplate
{
u8 strConvMode:2;
u8 shape:2;
u8 size:2;
u8 priority:2;
u8 oamCount;
u8 xDelta;
s16 x;
s16 y;
const struct SpriteSheet *spriteSheet;
const struct SpritePalette *spritePal;
};
bool32 DigitObjUtil_Init(u32 count);
void DigitObjUtil_Free(void);
bool32 DigitObjUtil_CreatePrinter(u32 id, s32 num, const struct DigitObjUtilTemplate *template);
void DigitObjUtil_PrintNumOn(u32 id, s32 arg1);
void DigitObjUtil_DeletePrinter(u32 id);
void DigitObjUtil_HideOrShow(u32 id, bool32 arg1);
u8 GetTilesPerImage(u32 shape, u32 size);
#endif // GUARD_DIGIT_OBJ_UTIL_H

View File

@@ -48,15 +48,15 @@ bool8 PartyHasMonWithSurf(void);
bool8 IsPlayerFacingSurfableFishableWater(void);
bool8 IsPlayerSurfingNorth(void);
void sub_808C228(u8 direction);
u8 sub_808BCD0(void);
u8 GetPlayerAvatarFlags(void);
void sub_808B578(void);
u8 GetFRLGAvatarGraphicsIdByGender(u8);
u8 GetRSAvatarGraphicsIdByGender(u8);
void sub_808B980(u8 direction);
void sub_808B9BC(u8 direction);
void sub_808B9A4(u8 direction);
void sub_808C1B4(u8 direction);
void sub_808B9D4(u8 direction);
void PlayerWheelieInPlace(u8 direction);
void PlayerWheelieMove(u8 direction);
void PlayerPopWheelieWhileMoving(u8 direction);
void PlayerUseAcroBikeOnBumpySlope(u8 direction);
void PlayerEndWheelieWhileMoving(u8 direction);
void sub_808D194(void);
void sub_808D1C8(void);
bool32 sub_808D1B4(void);

View File

@@ -304,7 +304,7 @@ enum
struct PlayerAvatar
{
/*0x00*/ u8 flags;
/*0x01*/ u8 unk1; // used to be named bike, but its definitely not that. seems to be some transition flags
/*0x01*/ u8 transitionFlags; // used to be named bike, but its definitely not that. seems to be some transition flags
/*0x02*/ u8 runningState; // this is a static running state. 00 is not moving, 01 is turn direction, 02 is moving.
/*0x03*/ u8 tileTransitionState; // this is a transition running state: 00 is not moving, 01 is transition between tiles, 02 means you are on the frame in which you have centered on a tile but are about to keep moving, even if changing directions. 2 is also used for a ledge hop, since you are transitioning.
/*0x04*/ u8 spriteId;

View File

@@ -465,7 +465,7 @@ struct SaveBlock2
/*0x90*/ u8 filler_90[0x8];
/*0x98*/ struct Time localTimeOffset;
/*0xA0*/ struct Time lastBerryTreeUpdate;
/*0xA8*/ u32 field_A8; // Written to, but never read.
/*0xA8*/ u32 gcnLinkFlags; // Read by Pokemon Colosseum/XD
/*0xAC*/ u32 encryptionKey;
/*0xB0*/ struct PlayersApprentice playerApprentice;
/*0xDC*/ struct Apprentice apprentices[APPRENTICE_COUNT];
@@ -637,7 +637,7 @@ struct MauvilleManHipster
struct MauvilleOldManTrader
{
u8 id;
u8 decorIds[NUM_TRADER_ITEMS];
u8 decorations[NUM_TRADER_ITEMS];
u8 playerNames[NUM_TRADER_ITEMS][11];
u8 alreadyTraded;
u8 language[NUM_TRADER_ITEMS];
@@ -928,16 +928,16 @@ struct SaveBlock1
/*0x159C*/ u32 gameStats[NUM_GAME_STATS];
/*0x169C*/ struct BerryTree berryTrees[BERRY_TREES_COUNT];
/*0x1A9C*/ struct SecretBase secretBases[SECRET_BASES_COUNT];
/*0x271C*/ u8 playerRoomDecor[DECOR_MAX_PLAYERS_HOUSE];
/*0x2728*/ u8 playerRoomDecorPos[DECOR_MAX_PLAYERS_HOUSE];
/*0x2734*/ u8 decorDesk[10];
/*0x273E*/ u8 decorChair[10];
/*0x2748*/ u8 decorPlant[10];
/*0x2752*/ u8 decorOrnament[30];
/*0x2770*/ u8 decorMat[30];
/*0x278E*/ u8 decorPoster[10];
/*0x2798*/ u8 decorDoll[40];
/*0x27C0*/ u8 decorCushion[10];
/*0x271C*/ u8 playerRoomDecorations[DECOR_MAX_PLAYERS_HOUSE];
/*0x2728*/ u8 playerRoomDecorationPositions[DECOR_MAX_PLAYERS_HOUSE];
/*0x2734*/ u8 decorationDesks[10];
/*0x273E*/ u8 decorationChairs[10];
/*0x2748*/ u8 decorationPlants[10];
/*0x2752*/ u8 decorationOrnaments[30];
/*0x2770*/ u8 decorationMats[30];
/*0x278E*/ u8 decorationPosters[10];
/*0x2798*/ u8 decorationDolls[40];
/*0x27C0*/ u8 decorationCushions[10];
/*0x27CA*/ u8 padding_27CA[2];
/*0x27CC*/ TVShow tvShows[TV_SHOWS_COUNT];
/*0x2B50*/ PokeNews pokeNews[POKE_NEWS_COUNT];

View File

@@ -3312,25 +3312,24 @@ extern const u32 gBattleTerrainPalette_StadiumDrake[];
extern const u32 gBattleTerrainPalette_StadiumWallace[];
// pokedex
extern const u32 gPokedexMenu2_Gfx[];
extern const u16 gPokedexText_Pal[];
extern const u32 gPokedexInterface_Gfx[];
extern const u16 gPokedexBgHoenn_Pal[];
extern const u32 gPokedexMenu_Gfx[];
extern const u8 gPokedexTilemap_Main[];
extern const u8 gPokedexTilemap_MainUnderlay[];
extern const u8 gPokedexTilemap_StartMenu1[];
extern const u8 gPokedexTilemap_StartMenu2[];
extern const u16 gPokedexHoennBg_Pal[];
extern const u16 gPokedexText_Pal[];
extern const u16 gPokedexNationalBg_Pal[];
extern const u8 gPokedexTilemap_DescriptionScreen[];
extern const u8 gPokedexTilemap_CryScreen[];
extern const u8 gPokedexTilemap_SizeScreen[];
extern const u8 gPokedexTilemap_ScreenSelectBar1[];
extern const u8 gPokedexTilemap_ScreenSelectBar2[];
extern const u16 gPokedexCaughtScreenFade_Pal[];
extern const u8 gPokedexList_Tilemap[];
extern const u8 gPokedexListUnderlay_Tilemap[];
extern const u8 gPokedexStartMenuMain_Tilemap[];
extern const u8 gPokedexStartMenuSearchResults_Tilemap[];
extern const u16 gPokedexSearchResults_Pal[];
extern const u16 gPokedexBgNational_Pal[];
extern const u8 gPokedexInfoScreen_Tilemap[];
extern const u8 gPokedexCryScreen_Tilemap[];
extern const u8 gPokedexSizeScreen_Tilemap[];
extern const u8 gPokedexScreenSelectBarMain_Tilemap[];
extern const u8 gPokedexScreenSelectBarSubmenu_Tilemap[];
extern const u16 gPokedexCaughtScreen_Pal[];
extern const u32 gPokedexSearchMenu_Gfx[];
extern const u32 gPokedexSearch2_Tilemap[];
extern const u32 gPokedexSearch1_Tilemap[];
extern const u32 gPokedexSearchMenuHoenn_Tilemap[];
extern const u32 gPokedexSearchMenuNational_Tilemap[];
extern const u16 gPokedexSearchMenu_Pal[];
// berry tag screen

View File

@@ -0,0 +1,7 @@
#ifndef GUARD_MINIGAME_COUNTDOWN_H
#define GUARD_MINIGAME_COUNTDOWN_H
void StartMinigameCountdown(u16 tilesTag, u16 palTag, s16 x, s16 y, u8 subpriority);
bool32 IsMinigameCountdownRunning(void);
#endif //GUARD_MINIGAME_COUNTDOWN_H

View File

@@ -24,8 +24,8 @@ extern struct PartyMenu gPartyMenu;
extern bool8 gPartyMenuUseExitCallback;
extern u8 gSelectedMonPartyId;
extern MainCallback gPostMenuFieldCallback;
extern u8 gSelectedOrderFromParty[4];
extern u8 gBattlePartyCurrentOrder[3];
extern u8 gSelectedOrderFromParty[MAX_FRONTIER_PARTY_SIZE];
extern u8 gBattlePartyCurrentOrder[PARTY_SIZE / 2];
extern void (*gItemUseCB)(u8, TaskFunc);

View File

@@ -2,11 +2,7 @@
#define GUARD_POKEDEX_H
extern u8 gUnusedPokedexU8;
extern void (*gUnknown_030060B4)(void);
#define KANTO_DEX_COUNT 151
#define HOENN_DEX_COUNT 202
#define NATIONAL_DEX_COUNT 386
extern void (*gPokedexVBlankCB)(void);
enum
{
@@ -39,12 +35,12 @@ void ResetPokedex(void);
u16 GetPokedexHeightWeight(u16 dexNum, u8 data);
u16 GetNationalPokedexCount(u8);
u16 GetHoennPokedexCount(u8);
u8 CreateDexDisplayMonDataTask(u16 dexNum, u32 trainerId, u32 personality);
u8 DisplayCaughtMonDexPage(u16 dexNum, u32 otId, u32 personality);
s8 GetSetPokedexFlag(u16 nationalNum, u8 caseId);
u16 CreateMonSpriteFromNationalDexNumber(u16, s16, s16, u16);
bool16 HasAllHoennMons(void);
void ResetPokedexScrollPositions(void);
bool16 HasAllMons(void);
void CB2_Pokedex(void);
void CB2_OpenPokedex(void);
#endif // GUARD_POKEDEX_H

View File

@@ -0,0 +1,17 @@
#ifndef GUARD_POKEDEX_AREA_REGION_MAP_H
#define GUARD_POKEDEX_AREA_REGION_MAP_H
struct PokedexAreaMapTemplate
{
u32 bg:2;
u32 offset:8;
u32 mode:2;
u32 unk:20; // never read
};
void LoadPokedexAreaMapGfx(const struct PokedexAreaMapTemplate *);
bool32 sub_81C4E90(void);
void PokedexAreaMapChangeBgY(u32);
void FreePokedexAreaMapBgNum(void);
#endif // GUARD_POKEDEX_AREA_REGION_MAP_H

View File

@@ -1,10 +1,10 @@
#ifndef GUARD_POKEDEX_CRY_SCREEN_H
#define GUARD_POKEDEX_CRY_SCREEN_H
struct CryRelatedStruct
struct CryScreenWindow
{
u16 unk0;
u8 unk2;
u16 unk0; // Assigned to val that's never read
u8 unk2; // Never read
u8 paletteNo;
u8 xPos;
u8 yPos;
@@ -12,10 +12,10 @@ struct CryRelatedStruct
extern u8 gDexCryScreenState;
bool8 sub_8145354(struct CryRelatedStruct*, u8);
void sub_814545C(u8);
void sub_8145534(u16);
bool8 sub_8145850(struct CryRelatedStruct*, u8);
void sub_8145914(void);
bool8 LoadCryWaveformWindow(struct CryScreenWindow*, u8);
void UpdateCryWaveformWindow(u8);
void CryScreenPlayButton(u16);
bool8 LoadCryMeter(struct CryScreenWindow*, u8);
void FreeCryScreen(void);
#endif

View File

@@ -8,7 +8,5 @@ bool32 IsSpeciesAllowedInPokemonJump(u16 species);
void IsPokemonJumpSpeciesInParty(void);
void ResetPokeJumpResults(void);
void ShowPokemonJumpRecords(void);
void sub_802EB24(s16 tileTag, s16 palTag, s16 x, s16 y, u8 subpriority);
bool32 sub_802EB84(void);
#endif // GUARD_POKEMON_JUMP_H

View File

@@ -65,24 +65,44 @@ enum
POKENAV_MODE_FORCE_CALL_EXIT, // Pokenav tutorial after calling Mr. Stone
};
enum
{
POKENAV_GFX_MAIN_MENU,
POKENAV_GFX_CONDITION_MENU,
POKENAV_GFX_RIBBONS_MENU,
POKENAV_GFX_MATCH_CALL_MENU,
POKENAV_GFX_MAP_MENU_ZOOMED_OUT,
POKENAV_GFX_MAP_MENU_ZOOMED_IN,
POKENAV_GFX_PARTY_MENU,
POKENAV_GFX_SEARCH_MENU,
POKENAV_GFX_COOL_MENU,
POKENAV_GFX_BEAUTY_MENU,
POKENAV_GFX_CUTE_MENU,
POKENAV_GFX_SMART_MENU,
POKENAV_GFX_TOUGH_MENU,
POKENAV_GFX_MENUS_END,
};
#define POKENAV_GFX_SUBMENUS_START POKENAV_GFX_PARTY_MENU
#define POKENAV_MENU_IDS_START 100000
enum
{
POKENAV_MENU_0 = POKENAV_MENU_IDS_START,
POKENAV_MENU_1,
POKENAV_MENU_2,
POKENAV_MENU_3,
POKENAV_MENU_4,
POKENAV_MENU_5,
POKENAV_MENU_6,
POKENAV_MENU_7,
POKENAV_MENU_8,
POKENAV_MENU_9,
POKENAV_MENU_A,
POKENAV_MENU_B,
POKENAV_MENU_C,
POKENAV_MENU_D,
POKENAV_MENU_E,
POKENAV_MAIN_MENU = POKENAV_MENU_IDS_START,
POKENAV_MAIN_MENU_CURSOR_ON_MAP,
POKENAV_CONDITION_MENU,
POKENAV_CONDITION_SEARCH_MENU,
POKENAV_MAIN_MENU_CURSOR_ON_MATCH_CALL,
POKENAV_MAIN_MENU_CURSOR_ON_RIBBONS,
POKENAV_REGION_MAP,
POKENAV_CONDITION_PARTY,
POKENAV_CONDITION_SEARCH_RESULTS,
POKENAV_MENU_9, // Condition
POKENAV_MENU_A, // Condition
POKENAV_MATCH_CALL,
POKENAV_RIBBONS_MON_LIST,
POKENAV_MENU_D, // Ribbons
POKENAV_MENU_E, // Ribbons
};
enum
@@ -220,6 +240,15 @@ enum
POKENAV_MC_FUNC_EXIT
};
enum
{
POKENAV_MAP_FUNC_NONE,
POKENAV_MAP_FUNC_CURSOR_MOVED,
POKENAV_MAP_FUNC_ZOOM_OUT,
POKENAV_MAP_FUNC_ZOOM_IN,
POKENAV_MAP_FUNC_EXIT,
};
// pokenav.c
void SetSelectedConditionSearch(u32);
u32 GetSelectedConditionSearch(void);
@@ -275,7 +304,7 @@ void sub_81C7850(u32 a0);
u32 sub_81C786C(void);
void LoadLeftHeaderGfxForIndex(u32 arg0);
void sub_81C7FA0(u32 arg0, bool32 arg1, bool32 arg2);
void sub_81C7AC0(s32 a0);
void PokenavFadeScreen(s32 fadeType);
bool32 sub_81C8010(void);
void InitBgTemplates(const struct BgTemplate *templates, int count);
bool32 IsPaletteFadeActive(void);
@@ -298,30 +327,30 @@ void sub_81C7834(void *func1, void *func2);
void ShutdownPokenav(void);
// pokenav_menu_handler_1.c
bool32 PokenavCallback_Init_0(void);
bool32 PokenavCallback_Init_4(void);
bool32 PokenavCallback_Init_5(void);
bool32 PokenavCallback_Init_2(void);
bool32 PokenavCallback_Init_3(void);
u32 sub_81C941C(void);
void sub_81C9430(void);
bool32 PokenavCallback_Init_MainMenuCursorOnMap(void);
bool32 PokenavCallback_Init_MainMenuCursorOnMatchCall(void);
bool32 PokenavCallback_Init_MainMenuCursorOnRibbons(void);
bool32 PokenavCallback_Init_ConditionMenu(void);
bool32 PokenavCallback_Init_ConditionSearchMenu(void);
u32 GetMenuHandlerCallback(void);
void FreeMenuHandlerSubstruct1(void);
int GetPokenavMenuType(void);
int GetPokenavCursorPos(void);
int GetCurrentMenuItemId(void);
u16 GetHelpBarTextId(void);
// pokenav_menu_handler_2.c
bool32 sub_81C9924(void);
bool32 sub_81C9940(void);
bool32 OpenPokenavMenuInitial(void);
bool32 OpenPokenavMenuNotInitial(void);
void CreateMenuHandlerLoopedTask(s32 ltIdx);
bool32 sub_81C99C0(void);
void sub_81C99D4(void);
bool32 IsMenuHandlerLoopedTaskActive(void);
void FreeMenuHandlerSubstruct2(void);
void sub_81CAADC(void);
// pokenav_match_call_1.c
bool32 PokenavCallback_Init_11(void);
u32 sub_81CAB24(void);
void sub_81CAB38(void);
bool32 PokenavCallback_Init_MatchCall(void);
u32 GetMatchCallCallback(void);
void FreeMatchCallSubstruct1(void);
int sub_81CAE28(void);
int GetNumberRegistered(void);
int sub_81CAE48(void);
@@ -341,19 +370,19 @@ int GetIndexDeltaOfNextCheckPageUp(int index);
bool32 IsRematchEntryRegistered(int index);
// pokenav_match_call_2.c
bool32 sub_81CB260(void);
bool32 OpenMatchCall(void);
void CreateMatchCallLoopedTask(s32 index);
u32 sub_81CB2CC(void);
void sub_81CB2E0(void);
bool32 IsMatchCallLoopedTaskActive(void);
void FreeMatchCallSubstruct2(void);
// pokenav_region_map.c
u32 PokenavCallback_Init_6(void);
void sub_81CC524(void);
u32 sub_81CC554(void);
bool32 sub_81CC5F4(void);
void sub_81CC62C(s32);
u32 sub_81CC65C(void);
void sub_81CC670(void);
u32 PokenavCallback_Init_RegionMap(void);
u32 GetRegionMapCallback(void);
bool32 OpenPokenavRegionMap(void);
void CreateRegionMapLoopedTask(s32);
bool32 IsRegionMapLoopedTaskActive(void);
void FreeRegionMapSubstruct1(void);
void FreeRegionMapSubstruct2(void);
// pokenav_conditions_1.c
u32 PokenavCallback_Init_7(void);

View File

@@ -4,20 +4,21 @@
#include "bg.h"
// Exported type declarations
#define MAP_NAME_LENGTH 16
enum
{
INPUT_EVENT_NONE,
INPUT_EVENT_MOVE_START,
INPUT_EVENT_MOVE_CONT,
INPUT_EVENT_MOVE_END,
INPUT_EVENT_A_BUTTON,
INPUT_EVENT_B_BUTTON,
MAP_INPUT_NONE,
MAP_INPUT_MOVE_START,
MAP_INPUT_MOVE_CONT,
MAP_INPUT_MOVE_END,
MAP_INPUT_A_BUTTON,
MAP_INPUT_B_BUTTON,
};
enum {
MAPSECTYPE_NONE,
MAPSECTYPE_PLAIN,
MAPSECTYPE_ROUTE,
MAPSECTYPE_CITY_CANFLY,
MAPSECTYPE_CITY_CANTFLY,
MAPSECTYPE_BATTLE_FRONTIER
@@ -25,9 +26,9 @@ enum {
struct RegionMap {
/*0x000*/ u16 mapSecId;
/*0x002*/ u8 iconDrawType;
/*0x002*/ u8 mapSecType;
/*0x003*/ u8 posWithinMapSec;
/*0x004*/ u8 mapSecName[0x14];
/*0x004*/ u8 mapSecName[20];
/*0x018*/ u8 (*inputCallback)(void);
/*0x01c*/ struct Sprite *cursorSprite;
/*0x020*/ struct Sprite *playerIconSprite;
@@ -90,28 +91,28 @@ struct RegionMapLocation
// Exported RAM declarations
// Exported ROM declarations
void sub_8122CF8(struct RegionMap *regionMap, const struct BgTemplate *template, bool8 zoomed);
bool8 sub_8122DB0(void);
void InitRegionMapData(struct RegionMap *regionMap, const struct BgTemplate *template, bool8 zoomed);
bool8 LoadRegionMapGfx(void);
void UpdateRegionMapVideoRegs(void);
void InitRegionMap(struct RegionMap *regionMap, u8 argument);
u8 sub_81230AC(void);
bool8 sub_8123514(void);
u8 DoRegionMapInputCallback(void);
bool8 UpdateRegionMapZoom(void);
void FreeRegionMapIconResources(void);
u16 GetRegionMapSectionIdAt(u16 x, u16 y);
u16 GetRegionMapSecIdAt(u16 x, u16 y);
void CreateRegionMapPlayerIcon(u16 x, u16 y);
void CreateRegionMapCursor(u16 tileTag, u16 paletteTag);
bool32 IsEventIslandMapSecId(u8 mapSecId);
u8 *GetMapName(u8 *, u16, u16);
bool32 sub_8124668(u8 mapSecId);
u8 *GetMapNameGeneric(u8 *dest, u16 mapSecId);
u8 *sub_8124610(u8 *dest, u16 mapSecId);
u8 *GetMapNameHandleAquaHideout(u8 *dest, u16 mapSecId);
u16 CorrectSpecialMapSecId(u16 mapSecId);
void sub_8122D88(struct RegionMap *regionMap);
void ShowRegionMapForPokedexAreaScreen(struct RegionMap *regionMap);
void PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs(s16 x, s16 y);
void MCB2_FlyMap(void);
bool8 sub_8124658(void);
void sub_812454C(void);
void sub_8123030(u16 a0, u32 a1);
void sub_8123418(void);
void CB2_OpenFlyMap(void);
bool8 IsRegionMapZoomed(void);
void TrySetPlayerIconBlink(void);
void sub_8123030(u16 color, u32 coeff);
void SetRegionMapDataForZoom(void);
extern const struct RegionMapLocation gRegionMapEntries[];

View File

@@ -1,26 +0,0 @@
#ifndef GUARD_ROM_8034C54_H
#define GUARD_ROM_8034C54_H
struct UnkStruct3
{
u8 field_0_0:2;
u8 shape:2;
u8 size:2;
u8 priority:2;
u8 field_1;
u8 xDelta;
s16 x;
s16 y;
const struct SpriteSheet *spriteSheet;
const struct SpritePalette *spritePal;
};
bool32 sub_8034C54(u32 count);
void sub_8034CC8(void);
bool32 sub_8034D14(u32 id, s32 arg1, const struct UnkStruct3 *arg2);
void sub_8035044(u32 id, s32 arg1);
void sub_80353DC(u32 id);
void sub_803547C(u32 id, bool32 arg1);
u8 sub_80355F8(u32 shape, u32 size);
#endif // GUARD_ROM_8034C54_H

View File

@@ -13,7 +13,6 @@
#define CHAMPION_SAVEWARP (1 << 7)
void TrySetMapSaveWarpStatus(void);
void sub_81AFDA0(void);
void SetChampionSaveWarp(void);
#endif // GUARD_SAVE_LOCATION_H

View File

@@ -5,7 +5,7 @@
#ifndef GUARD_TRADER_H
#define GUARD_TRADER_H
void sub_8133DA0(u8 taskId);
void DecorationItemsMenuAction_Trade(u8 taskId);
void ExitTraderMenu(u8 taskId);
void TraderSetup(void);
void Trader_ResetFlag(void);

View File

@@ -1,17 +0,0 @@
#ifndef GUARD_UNK_POKEDEX_AREA_SCREEN_HELPER_H
#define GUARD_UNK_POKEDEX_AREA_SCREEN_HELPER_H
struct UnkStruct_1C4D70
{
u32 bg:2;
u32 unk2:8;
u32 unk10:2;
u32 unk12:20;
};
void sub_81C4D70(const struct UnkStruct_1C4D70 *);
bool32 sub_81C4E90(void);
void sub_81C4ED0(u32);
void sub_81C4EB4(void);
#endif // GUARD_UNK_POKEDEX_AREA_SCREEN_HELPER_H