diff options
Diffstat (limited to 'include')
98 files changed, 2495 insertions, 1217 deletions
diff --git a/include/agb_flash.h b/include/agb_flash.h index 27e45e8fa..ba5820f01 100644 --- a/include/agb_flash.h +++ b/include/agb_flash.h @@ -8,5 +8,7 @@ // Exported ROM declarations u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void)); +u16 IdentifyFlash(void); +u32 ProgramFlashSectorAndVerify(u16 sectorNum, u8 *src); #endif //GUARD_AGB_FLASH_H diff --git a/include/bard_music.h b/include/bard_music.h index 9d3d0ad22..488205405 100644 --- a/include/bard_music.h +++ b/include/bard_music.h @@ -39,6 +39,7 @@ struct BardSong // Exported ROM declarations extern const u16 gUnknown_085F5490; +extern const u16 gUnknown_085FA1D4; const struct BardSound *GetWordSounds(u16 word); void GetWordPhonemes(struct BardSong *song, u16 word); diff --git a/include/battle.h b/include/battle.h index 9295a3548..d155ca5a0 100644 --- a/include/battle.h +++ b/include/battle.h @@ -28,10 +28,11 @@ #define B_ACTION_SAFARI_GO_NEAR 7 #define B_ACTION_SAFARI_RUN 8 #define B_ACTION_WALLY_THROW 9 -// The exact purposes of these are unclear -#define B_ACTION_EXEC_SCRIPT 10 // when executing an action +#define B_ACTION_EXEC_SCRIPT 10 +#define B_ACTION_TRY_FINISH 11 +#define B_ACTION_FINISHED 12 + #define B_ACTION_CANCEL_PARTNER 12 // when choosing an action -#define B_ACTION_FINISHED 12 // when executing an action #define B_ACTION_NOTHING_FAINTED 13 // when choosing an action #define B_ACTION_NONE 0xFF @@ -174,7 +175,7 @@ struct ProtectStruct u32 targetNotAffected:1; u32 chargingTurn:1; u32 fleeFlag:2; // For RunAway and Smoke Ball. - u32 usedImprisionedMove:1; + u32 usedImprisonedMove:1; u32 loveImmobility:1; u32 usedDisabledMove:1; u32 usedTauntedMove:1; diff --git a/include/battle_anim.h b/include/battle_anim.h index fc0f603eb..b3350f893 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -16,14 +16,14 @@ enum BG_ANIM_SCREEN_BASE_BLOCK, }; -struct UnknownAnimStruct2 +struct BattleAnimBgData { u8 *bgTiles; - u16 *unk4; - u8 unk8; + u16 *bgTilemap; + u8 paletteId; u8 bgId; u16 tilesOffset; - u16 unkC; + u16 unused; }; struct BattleAnimBackground @@ -74,10 +74,14 @@ void HandleIntroSlide(u8 terrainId); int GetAnimBgAttribute(u8 bgId, u8 attributeId); // battle_anim_80A5C6C.s -void sub_80A6450(struct Sprite *sprite); +void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite); +void sub_80A8AEC(struct Sprite *sprite); +void sub_80A8A6C(struct Sprite *sprite); +void sub_80A8E30(struct Sprite *sprite); +void sub_80A8B64(struct Sprite *sprite); void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y); void DestroySpriteAndMatrix(struct Sprite *sprite); -void AnimTranslateLinearSimple(struct Sprite *sprite); +void TranslateSpriteLinearFixedPoint(struct Sprite *sprite); void InitSpritePosToAnimAttacker(struct Sprite *sprite, bool8 respectMonPicOffsets); void InitSpritePosToAnimTarget(struct Sprite *sprite, bool8 respectMonPicOffsets); void StartAnimLinearTranslation(struct Sprite *sprite); @@ -90,7 +94,7 @@ void sub_80A6FD4(struct Sprite *sprite); u16 ArcTan2Neg(s16 a, s16 b); void TrySetSpriteRotScale(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 rotation); void RunStoredCallbackWhenAffineAnimEnds(struct Sprite *sprite); -void sub_80A66DC(struct Sprite *sprite); +void TranslateSpriteLinearAndFlicker(struct Sprite *sprite); void SetSpriteCoordsToAnimAttackerCoords(struct Sprite *sprite); void RunStoredCallbackWhenAnimEnds(struct Sprite *sprite); void SetAnimSpriteInitialXOffset(struct Sprite *sprite, s16 a2); @@ -104,12 +108,12 @@ u8 GetBattlerSpriteBGPriority(u8 battlerId); void *LoadPointerFromVars(s16 bottom, s16 top); void StorePointerInVars(s16 *bottom, s16 *top, const void *ptr); void sub_80A8278(void); -void sub_80A6B30(struct UnknownAnimStruct2*); -void sub_80A6B90(struct UnknownAnimStruct2*, u32 arg1); +void sub_80A6B30(struct BattleAnimBgData*); +void sub_80A6B90(struct BattleAnimBgData*, u32 arg1); u8 GetBattlerSpriteSubpriority(u8 battlerId); -bool8 TranslateAnimArc(struct Sprite *sprite); +bool8 TranslateAnimHorizontalArc(struct Sprite *sprite); void sub_80A6630(struct Sprite *sprite); -void sub_80A6680(struct Sprite *sprite); +void TranslateMonSpriteLinearFixedPoint(struct Sprite *sprite); void ResetSpriteRotScale(u8 spriteId); void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation); void InitSpriteDataForLinearTranslation(struct Sprite *sprite); @@ -121,8 +125,8 @@ u8 sub_80A77AC(u8 a1); s16 CloneBattlerSpriteWithBlend(u8); void obj_delete_but_dont_free_vram(struct Sprite*); u8 sub_80A89C8(int, u8, int); -void sub_80A6D60(struct UnknownAnimStruct2*, const void*, u32); -void sub_80A6CC0(u32, const u32*, u32); +void sub_80A6D60(struct BattleAnimBgData*, const void*, u32); +void AnimLoadCompressedBgGfx(u32, const u32*, u32); void sub_80A6DAC(bool8); void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *); void sub_80A653C(struct Sprite *); @@ -130,13 +134,13 @@ void SetBattlerSpriteYOffsetFromYScale(u8 spriteId); void sub_80A805C(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7); u8 sub_80A80C8(struct Task *task); void sub_80A8EE4(struct Sprite *); -void sub_80A67F4(struct Sprite *); -void sub_80A6D48(u32 bgId, const void *src); +void DestroyAnimSpriteAndDisableBlend(struct Sprite *); +void AnimLoadCompressedBgTilemap(u32 bgId, const void *src); void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite); bool8 AnimFastTranslateLinear(struct Sprite *sprite); void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite); -void TranslateMonBGUntil(struct Sprite *sprite); -void TranslateSpriteOverDuration(struct Sprite *sprite); +void TranslateMonSpriteLinear(struct Sprite *sprite); +void TranslateSpriteLinear(struct Sprite *sprite); void sub_80A77C8(struct Sprite *sprite); void sub_80A7000(struct Sprite *sprite); void TranslateSpriteInCircleOverDuration(struct Sprite *sprite); @@ -144,7 +148,7 @@ void SetGreyscaleOrOriginalPalette(u16 a1, bool8 a2); void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds); bool8 RunAffineAnimFromTaskData(struct Task *task); void sub_80A78AC(struct Sprite *sprite); -void sub_80A6BFC(struct UnknownAnimStruct2 *unk, u8 unused); +void sub_80A6BFC(struct BattleAnimBgData *unk, u8 unused); u8 sub_80A8394(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, u32 a10); void sub_80A749C(struct Sprite *sprite); void sub_80A6DEC(struct Sprite *sprite); @@ -181,7 +185,7 @@ bool8 IsDoubleBattle(void); u8 sub_80A6D94(void); u8 GetBattlerSpriteBGPriorityRank(u8 battlerId); void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*spriteCallback)(struct Sprite*)); -void oamt_add_pos2_onto_pos1(struct Sprite *sprite); +void SetSpritePrimaryCoordsFromSecondaryCoords(struct Sprite *sprite); u8 GetBattlerSpriteDefault_Y(u8 battlerId); u8 GetSubstituteSpriteDefault_Y(u8 battlerId); @@ -200,6 +204,9 @@ void sub_80A718C(struct Sprite *sprite); #define STAT_ANIM_MULTIPLE_MINUS2 58 void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId); +// battle_anim_8170478.c +void sub_8172EF0(u8 battler, struct Pokemon *mon); + // ground.c void sub_81152DC(u8 taskId); @@ -212,6 +219,19 @@ u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 selectedPalettes, void sub_8116EB4(u8); void sub_8117854(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u32 *arg8, const u32 *arg9, const u32 *palette); +// battle_anim_effects_1.c +void sub_810310C(u8 battler, struct Sprite* sprite); +void AnimMoveTwisterParticle(struct Sprite* sprite); + +// water.c +void sub_8108C94(struct Sprite *sprite); + +// flying.c +void sub_810E2C8(struct Sprite *sprite); + +// smokescreen.c +u8 sub_807521C(s16 x, s16 y, u8 a3); + u32 UnpackSelectedBattleAnimPalettes(s16); u8 GetBattlerSpriteFinal_Y(u8, u16, u8); diff --git a/include/battle_arena.h b/include/battle_arena.h index bf305ea4e..c3bdd4ea7 100644 --- a/include/battle_arena.h +++ b/include/battle_arena.h @@ -8,7 +8,7 @@ void BattleArena_AddMindPoints(u8 battler); void BattleArena_AddSkillPoints(u8 battler); void BattleArena_DeductMindPoints(u8 battler, u16 stringId); void sub_81A586C(u8 battler); -void sub_81A5BF8(void); -void sub_81A5D44(void); +void DrawArenaRefereeTextBox(void); +void RemoveArenaRefereeTextBox(void); #endif //GUARD_BATTLE_ARENA_H diff --git a/include/battle_dome.h b/include/battle_dome.h index 2265f14ce..d1dfdb100 100644 --- a/include/battle_dome.h +++ b/include/battle_dome.h @@ -3,7 +3,7 @@ extern u32 gUnknown_0203CD70; -s32 GetDomeTrainerMonCountInBits(u16 tournamentTrainerId); -s32 TrainerIdToDomeTournamentId(u16 trainerId); +int GetDomeTrainerMonCountInBits(u16 tournamentTrainerId); +int TrainerIdToDomeTournamentId(u16 trainerId); #endif // GUARD_BATTLE_DOME_H diff --git a/include/battle_factory.h b/include/battle_factory.h index 2db041b06..5606d60d1 100644 --- a/include/battle_factory.h +++ b/include/battle_factory.h @@ -2,10 +2,10 @@ #define GUARD_BATTLE_FACTORY_H void CallBattleFactoryFunction(void); -bool8 sub_81A6BF4(void); +bool8 InBattleFactory(void); u8 GetFactoryMonFixedIV(u8 arg0, u8 arg1); void FillFactoryBrainParty(void); -u8 sub_81A6F70(u8 battleMode, u8 lvlMode); +u8 GetNumPastRentalsRank(u8 battleMode, u8 lvlMode); u32 GetAiScriptsInBattleFactory(void); void SetMonMoveAvoidReturn(struct Pokemon *mon, u16 moveArg, u8 moveSlot); diff --git a/include/battle_pyramid.h b/include/battle_pyramid.h index 5d38e9f35..d77172d0b 100644 --- a/include/battle_pyramid.h +++ b/include/battle_pyramid.h @@ -4,21 +4,21 @@ void CallBattlePyramidFunction(void); u16 LocalIdToPyramidTrainerId(u8 localId); bool8 GetBattlePyramidTrainerFlag(u8 eventId); -void sub_81A9B04(void); +void MarkApproachingPyramidTrainersAsBattled(void); void GenerateBattlePyramidWildMon(void); u8 GetPyramidRunMultiplier(void); u8 InBattlePyramid(void); bool8 InBattlePyramid_(void); void sub_81A9E90(void); -void sub_81A9EC8(void); +void SoftResetInBattlePyramid(void); void CopyPyramidTrainerSpeechBefore(u16 trainerId); void CopyPyramidTrainerWinSpeech(u16 trainerId); void CopyPyramidTrainerLoseSpeech(u16 trainerId); -u8 GetTrainerEncounterMusicIdInBattlePyramind(u16 trainerId); -void sub_81AA078(u16 *mapArg, u8 arg1); -void sub_81AA1D8(void); -void sub_81AA2F8(void); -u8 sub_81AAA40(void); +u8 GetBattlePyramindTrainerEncounterMusicId(u16 trainerId); +void GenerateBattlePyramidFloorLayout(u16 *mapArg, bool8 setPlayerPosition); +void LoadBattlePyramidEventObjectTemplates(void); +void LoadBattlePyramidFloorEventObjectScripts(void); +u8 GetNumBattlePyramidEventObjects(void); u16 GetBattlePyramidPickupItemId(void); #endif // GUARD_BATTLE_PYRAMID_H diff --git a/include/battle_pyramid_bag.h b/include/battle_pyramid_bag.h index 48f8de3c0..c3b799a4d 100644 --- a/include/battle_pyramid_bag.h +++ b/include/battle_pyramid_bag.h @@ -34,7 +34,7 @@ struct PyramidBagCursorData extern struct PyramidBagResources *gPyramidBagResources; extern struct PyramidBagCursorData gPyramidBagCursorData; -void sub_81C4EEC(void); +void InitBattlePyramidBagCursorPosition(void); void CB2_PyramidBagMenuFromStartMenu(void); void sub_81C4F84(void); void sub_81C5924(void); diff --git a/include/battle_scripts.h b/include/battle_scripts.h index a23fa6948..cac3a7652 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -88,8 +88,8 @@ extern const u8 BattleScript_IngrainTurnHeal[]; extern const u8 BattleScript_AtkDefDown[]; extern const u8 BattleScript_KnockedOff[]; extern const u8 BattleScript_MoveUsedIsImprisoned[]; -extern const u8 BattleScript_SelectingImprisionedMove[]; -extern const u8 BattleScript_SelectingImprisionedMoveInPalace[]; +extern const u8 BattleScript_SelectingImprisonedMove[]; +extern const u8 BattleScript_SelectingImprisonedMoveInPalace[]; extern const u8 BattleScript_GrudgeTakesPp[]; extern const u8 BattleScript_MagicCoatBounce[]; extern const u8 BattleScript_SnatchedMove[]; @@ -115,7 +115,7 @@ extern const u8 BattleScript_PrintPayDayMoneyString[]; extern const u8 BattleScript_WrapTurnDmg[]; extern const u8 BattleScript_WrapEnds[]; extern const u8 BattleScript_MoveUsedIsInLove[]; -extern const u8 BattleScript_MoveUsedIsParalyzedCantAttack[]; +extern const u8 BattleScript_MoveUsedIsInLoveCantAttack[]; extern const u8 BattleScript_NightmareTurnDmg[]; extern const u8 BattleScript_CurseTurnDmg[]; extern const u8 BattleScript_TargetPRLZHeal[]; diff --git a/include/battle_tent.h b/include/battle_tent.h index a894d4cfb..ca3faa4a6 100644 --- a/include/battle_tent.h +++ b/include/battle_tent.h @@ -1,6 +1,6 @@ #ifndef GUARD_BATTLE_TENT_H #define GUARD_BATTLE_TENT_H -bool8 sub_81B9E94(void); +bool8 InSlateportBattleTent(void); #endif //GUARD_BATTLE_TENT_H diff --git a/include/battle_util.h b/include/battle_util.h index 71bb22a00..0756a387a 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -6,7 +6,7 @@ #define MOVE_LIMITATION_DISABLED (1 << 2) #define MOVE_LIMITATION_TORMENTED (1 << 3) #define MOVE_LIMITATION_TAUNT (1 << 4) -#define MOVE_LIMITATION_IMPRISION (1 << 5) +#define MOVE_LIMITATION_IMPRISON (1 << 5) #define ABILITYEFFECT_ON_SWITCHIN 0x0 #define ABILITYEFFECT_ENDTURN 0x1 @@ -44,7 +44,7 @@ u8 GetBattlerForBattleScript(u8 caseId); void PressurePPLose(u8 target, u8 attacker, u16 move); void PressurePPLoseOnUsingPerishSong(u8 attacker); -void PressurePPLoseOnUsingImprision(u8 attacker); +void PressurePPLoseOnUsingImprison(u8 attacker); void MarkAllBattlersForControllerExec(void); // unused void MarkBattlerForControllerExec(u8 battlerId); void sub_803F850(u8 arg0); diff --git a/include/braille_puzzles.h b/include/braille_puzzles.h index d4c5a24d8..1614c92e1 100644 --- a/include/braille_puzzles.h +++ b/include/braille_puzzles.h @@ -1,11 +1,11 @@ #ifndef GUARD_BRAILLE_PUZZLES_H #define GUARD_BRAILLE_PUZZLES_H -bool8 ShouldDoBrailleFlyEffect(void); -bool8 ShouldDoBrailleStrengthEffect(void); +bool8 ShouldDoBrailleRegisteelEffect(void); +bool8 ShouldDoBrailleRegirockEffect(void); bool8 ShouldDoBrailleDigEffect(void); void DoBrailleDigEffect(void); -void sub_8179918(void); -void sub_8179834(void); +void SetUpPuzzleEffectRegisteel(void); +void SetUpPuzzleEffectRegirock(void); #endif // GUARD_BRAILLE_PUZZLES_H diff --git a/include/cable_club.h b/include/cable_club.h index ebdc82b46..c2849ca3e 100644 --- a/include/cable_club.h +++ b/include/cable_club.h @@ -15,5 +15,6 @@ void sub_80B360C(void); bool32 sub_80B2AF4(u16 *arg0, u16 *arg1); void sub_80B3AF8(u8 taskId); void task00_08081A90(u8 taskId); +bool32 GetLinkTrainerCardColor(u8 linkPlayerIndex); #endif //GUARD_CABLE_CLUB_H diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h index ca9e3bc9f..1224c0f31 100644 --- a/include/constants/battle_frontier.h +++ b/include/constants/battle_frontier.h @@ -10,6 +10,8 @@ #define FRONTIER_FACILITY_PIKE 5 #define FRONTIER_FACILITY_PYRAMID 6 #define NUM_FRONTIER_FACILITIES 7 +// The multiplayer battle colosseum rooms re-use VAR_FRONTIER_FACILITY. +#define FRONTIER_FACILITY_DOUBLE_COLOSSEUM 9 #define TENT_VERDANTURF 2 #define TENT_FALLARBOR 3 diff --git a/include/constants/easy_chat.h b/include/constants/easy_chat.h index 2c437c88e..50f5994f4 100644 --- a/include/constants/easy_chat.h +++ b/include/constants/easy_chat.h @@ -1,6 +1,33 @@ #ifndef GUARD_CONSTANTS_EASY_CHAT_H #define GUARD_CONSTANTS_EASY_CHAT_H +#define EASY_CHAT_TYPE_PROFILE 0 +#define EASY_CHAT_TYPE_BATTLE_START 1 +#define EASY_CHAT_TYPE_BATTLE_WON 2 +#define EASY_CHAT_TYPE_BATTLE_LOST 3 +#define EASY_CHAT_TYPE_MAIL 4 +#define EASY_CHAT_TYPE_INTERVIEW 5 +#define EASY_CHAT_TYPE_BARD_SONG 6 +#define EASY_CHAT_TYPE_FAN_CLUB 7 +#define EASY_CHAT_TYPE_UNK_8 8 +#define EASY_CHAT_TYPE_TRENDY_PHRASE 9 +#define EASY_CHAT_TYPE_GABBY_AND_TY 10 +#define EASY_CHAT_TYPE_CONTEST_INTERVIEW 11 +#define EASY_CHAT_TYPE_BATTLE_TOWER_INTERVIEW 12 +#define EASY_CHAT_TYPE_GOOD_SAYING 13 +#define EASY_CHAT_TYPE_FAN_QUESTION 14 +#define EASY_CHAT_TYPE_QUIZ_ANSWER 15 +#define EASY_CHAT_TYPE_QUIZ_QUESTION 16 +#define EASY_CHAT_TYPE_QUIZ_SET_QUESTION 17 +#define EASY_CHAT_TYPE_QUIZ_SET_ANSWER 18 +#define EASY_CHAT_TYPE_APPRENTICE 19 +#define EASY_CHAT_TYPE_QUESTIONNAIRE 20 + +#define EASY_CHAT_PERSON_REPORTER_MALE 0 +#define EASY_CHAT_PERSON_REPORTER_FEMALE 1 +#define EASY_CHAT_PERSON_BOY 2 +#define EASY_CHAT_PERSON_DISPLAY_NONE 3 + #define EC_GROUP_POKEMON 0x0 #define EC_GROUP_TRAINER 0x1 #define EC_GROUP_STATUS 0x2 @@ -23,6 +50,7 @@ #define EC_GROUP_MOVE_2 0x13 #define EC_GROUP_TRENDY_SAYING 0x14 #define EC_GROUP_POKEMON_2 0x15 +#define EC_NUM_GROUPS 0x16 // TRAINER #define EC_WORD_I_CHOOSE_YOU (EC_GROUP_TRAINER << 9) | 0x0 @@ -1075,5 +1103,6 @@ #define EC_GROUP(word) ((word) >> 9) #define EC_INDEX(word) ((word) & 0x1FF) +#define EC_WORD(group, index) ((((group) & 0x7F) << 9) | ((index) & 0x1FF)) #endif // GUARD_CONSTANTS_EASY_CHAT_H diff --git a/include/constants/field_effects.h b/include/constants/field_effects.h index add195df8..282f9ce75 100644 --- a/include/constants/field_effects.h +++ b/include/constants/field_effects.h @@ -61,7 +61,7 @@ #define FLDEFF_SECRET_POWER_SHRUB 57 #define FLDEFF_CUT_GRASS 58 #define FLDEFF_FIELD_MOVE_SHOW_MON_INIT 59 -#define FLDEFF_USE_FLY_ANCIENT_TOMB 60 +#define FLDEFF_USE_TOMB_PUZZLE_EFFECT 60 #define FLDEFF_PCTURN_ON 61 #define FLDEFF_HALL_OF_FAME_RECORD 62 #define FLDEFF_USE_TELEPORT 63 diff --git a/include/constants/flags.h b/include/constants/flags.h index 5082014e7..230fbabaf 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -236,7 +236,7 @@ #define FLAG_MET_WAILMER_TRAINER 0xDA #define FLAG_EVIL_LEADER_PLEASE_STOP 0xDB -#define FLAG_UNUSED_0x0DC 0xDC // Unused Flag +#define FLAG_NEVER_SET_0x0DC 0xDC // This flag is read, but never written to #define FLAG_RECEIVED_GO_GOGGLES 0xDD #define FLAG_WINGULL_SENT_ON_ERRAND 0xDE @@ -1352,9 +1352,9 @@ #define FLAG_SYS_ENC_UP_ITEM (SYSTEM_FLAGS + 0x4D) #define FLAG_SYS_ENC_DOWN_ITEM (SYSTEM_FLAGS + 0x4E) #define FLAG_SYS_BRAILLE_DIG (SYSTEM_FLAGS + 0x4F) -#define FLAG_SYS_BRAILLE_STRENGTH (SYSTEM_FLAGS + 0x50) -#define FLAG_SYS_BRAILLE_WAIT (SYSTEM_FLAGS + 0x51) -#define FLAG_SYS_BRAILLE_FLY (SYSTEM_FLAGS + 0x52) +#define FLAG_SYS_REGIROCK_PUZZLE_COMPLETED (SYSTEM_FLAGS + 0x50) +#define FLAG_SYS_BRAILLE_REGICE_COMPLETED (SYSTEM_FLAGS + 0x51) +#define FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED (SYSTEM_FLAGS + 0x52) #define FLAG_SYS_HAS_EON_TICKET (SYSTEM_FLAGS + 0x53) #define FLAG_LANDMARK_POKEMON_LEAGUE (SYSTEM_FLAGS + 0x54) @@ -1548,7 +1548,7 @@ // Special Flags (Unknown) #define SPECIAL_FLAGS_START 0x4000 -#define FLAG_SPECIAL_FLAG_0x4000 0x4000 +#define FLAG_HIDE_MAP_NAME_POPUP 0x4000 #define FLAG_SPECIAL_FLAG_0x4001 0x4001 #define FLAG_SPECIAL_FLAG_0x4002 0x4002 #define FLAG_SPECIAL_FLAG_0x4003 0x4003 diff --git a/include/constants/layouts.h b/include/constants/layouts.h new file mode 100755 index 000000000..d4819c46a --- /dev/null +++ b/include/constants/layouts.h @@ -0,0 +1,446 @@ +#ifndef GUARD_CONSTANTS_LAYOUTS_H +#define GUARD_CONSTANTS_LAYOUTS_H + +#define LAYOUT_PETALBURG_CITY 1 +#define LAYOUT_SLATEPORT_CITY 2 +#define LAYOUT_MAUVILLE_CITY 3 +#define LAYOUT_RUSTBORO_CITY 4 +#define LAYOUT_FORTREE_CITY 5 +#define LAYOUT_LILYCOVE_CITY 6 +#define LAYOUT_MOSSDEEP_CITY 7 +#define LAYOUT_SOOTOPOLIS_CITY 8 +#define LAYOUT_EVER_GRANDE_CITY 9 +#define LAYOUT_LITTLEROOT_TOWN 10 +#define LAYOUT_OLDALE_TOWN 11 +#define LAYOUT_DEWFORD_TOWN 12 +#define LAYOUT_LAVARIDGE_TOWN 13 +#define LAYOUT_FALLARBOR_TOWN 14 +#define LAYOUT_VERDANTURF_TOWN 15 +#define LAYOUT_PACIFIDLOG_TOWN 16 +#define LAYOUT_ROUTE101 17 +#define LAYOUT_ROUTE102 18 +#define LAYOUT_ROUTE103 19 +#define LAYOUT_ROUTE104 20 +#define LAYOUT_ROUTE105 21 +#define LAYOUT_ROUTE106 22 +#define LAYOUT_ROUTE107 23 +#define LAYOUT_ROUTE108 24 +#define LAYOUT_ROUTE109 25 +#define LAYOUT_ROUTE110 26 +#define LAYOUT_ROUTE111 27 +#define LAYOUT_ROUTE112 28 +#define LAYOUT_ROUTE113 29 +#define LAYOUT_ROUTE114 30 +#define LAYOUT_ROUTE115 31 +#define LAYOUT_ROUTE116 32 +#define LAYOUT_ROUTE117 33 +#define LAYOUT_ROUTE118 34 +#define LAYOUT_ROUTE119 35 +#define LAYOUT_ROUTE120 36 +#define LAYOUT_ROUTE121 37 +#define LAYOUT_ROUTE122 38 +#define LAYOUT_ROUTE123 39 +#define LAYOUT_ROUTE124 40 +#define LAYOUT_ROUTE125 41 +#define LAYOUT_ROUTE126 42 +#define LAYOUT_ROUTE127 43 +#define LAYOUT_ROUTE128 44 +#define LAYOUT_ROUTE129 45 +#define LAYOUT_ROUTE130_MIRAGE_ISLAND 46 +#define LAYOUT_ROUTE131 47 +#define LAYOUT_ROUTE132 48 +#define LAYOUT_ROUTE133 49 +#define LAYOUT_ROUTE134 50 +#define LAYOUT_UNDERWATER2 51 +#define LAYOUT_UNDERWATER3 52 +#define LAYOUT_UNDERWATER4 53 +#define LAYOUT_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F 54 +#define LAYOUT_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F 55 +#define LAYOUT_LITTLEROOT_TOWN_MAYS_HOUSE_1F 56 +#define LAYOUT_LITTLEROOT_TOWN_MAYS_HOUSE_2F 57 +#define LAYOUT_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB 58 +#define LAYOUT_HOUSE1 59 +#define LAYOUT_HOUSE2 60 +#define LAYOUT_POKEMON_CENTER_1F 61 +#define LAYOUT_POKEMON_CENTER_2F 62 +#define LAYOUT_MART 63 +#define LAYOUT_HOUSE3 64 +#define LAYOUT_DEWFORD_TOWN_GYM 65 +#define LAYOUT_DEWFORD_TOWN_HALL 66 +#define LAYOUT_HOUSE4 67 +#define LAYOUT_LAVARIDGE_TOWN_HERB_SHOP 68 +#define LAYOUT_LAVARIDGE_TOWN_GYM_1F 69 +#define LAYOUT_LAVARIDGE_TOWN_GYM_B1F 70 +#define LAYOUT_LAVARIDGE_TOWN_POKEMON_CENTER_1F 71 +#define LAYOUT_FALLARBOR_TOWN_LEFTOVER_RSCONTEST_LOBBY 72 +#define LAYOUT_FALLARBOR_TOWN_LEFTOVER_RSCONTEST_HALL 73 +#define LAYOUT_LILYCOVE_CITY_HOUSE2 74 +#define LAYOUT_UNKNOWN_08428450 75 +#define LAYOUT_VERDANTURF_TOWN_WANDAS_HOUSE 76 +#define LAYOUT_PACIFIDLOG_TOWN_HOUSE1 77 +#define LAYOUT_PACIFIDLOG_TOWN_HOUSE2 78 +#define LAYOUT_PETALBURG_CITY_GYM 79 +#define LAYOUT_HOUSE_WITH_BED 80 +#define LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_1F 81 +#define LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_2F 82 +#define LAYOUT_UNKNOWN_084294C4 83 +#define LAYOUT_UNKNOWN_084294E8 84 +#define LAYOUT_SLATEPORT_CITY_POKEMON_FAN_CLUB 85 +#define LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_1F 86 +#define LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_2F 87 +#define LAYOUT_HARBOR 88 +#define LAYOUT_MAUVILLE_CITY_GYM 89 +#define LAYOUT_MAUVILLE_CITY_BIKE_SHOP 90 +#define LAYOUT_MAUVILLE_CITY_GAME_CORNER 91 +#define LAYOUT_RUSTBORO_CITY_DEVON_CORP_1F 92 +#define LAYOUT_RUSTBORO_CITY_DEVON_CORP_2F 93 +#define LAYOUT_RUSTBORO_CITY_GYM 94 +#define LAYOUT_RUSTBORO_CITY_POKEMON_SCHOOL 95 +#define LAYOUT_RUSTBORO_CITY_HOUSE 96 +#define LAYOUT_RUSTBORO_CITY_HOUSE1 97 +#define LAYOUT_RUSTBORO_CITY_CUTTERS_HOUSE 98 +#define LAYOUT_FORTREE_CITY_HOUSE1 99 +#define LAYOUT_FORTREE_CITY_GYM 100 +#define LAYOUT_FORTREE_CITY_HOUSE2 101 +#define LAYOUT_ROUTE104_MR_BRINEYS_HOUSE 102 +#define LAYOUT_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F 103 +#define LAYOUT_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F 104 +#define LAYOUT_LILYCOVE_CITY_CONTEST_LOBBY 105 +#define LAYOUT_LILYCOVE_CITY_CONTEST_HALL 106 +#define LAYOUT_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB 107 +#define LAYOUT_MOSSDEEP_CITY_GYM 108 +#define LAYOUT_SOOTOPOLIS_CITY_GYM_1F 109 +#define LAYOUT_SOOTOPOLIS_CITY_GYM_B1F 110 +#define LAYOUT_EVER_GRANDE_CITY_SIDNEYS_ROOM 111 +#define LAYOUT_EVER_GRANDE_CITY_PHOEBES_ROOM 112 +#define LAYOUT_EVER_GRANDE_CITY_GLACIAS_ROOM 113 +#define LAYOUT_EVER_GRANDE_CITY_DRAKES_ROOM 114 +#define LAYOUT_EVER_GRANDE_CITY_CHAMPIONS_ROOM 115 +#define LAYOUT_EVER_GRANDE_CITY_SHORT_HALL 116 +#define LAYOUT_ROUTE104_PRETTY_PETAL_FLOWER_SHOP 117 +#define LAYOUT_CABLE_CAR_STATION 118 +#define LAYOUT_ROUTE114_FOSSIL_MANIACS_HOUSE 119 +#define LAYOUT_ROUTE114_FOSSIL_MANIACS_TUNNEL 120 +#define LAYOUT_ROUTE114_LANETTES_HOUSE 121 +#define LAYOUT_ROUTE116_TUNNELERS_REST_HOUSE 122 +#define LAYOUT_ROUTE117_POKEMON_DAY_CARE 123 +#define LAYOUT_ROUTE121_SAFARI_ZONE_ENTRANCE 124 +#define LAYOUT_METEOR_FALLS_1F_1R 125 +#define LAYOUT_METEOR_FALLS_1F_2R 126 +#define LAYOUT_METEOR_FALLS_B1F_1R 127 +#define LAYOUT_METEOR_FALLS_B1F_2R 128 +#define LAYOUT_RUSTURF_TUNNEL 129 +#define LAYOUT_UNDERWATER_SOOTOPOLIS_CITY 130 +#define LAYOUT_DESERT_RUINS 131 +#define LAYOUT_GRANITE_CAVE_1F 132 +#define LAYOUT_GRANITE_CAVE_B1F 133 +#define LAYOUT_GRANITE_CAVE_B2F 134 +#define LAYOUT_PETALBURG_WOODS 135 +#define LAYOUT_MT_CHIMNEY 136 +#define LAYOUT_MT_PYRE_1F 137 +#define LAYOUT_MT_PYRE_2F 138 +#define LAYOUT_MT_PYRE_3F 139 +#define LAYOUT_MT_PYRE_4F 140 +#define LAYOUT_MT_PYRE_5F 141 +#define LAYOUT_MT_PYRE_6F 142 +#define LAYOUT_AQUA_HIDEOUT_1F 143 +#define LAYOUT_AQUA_HIDEOUT_B1F 144 +#define LAYOUT_AQUA_HIDEOUT_B2F 145 +#define LAYOUT_UNDERWATER_SEAFLOOR_CAVERN 146 +#define LAYOUT_SEAFLOOR_CAVERN_ENTRANCE 147 +#define LAYOUT_SEAFLOOR_CAVERN_ROOM1 148 +#define LAYOUT_SEAFLOOR_CAVERN_ROOM2 149 +#define LAYOUT_SEAFLOOR_CAVERN_ROOM3 150 +#define LAYOUT_SEAFLOOR_CAVERN_ROOM4 151 +#define LAYOUT_SEAFLOOR_CAVERN_ROOM5 152 +#define LAYOUT_SEAFLOOR_CAVERN_ROOM6 153 +#define LAYOUT_SEAFLOOR_CAVERN_ROOM7 154 +#define LAYOUT_SEAFLOOR_CAVERN_ROOM8 155 +#define LAYOUT_SEAFLOOR_CAVERN_ROOM9 156 +#define LAYOUT_CAVE_OF_ORIGIN_ENTRANCE 157 +#define LAYOUT_CAVE_OF_ORIGIN_1F 158 +#define LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP1 159 +#define LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP2 160 +#define LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP3 161 +#define LAYOUT_CAVE_OF_ORIGIN_B1F 162 +#define LAYOUT_VICTORY_ROAD_1F 163 +#define LAYOUT_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM 164 +#define LAYOUT_SHOAL_CAVE_LOW_TIDE_INNER_ROOM 165 +#define LAYOUT_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM 166 +#define LAYOUT_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM 167 +#define LAYOUT_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM 168 +#define LAYOUT_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM 169 +#define LAYOUT_UNKNOWN_0843E6C0 170 +#define LAYOUT_UNKNOWN_0843E6E4 171 +#define LAYOUT_UNKNOWN_0843E708 172 +#define LAYOUT_UNKNOWN_0843E72C 173 +#define LAYOUT_UNKNOWN_0843E750 174 +#define LAYOUT_UNKNOWN_0843E774 175 +#define LAYOUT_UNKNOWN_0843E798 176 +#define LAYOUT_UNKNOWN_0843E7BC 177 +#define LAYOUT_UNKNOWN_0843E7E0 178 +#define LAYOUT_UNKNOWN_0843E804 179 +#define LAYOUT_UNKNOWN_0843E828 180 +#define LAYOUT_UNKNOWN_0843E84C 181 +#define LAYOUT_UNKNOWN_0843E870 182 +#define LAYOUT_UNKNOWN_0843E894 183 +#define LAYOUT_NEW_MAUVILLE_ENTRANCE 184 +#define LAYOUT_NEW_MAUVILLE_INSIDE 185 +#define LAYOUT_ABANDONED_SHIP_DECK 186 +#define LAYOUT_ABANDONED_SHIP_CORRIDORS_1F 187 +#define LAYOUT_ABANDONED_SHIP_ROOMS_1F 188 +#define LAYOUT_ABANDONED_SHIP_CORRIDORS_B1F 189 +#define LAYOUT_ABANDONED_SHIP_ROOMS_B1F 190 +#define LAYOUT_ABANDONED_SHIP_ROOMS2_B1F 191 +#define LAYOUT_ABANDONED_SHIP_UNDERWATER1 192 +#define LAYOUT_ABANDONED_SHIP_ROOM_B1F 193 +#define LAYOUT_ABANDONED_SHIP_ROOMS2_1F 194 +#define LAYOUT_ABANDONED_SHIP_CAPTAINS_OFFICE 195 +#define LAYOUT_ABANDONED_SHIP_UNDERWATER2 196 +#define LAYOUT_SECRET_BASE_RED_CAVE1 197 +#define LAYOUT_SECRET_BASE_BROWN_CAVE1 198 +#define LAYOUT_SECRET_BASE_BLUE_CAVE1 199 +#define LAYOUT_SECRET_BASE_YELLOW_CAVE1 200 +#define LAYOUT_SECRET_BASE_TREE1 201 +#define LAYOUT_SECRET_BASE_SHRUB1 202 +#define LAYOUT_SECRET_BASE_RED_CAVE2 203 +#define LAYOUT_SECRET_BASE_BROWN_CAVE2 204 +#define LAYOUT_SECRET_BASE_BLUE_CAVE2 205 +#define LAYOUT_SECRET_BASE_YELLOW_CAVE2 206 +#define LAYOUT_SECRET_BASE_TREE2 207 +#define LAYOUT_SECRET_BASE_SHRUB2 208 +#define LAYOUT_SECRET_BASE_RED_CAVE3 209 +#define LAYOUT_SECRET_BASE_BROWN_CAVE3 210 +#define LAYOUT_SECRET_BASE_BLUE_CAVE3 211 +#define LAYOUT_SECRET_BASE_YELLOW_CAVE3 212 +#define LAYOUT_SECRET_BASE_TREE3 213 +#define LAYOUT_SECRET_BASE_SHRUB3 214 +#define LAYOUT_SECRET_BASE_RED_CAVE4 215 +#define LAYOUT_SECRET_BASE_BROWN_CAVE4 216 +#define LAYOUT_SECRET_BASE_BLUE_CAVE4 217 +#define LAYOUT_SECRET_BASE_YELLOW_CAVE4 218 +#define LAYOUT_SECRET_BASE_TREE4 219 +#define LAYOUT_SECRET_BASE_SHRUB4 220 +#define LAYOUT_SINGLE_BATTLE_COLOSSEUM 221 +#define LAYOUT_TRADE_CENTER 222 +#define LAYOUT_RECORD_CORNER 223 +#define LAYOUT_DOUBLE_BATTLE_COLOSSEUM 224 +#define LAYOUT_LINK_CONTEST_ROOM1 225 +#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_29 226 +#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_30 227 +#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_31 228 +#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_32 229 +#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_33 230 +#define LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_34 231 +#define LAYOUT_LINK_CONTEST_ROOM2 232 +#define LAYOUT_LINK_CONTEST_ROOM3 233 +#define LAYOUT_LINK_CONTEST_ROOM4 234 +#define LAYOUT_LINK_CONTEST_ROOM5 235 +#define LAYOUT_LINK_CONTEST_ROOM6 236 +#define LAYOUT_INSIDE_OF_TRUCK 237 +#define LAYOUT_SAFARI_ZONE_NORTHWEST 238 +#define LAYOUT_SAFARI_ZONE_NORTH 239 +#define LAYOUT_SAFARI_ZONE_SOUTHWEST 240 +#define LAYOUT_SAFARI_ZONE_SOUTH 241 +#define LAYOUT_UNKNOWN_08447028 242 +#define LAYOUT_ROUTE109_SEASHORE_HOUSE 243 +#define LAYOUT_ROUTE110_TRICK_HOUSE_ENTRANCE 244 +#define LAYOUT_ROUTE110_TRICK_HOUSE_END 245 +#define LAYOUT_ROUTE110_TRICK_HOUSE_CORRIDOR 246 +#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE1 247 +#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE2 248 +#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE3 249 +#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE4 250 +#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE5 251 +#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE6 252 +#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE7 253 +#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE8 254 +#define LAYOUT_FORTREE_CITY_DECORATION_SHOP 255 +#define LAYOUT_ROUTE110_SEASIDE_CYCLING_ROAD_ENTRANCE 256 +#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_1F 257 +#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_2F 258 +#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_3F 259 +#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_4F 260 +#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_5F 261 +#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP 262 +#define LAYOUT_ROUTE130 263 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY 264 +#define LAYOUT_BATTLE_FRONTIER_OUTSIDE_WEST 265 +#define LAYOUT_BATTLE_ELEVATOR 266 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR 267 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM 268 +#define LAYOUT_RUSTBORO_CITY_DEVON_CORP_3F 269 +#define LAYOUT_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F 270 +#define LAYOUT_ROUTE119_WEATHER_INSTITUTE_1F 271 +#define LAYOUT_ROUTE119_WEATHER_INSTITUTE_2F 272 +#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR 273 +#define LAYOUT_UNDERWATER1 274 +#define LAYOUT_MOSSDEEP_CITY_SPACE_CENTER_1F 275 +#define LAYOUT_MOSSDEEP_CITY_SPACE_CENTER_2F 276 +#define LAYOUT_SS_TIDAL_CORRIDOR 277 +#define LAYOUT_SS_TIDAL_LOWER_DECK 278 +#define LAYOUT_SS_TIDAL_ROOMS 279 +#define LAYOUT_ISLAND_CAVE 280 +#define LAYOUT_ANCIENT_TOMB 281 +#define LAYOUT_UNDERWATER_ROUTE134 282 +#define LAYOUT_UNDERWATER_SEALED_CHAMBER 283 +#define LAYOUT_SEALED_CHAMBER_OUTER_ROOM 284 +#define LAYOUT_VICTORY_ROAD_B1F 285 +#define LAYOUT_VICTORY_ROAD_B2F 286 +#define LAYOUT_ROUTE104_PROTOTYPE 287 +#define LAYOUT_GRANITE_CAVE_STEVENS_ROOM 288 +#define LAYOUT_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS 289 +#define LAYOUT_SOUTHERN_ISLAND_EXTERIOR 290 +#define LAYOUT_SOUTHERN_ISLAND_INTERIOR 291 +#define LAYOUT_JAGGED_PASS 292 +#define LAYOUT_FIERY_PATH 293 +#define LAYOUT_RUSTBORO_CITY_FLAT2_1F 294 +#define LAYOUT_RUSTBORO_CITY_FLAT2_2F 295 +#define LAYOUT_RUSTBORO_CITY_FLAT2_3F 296 +#define LAYOUT_SOOTOPOLIS_CITY_LOTAD_AND_SEEDOT_HOUSE 297 +#define LAYOUT_EVER_GRANDE_CITY_HALL_OF_FAME 298 +#define LAYOUT_LILYCOVE_CITY_COVE_LILY_MOTEL_1F 299 +#define LAYOUT_LILYCOVE_CITY_COVE_LILY_MOTEL_2F 300 +#define LAYOUT_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE 301 +#define LAYOUT_MT_PYRE_EXTERIOR 302 +#define LAYOUT_MT_PYRE_SUMMIT 303 +#define LAYOUT_SEALED_CHAMBER_INNER_ROOM 304 +#define LAYOUT_MOSSDEEP_CITY_GAME_CORNER_1F 305 +#define LAYOUT_MOSSDEEP_CITY_GAME_CORNER_B1F 306 +#define LAYOUT_SOOTOPOLIS_CITY_HOUSE1 307 +#define LAYOUT_SOOTOPOLIS_CITY_HOUSE2 308 +#define LAYOUT_SOOTOPOLIS_CITY_HOUSE3 309 +#define LAYOUT_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS 310 +#define LAYOUT_SCORCHED_SLAB 311 +#define LAYOUT_CAVE_OF_ORIGIN_UNUSED_B4F_LAVA 312 +#define LAYOUT_RUSTBORO_CITY_FLAT1_1F 313 +#define LAYOUT_RUSTBORO_CITY_FLAT1_2F 314 +#define LAYOUT_EVER_GRANDE_CITY_HALL4 315 +#define LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP1 316 +#define LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP2 317 +#define LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP3 318 +#define LAYOUT_ROUTE131_SKY_PILLAR 319 +#define LAYOUT_SKY_PILLAR_ENTRANCE 320 +#define LAYOUT_SKY_PILLAR_OUTSIDE 321 +#define LAYOUT_SKY_PILLAR_1F 322 +#define LAYOUT_SKY_PILLAR_2F 323 +#define LAYOUT_SKY_PILLAR_3F 324 +#define LAYOUT_SKY_PILLAR_4F 325 +#define LAYOUT_SEAFLOOR_CAVERN_ROOM9_LAVA 326 +#define LAYOUT_MOSSDEEP_CITY_STEVENS_HOUSE 327 +#define LAYOUT_SHOAL_CAVE_LOW_TIDE_ICE_ROOM 328 +#define LAYOUT_SAFARI_ZONE_REST_HOUSE 329 +#define LAYOUT_SKY_PILLAR_5F 330 +#define LAYOUT_SKY_PILLAR_TOP 331 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_LOBBY 332 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR 333 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM 334 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM 335 +#define LAYOUT_MAGMA_HIDEOUT_1F 336 +#define LAYOUT_MAGMA_HIDEOUT_2F_1R 337 +#define LAYOUT_MAGMA_HIDEOUT_2F_2R 338 +#define LAYOUT_MAGMA_HIDEOUT_3F_1R 339 +#define LAYOUT_MAGMA_HIDEOUT_3F_2R 340 +#define LAYOUT_MAGMA_HIDEOUT_4F 341 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY 342 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR 343 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM 344 +#define LAYOUT_BATTLE_FRONTIER_OUTSIDE_EAST 345 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY 346 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM 347 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM 348 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY 349 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR 350 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM 351 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1 352 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2 353 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY 354 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR 355 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM 356 +#define LAYOUT_SOOTOPOLIS_CITY_LEGENDS_BATTLE 357 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3 358 +#define LAYOUT_UNKNOWN_084693AC 359 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY 360 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE 361 +#define LAYOUT_BATTLE_PYRAMID_SQUARE01 362 +#define LAYOUT_BATTLE_PYRAMID_SQUARE02 363 +#define LAYOUT_BATTLE_PYRAMID_SQUARE03 364 +#define LAYOUT_BATTLE_PYRAMID_SQUARE04 365 +#define LAYOUT_BATTLE_PYRAMID_SQUARE05 366 +#define LAYOUT_BATTLE_PYRAMID_SQUARE06 367 +#define LAYOUT_BATTLE_PYRAMID_SQUARE07 368 +#define LAYOUT_BATTLE_PYRAMID_SQUARE08 369 +#define LAYOUT_BATTLE_PYRAMID_SQUARE09 370 +#define LAYOUT_BATTLE_PYRAMID_SQUARE10 371 +#define LAYOUT_BATTLE_PYRAMID_SQUARE11 372 +#define LAYOUT_BATTLE_PYRAMID_SQUARE12 373 +#define LAYOUT_BATTLE_PYRAMID_SQUARE13 374 +#define LAYOUT_BATTLE_PYRAMID_SQUARE14 375 +#define LAYOUT_BATTLE_PYRAMID_SQUARE15 376 +#define LAYOUT_BATTLE_PYRAMID_SQUARE16 377 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP 378 +#define LAYOUT_MAGMA_HIDEOUT_3F_3R 379 +#define LAYOUT_MAGMA_HIDEOUT_2F_3R 380 +#define LAYOUT_MIRAGE_TOWER_1F 381 +#define LAYOUT_MIRAGE_TOWER_2F 382 +#define LAYOUT_MIRAGE_TOWER_3F 383 +#define LAYOUT_BATTLE_TENT_LOBBY 384 +#define LAYOUT_BATTLE_TENT_CORRIDOR 385 +#define LAYOUT_BATTLE_TENT_BATTLE_ROOM 386 +#define LAYOUT_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM 387 +#define LAYOUT_MIRAGE_TOWER_4F 388 +#define LAYOUT_DESERT_UNDERPASS 389 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM 390 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR2 391 +#define LAYOUT_ROUTE111_NO_MIRAGE_TOWER 392 +#define LAYOUT_UNION_ROOM 393 +#define LAYOUT_SAFARI_ZONE_NORTHEAST 394 +#define LAYOUT_SAFARI_ZONE_SOUTHEAST 395 +#define LAYOUT_BATTLE_FRONTIER_RANKING_HALL 396 +#define LAYOUT_BATTLE_FRONTIER_LOUNGE1 397 +#define LAYOUT_BATTLE_FRONTIER_BATTLE_POINT_EXCHANGE_SERVICE_CORNER 398 +#define LAYOUT_BATTLE_FRONTIER_RECEPTION_GATE 399 +#define LAYOUT_ARTISAN_CAVE_B1F 400 +#define LAYOUT_ARTISAN_CAVE_1F 401 +#define LAYOUT_FARAWAY_ISLAND_ENTRANCE 402 +#define LAYOUT_FARAWAY_ISLAND_INTERIOR 403 +#define LAYOUT_BIRTH_ISLAND_EXTERIOR 404 +#define LAYOUT_ISLAND_HARBOR 405 +#define LAYOUT_UNDERWATER_MARINE_CAVE 406 +#define LAYOUT_MARINE_CAVE_ENTRANCE 407 +#define LAYOUT_TERRA_CAVE_ENTRANCE 408 +#define LAYOUT_TERRA_CAVE_END 409 +#define LAYOUT_UNDERWATER6 410 +#define LAYOUT_UNDERWATER7 411 +#define LAYOUT_UNDERWATER5 412 +#define LAYOUT_MARINE_CAVE_END 413 +#define LAYOUT_TRAINER_HILL_ENTRANCE 414 +#define LAYOUT_TRAINER_HILL_1F 415 +#define LAYOUT_TRAINER_HILL_2F 416 +#define LAYOUT_TRAINER_HILL_3F 417 +#define LAYOUT_TRAINER_HILL_4F 418 +#define LAYOUT_TRAINER_HILL_ROOF 419 +#define LAYOUT_ALTERING_CAVE 420 +#define LAYOUT_NAVEL_ROCK_EXTERIOR 421 +#define LAYOUT_NAVEL_ROCK_ENTRANCE 422 +#define LAYOUT_NAVEL_ROCK_TOP 423 +#define LAYOUT_NAVEL_ROCK_BOTTOM 424 +#define LAYOUT_NAVEL_ROCK_LADDER_ROOM1 425 +#define LAYOUT_NAVEL_ROCK_LADDER_ROOM2 426 +#define LAYOUT_NAVEL_ROCK_B1F 427 +#define LAYOUT_NAVEL_ROCK_FORK 428 +#define LAYOUT_BATTLE_FRONTIER_LOUNGE2 429 +#define LAYOUT_BATTLE_FRONTIER_SCOTTS_HOUSE 430 +#define LAYOUT_METEOR_FALLS_STEVENS_CAVE 431 +#define LAYOUT_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB_WITH_TABLE 432 +#define LAYOUT_SKY_PILLAR_1F_CLEAN 433 +#define LAYOUT_SKY_PILLAR_2F_CLEAN 434 +#define LAYOUT_SKY_PILLAR_3F_CLEAN 435 +#define LAYOUT_SKY_PILLAR_4F_CLEAN 436 +#define LAYOUT_SKY_PILLAR_5F_CLEAN 437 +#define LAYOUT_SKY_PILLAR_TOP_CLEAN 438 +#define LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F 439 +#define LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_B1F 440 +#define LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F_STAIRS_UNBLOCKED 441 + +#endif // GUARD_CONSTANTS_LAYOUTS_H diff --git a/include/constants/map_groups.h b/include/constants/map_groups.h new file mode 100755 index 000000000..dc2ac2f32 --- /dev/null +++ b/include/constants/map_groups.h @@ -0,0 +1,592 @@ +#ifndef GUARD_CONSTANTS_MAP_GROUPS_H +#define GUARD_CONSTANTS_MAP_GROUPS_H + +// Map Group 0 +#define MAP_PETALBURG_CITY (0 | (0 << 8)) +#define MAP_SLATEPORT_CITY (1 | (0 << 8)) +#define MAP_MAUVILLE_CITY (2 | (0 << 8)) +#define MAP_RUSTBORO_CITY (3 | (0 << 8)) +#define MAP_FORTREE_CITY (4 | (0 << 8)) +#define MAP_LILYCOVE_CITY (5 | (0 << 8)) +#define MAP_MOSSDEEP_CITY (6 | (0 << 8)) +#define MAP_SOOTOPOLIS_CITY (7 | (0 << 8)) +#define MAP_EVER_GRANDE_CITY (8 | (0 << 8)) +#define MAP_LITTLEROOT_TOWN (9 | (0 << 8)) +#define MAP_OLDALE_TOWN (10 | (0 << 8)) +#define MAP_DEWFORD_TOWN (11 | (0 << 8)) +#define MAP_LAVARIDGE_TOWN (12 | (0 << 8)) +#define MAP_FALLARBOR_TOWN (13 | (0 << 8)) +#define MAP_VERDANTURF_TOWN (14 | (0 << 8)) +#define MAP_PACIFIDLOG_TOWN (15 | (0 << 8)) +#define MAP_ROUTE101 (16 | (0 << 8)) +#define MAP_ROUTE102 (17 | (0 << 8)) +#define MAP_ROUTE103 (18 | (0 << 8)) +#define MAP_ROUTE104 (19 | (0 << 8)) +#define MAP_ROUTE105 (20 | (0 << 8)) +#define MAP_ROUTE106 (21 | (0 << 8)) +#define MAP_ROUTE107 (22 | (0 << 8)) +#define MAP_ROUTE108 (23 | (0 << 8)) +#define MAP_ROUTE109 (24 | (0 << 8)) +#define MAP_ROUTE110 (25 | (0 << 8)) +#define MAP_ROUTE111 (26 | (0 << 8)) +#define MAP_ROUTE112 (27 | (0 << 8)) +#define MAP_ROUTE113 (28 | (0 << 8)) +#define MAP_ROUTE114 (29 | (0 << 8)) +#define MAP_ROUTE115 (30 | (0 << 8)) +#define MAP_ROUTE116 (31 | (0 << 8)) +#define MAP_ROUTE117 (32 | (0 << 8)) +#define MAP_ROUTE118 (33 | (0 << 8)) +#define MAP_ROUTE119 (34 | (0 << 8)) +#define MAP_ROUTE120 (35 | (0 << 8)) +#define MAP_ROUTE121 (36 | (0 << 8)) +#define MAP_ROUTE122 (37 | (0 << 8)) +#define MAP_ROUTE123 (38 | (0 << 8)) +#define MAP_ROUTE124 (39 | (0 << 8)) +#define MAP_ROUTE125 (40 | (0 << 8)) +#define MAP_ROUTE126 (41 | (0 << 8)) +#define MAP_ROUTE127 (42 | (0 << 8)) +#define MAP_ROUTE128 (43 | (0 << 8)) +#define MAP_ROUTE129 (44 | (0 << 8)) +#define MAP_ROUTE130 (45 | (0 << 8)) +#define MAP_ROUTE131 (46 | (0 << 8)) +#define MAP_ROUTE132 (47 | (0 << 8)) +#define MAP_ROUTE133 (48 | (0 << 8)) +#define MAP_ROUTE134 (49 | (0 << 8)) +#define MAP_UNDERWATER1 (50 | (0 << 8)) +#define MAP_UNDERWATER2 (51 | (0 << 8)) +#define MAP_UNDERWATER3 (52 | (0 << 8)) +#define MAP_UNDERWATER4 (53 | (0 << 8)) +#define MAP_UNDERWATER5 (54 | (0 << 8)) +#define MAP_UNDERWATER6 (55 | (0 << 8)) +#define MAP_UNDERWATER7 (56 | (0 << 8)) + +// Map Group 1 +#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F (0 | (1 << 8)) +#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F (1 | (1 << 8)) +#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F (2 | (1 << 8)) +#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F (3 | (1 << 8)) +#define MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB (4 | (1 << 8)) + +// Map Group 2 +#define MAP_OLDALE_TOWN_HOUSE1 (0 | (2 << 8)) +#define MAP_OLDALE_TOWN_HOUSE2 (1 | (2 << 8)) +#define MAP_OLDALE_TOWN_POKEMON_CENTER_1F (2 | (2 << 8)) +#define MAP_OLDALE_TOWN_POKEMON_CENTER_2F (3 | (2 << 8)) +#define MAP_OLDALE_TOWN_MART (4 | (2 << 8)) + +// Map Group 3 +#define MAP_DEWFORD_TOWN_HOUSE1 (0 | (3 << 8)) +#define MAP_DEWFORD_TOWN_POKEMON_CENTER_1F (1 | (3 << 8)) +#define MAP_DEWFORD_TOWN_POKEMON_CENTER_2F (2 | (3 << 8)) +#define MAP_DEWFORD_TOWN_GYM (3 | (3 << 8)) +#define MAP_DEWFORD_TOWN_HALL (4 | (3 << 8)) +#define MAP_DEWFORD_TOWN_HOUSE2 (5 | (3 << 8)) + +// Map Group 4 +#define MAP_LAVARIDGE_TOWN_HERB_SHOP (0 | (4 << 8)) +#define MAP_LAVARIDGE_TOWN_GYM_1F (1 | (4 << 8)) +#define MAP_LAVARIDGE_TOWN_GYM_B1F (2 | (4 << 8)) +#define MAP_LAVARIDGE_TOWN_HOUSE (3 | (4 << 8)) +#define MAP_LAVARIDGE_TOWN_MART (4 | (4 << 8)) +#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F (5 | (4 << 8)) +#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_2F (6 | (4 << 8)) + +// Map Group 5 +#define MAP_FALLARBOR_TOWN_MART (0 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY (1 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_BATTLE_TENT_CORRIDOR (2 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM (3 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F (4 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F (5 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_HOUSE1 (6 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_HOUSE2 (7 | (5 << 8)) + +// Map Group 6 +#define MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY (0 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_BATTLE_TENT_CORRIDOR (1 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM (2 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_MART (3 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F (4 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_2F (5 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_WANDAS_HOUSE (6 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE (7 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_HOUSE (8 | (6 << 8)) + +// Map Group 7 +#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F (0 | (7 << 8)) +#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F (1 | (7 << 8)) +#define MAP_PACIFIDLOG_TOWN_HOUSE1 (2 | (7 << 8)) +#define MAP_PACIFIDLOG_TOWN_HOUSE2 (3 | (7 << 8)) +#define MAP_PACIFIDLOG_TOWN_HOUSE3 (4 | (7 << 8)) +#define MAP_PACIFIDLOG_TOWN_HOUSE4 (5 | (7 << 8)) +#define MAP_PACIFIDLOG_TOWN_HOUSE5 (6 | (7 << 8)) + +// Map Group 8 +#define MAP_PETALBURG_CITY_WALLYS_HOUSE (0 | (8 << 8)) +#define MAP_PETALBURG_CITY_GYM (1 | (8 << 8)) +#define MAP_PETALBURG_CITY_HOUSE1 (2 | (8 << 8)) +#define MAP_PETALBURG_CITY_HOUSE2 (3 | (8 << 8)) +#define MAP_PETALBURG_CITY_POKEMON_CENTER_1F (4 | (8 << 8)) +#define MAP_PETALBURG_CITY_POKEMON_CENTER_2F (5 | (8 << 8)) +#define MAP_PETALBURG_CITY_MART (6 | (8 << 8)) + +// Map Group 9 +#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_1F (0 | (9 << 8)) +#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_2F (1 | (9 << 8)) +#define MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY (2 | (9 << 8)) +#define MAP_SLATEPORT_CITY_BATTLE_TENT_CORRIDOR (3 | (9 << 8)) +#define MAP_SLATEPORT_CITY_BATTLE_TENT_BATTLE_ROOM (4 | (9 << 8)) +#define MAP_SLATEPORT_CITY_HOUSE1 (5 | (9 << 8)) +#define MAP_SLATEPORT_CITY_POKEMON_FAN_CLUB (6 | (9 << 8)) +#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F (7 | (9 << 8)) +#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F (8 | (9 << 8)) +#define MAP_SLATEPORT_CITY_HARBOR (9 | (9 << 8)) +#define MAP_SLATEPORT_CITY_HOUSE2 (10 | (9 << 8)) +#define MAP_SLATEPORT_CITY_POKEMON_CENTER_1F (11 | (9 << 8)) +#define MAP_SLATEPORT_CITY_POKEMON_CENTER_2F (12 | (9 << 8)) +#define MAP_SLATEPORT_CITY_MART (13 | (9 << 8)) + +// Map Group 10 +#define MAP_MAUVILLE_CITY_GYM (0 | (10 << 8)) +#define MAP_MAUVILLE_CITY_BIKE_SHOP (1 | (10 << 8)) +#define MAP_MAUVILLE_CITY_HOUSE1 (2 | (10 << 8)) +#define MAP_MAUVILLE_CITY_GAME_CORNER (3 | (10 << 8)) +#define MAP_MAUVILLE_CITY_HOUSE2 (4 | (10 << 8)) +#define MAP_MAUVILLE_CITY_POKEMON_CENTER_1F (5 | (10 << 8)) +#define MAP_MAUVILLE_CITY_POKEMON_CENTER_2F (6 | (10 << 8)) +#define MAP_MAUVILLE_CITY_MART (7 | (10 << 8)) + +// Map Group 11 +#define MAP_RUSTBORO_CITY_DEVON_CORP_1F (0 | (11 << 8)) +#define MAP_RUSTBORO_CITY_DEVON_CORP_2F (1 | (11 << 8)) +#define MAP_RUSTBORO_CITY_DEVON_CORP_3F (2 | (11 << 8)) +#define MAP_RUSTBORO_CITY_GYM (3 | (11 << 8)) +#define MAP_RUSTBORO_CITY_POKEMON_SCHOOL (4 | (11 << 8)) +#define MAP_RUSTBORO_CITY_POKEMON_CENTER_1F (5 | (11 << 8)) +#define MAP_RUSTBORO_CITY_POKEMON_CENTER_2F (6 | (11 << 8)) +#define MAP_RUSTBORO_CITY_MART (7 | (11 << 8)) +#define MAP_RUSTBORO_CITY_FLAT1_1F (8 | (11 << 8)) +#define MAP_RUSTBORO_CITY_FLAT1_2F (9 | (11 << 8)) +#define MAP_RUSTBORO_CITY_HOUSE1 (10 | (11 << 8)) +#define MAP_RUSTBORO_CITY_CUTTERS_HOUSE (11 | (11 << 8)) +#define MAP_RUSTBORO_CITY_HOUSE2 (12 | (11 << 8)) +#define MAP_RUSTBORO_CITY_FLAT2_1F (13 | (11 << 8)) +#define MAP_RUSTBORO_CITY_FLAT2_2F (14 | (11 << 8)) +#define MAP_RUSTBORO_CITY_FLAT2_3F (15 | (11 << 8)) +#define MAP_RUSTBORO_CITY_HOUSE3 (16 | (11 << 8)) + +// Map Group 12 +#define MAP_FORTREE_CITY_HOUSE1 (0 | (12 << 8)) +#define MAP_FORTREE_CITY_GYM (1 | (12 << 8)) +#define MAP_FORTREE_CITY_POKEMON_CENTER_1F (2 | (12 << 8)) +#define MAP_FORTREE_CITY_POKEMON_CENTER_2F (3 | (12 << 8)) +#define MAP_FORTREE_CITY_MART (4 | (12 << 8)) +#define MAP_FORTREE_CITY_HOUSE2 (5 | (12 << 8)) +#define MAP_FORTREE_CITY_HOUSE3 (6 | (12 << 8)) +#define MAP_FORTREE_CITY_HOUSE4 (7 | (12 << 8)) +#define MAP_FORTREE_CITY_HOUSE5 (8 | (12 << 8)) +#define MAP_FORTREE_CITY_DECORATION_SHOP (9 | (12 << 8)) + +// Map Group 13 +#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F (0 | (13 << 8)) +#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F (1 | (13 << 8)) +#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F (2 | (13 << 8)) +#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F (3 | (13 << 8)) +#define MAP_LILYCOVE_CITY_CONTEST_LOBBY (4 | (13 << 8)) +#define MAP_LILYCOVE_CITY_CONTEST_HALL (5 | (13 << 8)) +#define MAP_LILYCOVE_CITY_POKEMON_CENTER_1F (6 | (13 << 8)) +#define MAP_LILYCOVE_CITY_POKEMON_CENTER_2F (7 | (13 << 8)) +#define MAP_LILYCOVE_CITY_UNUSED_MART (8 | (13 << 8)) +#define MAP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB (9 | (13 << 8)) +#define MAP_LILYCOVE_CITY_HARBOR (10 | (13 << 8)) +#define MAP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE (11 | (13 << 8)) +#define MAP_LILYCOVE_CITY_HOUSE1 (12 | (13 << 8)) +#define MAP_LILYCOVE_CITY_HOUSE2 (13 | (13 << 8)) +#define MAP_LILYCOVE_CITY_HOUSE3 (14 | (13 << 8)) +#define MAP_LILYCOVE_CITY_HOUSE4 (15 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F (16 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F (17 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F (18 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F (19 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F (20 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP (21 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR (22 | (13 << 8)) + +// Map Group 14 +#define MAP_MOSSDEEP_CITY_GYM (0 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_HOUSE1 (1 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_HOUSE2 (2 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F (3 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_2F (4 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_MART (5 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_HOUSE3 (6 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_STEVENS_HOUSE (7 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_HOUSE4 (8 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_SPACE_CENTER_1F (9 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_SPACE_CENTER_2F (10 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_GAME_CORNER_1F (11 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_GAME_CORNER_B1F (12 | (14 << 8)) + +// Map Group 15 +#define MAP_SOOTOPOLIS_CITY_GYM_1F (0 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_GYM_B1F (1 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F (2 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F (3 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_MART (4 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE1 (5 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE2 (6 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE3 (7 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE4 (8 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE5 (9 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE6 (10 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE7 (11 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_LOTAD_AND_SEEDOT_HOUSE (12 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F (13 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_B1F (14 | (15 << 8)) + +// Map Group 16 +#define MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM (0 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_PHOEBES_ROOM (1 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_GLACIAS_ROOM (2 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_DRAKES_ROOM (3 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_CHAMPIONS_ROOM (4 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_HALL1 (5 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_HALL2 (6 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_HALL3 (7 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_HALL4 (8 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_HALL5 (9 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F (10 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_HALL_OF_FAME (11 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F (12 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_2F (13 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F (14 | (16 << 8)) + +// Map Group 17 +#define MAP_ROUTE104_MR_BRINEYS_HOUSE (0 | (17 << 8)) +#define MAP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP (1 | (17 << 8)) + +// Map Group 18 +#define MAP_ROUTE111_WINSTRATE_FAMILYS_HOUSE (0 | (18 << 8)) +#define MAP_ROUTE111_OLD_LADYS_REST_STOP (1 | (18 << 8)) + +// Map Group 19 +#define MAP_ROUTE112_CABLE_CAR_STATION (0 | (19 << 8)) +#define MAP_MT_CHIMNEY_CABLE_CAR_STATION (1 | (19 << 8)) + +// Map Group 20 +#define MAP_ROUTE114_FOSSIL_MANIACS_HOUSE (0 | (20 << 8)) +#define MAP_ROUTE114_FOSSIL_MANIACS_TUNNEL (1 | (20 << 8)) +#define MAP_ROUTE114_LANETTES_HOUSE (2 | (20 << 8)) + +// Map Group 21 +#define MAP_ROUTE116_TUNNELERS_REST_HOUSE (0 | (21 << 8)) + +// Map Group 22 +#define MAP_ROUTE117_POKEMON_DAY_CARE (0 | (22 << 8)) + +// Map Group 23 +#define MAP_ROUTE121_SAFARI_ZONE_ENTRANCE (0 | (23 << 8)) + +// Map Group 24 +#define MAP_METEOR_FALLS_1F_1R (0 | (24 << 8)) +#define MAP_METEOR_FALLS_1F_2R (1 | (24 << 8)) +#define MAP_METEOR_FALLS_B1F_1R (2 | (24 << 8)) +#define MAP_METEOR_FALLS_B1F_2R (3 | (24 << 8)) +#define MAP_RUSTURF_TUNNEL (4 | (24 << 8)) +#define MAP_UNDERWATER_SOOTOPOLIS_CITY (5 | (24 << 8)) +#define MAP_DESERT_RUINS (6 | (24 << 8)) +#define MAP_GRANITE_CAVE_1F (7 | (24 << 8)) +#define MAP_GRANITE_CAVE_B1F (8 | (24 << 8)) +#define MAP_GRANITE_CAVE_B2F (9 | (24 << 8)) +#define MAP_GRANITE_CAVE_STEVENS_ROOM (10 | (24 << 8)) +#define MAP_PETALBURG_WOODS (11 | (24 << 8)) +#define MAP_MT_CHIMNEY (12 | (24 << 8)) +#define MAP_JAGGED_PASS (13 | (24 << 8)) +#define MAP_FIERY_PATH (14 | (24 << 8)) +#define MAP_MT_PYRE_1F (15 | (24 << 8)) +#define MAP_MT_PYRE_2F (16 | (24 << 8)) +#define MAP_MT_PYRE_3F (17 | (24 << 8)) +#define MAP_MT_PYRE_4F (18 | (24 << 8)) +#define MAP_MT_PYRE_5F (19 | (24 << 8)) +#define MAP_MT_PYRE_6F (20 | (24 << 8)) +#define MAP_MT_PYRE_EXTERIOR (21 | (24 << 8)) +#define MAP_MT_PYRE_SUMMIT (22 | (24 << 8)) +#define MAP_AQUA_HIDEOUT_1F (23 | (24 << 8)) +#define MAP_AQUA_HIDEOUT_B1F (24 | (24 << 8)) +#define MAP_AQUA_HIDEOUT_B2F (25 | (24 << 8)) +#define MAP_UNDERWATER_SEAFLOOR_CAVERN (26 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ENTRANCE (27 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM1 (28 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM2 (29 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM3 (30 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM4 (31 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM5 (32 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM6 (33 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM7 (34 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM8 (35 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM9 (36 | (24 << 8)) +#define MAP_CAVE_OF_ORIGIN_ENTRANCE (37 | (24 << 8)) +#define MAP_CAVE_OF_ORIGIN_1F (38 | (24 << 8)) +#define MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP1 (39 | (24 << 8)) +#define MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP2 (40 | (24 << 8)) +#define MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP3 (41 | (24 << 8)) +#define MAP_CAVE_OF_ORIGIN_B1F (42 | (24 << 8)) +#define MAP_VICTORY_ROAD_1F (43 | (24 << 8)) +#define MAP_VICTORY_ROAD_B1F (44 | (24 << 8)) +#define MAP_VICTORY_ROAD_B2F (45 | (24 << 8)) +#define MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM (46 | (24 << 8)) +#define MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM (47 | (24 << 8)) +#define MAP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM (48 | (24 << 8)) +#define MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM (49 | (24 << 8)) +#define MAP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM (50 | (24 << 8)) +#define MAP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM (51 | (24 << 8)) +#define MAP_NEW_MAUVILLE_ENTRANCE (52 | (24 << 8)) +#define MAP_NEW_MAUVILLE_INSIDE (53 | (24 << 8)) +#define MAP_ABANDONED_SHIP_DECK (54 | (24 << 8)) +#define MAP_ABANDONED_SHIP_CORRIDORS_1F (55 | (24 << 8)) +#define MAP_ABANDONED_SHIP_ROOMS_1F (56 | (24 << 8)) +#define MAP_ABANDONED_SHIP_CORRIDORS_B1F (57 | (24 << 8)) +#define MAP_ABANDONED_SHIP_ROOMS_B1F (58 | (24 << 8)) +#define MAP_ABANDONED_SHIP_ROOMS2_B1F (59 | (24 << 8)) +#define MAP_ABANDONED_SHIP_UNDERWATER1 (60 | (24 << 8)) +#define MAP_ABANDONED_SHIP_ROOM_B1F (61 | (24 << 8)) +#define MAP_ABANDONED_SHIP_ROOMS2_1F (62 | (24 << 8)) +#define MAP_ABANDONED_SHIP_CAPTAINS_OFFICE (63 | (24 << 8)) +#define MAP_ABANDONED_SHIP_UNDERWATER2 (64 | (24 << 8)) +#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS (65 | (24 << 8)) +#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS (66 | (24 << 8)) +#define MAP_ISLAND_CAVE (67 | (24 << 8)) +#define MAP_ANCIENT_TOMB (68 | (24 << 8)) +#define MAP_UNDERWATER_ROUTE134 (69 | (24 << 8)) +#define MAP_UNDERWATER_SEALED_CHAMBER (70 | (24 << 8)) +#define MAP_SEALED_CHAMBER_OUTER_ROOM (71 | (24 << 8)) +#define MAP_SEALED_CHAMBER_INNER_ROOM (72 | (24 << 8)) +#define MAP_SCORCHED_SLAB (73 | (24 << 8)) +#define MAP_AQUA_HIDEOUT_UNUSED_RUBY_MAP1 (74 | (24 << 8)) +#define MAP_AQUA_HIDEOUT_UNUSED_RUBY_MAP2 (75 | (24 << 8)) +#define MAP_AQUA_HIDEOUT_UNUSED_RUBY_MAP3 (76 | (24 << 8)) +#define MAP_SKY_PILLAR_ENTRANCE (77 | (24 << 8)) +#define MAP_SKY_PILLAR_OUTSIDE (78 | (24 << 8)) +#define MAP_SKY_PILLAR_1F (79 | (24 << 8)) +#define MAP_SKY_PILLAR_2F (80 | (24 << 8)) +#define MAP_SKY_PILLAR_3F (81 | (24 << 8)) +#define MAP_SKY_PILLAR_4F (82 | (24 << 8)) +#define MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM (83 | (24 << 8)) +#define MAP_SKY_PILLAR_5F (84 | (24 << 8)) +#define MAP_SKY_PILLAR_TOP (85 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_1F (86 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_2F_1R (87 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_2F_2R (88 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_3F_1R (89 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_3F_2R (90 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_4F (91 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_3F_3R (92 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_2F_3R (93 | (24 << 8)) +#define MAP_MIRAGE_TOWER_1F (94 | (24 << 8)) +#define MAP_MIRAGE_TOWER_2F (95 | (24 << 8)) +#define MAP_MIRAGE_TOWER_3F (96 | (24 << 8)) +#define MAP_MIRAGE_TOWER_4F (97 | (24 << 8)) +#define MAP_DESERT_UNDERPASS (98 | (24 << 8)) +#define MAP_ARTISAN_CAVE_B1F (99 | (24 << 8)) +#define MAP_ARTISAN_CAVE_1F (100 | (24 << 8)) +#define MAP_UNDERWATER_MARINE_CAVE (101 | (24 << 8)) +#define MAP_MARINE_CAVE_ENTRANCE (102 | (24 << 8)) +#define MAP_MARINE_CAVE_END (103 | (24 << 8)) +#define MAP_TERRA_CAVE_ENTRANCE (104 | (24 << 8)) +#define MAP_TERRA_CAVE_END (105 | (24 << 8)) +#define MAP_ALTERING_CAVE (106 | (24 << 8)) +#define MAP_METEOR_FALLS_STEVENS_CAVE (107 | (24 << 8)) + +// Map Group 25 +#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8)) +#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8)) +#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8)) +#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8)) +#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8)) +#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8)) +#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8)) +#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8)) +#define MAP_SINGLE_BATTLE_COLOSSEUM (24 | (25 << 8)) +#define MAP_TRADE_CENTER (25 | (25 << 8)) +#define MAP_RECORD_CORNER (26 | (25 << 8)) +#define MAP_DOUBLE_BATTLE_COLOSSEUM (27 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM1 (28 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_29 (29 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_30 (30 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_31 (31 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_32 (32 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_33 (33 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_34 (34 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM2 (35 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM3 (36 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM4 (37 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM5 (38 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM6 (39 | (25 << 8)) +#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8)) +#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8)) +#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8)) +#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE01 (44 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE02 (45 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE03 (46 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE04 (47 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE05 (48 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE06 (49 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE07 (50 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE08 (51 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE09 (52 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE10 (53 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE11 (54 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE12 (55 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE13 (56 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE14 (57 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE15 (58 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE16 (59 | (25 << 8)) +#define MAP_UNION_ROOM (60 | (25 << 8)) + +// Map Group 26 +#define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8)) +#define MAP_SAFARI_ZONE_NORTH (1 | (26 << 8)) +#define MAP_SAFARI_ZONE_SOUTHWEST (2 | (26 << 8)) +#define MAP_SAFARI_ZONE_SOUTH (3 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_OUTSIDE_WEST (4 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY (5 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR (6 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR (7 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM (8 | (26 << 8)) +#define MAP_SOUTHERN_ISLAND_EXTERIOR (9 | (26 << 8)) +#define MAP_SOUTHERN_ISLAND_INTERIOR (10 | (26 << 8)) +#define MAP_SAFARI_ZONE_REST_HOUSE (11 | (26 << 8)) +#define MAP_SAFARI_ZONE_NORTHEAST (12 | (26 << 8)) +#define MAP_SAFARI_ZONE_SOUTHEAST (13 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_OUTSIDE_EAST (14 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM (15 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR2 (16 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM2 (17 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY (18 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR (19 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM (20 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM (21 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY (22 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR (23 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM (24 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY (25 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE (26 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP (27 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY (28 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR (29 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM (30 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY (31 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM (32 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM (33 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY (34 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR (35 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM (36 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1 (37 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2 (38 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3 (39 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_RANKING_HALL (40 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE1 (41 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_POINT_EXCHANGE_SERVICE_CORNER (42 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE2 (43 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE3 (44 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE4 (45 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_SCOTTS_HOUSE (46 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE5 (47 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE6 (48 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE7 (49 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_RECEPTION_GATE (50 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE8 (51 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE9 (52 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F (53 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_2F (54 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_MART (55 | (26 << 8)) +#define MAP_FARAWAY_ISLAND_ENTRANCE (56 | (26 << 8)) +#define MAP_FARAWAY_ISLAND_INTERIOR (57 | (26 << 8)) +#define MAP_BIRTH_ISLAND_EXTERIOR (58 | (26 << 8)) +#define MAP_BIRTH_ISLAND_HARBOR (59 | (26 << 8)) +#define MAP_TRAINER_HILL_ENTRANCE (60 | (26 << 8)) +#define MAP_TRAINER_HILL_1F (61 | (26 << 8)) +#define MAP_TRAINER_HILL_2F (62 | (26 << 8)) +#define MAP_TRAINER_HILL_3F (63 | (26 << 8)) +#define MAP_TRAINER_HILL_4F (64 | (26 << 8)) +#define MAP_TRAINER_HILL_ROOF (65 | (26 << 8)) +#define MAP_NAVEL_ROCK_EXTERIOR (66 | (26 << 8)) +#define MAP_NAVEL_ROCK_HARBOR (67 | (26 << 8)) +#define MAP_NAVEL_ROCK_ENTRANCE (68 | (26 << 8)) +#define MAP_NAVEL_ROCK_B1F (69 | (26 << 8)) +#define MAP_NAVEL_ROCK_FORK (70 | (26 << 8)) +#define MAP_NAVEL_ROCK_UP1 (71 | (26 << 8)) +#define MAP_NAVEL_ROCK_UP2 (72 | (26 << 8)) +#define MAP_NAVEL_ROCK_UP3 (73 | (26 << 8)) +#define MAP_NAVEL_ROCK_UP4 (74 | (26 << 8)) +#define MAP_NAVEL_ROCK_TOP (75 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN01 (76 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN02 (77 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN03 (78 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN04 (79 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN05 (80 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN06 (81 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN07 (82 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN08 (83 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN09 (84 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN10 (85 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN11 (86 | (26 << 8)) +#define MAP_NAVEL_ROCK_BOTTOM (87 | (26 << 8)) +#define MAP_TRAINER_HILL_ELEVATOR (88 | (26 << 8)) + +// Map Group 27 +#define MAP_ROUTE104_PROTOTYPE (0 | (27 << 8)) +#define MAP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP (1 | (27 << 8)) + +// Map Group 28 +#define MAP_ROUTE109_SEASHORE_HOUSE (0 | (28 << 8)) + +// Map Group 29 +#define MAP_ROUTE110_TRICK_HOUSE_ENTRANCE (0 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_END (1 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_CORRIDOR (2 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE1 (3 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE2 (4 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE3 (5 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE4 (6 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE5 (7 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE6 (8 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE7 (9 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE8 (10 | (29 << 8)) +#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE (11 | (29 << 8)) +#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE (12 | (29 << 8)) + +// Map Group 30 +#define MAP_ROUTE113_GLASS_WORKSHOP (0 | (30 << 8)) + +// Map Group 31 +#define MAP_ROUTE123_BERRY_MASTERS_HOUSE (0 | (31 << 8)) + +// Map Group 32 +#define MAP_ROUTE119_WEATHER_INSTITUTE_1F (0 | (32 << 8)) +#define MAP_ROUTE119_WEATHER_INSTITUTE_2F (1 | (32 << 8)) +#define MAP_ROUTE119_HOUSE (2 | (32 << 8)) + +// Map Group 33 +#define MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE (0 | (33 << 8)) + +#define MAP_GROUPS_COUNT 34 + +#endif // GUARD_CONSTANTS_MAP_GROUPS_H diff --git a/include/constants/map_scripts.h b/include/constants/map_scripts.h new file mode 100644 index 000000000..d5fd40156 --- /dev/null +++ b/include/constants/map_scripts.h @@ -0,0 +1,12 @@ +#ifndef GUARD_CONSTANTS_MAP_SCRIPTS_H +#define GUARD_CONSTANTS_MAP_SCRIPTS_H + +#define MAP_SCRIPT_ON_LOAD 1 +#define MAP_SCRIPT_ON_FRAME_TABLE 2 +#define MAP_SCRIPT_ON_TRANSITION 3 +#define MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE 4 +#define MAP_SCRIPT_ON_RESUME 5 +#define MAP_SCRIPT_ON_DIVE_WARP 6 +#define MAP_SCRIPT_ON_RETURN_TO_FIELD 7 + +#endif // GUARD_CONSTANTS_MAP_SCRIPTS_H
\ No newline at end of file diff --git a/include/constants/map_types.h b/include/constants/map_types.h index 504575859..8d071fd41 100755 --- a/include/constants/map_types.h +++ b/include/constants/map_types.h @@ -1,14 +1,14 @@ #ifndef GUARD_CONSTANTS_MAP_TYPES_H #define GUARD_CONSTANTS_MAP_TYPES_H -#define MAP_TYPE_0 0 +#define MAP_TYPE_UNUSED_1 0 #define MAP_TYPE_TOWN 1 #define MAP_TYPE_CITY 2 #define MAP_TYPE_ROUTE 3 #define MAP_TYPE_UNDERGROUND 4 #define MAP_TYPE_UNDERWATER 5 -#define MAP_TYPE_6 6 -#define MAP_TYPE_7 7 +#define MAP_TYPE_OCEAN_ROUTE 6 +#define MAP_TYPE_UNUSED_2 7 #define MAP_TYPE_INDOOR 8 #define MAP_TYPE_SECRET_BASE 9 diff --git a/include/constants/maps.h b/include/constants/maps.h index c65f373af..e1e2da992 100644 --- a/include/constants/maps.h +++ b/include/constants/maps.h @@ -1,598 +1,11 @@ #ifndef GUARD_CONSTANTS_MAPS_H #define GUARD_CONSTANTS_MAPS_H -// Map Group 0 -#define MAP_PETALBURG_CITY (0 | (0 << 8)) -#define MAP_SLATEPORT_CITY (1 | (0 << 8)) -#define MAP_MAUVILLE_CITY (2 | (0 << 8)) -#define MAP_RUSTBORO_CITY (3 | (0 << 8)) -#define MAP_FORTREE_CITY (4 | (0 << 8)) -#define MAP_LILYCOVE_CITY (5 | (0 << 8)) -#define MAP_MOSSDEEP_CITY (6 | (0 << 8)) -#define MAP_SOOTOPOLIS_CITY (7 | (0 << 8)) -#define MAP_EVER_GRANDE_CITY (8 | (0 << 8)) -#define MAP_LITTLEROOT_TOWN (9 | (0 << 8)) -#define MAP_OLDALE_TOWN (10 | (0 << 8)) -#define MAP_DEWFORD_TOWN (11 | (0 << 8)) -#define MAP_LAVARIDGE_TOWN (12 | (0 << 8)) -#define MAP_FALLARBOR_TOWN (13 | (0 << 8)) -#define MAP_VERDANTURF_TOWN (14 | (0 << 8)) -#define MAP_PACIFIDLOG_TOWN (15 | (0 << 8)) -#define MAP_ROUTE101 (16 | (0 << 8)) -#define MAP_ROUTE102 (17 | (0 << 8)) -#define MAP_ROUTE103 (18 | (0 << 8)) -#define MAP_ROUTE104 (19 | (0 << 8)) -#define MAP_ROUTE105 (20 | (0 << 8)) -#define MAP_ROUTE106 (21 | (0 << 8)) -#define MAP_ROUTE107 (22 | (0 << 8)) -#define MAP_ROUTE108 (23 | (0 << 8)) -#define MAP_ROUTE109 (24 | (0 << 8)) -#define MAP_ROUTE110 (25 | (0 << 8)) -#define MAP_ROUTE111 (26 | (0 << 8)) -#define MAP_ROUTE112 (27 | (0 << 8)) -#define MAP_ROUTE113 (28 | (0 << 8)) -#define MAP_ROUTE114 (29 | (0 << 8)) -#define MAP_ROUTE115 (30 | (0 << 8)) -#define MAP_ROUTE116 (31 | (0 << 8)) -#define MAP_ROUTE117 (32 | (0 << 8)) -#define MAP_ROUTE118 (33 | (0 << 8)) -#define MAP_ROUTE119 (34 | (0 << 8)) -#define MAP_ROUTE120 (35 | (0 << 8)) -#define MAP_ROUTE121 (36 | (0 << 8)) -#define MAP_ROUTE122 (37 | (0 << 8)) -#define MAP_ROUTE123 (38 | (0 << 8)) -#define MAP_ROUTE124 (39 | (0 << 8)) -#define MAP_ROUTE125 (40 | (0 << 8)) -#define MAP_ROUTE126 (41 | (0 << 8)) -#define MAP_ROUTE127 (42 | (0 << 8)) -#define MAP_ROUTE128 (43 | (0 << 8)) -#define MAP_ROUTE129 (44 | (0 << 8)) -#define MAP_ROUTE130 (45 | (0 << 8)) -#define MAP_ROUTE131 (46 | (0 << 8)) -#define MAP_ROUTE132 (47 | (0 << 8)) -#define MAP_ROUTE133 (48 | (0 << 8)) -#define MAP_ROUTE134 (49 | (0 << 8)) -#define MAP_UNDERWATER1 (50 | (0 << 8)) -#define MAP_UNDERWATER2 (51 | (0 << 8)) -#define MAP_UNDERWATER3 (52 | (0 << 8)) -#define MAP_UNDERWATER4 (53 | (0 << 8)) -#define MAP_UNDERWATER5 (54 | (0 << 8)) -#define MAP_UNDERWATER6 (55 | (0 << 8)) -#define MAP_UNDERWATER7 (56 | (0 << 8)) - -// Map Group 1 -#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F (0 | (1 << 8)) -#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F (1 | (1 << 8)) -#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F (2 | (1 << 8)) -#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F (3 | (1 << 8)) -#define MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB (4 | (1 << 8)) - -// Map Group 2 -#define MAP_OLDALE_TOWN_HOUSE1 (0 | (2 << 8)) -#define MAP_OLDALE_TOWN_HOUSE2 (1 | (2 << 8)) -#define MAP_OLDALE_TOWN_POKEMON_CENTER_1F (2 | (2 << 8)) -#define MAP_OLDALE_TOWN_POKEMON_CENTER_2F (3 | (2 << 8)) -#define MAP_OLDALE_TOWN_MART (4 | (2 << 8)) - -// Map Group 3 -#define MAP_DEWFORD_TOWN_HOUSE1 (0 | (3 << 8)) -#define MAP_DEWFORD_TOWN_POKEMON_CENTER_1F (1 | (3 << 8)) -#define MAP_DEWFORD_TOWN_POKEMON_CENTER_2F (2 | (3 << 8)) -#define MAP_DEWFORD_TOWN_GYM (3 | (3 << 8)) -#define MAP_DEWFORD_TOWN_HALL (4 | (3 << 8)) -#define MAP_DEWFORD_TOWN_HOUSE2 (5 | (3 << 8)) - -// Map Group 4 -#define MAP_LAVARIDGE_TOWN_HERB_SHOP (0 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_GYM_1F (1 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_GYM_B1F (2 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_HOUSE (3 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_MART (4 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F (5 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_2F (6 | (4 << 8)) - -// Map Group 5 -#define MAP_FALLARBOR_TOWN_MART (0 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY (1 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_BATTLE_TENT_CORRIDOR (2 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM (3 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F (4 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F (5 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_HOUSE1 (6 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_HOUSE2 (7 | (5 << 8)) - -// Map Group 6 -#define MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY (0 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_BATTLE_TENT_CORRIDOR (1 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM (2 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_MART (3 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F (4 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_2F (5 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_WANDAS_HOUSE (6 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE (7 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_HOUSE (8 | (6 << 8)) - -// Map Group 7 -#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F (0 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F (1 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_HOUSE1 (2 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_HOUSE2 (3 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_HOUSE3 (4 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_HOUSE4 (5 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_HOUSE5 (6 | (7 << 8)) - -// Map Group 8 -#define MAP_PETALBURG_CITY_WALLYS_HOUSE (0 | (8 << 8)) -#define MAP_PETALBURG_CITY_GYM (1 | (8 << 8)) -#define MAP_PETALBURG_CITY_HOUSE1 (2 | (8 << 8)) -#define MAP_PETALBURG_CITY_HOUSE2 (3 | (8 << 8)) -#define MAP_PETALBURG_CITY_POKEMON_CENTER_1F (4 | (8 << 8)) -#define MAP_PETALBURG_CITY_POKEMON_CENTER_2F (5 | (8 << 8)) -#define MAP_PETALBURG_CITY_MART (6 | (8 << 8)) - -// Map Group 9 -#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_1F (0 | (9 << 8)) -#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_2F (1 | (9 << 8)) -#define MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY (2 | (9 << 8)) -#define MAP_SLATEPORT_CITY_BATTLE_TENT_CORRIDOR (3 | (9 << 8)) -#define MAP_SLATEPORT_CITY_BATTLE_TENT_BATTLE_ROOM (4 | (9 << 8)) -#define MAP_SLATEPORT_CITY_HOUSE1 (5 | (9 << 8)) -#define MAP_SLATEPORT_CITY_POKEMON_FAN_CLUB (6 | (9 << 8)) -#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F (7 | (9 << 8)) -#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F (8 | (9 << 8)) -#define MAP_SLATEPORT_CITY_HARBOR (9 | (9 << 8)) -#define MAP_SLATEPORT_CITY_HOUSE2 (10 | (9 << 8)) -#define MAP_SLATEPORT_CITY_POKEMON_CENTER_1F (11 | (9 << 8)) -#define MAP_SLATEPORT_CITY_POKEMON_CENTER_2F (12 | (9 << 8)) -#define MAP_SLATEPORT_CITY_MART (13 | (9 << 8)) - -// Map Group 10 -#define MAP_MAUVILLE_CITY_GYM (0 | (10 << 8)) -#define MAP_MAUVILLE_CITY_BIKE_SHOP (1 | (10 << 8)) -#define MAP_MAUVILLE_CITY_HOUSE1 (2 | (10 << 8)) -#define MAP_MAUVILLE_CITY_GAME_CORNER (3 | (10 << 8)) -#define MAP_MAUVILLE_CITY_HOUSE2 (4 | (10 << 8)) -#define MAP_MAUVILLE_CITY_POKEMON_CENTER_1F (5 | (10 << 8)) -#define MAP_MAUVILLE_CITY_POKEMON_CENTER_2F (6 | (10 << 8)) -#define MAP_MAUVILLE_CITY_MART (7 | (10 << 8)) - -// Map Group 11 -#define MAP_RUSTBORO_CITY_DEVON_CORP_1F (0 | (11 << 8)) -#define MAP_RUSTBORO_CITY_DEVON_CORP_2F (1 | (11 << 8)) -#define MAP_RUSTBORO_CITY_DEVON_CORP_3F (2 | (11 << 8)) -#define MAP_RUSTBORO_CITY_GYM (3 | (11 << 8)) -#define MAP_RUSTBORO_CITY_POKEMON_SCHOOL (4 | (11 << 8)) -#define MAP_RUSTBORO_CITY_POKEMON_CENTER_1F (5 | (11 << 8)) -#define MAP_RUSTBORO_CITY_POKEMON_CENTER_2F (6 | (11 << 8)) -#define MAP_RUSTBORO_CITY_MART (7 | (11 << 8)) -#define MAP_RUSTBORO_CITY_FLAT1_1F (8 | (11 << 8)) -#define MAP_RUSTBORO_CITY_FLAT1_2F (9 | (11 << 8)) -#define MAP_RUSTBORO_CITY_HOUSE1 (10 | (11 << 8)) -#define MAP_RUSTBORO_CITY_CUTTERS_HOUSE (11 | (11 << 8)) -#define MAP_RUSTBORO_CITY_HOUSE2 (12 | (11 << 8)) -#define MAP_RUSTBORO_CITY_FLAT2_1F (13 | (11 << 8)) -#define MAP_RUSTBORO_CITY_FLAT2_2F (14 | (11 << 8)) -#define MAP_RUSTBORO_CITY_FLAT2_3F (15 | (11 << 8)) -#define MAP_RUSTBORO_CITY_HOUSE3 (16 | (11 << 8)) - -// Map Group 12 -#define MAP_FORTREE_CITY_HOUSE1 (0 | (12 << 8)) -#define MAP_FORTREE_CITY_GYM (1 | (12 << 8)) -#define MAP_FORTREE_CITY_POKEMON_CENTER_1F (2 | (12 << 8)) -#define MAP_FORTREE_CITY_POKEMON_CENTER_2F (3 | (12 << 8)) -#define MAP_FORTREE_CITY_MART (4 | (12 << 8)) -#define MAP_FORTREE_CITY_HOUSE2 (5 | (12 << 8)) -#define MAP_FORTREE_CITY_HOUSE3 (6 | (12 << 8)) -#define MAP_FORTREE_CITY_HOUSE4 (7 | (12 << 8)) -#define MAP_FORTREE_CITY_HOUSE5 (8 | (12 << 8)) -#define MAP_FORTREE_CITY_DECORATION_SHOP (9 | (12 << 8)) - -// Map Group 13 -#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F (0 | (13 << 8)) -#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F (1 | (13 << 8)) -#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F (2 | (13 << 8)) -#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F (3 | (13 << 8)) -#define MAP_LILYCOVE_CITY_CONTEST_LOBBY (4 | (13 << 8)) -#define MAP_LILYCOVE_CITY_CONTEST_HALL (5 | (13 << 8)) -#define MAP_LILYCOVE_CITY_POKEMON_CENTER_1F (6 | (13 << 8)) -#define MAP_LILYCOVE_CITY_POKEMON_CENTER_2F (7 | (13 << 8)) -#define MAP_LILYCOVE_CITY_UNUSED_MART (8 | (13 << 8)) -#define MAP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB (9 | (13 << 8)) -#define MAP_LILYCOVE_CITY_HARBOR (10 | (13 << 8)) -#define MAP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE (11 | (13 << 8)) -#define MAP_LILYCOVE_CITY_HOUSE1 (12 | (13 << 8)) -#define MAP_LILYCOVE_CITY_HOUSE2 (13 | (13 << 8)) -#define MAP_LILYCOVE_CITY_HOUSE3 (14 | (13 << 8)) -#define MAP_LILYCOVE_CITY_HOUSE4 (15 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F (16 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F (17 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F (18 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F (19 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F (20 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP (21 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR (22 | (13 << 8)) - -// Map Group 14 -#define MAP_MOSSDEEP_CITY_GYM (0 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_HOUSE1 (1 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_HOUSE2 (2 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F (3 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_2F (4 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_MART (5 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_HOUSE3 (6 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_STEVENS_HOUSE (7 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_HOUSE4 (8 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_SPACE_CENTER_1F (9 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_SPACE_CENTER_2F (10 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_GAME_CORNER_1F (11 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_GAME_CORNER_B1F (12 | (14 << 8)) - -// Map Group 15 -#define MAP_SOOTOPOLIS_CITY_GYM_1F (0 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_GYM_B1F (1 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F (2 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F (3 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_MART (4 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE1 (5 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE2 (6 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE3 (7 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE4 (8 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE5 (9 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE6 (10 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE7 (11 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_LOTAD_AND_SEEDOT_HOUSE (12 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F (13 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_B1F (14 | (15 << 8)) - -// Map Group 16 -#define MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM (0 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_PHOEBES_ROOM (1 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_GLACIAS_ROOM (2 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_DRAKES_ROOM (3 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_CHAMPIONS_ROOM (4 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_HALL1 (5 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_HALL2 (6 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_HALL3 (7 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_HALL4 (8 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_HALL5 (9 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F (10 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_HALL_OF_FAME (11 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F (12 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_2F (13 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F (14 | (16 << 8)) - -// Map Group 17 -#define MAP_ROUTE104_MR_BRINEYS_HOUSE (0 | (17 << 8)) -#define MAP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP (1 | (17 << 8)) - -// Map Group 18 -#define MAP_ROUTE111_WINSTRATE_FAMILYS_HOUSE (0 | (18 << 8)) -#define MAP_ROUTE111_OLD_LADYS_REST_STOP (1 | (18 << 8)) - -// Map Group 19 -#define MAP_ROUTE112_CABLE_CAR_STATION (0 | (19 << 8)) -#define MAP_MT_CHIMNEY_CABLE_CAR_STATION (1 | (19 << 8)) - -// Map Group 20 -#define MAP_ROUTE114_FOSSIL_MANIACS_HOUSE (0 | (20 << 8)) -#define MAP_ROUTE114_FOSSIL_MANIACS_TUNNEL (1 | (20 << 8)) -#define MAP_ROUTE114_LANETTES_HOUSE (2 | (20 << 8)) - -// Map Group 21 -#define MAP_ROUTE116_TUNNELERS_REST_HOUSE (0 | (21 << 8)) - -// Map Group 22 -#define MAP_ROUTE117_POKEMON_DAY_CARE (0 | (22 << 8)) - -// Map Group 23 -#define MAP_ROUTE121_SAFARI_ZONE_ENTRANCE (0 | (23 << 8)) - -// Map Group 24 -#define MAP_METEOR_FALLS_1F_1R (0 | (24 << 8)) -#define MAP_METEOR_FALLS_1F_2R (1 | (24 << 8)) -#define MAP_METEOR_FALLS_B1F_1R (2 | (24 << 8)) -#define MAP_METEOR_FALLS_B1F_2R (3 | (24 << 8)) -#define MAP_RUSTURF_TUNNEL (4 | (24 << 8)) -#define MAP_UNDERWATER_SOOTOPOLIS_CITY (5 | (24 << 8)) -#define MAP_DESERT_RUINS (6 | (24 << 8)) -#define MAP_GRANITE_CAVE_1F (7 | (24 << 8)) -#define MAP_GRANITE_CAVE_B1F (8 | (24 << 8)) -#define MAP_GRANITE_CAVE_B2F (9 | (24 << 8)) -#define MAP_GRANITE_CAVE_STEVENS_ROOM (10 | (24 << 8)) -#define MAP_PETALBURG_WOODS (11 | (24 << 8)) -#define MAP_MT_CHIMNEY (12 | (24 << 8)) -#define MAP_JAGGED_PASS (13 | (24 << 8)) -#define MAP_FIERY_PATH (14 | (24 << 8)) -#define MAP_MT_PYRE_1F (15 | (24 << 8)) -#define MAP_MT_PYRE_2F (16 | (24 << 8)) -#define MAP_MT_PYRE_3F (17 | (24 << 8)) -#define MAP_MT_PYRE_4F (18 | (24 << 8)) -#define MAP_MT_PYRE_5F (19 | (24 << 8)) -#define MAP_MT_PYRE_6F (20 | (24 << 8)) -#define MAP_MT_PYRE_EXTERIOR (21 | (24 << 8)) -#define MAP_MT_PYRE_SUMMIT (22 | (24 << 8)) -#define MAP_AQUA_HIDEOUT_1F (23 | (24 << 8)) -#define MAP_AQUA_HIDEOUT_B1F (24 | (24 << 8)) -#define MAP_AQUA_HIDEOUT_B2F (25 | (24 << 8)) -#define MAP_UNDERWATER_SEAFLOOR_CAVERN (26 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ENTRANCE (27 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM1 (28 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM2 (29 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM3 (30 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM4 (31 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM5 (32 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM6 (33 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM7 (34 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM8 (35 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM9 (36 | (24 << 8)) -#define MAP_CAVE_OF_ORIGIN_ENTRANCE (37 | (24 << 8)) -#define MAP_CAVE_OF_ORIGIN_1F (38 | (24 << 8)) -#define MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP1 (39 | (24 << 8)) // -#define MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP2 (40 | (24 << 8)) // Ruby/Sapphire leftovers -#define MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP3 (41 | (24 << 8)) // -#define MAP_CAVE_OF_ORIGIN_B1F (42 | (24 << 8)) -#define MAP_VICTORY_ROAD_1F (43 | (24 << 8)) -#define MAP_VICTORY_ROAD_B1F (44 | (24 << 8)) -#define MAP_VICTORY_ROAD_B2F (45 | (24 << 8)) -#define MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM (46 | (24 << 8)) -#define MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM (47 | (24 << 8)) -#define MAP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM (48 | (24 << 8)) -#define MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM (49 | (24 << 8)) -#define MAP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM (50 | (24 << 8)) -#define MAP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM (51 | (24 << 8)) -#define MAP_NEW_MAUVILLE_ENTRANCE (52 | (24 << 8)) -#define MAP_NEW_MAUVILLE_INSIDE (53 | (24 << 8)) -#define MAP_ABANDONED_SHIP_DECK (54 | (24 << 8)) -#define MAP_ABANDONED_SHIP_CORRIDORS_1F (55 | (24 << 8)) -#define MAP_ABANDONED_SHIP_ROOMS_1F (56 | (24 << 8)) -#define MAP_ABANDONED_SHIP_CORRIDORS_B1F (57 | (24 << 8)) -#define MAP_ABANDONED_SHIP_ROOMS_B1F (58 | (24 << 8)) -#define MAP_ABANDONED_SHIP_ROOMS2_B1F (59 | (24 << 8)) -#define MAP_ABANDONED_SHIP_UNDERWATER1 (60 | (24 << 8)) -#define MAP_ABANDONED_SHIP_ROOM_B1F (61 | (24 << 8)) -#define MAP_ABANDONED_SHIP_ROOMS2_1F (62 | (24 << 8)) -#define MAP_ABANDONED_SHIP_CAPTAINS_OFFICE (63 | (24 << 8)) -#define MAP_ABANDONED_SHIP_UNDERWATER2 (64 | (24 << 8)) -#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS (65 | (24 << 8)) -#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS (66 | (24 << 8)) -#define MAP_ISLAND_CAVE (67 | (24 << 8)) -#define MAP_ANCIENT_TOMB (68 | (24 << 8)) -#define MAP_UNDERWATER_ROUTE134 (69 | (24 << 8)) -#define MAP_UNDERWATER_SEALED_CHAMBER (70 | (24 << 8)) -#define MAP_SEALED_CHAMBER_OUTER_ROOM (71 | (24 << 8)) -#define MAP_SEALED_CHAMBER_INNER_ROOM (72 | (24 << 8)) -#define MAP_SCORCHED_SLAB (73 | (24 << 8)) -#define MAP_UNUSED_RUBY_MAGMA_HIDEOUT_1F (74 | (24 << 8)) // -#define MAP_UNUSED_RUBY_MAGMA_HIDEOUT_B1F (75 | (24 << 8)) // Ruby/Sapphire leftovers -#define MAP_UNUSED_RUBY_MAGMA_HIDEOUT_B2F (76 | (24 << 8)) // -#define MAP_SKY_PILLAR_ENTRANCE (77 | (24 << 8)) -#define MAP_SKY_PILLAR_OUTSIDE (78 | (24 << 8)) -#define MAP_SKY_PILLAR_1F (79 | (24 << 8)) -#define MAP_SKY_PILLAR_2F (80 | (24 << 8)) -#define MAP_SKY_PILLAR_3F (81 | (24 << 8)) -#define MAP_SKY_PILLAR_4F (82 | (24 << 8)) -#define MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM (83 | (24 << 8)) -#define MAP_SKY_PILLAR_5F (84 | (24 << 8)) -#define MAP_SKY_PILLAR_TOP (85 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_1F (86 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_2F_1R (87 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_2F_2R (88 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_3F_1R (89 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_3F_2R (90 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_4F (91 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_3F_3R (92 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_2F_3R (93 | (24 << 8)) -#define MAP_MIRAGE_TOWER_1F (94 | (24 << 8)) -#define MAP_MIRAGE_TOWER_2F (95 | (24 << 8)) -#define MAP_MIRAGE_TOWER_3F (96 | (24 << 8)) -#define MAP_MIRAGE_TOWER_4F (97 | (24 << 8)) -#define MAP_DESERT_UNDERPASS (98 | (24 << 8)) -#define MAP_ARTISAN_CAVE_B1F (99 | (24 << 8)) -#define MAP_ARTISAN_CAVE_1F (100 | (24 << 8)) -#define MAP_UNDERWATER_MARINE_CAVE (101 | (24 << 8)) -#define MAP_MARINE_CAVE_ENTRANCE (102 | (24 << 8)) -#define MAP_MARINE_CAVE_END (103 | (24 << 8)) -#define MAP_TERRA_CAVE_ENTRANCE (104 | (24 << 8)) -#define MAP_TERRA_CAVE_END (105 | (24 << 8)) -#define MAP_ALTERING_CAVE (106 | (24 << 8)) -#define MAP_METEOR_FALLS_STEVENS_CAVE (107 | (24 << 8)) - -// Map Group 25 -#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8)) -#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8)) -#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8)) -#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8)) -#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8)) -#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8)) -#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8)) -#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8)) -#define MAP_SINGLE_BATTLE_COLOSSEUM (24 | (25 << 8)) -#define MAP_TRADE_CENTER (25 | (25 << 8)) -#define MAP_RECORD_CORNER (26 | (25 << 8)) -#define MAP_DOUBLE_BATTLE_COLOSSEUM (27 | (25 << 8)) -#define MAP_LINK_CONTEST_ROOM1 (28 | (25 << 8)) -#define MAP_UNKNOWN_MAP_25_29 (29 | (25 << 8)) -#define MAP_UNKNOWN_MAP_25_30 (30 | (25 << 8)) -#define MAP_UNKNOWN_MAP_25_31 (31 | (25 << 8)) -#define MAP_UNKNOWN_MAP_25_32 (32 | (25 << 8)) -#define MAP_UNKNOWN_MAP_25_33 (33 | (25 << 8)) -#define MAP_UNKNOWN_MAP_25_34 (34 | (25 << 8)) -#define MAP_LINK_CONTEST_ROOM2 (35 | (25 << 8)) -#define MAP_LINK_CONTEST_ROOM3 (36 | (25 << 8)) -#define MAP_LINK_CONTEST_ROOM4 (37 | (25 << 8)) -#define MAP_LINK_CONTEST_ROOM5 (38 | (25 << 8)) -#define MAP_LINK_CONTEST_ROOM6 (39 | (25 << 8)) -#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8)) -#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8)) -#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8)) -#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE01 (44 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE02 (45 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE03 (46 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE04 (47 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE05 (48 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE06 (49 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE07 (50 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE08 (51 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE09 (52 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE10 (53 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE11 (54 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE12 (55 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE13 (56 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE14 (57 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE15 (58 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE16 (59 | (25 << 8)) -#define MAP_UNION_ROOM (60 | (25 << 8)) - -// Map Group 26 -#define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8)) -#define MAP_SAFARI_ZONE_NORTH (1 | (26 << 8)) -#define MAP_SAFARI_ZONE_SOUTHWEST (2 | (26 << 8)) -#define MAP_SAFARI_ZONE_SOUTH (3 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_OUTSIDE_WEST (4 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY (5 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR (6 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR (7 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM (8 | (26 << 8)) -#define MAP_SOUTHERN_ISLAND_EXTERIOR (9 | (26 << 8)) -#define MAP_SOUTHERN_ISLAND_INTERIOR (10 | (26 << 8)) -#define MAP_SAFARI_ZONE_REST_HOUSE (11 | (26 << 8)) -#define MAP_SAFARI_ZONE_NORTHEAST (12 | (26 << 8)) -#define MAP_SAFARI_ZONE_SOUTHEAST (13 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_OUTSIDE_EAST (14 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM (15 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR2 (16 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM2 (17 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY (18 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR (19 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM (20 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM (21 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY (22 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR (23 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM (24 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY (25 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE (26 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP (27 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY (28 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR (29 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM (30 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY (31 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM (32 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM (33 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY (34 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR (35 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM (36 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1 (37 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2 (38 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3 (39 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_RANKING_HALL (40 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE1 (41 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_POINT_EXCHANGE_SERVICE_CORNER (42 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE2 (43 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE3 (44 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE4 (45 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_SCOTTS_HOUSE (46 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE5 (47 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE6 (48 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE7 (49 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_RECEPTION_GATE (50 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE8 (51 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE9 (52 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F (53 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_2F (54 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_MART (55 | (26 << 8)) -#define MAP_FARAWAY_ISLAND_ENTRANCE (56 | (26 << 8)) -#define MAP_FARAWAY_ISLAND_INTERIOR (57 | (26 << 8)) -#define MAP_BIRTH_ISLAND_EXTERIOR (58 | (26 << 8)) -#define MAP_BIRTH_ISLAND_HARBOR (59 | (26 << 8)) -#define MAP_TRAINER_HILL_ENTRANCE (60 | (26 << 8)) -#define MAP_TRAINER_HILL_1F (61 | (26 << 8)) -#define MAP_TRAINER_HILL_2F (62 | (26 << 8)) -#define MAP_TRAINER_HILL_3F (63 | (26 << 8)) -#define MAP_TRAINER_HILL_4F (64 | (26 << 8)) -#define MAP_TRAINER_HILL_ROOF (65 | (26 << 8)) -#define MAP_NAVEL_ROCK_EXTERIOR (66 | (26 << 8)) -#define MAP_NAVEL_ROCK_HARBOR (67 | (26 << 8)) -#define MAP_NAVEL_ROCK_ENTRANCE (68 | (26 << 8)) -#define MAP_NAVEL_ROCK_B1F (69 | (26 << 8)) -#define MAP_NAVEL_ROCK_FORK (70 | (26 << 8)) -#define MAP_NAVEL_ROCK_UP1 (71 | (26 << 8)) -#define MAP_NAVEL_ROCK_UP2 (72 | (26 << 8)) -#define MAP_NAVEL_ROCK_UP3 (73 | (26 << 8)) -#define MAP_NAVEL_ROCK_UP4 (74 | (26 << 8)) -#define MAP_NAVEL_ROCK_TOP (75 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN01 (76 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN02 (77 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN03 (78 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN04 (79 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN05 (80 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN06 (81 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN07 (82 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN08 (83 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN09 (84 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN10 (85 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN11 (86 | (26 << 8)) -#define MAP_NAVEL_ROCK_BOTTOM (87 | (26 << 8)) -#define MAP_TRAINER_HILL_ELEVATOR (88 | (26 << 8)) - -// Map Group 27 -#define MAP_ROUTE104_PROTOTYPE (0 | (27 << 8)) -#define MAP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP (1 | (27 << 8)) - -// Map Group 28 -#define MAP_ROUTE109_SEASHORE_HOUSE (0 | (28 << 8)) - -// Map Group 29 -#define MAP_ROUTE110_TRICK_HOUSE_ENTRANCE (0 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_END (1 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_CORRIDOR (2 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE1 (3 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE2 (4 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE3 (5 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE4 (6 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE5 (7 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE6 (8 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE7 (9 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE8 (10 | (29 << 8)) -#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE (11 | (29 << 8)) -#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE (12 | (29 << 8)) - -// Map Group 30 -#define MAP_ROUTE113_GLASS_WORKSHOP (0 | (30 << 8)) - -// Map Group 31 -#define MAP_ROUTE123_BERRY_MASTERS_HOUSE (0 | (31 << 8)) - -// Map Group 32 -#define MAP_ROUTE119_WEATHER_INSTITUTE_1F (0 | (32 << 8)) -#define MAP_ROUTE119_WEATHER_INSTITUTE_2F (1 | (32 << 8)) -#define MAP_ROUTE119_HOUSE (2 | (32 << 8)) - -// Map Group 33 -#define MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE (0 | (33 << 8)) - -#define MAP_GROUPS_COUNT 34 +#include "map_groups.h" #define MAP_NONE (0x7F | (0x7F << 8)) #define MAP_UNDEFINED (0xFF | (0xFF << 8)) - #define MAP_GROUP(map) (MAP_##map >> 8) #define MAP_NUM(map) (MAP_##map & 0xFF) diff --git a/include/constants/songs.h b/include/constants/songs.h index a459edd24..14b766965 100644 --- a/include/constants/songs.h +++ b/include/constants/songs.h @@ -538,4 +538,6 @@ #define MUS_ROUTE_118 0x7FFF // map is split into 2 music sections. controlled by GetCurrLocationDefaultMusic(). +#define MUS_NONE 0xFFFF + #endif // GUARD_CONSTANTS_SONGS_H diff --git a/include/constants/trainer_hill.h b/include/constants/trainer_hill.h new file mode 100644 index 000000000..e231a6043 --- /dev/null +++ b/include/constants/trainer_hill.h @@ -0,0 +1,29 @@ +#ifndef GUARD_CONSTANTS_TRAINER_HILL_H +#define GUARD_CONSTANTS_TRAINER_HILL_H + +#define TRAINER_HILL_FUNC_START 0 +#define TRAINER_HILL_FUNC_1 1 +#define TRAINER_HILL_FUNC_2 2 +#define TRAINER_HILL_FUNC_3 3 +#define TRAINER_HILL_FUNC_RESUME_TIMER 4 +#define TRAINER_HILL_FUNC_SET_LOST 5 +#define TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS 6 +#define TRAINER_HILL_FUNC_7 7 +#define TRAINER_HILL_FUNC_8 8 +#define TRAINER_HILL_FUNC_9 9 +#define TRAINER_HILL_FUNC_10 10 +#define TRAINER_HILL_FUNC_11 11 +#define TRAINER_HILL_FUNC_12 12 +#define TRAINER_HILL_FUNC_13 13 +#define TRAINER_HILL_FUNC_14 14 +#define TRAINER_HILL_FUNC_15 15 +#define TRAINER_HILL_FUNC_16 16 +#define TRAINER_HILL_FUNC_SET_TAG 17 + +// Values returned by the TrainerHillGetChallengeStatus +// function. +#define TRAINER_HILL_PLAYER_STATUS_LOST 0 +#define TRAINER_HILL_PLAYER_STATUS_ECARD_SCANNED 1 +#define TRAINER_HILL_PLAYER_STATUS_NORMAL 2 + +#endif
\ No newline at end of file diff --git a/include/constants/vars.h b/include/constants/vars.h index c055c5baf..67a9e6cbd 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -1,7 +1,7 @@ #ifndef GUARD_CONSTANTS_VARS_H #define GUARD_CONSTANTS_VARS_H -#define VAR_0x3F20 0x3F20 +#define UNKNOWN_VAR_OFFSET_3F20 0x3F20 #define VARS_START 0x4000 @@ -46,257 +46,257 @@ #define VAR_OBJ_GFX_ID_F 0x401F // general purpose vars -#define VAR_RECYCLE_GOODS 0x4020 -#define VAR_REPEL_STEP_COUNT 0x4021 -#define VAR_ICE_STEP_COUNT 0x4022 -#define VAR_STARTER_MON 0x4023 // 0=Treecko, 1=Torchic, 2=Mudkip -#define VAR_MIRAGE_RND_H 0x4024 -#define VAR_MIRAGE_RND_L 0x4025 -#define VAR_SECRET_BASE_MAP 0x4026 -#define VAR_CYCLING_ROAD_RECORD_COLLISIONS 0x4027 -#define VAR_CYCLING_ROAD_RECORD_TIME_L 0x4028 -#define VAR_CYCLING_ROAD_RECORD_TIME_H 0x4029 -#define VAR_HAPPINESS_STEP_COUNTER 0x402A -#define VAR_POISON_STEP_COUNTER 0x402B -#define VAR_RESET_RTC_ENABLE 0x402C -#define VAR_ENIGMA_BERRY_AVAILABLE 0x402D -#define VAR_0x402E 0x402E +#define VAR_RECYCLE_GOODS 0x4020 +#define VAR_REPEL_STEP_COUNT 0x4021 +#define VAR_ICE_STEP_COUNT 0x4022 +#define VAR_STARTER_MON 0x4023 // 0=Treecko, 1=Torchic, 2=Mudkip +#define VAR_MIRAGE_RND_H 0x4024 +#define VAR_MIRAGE_RND_L 0x4025 +#define VAR_SECRET_BASE_MAP 0x4026 +#define VAR_CYCLING_ROAD_RECORD_COLLISIONS 0x4027 +#define VAR_CYCLING_ROAD_RECORD_TIME_L 0x4028 +#define VAR_CYCLING_ROAD_RECORD_TIME_H 0x4029 +#define VAR_HAPPINESS_STEP_COUNTER 0x402A +#define VAR_POISON_STEP_COUNTER 0x402B +#define VAR_RESET_RTC_ENABLE 0x402C +#define VAR_ENIGMA_BERRY_AVAILABLE 0x402D +#define VAR_UNUSED_0x402E 0x402E // Unused Var -#define VAR_FRONTIER_MANIAC_FACILITY 0x402F -#define VAR_FRONTIER_GAMBLER_FACILITY 0x4030 -#define VAR_FRONTIER_GAMBLER_SET_FACILITY_F 0x4031 -#define VAR_FRONTIER_GAMBLER_AMOUNT_BET 0x4032 -#define VAR_FRONTIER_GAMBLER_PLACED_BET_F 0x4033 +#define VAR_FRONTIER_MANIAC_FACILITY 0x402F +#define VAR_FRONTIER_GAMBLER_FACILITY 0x4030 +#define VAR_FRONTIER_GAMBLER_SET_FACILITY_F 0x4031 +#define VAR_FRONTIER_GAMBLER_AMOUNT_BET 0x4032 +#define VAR_FRONTIER_GAMBLER_PLACED_BET_F 0x4033 -#define VAR_DEOXYS_ROCK_STEP_COUNT 0x4034 -#define VAR_DEOXYS_ROCK_LEVEL 0x4035 -#define VAR_STORAGE_UNKNOWN 0x4036 -#define VAR_0x4037 0x4037 -#define VAR_0x4038 0x4038 -#define VAR_0x4039 0x4039 -#define VAR_0x403A 0x403A -#define VAR_0x403B 0x403B -#define VAR_0x403C 0x403C -#define VAR_0x403D 0x403D -#define VAR_ALTERING_CAVE_WILD_SET 0x403E -#define VAR_0x403F 0x403F -#define VAR_DAYS 0x4040 -#define VAR_FANCLUB_UNKNOWN_1 0x4041 -#define VAR_FANCLUB_UNKNOWN_2 0x4042 -#define VAR_DEPT_STORE_FLOOR 0x4043 -#define VAR_0x4044 0x4044 -#define VAR_POKELOT_PRIZE 0x4045 -#define VAR_NATIONAL_DEX 0x4046 -#define VAR_SEEDOT_SIZE_RECORD 0x4047 -#define VAR_ASH_GATHER_COUNT 0x4048 -#define VAR_BIRCH_STATE 0x4049 -#define VAR_CRUISE_STEP_COUNT 0x404A -#define VAR_POKELOT_RND1 0x404B -#define VAR_POKELOT_RND2 0x404C -#define VAR_0x404D 0x404D -#define VAR_0x404E 0x404E -#define VAR_LOTAD_SIZE_RECORD 0x404F -#define VAR_0x4050 0x4050 -#define VAR_0x4051 0x4051 -#define VAR_0x4052 0x4052 -#define VAR_0x4053 0x4053 -#define VAR_CURRENT_SECRET_BASE 0x4054 -#define VAR_0x4055 0x4055 -#define VAR_0x4056 0x4056 -#define VAR_0x4057 0x4057 -#define VAR_0x4058 0x4058 -#define VAR_0x4059 0x4059 -#define VAR_0x405A 0x405A -#define VAR_0x405B 0x405B -#define VAR_0x405C 0x405C -#define VAR_0x405D 0x405D -#define VAR_0x405E 0x405E -#define VAR_0x405F 0x405F -#define VAR_0x4060 0x4060 -#define VAR_0x4061 0x4061 -#define VAR_0x4062 0x4062 -#define VAR_0x4063 0x4063 -#define VAR_0x4064 0x4064 -#define VAR_0x4065 0x4065 -#define VAR_0x4066 0x4066 -#define VAR_0x4067 0x4067 -#define VAR_0x4068 0x4068 -#define VAR_0x4069 0x4069 -#define VAR_0x406A 0x406A -#define VAR_0x406B 0x406B -#define VAR_0x406C 0x406C -#define VAR_0x406D 0x406D -#define VAR_0x406E 0x406E -#define VAR_0x406F 0x406F -#define VAR_0x4070 0x4070 -#define VAR_0x4071 0x4071 -#define VAR_0x4072 0x4072 -#define VAR_0x4073 0x4073 -#define VAR_0x4074 0x4074 -#define VAR_0x4075 0x4075 -#define VAR_0x4076 0x4076 -#define VAR_0x4077 0x4077 -#define VAR_0x4078 0x4078 -#define VAR_0x4079 0x4079 -#define VAR_0x407A 0x407A -#define VAR_0x407B 0x407B -#define VAR_0x407C 0x407C -#define VAR_0x407D 0x407D -#define VAR_0x407E 0x407E -#define VAR_0x407F 0x407F -#define VAR_0x4080 0x4080 -#define VAR_0x4081 0x4081 -#define VAR_0x4082 0x4082 -#define VAR_0x4083 0x4083 -#define VAR_0x4084 0x4084 -#define VAR_0x4085 0x4085 -#define VAR_0x4086 0x4086 -#define VAR_0x4087 0x4087 -#define VAR_0x4088 0x4088 -#define VAR_0x4089 0x4089 -#define VAR_0x408A 0x408A -#define VAR_0x408B 0x408B -#define VAR_0x408C 0x408C -#define VAR_0x408D 0x408D -#define VAR_0x408E 0x408E -#define VAR_0x408F 0x408F -#define VAR_0x4090 0x4090 -#define VAR_0x4091 0x4091 -#define VAR_0x4092 0x4092 -#define VAR_0x4093 0x4093 -#define VAR_0x4094 0x4094 -#define VAR_LILYCOVE_FAN_CLUB_STATE 0x4095 -#define VAR_0x4096 0x4096 -#define VAR_0x4097 0x4097 -#define VAR_0x4098 0x4098 -#define VAR_0x4099 0x4099 -#define VAR_RUSTURF_TUNNEL_STATE 0x409A -#define VAR_0x409B 0x409B -#define VAR_0x409C 0x409C -#define VAR_0x409D 0x409D -#define VAR_0x409E 0x409E -#define VAR_0x409F 0x409F -#define VAR_0x40A0 0x40A0 -#define VAR_0x40A1 0x40A1 -#define VAR_0x40A2 0x40A2 -#define VAR_0x40A3 0x40A3 -#define VAR_0x40A4 0x40A4 -#define VAR_0x40A5 0x40A5 -#define VAR_0x40A6 0x40A6 -#define VAR_0x40A7 0x40A7 -#define VAR_0x40A8 0x40A8 -#define VAR_CYCLING_CHALLENGE_STATE 0x40A9 -#define VAR_0x40AA 0x40AA -#define VAR_0x40AB 0x40AB -#define VAR_0x40AC 0x40AC -#define VAR_0x40AD 0x40AD -#define VAR_0x40AE 0x40AE -#define VAR_0x40AF 0x40AF -#define VAR_0x40B0 0x40B0 -#define VAR_0x40B1 0x40B1 -#define VAR_0x40B2 0x40B2 -#define VAR_WEATHER_INSTITUTE_STATE 0x40B3 -#define VAR_PORTHOLE_STATE 0x40B4 -#define VAR_0x40B5 0x40B5 -#define VAR_0x40B6 0x40B6 -#define VAR_0x40B7 0x40B7 -#define VAR_0x40B8 0x40B8 -#define VAR_0x40B9 0x40B9 -#define VAR_0x40BA 0x40BA -#define VAR_0x40BB 0x40BB -#define VAR_0x40BC 0x40BC -#define VAR_0x40BD 0x40BD -#define VAR_0x40BE 0x40BE -#define VAR_0x40BF 0x40BF -#define VAR_0x40C0 0x40C0 -#define VAR_0x40C1 0x40C1 -#define VAR_PACIFIDLOG_TM_RECEIVED_DAY 0x40C2 -#define VAR_0x40C3 0x40C3 -#define VAR_0x40C4 0x40C4 -#define VAR_0x40C5 0x40C5 -#define VAR_0x40C6 0x40C6 -#define VAR_0x40C7 0x40C7 -#define VAR_0x40C8 0x40C8 -#define VAR_0x40C9 0x40C9 -#define VAR_0x40CA 0x40CA -#define VAR_0x40CB 0x40CB -#define VAR_0x40CC 0x40CC -#define VAR_0x40CD 0x40CD -#define VAR_FRONTIER_BATTLE_MODE 0x40CE -#define VAR_FRONTIER_FACILITY 0x40CF -#define VAR_0x40D0 0x40D0 -#define VAR_0x40D1 0x40D1 -#define VAR_0x40D2 0x40D2 -#define VAR_0x40D3 0x40D3 -#define VAR_0x40D4 0x40D4 -#define VAR_0x40D5 0x40D5 -#define VAR_0x40D6 0x40D6 -#define VAR_0x40D7 0x40D7 -#define VAR_0x40D8 0x40D8 -#define VAR_0x40D9 0x40D9 -#define VAR_0x40DA 0x40DA -#define VAR_0x40DB 0x40DB -#define VAR_0x40DC 0x40DC -#define VAR_EVENT_PICHU_SLOT 0x40DD -#define VAR_0x40DE 0x40DE -#define VAR_0x40DF 0x40DF -#define VAR_0x40E0 0x40E0 -#define VAR_0x40E1 0x40E1 -#define VAR_0x40E2 0x40E2 -#define VAR_0x40E3 0x40E3 -#define VAR_0x40E4 0x40E4 -#define VAR_0x40E5 0x40E5 -#define VAR_DAILY_SLOTS 0x40E6 -#define VAR_DAILY_WILDS 0x40E7 -#define VAR_DAILY_BLENDER 0x40E8 -#define VAR_DAILY_PLANTED_BERRIES 0x40E9 -#define VAR_DAILY_PICKED_BERRIES 0x40EA -#define VAR_DAILY_ROULETTE 0x40EB -#define VAR_0x40EC 0x40EC -#define VAR_0x40ED 0x40ED -#define VAR_0x40EE 0x40EE -#define VAR_0x40EF 0x40EF -#define VAR_0x40F0 0x40F0 -#define VAR_DAILY_BP 0x40F1 -#define VAR_0x40F2 0x40F2 -#define VAR_0x40F3 0x40F3 -#define VAR_0x40F4 0x40F4 -#define VAR_0x40F5 0x40F5 -#define VAR_0x40F6 0x40F6 -#define VAR_0x40F7 0x40F7 -#define VAR_0x40F8 0x40F8 -#define VAR_0x40F9 0x40F9 -#define VAR_0x40FA 0x40FA -#define VAR_0x40FB 0x40FB -#define VAR_0x40FC 0x40FC -#define VAR_0x40FD 0x40FD -#define VAR_0x40FE 0x40FE -#define VAR_0x40FF 0x40FF +#define VAR_DEOXYS_ROCK_STEP_COUNT 0x4034 +#define VAR_DEOXYS_ROCK_LEVEL 0x4035 +#define VAR_STORAGE_UNKNOWN 0x4036 +#define VAR_UNUSUAL_WEATHER_LOCATION 0x4037 +#define VAR_UNUSUAL_WEATHER_STEP_COUNTER 0x4038 +#define VAR_SHOULD_END_UNUSUAL_WEATHER 0x4039 +#define VAR_FARAWAY_ISLAND_STEP_COUNTER 0x403A +#define VAR_REGICE_STEPS_1 0x403B +#define VAR_REGICE_STEPS_2 0x403C +#define VAR_REGICE_STEPS_3 0x403D +#define VAR_ALTERING_CAVE_WILD_SET 0x403E +#define VAR_ALWAYS_ZERO_0x403F 0x403F // This var is read and written, but is always zero. +#define VAR_DAYS 0x4040 +#define VAR_FANCLUB_UNKNOWN_1 0x4041 +#define VAR_FANCLUB_UNKNOWN_2 0x4042 +#define VAR_DEPT_STORE_FLOOR 0x4043 +#define VAR_0x4044 0x4044 +#define VAR_POKELOT_PRIZE_ITEM 0x4045 +#define VAR_NATIONAL_DEX 0x4046 +#define VAR_SEEDOT_SIZE_RECORD 0x4047 +#define VAR_ASH_GATHER_COUNT 0x4048 +#define VAR_BIRCH_STATE 0x4049 +#define VAR_CRUISE_STEP_COUNT 0x404A +#define VAR_POKELOT_RND1 0x404B +#define VAR_POKELOT_RND2 0x404C +#define VAR_POKELOT_PRIZE_PLACE 0x404D +#define VAR_UNUSED_0x404E 0x404E // Unused Var +#define VAR_LOTAD_SIZE_RECORD 0x404F +#define VAR_0x4050 0x4050 +#define VAR_ROUTE102_ACCESSIBLE 0x4051 +#define VAR_UNUSED_0x4052 0x4052 // Unused Var +#define VAR_LAVARIDGE_RIVAL_STATE 0x4053 +#define VAR_CURRENT_SECRET_BASE 0x4054 +#define VAR_UNUSED_0x4055 0x4055 // Unused Var +#define VAR_UNUSED_0x4056 0x4056 // Unused Var +#define VAR_PETALBURG_STATE 0x4057 +#define VAR_SLATEPORT_STATE 0x4058 +#define VAR_UNUSED_0x4059 0x4059 // Unused Var +#define VAR_RUSTBORO_STATE 0x405A +#define VAR_UNUSED_0x405B 0x405B // Unused Var +#define VAR_UNUSED_0x405C 0x405C // Unused Var +#define VAR_MOSSDEEP_STATE 0x405D +#define VAR_RAYQUAZA_STATE 0x405E +#define VAR_UNUSED_0x405F 0x405F // Unused Var +#define VAR_ROUTE101_STATE 0x4060 +#define VAR_UNUSED_0x4061 0x4061 // Unused Var +#define VAR_UNUSED_0x4062 0x4062 // Unused Var +#define VAR_0x4063 0x4063 +#define VAR_UNUSED_0x4064 0x4064 // Unused Var +#define VAR_UNUSED_0x4065 0x4065 // Unused Var +#define VAR_UNUSED_0x4066 0x4066 // Unused Var +#define VAR_UNUSED_0x4067 0x4067 // Unused Var +#define VAR_UNUSED_0x4068 0x4068 // Unused Var +#define VAR_ROUTE110_STATE 0x4069 +#define VAR_UNUSED_0x406A 0x406A // Unused Var +#define VAR_UNUSED_0x406B 0x406B // Unused Var +#define VAR_UNUSED_0x406C 0x406C // Unused Var +#define VAR_UNUSED_0x406D 0x406D // Unused Var +#define VAR_UNUSED_0x406E 0x406E // Unused Var +#define VAR_ROUTE116_STATE 0x406F +#define VAR_UNUSED_0x4070 0x4070 // Unused Var +#define VAR_ROUTE118_STATE 0x4071 +#define VAR_ROUTE119_STATE 0x4072 +#define VAR_UNUSED_0x4073 0x4073 // Unused Var +#define VAR_ROUTE121_STATE 0x4074 +#define VAR_UNUSED_0x4075 0x4075 // Unused Var +#define VAR_UNUSED_0x4076 0x4076 // Unused Var +#define VAR_UNUSED_0x4077 0x4077 // Unused Var +#define VAR_UNUSED_0x4078 0x4078 // Unused Var +#define VAR_UNUSED_0x4079 0x4079 // Unused Var +#define VAR_UNUSED_0x407A 0x407A // Unused Var +#define VAR_ROUTE128_STATE 0x407B +#define VAR_UNUSED_0x407C 0x407C // Unused Var +#define VAR_UNUSED_0x407D 0x407D // Unused Var +#define VAR_UNUSED_0x407E 0x407E // Unused Var +#define VAR_UNUSED_0x407F 0x407F // Unused Var +#define VAR_UNUSED_0x4080 0x4080 // Unused Var +#define VAR_UNUSED_0x4081 0x4081 // Unused Var +#define VAR_LITTLEROOT_HOUSES_STATE 0x4082 +#define VAR_UNUSED_0x4083 0x4083 // Unused Var +#define VAR_BIRCH_LAB_STATE 0x4084 +#define VAR_PETALBURG_GYM_STATE 0x4085 +#define VAR_LINK_CONTEST_ROOM_STATE 0x4086 +#define VAR_CABLE_CLUB_STATE 0x4087 +#define VAR_CONTEST_LOCATION 0x4088 +#define VAR_SECRET_BASE_INITIALIZED 0x4089 +#define VAR_CONTEST_PRIZE_PICKUP 0x408A +#define VAR_UNUSED_0x408B 0x408B // Unused Var +#define VAR_LITTLEROOT_HOUSES_STATE_2 0x408C +#define VAR_LITTLEROOT_RIVAL_STATE 0x408D +#define VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE 0x408E +#define VAR_DEVON_CORP_3F_STATE 0x408F +#define VAR_BRINEY_HOUSE_STATE 0x4090 +#define VAR_UNUSED_0x4091 0x4091 // Unused Var +#define VAR_LITTLEROOT_INTRO_STATE 0x4092 +#define VAR_MAUVILLE_GYM_STATE 0x4093 +#define VAR_LILYCOVE_MUSEUM_2F_STATE 0x4094 +#define VAR_LILYCOVE_FAN_CLUB_STATE 0x4095 +#define VAR_BRINEY_LOCATION 0x4096 +#define VAR_INIT_SECRET_BASE 0x4097 +#define VAR_PETALBURG_WOODS_STATE 0x4098 +#define VAR_LILYCOVE_CONTEST_LOBBY_STATE 0x4099 +#define VAR_RUSTURF_TUNNEL_STATE 0x409A +#define VAR_UNUSED_0x409B 0x409B // Unused Var +#define VAR_ELITE_4_STATE 0x409C +#define VAR_UNUSED_0x409D 0x409D // Unused Var +#define VAR_MOSSDEEP_SPACE_CENTER_STATE_1 0x409E +#define VAR_MOSSDEEP_SPACE_CENTER_STATE_2 0x409F +#define VAR_SLATEPORT_HARBOR_STATE 0x40A0 +#define VAR_UNUSED_0x40A1 0x40A1 // Unused var +#define VAR_SEAFLOOR_CAVERN_STATE 0x40A2 +#define VAR_CABLE_CAR_STATION_STATE 0x40A3 +#define VAR_SAFARI_ZONE_STATE 0x40A4 +#define VAR_TRICK_HOUSE_ENTRANCE_STATE_1 0x40A5 +#define VAR_TRICK_HOUSE_ENTRANCE_STATE_2 0x40A6 +#define VAR_TRICK_HOUSE_ENTRANCE_STATE_3 0x40A7 +#define VAR_UNUSED_0x40A8 0x40A8 // Unused Var +#define VAR_CYCLING_CHALLENGE_STATE 0x40A9 +#define VAR_SLATEPORT_MUSEUM_1F_STATE 0x40AA +#define VAR_TRICK_HOUSE_PUZZLE_1_STATE 0x40AB +#define VAR_TRICK_HOUSE_PUZZLE_2_STATE 0x40AC +#define VAR_TRICK_HOUSE_PUZZLE_3_STATE 0x40AD +#define VAR_TRICK_HOUSE_PUZZLE_4_STATE 0x40AE +#define VAR_TRICK_HOUSE_PUZZLE_5_STATE 0x40AF +#define VAR_TRICK_HOUSE_PUZZLE_6_STATE 0x40B0 +#define VAR_TRICK_HOUSE_PUZZLE_7_STATE 0x40B1 +#define VAR_TRICK_HOUSE_PUZZLE_8_STATE 0x40B2 +#define VAR_WEATHER_INSTITUTE_STATE 0x40B3 +#define VAR_PORTHOLE_STATE 0x40B4 +#define VAR_TRICK_HOUSE_STATE 0x40B5 // TODO: needs some further investigation +#define VAR_TRICK_HOUSE_PUZZLE_7_STATE_2 0x40B6 +#define VAR_SLATEPORT_FAN_CLUB_STATE 0x40B7 +#define VAR_UNUSED_0x40B8 0x40B8 // Unused Var +#define VAR_MT_PYRE_STATE 0x40B9 +#define VAR_NEW_MAUVILLE_STATE 0x40BA +#define VAR_UNUSED_0x40BB 0x40BB // Unused Var +#define VAR_BRAVO_TRAINER_BATTLE_TOWER_ON 0x40BC +#define VAR_JAGGED_PASS_ASH_WEATHER 0x40BD +#define VAR_GLASS_WORKSHOP_STATE 0x40BE +#define VAR_METEOR_FALLS_STATE 0x40BF +#define VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE 0x40C0 +#define VAR_TRICK_HOUSE_PRIZE_PICKUP 0x40C1 +#define VAR_PACIFIDLOG_TM_RECEIVED_DAY 0x40C2 +#define VAR_VICTORY_ROAD_1F_STATE 0x40C3 +#define VAR_FOSSIL_RESURRECTION_STATE 0x40C4 +#define VAR_WHICH_FOSSIL_REVIVED 0x40C5 +#define VAR_STEVENS_HOUSE_STATE 0x40C6 +#define VAR_OLDALE_STATE 0x40C7 +#define VAR_JAGGED_PASS_STATE 0x40C8 +#define VAR_SCOTT_PETALBURG_ENCOUNTER 0x40C9 +#define VAR_SKY_PILLAR_STATE 0x40CA +#define VAR_ROUTE_111_STATE 0x40CB +#define VAR_FOSSIL_MANIAC_STATE 0x40CC +#define VAR_CABLE_CLUB_TUTORIAL_STATE 0x40CD +#define VAR_FRONTIER_BATTLE_MODE 0x40CE +#define VAR_FRONTIER_FACILITY 0x40CF +#define VAR_HAS_ENTERED_BATTLE_FRONTIER 0x40D0 // Var is used like a flag. +#define VAR_SCOTT_STATE 0x40D1 +#define VAR_SLATEPORT_OUTSIDE_MUSEUM_STATE 0x40D2 +#define VAR_0x40D3 0x40D3 +#define VAR_SS_TIDAL_SCOTT_STATE 0x40D4 // Always equal to FLAG_MET_SCOTT_ON_SS_TIDAL +#define VAR_ROAMER_POKEMON 0x40D5 // 0 = Latias, 1 = Latios +#define VAR_TRAINER_HILL_IS_ACTIVE 0x40D6 +#define VAR_SKY_PILLAR_RAQUAZA_CRY_DONE 0x40D7 +#define VAR_SOOTOPOLIS_STATE 0x40D8 +#define VAR_HAS_TALKED_TO_SEAFLOOR_CAVERN_ENTRANCE_GRUNT 0x40D9 +#define VAR_0x40DA 0x40DA +#define VAR_UNUSED_0x40DB 0x40DB // Unused Var +#define VAR_UNUSED_0x40DC 0x40DC // Unused Var +#define VAR_EVENT_PICHU_SLOT 0x40DD +#define VAR_NEVER_READ_0x40DE 0x40DE // Var is written to, but never read +#define VAR_NEVER_READ_0x40DF 0x40DF // Var is written to, but never read +#define VAR_NEVER_READ_0x40E0 0x40E0 // Var is written to, but never read +#define VAR_NEVER_READ_0x40E1 0x40E1 // Var is written to, but never read +#define VAR_NEVER_READ_0x40E2 0x40E2 // Var is written to, but never read +#define VAR_NEVER_READ_0x40E3 0x40E3 // Var is written to, but never read +#define VAR_NEVER_READ_0x40E4 0x40E4 // var is written to, but never read +#define VAR_UNUSED_0x40E5 0x40E5 // Unused Var +#define VAR_DAILY_SLOTS 0x40E6 +#define VAR_DAILY_WILDS 0x40E7 +#define VAR_DAILY_BLENDER 0x40E8 +#define VAR_DAILY_PLANTED_BERRIES 0x40E9 +#define VAR_DAILY_PICKED_BERRIES 0x40EA +#define VAR_DAILY_ROULETTE 0x40EB +#define VAR_SECRET_BASE_STEP_COUNTER 0x40EC // Used by Secret Base TV programs +#define VAR_SECRET_BASE_LAST_ITEM_USED 0x40ED // Used by Secret Base TV programs +#define VAR_SECRET_BASE_LOW_TV_FLAGS 0x40EE // Used by Secret Base TV programs +#define VAR_SECRET_BASE_HIGH_TV_FLAGS 0x40EF // Used by Secret Base TV programs +#define VAR_SECRET_BASE_IS_NOT_LOCAL 0x40F0 // Set to TRUE while in another player's secret base. +#define VAR_DAILY_BP 0x40F1 +#define VAR_WALLY_CALL_STEP_COUNTER 0x40F2 +#define VAR_WINONA_CALL_STEP_COUNTER 0x40F3 +#define VAR_ROXANNE_CALL_STEP_COUNTER 0x40F4 +#define VAR_SCOTT_CALL_STEP_COUNTER 0x40F5 +#define VAR_RIVAL_RAYQUAZA_CALL_STEP_COUNTER 0x40F6 +#define VAR_UNUSED_0x40F7 0x40F7 // Unused Var +#define VAR_UNUSED_0x40F8 0x40F8 // Unused Var +#define VAR_UNUSED_0x40F9 0x40F9 // Unused Var +#define VAR_UNUSED_0x40FA 0x40FA // Unused Var +#define VAR_UNUSED_0x40FB 0x40FB // Unused Var +#define VAR_UNUSED_0x40FC 0x40FC // Unused Var +#define VAR_UNUSED_0x40FD 0x40FD // Unused Var +#define VAR_UNUSED_0x40FE 0x40FE // Unused Var +#define VAR_UNUSED_0x40FF 0x40FF // Unused Var #define SPECIAL_VARS_START 0x8000 // special vars // They are commonly used as parameters to commands, or return values from commands. -#define VAR_0x8000 0x8000 -#define VAR_0x8001 0x8001 -#define VAR_0x8002 0x8002 -#define VAR_0x8003 0x8003 -#define VAR_0x8004 0x8004 -#define VAR_0x8005 0x8005 -#define VAR_0x8006 0x8006 -#define VAR_0x8007 0x8007 -#define VAR_0x8008 0x8008 -#define VAR_0x8009 0x8009 -#define VAR_0x800A 0x800A -#define VAR_0x800B 0x800B -#define VAR_FACING 0x800C -#define VAR_RESULT 0x800D -#define VAR_ITEM_ID 0x800E -#define VAR_LAST_TALKED 0x800F -#define VAR_CONTEST_RANK 0x8010 -#define VAR_CONTEST_CATEGORY 0x8011 -#define VAR_MON_BOX_ID 0x8012 -#define VAR_MON_BOX_POS 0x8013 -#define VAR_0x8014 0x8014 -#define VAR_0x8015 0x8015 +#define VAR_0x8000 0x8000 +#define VAR_0x8001 0x8001 +#define VAR_0x8002 0x8002 +#define VAR_0x8003 0x8003 +#define VAR_0x8004 0x8004 +#define VAR_0x8005 0x8005 +#define VAR_0x8006 0x8006 +#define VAR_0x8007 0x8007 +#define VAR_0x8008 0x8008 +#define VAR_0x8009 0x8009 +#define VAR_0x800A 0x800A +#define VAR_0x800B 0x800B +#define VAR_FACING 0x800C +#define VAR_RESULT 0x800D +#define VAR_ITEM_ID 0x800E +#define VAR_LAST_TALKED 0x800F +#define VAR_CONTEST_RANK 0x8010 +#define VAR_CONTEST_CATEGORY 0x8011 +#define VAR_MON_BOX_ID 0x8012 +#define VAR_MON_BOX_POS 0x8013 +#define VAR_UNUSED_0x8014 0x8014 +#define VAR_TRAINER_BATTLE_OPPONENT_A 0x8015 // Alias of gTrainerBattleOpponent_A #endif // GUARD_CONSTANTS_VARS_H diff --git a/include/constants/weather.h b/include/constants/weather.h index d0a81c34c..b01cfb390 100644 --- a/include/constants/weather.h +++ b/include/constants/weather.h @@ -16,7 +16,7 @@ #define WEATHER_DROUGHT 12 #define WEATHER_RAIN_HEAVY 13 #define WEATHER_BUBBLES 14 -#define WEATHER_15 15 +#define WEATHER_ALTERNATING 15 #define WEATHER_ROUTE119_CYCLE 20 #define WEATHER_ROUTE123_CYCLE 21 @@ -37,4 +37,30 @@ #define COORD_EVENT_WEATHER_ROUTE119_CYCLE 20 #define COORD_EVENT_WEATHER_ROUTE123_CYCLE 21 +// These are the "unusual weather events" that are used +// to find Kyogre and Groudon. +#define UNUSUAL_WEATHER_COUNT_PER_LEGENDARY 8 +#define UNUSUAL_WEATHER_GROUDON_LOCATIONS_START 1 +#define UNUSUAL_WEATHER_KYOGRE_LOCATIONS_START 1 + UNUSUAL_WEATHER_COUNT_PER_LEGENDARY + +#define UNUSUAL_WEATHER_NONE 0 +// Groudon locations +#define UNUSUAL_WEATHER_ROUTE_114_NORTH 1 +#define UNUSUAL_WEATHER_ROUTE_114_SOUTH 2 +#define UNUSUAL_WEATHER_ROUTE_115_WEST 3 +#define UNUSUAL_WEATHER_ROUTE_115_EAST 4 +#define UNUSUAL_WEATHER_ROUTE_116_NORTH 5 +#define UNUSUAL_WEATHER_ROUTE_116_SOUTH 6 +#define UNUSUAL_WEATHER_ROUTE_118_EAST 7 +#define UNUSUAL_WEATHER_ROUTE_118_WEST 8 +// Kyogre locations +#define UNUSUAL_WEATHER_ROUTE_105_NORTH 9 +#define UNUSUAL_WEATHER_ROUTE_105_SOUTH 10 +#define UNUSUAL_WEATHER_ROUTE_125_WEST 11 +#define UNUSUAL_WEATHER_ROUTE_125_EAST 12 +#define UNUSUAL_WEATHER_ROUTE_127_NORTH 13 +#define UNUSUAL_WEATHER_ROUTE_127_SOUTH 14 +#define UNUSUAL_WEATHER_ROUTE_129_WEST 15 +#define UNUSUAL_WEATHER_ROUTE_129_EAST 16 + #endif // GUARD_CONSTANTS_WEATHER_H diff --git a/include/contest.h b/include/contest.h index 35b88698e..8146486cb 100644 --- a/include/contest.h +++ b/include/contest.h @@ -437,6 +437,8 @@ extern u8 gHighestRibbonRank; extern struct ContestResources *gContestResources; extern u8 sContestBgCopyFlags; extern struct ContestWinner gUnknown_02039F3C; +extern u8 gUnknown_02039F5C; +extern u8 gUnknown_02039F5D; extern u32 gContestRngValue; @@ -476,5 +478,6 @@ bool32 sub_80FC4F4(void *, u16); bool8 sub_80FC55C(void); bool8 sub_80FC530(u8); u8 sub_80F86E0(u8 *); +void sub_80FC9F8(u8 taskId); #endif //GUARD_CONTEST_H diff --git a/include/contest_effect.h b/include/contest_effect.h index 5f48e1b8b..0474cb38c 100644 --- a/include/contest_effect.h +++ b/include/contest_effect.h @@ -19,6 +19,7 @@ struct ContestEffect extern const struct ContestMove gContestMoves[]; extern const struct ContestEffect gContestEffects[]; extern const u8 *const gContestEffectDescriptionPointers[]; +extern const u8 *const gContestMoveTypeTextPointers[]; bool8 AreMovesContestCombo(u16 lastMove, u16 nextMove); diff --git a/include/contest_link_80FC4F4.h b/include/contest_link_80FC4F4.h index 6f3bab97d..a3f118798 100644 --- a/include/contest_link_80FC4F4.h +++ b/include/contest_link_80FC4F4.h @@ -4,5 +4,10 @@ void sub_80FCC88(u8); void sub_80FCC88(u8); void sub_80FCACC(u8); +void sub_80FC580(u8); +void sub_80FC6BC(u8); +void sub_80FC804(u8); +void sub_80FCE48(u8); +void sub_80FC894(u8); #endif //GUARD_CONTEST_LINK_80FC4F4_H diff --git a/include/contest_painting.h b/include/contest_painting.h index ca03a72b5..c633c50cc 100644 --- a/include/contest_painting.h +++ b/include/contest_painting.h @@ -13,7 +13,4 @@ enum void sub_812FDA8(int); void CB2_ContestPainting(void); -extern u8 gUnknown_02039F5C; -extern u8 gUnknown_02039F5D; - #endif diff --git a/include/dewford_trend.h b/include/dewford_trend.h index dac5ea6c9..bdb0fc95c 100644 --- a/include/dewford_trend.h +++ b/include/dewford_trend.h @@ -4,5 +4,8 @@ void InitDewfordTrend(void); void UpdateDewfordTrendPerDay(u16); void UpdateDewfordTrendPerDay(u16 days); +bool8 sub_81226D8(u16 *a); +void ReceiveEasyChatPairsData(struct EasyChatPair *a, size_t b, u8 unused); + #endif // GUARD_DEWFORDTREND_H diff --git a/include/easy_chat.h b/include/easy_chat.h index 23fd9ed83..84ac15422 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -2,18 +2,138 @@ #define GUARD_EASYCHAT_H #include "main.h" +#include "constants/easy_chat.h" + +struct EasyChatScreenTemplate +{ + u8 type; + u8 numColumns; + u8 numRows; + u8 frameId:7; + u8 fourFooterOptions:1; + const u8 *titleText; + const u8 *instructionsText1; + const u8 *instructionsText2; + const u8 *confirmText1; + const u8 *confirmText2; +}; + +struct EasyChatScreen +{ + /*0x00*/ u8 type; + /*0x01*/ u8 templateId; + /*0x02*/ u8 numColumns; + /*0x03*/ u8 numRows; + /*0x04*/ u8 state; + /*0x05*/ s8 mainCursorColumn; + /*0x06*/ s8 mainCursorRow; + /*0x07*/ u8 unk_07; + /*0x08*/ u8 stateBackup; + /*0x09*/ u8 unk_09; + /*0x0A*/ s8 unk_0a; + /*0x0B*/ s8 unk_0b; + /*0x0C*/ u8 unk_0c; + /*0x0D*/ u8 unk_0d; + /*0x0E*/ u8 unk_0e; + /*0x0F*/ u8 unk_0f; + /*0x10*/ s8 unk_10; + /*0x11*/ s8 unk_11; + /*0x12*/ u8 displayedPersonType; + /*0x13*/ u8 unk_13; + /*0x14*/ u8 unk_14[0x20]; + /*0x34*/ const u8 *titleText; + /*0x38*/ u16 *words; + /*0x3C*/ u16 ecWordBuffer[9]; +}; + +struct Unk203A11C +{ + u16 unk0; + u16 windowId; + u16 unk4; + u8 unk6; + u8 unk7; + s8 unk8; + u8 unk9; + u8 unkA; + u8 unkB[0xC1]; + u8 unkCC[0x202]; + u16 unk2CE; + int unk2D0; + int unk2D4; + struct Sprite *unk2D8; + struct Sprite *unk2DC; + struct Sprite *unk2E0; + struct Sprite *unk2E4; + struct Sprite *unk2E8; + struct Sprite *unk2EC; + struct Sprite *unk2F0; + struct Sprite *unk2F4; + struct Sprite *unk2F8; + struct Sprite *unk2FC; + u16 unk300[BG_SCREEN_SIZE / 2]; + u16 unkB00[BG_SCREEN_SIZE / 2]; +}; + +struct EasyChatPhraseFrameDimensions +{ + u8 left:5; + u8 top:3; + u8 width; + u8 height; + u8 footerId; +}; + +struct EasyChatWordInfo +{ + const u8 *text; + int alphabeticalOrder; + int enabled; +}; + +typedef union +{ + const u16 *valueList; + const struct EasyChatWordInfo *words; +} EasyChatGroupWordData; + +struct EasyChatGroup +{ + EasyChatGroupWordData wordData; + u16 numWords; + u16 numEnabledWords; +}; + +struct Unk203A120 +{ + u16 unk0; + u16 unk2[EC_NUM_GROUPS]; + u16 unk2E[27]; + u16 unk64[27][270]; + u8 filler3958[0x2C]; + u16 unk3984[0x10E]; + u16 unk3BA0; +}; /*size = 0x3BA4*/ + +struct EasyChatWordsByLetter +{ + const u16 *words; + int numWords; +}; void InitEasyChatPhrases(void); -void easy_chat_input_maybe(void); +void ShowEasyChatScreen(void); u8 * CopyEasyChatWord(u8 *dest, u16 word); -bool32 sub_811F8D8(u16 word); +bool32 sub_811F8D8(int word); void InitializeEasyChatWordArray(u16 *words, u16 length); -void ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 length1, u16 length2); +u8 *ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 columns, u16 rows); bool8 ECWord_CheckIfOutsideOfValidRange(u16 word); u16 sub_811EE38(u16 group); u16 sub_811F01C(void); -bool16 EasyChat_GetNumWordsInGroup(u8); +u16 EasyChat_GetNumWordsInGroup(u8); u16 sub_811EE90(u16); -void sub_811A20C(u8 kind, u16 *words, MainCallback callback, u8 sizeParam); +void DoEasyChatScreen(u8 type, u16 *words, MainCallback callback, u8 displayedPersonType); +void sub_811F8BC(void); +void sub_811EFC0(u8 additionalPhraseId); #endif // GUARD_EASYCHAT_H diff --git a/include/ereader_helpers.h b/include/ereader_helpers.h new file mode 100755 index 000000000..54b36ef0f --- /dev/null +++ b/include/ereader_helpers.h @@ -0,0 +1,20 @@ +#ifndef GUARD_EREADER_HELPERS_H +#define GUARD_EREADER_HELPERS_H + +struct Unk81D38FC +{ + u8 unk0[0x270]; + int checksum; +}; + +bool8 sub_81D3920(u8 *buffer); +bool32 sub_81D3AB0(struct Unk81D38FC *arg0); +bool32 sub_81D3B34(void); +int sub_81D3D70(u8, u32, u32*, u32*); +void sub_81D3F9C(void); +void sub_81D3FAC(void); +void sub_81D41A0(void); +void sub_81D41F4(void); +void sub_81D4238(void); + +#endif // GUARD_EREADER_HELPERS_H diff --git a/include/ereader_screen.h b/include/ereader_screen.h new file mode 100755 index 000000000..0e3e51c76 --- /dev/null +++ b/include/ereader_screen.h @@ -0,0 +1,6 @@ +#ifndef GUARD_EREADER_SCREEN_H +#define GUARD_EREADER_SCREEN_H + +void sub_81D5014(void); + +#endif // GUARD_EREADER_SCREEN_H diff --git a/include/event_data.h b/include/event_data.h index e09b32d44..11289c1ab 100644 --- a/include/event_data.h +++ b/include/event_data.h @@ -6,7 +6,7 @@ void InitEventData(void); void ClearTempFieldEventData(void); -void ClearUpperFlags(void); +void ClearDailyFlags(void); void DisableNationalPokedex(void); void EnableNationalPokedex(void); bool32 IsNationalPokedexEnabled(void); @@ -47,6 +47,6 @@ extern u16 gSpecialVar_LastTalked; extern u16 gSpecialVar_Facing; extern u16 gSpecialVar_MonBoxId; extern u16 gSpecialVar_MonBoxPos; -extern u16 gSpecialVar_0x8014; +extern u16 gSpecialVar_Unused_0x8014; #endif // GUARD_EVENT_DATA_H diff --git a/include/event_obj_lock.h b/include/event_obj_lock.h index 59532fdcb..2f09ad36a 100644 --- a/include/event_obj_lock.h +++ b/include/event_obj_lock.h @@ -7,5 +7,6 @@ bool8 sub_809847C(void); void LockSelectedEventObject(void); void sub_8098630(void); bool8 sub_8098734(void); +void ScriptUnfreezeEventObjects(void); #endif // GUARD_EVENT_OBJ_LOCK_H diff --git a/include/event_object_movement.h b/include/event_object_movement.h index 284bbe8db..63ac09f2d 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -193,6 +193,9 @@ void UpdateEventObjectSpriteVisibility(struct Sprite *sprite, bool8 invisible); s16 sub_809773C(s16 a1); s16 sub_8097728(s16 a1); void CameraObjectReset2(void); +u8 EventObjectGetBerryTreeId(u8 eventObjectId); +void sub_8092EF0(u8 mapId, u8 mapNumber, u8 mapGroup); +bool8 IsBerryTreeSparkling(u8, u8, u8); void MovementType_None(struct Sprite *); void MovementType_LookAround(struct Sprite *); diff --git a/include/event_scripts.h b/include/event_scripts.h index afeac6628..e3ec8afb4 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -564,7 +564,7 @@ extern const u8 EventScript_FallDownHole[]; extern const u8 BattleFrontier_BattlePyramidEmptySquare_EventScript_252BE8[]; extern const u8 EventScript_Poison[]; extern const u8 EventScript_EggHatch[]; -extern const u8 gUnknown_08273D1F[]; +extern const u8 UnusualWeather_EventScript_EndEventAndCleanup_1[]; extern const u8 IslandCave_EventScript_238EAF[]; extern const u8 MauvilleCity_EventScript_1DF7BA[]; extern const u8 Route119_EventScript_1F49EC[]; @@ -576,8 +576,8 @@ extern const u8 gUnknown_082A8350[]; // Battle Pyramid. extern const u8 BattleFrontier_BattlePyramidEmptySquare_EventScript_252C88[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A[]; +extern const u8 BattlePyramid_TrainerBattle[]; +extern const u8 BattlePyramid_FindItemBall[]; // fldeff misc extern const u8 EventScript_275A86[]; diff --git a/include/faraway_island.h b/include/faraway_island.h new file mode 100755 index 000000000..89b4bcd08 --- /dev/null +++ b/include/faraway_island.h @@ -0,0 +1,10 @@ +#ifndef GUARD_FARAWAY_ISLAND_H +#define GUARD_FARAWAY_ISLAND_H + +u32 sub_81D427C(void); +bool8 sub_81D4A58(struct EventObject*); +void UpdateFarawayIslandStepCounter(void); +bool8 EventObjectIsFarawayIslandMew(struct EventObject *); +bool8 IsMewPlayingHideAndSeek(void); + +#endif // GUARD_FARAWAY_ISLAND_H diff --git a/include/field_camera.h b/include/field_camera.h index fdc4c5450..fecea244e 100644 --- a/include/field_camera.h +++ b/include/field_camera.h @@ -32,5 +32,6 @@ void SetCameraPanningCallback(void (*a)(void)); void SetCameraPanning(s16 a, s16 b); void InstallCameraPanAheadCallback(void); void UpdateCameraPanning(void); +void FieldUpdateBgTilemapScroll(void); #endif //GUARD_FIELD_CAMERA_H diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h index 3cc4a8324..feb20cef6 100644 --- a/include/field_control_avatar.h +++ b/include/field_control_avatar.h @@ -37,5 +37,8 @@ u8 sub_8068F18(void); bool8 dive_warp(struct MapPosition *position, u16 b); int SetCableClubWarp(void); u8 TrySetDiveWarp(void); +const u8 *GetInteractedLinkPlayerScript(struct MapPosition *position, u8 metatileBehavior, u8 direction); +u8 *GetCoordEventScriptAtMapPosition(struct MapPosition *position); +void ClearPoisonStepCounter(void); #endif // GUARD_FIELDCONTROLAVATAR_H diff --git a/include/field_effect.h b/include/field_effect.h index 7620cedcd..1f5f4ee29 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -13,6 +13,7 @@ extern bool8 (*gFieldCallback2)(void); u32 FieldEffectStart(u8); bool8 FieldEffectActiveListContains(u8 id); +void FieldEffectActiveListClear(void); void sub_80B69DC(void); u8 AddNewGameBirchObject(s16, s16, u8); void FieldEffectStop(struct Sprite *sprite, u8 id); @@ -35,6 +36,10 @@ bool8 FieldEffectCmd_end(u8 **script, u32 *val); bool8 FieldEffectCmd_loadgfx_callnative(u8 **script, u32 *val); bool8 FieldEffectCmd_loadtiles_callnative(u8 **script, u32 *val); bool8 FieldEffectCmd_loadfadedpal_callnative(u8 **script, u32 *val); +void sub_80B6B68(void); +void sub_80B6E4C(u8 a0, u8 priority); +void sub_80B75D8(u8 priority); +void sub_80B7A74(u8 priority); void sub_80B9C28(s16*, u8); void sub_80B9C54(s16*, u8); @@ -46,5 +51,6 @@ void sub_80B7A58(struct Sprite*); void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b); void FreeResourcesAndDestroySprite(struct Sprite *sprite, u8 spriteId); u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority); +void StartEscapeRopeFieldEffect(void); #endif //GUARD_FIELD_EFFECTS_H diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h index 6022467e4..6ea9771e6 100644 --- a/include/field_effect_helpers.h +++ b/include/field_effect_helpers.h @@ -34,5 +34,6 @@ void UpdateSparkleFieldEffect(struct Sprite*); void SetSpriteInvisible(u8 spriteId); void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y); void sub_8155604(u8 spriteId, u8 value, s16 data1); +void sub_81555D8(u8 spriteId, u8 value); #endif //GUARD_FIELD_EFFECT_HELPERS_H diff --git a/include/field_message_box.h b/include/field_message_box.h index 9515a54fd..58f782d9c 100644 --- a/include/field_message_box.h +++ b/include/field_message_box.h @@ -17,5 +17,6 @@ void HideFieldMessageBox(void); bool8 IsFieldMessageBoxHidden(void); u8 GetFieldMessageBoxMode(void); void sub_8098374(void); +void InitFieldMessageBox(void); #endif // GUARD_FIELD_MESSAGE_BOX_H diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index 3aedec5de..ca3d41546 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -60,5 +60,18 @@ bool8 IsPlayerFacingSurfableFishableWater(void); bool8 IsPlayerSurfingNorth(void); void sub_808C228(u8 direction); u8 sub_808BCD0(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 sub_808D194(void); +void sub_808D1C8(void); +bool32 sub_808D1B4(void); +bool32 sub_808D1E8(void); +void sub_808C0A8(u8 a); #endif // GUARD_FIELD_PLAYER_AVATAR_H diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h index 3daf8d892..a62a76b2a 100644 --- a/include/field_screen_effect.h +++ b/include/field_screen_effect.h @@ -5,7 +5,7 @@ void pal_fill_for_maplights(void); void pal_fill_black(void); void WarpFadeScreen(void); void sub_80AF128(void); -void sub_80AF168(void); +void FieldCallback_ReturnToEventScript2(void); void sub_80AF188(void); void sub_80AF214(void); void sub_80AF2B4(u8 taskId); @@ -34,11 +34,13 @@ void sub_80AF948(void); void sub_80AF9F8(void); void sub_80AFC60(void); void sub_80B009C(u8 flashLevel); -void door_upload_tiles(void); +void WriteBattlePyramidViewScanlineEffectBuffer(void); void sub_80B0244(void); void sub_80B0268(void); void sub_80B0534(void); void sub_80B058C(void); void sub_80B05B4(void); +void WriteFlashScanlineEffectBuffer(u8 flashLevel); +bool8 walkrun_is_standing_still(void); #endif // GUARD_FIELD_SCREEN_EFFECT_H diff --git a/include/field_special_scene.h b/include/field_special_scene.h index 240e9ecb6..2219c9433 100644 --- a/include/field_special_scene.h +++ b/include/field_special_scene.h @@ -10,5 +10,6 @@ void Task_HandleTruckSequence(u8 taskId); void ExecuteTruckSequence(void); void EndTruckSequence(u8); void sub_80C791C(void); +void sub_80FB768(void); #endif // GUARD_FIELD_SPECIAL_SCENE_H diff --git a/include/field_specials.h b/include/field_specials.h index 10433299b..68b233074 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -7,13 +7,13 @@ u16 get_unknown_box_id(void); bool8 InMultiBattleRoom(void); void sub_813BF10(void); void IncrementBirthIslandRockStepCount(void); -bool8 sub_813B3B0(void); +bool8 UnusualWeatherHasExpired(void); bool8 ShouldDoBrailleRegicePuzzle(void); -bool32 is_tile_that_overrides_player_control(void); -bool32 sub_8138120(void); -bool32 sub_8138168(void); -bool32 sub_81381B0(void); -bool32 sub_81381F8(void); +bool32 ShouldDoWallyCall(void); +bool32 ShouldDoWinonaCall(void); +bool32 ShouldDoScottCall(void); +bool32 ShouldDoRoxanneCall(void); +bool32 ShouldDoRivalRayquazaCall(void); bool32 CountSSTidalStep(u16 delta); u8 GetSSTidalLocation(s8 *mapGroup, s8 *mapNum, s16 *x, s16 *y); void sub_813A128(void); @@ -23,5 +23,10 @@ bool8 sub_813B9C0(void); void SetShoalItemFlag(u16 v0); void UpdateFrontierManiac(u16 a0); void UpdateFrontierGambler(u16 a0); +void ResetCyclingRoadChallengeData(void); +bool8 warp0_in_pokecenter(void); +void ResetFanClub(void); +bool8 sub_813B21C(void); +void set_unknown_box_id(u8 id); #endif // GUARD_FIELD_SPECIALS_H diff --git a/include/field_weather.h b/include/field_weather.h index 91dcef1dc..76399200d 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -140,9 +140,9 @@ extern const u16 gUnknown_083970E8[]; extern const u8 gWeatherFog1Tiles[]; void StartWeather(void); -void ChangeWeather(u8 weather); -void sub_80AB104(u8 weather); -void sub_80AB130(u8 weather); +void SetNextWeather(u8 weather); +void SetCurrentAndNextWeather(u8 weather); +void SetCurrentAndNextWeatherNoDelay(u8 weather); void sub_80ABC48(s8 gammaIndex); void sub_80ABC7C(u8 gammaIndex, u8 gammaTargetIndex, u8 gammaStepDelay); void FadeScreen(u8 mode, s8 delay); @@ -162,7 +162,7 @@ bool8 Weather_UpdateBlend(void); void sub_80AC274(u8 a); u8 GetCurrentWeather(void); void SetRainStrengthFromSoundEffect(u16 soundEffect); -void PlayRainSoundEffect(void); +void PlayRainStoppingSoundEffect(void); u8 IsWeatherChangeComplete(void); void SetWeatherScreenFadeOut(void); void sub_80AC3E4(void); @@ -233,5 +233,6 @@ void SetSav1WeatherFromCurrMapHeader(void); void SetWeather(u32 weather); void DoCurrentWeather(void); void UpdateWeatherPerDay(u16 increment); +void ResumePausedWeather(void); #endif // GUARD_WEATHER_H diff --git a/include/fieldmap.h b/include/fieldmap.h index 3f5cc5ec8..bb5b0e290 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -9,6 +9,8 @@ #define NUM_PALS_TOTAL 13 #define MAX_MAP_DATA_SIZE 0x2800 +#include "main.h" + extern struct BackupMapLayout gBackupMapLayout; u32 MapGridGetMetatileIdAt(int, int); @@ -32,10 +34,21 @@ void sub_8088B3C(u16 x, u16 y); void InitMap(void); void InitMapFromSavedGame(void); void InitTrainerHillMap(void); -void InitBattlePyramidMap(u8 a0); +void InitBattlePyramidMap(bool8 setPlayerPosition); +void copy_map_tileset1_tileset2_to_vram(struct MapLayout const *mapLayout); +void apply_map_tileset1_tileset2_palette(struct MapLayout const *mapLayout); +void apply_map_tileset2_palette(struct MapLayout const *mapLayout); +void copy_map_tileset2_to_vram_2(struct MapLayout const *mapLayout); +void copy_map_tileset1_to_vram(const struct MapLayout *); +void copy_map_tileset2_to_vram(const struct MapLayout *); +struct MapHeader const *const mapconnection_get_mapheader(struct MapConnection *connection); +struct MapConnection *sub_8088A8C(s16 x, s16 y); void SpriteCB_PokeballGlow(struct Sprite *); void SpriteCB_PokecenterMonitor(struct Sprite *); void SpriteCB_HallOfFameMonitor(struct Sprite *); +// field_region_map.c +void FieldInitRegionMap(MainCallback callback); + #endif //GUARD_FIELDMAP_H diff --git a/include/gba/types.h b/include/gba/types.h index 3d78b5b5e..cb370c785 100644 --- a/include/gba/types.h +++ b/include/gba/types.h @@ -87,6 +87,29 @@ struct OamData #define ST_OAM_H_RECTANGLE 1 #define ST_OAM_V_RECTANGLE 2 +#define ST_OAM_SIZE_0 0 +#define ST_OAM_SIZE_1 1 +#define ST_OAM_SIZE_2 2 +#define ST_OAM_SIZE_3 3 + +#define SPRITE_SIZE_8x8 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_SQUARE)) +#define SPRITE_SIZE_16x16 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_SQUARE)) +#define SPRITE_SIZE_32x32 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_SQUARE)) +#define SPRITE_SIZE_64x64 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_SQUARE)) + +#define SPRITE_SIZE_16x8 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_H_RECTANGLE)) +#define SPRITE_SIZE_32x8 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_H_RECTANGLE)) +#define SPRITE_SIZE_32x16 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_H_RECTANGLE)) +#define SPRITE_SIZE_64x32 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_H_RECTANGLE)) + +#define SPRITE_SIZE_8x16 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_V_RECTANGLE)) +#define SPRITE_SIZE_8x32 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_V_RECTANGLE)) +#define SPRITE_SIZE_16x32 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_V_RECTANGLE)) +#define SPRITE_SIZE_32x64 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_V_RECTANGLE)) + +#define SPRITE_SIZE(dim) (SPRITE_SIZE_##dim >> 2) +#define SPRITE_SHAPE(dim) (SPRITE_SIZE_##dim & 0xFF) + struct BgAffineSrcData { s32 texX; diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 74a8363bb..e35d900d8 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -1,6 +1,13 @@ #ifndef GUARD_GLOBAL_FIELDMAP_H #define GUARD_GLOBAL_FIELDMAP_H +#define METATILE_COLLISION_MASK 0x0C00 +#define METATILE_ID_MASK 0x03FF +#define METATILE_ID_UNDEFINED 0x03FF +#define METATILE_ELEVATION_SHIFT 12 +#define METATILE_COLLISION_SHIFT 10 +#define METATILE_ELEVATION_MASK 0xF000 + enum { CONNECTION_SOUTH = 1, @@ -19,8 +26,8 @@ struct Tileset /*0x01*/ bool8 isSecondary; /*0x04*/ void *tiles; /*0x08*/ void *palettes; - /*0x0c*/ void *metatiles; - /*0x10*/ void *metatileAttributes; + /*0x0c*/ u16 *metatiles; + /*0x10*/ u16 *metatileAttributes; /*0x14*/ TilesetCB callback; }; diff --git a/include/global.h b/include/global.h index f45d36f68..1f9ac5185 100644 --- a/include/global.h +++ b/include/global.h @@ -277,7 +277,7 @@ struct FrontierMonData u8 nature; }; -struct Struct_field_E70 +struct RentalMon { u16 monId; u32 personality; @@ -316,7 +316,7 @@ struct BattleFrontier /*0xCAA*/ u16 selectedPartyMons[3]; /*0xCB0*/ u16 field_CB0; /*0xCB2*/ u16 curChallengeBattleNum; // In case of battle pyramid, the floor. - /*0xCB4*/ u16 field_CB4[20]; + /*0xCB4*/ u16 trainerIds[20]; /*0xCDC*/ u32 field_CDC; /*0xCE0*/ u16 towerWinStreaks[4][2]; /*0xCF0*/ u16 towerRecordWinStreaks[4][2]; @@ -345,7 +345,7 @@ struct BattleFrontier /*0xDC6*/ u16 field_DC6; /*0xDC8*/ u16 palaceWinStreaks[2][2]; /*0xDD0*/ u16 palaceRecordWinStreaks[2][2]; - /*0xDD8*/ u16 field_DD8; + /*0xDD8*/ u16 arenaRewardItem; /*0xDDA*/ u16 arenaWinStreaks[2]; /*0xDDE*/ u16 arenaRecordStreaks[2]; /*0xDE2*/ u16 factoryWinStreaks[2][2]; @@ -356,27 +356,27 @@ struct BattleFrontier /*0xE04*/ u16 pikeWinStreaks[2]; /*0xE08*/ u16 pikeRecordStreaks[2]; /*0xE0C*/ u16 pikeTotalStreaks[2]; - /*0xE10*/ u8 field_E10_1:3; - /*0xE10*/ u8 field_E10_2:4; - /*0xE10*/ u8 field_E10_3:1; - /*0xE12*/ u16 field_E12[3]; - /*0xE18*/ u16 field_E18; + /*0xE10*/ u8 pikeHintedRoomIndex:3; + /*0xE10*/ u8 pikeHintedRoomType:4; + /*0xE10*/ u8 pikeHealingRoomsDisabled:1; + /*0xE12*/ u16 pikeHeldItemsBackup[3]; + /*0xE18*/ u16 pyramidRewardItem; /*0xE1A*/ u16 pyramidWinStreaks[2]; /*0xE1E*/ u16 pyramidRecordStreaks[2]; - /*0xE22*/ u16 field_E22[4]; - /*0xE2A*/ u8 field_E2A; + /*0xE22*/ u16 pyramidRandoms[4]; + /*0xE2A*/ u8 pyramidTrainerFlags; /*0xE2C*/ struct PyramidBag pyramidBag; - /*0xE68*/ u8 field_E68; + /*0xE68*/ u8 pyramidLightRadius; /*0xE6A*/ u16 field_E6A; /*0xE6C*/ u16 field_E6C; /*0xE6E*/ u16 field_E6E; - /*0xE70*/ struct Struct_field_E70 field_E70[6]; + /*0xE70*/ struct RentalMon rentalMons[6]; /*0xEB8*/ u16 battlePoints; /*0xEBA*/ u16 field_EBA; /*0xEBC*/ u32 battlesCount; /*0xEC0*/ u16 field_EC0[16]; /*0xEE0*/ u8 field_EE0; - /*0xEE1*/ u8 field_EE1[2][PLAYER_NAME_LENGTH + 1]; + /*0xEE1*/ u8 opponentName[2][PLAYER_NAME_LENGTH + 1]; /*0xEF1*/ u8 field_EF1[2][4]; /*0xEF9*/ u8 field_EF9_0:7; /*0xEF9*/ u8 field_EF9_1:1; @@ -446,7 +446,7 @@ struct SaveBlock2 /*0x90*/ u8 filler_90[0x8]; /*0x98*/ struct Time localTimeOffset; /*0xA0*/ struct Time lastBerryTreeUpdate; - /*0xA8*/ u32 field_A8; + /*0xA8*/ u32 field_A8; // Written to, but never read. /*0xAC*/ u32 encryptionKey; /*0xB0*/ struct PlayersApprentice playerApprentice; /*0xDC*/ struct Apprentice apprentices[4]; // From record mixing. @@ -787,7 +787,7 @@ struct WaldaPhrase bool8 patternUnlocked; }; -struct UnkSaveSubstruct_3b98 +struct TrainerNameRecord { u32 trainerId; u8 trainerName[PLAYER_NAME_LENGTH + 1]; @@ -795,15 +795,15 @@ struct UnkSaveSubstruct_3b98 struct SaveTrainerHill { - /*0x3D64*/ u32 field_3D64; - /*0x3D68*/ u32 field_3D68; + /*0x3D64*/ u32 timer; + /*0x3D68*/ u32 bestTime; /*0x3D6C*/ u8 field_3D6C; /*0x3D6D*/ u8 unused; /*0x3D6E*/ u16 field_3D6E_0a:1; // 1 /*0x3D6E*/ u16 field_3D6E_0b:1; // 2 /*0x3D6E*/ u16 field_3D6E_0c:1; // 4 - /*0x3D6E*/ u16 field_3D6E_0d:1; // 8 - /*0x3D6E*/ u16 field_3D6E_0e:1; // x10 + /*0x3D6E*/ u16 hasLost:1; // 8 + /*0x3D6E*/ u16 maybeECardScanDuringChallenge:1; // x10 /*0x3D6E*/ u16 field_3D6E_0f:1; // x20 /*0x3D6E*/ u16 tag:2; // x40, x80 = xC0 }; @@ -870,13 +870,12 @@ struct SaveBlock1 /*0x2BA1*/ u8 outbreakPokemonProbability; /*0x2BA2*/ u16 outbreakDaysLeft; /*0x2BA4*/ struct GabbyAndTyData gabbyAndTyData; - /*0x2BB0*/ u16 unk2BB0[6]; - /*0x2BBC*/ u16 unk2BBC[6]; - /*0x2BC8*/ u16 unk2BC8[6]; - /*0x2BD4*/ u16 unk2BD4[6]; + /*0x2BB0*/ u16 easyChatProfile[6]; + /*0x2BBC*/ u16 easyChatBattleStart[6]; + /*0x2BC8*/ u16 easyChatBattleWon[6]; + /*0x2BD4*/ u16 easyChatBattleLost[6]; /*0x2BE0*/ struct MailStruct mail[MAIL_COUNT]; - /*0x2E20*/ u8 additionalPhrases[5]; // bitfield for 33 additional phrases in easy chat system - /*0x2E25*/ u8 unk2E25[3]; // possibly padding? + /*0x2E20*/ u8 additionalPhrases[8]; // bitfield for 33 additional phrases in easy chat system /*0x2E28*/ OldMan oldMan; /*0x2e64*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff /*0x2e90*/ struct ContestWinner contestWinners[13]; // 0 - 5 used in contest hall, 6 - 7 unused?, 8 - 12 museum @@ -891,7 +890,7 @@ struct SaveBlock1 /*0x3B14*/ struct RecordMixingGift recordMixingGift; /*0x3B24*/ u8 seen2[DEX_FLAGS_NO]; /*0x3B58*/ LilycoveLady lilycoveLady; - /*0x3B98*/ struct UnkSaveSubstruct_3b98 unk_3B98[20]; + /*0x3B98*/ struct TrainerNameRecord trainerNameRecords[20]; /*0x3C88*/ u8 filler_3C88[0xDC]; /*0x3D64*/ struct SaveTrainerHill trainerHill; /*0x3D70*/ struct WaldaPhrase waldaPhrase; @@ -907,13 +906,13 @@ struct MapPosition s8 height; }; -struct UnkStruct_8054FF8 +struct TradeRoomPlayer { - u8 a; - u8 b; + u8 playerId; + u8 isLocalPlayer; u8 c; - u8 d; - struct MapPosition sub; + u8 facing; + struct MapPosition pos; u16 field_C; }; diff --git a/include/graphics.h b/include/graphics.h index 47962110d..8aa8a9b60 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4007,26 +4007,35 @@ extern const u32 gBerryPalette_Enigma[]; //credits extern const u32 gCreditsCopyrightEnd_Gfx[]; -//pokenav condition marker +//pokenav extern const u8 gPokenavConditionMarker_Gfx[]; extern const u16 gPokenavConditionMarker_Pal[]; +extern const u16 gPokenavLeftHeader_Pal[]; +extern const u16 gPokenavHeader_Pal[]; +extern const u32 gPokenavHeader_Gfx[]; +extern const u32 gPokenavHeader_Tilemap[]; +extern const u32 gPokenavLeftHeaderHoennMap_Gfx[]; +extern const u32 gPokenavLeftHeaderMainMenu_Gfx[]; +extern const u32 gPokenavLeftHeaderCondition_Gfx[]; +extern const u32 gPokenavLeftHeaderRibbons_Gfx[]; +extern const u32 gPokenavLeftHeaderMatchCall_Gfx[]; -extern const u32 gUnknown_08D9862C[]; +extern const u32 gPageInfoTilemap[]; extern const u32 gUnknown_08D98CC8[]; -extern const u32 gUnknown_08D987FC[]; -extern const u32 gUnknown_08D9898C[]; -extern const u32 gUnknown_08D98B28[]; -extern const u32 gUnknown_08D9853C[]; +extern const u32 gPageSkillsTilemap[]; +extern const u32 gPageBattleMovesTilemap[]; +extern const u32 gPageContestMovesTilemap[]; +extern const u32 gStatusScreenPalette[]; extern const u16 gUnknown_08D85620[]; extern const u16 gSummaryScreenWindow_Tilemap[]; extern const u32 gMoveTypes_Pal[]; -extern const u32 gUnknown_08D97D0C[]; +extern const u32 gStatusScreenBitmap[]; extern const u16 gSummaryScreenPowAcc_Tilemap[]; extern const u16 gUnknown_08DC3C34[]; extern const u32 gMoveTypes_Gfx[]; -extern const u32 gUnknown_08D97BEC[]; +extern const u32 gMoveSelectorBitmap[]; extern const u32 gUnknown_08D97CF4[]; extern const u32 gStatusGfx_Icons[]; extern const u32 gStatusPal_Icons[]; @@ -4104,9 +4113,13 @@ extern const u32 gUnknown_08D83B2C[]; extern const u32 gUnknown_08D83C3C[]; extern const u32 gUnknown_08D83900[]; extern const u32 gBattleFrontierGfx_DomeOptions[]; +extern const u16 gTilesetAnims_BattleDomePals0_0[]; +extern const u16 gTilesetAnims_BattleDomePals0_1[]; +extern const u16 gTilesetAnims_BattleDomePals0_2[]; +extern const u16 gTilesetAnims_BattleDomePals0_3[]; -extern const u32 gUnknown_08D854E8[]; -extern const u32 gUnknown_08D855E8[]; +extern const u32 gBattleArenaJudgementSymbolsGfx[]; +extern const u32 gBattleArenaJudgementSymbolsPalette[]; extern const u32 gContest2Pal[]; extern const u32 gBattleAnimSpriteSheet_000[]; @@ -4724,9 +4737,9 @@ extern const u32 gBattleAnimBackgroundTilemap_17[]; extern const u32 gBattleAnimBackgroundTilemap_20[]; extern const u32 gBattleAnimBackgroundTilemap_21[]; -extern const u32 gUnknown_08C1D0AC[]; -extern const u32 gUnknown_08C1D1E8[]; -extern const u32 gUnknown_08C1D210[]; +extern const u32 gMetalShineGfx[]; +extern const u32 gMetalShinePalette[]; +extern const u32 gMetalShineTilemap[]; extern const u32 gUnknown_08C20668[]; extern const u32 gUnknown_08C20684[]; @@ -4882,5 +4895,14 @@ extern const u16 gFrontierPassMedalsGold_Pal[]; extern const u16 gFrontierPassMedalsSilver_Pal[]; extern const u16 gFrontierPassMapCursor_Pal[]; +// Easy Chat Screen +extern const u32 gEasyChatWindow_Gfx[]; +extern const u32 gEasyChatWindow_Tilemap[]; +extern const u32 gEasyChatMode_Gfx[]; +extern const u16 gEasyChatMode_Pal[]; +extern const u32 gEasyChatCursor_Gfx[]; +extern const u16 gEasyChatCursor_Pal[]; +extern const u32 gEasyChatRightWindow_Gfx[]; +extern const u16 gEasyChatRightWindow_Pal[]; #endif //GUARD_GRAPHICS_H diff --git a/include/hall_of_fame.h b/include/hall_of_fame.h index d35ecf268..5c8a01bcb 100644 --- a/include/hall_of_fame.h +++ b/include/hall_of_fame.h @@ -6,4 +6,7 @@ void CB2_DoHallOfFameScreenDontSaveData(void); void CB2_DoHallOfFamePC(void); void sub_8175280(void); +// hof_pc.c +void ReturnFromHallOfFamePC(void); + #endif // GUARD_HALL_OF_FAME_H diff --git a/include/intro.h b/include/intro.h index b1bfe20a4..198ae2669 100644 --- a/include/intro.h +++ b/include/intro.h @@ -9,6 +9,6 @@ void CB2_InitCopyrightScreenAfterBootup(void); void CB2_InitCopyrightScreenAfterBootup(void); void CB2_InitCopyrightScreenAfterTitleScreen(void); -void sub_816F2A8(u16, u16, u16, u16); +void PanFadeAndZoomScreen(u16, u16, u16, u16); #endif // GUARD_INTRO_H diff --git a/include/intro_credits_graphics.h b/include/intro_credits_graphics.h index 354d62e05..2c7ceaf57 100644 --- a/include/intro_credits_graphics.h +++ b/include/intro_credits_graphics.h @@ -9,7 +9,7 @@ extern const struct CompressedSpriteSheet gIntro2BrendanSpriteSheet[]; extern const struct CompressedSpriteSheet gIntro2MaySpriteSheet[]; extern const struct CompressedSpriteSheet gIntro2BicycleSpriteSheet[]; extern const struct CompressedSpriteSheet gIntro2FlygonSpriteSheet[]; -extern const struct SpritePalette gUnknown_085F530C[]; +extern const struct SpritePalette gIntroBikeAndFlygonPalette[]; extern const struct CompressedSpriteSheet gUnknown_085F5334[]; extern const struct CompressedSpriteSheet gUnknown_085F5344[]; extern const struct CompressedSpriteSheet gUnknown_085F5354[]; @@ -21,7 +21,7 @@ void load_intro_part2_graphics(u8 a); void sub_817B150(u8 a); void sub_817B1C8(u8); void sub_817B3A8(u8); -u8 sub_817B3DC(u8 a, u16 b, u16 c, u16 d); +u8 CreateBicycleAnimationTask(u8 a, u16 b, u16 c, u16 d); void sub_817B540(u8); u8 intro_create_brendan_sprite(s16 a, s16 b); u8 intro_create_may_sprite(s16 a, s16 b); diff --git a/include/item_menu.h b/include/item_menu.h index d972cdf83..70d6b5a94 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -2,6 +2,7 @@ #define GUARD_item_menu_H #include "item.h" +#include "menu_helpers.h" #define RETURN_LOCATION_FIELD 0 #define RETURN_LOCATION_BATTLE 1 @@ -71,6 +72,7 @@ void sub_81AAC14(void); void sub_81AAC50(void); void sub_81AAC70(void); void sub_81AAC28(void); +void sub_81AABB0(void); void SetInitialScrollAndCursorPositions(u8 pocketId); void bag_menu_mail_related(void); void CB2_BagMenuFromStartMenu(void); @@ -79,5 +81,12 @@ bool8 UseRegisteredKeyItemOnField(void); void CB2_GoToSellMenu(void); void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *postExitMenuMainCallback2)()); void DoWallyTutorialBagMenu(void); +void ResetBagScrollPositions(void); +void sub_81AABF0(void (*callback)(void)); +void CB2_ChooseBerry(void); +void unknown_ItemMenu_Confirm(u8 taskId); +void bag_menu_yes_no(u8, u8, const struct YesNoFuncTable*); +void sub_81AB9A8(u8 pocketId); + #endif //GUARD_item_menu_H diff --git a/include/learn_move.h b/include/learn_move.h deleted file mode 100644 index 542ae6a5a..000000000 --- a/include/learn_move.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef GUARD_LEARN_MOVE_H -#define GUARD_LEARN_MOVE_H - -void TeachMoveTutorMove(void); -void ShowHideHearts(s32); - -#endif //GUARD_LEARN_MOVE_H diff --git a/include/link.h b/include/link.h index 9552f062c..1e865e72b 100644 --- a/include/link.h +++ b/include/link.h @@ -230,7 +230,6 @@ bool8 IsLinkMaster(void); void CB2_LinkError(void); u8 GetSioMultiSI(void); bool8 IsLinkConnectionEstablished(void); -void SetSuppressLinkErrorMessage(bool8); bool8 HasLinkErrorOccurred(void); void ResetSerial(void); u32 LinkMain1(u8 *shouldAdvanceLinkState, u16 *sendCmd, u16 (*recvCmds)[CMD_LENGTH]); @@ -244,7 +243,7 @@ bool8 IsLinkTaskFinished(void); void CreateWirelessStatusIndicatorSprite(u8, u8); void sub_800ADF8(void); void sub_800B488(void); -void sub_800A620(void); +void CheckShouldAdvanceLinkState(void); void sub_8011BD0(void); u8 IsLinkMaster(void); void sub_800AC34(void); @@ -261,6 +260,8 @@ void sub_800B3A4(u32 who); bool32 sub_800A07C(void); void sub_800AB98(void); void sub_800AA04(u8 a0); +void sub_800B4C0(void); +bool32 sub_800B504(void); extern u16 gLinkPartnersHeldKeys[6]; extern u32 gLinkDebugSeed; @@ -299,18 +300,20 @@ extern struct LinkPlayer gLocalLinkPlayer; bool32 Link_AnyPartnersPlayingRubyOrSapphire(void); bool32 sub_800A03C(void); -void sub_8009628(u8); -u8 sub_800AA48(void); +void SetLocalLinkPlayerId(u8); +u8 GetSavedPlayerCount(void); void sub_8009FAC(void); bool8 sub_800A4D8(u8 a0); u8 sub_800A9D8(void); u8 sub_800A0C8(s32, s32); -u16 *sub_801B058(void); +u16 *GetSaveBlock1Field3564(void); u8 sub_800A9A8(void); void sub_800AD10(void); void sub_800AB18(void); void sub_8009F18(void); bool8 sub_800AA60(void); void sub_800ABF4(u16 a0); +bool32 IsSendingKeysToLink(void); +u32 GetLinkRecvQueueLength(void); #endif // GUARD_LINK_H diff --git a/include/link_rfu.h b/include/link_rfu.h index 08cab616c..5b8ccd9fb 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -213,12 +213,13 @@ extern struct UnkRfuStruct_2 gUnknown_03005000; extern u8 gWirelessStatusIndicatorSpriteId; // Exported ROM declarations +void WipeTrainerNameRecords(void); u32 sub_800BEC0(void); void sub_800E700(void); void sub_800EDD4(void); void sub_800F6FC(u8 who); void sub_800F728(u8 who); -bool32 sub_800F7E4(void); +bool32 IsSendingKeysToRfu(void); void sub_800F804(void); void sub_800F850(void); u8 sub_800FCD8(void); @@ -237,8 +238,8 @@ void sub_800E6D0(void); bool32 sub_8010EC0(void); bool32 sub_8010F1C(void); bool32 sub_8011A80(void); -bool32 sub_800F0B8(void); -u32 sub_80124D4(void); +bool32 IsRfuRecvQueueEmpty(void); +u32 GetRfuRecvQueueLength(void); void RfuVSync(void); void sub_80111B0(bool32 a0); u8 sub_8011A74(void); @@ -263,7 +264,7 @@ void sub_800E084(void); void sub_801103C(void); void sub_8011C5C(void); void sub_80106D4(void); -void sub_800E3A8(void); +void RecordMixTrainerNames(void); void sub_800ED10(void); void sub_800ED28(void); void sub_8011090(u8 a0, u32 a1, u32 a2); @@ -282,5 +283,6 @@ void sub_800EF7C(void); bool8 sub_800DE7C(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx); s32 sub_800E87C(u8 idx); void sub_8011BA4(void); +void sub_8010198(void); #endif //GUARD_LINK_RFU_H diff --git a/include/list_menu.h b/include/list_menu.h index 84c38306b..a301e5b32 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -4,7 +4,7 @@ #include "window.h" #define LIST_NOTHING_CHOSEN -1 -#define LIST_B_PRESSED -2 +#define LIST_CANCEL -2 #define LIST_HEADER -3 #define LIST_NO_MULTIPLE_SCROLL 0 @@ -101,7 +101,7 @@ extern struct ListMenuTemplate gMultiuseListMenuTemplate; s32 DoMysteryGiftListMenu(struct WindowTemplate *windowTemplate, struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum); u8 ListMenuInit(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow); u8 ListMenuInitInRect(struct ListMenuTemplate *listMenuTemplate, struct ListMenuWindowRect *arg1, u16 scrollOffset, u16 selectedRow); -s32 ListMenuHandleInputGetItemId(u8 listTaskId); +s32 ListMenu_ProcessInput(u8 listTaskId); void DestroyListMenuTask(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow); void RedrawListMenu(u8 listTaskId); void ChangeListMenuPals(u8 listTaskId, u8 cursorPal, u8 fillValue, u8 cursorShadowPal); diff --git a/include/main.h b/include/main.h index 2ed30307b..4f9a9e61a 100644 --- a/include/main.h +++ b/include/main.h @@ -61,12 +61,14 @@ void SetHBlankCallback(IntrCallback callback); void SetVCountCallback(IntrCallback callback); void SetSerialCallback(IntrCallback callback); void InitFlashTimer(void); -void sub_80008DC(u32 *var); -void sub_80008E8(void); +void SetTrainerHillVBlankCounter(u32 *var); +void ClearTrainerHillVBlankCounter(void); void DoSoftReset(void); void ClearPokemonCrySongs(void); void RestoreSerialTimer3IntrHandlers(void); void StartTimer1(void); void SeedRngAndSetTrainerId(void); +u16 GetGeneratedTrainerIdLower(void); + #endif // GUARD_MAIN_H diff --git a/include/match_call.h b/include/match_call.h index 1f431bfaf..6803d2f26 100644 --- a/include/match_call.h +++ b/include/match_call.h @@ -11,5 +11,10 @@ enum { }; s32 GetRematchIdxByTrainerIdx(s32 trainerIdx); +void InitMatchCallCounters(void); +bool32 TryStartMatchCall(void); +bool32 IsMatchCallTaskActive(void); +void StartMatchCallFromScript(u8* script); +void sub_8197080(u8 *destStr); #endif //GUARD_MATCH_CALL_H diff --git a/include/menu.h b/include/menu.h index aca462468..e236ffcfa 100644 --- a/include/menu.h +++ b/include/menu.h @@ -25,23 +25,23 @@ void InitStandardTextBoxWindows(void); void sub_8197200(void); u16 RunTextPrintersAndIsPrinter0Active(void); void sub_81973A4(void); -void NewMenuHelpers_DrawDialogueFrame(u8, u8); -void sub_819746C(u8 windowId, bool8 copyToVram); +void DrawDialogueFrame(u8, u8); +void ClearStdWindowAndFrame(u8 windowId, bool8 copyToVram); u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 fgColor, u8 bgColor, u8 shadowColor); void PrintPlayerNameOnWindow(u8, const u8*, u16, u16); void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback); -void sub_8197434(u8 windowId, bool8 copyToVram); -void SetStandardWindowBorderStyle(u8 a0, u8 a1); -void DisplayYesNoMenu(void); +void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram); +void SetStandardWindowBorderStyle(u8 windowId, bool8 copyToVram); +void DisplayYesNoMenuDefaultYes(void); u32 GetPlayerTextSpeed(void); u8 GetPlayerTextSpeedDelay(void); void sub_81978B0(u16 arg0); void AddTextPrinterWithCallbackForMessage(bool8 a1, void (*callback)(struct TextPrinterTemplate *, u16)); void sub_8199DF0(u32 bg, u8 a1, int a2, int a3); void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str); -void sub_8198070(u8 windowId, bool8 copyToVram); +void ClearStdWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram); void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock); -void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 tileStart, u8 palette); +void DrawStdFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 tileStart, u8 palette); void schedule_bg_copy_tilemap_to_vram(u8 bgNum); void PrintMenuTable(u8 windowId, u8 itemCount, const struct MenuAction *strs); u8 InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 windowId, u8 numItems, u8 initialCursorPos); @@ -60,9 +60,9 @@ s8 ProcessMenuInput_other(void); void do_scheduled_bg_tilemap_copies_to_vram(void); void clear_scheduled_bg_copies_to_vram(void); void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str); -void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u8 a3); +void DrawDialogFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 a2, u8 a3); void sub_81995E4(u8 windowId, u8 optionsNo, const struct MenuAction *actions, const u8 *actionIds); -void sub_8197DF8(u8 windowId, bool8 copyToVram); +void ClearDialogWindowAndFrameToTransparent(u8 windowId, bool8 copyToVram); u16 sub_8198AA4(u8, u8, u8, u8, u8, u8, u16); void *malloc_and_decompress(const void *src, u32 *sizeOut); u16 copy_decompressed_tile_data_to_vram(u8 bgId, const void *src, u16 size, u16 offset, u8 mode); @@ -75,13 +75,13 @@ u8 GetStartMenuWindowId(void); void sub_819A2BC(u8, u8); u8 Menu_MoveCursor(s8 cursorDelta); u8 Menu_MoveCursorNoWrapAround(s8 cursorDelta); -void NewMenuHelpers_DrawStdWindowFrame(u8 windowId, bool8 CopyToVram); +void DrawStdWindowFrame(u8 windowId, bool8 CopyToVram); u8 sub_81979C4(u8 a1); u8 sub_81983AC(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPos); void sub_819786C(u8 windowId, bool8 copyToVram); void AddTextPrinterForMessage_2(bool8 allowSkippingDelayWithButtonPress); void RemoveStartMenuWindow(void); -void sub_8197948(u8 initialCursorPos); +void DisplayYesNoMenuWithDefault(u8 initialCursorPos); void sub_819A344(u8 a0, u8 *dest, u8 color); void RemoveMapNamePopUpWindow(void); u8 GetMapNamePopUpWindowId(void); diff --git a/include/menu_specialized.h b/include/menu_specialized.h new file mode 100644 index 000000000..afc89a149 --- /dev/null +++ b/include/menu_specialized.h @@ -0,0 +1,52 @@ +#ifndef GUARD_MENU_SPECIALIZED_H +#define GUARD_MENU_SPECIALIZED_H + +#include "player_pc.h" +#include "list_menu.h" +#include "pokemon.h" + +struct UnknownSubStruct_81D1ED4 +{ + u16 unk0; + u16 unk2; +}; + +struct UnknownStruct_81D1ED4 +{ + /*0x000*/ u8 unk0[4][5]; + /*0x014*/ struct UnknownSubStruct_81D1ED4 unk14[4][5]; + /*0x064*/ struct UnknownSubStruct_81D1ED4 unk64[10][5]; + /*0x12C*/ struct UnknownSubStruct_81D1ED4 unk12C[5]; + /*0x13C*/ struct UnknownSubStruct_81D1ED4 unk13C[0x42]; + /*0x248*/ struct UnknownSubStruct_81D1ED4 unk248[0x42]; + /*0x350*/ u16 unk350; + /*0x352*/ u16 unk352; + /*0x354*/ u8 unk354; + /*0x355*/ u8 unk355; +}; + +bool8 sub_81D1C44(u8 count); +u8 sub_81D1C84(u8 a0); +u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page); +void sub_81D1E90(struct PlayerPCItemPageStruct *page); +void sub_81D1EC0(void); +void sub_81D1D04(u8 a0); +void DrawLevelUpWindowPg1(u16 arg0, void* statStoreLocation1, void* statStoreLocation2, u8 arg3, u8 arg4, u8 arg5); +void DrawLevelUpWindowPg2(u16 arg0, void* statStoreLocation1, u8 arg2, u8 arg3, u8 arg4); +void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0); +void sub_81D2108(struct UnknownStruct_81D1ED4 *arg0); +void sub_81D20AC(struct UnknownStruct_81D1ED4 *arg0); +void sub_81D2230(struct UnknownStruct_81D1ED4 *arg0); +bool8 sub_81D20BC(struct UnknownStruct_81D1ED4 *arg0); +void sub_81D3464(void *arg0); +void sub_81D3480(void *arg0, u8 arg1); +void sub_81D2754(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 *arg1); +void sub_81D1F84(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 arg1[4][5], struct UnknownSubStruct_81D1ED4 arg2[4][5]); +void MoveRelearnerPrintText(u8 *str); +bool16 MoveRelearnerRunTextPrinters(void); +void MoveRelearnerCreateYesNoMenu(void); +u8 LoadMoveRelearnerMovesList(const struct ListMenuItem *items, u16 numChoices); +void InitMoveRelearnerWindows(bool8 useContextWindow); +void GetMonLevelUpWindowStats(struct Pokemon* mon, void* statStoreLocation); + +#endif // GUARD_MENU_SPECIALIZED_H
\ No newline at end of file diff --git a/include/move_relearner.h b/include/move_relearner.h new file mode 100644 index 000000000..51b476d25 --- /dev/null +++ b/include/move_relearner.h @@ -0,0 +1,7 @@ +#ifndef GUARD_MOVE_RELEARNER_H +#define GUARD_MOVE_RELEARNER_H + +void TeachMoveRelearnerMove(void); +void MoveRelearnerShowHideHearts(s32); + +#endif //GUARD_MOVE_RELEARNER_H diff --git a/include/new_game.h b/include/new_game.h index f4d69cbce..8fab05483 100644 --- a/include/new_game.h +++ b/include/new_game.h @@ -8,7 +8,7 @@ void SetTrainerId(u32 trainerId, u8 *dst); u32 GetTrainerId(u8 *trainerId); void CopyTrainerId(u8 *dst, u8 *src); void NewGameInitData(void); -void sub_808447C(void); +void ResetMenuAndMonGlobals(void); void Sav2_ClearSetDefault(void); #endif // GUARD_NEW_GAME_H diff --git a/include/overworld.h b/include/overworld.h index 79cbf1da3..b86067701 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -1,6 +1,29 @@ #ifndef GUARD_OVERWORLD_H #define GUARD_OVERWORLD_H +#define LINK_KEY_CODE_NULL 0x00 +#define LINK_KEY_CODE_EMPTY 0x11 +#define LINK_KEY_CODE_DPAD_DOWN 0x12 +#define LINK_KEY_CODE_DPAD_UP 0x13 +#define LINK_KEY_CODE_DPAD_LEFT 0x14 +#define LINK_KEY_CODE_DPAD_RIGHT 0x15 +#define LINK_KEY_CODE_UNK_2 0x16 +#define LINK_KEY_CODE_EXIT_ROOM 0x17 +#define LINK_KEY_CODE_START_BUTTON 0x18 +#define LINK_KEY_CODE_A_BUTTON 0x19 +#define LINK_KEY_CODE_UNK_4 0x1A // I'd guess this is the B button? + +// These two are a hack to stop user input until link stuff can be +// resolved. +#define LINK_KEY_CODE_HANDLE_RECV_QUEUE 0x1B +#define LINK_KEY_CODE_HANDLE_SEND_QUEUE 0x1C +#define LINK_KEY_CODE_UNK_7 0x1D +#define LINK_KEY_CODE_UNK_8 0x1E + +#define MOVEMENT_MODE_FREE 0 +#define MOVEMENT_MODE_FROZEN 1 +#define MOVEMENT_MODE_SCRIPTED 2 + struct InitialPlayerAvatarState { u8 transitionFlags; @@ -12,7 +35,7 @@ struct LinkPlayerEventObject u8 active; u8 linkPlayerId; u8 eventObjId; - u8 mode; + u8 movementMode; }; // Exported RAM declarations @@ -22,10 +45,10 @@ extern struct LinkPlayerEventObject gLinkPlayerEventObjects[4]; extern u16 *gBGTilemapBuffers1; extern u16 *gBGTilemapBuffers2; extern u16 *gBGTilemapBuffers3; -extern u16 gUnknown_03005DA8; +extern u16 gHeldKeyCodeToSend; extern void (*gFieldCallback)(void); extern bool8 (*gFieldCallback2)(void); -extern u8 gUnknown_03005DB4; +extern u8 gLocalLinkPlayerId; extern u8 gFieldLinkPlayerCount; // Exported ROM declarations @@ -68,7 +91,7 @@ void SetContinueGameWarpToDynamicWarp(int unused); const struct MapConnection *GetMapConnection(u8 dir); bool8 SetDiveWarpEmerge(u16 x, u16 y); bool8 SetDiveWarpDive(u16 x, u16 y); -void mliX_load_map(u8 mapGroup, u8 mapNum); +void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum); void ResetInitialPlayerAvatarState(void); void StoreInitialPlayerAvatarState(void); bool32 Overworld_IsBikingAllowed(void); @@ -96,19 +119,19 @@ u8 GetMapTypeByGroupAndId(s8 mapGroup, s8 mapNum); u8 GetMapTypeByWarpData(struct WarpData *warp); u8 GetCurrentMapType(void); u8 GetLastUsedWarpMapType(void); -bool8 is_map_type_1_2_3_5_or_6(u8 mapType); +bool8 IsMapTypeOutdoors(u8 mapType); bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType); -bool8 Overworld_MapTypeIsIndoors(u8 mapType); +bool8 IsMapTypeIndoors(u8 mapType); u8 GetSavedWarpRegionMapSectionId(void); u8 GetCurrentRegionMapSectionId(void); u8 GetCurrentMapBattleScene(void); void CleanupOverworldWindowsAndTilemaps(void); -bool32 is_c1_link_related_active(void); +bool32 IsUpdateLinkStateCBActive(void); void CB1_Overworld(void); void CB2_OverworldBasic(void); void CB2_Overworld(void); void SetMainCallback1(void (*cb)(void)); -void sub_8085E94(void *a0); +void SetUnusedCallback(void *a0); void CB2_NewGame(void); void CB2_WhiteOut(void); void CB2_LoadMap(void); @@ -117,18 +140,18 @@ void sub_8086074(void); void CB2_ReturnToField(void); void CB2_ReturnToFieldLocal(void); void CB2_ReturnToFieldLink(void); -void c2_8056854(void); +void CB2_ReturnToFieldFromMultiplayer(void); void CB2_ReturnToFieldWithOpenMenu(void); void CB2_ReturnToFieldContinueScript(void); void CB2_ReturnToFieldContinueScriptPlayMapMusic(void); void sub_80861E8(void); void CB2_ContinueSavedGame(void); -void sub_8086C2C(void); +void ResetAllMultiplayerState(void); u32 sub_8087214(void); bool32 sub_808727C(void); u16 sub_8087288(void); u16 sub_808729C(void); -u16 sub_80872B0(void); +u16 QueueExitLinkRoomKey(void); u16 sub_80872C4(void); bool32 sub_8087598(void); bool32 sub_80875C8(void); diff --git a/include/palette.h b/include/palette.h index e24da3e00..8d16270aa 100644 --- a/include/palette.h +++ b/include/palette.h @@ -9,6 +9,11 @@ #define PLTT_BUFFER_SIZE 0x200 #define PLTT_DECOMP_BUFFER_SIZE (PLTT_BUFFER_SIZE * 2) +#define PALETTE_FADE_STATUS_DELAY 2 +#define PALETTE_FADE_STATUS_ACTIVE 1 +#define PALETTE_FADE_STATUS_DONE 0 +#define PALETTE_FADE_STATUS_LOADING 0xFF + enum { FAST_FADE_IN_FROM_WHITE, diff --git a/include/party_menu.h b/include/party_menu.h index ae7c414a8..413a89689 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -48,6 +48,8 @@ extern MainCallback gPostMenuFieldCallback; extern u8 gSelectedOrderFromParty[4]; extern u8 gUnknown_0203CF00[3]; +extern void (*gUnknown_03006328)(u8, TaskFunc); + extern const u16 gTutorMoves[]; void sub_81B0FCC(u8 slot, u8 b); @@ -60,7 +62,7 @@ u8 sub_81B1B5C(const u8* str, u8 b); bool8 sub_81B1BD4(void); void sub_81B1F18(u8 taskId, u8 slot, s8 c, s16 HPDifference, TaskFunc func); u8 pokemon_ailments_get_primary(u32 status); -u8 sub_81B205C(struct Pokemon *mon); +u8 GetMonAilment(struct Pokemon *mon); void display_pokemon_menu_message(u32 stringID); void sub_81B47E0(u8 taskId); bool8 FieldCallback_PrepareFadeInFromMenu(void); @@ -83,7 +85,7 @@ u8 GetItemEffectType(u16 item); void CB2_PartyMenuFromStartMenu(void); void sub_81B7F60(void); void sub_81B8448(void); -void sub_81B8518(u8 unused); +void InitChooseHalfPartyForBattle(u8 unused); void sub_81B8558(void); void sub_81B8904(u8 initArg, MainCallback callback); void sub_81B892C(void); diff --git a/include/player_pc.h b/include/player_pc.h index 5a0b83683..53bb25c6b 100644 --- a/include/player_pc.h +++ b/include/player_pc.h @@ -85,5 +85,7 @@ extern const struct MenuAction gMailboxMailOptions[]; void ReshowPlayerPC(u8 taskId); void sub_816B31C(void); void Mailbox_ReturnToMailListAfterDeposit(void); +void NewGameInitPCItems(void); + #endif //GUARD_PLAYER_PC_H diff --git a/include/pokedex.h b/include/pokedex.h index 91e9e37d4..a1b7378bf 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -1,7 +1,7 @@ #ifndef GUARD_POKEDEX_H #define GUARD_POKEDEX_H -extern u8 gUnknown_030060B0; +extern u8 gUnusedPokedexU8; extern void (*gUnknown_030060B4)(void); #define HOENN_DEX_COUNT 202 @@ -42,5 +42,8 @@ u8 CreateDexDisplayMonDataTask(u16 dexNum, u32 trainerId, u32 personality); s8 GetSetPokedexFlag(u16 nationalNum, u8 caseId); u16 CreateMonSpriteFromNationalDexNumber(u16, s16, s16, u16); bool16 HasAllHoennMons(void); +void ResetPokedexScrollPositions(void); +u16 sub_80C0944(void); +void CB2_Pokedex(void); #endif // GUARD_POKEDEX_H diff --git a/include/pokedex_cry_screen.h b/include/pokedex_cry_screen.h index 392e80a6d..93f1b02a5 100755 --- a/include/pokedex_cry_screen.h +++ b/include/pokedex_cry_screen.h @@ -10,6 +10,8 @@ struct CryRelatedStruct u8 yPos; }; +extern u8 gDexCryScreenState; + bool8 sub_8145354(struct CryRelatedStruct*, u8); void sub_814545C(u8); void sub_8145534(u16); diff --git a/include/pokemon.h b/include/pokemon.h index 507497683..60ccb27f4 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -431,9 +431,9 @@ extern const u8 *const gItemEffectTable[]; extern const struct Evolution gEvolutionTable[][EVOS_PER_MON]; extern const u32 gExperienceTables[][MAX_LEVEL + 1]; extern const u16 *const gLevelUpLearnsets[]; -extern const u8 gUnknown_08329D22[]; -extern const u8 gUnknown_08329D26[]; -extern const u8 gUnknown_08329D2A[]; +extern const u8 gPPUpGetMask[]; +extern const u8 gPPUpSetMask[]; +extern const u8 gPPUpAddMask[]; extern const u8 gStatStageRatios[][2]; extern const u16 gUnknown_08329D54[]; extern const struct SpriteTemplate gUnknown_08329D98[]; @@ -583,7 +583,7 @@ const u8 *GetTrainerPartnerName(void); void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3); void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3); void PokemonSummaryDoMonAnimation(struct Sprite* sprite, u16 species, bool8 oneFrame); -void sub_806EE98(void); +void StopPokemonAnimationDelayTask(void); void BattleAnimateBackSprite(struct Sprite* sprite, u16 species); u8 sub_806EF08(u8 arg0); u8 sub_806EF84(u8 arg0, u8 arg1); diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index 4f27ef281..c7b895028 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -23,5 +23,6 @@ void LoadMonIconPalette(u16 species); void sub_80D328C(struct Sprite *sprite); void sub_80D3014(struct Sprite *sprite); void sub_80D32C8(struct Sprite *sprite, u8 animNum); +u8 sub_80D30A0(u16 species); #endif // GUARD_POKEMON_ICON_H diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index e2226b1e1..19994b77f 100755 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -1,7 +1,10 @@ #ifndef GUARD_POKEMON_SUMMARY_SCREEN_H #define GUARD_POKEMON_SUMMARY_SCREEN_H -extern u8 gUnknown_0203CF20; +#include "main.h" + +extern u8 gLastViewedMonIndex; +extern const u8 *const gMoveDescriptionPointers[]; void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)); void sub_81C4F98(u8, void(*)(void)); diff --git a/include/pokenav.h b/include/pokenav.h index e5dba8ae0..13cb0babf 100644 --- a/include/pokenav.h +++ b/include/pokenav.h @@ -1,34 +1,8 @@ #ifndef GUARD_POKENAV_H #define GUARD_POKENAV_H -#include "player_pc.h" #include "list_menu.h" -bool8 sub_81D20BC(void *arg0); bool8 sub_81D312C(void *arg0); -void sub_81D1ED4(void *arg0); -void sub_81D2108(void *arg0); -void sub_81D20AC(void *arg0); -void sub_81D2230(void *arg0); -void sub_81D3464(void *arg0); -void sub_81D3480(void *arg0, u8 arg1); -void sub_81D2754(void *arg0, void *arg1); -void sub_81D1F84(void *arg0, void *arg1, void *arg2); -u8 sub_81D1C84(u8); -u8 sub_81D1DC0(struct PlayerPCItemPageStruct *); -void sub_81D1E90(struct PlayerPCItemPageStruct *); -void sub_81D1EC0(void); -void sub_81D1D04(u8); -bool8 sub_81D1C44(u8); -bool8 sub_81D4A58(struct EventObject*); -void sub_81D2BF4(u8 *); -u16 sub_81D2C3C(void); -void sub_81D2C50(void); -u8 sub_81D28C8(const struct ListMenuItem *items, u16 numChoices); -void sub_81D2824(u16); -bool8 EventObjectIsFarawayIslandMew(struct EventObject *); -u32 sub_81D427C(void); -void sub_81D4998(void); -void sub_81D3640(u16 arg0, void* statStoreLocation1, void* statStoreLocation2, u8 arg3, u8 arg4, u8 arg5); -void sub_81D3784(u16 arg0, void* statStoreLocation1, u8 arg2, u8 arg3, u8 arg4); +void CB2_InitPokeNav(void); #endif //GUARD_POKENAV_H diff --git a/include/record_mixing.h b/include/record_mixing.h index 0d50f46f9..4cd231e8a 100644 --- a/include/record_mixing.h +++ b/include/record_mixing.h @@ -7,7 +7,7 @@ struct PlayerHallRecords struct RankingHall2P twoPlayers[2]; }; -void sub_80E6BE8(void); +void RecordMixingPlayerSpotTriggered(void); void GetPlayerHallRecords(struct PlayerHallRecords *dst); #endif //GUARD_RECORD_MIXING_H diff --git a/include/rom_8011DC0.h b/include/rom_8011DC0.h index faffd3375..0f13718e5 100644 --- a/include/rom_8011DC0.h +++ b/include/rom_8011DC0.h @@ -17,5 +17,11 @@ u16 mevent_081445C0(u8); void sub_801B990(u32, u32); u8 sub_8013F78(void); bool32 sub_802C908(u16); +void nullsub_89(u8 taskId); +void var_800D_set_xB(void); + +bool32 mevent_0814257C(u8 *textState, const u8 *str); +void sub_8018884(const u8 *src); +void sub_80186A4(void); #endif //GUARD_rom_8011DC0_H diff --git a/include/rom_818CFC8.h b/include/rom_818CFC8.h deleted file mode 100644 index 1d0626b2b..000000000 --- a/include/rom_818CFC8.h +++ /dev/null @@ -1,11 +0,0 @@ -// -// Created by Scott Norton on 9/6/17. -// - -#ifndef GUARD_ROM_818CFC8_H -#define GUARD_ROM_818CFC8_H - -bool8 InBattlePyramid(void); -u8 sub_81AAA40(void); - -#endif //GUARD_ROM_818CFC8_H diff --git a/include/save.h b/include/save.h index 42ce8b3f3..88e5f2280 100644 --- a/include/save.h +++ b/include/save.h @@ -83,15 +83,16 @@ bool8 sub_8153380(void); bool8 sub_81533AC(void); u8 sub_81533E0(void); u8 sub_8153408(void); -u8 sub_8153430(void); -bool8 sub_8153474(void); +u8 FullSaveGame(void); +bool8 CheckSaveFile(void); u8 Save_LoadGameData(u8 a1); u16 sub_815355C(void); u8 sub_81534D0(u8); -u8 sub_8153430(void); -bool8 sub_8153474(void); u32 TryCopySpecialSaveSection(u8 sector, u8* dst); u32 sub_8153634(u8 sector, u8* src); void sub_8153688(u8 taskId); +// save_failed_screen.c +void DoSaveFailedScreen(u8 saveType); + #endif // GUARD_SAVE_H diff --git a/include/script.h b/include/script.h index 755ff19a3..34f4635bb 100644 --- a/include/script.h +++ b/include/script.h @@ -43,16 +43,16 @@ void ScriptContext1_SetupScript(const u8 *ptr); void ScriptContext1_Stop(void); void EnableBothScriptContexts(void); void ScriptContext2_RunNewScript(const u8 *ptr); -u8 *mapheader_get_tagged_pointer(u8 tag); -void mapheader_run_script_by_tag(u8 tag); -u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag); -void mapheader_run_script_with_tag_x1(void); -void mapheader_run_script_with_tag_x3(void); -void mapheader_run_script_with_tag_x5(void); -void mapheader_run_script_with_tag_x7(void); -void mapheader_run_script_with_tag_x6(void); -bool8 mapheader_run_first_tag2_script_list_match(void); -void mapheader_run_first_tag4_script_list_match(void); +u8 *MapHeaderGetScriptTable(u8 tag); +void MapHeaderRunScriptType(u8 tag); +u8 *MapHeaderCheckScriptTable(u8 tag); +void RunOnLoadMapScript(void); +void RunOnTransitionMapScript(void); +void RunOnResumeMapScript(void); +void RunOnReturnToFieldMapScript(void); +void RunOnDiveWarpMapScript(void); +bool8 TryRunOnFrameMapScript(void); +void TryRunOnWarpIntoMapScript(void); u32 CalculateRamScriptChecksum(void); void ClearRamScript(void); bool8 InitRamScript(const u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId); @@ -61,4 +61,7 @@ bool32 sub_80991F8(void); u8 *sub_8099244(void); void sub_80992A0(u8 *script, u16 scriptSize); +// srccmd.h +void sub_809BE48(u16 npcId); + #endif // GUARD_SCRIPT_H diff --git a/include/script_menu.h b/include/script_menu.h index a6d52c31e..1f4e549fe 100644 --- a/include/script_menu.h +++ b/include/script_menu.h @@ -14,5 +14,7 @@ u8 CreateWindowFromRect(u8, u8, u8, u8); void sub_80E2A78(u8); int display_text_and_get_width(const u8*, int); int sub_80E2D5C(int arg0, int tileWidth); +bool16 ScrSpecial_CreatePCMenu(void); +void ScriptMenu_DisplayPCStartupPrompt(void); #endif //GUARD_SCRIPT_MENU_H diff --git a/include/secret_base.h b/include/secret_base.h index 4b44d4678..17efc314d 100644 --- a/include/secret_base.h +++ b/include/secret_base.h @@ -22,6 +22,9 @@ void sub_80EB56C(void); void sub_80EB9E0(void); void sub_80EBB28(void); void WarpIntoSecretBase(const struct MapPosition *position, const struct MapEvents *events); +bool8 sub_80E909C(void); +void sub_80EB218(void); +void ResetSecretBases(void); // SetCurrentSecretBaseFromPosition void sub_80E9608(const struct MapPosition *position, const struct MapEvents *events); @@ -30,5 +33,8 @@ void sub_80E8B6C(void); void sub_80E8BC8(void); void sub_80E8D4C(void); void EnableBothScriptContexts(void); +void ReceiveSecretBasesData(void *records, size_t recordSize, u8 linkIdx); + + #endif //GUARD_SECRET_BASE_H diff --git a/include/siirtc.h b/include/siirtc.h index 5864f95b8..de4fd634d 100644 --- a/include/siirtc.h +++ b/include/siirtc.h @@ -39,10 +39,10 @@ struct SiiRtcInfo u8 alarmMinute; }; -void SiiRtcUnprotect(); -void SiiRtcProtect(); -u8 SiiRtcProbe(); -bool8 SiiRtcReset(); +void SiiRtcUnprotect(void); +void SiiRtcProtect(void); +u8 SiiRtcProbe(void); +bool8 SiiRtcReset(void); bool8 SiiRtcGetStatus(struct SiiRtcInfo *rtc); bool8 SiiRtcSetStatus(struct SiiRtcInfo *rtc); bool8 SiiRtcGetDateTime(struct SiiRtcInfo *rtc); diff --git a/include/slot_machine.h b/include/slot_machine.h index 88bbbd91b..d441b7411 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -1,6 +1,20 @@ #ifndef GUARD_SLOT_MACHINE_H #define GUARD_SLOT_MACHINE_H +#define NUM_REELS 3 +#define REEL_NUM_TAGS 21 +#define REEL_TAG_HEIGHT 24 + +// Lucky Flags +#define LUCKY_BIAS_REPLAY (1 << 0) +#define LUCKY_BIAS_CHERRY (1 << 1) +#define LUCKY_BIAS_LOTAD (1 << 2) +#define LUCKY_BIAS_AZURILL (1 << 3) +#define LUCKY_BIAS_POWER (1 << 4) +#define LUCKY_BIAS_REELTIME (1 << 5) +#define LUCKY_BIAS_MIXED_777 (1 << 6) +#define LUCKY_BIAS_777 (1 << 7) + void PlaySlotMachine(u8, void (callback)(void)); #endif // GUARD_SLOT_MACHINE_H diff --git a/include/strings.h b/include/strings.h index 2c3d966b7..d6054c5fd 100644 --- a/include/strings.h +++ b/include/strings.h @@ -864,15 +864,22 @@ extern const u8 gText_Winona[]; extern const u8 gText_Phoebe[]; extern const u8 gText_Glacia[]; -extern const u8 gText_PkmnLearnedMove4[]; -extern const u8 gText_PkmnTryingToLearnMove[]; -extern const u8 gText_WhichMoveToForget2[]; -extern const u8 gText_StopTryingToTeachMove[]; -extern const u8 gText_12AndPoof[]; -extern const u8 gText_PkmnForgotMoveAndLearnedNew[]; +extern const u8 gText_MoveRelearnerPkmnLearnedMove[]; +extern const u8 gText_MoveRelearnerPkmnTryingToLearnMove[]; +extern const u8 gText_MoveRelearnerWhichMoveToForget[]; +extern const u8 gText_MoveRelearnerStopTryingToTeachMove[]; +extern const u8 gText_MoveRelearnerAndPoof[]; +extern const u8 gText_MoveRelearnerPkmnForgotMoveAndLearnedNew[]; extern const u8 gText_TeachWhichMoveToPkmn[]; -extern const u8 gText_GiveUpTeachingNewMove[]; -extern const u8 gText_TeachX[]; +extern const u8 gText_MoveRelearnerGiveUp[]; +extern const u8 gText_MoveRelearnerTeachMoveConfirm[]; +extern const u8 gText_MoveRelearnerBattleMoves[]; +extern const u8 gText_MoveRelearnerPP[]; +extern const u8 gText_MoveRelearnerPower[]; +extern const u8 gText_MoveRelearnerAccuracy[]; +extern const u8 gText_MoveRelearnerContestMovesTitle[]; +extern const u8 gText_MoveRelearnerAppeal[]; +extern const u8 gText_MoveRelearnerJam[]; extern const u8 gText_Kira[]; extern const u8 gText_Amy[]; @@ -991,6 +998,19 @@ extern const u8 gText_SomeonesPC[]; extern const u8 gText_PlayersPC[]; extern const u8 gText_WhichPCShouldBeAccessed[]; +extern const u8 gText_Navgear_ClearButtonList[]; +extern const u8 gText_NavgearMap_ZoomedOutButtons[]; +extern const u8 gText_NavgearMap_ZoomedInButtons[]; +extern const u8 gText_NavgearCondition_MonListButtons[]; +extern const u8 gText_NavgearCondition_MonStatusButtons[]; +extern const u8 gText_NavgearCondition_MarkingButtons[]; +extern const u8 gText_NavgearMatchCall_TrainerListButtons[]; +extern const u8 gText_NavgearMatchCall_CallMenuButtons[]; +extern const u8 gText_NavgearMatchCall_CheckTrainerButtons[]; +extern const u8 gText_NavgearRibbons_MonListButtons[]; +extern const u8 gText_NavgearRibbons_RibbonListButtons[]; +extern const u8 gText_NavgearRibbons_RibbonCheckButtons[]; + extern const u8 gUnknown_085EAD37[]; extern const u8 gUnknown_085EAD41[]; extern const u8 gUnknown_085EAD67[]; @@ -1692,133 +1712,251 @@ extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24692B[]; extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_246ACF[]; extern const u8 BattleFrontier_BattleTowerMultiBattleRoom_Text_24649D[]; +// Battle Dome. +extern const u8 gBattleDomeOpponentPotentialText1[]; +extern const u8 gBattleDomeOpponentPotentialText2[]; +extern const u8 gBattleDomeOpponentPotentialText3[]; +extern const u8 gBattleDomeOpponentPotentialText4[]; +extern const u8 gBattleDomeOpponentPotentialText5[]; +extern const u8 gBattleDomeOpponentPotentialText6[]; +extern const u8 gBattleDomeOpponentPotentialText7[]; +extern const u8 gBattleDomeOpponentPotentialText8[]; +extern const u8 gBattleDomeOpponentPotentialText9[]; +extern const u8 gBattleDomeOpponentPotentialText10[]; +extern const u8 gBattleDomeOpponentPotentialText11[]; +extern const u8 gBattleDomeOpponentPotentialText12[]; +extern const u8 gBattleDomeOpponentPotentialText13[]; +extern const u8 gBattleDomeOpponentPotentialText14[]; +extern const u8 gBattleDomeOpponentPotentialText15[]; +extern const u8 gBattleDomeOpponentPotentialText16[]; +extern const u8 gBattleDomeOpponentPotentialText17[]; +extern const u8 gBattleDomeOpponentStyleText1[]; +extern const u8 gBattleDomeOpponentStyleText2[]; +extern const u8 gBattleDomeOpponentStyleText3[]; +extern const u8 gBattleDomeOpponentStyleText4[]; +extern const u8 gBattleDomeOpponentStyleText5[]; +extern const u8 gBattleDomeOpponentStyleText6[]; +extern const u8 gBattleDomeOpponentStyleText7[]; +extern const u8 gBattleDomeOpponentStyleText8[]; +extern const u8 gBattleDomeOpponentStyleText9[]; +extern const u8 gBattleDomeOpponentStyleText10[]; +extern const u8 gBattleDomeOpponentStyleText11[]; +extern const u8 gBattleDomeOpponentStyleText12[]; +extern const u8 gBattleDomeOpponentStyleText13[]; +extern const u8 gBattleDomeOpponentStyleText14[]; +extern const u8 gBattleDomeOpponentStyleText15[]; +extern const u8 gBattleDomeOpponentStyleText16[]; +extern const u8 gBattleDomeOpponentStyleText17[]; +extern const u8 gBattleDomeOpponentStyleText18[]; +extern const u8 gBattleDomeOpponentStyleText19[]; +extern const u8 gBattleDomeOpponentStyleText20[]; +extern const u8 gBattleDomeOpponentStyleText21[]; +extern const u8 gBattleDomeOpponentStyleText22[]; +extern const u8 gBattleDomeOpponentStyleText23[]; +extern const u8 gBattleDomeOpponentStyleText24[]; +extern const u8 gBattleDomeOpponentStyleText25[]; +extern const u8 gBattleDomeOpponentStyleText26[]; +extern const u8 gBattleDomeOpponentStyleText27[]; +extern const u8 gBattleDomeOpponentStyleText28[]; +extern const u8 gBattleDomeOpponentStyleTextUnused1[]; +extern const u8 gBattleDomeOpponentStyleTextUnused2[]; +extern const u8 gBattleDomeOpponentStyleTextUnused3[]; +extern const u8 gBattleDomeOpponentStyleTextUnused4[]; +extern const u8 gBattleDomeOpponentStatsText1[]; +extern const u8 gBattleDomeOpponentStatsText2[]; +extern const u8 gBattleDomeOpponentStatsText3[]; +extern const u8 gBattleDomeOpponentStatsText4[]; +extern const u8 gBattleDomeOpponentStatsText5[]; +extern const u8 gBattleDomeOpponentStatsText6[]; +extern const u8 gBattleDomeOpponentStatsText7[]; +extern const u8 gBattleDomeOpponentStatsText8[]; +extern const u8 gBattleDomeOpponentStatsText9[]; +extern const u8 gBattleDomeOpponentStatsText10[]; +extern const u8 gBattleDomeOpponentStatsText11[]; +extern const u8 gBattleDomeOpponentStatsText12[]; +extern const u8 gBattleDomeOpponentStatsText13[]; +extern const u8 gBattleDomeOpponentStatsText14[]; +extern const u8 gBattleDomeOpponentStatsText15[]; +extern const u8 gBattleDomeOpponentStatsText16[]; +extern const u8 gBattleDomeOpponentStatsText17[]; +extern const u8 gBattleDomeOpponentStatsText18[]; +extern const u8 gBattleDomeOpponentStatsText19[]; +extern const u8 gBattleDomeOpponentStatsText20[]; +extern const u8 gBattleDomeOpponentStatsText21[]; +extern const u8 gBattleDomeOpponentStatsText22[]; +extern const u8 gBattleDomeOpponentStatsText23[]; +extern const u8 gBattleDomeOpponentStatsText24[]; +extern const u8 gBattleDomeOpponentStatsText25[]; +extern const u8 gBattleDomeOpponentStatsText26[]; +extern const u8 gBattleDomeOpponentStatsText27[]; +extern const u8 gBattleDomeOpponentStatsText28[]; +extern const u8 gBattleDomeOpponentStatsText29[]; +extern const u8 gBattleDomeOpponentStatsText30[]; +extern const u8 gBattleDomeOpponentStatsText31[]; +extern const u8 gBattleDomeOpponentStatsText32[]; +extern const u8 gBattleDomeOpponentStatsText33[]; +extern const u8 gBattleDomeOpponentStatsText34[]; +extern const u8 gBattleDomeOpponentStatsText35[]; +extern const u8 gBattleDomeOpponentStatsText36[]; +extern const u8 gBattleDomeOpponentStatsText37[]; +extern const u8 gBattleDomeOpponentStatsText38[]; +extern const u8 gBattleDomeOpponentStatsText39[]; +extern const u8 gBattleDomeOpponentStatsText40[]; +extern const u8 gBattleDomeOpponentStatsText41[]; +extern const u8 gBattleDomeOpponentStatsText42[]; +extern const u8 gBattleDomeOpponentStatsText43[]; +extern const u8 gBattleDomeMatchNumberText1[]; +extern const u8 gBattleDomeMatchNumberText2[]; +extern const u8 gBattleDomeMatchNumberText3[]; +extern const u8 gBattleDomeMatchNumberText4[]; +extern const u8 gBattleDomeMatchNumberText5[]; +extern const u8 gBattleDomeMatchNumberText6[]; +extern const u8 gBattleDomeMatchNumberText7[]; +extern const u8 gBattleDomeMatchNumberText8[]; +extern const u8 gBattleDomeMatchNumberText9[]; +extern const u8 gBattleDomeMatchNumberText10[]; +extern const u8 gBattleDomeMatchNumberText11[]; +extern const u8 gBattleDomeMatchNumberText12[]; +extern const u8 gBattleDomeMatchNumberText13[]; +extern const u8 gBattleDomeMatchNumberText14[]; +extern const u8 gBattleDomeMatchNumberText15[]; +extern const u8 gBattleDomeWinText1[]; +extern const u8 gBattleDomeWinText2[]; +extern const u8 gBattleDomeWinText3[]; +extern const u8 gBattleDomeWinText4[]; +extern const u8 gBattleDomeWinText5[]; +extern const u8 gBattleDomeWinText6[]; +extern const u8 gBattleDomeWinText7[]; + // Battle Pyramid. -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252D2D[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252D57[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252D81[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252DAB[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25330B[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2532CC[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25328B[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253248[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253206[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2531C4[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253183[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253140[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2530FD[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2544A6[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25445A[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25440B[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2543BA[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25436A[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25431A[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2542CB[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25427A[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252DD5[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252E03[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252E31[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252E5F[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25362E[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2535D4[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253578[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25351A[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2534BD[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253460[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253404[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2533A6[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25334D[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25471E[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2546CC[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25467C[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25462A[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2545D9[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254588[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254538[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2544E6[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252E8D[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252EAA[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252EC7[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252EE4[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2539EC[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253980[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253915[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2538A8[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25383C[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2537D0[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253765[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2536F8[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25368B[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254A0B[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2549AE[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25494D[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2548EB[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25488A[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254829[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2547C9[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254767[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252F01[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252F3A[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252F73[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252FAC[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253D3E[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253CE0[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253C87[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253C2C[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253BD2[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253B78[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253B1F[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253AC4[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253A69[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254C3E[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254BF1[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254BAE[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254B69[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254B25[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254AE1[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254A9E[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254A59[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_252FE5[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253000[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25301B[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253036[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253F6C[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253F34[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253EFA[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253EBE[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253E83[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253E48[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253E0E[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253DD2[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253D96[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254E6E[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254E27[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254DE0[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254D97[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254D4F[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254D07[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254CC0[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254C77[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253051[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25307C[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2530A7[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2530D2[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25422B[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2541DD[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25418D[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25413B[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_2540EA[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254099[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254049[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253FF7[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_253FA5[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_255068[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_25502F[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254FF6[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254FBB[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254F81[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254F47[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254F0E[]; -extern const u8 BattleFrontier_BattlePyramidEmptySquare_Text_254ED3[]; +extern const u8 BattlePyramid_ExitHintUp_Text1[]; +extern const u8 BattlePyramid_ExitHintLeft_Text1[]; +extern const u8 BattlePyramid_ExitHintRight_Text1[]; +extern const u8 BattlePyramid_ExitHintDown_Text1[]; +extern const u8 BattlePyramid_ZeroItemsRemaining_Text1[]; +extern const u8 BattlePyramid_OneItemRemaining_Text1[]; +extern const u8 BattlePyramid_TwoItemsRemaining_Text1[]; +extern const u8 BattlePyramid_ThreeItemsRemaining_Text1[]; +extern const u8 BattlePyramid_FourItemsRemaining_Text1[]; +extern const u8 BattlePyramid_FiveItemsRemaining_Text1[]; +extern const u8 BattlePyramid_SixItemsRemaining_Text1[]; +extern const u8 BattlePyramid_SevenItemsRemaining_Text1[]; +extern const u8 BattlePyramid_EightItemsRemaining_Text1[]; +extern const u8 BattlePyramid_ZeroTrainersRemaining_Text1[]; +extern const u8 BattlePyramid_OneTrainersRemaining_Text1[]; +extern const u8 BattlePyramid_TwoTrainersRemaining_Text1[]; +extern const u8 BattlePyramid_ThreeTrainersRemaining_Text1[]; +extern const u8 BattlePyramid_FourTrainersRemaining_Text1[]; +extern const u8 BattlePyramid_FiveTrainersRemaining_Text1[]; +extern const u8 BattlePyramid_SixTrainersRemaining_Text1[]; +extern const u8 BattlePyramid_SevenTrainersRemaining_Text1[]; +extern const u8 BattlePyramid_ExitHintUp_Text2[]; +extern const u8 BattlePyramid_ExitHintLeft_Text2[]; +extern const u8 BattlePyramid_ExitHintRight_Text2[]; +extern const u8 BattlePyramid_ExitHintDown_Text2[]; +extern const u8 BattlePyramid_ZeroItemsRemaining_Text2[]; +extern const u8 BattlePyramid_OneItemRemaining_Text2[]; +extern const u8 BattlePyramid_TwoItemsRemaining_Text2[]; +extern const u8 BattlePyramid_ThreeItemsRemaining_Text2[]; +extern const u8 BattlePyramid_FourItemsRemaining_Text2[]; +extern const u8 BattlePyramid_FiveItemsRemaining_Text2[]; +extern const u8 BattlePyramid_SixItemsRemaining_Text2[]; +extern const u8 BattlePyramid_SevenItemsRemaining_Text2[]; +extern const u8 BattlePyramid_EightItemsRemaining_Text2[]; +extern const u8 BattlePyramid_ZeroTrainersRemaining_Text2[]; +extern const u8 BattlePyramid_OneTrainersRemaining_Text2[]; +extern const u8 BattlePyramid_TwoTrainersRemaining_Text2[]; +extern const u8 BattlePyramid_ThreeTrainersRemaining_Text2[]; +extern const u8 BattlePyramid_FourTrainersRemaining_Text2[]; +extern const u8 BattlePyramid_FiveTrainersRemaining_Text2[]; +extern const u8 BattlePyramid_SixTrainersRemaining_Text2[]; +extern const u8 BattlePyramid_SevenTrainersRemaining_Text2[]; +extern const u8 BattlePyramid_ExitHintUp_Text3[]; +extern const u8 BattlePyramid_ExitHintLeft_Text3[]; +extern const u8 BattlePyramid_ExitHintRight_Text3[]; +extern const u8 BattlePyramid_ExitHintDown_Text3[]; +extern const u8 BattlePyramid_ZeroItemsRemaining_Text3[]; +extern const u8 BattlePyramid_OneItemRemaining_Text3[]; +extern const u8 BattlePyramid_TwoItemsRemaining_Text3[]; +extern const u8 BattlePyramid_ThreeItemsRemaining_Text3[]; +extern const u8 BattlePyramid_FourItemsRemaining_Text3[]; +extern const u8 BattlePyramid_FiveItemsRemaining_Text3[]; +extern const u8 BattlePyramid_SixItemsRemaining_Text3[]; +extern const u8 BattlePyramid_SevenItemsRemaining_Text3[]; +extern const u8 BattlePyramid_EightItemsRemaining_Text3[]; +extern const u8 BattlePyramid_ZeroTrainersRemaining_Text3[]; +extern const u8 BattlePyramid_OneTrainersRemaining_Text3[]; +extern const u8 BattlePyramid_TwoTrainersRemaining_Text3[]; +extern const u8 BattlePyramid_ThreeTrainersRemaining_Text3[]; +extern const u8 BattlePyramid_FourTrainersRemaining_Text3[]; +extern const u8 BattlePyramid_FiveTrainersRemaining_Text3[]; +extern const u8 BattlePyramid_SixTrainersRemaining_Text3[]; +extern const u8 BattlePyramid_SevenTrainersRemaining_Text3[]; +extern const u8 BattlePyramid_ExitHintUp_Text4[]; +extern const u8 BattlePyramid_ExitHintLeft_Text4[]; +extern const u8 BattlePyramid_ExitHintRight_Text4[]; +extern const u8 BattlePyramid_ExitHintDown_Text4[]; +extern const u8 BattlePyramid_ZeroItemsRemaining_Text4[]; +extern const u8 BattlePyramid_OneItemRemaining_Text4[]; +extern const u8 BattlePyramid_TwoItemsRemaining_Text4[]; +extern const u8 BattlePyramid_ThreeItemsRemaining_Text4[]; +extern const u8 BattlePyramid_FourItemsRemaining_Text4[]; +extern const u8 BattlePyramid_FiveItemsRemaining_Text4[]; +extern const u8 BattlePyramid_SixItemsRemaining_Text4[]; +extern const u8 BattlePyramid_SevenItemsRemaining_Text4[]; +extern const u8 BattlePyramid_EightItemsRemaining_Text4[]; +extern const u8 BattlePyramid_ZeroTrainersRemaining_Text4[]; +extern const u8 BattlePyramid_OneTrainersRemaining_Text4[]; +extern const u8 BattlePyramid_TwoTrainersRemaining_Text4[]; +extern const u8 BattlePyramid_ThreeTrainersRemaining_Text4[]; +extern const u8 BattlePyramid_FourTrainersRemaining_Text4[]; +extern const u8 BattlePyramid_FiveTrainersRemaining_Text4[]; +extern const u8 BattlePyramid_SixTrainersRemaining_Text4[]; +extern const u8 BattlePyramid_SevenTrainersRemaining_Text4[]; +extern const u8 BattlePyramid_ExitHintUp_Text5[]; +extern const u8 BattlePyramid_ExitHintLeft_Text5[]; +extern const u8 BattlePyramid_ExitHintRight_Text5[]; +extern const u8 BattlePyramid_ExitHintDown_Text5[]; +extern const u8 BattlePyramid_ZeroItemsRemaining_Text5[]; +extern const u8 BattlePyramid_OneItemRemaining_Text5[]; +extern const u8 BattlePyramid_TwoItemsRemaining_Text5[]; +extern const u8 BattlePyramid_ThreeItemsRemaining_Text5[]; +extern const u8 BattlePyramid_FourItemsRemaining_Text5[]; +extern const u8 BattlePyramid_FiveItemsRemaining_Text5[]; +extern const u8 BattlePyramid_SixItemsRemaining_Text5[]; +extern const u8 BattlePyramid_SevenItemsRemaining_Text5[]; +extern const u8 BattlePyramid_EightItemsRemaining_Text5[]; +extern const u8 BattlePyramid_ZeroTrainersRemaining_Text5[]; +extern const u8 BattlePyramid_OneTrainersRemaining_Text5[]; +extern const u8 BattlePyramid_TwoTrainersRemaining_Text5[]; +extern const u8 BattlePyramid_ThreeTrainersRemaining_Text5[]; +extern const u8 BattlePyramid_FourTrainersRemaining_Text5[]; +extern const u8 BattlePyramid_FiveTrainersRemaining_Text5[]; +extern const u8 BattlePyramid_SixTrainersRemaining_Text5[]; +extern const u8 BattlePyramid_SevenTrainersRemaining_Text5[]; +extern const u8 BattlePyramid_ExitHintUp_Text6[]; +extern const u8 BattlePyramid_ExitHintLeft_Text6[]; +extern const u8 BattlePyramid_ExitHintRight_Text6[]; +extern const u8 BattlePyramid_ExitHintDown_Text6[]; +extern const u8 BattlePyramid_ZeroItemsRemaining_Text6[]; +extern const u8 BattlePyramid_OneItemRemaining_Text6[]; +extern const u8 BattlePyramid_TwoItemsRemaining_Text6[]; +extern const u8 BattlePyramid_ThreeItemsRemaining_Text6[]; +extern const u8 BattlePyramid_FourItemsRemaining_Text6[]; +extern const u8 BattlePyramid_FiveItemsRemaining_Text6[]; +extern const u8 BattlePyramid_SixItemsRemaining_Text6[]; +extern const u8 BattlePyramid_SevenItemsRemaining_Text6[]; +extern const u8 BattlePyramid_EightItemsRemaining_Text6[]; +extern const u8 BattlePyramid_ZeroTrainersRemaining_Text6[]; +extern const u8 BattlePyramid_OneTrainersRemaining_Text6[]; +extern const u8 BattlePyramid_TwoTrainersRemaining_Text6[]; +extern const u8 BattlePyramid_ThreeTrainersRemaining_Text6[]; +extern const u8 BattlePyramid_FourTrainersRemaining_Text6[]; +extern const u8 BattlePyramid_FiveTrainersRemaining_Text6[]; +extern const u8 BattlePyramid_SixTrainersRemaining_Text6[]; +extern const u8 BattlePyramid_SevenTrainersRemaining_Text6[]; + + // PC strings extern const u8 gText_ExitFromBox[]; @@ -2287,5 +2425,167 @@ extern const u8 gUnknown_085EDC45[]; extern const u8 gUnknown_085EDB00[]; extern const u8 gUnknown_085EDC84[]; +// Easy Chat Entry +extern const u8 gText_StopGivingPkmnMail[]; +extern const u8 gText_LikeToQuitQuiz[]; +extern const u8 gText_ChallengeQuestionMark[]; +extern const u8 gText_QuitEditing[]; +extern const u8 gText_AllTextBeingEditedWill[]; +extern const u8 gText_BeDeletedThatOkay[]; +extern const u8 gText_Lady[]; +extern const u8 gText_F700sQuiz[]; +extern const u8 gText_CreateAQuiz[]; +extern const u8 gText_SelectTheAnswer[]; +extern const u8 gText_OriginalSongWillBeUsed[]; +extern const u8 gText_LyricsCantBeDeleted[]; +extern const u8 gText_CombineTwoWordsOrPhrases3[]; +extern const u8 gText_OnlyOnePhrase[]; +extern const u8 gText_YouCannotQuitHere[]; +extern const u8 gText_SectionMustBeCompleted[]; +extern const u8 gText_ThreeQuestionMarks[]; +extern const u8 gText_Profile[]; +extern const u8 gText_CombineFourWordsOrPhrases[]; +extern const u8 gText_AndMakeYourProfile[]; +extern const u8 gText_YourProfile[]; +extern const u8 gText_IsAsShownOkay[]; +extern const u8 gText_AtTheBattlesStart[]; +extern const u8 gText_CombineSixWordsOrPhrases[]; +extern const u8 gText_AndMakeAMessage[]; +extern const u8 gText_YourFeelingAtTheBattlesStart[]; +extern const u8 gText_UponWinningABattle[]; +extern const u8 gText_WhatYouSayIfYouWin[]; +extern const u8 gText_UponLosingABattle[]; +extern const u8 gText_WhatYouSayIfYouLose[]; +extern const u8 gText_CombineNineWordsOrPhrases[]; +extern const u8 gText_AndMakeAMessage2[]; +extern const u8 gText_TheMailMessage[]; +extern const u8 gText_Interview[]; +extern const u8 gText_LetsReplyToTheInterview[]; +extern const u8 gText_TheAnswer[]; +extern const u8 gText_TheBardsSong[]; +extern const u8 gText_ChangeJustOneWordOrPhrase[]; +extern const u8 gText_AndImproveTheBardsSong[]; +extern const u8 gText_TheBardsSong2[]; +extern const u8 gText_FindWordsThatDescribeYour[]; +extern const u8 gText_FeelingsRightNow[]; +extern const u8 gText_WhatsHipAndHappening[]; +extern const u8 gText_CombineTwoWordsOrPhrases[]; +extern const u8 gText_AndMakeATrendySaying[]; +extern const u8 gText_TheTrendySaying[]; +extern const u8 gText_AfterYouHaveReadTheQuiz[]; +extern const u8 gText_QuestionPressTheAButton[]; +extern const u8 gText_TheQuizAnswerIs[]; +extern const u8 gText_OutOfTheListedChoices[]; +extern const u8 gText_SelectTheAnswerToTheQuiz[]; +extern const u8 gText_TheAnswerColon[]; +extern const u8 gText_AndCreateAQuiz[]; +extern const u8 gText_IsThisQuizOK[]; +extern const u8 gText_PickAWordOrPhraseAnd[]; +extern const u8 gText_SetTheQuizAnswer[]; +extern const u8 gText_ApprenticesPhrase[]; +extern const u8 gText_FindWordsWhichFit[]; +extern const u8 gText_TheTrainersImage[]; +extern const u8 gText_ApprenticePhrase[]; +extern const u8 gText_GoodSaying[]; +extern const u8 gText_CombineTwoWordsOrPhrases2[]; +extern const u8 gText_ToTeachHerAGoodSaying[]; +extern const u8 gText_FansQuestion[]; +extern const u8 gText_TheImage[]; +extern const u8 gText_Questionnaire[]; +extern const u8 gText_AndFillOutTheQuestionnaire[]; +extern const u8 gText_DelAll[]; +extern const u8 gText_Cancel5[]; +extern const u8 gText_Ok2[]; +extern const u8 gText_Quiz[]; +extern const u8 gText_Answer[]; +extern const u8 gEasyChatGroupName_Pokemon[]; +extern const u8 gEasyChatGroupName_Trainer[]; +extern const u8 gEasyChatGroupName_Status[]; +extern const u8 gEasyChatGroupName_Battle[]; +extern const u8 gEasyChatGroupName_Greetings[]; +extern const u8 gEasyChatGroupName_People[]; +extern const u8 gEasyChatGroupName_Voices[]; +extern const u8 gEasyChatGroupName_Speech[]; +extern const u8 gEasyChatGroupName_Endings[]; +extern const u8 gEasyChatGroupName_Feelings[]; +extern const u8 gEasyChatGroupName_Conditions[]; +extern const u8 gEasyChatGroupName_Actions[]; +extern const u8 gEasyChatGroupName_Lifestyle[]; +extern const u8 gEasyChatGroupName_Hobbies[]; +extern const u8 gEasyChatGroupName_Time[]; +extern const u8 gEasyChatGroupName_Misc[]; +extern const u8 gEasyChatGroupName_Adjectives[]; +extern const u8 gEasyChatGroupName_Events[]; +extern const u8 gEasyChatGroupName_Move1[]; +extern const u8 gEasyChatGroupName_Move2[]; +extern const u8 gEasyChatGroupName_TrendySaying[]; +extern const u8 gEasyChatGroupName_Pokemon2[]; + +extern const u8 gUnknown_862B810[]; +extern const u8 gUnknown_862B832[]; +extern const u8 gUnknown_862B84B[]; +extern const u8 gUnknown_862B86C[]; +extern const u8 gUnknown_0862B88D[]; +extern const u8 gUnknown_0862B8AE[]; +extern const u8 gUnknown_0862B8CF[]; +extern const u8 gUnknown_0862B8F0[]; +extern const u8 gUnknown_0862B911[]; +extern const u8 gUnknown_0862B932[]; +extern const u8 gUnknown_0862B953[]; +extern const u8 gUnknown_0862B974[]; +extern const u8 gUnknown_0862B995[]; +extern const u8 gUnknown_0862B9AE[]; +extern const u8 gUnknown_0862B9C7[]; +extern const u8 gUnknown_0862B9E0[]; +extern const u8 gUnknown_0862B9F9[]; +extern const u8 gUnknown_0862B9FF[]; +extern const u8 gUnknown_0862BA05[]; +extern const u8 gUnknown_0862BA0B[]; +extern const u8 gUnknown_0862BA11[]; +extern const u8 gUnknown_0862BA17[]; +extern const u8 gUnknown_0862BA1D[]; +extern const u8 gUnknown_0862BA23[]; +extern const u8 gUnknown_0862BA29[]; +extern const u8 gUnknown_0862BA2F[]; +extern const u8 gUnknown_0862BA35[]; +extern const u8 gUnknown_0862BA3B[]; +extern const u8 gUnknown_0862BA41[]; +extern const u8 gUnknown_0862BA47[]; +extern const u8 gUnknown_0862BA4D[]; +extern const u8 gUnknown_0862BA53[]; +extern const u8 gUnknown_0862BA59[]; +extern const u8 gUnknown_0862BA5F[]; +extern const u8 gUnknown_0862BA65[]; +extern const u8 gUnknown_0862BA6B[]; +extern const u8 gUnknown_0862BA79[]; +extern const u8 gUnknown_0862BA84[]; +extern const u8 gUnknown_0862BA8F[]; +extern const u8 gUnknown_0862BA9A[]; +extern const u8 gUnknown_0862BAA3[]; +extern const u8 gUnknown_0862BAAE[]; +extern const u8 gUnknown_0862BAB9[]; +extern const u8 gUnknown_0862BAC4[]; +extern const u8 gUnknown_0862BACF[]; +extern const u8 gUnknown_0862BADA[]; + +// E-Reader +extern const u8 gUnknown_085EDFD6[]; +extern const u8 gUnknown_085EDFF5[]; +extern const u8 gUnknown_085EE014[]; +extern const u8 gUnknown_085EE035[]; +extern const u8 gUnknown_085EE05C[]; +extern const u8 gUnknown_085EE06B[]; +extern const u8 gUnknown_085EE080[]; +extern const u8 gUnknown_085EE097[]; +extern const u8 gUnknown_085EE0A3[]; +extern const u8 gUnknown_085EE0BF[]; +extern const u8 gUnknown_085EE0DC[]; +extern const u8 gUnknown_085EE0FA[]; +extern const u8 gUnknown_085EE107[]; +extern const u8 gUnknown_085EE120[]; +extern const u8 gUnknown_085EE12D[]; +extern const u8 gUnknown_085EE14B[]; +extern const u8 gUnknown_085EE14F[]; +extern const u8 gUnknown_085EE154[]; #endif // GUARD_STRINGS_H diff --git a/include/task.h b/include/task.h index a199ba128..4852571b4 100644 --- a/include/task.h +++ b/include/task.h @@ -1,6 +1,9 @@ #ifndef GUARD_TASK_H #define GUARD_TASK_H +#define HEAD_SENTINEL 0xFE +#define TAIL_SENTINEL 0xFF + #define NUM_TASKS 16 typedef void (*TaskFunc)(u8 taskId); diff --git a/include/text.h b/include/text.h index 96c5a4507..d8f2fd8a3 100644 --- a/include/text.h +++ b/include/text.h @@ -284,4 +284,8 @@ void DecompressGlyphFont1(u16 glyphId, bool32 isJapanese); u32 GetGlyphWidthFont1(u16 glyphId, bool32 isJapanese); void DecompressGlyphFont9(u16 glyphId); +// unk_text_util_2.c +u16 Font6Func(struct TextPrinter *textPrinter); +u32 GetGlyphWidthFont6(u16 glyphId, bool32 isJapanese); + #endif // GUARD_TEXT_H diff --git a/include/tileset_anims.h b/include/tileset_anims.h new file mode 100755 index 000000000..0e515f044 --- /dev/null +++ b/include/tileset_anims.h @@ -0,0 +1,9 @@ +#ifndef GUARD_TILESET_ANIMS_H +#define GUARD_TILESET_ANIMS_H + +void InitTilesetAnimations(void); +void InitSecondaryTilesetAnimation(void); +void UpdateTilesetAnimations(void); +void TransferTilesetAnimsBuffer(void); + +#endif // GUARD_TILESET_ANIMS_H diff --git a/include/title_screen.h b/include/title_screen.h index b660792fc..b7100f124 100644 --- a/include/title_screen.h +++ b/include/title_screen.h @@ -1,7 +1,7 @@ #ifndef GUARD_TITLE_SCREEN_H #define GUARD_TITLE_SCREEN_H -extern const u16 gUnknown_0853FF70[]; +extern const u16 gIntroWaterDropAlphaBlend[]; void CB2_InitTitleScreen(void); diff --git a/include/trade.h b/include/trade.h index 95a10cacf..0c95e1e81 100644 --- a/include/trade.h +++ b/include/trade.h @@ -6,8 +6,11 @@ // Exported type declarations // Exported RAM declarations +extern struct MailStruct gUnknown_020321C0[PARTY_SIZE]; +extern u8 gUnknown_02032298[2]; // Exported ROM declarations +extern const struct WindowTemplate gUnknown_0833900C; s32 sub_807A728(void); void sub_80773AC(void); diff --git a/include/trainer_card.h b/include/trainer_card.h index 1cadbd8fc..173d23baa 100644 --- a/include/trainer_card.h +++ b/include/trainer_card.h @@ -43,7 +43,7 @@ struct TrainerCard extern struct TrainerCard gTrainerCards[4]; u32 CountPlayerTrainerStars(void); -u8 sub_80C4904(u8 cardId); +u8 GetTrainerCardStars(u8 cardId); void CopyTrainerCardData(struct TrainerCard *dst, u16 *src, u8 gameVersion); void ShowPlayerTrainerCard(void (*callback)(void)); void ShowTrainerCardInLink(u8 arg0, void (*callback)(void)); diff --git a/include/trainer_hill.h b/include/trainer_hill.h index bbc4f45c5..ad2713316 100644 --- a/include/trainer_hill.h +++ b/include/trainer_hill.h @@ -1,7 +1,7 @@ #ifndef GUARD_TRAINER_HILL_H #define GUARD_TRAINER_HILL_H -extern u32 *gUnknown_0203CF5C; +extern u32 *gTrainerHillVBlankCounter; void CallTrainerHillFunction(void); void ResetTrainerHillResults(void); diff --git a/include/tv.h b/include/tv.h index 760d87522..ec7ac1e89 100644 --- a/include/tv.h +++ b/include/tv.h @@ -1,6 +1,9 @@ #ifndef GUARD_TV_H #define GUARD_TV_H +#define SLOT_MACHINE 0 +#define ROULETTE 1 + extern u8 *const gTVStringVarPtrs[3]; void ClearTVShowData(void); @@ -23,9 +26,9 @@ bool8 GetPriceReduction(u8 newsKind); void sub_80F14F8(TVShow *shows); size_t CountDigits(int value); u8 GetRibbonCount(struct Pokemon *pokemon); -void sub_80EDE70(u16 nCoinsSpent); -void sub_80EDE84(u16 nCoinsSpent); -void sub_80EDD78(u16 nCoinsPaidOut); +void AlertTVThatPlayerPlayedSlotMachine(u16 nCoinsSpent); +void AlertTVThatPlayerPlayedRoulette(u16 nCoinsSpent); +void AlertTVOfNewCoinTotal(u16 nCoinsPaidOut); void sub_80EEA70(void); void sub_80EDB44(void); void sub_80EDC60(const u16 *words); @@ -61,5 +64,6 @@ void ContestLiveUpdates_BeforeInterview_2(u8 a0); void ContestLiveUpdates_BeforeInterview_3(u8 a0); void ContestLiveUpdates_BeforeInterview_4(u16 a0); void ContestLiveUpdates_BeforeInterview_5(u8 a0, u8 a1); +void ResetGabbyAndTy(void); #endif //GUARD_TV_H diff --git a/include/window.h b/include/window.h index 25573ac3e..10e447789 100644 --- a/include/window.h +++ b/include/window.h @@ -1,6 +1,8 @@ #ifndef GUARD_WINDOW_H #define GUARD_WINDOW_H +#define PIXEL_FILL(num) ((num) | ((num) << 4)) + enum { WINDOW_BG, @@ -73,6 +75,4 @@ extern u32 filler_03002F58; extern u32 filler_03002F5C; extern u32 filler_03002F64; -extern u8 gUnknown_03002F60; - #endif // GUARD_WINDOW_H |