diff options
author | Marcus Huderle <huderlem@gmail.com> | 2018-04-11 17:08:57 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-11 17:08:57 -0700 |
commit | ba6f60e4674785e4442232d0dd55bf13b9dab228 (patch) | |
tree | 5016ead4eb1c91971e5e753c326e39edfc3b3714 | |
parent | 49a7fe02416b0e5b2287c2fd4dbc979bc711457d (diff) | |
parent | 84c89b879501f9a3dbff024e0cd6b01dbacbdabe (diff) |
Merge pull request #593 from huderlem/fieldeffects
Document some field effects
43 files changed, 519 insertions, 514 deletions
diff --git a/data-de/event_scripts.s b/data-de/event_scripts.s index 7e43905bf..0a2752e20 100644 --- a/data-de/event_scripts.s +++ b/data-de/event_scripts.s @@ -1,4 +1,5 @@ #include "constants/decorations.h" +#include "constants/field_effects.h" #include "constants/flags.h" #include "constants/game_stat.h" #include "constants/items.h" @@ -399,7 +400,7 @@ gUnknown_0815F36C:: @ 815F36C lockall playse SE_PC_LOGON message UnknownString_81A3A72 - dofieldeffect 61 + dofieldeffect FLDEFF_SECRET_BASE_PC_TURN_ON waitstate waitmessage waitbuttonpress @@ -459,7 +460,7 @@ gUnknown_0815F43A:: @ 815F43A lockall message UnknownString_81A3A72 playse SE_PC_LOGON - dofieldeffect 61 + dofieldeffect FLDEFF_SECRET_BASE_PC_TURN_ON waitstate waitmessage waitbuttonpress @@ -530,7 +531,7 @@ EventScript_15F51D: end gUnknown_0815F523:: @ 815F523 - dofieldeffect 52 + dofieldeffect FLDEFF_SAND_PILLAR waitstate end @@ -1450,8 +1451,8 @@ OldaleTown_PokemonCenter_1F_EventScript_19FD7C:: @ 819FD7C waitmessage applymovement VAR_SPECIAL_B, OldaleTown_PokemonCenter_1F_Movement_1A083F waitmovement 0 - dofieldeffect 25 - waitfieldeffect 25 + dofieldeffect FLDEFF_POKECENTER_HEAL + waitfieldeffect FLDEFF_POKECENTER_HEAL applymovement VAR_SPECIAL_B, OldaleTown_PokemonCenter_1F_Movement_1A0845 waitmovement 0 special ScrSpecial_HealPlayerParty @@ -1821,7 +1822,7 @@ UseSurfScript:: @ 81A0117 compare RESULT, NO goto_if_eq UseSurfScript_No msgbox UsedSurfText, 4 - dofieldeffect 9 + dofieldeffect FLDEFF_USE_SURF UseSurfScript_No: @ 81A014C releaseall UseSurfScript_NoMon: @ 81A014D @@ -3613,9 +3614,9 @@ SecretBase_RedCave1_Text_1A2BA4:: @ 81A2BA4 gUnknown_081A2C51:: @ 81A2C51 special sub_80BB70C - special sub_80BB63C + special CheckPlayerHasSecretBase compare RESULT, 1 - goto_if_eq EventScript_1A2E45 + goto_if_eq AskToMoveSecretBase checkpartymove MOVE_SECRET_POWER setfieldeffectargument 0, RESULT buffermovename 1, MOVE_SECRET_POWER @@ -3643,14 +3644,14 @@ EventScript_1A2CB0: goto_if_eq EventScript_1A2F3A msgbox UsedCutRockSmashText, 4 closemessage - dofieldeffect 11 + dofieldeffect FLDEFF_USE_SECRET_POWER_CAVE waitstate goto EventScript_1A2CFA end -gUnknown_081A2CE6:: @ 81A2CE6 +DoSecretBaseCaveFieldEffectScript:: @ 81A2CE6 lockall - dofieldeffect 11 + dofieldeffect FLDEFF_USE_SECRET_POWER_CAVE waitstate goto EventScript_1A2CFA end @@ -3674,14 +3675,14 @@ EventScript_1A2D08: goto_if_eq EventScript_1A2F3A msgbox UsedCutRockSmashText, 4 closemessage - dofieldeffect 26 + dofieldeffect FLDEFF_USE_SECRET_POWER_TREE waitstate goto EventScript_1A2D52 end -gUnknown_081A2D3E:: @ 81A2D3E +DoSecretBaseTreeFieldEffectScript:: @ 81A2D3E lockall - dofieldeffect 26 + dofieldeffect FLDEFF_USE_SECRET_POWER_TREE waitstate goto EventScript_1A2D52 end @@ -3705,14 +3706,14 @@ EventScript_1A2D60: goto_if_eq EventScript_1A2F3A msgbox UsedCutRockSmashText, 4 closemessage - dofieldeffect 27 + dofieldeffect FLDEFF_USE_SECRET_POWER_SHRUB waitstate goto EventScript_1A2DAA end -gUnknown_081A2D96:: @ 81A2D96 +DoSecretBaseShrubFieldEffectScript:: @ 81A2D96 lockall - dofieldeffect 27 + dofieldeffect FLDEFF_USE_SECRET_POWER_SHRUB waitstate goto EventScript_1A2DAA end @@ -3784,7 +3785,7 @@ EventScript_1A2E38: waitstate end -EventScript_1A2E45: +AskToMoveSecretBase: checkpartymove MOVE_SECRET_POWER compare RESULT, 6 goto_if_eq EventScript_1A2EF7 @@ -3811,17 +3812,17 @@ EventScript_1A2E45: closemessage closemessage compare VAR_SPECIAL_7, 1 - goto_if_eq gUnknown_081A2CE6 + goto_if_eq DoSecretBaseCaveFieldEffectScript compare VAR_SPECIAL_7, 2 - goto_if_eq gUnknown_081A2CE6 + goto_if_eq DoSecretBaseCaveFieldEffectScript compare VAR_SPECIAL_7, 3 - goto_if_eq gUnknown_081A2CE6 + goto_if_eq DoSecretBaseCaveFieldEffectScript compare VAR_SPECIAL_7, 4 - goto_if_eq gUnknown_081A2CE6 + goto_if_eq DoSecretBaseCaveFieldEffectScript compare VAR_SPECIAL_7, 5 - goto_if_eq gUnknown_081A2D3E + goto_if_eq DoSecretBaseTreeFieldEffectScript compare VAR_SPECIAL_7, 6 - goto_if_eq gUnknown_081A2D96 + goto_if_eq DoSecretBaseShrubFieldEffectScript releaseall end diff --git a/data-de/field_move_scripts.inc b/data-de/field_move_scripts.inc index 86a4d1b24..63240a9fb 100644 --- a/data-de/field_move_scripts.inc +++ b/data-de/field_move_scripts.inc @@ -12,14 +12,14 @@ S_CuttableTree:: @ 81B0DCC goto_if_eq Cut_ChoseNo msgbox UsedCutRockSmashText, 4 closemessage - dofieldeffect 2 + dofieldeffect FLDEFF_USE_CUT_ON_TREE waitstate goto DoTreeCutMovement end -S_UseCut:: @ 81B0E16 +DoCutFieldEffectScript:: @ 81B0E16 lockall - dofieldeffect 2 + dofieldeffect FLDEFF_USE_CUT_ON_TREE waitstate goto DoTreeCutMovement end @@ -72,14 +72,14 @@ S_BreakableRock:: @ 81B0EB7 goto_if_eq RockSmash_ChoseNo msgbox UsedCutRockSmashText, 4 closemessage - dofieldeffect 37 + dofieldeffect FLDEFF_USE_ROCK_SMASH waitstate goto DoRockSmashMovement end S_UseRockSmash:: @ 81B0F01 lockall - dofieldeffect 37 + dofieldeffect FLDEFF_USE_ROCK_SMASH waitstate goto DoRockSmashMovement end @@ -136,14 +136,14 @@ S_PushableBoulder:: @ 81B0FCB compare RESULT, NO goto_if_eq Strength_ChoseNo closemessage - dofieldeffect 40 + dofieldeffect FLDEFF_USE_STRENGTH waitstate goto UsedStrength end S_UseStrength:: @ 81B100E lockall - dofieldeffect 40 + dofieldeffect FLDEFF_USE_STRENGTH waitstate goto UsedStrength end @@ -198,7 +198,7 @@ S_UseWaterfall:: @ 81B115A compare RESULT, NO goto_if_eq Waterfall_Done msgbox UsedWaterfallText, 4 - dofieldeffect 43 + dofieldeffect FLDEFF_USE_WATERFALL goto Waterfall_Done S_CannotUseWaterfall:: @ 81B1194 @@ -232,7 +232,7 @@ UseDiveScript:: @ 81B1220 compare RESULT, NO goto_if_eq Dive_Done msgbox UsedDiveText, 4 - dofieldeffect 44 + dofieldeffect FLDEFF_USE_DIVE goto Dive_Done lockall @@ -255,7 +255,7 @@ S_UseDiveUnderwater:: @ 81B1269 compare RESULT, NO goto_if_eq UnderwaterDive_Done msgbox UsedDiveText, 4 - dofieldeffect 44 + dofieldeffect FLDEFF_USE_DIVE goto UnderwaterDive_Done UnderwaterCannotUseDive: @ 81B12A7 diff --git a/data/event_scripts.s b/data/event_scripts.s index 1839c3547..8a3672d7e 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1,4 +1,5 @@ #include "constants/decorations.h" +#include "constants/field_effects.h" #include "constants/flags.h" #include "constants/game_stat.h" #include "constants/items.h" @@ -399,7 +400,7 @@ gUnknown_0815F36C:: @ 815F36C lockall playse SE_PC_LOGON message UnknownString_81A3A72 - dofieldeffect 61 + dofieldeffect FLDEFF_SECRET_BASE_PC_TURN_ON waitstate waitmessage waitbuttonpress @@ -459,7 +460,7 @@ gUnknown_0815F43A:: @ 815F43A lockall message UnknownString_81A3A72 playse SE_PC_LOGON - dofieldeffect 61 + dofieldeffect FLDEFF_SECRET_BASE_PC_TURN_ON waitstate waitmessage waitbuttonpress @@ -530,7 +531,7 @@ EventScript_15F51D: end gUnknown_0815F523:: @ 815F523 - dofieldeffect 52 + dofieldeffect FLDEFF_SAND_PILLAR waitstate end @@ -1444,8 +1445,8 @@ do_heal_party:: @ 819FD7C waitmessage applymovement VAR_SPECIAL_B, OldaleTown_PokemonCenter_1F_Movement_1A083F waitmovement 0 - dofieldeffect 25 - waitfieldeffect 25 + dofieldeffect FLDEFF_POKECENTER_HEAL + waitfieldeffect FLDEFF_POKECENTER_HEAL applymovement VAR_SPECIAL_B, OldaleTown_PokemonCenter_1F_Movement_1A0845 waitmovement 0 special ScrSpecial_HealPlayerParty @@ -1815,7 +1816,7 @@ UseSurfScript:: @ 81A0117 compare RESULT, NO goto_if_eq UseSurfScript_No msgbox UsedSurfText, 4 - dofieldeffect 9 + dofieldeffect FLDEFF_USE_SURF UseSurfScript_No: @ 81A014C releaseall UseSurfScript_NoMon: @ 81A014D @@ -3592,9 +3593,9 @@ SecretBase_RedCave1_Text_1A2BA4:: @ 81A2BA4 gUnknown_081A2C51:: @ 81A2C51 special sub_80BB70C - special sub_80BB63C + special CheckPlayerHasSecretBase compare RESULT, 1 - goto_if_eq EventScript_1A2E45 + goto_if_eq AskToMoveSecretBase checkpartymove MOVE_SECRET_POWER setfieldeffectargument 0, RESULT buffermovename 1, MOVE_SECRET_POWER @@ -3622,14 +3623,14 @@ EventScript_1A2CB0: goto_if_eq EventScript_1A2F3A msgbox UsedCutRockSmashText, 4 closemessage - dofieldeffect 11 + dofieldeffect FLDEFF_USE_SECRET_POWER_CAVE waitstate goto EventScript_1A2CFA end -gUnknown_081A2CE6:: @ 81A2CE6 +DoSecretBaseCaveFieldEffectScript:: @ 81A2CE6 lockall - dofieldeffect 11 + dofieldeffect FLDEFF_USE_SECRET_POWER_CAVE waitstate goto EventScript_1A2CFA end @@ -3653,14 +3654,14 @@ EventScript_1A2D08: goto_if_eq EventScript_1A2F3A msgbox UsedCutRockSmashText, 4 closemessage - dofieldeffect 26 + dofieldeffect FLDEFF_USE_SECRET_POWER_TREE waitstate goto EventScript_1A2D52 end -gUnknown_081A2D3E:: @ 81A2D3E +DoSecretBaseTreeFieldEffectScript:: @ 81A2D3E lockall - dofieldeffect 26 + dofieldeffect FLDEFF_USE_SECRET_POWER_TREE waitstate goto EventScript_1A2D52 end @@ -3684,14 +3685,14 @@ EventScript_1A2D60: goto_if_eq EventScript_1A2F3A msgbox UsedCutRockSmashText, 4 closemessage - dofieldeffect 27 + dofieldeffect FLDEFF_USE_SECRET_POWER_SHRUB waitstate goto EventScript_1A2DAA end -gUnknown_081A2D96:: @ 81A2D96 +DoSecretBaseShrubFieldEffectScript:: @ 81A2D96 lockall - dofieldeffect 27 + dofieldeffect FLDEFF_USE_SECRET_POWER_SHRUB waitstate goto EventScript_1A2DAA end @@ -3763,7 +3764,7 @@ EventScript_1A2E38: waitstate end -EventScript_1A2E45: +AskToMoveSecretBase: checkpartymove MOVE_SECRET_POWER compare RESULT, 6 goto_if_eq EventScript_1A2EF7 @@ -3790,17 +3791,17 @@ EventScript_1A2E45: closemessage closemessage compare VAR_SPECIAL_7, 1 - goto_if_eq gUnknown_081A2CE6 + goto_if_eq DoSecretBaseCaveFieldEffectScript compare VAR_SPECIAL_7, 2 - goto_if_eq gUnknown_081A2CE6 + goto_if_eq DoSecretBaseCaveFieldEffectScript compare VAR_SPECIAL_7, 3 - goto_if_eq gUnknown_081A2CE6 + goto_if_eq DoSecretBaseCaveFieldEffectScript compare VAR_SPECIAL_7, 4 - goto_if_eq gUnknown_081A2CE6 + goto_if_eq DoSecretBaseCaveFieldEffectScript compare VAR_SPECIAL_7, 5 - goto_if_eq gUnknown_081A2D3E + goto_if_eq DoSecretBaseTreeFieldEffectScript compare VAR_SPECIAL_7, 6 - goto_if_eq gUnknown_081A2D96 + goto_if_eq DoSecretBaseShrubFieldEffectScript releaseall end diff --git a/data/field_move_scripts.inc b/data/field_move_scripts.inc index f5ba25643..5ce6c7fb9 100644 --- a/data/field_move_scripts.inc +++ b/data/field_move_scripts.inc @@ -12,14 +12,14 @@ S_CuttableTree:: @ 81B0DCC goto_if_eq Cut_ChoseNo msgbox UsedCutRockSmashText, 4 closemessage - dofieldeffect 2 + dofieldeffect FLDEFF_USE_CUT_ON_TREE waitstate goto DoTreeCutMovement end -S_UseCut:: @ 81B0E16 +DoCutFieldEffectScript:: @ 81B0E16 lockall - dofieldeffect 2 + dofieldeffect FLDEFF_USE_CUT_ON_TREE waitstate goto DoTreeCutMovement end @@ -69,14 +69,14 @@ S_BreakableRock:: @ 81B0EB7 goto_if_eq RockSmash_ChoseNo msgbox UsedCutRockSmashText, 4 closemessage - dofieldeffect 37 + dofieldeffect FLDEFF_USE_ROCK_SMASH waitstate goto DoRockSmashMovement end S_UseRockSmash:: @ 81B0F01 lockall - dofieldeffect 37 + dofieldeffect FLDEFF_USE_ROCK_SMASH waitstate goto DoRockSmashMovement end @@ -133,14 +133,14 @@ S_PushableBoulder:: @ 81B0FCB compare RESULT, NO goto_if_eq Strength_ChoseNo closemessage - dofieldeffect 40 + dofieldeffect FLDEFF_USE_STRENGTH waitstate goto UsedStrength end S_UseStrength:: @ 81B100E lockall - dofieldeffect 40 + dofieldeffect FLDEFF_USE_STRENGTH waitstate goto UsedStrength end @@ -195,7 +195,7 @@ S_UseWaterfall:: @ 81B115A compare RESULT, NO goto_if_eq Waterfall_Done msgbox UsedWaterfallText, 4 - dofieldeffect 43 + dofieldeffect FLDEFF_USE_WATERFALL goto Waterfall_Done S_CannotUseWaterfall:: @ 81B1194 @@ -229,7 +229,7 @@ UseDiveScript:: @ 81B1220 compare RESULT, NO goto_if_eq Dive_Done msgbox UsedDiveText, 4 - dofieldeffect 44 + dofieldeffect FLDEFF_USE_DIVE goto Dive_Done lockall @@ -252,7 +252,7 @@ S_UseDiveUnderwater:: @ 81B1269 compare RESULT, NO goto_if_eq UnderwaterDive_Done msgbox UsedDiveText, 4 - dofieldeffect 44 + dofieldeffect FLDEFF_USE_DIVE goto UnderwaterDive_Done UnderwaterCannotUseDive: @ 81B12A7 diff --git a/data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc b/data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc index 7f9b06500..5a5ab3005 100644 --- a/data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc +++ b/data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc @@ -42,11 +42,11 @@ AbandonedShip_HiddenFloorRooms_EventScript_15ED9B:: @ 815ED9B setfieldeffectargument 0, 10 setfieldeffectargument 1, 10 setfieldeffectargument 2, 0 - dofieldeffect 54 + dofieldeffect FLDEFF_SPARKLE specialvar RESULT, FoundAbandonedShipRoom4Key compare RESULT, 0 call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_15EE8B - waitfieldeffect 54 + waitfieldeffect FLDEFF_SPARKLE delay 10 end @@ -60,7 +60,7 @@ AbandonedShip_HiddenFloorRooms_EventScript_15EDC5:: @ 815EDC5 delay 20 compare RESULT, 0 call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_15EE6B - waitfieldeffect 54 + waitfieldeffect FLDEFF_SPARKLE delay 10 end @@ -72,15 +72,15 @@ AbandonedShip_HiddenFloorRooms_EventScript_15EDEB:: @ 815EDEB setfieldeffectargument 0, 8 setfieldeffectargument 1, 5 setfieldeffectargument 2, 0 - dofieldeffect 54 + dofieldeffect FLDEFF_SPARKLE setfieldeffectargument 0, 11 setfieldeffectargument 1, 3 setfieldeffectargument 2, 0 - dofieldeffect 54 + dofieldeffect FLDEFF_SPARKLE specialvar RESULT, FoundAbandonedShipRoom6Key compare RESULT, 0 call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_15EE9B - waitfieldeffect 54 + waitfieldeffect FLDEFF_SPARKLE delay 10 end @@ -89,19 +89,19 @@ AbandonedShip_HiddenFloorRooms_EventScript_15EE23:: @ 815EE23 setfieldeffectargument 0, 16 setfieldeffectargument 1, 3 setfieldeffectargument 2, 0 - dofieldeffect 54 + dofieldeffect FLDEFF_SPARKLE setfieldeffectargument 0, 25 setfieldeffectargument 1, 2 setfieldeffectargument 2, 0 - dofieldeffect 54 + dofieldeffect FLDEFF_SPARKLE setfieldeffectargument 0, 24 setfieldeffectargument 1, 6 setfieldeffectargument 2, 0 - dofieldeffect 54 + dofieldeffect FLDEFF_SPARKLE specialvar RESULT, FoundAbandonedShipRoom2Key compare RESULT, 0 call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_15EE7B - waitfieldeffect 54 + waitfieldeffect FLDEFF_SPARKLE delay 10 end @@ -112,28 +112,28 @@ AbandonedShip_HiddenFloorRooms_EventScript_15EE6B:: @ 815EE6B setfieldeffectargument 0, 42 setfieldeffectargument 1, 10 setfieldeffectargument 2, 0 - dofieldeffect 54 + dofieldeffect FLDEFF_SPARKLE return AbandonedShip_HiddenFloorRooms_EventScript_15EE7B:: @ 815EE7B setfieldeffectargument 0, 20 setfieldeffectargument 1, 5 setfieldeffectargument 2, 0 - dofieldeffect 54 + dofieldeffect FLDEFF_SPARKLE return AbandonedShip_HiddenFloorRooms_EventScript_15EE8B:: @ 815EE8B setfieldeffectargument 0, 1 setfieldeffectargument 1, 12 setfieldeffectargument 2, 0 - dofieldeffect 54 + dofieldeffect FLDEFF_SPARKLE return AbandonedShip_HiddenFloorRooms_EventScript_15EE9B:: @ 815EE9B setfieldeffectargument 0, 1 setfieldeffectargument 1, 2 setfieldeffectargument 2, 0 - dofieldeffect 54 + dofieldeffect FLDEFF_SPARKLE return AbandonedShip_HiddenFloorRooms_EventScript_15EEAB:: @ 815EEAB diff --git a/data/scripts/maps/CaveOfOrigin_B4F.inc b/data/scripts/maps/CaveOfOrigin_B4F.inc index aa79e1213..bba6d89bc 100644 --- a/data/scripts/maps/CaveOfOrigin_B4F.inc +++ b/data/scripts/maps/CaveOfOrigin_B4F.inc @@ -39,8 +39,8 @@ CaveOfOrigin_B4F_EventScript_15DDD7:: @ 815DDD7 setfieldeffectargument 0, 9 setfieldeffectargument 1, 13 setfieldeffectargument 2, 0 - dofieldeffect 54 - waitfieldeffect 54 + dofieldeffect FLDEFF_SPARKLE + waitfieldeffect FLDEFF_SPARKLE .ifdef SAPPHIRE setvar RESULT, 3 .else diff --git a/data/scripts/maps/EverGrandeCity_HallOfFame.inc b/data/scripts/maps/EverGrandeCity_HallOfFame.inc index 501f1e51c..c57f311b2 100644 --- a/data/scripts/maps/EverGrandeCity_HallOfFame.inc +++ b/data/scripts/maps/EverGrandeCity_HallOfFame.inc @@ -38,8 +38,8 @@ EverGrandeCity_HallOfFame_EventScript_15BBA8:: @ 815BBA8 applymovement 255, EverGrandeCity_HallOfFame_Movement_1A0841 waitmovement 0 delay 20 - dofieldeffect 62 - waitfieldeffect 62 + dofieldeffect FLDEFF_HALL_OF_FAME_RECORD + waitfieldeffect FLDEFF_HALL_OF_FAME_RECORD delay 40 setvar VAR_TEMP_1, 1 call EverGrandeCity_HallOfFame_EventScript_19FC13 diff --git a/data/scripts/maps/LilycoveCity.inc b/data/scripts/maps/LilycoveCity.inc index ee29b0f05..f632a4d41 100644 --- a/data/scripts/maps/LilycoveCity.inc +++ b/data/scripts/maps/LilycoveCity.inc @@ -397,10 +397,10 @@ LilycoveCity_EventScript_14CF6B:: @ 814CF6B waitmovement 0 delay 50 setfieldeffectargument 0, 1 - dofieldeffect 30 + dofieldeffect FLDEFF_NPCFLY_OUT delay 15 removeobject LAST_TALKED - waitfieldeffect 30 + waitfieldeffect FLDEFF_NPCFLY_OUT savebgm 0 fadedefaultbgm setflag FLAG_MET_RIVAL_LILYCOVE diff --git a/data/scripts/maps/MossdeepCity_House4.inc b/data/scripts/maps/MossdeepCity_House4.inc index 5fb0f97ff..15ed22c5e 100644 --- a/data/scripts/maps/MossdeepCity_House4.inc +++ b/data/scripts/maps/MossdeepCity_House4.inc @@ -17,7 +17,7 @@ MossdeepCity_House4_EventScript_15AB46:: @ 815AB46 MossdeepCity_House4_EventScript_15AB50:: @ 815AB50 lock faceplayer - special sub_80BB63C + special CheckPlayerHasSecretBase compare RESULT, 0 goto_if_eq MossdeepCity_House4_EventScript_15AB6D special GetSecretBaseNearbyMapName diff --git a/data/scripts/maps/Route110_TrickHouseEntrance.inc b/data/scripts/maps/Route110_TrickHouseEntrance.inc index 3fceeb8d1..e7468ec4f 100644 --- a/data/scripts/maps/Route110_TrickHouseEntrance.inc +++ b/data/scripts/maps/Route110_TrickHouseEntrance.inc @@ -753,7 +753,7 @@ Route110_TrickHouseEntrance_EventScript_161920:: @ 8161920 setfieldeffectargument 0, 32772 setfieldeffectargument 1, 32773 setfieldeffectargument 2, 32774 - dofieldeffect 54 - waitfieldeffect 54 + dofieldeffect FLDEFF_SPARKLE + waitfieldeffect FLDEFF_SPARKLE delay 10 return diff --git a/data/scripts/maps/Route120.inc b/data/scripts/maps/Route120.inc index b49834564..eb696b45b 100644 --- a/data/scripts/maps/Route120.inc +++ b/data/scripts/maps/Route120.inc @@ -240,10 +240,10 @@ Route120_EventScript_151908:: @ 8151908 waitmovement 0 delay 50 setfieldeffectargument 0, 1 - dofieldeffect 30 + dofieldeffect FLDEFF_NPCFLY_OUT delay 15 removeobject 31 - waitfieldeffect 30 + waitfieldeffect FLDEFF_NPCFLY_OUT setmetatile 13, 15, 663, 0 setmetatile 12, 16, 671, 0 setmetatile 12, 17, 161, 0 diff --git a/data/scripts/maps/Route128.inc b/data/scripts/maps/Route128.inc index 6550db979..f580a7e0b 100644 --- a/data/scripts/maps/Route128.inc +++ b/data/scripts/maps/Route128.inc @@ -52,8 +52,8 @@ Route128_EventScript_15213F:: @ 815213F removeobject 4 delay 100 setfieldeffectargument 0, 1 - dofieldeffect 30 - waitfieldeffect 30 + dofieldeffect FLDEFF_NPCFLY_OUT + waitfieldeffect FLDEFF_NPCFLY_OUT addobject 3 applymovement 3, Route128_Movement_15226F waitmovement 0 @@ -77,10 +77,10 @@ Route128_EventScript_15213F:: @ 815213F waitmovement 0 delay 50 setfieldeffectargument 0, 1 - dofieldeffect 30 + dofieldeffect FLDEFF_NPCFLY_OUT delay 15 removeobject 3 - waitfieldeffect 30 + waitfieldeffect FLDEFF_NPCFLY_OUT setvar VAR_ROUTE128_STATE, 2 releaseall end diff --git a/data/scripts/maps/SeafloorCavern_Room9.inc b/data/scripts/maps/SeafloorCavern_Room9.inc index afc076a65..f9cd83cac 100644 --- a/data/scripts/maps/SeafloorCavern_Room9.inc +++ b/data/scripts/maps/SeafloorCavern_Room9.inc @@ -82,8 +82,8 @@ SeafloorCavern_Room9_EventScript_15DAFA:: @ 815DAFA setfieldeffectargument 0, 16 setfieldeffectargument 1, 42 setfieldeffectargument 2, 0 - dofieldeffect 54 - waitfieldeffect 54 + dofieldeffect FLDEFF_SPARKLE + waitfieldeffect FLDEFF_SPARKLE .ifdef SAPPHIRE setvar RESULT, 0 .else diff --git a/data/scripts/maps/SootopolisCity.inc b/data/scripts/maps/SootopolisCity.inc index 669d4ecfa..6222d3774 100644 --- a/data/scripts/maps/SootopolisCity.inc +++ b/data/scripts/maps/SootopolisCity.inc @@ -450,9 +450,9 @@ SootopolisCity_EventScript_14D4AD:: @ 814D4AD waitmovement 0 delay 50 setfieldeffectargument 0, 1 - dofieldeffect 30 + dofieldeffect FLDEFF_NPCFLY_OUT delay 15 removeobject LAST_TALKED - waitfieldeffect 30 + waitfieldeffect FLDEFF_NPCFLY_OUT release end diff --git a/data/specials.inc b/data/specials.inc index 73aa3e093..bb2065429 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -15,7 +15,7 @@ gSpecials:: def_special sub_80839A4 def_special sub_80839D0 def_special sub_80BB8CC - def_special sub_80BB63C + def_special CheckPlayerHasSecretBase def_special sub_80BBAF0 def_special sub_80BC440 def_special SecretBasePC_PackUp diff --git a/include/constants/field_effects.h b/include/constants/field_effects.h new file mode 100755 index 000000000..3b2117d3a --- /dev/null +++ b/include/constants/field_effects.h @@ -0,0 +1,69 @@ +#ifndef GUARD_FIELD_EFFECT_CONSTANTS_H +#define GUARD_FIELD_EFFECT_CONSTANTS_H + +#define FLDEFF_EXCLAMATION_MARK_ICON_1 0 +#define FLDEFF_USE_CUT_ON_GRASS 1 +#define FLDEFF_USE_CUT_ON_TREE 2 +#define FLDEFF_SHADOW 3 +#define FLDEFF_TALL_GRASS 4 +#define FLDEFF_RIPPLE 5 +#define FLDEFF_FIELD_MOVE_SHOW_MON 6 +#define FLDEFF_ASH 7 +#define FLDEFF_SURF_BLOB 8 +#define FLDEFF_USE_SURF 9 +#define FLDEFF_DUST 10 +#define FLDEFF_USE_SECRET_POWER_CAVE 11 +#define FLDEFF_JUMP_TALL_GRASS 12 +#define FLDEFF_SAND_FOOTPRINTS 13 +#define FLDEFF_JUMP_BIG_SPLASH 14 +#define FLDEFF_SPLASH 15 +#define FLDEFF_JUMP_SMALL_SPLASH 16 +#define FLDEFF_LONG_GRASS 17 +#define FLDEFF_JUMP_LONG_GRASS 18 +#define FLDEFF_UNKNOWN_19 19 +#define FLDEFF_UNKNOWN_20 20 +#define FLDEFF_UNKNOWN_21 21 +#define FLDEFF_UNKNOWN_22 22 +#define FLDEFF_BERRY_TREE_GROWTH_SPARKLE 23 +#define FLDEFF_DEEP_SAND_FOOTPRINTS 24 +#define FLDEFF_POKECENTER_HEAL 25 +#define FLDEFF_USE_SECRET_POWER_TREE 26 +#define FLDEFF_USE_SECRET_POWER_SHRUB 27 +#define FLDEFF_TREE_DISGUISE 28 +#define FLDEFF_MOUNTAIN_DISGUISE 29 +#define FLDEFF_NPCFLY_OUT 30 +#define FLDEFF_USE_FLY 31 +#define FLDEFF_FLY_IN 32 +#define FLDEFF_EXCLAMATION_MARK_ICON_2 33 +#define FLDEFF_FEET_IN_FLOWING_WATER 34 +#define FLDEFF_BIKE_TIRE_TRACKS 35 +#define FLDEFF_SAND_DISGUISE 36 +#define FLDEFF_USE_ROCK_SMASH 37 +#define FLDEFF_USE_DIG 38 +#define FLDEFF_SAND_PILE 39 +#define FLDEFF_USE_STRENGTH 40 +#define FLDEFF_SHORT_GRASS 41 +#define FLDEFF_HOT_SPRINGS_WATER 42 +#define FLDEFF_USE_WATERFALL 43 +#define FLDEFF_USE_DIVE 44 +#define FLDEFF_POKEBALL 45 +#define FLDEFF_HEART_ICON 46 +#define FLDEFF_NOP_47 47 +#define FLDEFF_NOP_48 48 +#define FLDEFF_POP_OUT_OF_ASH 49 +#define FLDEFF_LAVARIDGE_GYM_WARP 50 +#define FLDEFF_SWEET_SCENT 51 +#define FLDEFF_SAND_PILLAR 52 +#define FLDEFF_BUBBLES 53 +#define FLDEFF_SPARKLE 54 +#define FLDEFF_SECRET_POWER_CAVE 55 +#define FLDEFF_SECRET_POWER_TREE 56 +#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_SECRET_BASE_PC_TURN_ON 61 +#define FLDEFF_HALL_OF_FAME_RECORD 62 +#define FLDEFF_USE_TELEPORT 63 + +#endif diff --git a/include/field_effect.h b/include/field_effect.h index 4d0e90767..96234fae9 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -4,74 +4,6 @@ #include "sprite.h" #include "task.h" -enum FieldEffectScriptIdx -{ - FLDEFF_EXCLAMATION_MARK_ICON_1, - FLDEFF_USE_CUT_ON_GRASS, - FLDEFF_USE_CUT_ON_TREE, - FLDEFF_SHADOW, - FLDEFF_TALL_GRASS, - FLDEFF_RIPPLE, - FLDEFF_FIELD_MOVE_SHOW_MON, - FLDEFF_ASH, - FLDEFF_SURF_BLOB, - FLDEFF_USE_SURF, - FLDEFF_DUST, - FLDEFF_USE_SECRET_POWER_CAVE, - FLDEFF_JUMP_TALL_GRASS, - FLDEFF_SAND_FOOTPRINTS, - FLDEFF_JUMP_BIG_SPLASH, - FLDEFF_SPLASH, - FLDEFF_JUMP_SMALL_SPLASH, - FLDEFF_LONG_GRASS, - FLDEFF_JUMP_LONG_GRASS, - FLDEFF_UNKNOWN_19, - FLDEFF_UNKNOWN_20, - FLDEFF_UNKNOWN_21, - FLDEFF_UNKNOWN_22, - FLDEFF_BERRY_TREE_GROWTH_SPARKLE, - FLDEFF_DEEP_SAND_FOOTPRINTS, - FLDEFF_POKECENTER_HEAL, - FLDEFF_USE_SECRET_POWER_TREE, - FLDEFF_USE_SECRET_POWER_SHRUB, - FLDEFF_TREE_DISGUISE, - FLDEFF_MOUNTAIN_DISGUISE, - FLDEFF_NPCFLY_OUT, - FLDEFF_USE_FLY, - FLDEFF_FLY_IN, - FLDEFF_EXCLAMATION_MARK_ICON_2, - FLDEFF_FEET_IN_FLOWING_WATER, - FLDEFF_BIKE_TIRE_TRACKS, - FLDEFF_SAND_DISGUISE, - FLDEFF_USE_ROCK_SMASH, - FLDEFF_USE_DIG, - FLDEFF_SAND_PILE, - FLDEFF_USE_STRENGTH, - FLDEFF_SHORT_GRASS, - FLDEFF_HOT_SPRINGS_WATER, - FLDEFF_USE_WATERFALL, - FLDEFF_USE_DIVE, - FLDEFF_POKEBALL, - FLDEFF_HEART_ICON, - FLDEFF_NOP_47, - FLDEFF_NOP_48, - FLDEFF_POP_OUT_OF_ASH, - FLDEFF_LAVARIDGE_GYM_WARP, - FLDEFF_SWEET_SCENT, - FLDEFF_SAND_PILLAR, - FLDEFF_BUBBLES, - FLDEFF_SPARKLE, - FLDEFF_SECRET_POWER_CAVE, - FLDEFF_SECRET_POWER_TREE, - FLDEFF_SECRET_POWER_SHRUB, - FLDEFF_CUT_GRASS, - FLDEFF_FIELD_MOVE_SHOW_MON_INIT, - FLDEFF_USE_FLY_ANCIENT_TOMB, - FLDEFF_SECRET_BASE_PC_TURN_ON, - FLDEFF_HALL_OF_FAME_RECORD, - FLDEFF_USE_TELEPORT -}; - extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[2]; extern const struct SpritePalette gUnknown_0839F114; extern const struct CompressedSpriteSheet gTrainerFrontPicTable[2]; @@ -194,11 +126,6 @@ void sub_8087914(struct Task *); void sub_8087AA4(struct Task *); void sub_8087AC8(struct Task *); -void sub_8087BEC(struct Task *); -void sub_8087C14(struct Task *); -void sub_8087CA4(struct Task *); -void sub_8087D78(struct Task *); - void sub_8087E4C(struct Task *); void sub_8087ED8(struct Task *); void sub_8087FDC(struct Task *); @@ -250,7 +177,7 @@ u8 CreateMonSprite_PicBox(u16, s16, s16, u8); void FreeResourcesAndDestroySprite(struct Sprite *sprite); void MultiplyInvertedPaletteRGBComponents(u16, u8, u8, u8); void sub_80878A8(void); -void sub_8087BA8(void); +void CreateTeleportFieldEffectTask(void); void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b); extern s32 gFieldEffectArguments[8]; diff --git a/include/fldeff_cut.h b/include/fldeff_cut.h deleted file mode 100644 index 6230b822a..000000000 --- a/include/fldeff_cut.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef GUARD_FLDEFF_CUT_H -#define GUARD_FLDEFF_CUT_H - -void sub_80A25E8(void); -void sub_80A2634(void); -void sub_80A2684(void); -void sub_80A27A8(s16, s16); -void sub_80A28F4(s16, s16); -void objc_8097BBC(struct Sprite *sprite); -void sub_80A2AB8(void); -void sub_80A2B00(void); // unknown args -void debug_sub_80AFEE4(void); - -#endif // GUARD_FLDEFF_CUT_H diff --git a/include/fldeff_secretpower.h b/include/fldeff_secretpower.h deleted file mode 100644 index be6bebf55..000000000 --- a/include/fldeff_secretpower.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef GUARD_FLDEFF_SECRETPOWER_H -#define GUARD_FLDEFF_SECRETPOWER_H - -void debug_sub_80D93F4(void); - -#endif //GUARD_FLDEFF_SECRETPOWER_H diff --git a/include/fldeff_teleport.h b/include/fldeff_teleport.h deleted file mode 100644 index e447f5132..000000000 --- a/include/fldeff_teleport.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef GUARD_FLDEFF_TELEPORT_H -#define GUARD_FLDEFF_TELEPORT_H - -void hm_teleport_run_dp02scr(void); -void sub_814A404(void); - -#endif // GUARD_FLDEFF_TELEPORT_H diff --git a/include/pokemon_menu.h b/include/pokemon_menu.h index 313877caa..099c3a3bc 100644 --- a/include/pokemon_menu.h +++ b/include/pokemon_menu.h @@ -34,14 +34,14 @@ enum }; extern u8 gLastFieldPokeMenuOpened; -extern void (*gUnknown_03005CE4)(void); +extern void (*gPostMenuFieldCallback)(void); void HandleDefaultPartyMenu(u8 taskID); void sub_808B5B4(u32 taskID); void sub_8089A70(void); void sub_8089C50(u8 arg0, u8 arg1, u8 arg2, u8 noOfOptions, const struct MenuAction2 *menuActions, const u8 *order); void DoPokemonMenu_Switch(u8 taskID); -void FieldCallback_Teleport(void); +void FieldCallback_PrepareFadeInFromMenu(void); void sub_808AD58(void); void sub_808B020(void); void sub_808B0C0(u8 taskID); diff --git a/include/rom6.h b/include/rom6.h index 67fc7a18a..105eac19a 100644 --- a/include/rom6.h +++ b/include/rom6.h @@ -1,9 +1,9 @@ #ifndef GUARD_ROM6_H #define GUARD_ROM6_H -extern struct MapPosition gUnknown_0203923C; +extern struct MapPosition gPlayerFacingPosition; -bool8 npc_before_player_of_type(u8); +bool8 SetLastTalkedObjectInFrontOfPlayer(u8); u8 oei_task_add(void); void debug_sub_8120968(void); diff --git a/include/secret_base.h b/include/secret_base.h index 450850155..4748c83d7 100644 --- a/include/secret_base.h +++ b/include/secret_base.h @@ -5,13 +5,13 @@ #define MAX_SECRET_BASES 20 void ResetSecretBases(void); -void sub_80BB5E4(void); -void sub_80BB63C(void); -void sub_80BB800(void); +void SetCurrentSecretBaseVar(void); +void CheckPlayerHasSecretBase(void); +void SetOpenedSecretBaseMetatile(void); void sub_80BB970(struct MapEvents *events); u8 sub_80BBB24(void); void sub_80BBCCC(u8 flagIn); -void sub_80BBFD8(struct MapPosition *, struct MapEvents *); +void SetCurrentSecretBaseFromPosition(struct MapPosition *, struct MapEvents *); void sub_80BC038(struct MapPosition *, struct MapEvents *); u8 sub_80BC050(); u8 *GetSecretBaseMapName(u8 *dest); diff --git a/src/battle/battle_transition.c b/src/battle/battle_transition.c index a94974b27..d5035a862 100644 --- a/src/battle/battle_transition.c +++ b/src/battle/battle_transition.c @@ -10,11 +10,12 @@ #include "random.h" #include "sprite.h" #include "sound.h" -#include "constants/songs.h" #include "trainer.h" #include "field_camera.h" #include "ewram.h" #include "scanline_effect.h" +#include "constants/songs.h" +#include "constants/field_effects.h" void ScanlineEffect_Clear(void); diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c index f11fb5fb3..e7132a313 100644 --- a/src/braille_puzzles.c +++ b/src/braille_puzzles.c @@ -4,18 +4,19 @@ #include "field_camera.h" #include "field_effect.h" #include "fieldmap.h" -#include "constants/flags.h" #include "main.h" -#include "constants/maps.h" #include "map_obj_lock.h" #include "menu.h" #include "rom6.h" #include "script.h" -#include "constants/songs.h" #include "sound.h" -#include "constants/species.h" #include "task.h" #include "text.h" +#include "constants/field_effects.h" +#include "constants/flags.h" +#include "constants/maps.h" +#include "constants/songs.h" +#include "constants/species.h" extern u8 gPlayerPartyCount; extern u8 gLastFieldPokeMenuOpened; diff --git a/src/debug/start_menu_debug.c b/src/debug/start_menu_debug.c index 549842c6a..b16b15a0a 100644 --- a/src/debug/start_menu_debug.c +++ b/src/debug/start_menu_debug.c @@ -34,12 +34,10 @@ #include "wild_encounter.h" #include "battle_setup.h" #include "safari_zone.h" -#include "fldeff_cut.h" #include "fldeff_flash.h" #include "rom6.h" #include "fldeff_strength.h" #include "pokemon_menu.h" -#include "fldeff_secretpower.h" #include "data2.h" #include "item.h" #include "reset_rtc_screen.h" @@ -49,6 +47,9 @@ #include "gba/m4a_internal.h" #include "berry_blender.h" +extern void Debug_SetUpFieldMove_Cut(void); +extern void Debug_SetUpFieldMove_SecretPower(void); + void debug_sub_8076BB4(u8); void debug_sub_8077CF4(u8 x, u8 y); u8 DebugMenu_807706C(void); @@ -1305,7 +1306,7 @@ u8 DebugMenu_Safari(void) bool8 DebugMenu_8077BB4(void) { - debug_sub_80AFEE4(); + Debug_SetUpFieldMove_Cut(); return TRUE; } @@ -1336,7 +1337,7 @@ bool8 DebugMenu_8077BE4(void) bool8 DebugMenu_8077BF4(void) { - debug_sub_80D93F4(); + Debug_SetUpFieldMove_SecretPower(); return TRUE; } diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 3fb611433..6883c82c1 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -12,9 +12,10 @@ #include "overworld.h" #include "sprite.h" #include "metatile_behavior.h" +#include "trainer_see.h" +#include "constants/field_effects.h" #include "constants/maps.h" #include "constants/map_objects.h" -#include "trainer_see.h" // this file was known as evobjmv.c in Game Freak's original source diff --git a/src/field_effect.c b/src/field_effect.c index ae0acf1a0..876df601c 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -3,6 +3,7 @@ #include "script.h" #include "trig.h" #include "main.h" +#include "field_effect_helpers.h" #include "field_weather.h" #include "decompress.h" #include "sprite.h" @@ -12,7 +13,6 @@ #include "overworld.h" #include "task.h" #include "sound.h" -#include "constants/songs.h" #include "decoration.h" #include "field_player_avatar.h" #include "event_object_movement.h" @@ -22,8 +22,9 @@ #include "field_fadetransition.h" #include "fieldmap.h" #include "util.h" -#include "field_effect_helpers.h" #include "pokemon_storage_system.h" +#include "constants/field_effects.h" +#include "constants/songs.h" #define subsprite_table(ptr) {.subsprites = ptr, .subspriteCount = (sizeof ptr) / (sizeof(struct Subsprite))} @@ -2080,27 +2081,31 @@ void sub_8087AC8(struct Task *task) mapObject->mapobj_bit_13 ^= 1; } -void sub_8087BBC(u8); -void mapldr_08085D88(void); +static void ExecuteTeleportFieldEffectTask(u8); +static void TeleportFieldEffectTask1(struct Task*); +static void TeleportFieldEffectTask2(struct Task*); +static void TeleportFieldEffectTask3(struct Task*); +static void TeleportFieldEffectTask4(struct Task*); +static void mapldr_08085D88(void); -void sub_8087BA8(void) +void CreateTeleportFieldEffectTask(void) { - CreateTask(sub_8087BBC, 0); + CreateTask(ExecuteTeleportFieldEffectTask, 0); } -void (*const gUnknown_0839F390[])(struct Task *) = { - sub_8087BEC, - sub_8087C14, - sub_8087CA4, - sub_8087D78 +static void (*const sTeleportFieldEffectTasks[])(struct Task *) = { + TeleportFieldEffectTask1, + TeleportFieldEffectTask2, + TeleportFieldEffectTask3, + TeleportFieldEffectTask4 }; -void sub_8087BBC(u8 taskId) +static void ExecuteTeleportFieldEffectTask(u8 taskId) { - gUnknown_0839F390[gTasks[taskId].data[0]](&gTasks[taskId]); + sTeleportFieldEffectTasks[gTasks[taskId].data[0]](&gTasks[taskId]); } -void sub_8087BEC(struct Task *task) +static void TeleportFieldEffectTask1(struct Task *task) { ScriptContext2_Enable(); FreezeMapObjects(); @@ -2109,13 +2114,13 @@ void sub_8087BEC(struct Task *task) task->data[0]++; } -void sub_8087C14(struct Task *task) +static void TeleportFieldEffectTask2(struct Task *task) { - u8 unknown_0839F380[5] = {1, 3, 4, 2, 1}; + u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; if (task->data[1] == 0 || (--task->data[1]) == 0) { - FieldObjectTurn(mapObject, unknown_0839F380[mapObject->mapobj_unk_18]); + FieldObjectTurn(mapObject, spinDirections[mapObject->mapobj_unk_18]); task->data[1] = 8; task->data[2]++; } @@ -2129,15 +2134,15 @@ void sub_8087C14(struct Task *task) } } -void sub_8087CA4(struct Task *task) +static void TeleportFieldEffectTask3(struct Task *task) { - u8 unknown_0839F380[5] = {1, 3, 4, 2, 1}; + u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; struct Sprite *sprite = &gSprites[gPlayerAvatar.spriteId]; if ((--task->data[1]) <= 0) { task->data[1] = 4; - FieldObjectTurn(mapObject, unknown_0839F380[mapObject->mapobj_unk_18]); + FieldObjectTurn(mapObject, spinDirections[mapObject->mapobj_unk_18]); } sprite->pos1.y -= task->data[3]; task->data[4] += task->data[3]; @@ -2157,7 +2162,7 @@ void sub_8087CA4(struct Task *task) } } -void sub_8087D78(struct Task *task) +static void TeleportFieldEffectTask4(struct Task *task) { if (!gPaletteFade.active && sub_8054034() == TRUE) { @@ -2165,13 +2170,13 @@ void sub_8087D78(struct Task *task) warp_in(); SetMainCallback2(CB2_LoadMap); gFieldCallback = mapldr_08085D88; - DestroyTask(FindTaskIdByFunc(sub_8087BBC)); + DestroyTask(FindTaskIdByFunc(ExecuteTeleportFieldEffectTask)); } } void sub_8087E1C(u8); -void mapldr_08085D88(void) +static void mapldr_08085D88(void) { Overworld_PlaySpecialMapMusic(); pal_fill_for_map_transition(); @@ -3002,7 +3007,7 @@ void sub_8088D94(struct Task *task) { task->data[0]++; task->data[2] = 16; - SetPlayerAvatarTransitionFlags(0x01); + SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); FieldObjectSetSpecialAnim(&gMapObjects[gPlayerAvatar.mapObjectId], 0x02); } } diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index 216f39d62..be7bcec27 100644 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -2,13 +2,14 @@ #include "sprite.h" #include "fieldmap.h" #include "metatile_behavior.h" -#include "constants/songs.h" #include "sound.h" #include "event_object_movement.h" #include "field_camera.h" #include "field_weather.h" #include "field_effect.h" #include "field_effect_helpers.h" +#include "constants/field_effects.h" +#include "constants/songs.h" static void sub_81269E0(struct Sprite *); static void npc_pal_op(struct MapObject *mapObject, struct Sprite *sprite); diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 1552381b2..3970cb824 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -7,7 +7,6 @@ #include "event_object_movement.h" #include "fieldmap.h" #include "main.h" -#include "constants/map_objects.h" #include "menu.h" #include "metatile_behavior.h" #include "new_game.h" @@ -22,6 +21,8 @@ #include "task.h" #include "tv.h" #include "wild_encounter.h" +#include "constants/field_effects.h" +#include "constants/map_objects.h" EWRAM_DATA struct PlayerAvatar gPlayerAvatar = {0}; diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index c8f942fe5..bea376645 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -1,5 +1,4 @@ #include "global.h" -#include "fldeff_cut.h" #include "field_camera.h" #include "field_effect.h" #include "event_object_movement.h" @@ -12,18 +11,20 @@ #include "overworld.h" #include "rom6.h" #include "script.h" -#include "constants/songs.h" #include "sound.h" #include "sprite.h" #include "task.h" #include "trig.h" #include "ewram.h" +#include "constants/field_effects.h" +#include "constants/map_objects.h" +#include "constants/songs.h" extern void (*gFieldCallback)(void); -extern void (*gUnknown_03005CE4)(void); +extern void (*gPostMenuFieldCallback)(void); extern u8 gLastFieldPokeMenuOpened; -extern const u8 S_UseCut[]; +extern const u8 DoCutFieldEffectScript[]; const struct OamData gOamData_CutGrass = { @@ -60,7 +61,17 @@ const struct SpriteFrameImage gSpriteImageTable_CutGrass[] = const struct SpritePalette gFieldEffectObjectPaletteInfo6 = {gFieldEffectObjectPalette6, 0x1000}; -static void sub_80A2A48(struct Sprite *); +static void FieldCallback_CutTree(void); +static void FieldCallback_CutGrass(void); +static void StartCutTreeFieldEffect(void); +static void StartCutGrassFieldEffect(void); +static void SetCutGrassMetatile(s16, s16); +static void SetCutGrassMetatiles(s16, s16); +static void CutGrassSpriteCallback1(struct Sprite *); +static void CutGrassSpriteCallback2(struct Sprite *); +static void CutGrassSpriteCallbackEnd(struct Sprite *); + + static const struct SpriteTemplate gSpriteTemplate_CutGrass = { .tileTag = 0xFFFF, @@ -69,44 +80,45 @@ static const struct SpriteTemplate gSpriteTemplate_CutGrass = .anims = gSpriteAnimTable_CutGrass, .images = gSpriteImageTable_CutGrass, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80A2A48, + .callback = CutGrassSpriteCallback1, }; #if DEBUG -void debug_sub_80AFEE4(void) +void Debug_SetUpFieldMove_Cut(void) { s16 x, y; u8 i, j; u8 metatile; - if (npc_before_player_of_type(0x52) == TRUE) + if (SetLastTalkedObjectInFrontOfPlayer(MAP_OBJ_GFX_CUTTABLE_TREE) == TRUE) { gLastFieldPokeMenuOpened = 0; - sub_80A2634(); + FieldCallback_CutTree(); return; } - PlayerGetDestCoords(&gUnknown_0203923C.x, &gUnknown_0203923C.y); + PlayerGetDestCoords(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); for (i = 0; i < 3; i++) { - y = i - 1 + gUnknown_0203923C.y; + y = i - 1 + gPlayerFacingPosition.y; for (j = 0; j < 3; j++) { - x = j - 1 + gUnknown_0203923C.x; - if (MapGridGetZCoordAt(x, y) == gUnknown_0203923C.height) + x = j - 1 + gPlayerFacingPosition.x; + if (MapGridGetZCoordAt(x, y) == gPlayerFacingPosition.height) { metatile = MapGridGetMetatileBehaviorAt(x, y); if (MetatileBehavior_IsPokeGrass(metatile) == TRUE || MetatileBehavior_IsAshGrass(metatile) == TRUE) { gLastFieldPokeMenuOpened = 0; - sub_80A25E8(); + FieldCallback_CutGrass(); return; } } } } + ScriptContext2_Disable(); } @@ -118,39 +130,43 @@ bool8 SetUpFieldMove_Cut(void) u8 i, j; u8 tileBehavior; - if(npc_before_player_of_type(0x52) == TRUE) // is in front of tree? + if (SetLastTalkedObjectInFrontOfPlayer(MAP_OBJ_GFX_CUTTABLE_TREE) == TRUE) { - gFieldCallback = FieldCallback_Teleport; - gUnknown_03005CE4 = sub_80A2634; + // Standing in front of cuttable tree. + gFieldCallback = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = FieldCallback_CutTree; return TRUE; } - else // is in ash or grass to cut? + else { - PlayerGetDestCoords(&gUnknown_0203923C.x, &gUnknown_0203923C.y); - for(i = 0; i < 3; i++) + PlayerGetDestCoords(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); + for (i = 0; i < 3; i++) { - y = i - 1 + gUnknown_0203923C.y; - for(j = 0; j < 3; j++) + y = i - 1 + gPlayerFacingPosition.y; + for (j = 0; j < 3; j++) { - x = j - 1 + gUnknown_0203923C.x; - if(MapGridGetZCoordAt(x, y) == gUnknown_0203923C.height) + x = j - 1 + gPlayerFacingPosition.x; + if(MapGridGetZCoordAt(x, y) == gPlayerFacingPosition.height) { tileBehavior = MapGridGetMetatileBehaviorAt(x, y); if(MetatileBehavior_IsPokeGrass(tileBehavior) == TRUE || MetatileBehavior_IsAshGrass(tileBehavior) == TRUE) { - gFieldCallback = FieldCallback_Teleport; - gUnknown_03005CE4 = sub_80A25E8; + // Standing in front of grass. + gFieldCallback = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = FieldCallback_CutGrass; return TRUE; } } } } - return FALSE; // do not use cut + + // Not a valid location to use Cut. + return FALSE; } } -void sub_80A25E8(void) +static void FieldCallback_CutGrass(void) { FieldEffectStart(FLDEFF_USE_CUT_ON_GRASS); gFieldEffectArguments[0] = gLastFieldPokeMenuOpened; @@ -160,29 +176,29 @@ bool8 FldEff_UseCutOnGrass(void) { u8 taskId = oei_task_add(); - gTasks[taskId].data[8] = (u32)sub_80A2684 >> 16; - gTasks[taskId].data[9] = (u32)sub_80A2684; + gTasks[taskId].data[8] = (u32)StartCutGrassFieldEffect >> 16; + gTasks[taskId].data[9] = (u32)StartCutGrassFieldEffect; IncrementGameStat(GAME_STAT_USED_CUT); return FALSE; } -void sub_80A2634(void) +static void FieldCallback_CutTree(void) { gFieldEffectArguments[0] = gLastFieldPokeMenuOpened; - ScriptContext1_SetupScript(S_UseCut); + ScriptContext1_SetupScript(DoCutFieldEffectScript); } bool8 FldEff_UseCutOnTree(void) { u8 taskId = oei_task_add(); - gTasks[taskId].data[8] = (u32)sub_80A2B00 >> 16; - gTasks[taskId].data[9] = (u32)sub_80A2B00; + gTasks[taskId].data[8] = (u32)StartCutTreeFieldEffect >> 16; + gTasks[taskId].data[9] = (u32)StartCutTreeFieldEffect; IncrementGameStat(GAME_STAT_USED_CUT); return FALSE; } -void sub_80A2684(void) +static void StartCutGrassFieldEffect(void) { FieldEffectActiveListRemove(FLDEFF_USE_CUT_ON_GRASS); FieldEffectStart(FLDEFF_CUT_GRASS); @@ -192,41 +208,42 @@ bool8 FldEff_CutGrass(void) { s16 x, y; u8 tileBehavior; - u8 i, j; // not in for loop? + u8 i, j; - for(i = 0, PlaySE(SE_W015), PlayerGetDestCoords(&gUnknown_0203923C.x, &gUnknown_0203923C.y); i < 3; i++) + for (i = 0, PlaySE(SE_W015), PlayerGetDestCoords(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); i < 3; i++) { - y = i - 1 + gUnknown_0203923C.y; - for(j = 0; j < 3; j++) + y = i - 1 + gPlayerFacingPosition.y; + for (j = 0; j < 3; j++) { - x = j - 1 + gUnknown_0203923C.x; - if(MapGridGetZCoordAt(x, y) == (s8)gUnknown_0203923C.height) + x = j - 1 + gPlayerFacingPosition.x; + if (MapGridGetZCoordAt(x, y) == (s8)gPlayerFacingPosition.height) { tileBehavior = MapGridGetMetatileBehaviorAt(x, y); - if(MetatileBehavior_IsCuttableGrass(tileBehavior) == TRUE) + if (MetatileBehavior_IsCuttableGrass(tileBehavior) == TRUE) { - sub_80A27A8(x, y); + SetCutGrassMetatile(x, y); sub_805BCC0(x, y); } } } } - sub_80A28F4(gUnknown_0203923C.x - 1, gUnknown_0203923C.y - 2); + + SetCutGrassMetatiles(gPlayerFacingPosition.x - 1, gPlayerFacingPosition.y - 2); DrawWholeMapView(); // populate sprite ID array - for(i = 0; i < 8; i++) + for (i = 0; i < 8; i++) { eCutGrassSpriteArray[i] = CreateSprite((struct SpriteTemplate *)&gSpriteTemplate_CutGrass, gSprites[gPlayerAvatar.spriteId].oam.x + 8, gSprites[gPlayerAvatar.spriteId].oam.y + 20, 0); gSprites[eCutGrassSpriteArray[i]].data[2] = 32 * i; } + return 0; } // set map grid metatile depending on x, y -// TODO: enum for metatile IDs -void sub_80A27A8(s16 x, s16 y) +static void SetCutGrassMetatile(s16 x, s16 y) { int metatileId = MapGridGetMetatileIdAt(x, y); @@ -266,7 +283,7 @@ void sub_80A27A8(s16 x, s16 y) } } -s32 sub_80A28A0(s16 x, s16 y) +static s32 sub_80A28A0(s16 x, s16 y) { u16 metatileId = MapGridGetMetatileIdAt(x, y); @@ -282,18 +299,18 @@ s32 sub_80A28A0(s16 x, s16 y) return 0; } -void sub_80A28F4(s16 x, s16 y) +static void SetCutGrassMetatiles(s16 x, s16 y) { s16 i; u16 lowerY = y + 3; - for(i = 0; i < 3; i++) + for (i = 0; i < 3; i++) { u16 currentX = x + i; s16 currentXsigned = x + i; - if(MapGridGetMetatileIdAt(currentXsigned, y) == 21) + if (MapGridGetMetatileIdAt(currentXsigned, y) == 21) { - switch((u8)sub_80A28A0(currentXsigned, y + 1)) + switch ((u8)sub_80A28A0(currentXsigned, y + 1)) { case 1: MapGridSetMetatileIdAt(currentXsigned, y + 1, 0x208); @@ -309,29 +326,29 @@ void sub_80A28F4(s16 x, s16 y) break; } } - if(MapGridGetMetatileIdAt((s16)currentX, (s16)lowerY) == 1) + if (MapGridGetMetatileIdAt((s16)currentX, (s16)lowerY) == 1) { - if(MapGridGetMetatileIdAt((s16)currentX, (s16)lowerY + 1) == 0x208) + if (MapGridGetMetatileIdAt((s16)currentX, (s16)lowerY + 1) == 0x208) MapGridSetMetatileIdAt((s16)currentX, (s16)lowerY + 1, 0x1); - if(MapGridGetMetatileIdAt((s16)currentX, (s16)lowerY + 1) == 0x281) + if (MapGridGetMetatileIdAt((s16)currentX, (s16)lowerY + 1) == 0x281) MapGridSetMetatileIdAt((s16)currentX, (s16)lowerY + 1, 0x279); - if(MapGridGetMetatileIdAt((s16)currentX, (s16)lowerY + 1) == 0x282) + if (MapGridGetMetatileIdAt((s16)currentX, (s16)lowerY + 1) == 0x282) MapGridSetMetatileIdAt((s16)currentX, (s16)lowerY + 1, 0x27A); - if(MapGridGetMetatileIdAt((s16)currentX, (s16)lowerY + 1) == 0x283) + if (MapGridGetMetatileIdAt((s16)currentX, (s16)lowerY + 1) == 0x283) MapGridSetMetatileIdAt((s16)currentX, (s16)lowerY + 1, 0x27B); } } } -static void sub_80A2A48(struct Sprite *sprite) +static void CutGrassSpriteCallback1(struct Sprite *sprite) { sprite->data[0] = 8; sprite->data[1] = 0; sprite->data[3] = 0; - sprite->callback = (void *)objc_8097BBC; + sprite->callback = CutGrassSpriteCallback2; } -void objc_8097BBC(struct Sprite *sprite) +static void CutGrassSpriteCallback2(struct Sprite *sprite) { u16 tempdata; u16 tempdata2; @@ -347,10 +364,10 @@ void objc_8097BBC(struct Sprite *sprite) if((s16)tempdata != 28) // done rotating the grass, execute clean up function sprite->data[1]++; else - sprite->callback = (void *)sub_80A2AB8; + sprite->callback = CutGrassSpriteCallbackEnd; } -void sub_80A2AB8(void) +static void CutGrassSpriteCallbackEnd(struct Sprite *sprite) { u8 i; @@ -361,7 +378,7 @@ void sub_80A2AB8(void) ScriptContext2_Disable(); } -void sub_80A2B00(void) +static void StartCutTreeFieldEffect(void) { PlaySE(SE_W015); FieldEffectActiveListRemove(FLDEFF_USE_CUT_ON_TREE); diff --git a/src/fldeff_decoration.c b/src/fldeff_decoration.c index 1859fc00b..467e7bca4 100644 --- a/src/fldeff_decoration.c +++ b/src/fldeff_decoration.c @@ -6,12 +6,13 @@ #include "field_player_avatar.h" #include "fieldmap.h" #include "script.h" -#include "constants/songs.h" #include "sound.h" #include "string_util.h" #include "strings.h" #include "task.h" #include "text.h" +#include "constants/field_effects.h" +#include "constants/songs.h" extern const u8 gSpriteImage_83D21EC[]; extern const u8 gSpriteImage_83D22EC[]; diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c index 30ddd0f6c..a9f64a2d1 100644 --- a/src/fldeff_flash.c +++ b/src/fldeff_flash.c @@ -22,7 +22,7 @@ struct FlashStruct }; extern u8 gLastFieldPokeMenuOpened; -extern void (*gUnknown_03005CE4)(void); +extern void (*gPostMenuFieldCallback)(void); extern u8 gUnknown_081B694A[]; @@ -87,8 +87,8 @@ bool8 SetUpFieldMove_Flash(void) { if (gMapHeader.cave == TRUE && !FlagGet(FLAG_SYS_USE_FLASH)) { - gFieldCallback = FieldCallback_Teleport; - gUnknown_03005CE4 = sub_810CBFC; + gFieldCallback = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = sub_810CBFC; return TRUE; } diff --git a/src/fldeff_secret_base_pc.c b/src/fldeff_secret_base_pc.c index 394c4bc56..f9898c444 100644 --- a/src/fldeff_secret_base_pc.c +++ b/src/fldeff_secret_base_pc.c @@ -5,9 +5,10 @@ #include "field_player_avatar.h" #include "fieldmap.h" #include "script.h" -#include "constants/songs.h" #include "sound.h" #include "task.h" +#include "constants/field_effects.h" +#include "constants/songs.h" static void Task_SecretBasePCTurnOn(u8); diff --git a/src/fldeff_secretpower.c b/src/fldeff_secretpower.c index d1df03d84..e58a1e82f 100644 --- a/src/fldeff_secretpower.c +++ b/src/fldeff_secretpower.c @@ -10,12 +10,13 @@ #include "rom6.h" #include "script.h" #include "secret_base.h" -#include "constants/songs.h" #include "sound.h" +#include "constants/field_effects.h" +#include "constants/songs.h" -extern u8 gUnknown_081A2CE6[]; -extern u8 gUnknown_081A2D3E[]; -extern u8 gUnknown_081A2D96[]; +extern u8 DoSecretBaseCaveFieldEffectScript[]; +extern u8 DoSecretBaseTreeFieldEffectScript[]; +extern u8 DoSecretBaseShrubFieldEffectScript[]; const u8 gSpriteImage_83D198C[] = INCBIN_U8("graphics/unknown_sprites/83D259C/0.4bpp"); const u8 gSpriteImage_83D1A0C[] = INCBIN_U8("graphics/unknown_sprites/83D259C/1.4bpp"); @@ -162,8 +163,8 @@ const struct SpriteFrameImage gSpriteImageTable_83D25EC[] = {gSpriteImage_83D1E4C, 0x80}, }; -void sub_80C644C(struct Sprite *); -const struct SpriteTemplate gSpriteTemplate_83D2614 = +static void CaveEntranceSpriteCallback1(struct Sprite *); +static const struct SpriteTemplate sSpriteTemplate_CaveEntrance = { .tileTag = 0xFFFF, .paletteTag = 4099, @@ -171,11 +172,11 @@ const struct SpriteTemplate gSpriteTemplate_83D2614 = .anims = gSpriteAnimTable_83D2584, .images = gSpriteImageTable_83D259C, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80C644C, + .callback = CaveEntranceSpriteCallback1, }; -void sub_80C6598(struct Sprite *); -const struct SpriteTemplate gSpriteTemplate_83D262C = +static void TreeEntranceSpriteCallback1(struct Sprite *); +const struct SpriteTemplate sSpriteTemplate_TreeEntrance = { .tileTag = 0xFFFF, .paletteTag = 4104, @@ -183,11 +184,11 @@ const struct SpriteTemplate gSpriteTemplate_83D262C = .anims = gSpriteAnimTable_83D2588, .images = gSpriteImageTable_83D25C4, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80C6598, + .callback = TreeEntranceSpriteCallback1, }; -void sub_80C66BC(struct Sprite *); -const struct SpriteTemplate gSpriteTemplate_83D2644 = +static void ShrubEntranceSpriteCallback1(struct Sprite *); +const struct SpriteTemplate sSpriteTemplate_ShrubEntrance = { .tileTag = 0xFFFF, .paletteTag = 4104, @@ -195,48 +196,48 @@ const struct SpriteTemplate gSpriteTemplate_83D2644 = .anims = gSpriteAnimTable_83D2598, .images = gSpriteImageTable_83D25EC, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80C66BC, + .callback = ShrubEntranceSpriteCallback1, }; const struct SpritePalette gFieldEffectObjectPaletteInfo7 = {gFieldEffectObjectPalette7, 0x1003}; const struct SpritePalette gFieldEffectObjectPaletteInfo8 = {gFieldEffectObjectPalette8, 0x1008}; -void sub_80C639C(void); -void sub_80C63E8(void); -void sub_80C6468(struct Sprite *); -void sub_80C6498(struct Sprite *); -void sub_80C64A8(void); -void sub_80C64F4(void); -void sub_80C65C4(struct Sprite *); -void sub_80C65FC(struct Sprite *); -void sub_80C660C(void); -void sub_80C6658(void); -void sub_80C66D8(struct Sprite *sprite); -void sub_80C6708(struct Sprite *sprite); - -void sub_80C6264(void) -{ - sub_80BBFD8(&gUnknown_0203923C, gMapHeader.events); - sub_80BB5E4(); +static void FieldCallback_SecretBaseCave(void); +static void StartSecretBaseCaveFieldEffect(void); +static void CaveEntranceSpriteCallback2(struct Sprite *); +static void CaveEntranceSpriteCallbackEnd(struct Sprite *); +static void FieldCallback_SecretBaseTree(void); +static void StartSecretBaseTreeFieldEffect(void); +static void TreeEntranceSpriteCallback2(struct Sprite *); +static void TreeEntranceSpriteCallbackEnd(struct Sprite *); +static void FieldCallback_SecretBaseShrub(void); +static void StartSecretBaseShrubFieldEffect(void); +static void ShrubEntranceSpriteCallback2(struct Sprite *sprite); +static void ShrubEntranceSpriteCallbackEnd(struct Sprite *sprite); + +static void SetCurrentSecretBase(void) +{ + SetCurrentSecretBaseFromPosition(&gPlayerFacingPosition, gMapHeader.events); + SetCurrentSecretBaseVar(); } -void sub_80C6280(void) +static void AdjustSecretPowerSpritePixelOffsets(void) { switch (gFieldEffectArguments[1]) { - case 1: + case DIR_SOUTH: gFieldEffectArguments[5] = 8; gFieldEffectArguments[6] = 40; break; - case 2: + case DIR_NORTH: gFieldEffectArguments[5] = 8; gFieldEffectArguments[6] = 8; break; - case 3: + case DIR_WEST: gFieldEffectArguments[5] = -8; gFieldEffectArguments[6] = 24; break; - case 4: + case DIR_EAST: gFieldEffectArguments[5] = 24; gFieldEffectArguments[6] = 24; break; @@ -245,37 +246,37 @@ void sub_80C6280(void) #if DEBUG -void debug_sub_80D93F4(void) +void Debug_SetUpFieldMove_SecretPower(void) { u8 metatile; - sub_80BB63C(); + CheckPlayerHasSecretBase(); - if (gSpecialVar_Result == 1 || player_get_direction_lower_nybble() != 2) + if (gSpecialVar_Result == 1 || player_get_direction_lower_nybble() != DIR_NORTH) { ScriptContext2_Disable(); return; } - GetXYCoordsOneStepInFrontOfPlayer(&gUnknown_0203923C.x, &gUnknown_0203923C.y); - metatile = MapGridGetMetatileBehaviorAt(gUnknown_0203923C.x, gUnknown_0203923C.y); + GetXYCoordsOneStepInFrontOfPlayer(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); + metatile = MapGridGetMetatileBehaviorAt(gPlayerFacingPosition.x, gPlayerFacingPosition.y); if (MetatileBehavior_IsSecretBaseCave(metatile) == TRUE) { - sub_80C6264(); + SetCurrentSecretBase(); gLastFieldPokeMenuOpened = 0; - sub_80C639C(); + FieldCallback_SecretBaseCave(); } else if (MetatileBehavior_IsSecretBaseTree(metatile) == TRUE) { - sub_80C6264(); + SetCurrentSecretBase(); gLastFieldPokeMenuOpened = 0; - sub_80C64A8(); + FieldCallback_SecretBaseTree(); } else if (MetatileBehavior_IsSecretBaseShrub(metatile) == TRUE) { - sub_80C6264(); + SetCurrentSecretBase(); gLastFieldPokeMenuOpened = 0; - sub_80C660C(); + FieldCallback_SecretBaseShrub(); } else { @@ -289,58 +290,57 @@ bool8 SetUpFieldMove_SecretPower(void) { u8 behavior; - sub_80BB63C(); - + CheckPlayerHasSecretBase(); if (gSpecialVar_Result == 1 || player_get_direction_lower_nybble() != DIR_NORTH) return FALSE; - GetXYCoordsOneStepInFrontOfPlayer(&gUnknown_0203923C.x, &gUnknown_0203923C.y); - behavior = MapGridGetMetatileBehaviorAt(gUnknown_0203923C.x, gUnknown_0203923C.y); + GetXYCoordsOneStepInFrontOfPlayer(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); + behavior = MapGridGetMetatileBehaviorAt(gPlayerFacingPosition.x, gPlayerFacingPosition.y); if (MetatileBehavior_IsSecretBaseCave(behavior) == TRUE) { - sub_80C6264(); - gFieldCallback = FieldCallback_Teleport; - gUnknown_03005CE4 = sub_80C639C; + SetCurrentSecretBase(); + gFieldCallback = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = FieldCallback_SecretBaseCave; return TRUE; } if (MetatileBehavior_IsSecretBaseTree(behavior) == TRUE) { - sub_80C6264(); - gFieldCallback = FieldCallback_Teleport; - gUnknown_03005CE4 = sub_80C64A8; + SetCurrentSecretBase(); + gFieldCallback = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = FieldCallback_SecretBaseTree; return TRUE; } if (MetatileBehavior_IsSecretBaseShrub(behavior) == TRUE) { - sub_80C6264(); - gFieldCallback = FieldCallback_Teleport; - gUnknown_03005CE4 = sub_80C660C; + SetCurrentSecretBase(); + gFieldCallback = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = FieldCallback_SecretBaseShrub; return TRUE; } return FALSE; } -void sub_80C639C(void) +static void FieldCallback_SecretBaseCave(void) { gFieldEffectArguments[0] = gLastFieldPokeMenuOpened; - ScriptContext1_SetupScript(gUnknown_081A2CE6); + ScriptContext1_SetupScript(DoSecretBaseCaveFieldEffectScript); } bool8 FldEff_UseSecretPowerCave(void) { u8 taskId = oei_task_add(); - gTasks[taskId].data[8] = (uintptr_t)sub_80C63E8 >> 16; - gTasks[taskId].data[9] = (uintptr_t)sub_80C63E8; + gTasks[taskId].data[8] = (uintptr_t)StartSecretBaseCaveFieldEffect >> 16; + gTasks[taskId].data[9] = (uintptr_t)StartSecretBaseCaveFieldEffect; return FALSE; } -void sub_80C63E8(void) +static void StartSecretBaseCaveFieldEffect(void) { FieldEffectActiveListRemove(FLDEFF_USE_SECRET_POWER_CAVE); FieldEffectStart(FLDEFF_SECRET_POWER_CAVE); @@ -348,60 +348,60 @@ void sub_80C63E8(void) bool8 FldEff_SecretPowerCave(void) { - sub_80C6280(); + AdjustSecretPowerSpritePixelOffsets(); CreateSprite( - &gSpriteTemplate_83D2614, + &sSpriteTemplate_CaveEntrance, gSprites[gPlayerAvatar.spriteId].oam.x + gFieldEffectArguments[5], gSprites[gPlayerAvatar.spriteId].oam.y + gFieldEffectArguments[6], 148); return FALSE; } -void sub_80C644C(struct Sprite *sprite) +static void CaveEntranceSpriteCallback1(struct Sprite *sprite) { PlaySE(SE_W088); sprite->data[0] = 0; - sprite->callback = sub_80C6468; + sprite->callback = CaveEntranceSpriteCallback2; } -void sub_80C6468(struct Sprite *sprite) +static void CaveEntranceSpriteCallback2(struct Sprite *sprite) { if (sprite->data[0] < 40) { sprite->data[0]++; - if (sprite->data[0] == 20 ) - sub_80BB800(); + if (sprite->data[0] == 20) + SetOpenedSecretBaseMetatile(); } else { sprite->data[0] = 0; - sprite->callback = sub_80C6498; + sprite->callback = CaveEntranceSpriteCallbackEnd; } } -void sub_80C6498(struct Sprite *sprite) +static void CaveEntranceSpriteCallbackEnd(struct Sprite *sprite) { FieldEffectStop(sprite, FLDEFF_SECRET_POWER_CAVE); EnableBothScriptContexts(); } -void sub_80C64A8(void) +static void FieldCallback_SecretBaseTree(void) { gFieldEffectArguments[0] = gLastFieldPokeMenuOpened; - ScriptContext1_SetupScript(gUnknown_081A2D3E); + ScriptContext1_SetupScript(DoSecretBaseTreeFieldEffectScript); } bool8 FldEff_UseSecretPowerTree(void) { u8 taskId = oei_task_add(); - gTasks[taskId].data[8] = (uintptr_t)sub_80C64F4 >> 16; - gTasks[taskId].data[9] = (uintptr_t)sub_80C64F4; + gTasks[taskId].data[8] = (uintptr_t)StartSecretBaseTreeFieldEffect >> 16; + gTasks[taskId].data[9] = (uintptr_t)StartSecretBaseTreeFieldEffect; return FALSE; } -void sub_80C64F4(void) +static void StartSecretBaseTreeFieldEffect(void) { FieldEffectActiveListRemove(FLDEFF_USE_SECRET_POWER_TREE); FieldEffectStart(FLDEFF_SECRET_POWER_TREE); @@ -409,77 +409,72 @@ void sub_80C64F4(void) bool8 FldEff_SecretPowerTree(void) { - s16 behavior = MapGridGetMetatileBehaviorAt(gUnknown_0203923C.x, gUnknown_0203923C.y) & 0xFFF; + s16 behavior = MapGridGetMetatileBehaviorAt(gPlayerFacingPosition.x, gPlayerFacingPosition.y) & 0xFFF; if (behavior == MB_SECRET_BASE_SPOT_TREE_1) - { gFieldEffectArguments[7] = 0; - } if (behavior == MB_SECRET_BASE_SPOT_TREE_2) - { gFieldEffectArguments[7] = 2; - } - - sub_80C6280(); + AdjustSecretPowerSpritePixelOffsets(); CreateSprite( - &gSpriteTemplate_83D262C, + &sSpriteTemplate_TreeEntrance, gSprites[gPlayerAvatar.spriteId].oam.x + gFieldEffectArguments[5], gSprites[gPlayerAvatar.spriteId].oam.y + gFieldEffectArguments[6], 148); if (gFieldEffectArguments[7] == 1 || gFieldEffectArguments[7] == 3) - sub_80BB800(); + SetOpenedSecretBaseMetatile(); return FALSE; } -void sub_80C6598(struct Sprite *sprite) +static void TreeEntranceSpriteCallback1(struct Sprite *sprite) { PlaySE(SE_W010); sprite->animNum = gFieldEffectArguments[7]; sprite->data[0] = 0; - sprite->callback = sub_80C65C4; + sprite->callback = TreeEntranceSpriteCallback2; } -void sub_80C65C4(struct Sprite *sprite) +static void TreeEntranceSpriteCallback2(struct Sprite *sprite) { sprite->data[0]++; if (sprite->data[0] >= 40) { if (gFieldEffectArguments[7] == 0 || gFieldEffectArguments[7] == 2) - sub_80BB800(); + SetOpenedSecretBaseMetatile(); + sprite->data[0] = 0; - sprite->callback = sub_80C65FC; + sprite->callback = TreeEntranceSpriteCallbackEnd; } } - -void sub_80C65FC(struct Sprite *sprite) +static void TreeEntranceSpriteCallbackEnd(struct Sprite *sprite) { FieldEffectStop(sprite, FLDEFF_SECRET_POWER_TREE); EnableBothScriptContexts(); } -void sub_80C660C(void) +static void FieldCallback_SecretBaseShrub(void) { gFieldEffectArguments[0] = gLastFieldPokeMenuOpened; - ScriptContext1_SetupScript(gUnknown_081A2D96); + ScriptContext1_SetupScript(DoSecretBaseShrubFieldEffectScript); } bool8 FldEff_UseSecretPowerShrub(void) { u8 taskId = oei_task_add(); - gTasks[taskId].data[8] = (uintptr_t)sub_80C6658 >> 16; - gTasks[taskId].data[9] = (uintptr_t)sub_80C6658; + gTasks[taskId].data[8] = (uintptr_t)StartSecretBaseShrubFieldEffect >> 16; + gTasks[taskId].data[9] = (uintptr_t)StartSecretBaseShrubFieldEffect; return FALSE; } -void sub_80C6658(void) +static void StartSecretBaseShrubFieldEffect(void) { FieldEffectActiveListRemove(FLDEFF_USE_SECRET_POWER_SHRUB); FieldEffectStart(FLDEFF_SECRET_POWER_SHRUB); @@ -487,39 +482,38 @@ void sub_80C6658(void) bool8 FldEff_SecretPowerShrub(void) { - sub_80C6280(); + AdjustSecretPowerSpritePixelOffsets(); CreateSprite( - &gSpriteTemplate_83D2644, + &sSpriteTemplate_ShrubEntrance, gSprites[gPlayerAvatar.spriteId].oam.x + gFieldEffectArguments[5], gSprites[gPlayerAvatar.spriteId].oam.y + gFieldEffectArguments[6], 148); return FALSE; } -void sub_80C66BC(struct Sprite *sprite) +static void ShrubEntranceSpriteCallback1(struct Sprite *sprite) { PlaySE(SE_W077); sprite->data[0] = 0; - sprite->callback = sub_80C66D8; + sprite->callback = ShrubEntranceSpriteCallback2; } -void sub_80C66D8(struct Sprite *sprite) +static void ShrubEntranceSpriteCallback2(struct Sprite *sprite) { if (sprite->data[0] < 40) { sprite->data[0]++; - if (sprite->data[0] == 20 ) - sub_80BB800(); + if (sprite->data[0] == 20) + SetOpenedSecretBaseMetatile(); } else { sprite->data[0] = 0; - sprite->callback = sub_80C6708; + sprite->callback = ShrubEntranceSpriteCallbackEnd; } } - -void sub_80C6708(struct Sprite *sprite) +static void ShrubEntranceSpriteCallbackEnd(struct Sprite *sprite) { FieldEffectStop(sprite, FLDEFF_SECRET_POWER_SHRUB); EnableBothScriptContexts(); diff --git a/src/fldeff_strength.c b/src/fldeff_strength.c index 9f9cd4013..9f1f3a670 100644 --- a/src/fldeff_strength.c +++ b/src/fldeff_strength.c @@ -1,5 +1,4 @@ #include "global.h" -#include "constants/map_objects.h" #include "braille_puzzles.h" #include "field_effect.h" #include "party_menu.h" @@ -9,6 +8,8 @@ #include "script.h" #include "task.h" #include "text.h" +#include "constants/field_effects.h" +#include "constants/map_objects.h" static void sub_811AA18(void); static void sub_811AA38(void); @@ -17,7 +18,7 @@ static void sub_811AA9C(void); extern u8 gLastFieldPokeMenuOpened; extern u16 gSpecialVar_Result; extern void (*gFieldCallback)(void); -extern void (*gUnknown_03005CE4)(void); +extern void (*gPostMenuFieldCallback)(void); extern u8 S_UseStrength[]; @@ -30,7 +31,7 @@ void debug_sub_8130318(void) gSpecialVar_Result = 0; sub_811AA38(); } - else if (npc_before_player_of_type(MAP_OBJ_GFX_PUSHABLE_BOULDER) == TRUE) + else if (SetLastTalkedObjectInFrontOfPlayer(MAP_OBJ_GFX_PUSHABLE_BOULDER) == TRUE) { gLastFieldPokeMenuOpened = 0; gSpecialVar_Result = 0; @@ -48,16 +49,16 @@ bool8 SetUpFieldMove_Strength(void) if (ShouldDoBrailleStrengthEffect()) { gSpecialVar_Result = gLastFieldPokeMenuOpened; - gFieldCallback = FieldCallback_Teleport; - gUnknown_03005CE4 = sub_811AA38; + gFieldCallback = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = sub_811AA38; } else { - if (npc_before_player_of_type(87) != TRUE) + if (SetLastTalkedObjectInFrontOfPlayer(MAP_OBJ_GFX_PUSHABLE_BOULDER) != TRUE) return 0; gSpecialVar_Result = gLastFieldPokeMenuOpened; - gFieldCallback = FieldCallback_Teleport; - gUnknown_03005CE4 = sub_811AA18; + gFieldCallback = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = sub_811AA18; } return TRUE; diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c index b9dbf619d..c6e3211b8 100644 --- a/src/fldeff_sweetscent.c +++ b/src/fldeff_sweetscent.c @@ -9,26 +9,28 @@ #include "sprite.h" #include "task.h" #include "wild_encounter.h" +#include "constants/field_effects.h" +#include "constants/songs.h" -static void sub_812BFD4(void); -static void sub_812C01C(void); -static void sub_812C084(u8); -static void sub_812C118(u8); +static void FieldCallback_SweetScent(void); +static void StartSweetScentFieldEffect(void); +static void TrySweetScentEncounter(u8); +static void FailSweetScentEncounter(u8); extern u8 gLastFieldPokeMenuOpened; extern void (*gFieldCallback)(void); -extern void (*gUnknown_03005CE4)(void); +extern void (*gPostMenuFieldCallback)(void); extern u8 SweetScentNothingHereScript[]; bool8 SetUpFieldMove_SweetScent(void) { - gFieldCallback = FieldCallback_Teleport; - gUnknown_03005CE4 = sub_812BFD4; + gFieldCallback = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = FieldCallback_SweetScent; return TRUE; } -static void sub_812BFD4(void) +static void FieldCallback_SweetScent(void) { FieldEffectStart(FLDEFF_SWEET_SCENT); gFieldEffectArguments[0] = gLastFieldPokeMenuOpened; @@ -38,23 +40,23 @@ bool8 FldEff_SweetScent() { u8 taskId = oei_task_add(); - gTasks[taskId].data[8] = (u32)sub_812C01C >> 16; - gTasks[taskId].data[9] = (u32)sub_812C01C; + gTasks[taskId].data[8] = (u32)StartSweetScentFieldEffect >> 16; + gTasks[taskId].data[9] = (u32)StartSweetScentFieldEffect; return FALSE; } -static void sub_812C01C(void) +static void StartSweetScentFieldEffect(void) { u8 taskId; - PlaySE(0xEC); + PlaySE(SE_W230); BeginNormalPaletteFade(~(1 << (gSprites[GetPlayerAvatarObjectId()].oam.paletteNum + 16)), 4, 0, 8, 0x1F); - taskId = CreateTask(sub_812C084, 0); + taskId = CreateTask(TrySweetScentEncounter, 0); gTasks[taskId].data[0] = 0; FieldEffectActiveListRemove(FLDEFF_SWEET_SCENT); } -static void sub_812C084(u8 taskId) +static void TrySweetScentEncounter(u8 taskId) { if (!gPaletteFade.active) { @@ -67,7 +69,7 @@ static void sub_812C084(u8 taskId) } else { - gTasks[taskId].func = sub_812C118; + gTasks[taskId].func = FailSweetScentEncounter; BeginNormalPaletteFade(~(1 << (gSprites[GetPlayerAvatarObjectId()].oam.paletteNum + 16)), 4, 8, 0, 0x1F); } } @@ -78,7 +80,7 @@ static void sub_812C084(u8 taskId) } } -static void sub_812C118(u8 taskId) +static void FailSweetScentEncounter(u8 taskId) { if (!gPaletteFade.active) { diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c index af48fb414..9f72c6383 100644 --- a/src/fldeff_teleport.c +++ b/src/fldeff_teleport.c @@ -1,29 +1,33 @@ #include "global.h" -#include "fldeff_teleport.h" #include "field_effect.h" #include "field_player_avatar.h" #include "pokemon_menu.h" #include "overworld.h" #include "rom6.h" #include "task.h" +#include "constants/field_effects.h" extern void (*gFieldCallback)(void); extern u8 gLastFieldPokeMenuOpened; -extern void (*gUnknown_03005CE4)(void); +extern void (*gPostMenuFieldCallback)(void); + +static void FieldCallback_Teleport(void); +static void StartTeleportFieldEffect(void); + bool8 SetUpFieldMove_Teleport(void) { if (Overworld_MapTypeAllowsTeleportAndFly(gMapHeader.mapType) == TRUE) { - gFieldCallback = FieldCallback_Teleport; - gUnknown_03005CE4 = hm_teleport_run_dp02scr; + gFieldCallback = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = FieldCallback_Teleport; return TRUE; } return FALSE; } -void hm_teleport_run_dp02scr(void) +static void FieldCallback_Teleport(void) { Overworld_ResetStateAfterTeleport(); FieldEffectStart(FLDEFF_USE_TELEPORT); @@ -33,14 +37,14 @@ void hm_teleport_run_dp02scr(void) bool8 FldEff_UseTeleport(void) { u8 taskId = oei_task_add(); - gTasks[taskId].data[8] = (u32)sub_814A404 >> 16; - gTasks[taskId].data[9] = (u32)sub_814A404; - SetPlayerAvatarTransitionFlags(1); + gTasks[taskId].data[8] = (u32)StartTeleportFieldEffect >> 16; + gTasks[taskId].data[9] = (u32)StartTeleportFieldEffect; + SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); return 0; } -void sub_814A404(void) +static void StartTeleportFieldEffect(void) { FieldEffectActiveListRemove(FLDEFF_USE_TELEPORT); - sub_8087BA8(); + CreateTeleportFieldEffectTask(); } diff --git a/src/pokemon_menu.c b/src/pokemon_menu.c index 60757b7d4..46909435a 100644 --- a/src/pokemon_menu.c +++ b/src/pokemon_menu.c @@ -6,13 +6,11 @@ #include "palette.h" #include "menu.h" #include "mail_data.h" -#include "constants/songs.h" #include "sound.h" #include "main.h" #include "overworld.h" #include "menu_helpers.h" #include "pokemon_summary_screen.h" -#include "constants/moves.h" #include "data2.h" #include "strings.h" #include "item_use.h" @@ -32,6 +30,9 @@ #include "player_pc.h" #include "ewram.h" #include "script.h" +#include "constants/field_effects.h" +#include "constants/moves.h" +#include "constants/songs.h" /* Pokemon menu: @@ -84,7 +85,7 @@ static void sub_808A848(u8 taskID); static void sub_808AAF0(u8 taskID); static void sub_808ABF4(u8 taskID); static void sub_808AB34(u8 taskID); -static void sub_808ABA8(u8 taskID); +static void FieldCallback_AfterFadeInFromMenu(u8 taskID); static void sub_808B224(u8 taskID); static void sub_808B2EC(u8 taskID); static void sub_808B2B4(u8 taskID); @@ -118,7 +119,7 @@ EWRAM_DATA static u8 sPokeMenuOptionsOrder[8] = {0}; // 4 possible field moves a // iwram common u8 gLastFieldPokeMenuOpened; -void (*gUnknown_03005CE4)(void); +void (*gPostMenuFieldCallback)(void); // const data @@ -780,18 +781,18 @@ static void sub_808AB34(u8 taskID) #undef tFieldMoveId -void FieldCallback_Teleport(void) +void FieldCallback_PrepareFadeInFromMenu(void) { pal_fill_black(); - CreateTask(sub_808ABA8, 8); + CreateTask(FieldCallback_AfterFadeInFromMenu, 8); } -static void sub_808ABA8(u8 taskID) +static void FieldCallback_AfterFadeInFromMenu(u8 taskID) { if (IsWeatherNotFadingIn() == TRUE) { gFieldEffectArguments[0] = GetMonData(&gPlayerParty[gLastFieldPokeMenuOpened], MON_DATA_SPECIES); - gUnknown_03005CE4(); + gPostMenuFieldCallback(); DestroyTask(taskID); } } @@ -815,8 +816,8 @@ static bool8 SetUpFieldMove_Surf(void) { if (PartyHasMonWithSurf() == TRUE && IsPlayerFacingSurfableFishableWater() == TRUE) { - gFieldCallback = FieldCallback_Teleport; - gUnknown_03005CE4 = sub_808AC2C; + gFieldCallback = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = sub_808AC2C; return TRUE; } else @@ -833,14 +834,14 @@ static bool8 SetUpFieldMove_Fly(void) { if (ShouldDoBrailleFlyEffect()) { - gFieldCallback = FieldCallback_Teleport; - gUnknown_03005CE4 = DoBrailleFlyEffect; + gFieldCallback = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = DoBrailleFlyEffect; return TRUE; } if (Overworld_MapTypeAllowsTeleportAndFly(gMapHeader.mapType) == TRUE) { - gFieldCallback = FieldCallback_Teleport; - gUnknown_03005CE4 = sub_808AC8C; + gFieldCallback = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = sub_808AC8C; return TRUE; } return FALSE; @@ -885,8 +886,8 @@ static bool8 SetUpFieldMove_Dive(void) gFieldEffectArguments[1] = sub_8068F18(); if (gFieldEffectArguments[1]) { - gFieldCallback = FieldCallback_Teleport; - gUnknown_03005CE4 = sub_808ADAC; + gFieldCallback = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = sub_808ADAC; return TRUE; } else @@ -907,8 +908,8 @@ static bool8 SetUpFieldMove_Waterfall(void) if (MetatileBehavior_IsWaterfall(MapGridGetMetatileBehaviorAt(x, y)) == TRUE && IsPlayerSurfingNorth() == TRUE) { - gFieldCallback = FieldCallback_Teleport; - gUnknown_03005CE4 = sub_808AE08; + gFieldCallback = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = sub_808AE08; return TRUE; } else diff --git a/src/rom6.c b/src/rom6.c index ffd01fdb9..24c2de6d2 100644 --- a/src/rom6.c +++ b/src/rom6.c @@ -13,14 +13,15 @@ #include "sound.h" #include "sprite.h" #include "task.h" +#include "constants/field_effects.h" extern u16 gSpecialVar_LastTalked; extern void (*gFieldCallback)(void); extern u8 gLastFieldPokeMenuOpened; -extern void (*gUnknown_03005CE4)(void); +extern void (*gPostMenuFieldCallback)(void); extern u8 S_UseRockSmash[]; -EWRAM_DATA struct MapPosition gUnknown_0203923C = {0}; +EWRAM_DATA struct MapPosition gPlayerFacingPosition = {0}; static void task08_080C9820(u8); static void sub_810B3DC(u8); @@ -31,14 +32,14 @@ static void sub_810B58C(void); static void sub_810B5D8(void); static void sub_810B634(void); -bool8 npc_before_player_of_type(u8 a) +bool8 SetLastTalkedObjectInFrontOfPlayer(u8 graphicsId) { u8 mapObjId; - GetXYCoordsOneStepInFrontOfPlayer(&gUnknown_0203923C.x, &gUnknown_0203923C.y); - gUnknown_0203923C.height = PlayerGetZCoord(); - mapObjId = GetFieldObjectIdByXYZ(gUnknown_0203923C.x, gUnknown_0203923C.y, gUnknown_0203923C.height); - if (gMapObjects[mapObjId].graphicsId != a) + GetXYCoordsOneStepInFrontOfPlayer(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); + gPlayerFacingPosition.height = PlayerGetZCoord(); + mapObjId = GetFieldObjectIdByXYZ(gPlayerFacingPosition.x, gPlayerFacingPosition.y, gPlayerFacingPosition.height); + if (gMapObjects[mapObjId].graphicsId != graphicsId) { return FALSE; } @@ -51,7 +52,7 @@ bool8 npc_before_player_of_type(u8 a) u8 oei_task_add(void) { - GetXYCoordsOneStepInFrontOfPlayer(&gUnknown_0203923C.x, &gUnknown_0203923C.y); + GetXYCoordsOneStepInFrontOfPlayer(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); return CreateTask(task08_080C9820, 8); } @@ -120,7 +121,7 @@ static void sub_810B4CC(u8 taskId) #if DEBUG void debug_sub_8120968(void) { - if (npc_before_player_of_type(MAP_OBJ_GFX_BREAKABLE_ROCK) == TRUE) + if (SetLastTalkedObjectInFrontOfPlayer(MAP_OBJ_GFX_BREAKABLE_ROCK) == TRUE) { gLastFieldPokeMenuOpened = 0; sub_810B53C(); @@ -134,10 +135,10 @@ void debug_sub_8120968(void) bool8 SetUpFieldMove_RockSmash(void) { - if (npc_before_player_of_type(0x56) == TRUE) + if (SetLastTalkedObjectInFrontOfPlayer(MAP_OBJ_GFX_BREAKABLE_ROCK) == TRUE) { - gFieldCallback = FieldCallback_Teleport; - gUnknown_03005CE4 = sub_810B53C; + gFieldCallback = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = sub_810B53C; return TRUE; } else @@ -173,8 +174,8 @@ int SetUpFieldMove_Dig(void) { if (CanUseEscapeRopeOnCurrMap() == TRUE) { - gFieldCallback = FieldCallback_Teleport; - gUnknown_03005CE4 = sub_810B5D8; + gFieldCallback = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = sub_810B5D8; return TRUE; } else @@ -197,7 +198,7 @@ int FldEff_UseDig(void) gTasks[taskId].data[8] = (u32)sub_810B634 >> 16; gTasks[taskId].data[9] = (u32)sub_810B634; if (!ShouldDoBrailleDigEffect()) - SetPlayerAvatarTransitionFlags(1); + SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); return 0; } diff --git a/src/secret_base.c b/src/secret_base.c index 3c4028dca..cf66db03b 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -52,7 +52,7 @@ static void Task_SecretBasePC_Registry(u8 taskId); extern u8 gUnknown_0815F399[]; extern u8 gUnknown_0815F49A[]; -EWRAM_DATA u8 gUnknown_020387DC = 0; +EWRAM_DATA u8 gCurrentSecretBaseId = 0; const struct { @@ -172,17 +172,17 @@ void ResetSecretBases(void) void sub_80BB5D0(void) { - gUnknown_020387DC = gSpecialVar_0x8004; + gCurrentSecretBaseId = gSpecialVar_0x8004; } -void sub_80BB5E4(void) +void SetCurrentSecretBaseVar(void) { u16 i; gSpecialVar_Result = 0; for (i = 0; i < MAX_SECRET_BASES; i++) { - if (gUnknown_020387DC == gSaveBlock1.secretBases[i].secretBaseId) + if (gCurrentSecretBaseId == gSaveBlock1.secretBases[i].secretBaseId) { gSpecialVar_Result = 1; VarSet(VAR_CURRENT_SECRET_BASE, i); @@ -191,7 +191,7 @@ void sub_80BB5E4(void) } } -void sub_80BB63C(void) +void CheckPlayerHasSecretBase(void) { if (gSaveBlock1.secretBases[0].secretBaseId) gSpecialVar_Result = 1; @@ -255,7 +255,7 @@ void sub_80BB764(s16 *arg1, s16 *arg2, u16 arg3) } } -void sub_80BB800(void) +void SetOpenedSecretBaseMetatile(void) { s16 x, y; s16 tile_id; @@ -300,7 +300,7 @@ void sub_80BB8CC(void) u8 nameLength; u16 idx; - gSaveBlock1.secretBases[0].secretBaseId = gUnknown_020387DC; + gSaveBlock1.secretBases[0].secretBaseId = gCurrentSecretBaseId; for (idx=0; idx<4; idx++) gSaveBlock1.secretBases[0].trainerId[idx] = gSaveBlock2.playerTrainerId[idx]; VarSet(VAR_CURRENT_SECRET_BASE, 0); @@ -342,7 +342,7 @@ void sub_80BB970(struct MapEvents *events) void sub_80BBA14(void) { - s8 idx = 4 * (gUnknown_020387DC / 10); + s8 idx = 4 * (gCurrentSecretBaseId / 10); warp1_set_2(MAP_GROUP(SECRET_BASE_RED_CAVE1), gUnknown_083D1374[idx], gUnknown_083D1374[idx + 1]); } @@ -414,7 +414,7 @@ void sub_80BBBEC(u8 taskid) if (!gPaletteFade.active) { - idx = 4 * (gUnknown_020387DC / 10); + idx = 4 * (gCurrentSecretBaseId / 10); Overworld_SetWarpDestination(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, -1, gUnknown_083D1374[idx + 2], gUnknown_083D1374[idx + 3]); warp_in(); gFieldCallback = sub_80BBB90; @@ -533,16 +533,16 @@ void sub_80BBFA4(void) VarSet(VAR_OBJ_GFX_ID_F, gUnknown_083D13EC[sub_80BCCA4(curBase)]); } -void sub_80BBFD8(struct MapPosition *position, struct MapEvents *events) +void SetCurrentSecretBaseFromPosition(struct MapPosition *position, struct MapEvents *events) { - s16 bgevtidx; + s16 i; - for (bgevtidx = 0; bgevtidx < events->bgEventCount; bgevtidx++) + for (i = 0; i < events->bgEventCount; i++) { - if (events->bgEvents[bgevtidx].kind == 8 && position->x == events->bgEvents[bgevtidx].x + 7 - && position->y == events->bgEvents[bgevtidx].y + 7) + if (events->bgEvents[i].kind == 8 && position->x == events->bgEvents[i].x + 7 + && position->y == events->bgEvents[i].y + 7) { - gUnknown_020387DC = events->bgEvents[bgevtidx].bgUnion.secretBaseId; + gCurrentSecretBaseId = events->bgEvents[i].bgUnion.secretBaseId; break; } } @@ -550,15 +550,15 @@ void sub_80BBFD8(struct MapPosition *position, struct MapEvents *events) void sub_80BC038(struct MapPosition *position, struct MapEvents *events) { - sub_80BBFD8(position, events); - sub_80BB5E4(); + SetCurrentSecretBaseFromPosition(position, events); + SetCurrentSecretBaseVar(); ScriptContext1_SetupScript(gUnknown_081A2E14); } bool8 sub_80BC050(void) { sub_80BB5D0(); - sub_80BB5E4(); + SetCurrentSecretBaseVar(); if (gSpecialVar_Result == 1) return FALSE; return TRUE; @@ -595,7 +595,7 @@ void sub_80BC0F8(void) void sub_80BC114(void) { - if (gSaveBlock1.secretBases[0].secretBaseId != gUnknown_020387DC) + if (gSaveBlock1.secretBases[0].secretBaseId != gCurrentSecretBaseId) gSpecialVar_Result = 1; else gSpecialVar_Result = 0; @@ -632,7 +632,7 @@ u8 *sub_80BC190(u8 *dest, u8 arg1) u8 *GetSecretBaseMapName(u8 *dest) { - gUnknown_020387DC = gSaveBlock1.secretBases[VarGet(VAR_CURRENT_SECRET_BASE)].secretBaseId; + gCurrentSecretBaseId = gSaveBlock1.secretBases[VarGet(VAR_CURRENT_SECRET_BASE)].secretBaseId; return sub_80BC190(dest, VarGet(VAR_CURRENT_SECRET_BASE)); } @@ -922,7 +922,7 @@ u8 sub_80BC538(void) void sub_80BC56C(void) { - if (sub_80BC268(sub_80BC14C(gUnknown_020387DC)) == TRUE) + if (sub_80BC268(sub_80BC14C(gCurrentSecretBaseId)) == TRUE) gSpecialVar_Result = 1; else if (sub_80BC538() > 9) gSpecialVar_Result = 2; @@ -932,7 +932,7 @@ void sub_80BC56C(void) void sub_80BC5BC(void) { - gSaveBlock1.secretBases[sub_80BC14C(gUnknown_020387DC)].sbr_field_1_6 ^= 1; + gSaveBlock1.secretBases[sub_80BC14C(gCurrentSecretBaseId)].sbr_field_1_6 ^= 1; FlagSet(FLAG_DECORATION_16); } diff --git a/src/trainer_see.c b/src/trainer_see.c index 2913a0a5a..f79d6b9e4 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -8,6 +8,7 @@ #include "sprite.h" #include "task.h" #include "util.h" +#include "constants/field_effects.h" static bool8 CheckTrainer(u8); static void sub_8084894(struct Sprite *sprite, u16 a2, u8 a3); diff --git a/sym_common.txt b/sym_common.txt index 42e4a8114..a743006c4 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -241,7 +241,7 @@ SYMBOL(gScanlineEffectRegBuffers, 3840) // pokemon_menu.c SYMBOL(gLastFieldPokeMenuOpened, 4) -SYMBOL(gUnknown_03005CE4, 4) +SYMBOL(gPostMenuFieldCallback, 4) // pokedex.c SYMBOL(gUnknown_03005CE8, 4) |