summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data-de/event_scripts.s49
-rw-r--r--data-de/field_move_scripts.inc20
-rw-r--r--data/event_scripts.s49
-rw-r--r--data/field_move_scripts.inc20
-rw-r--r--data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc28
-rw-r--r--data/scripts/maps/CaveOfOrigin_B4F.inc4
-rw-r--r--data/scripts/maps/EverGrandeCity_HallOfFame.inc4
-rw-r--r--data/scripts/maps/LilycoveCity.inc4
-rw-r--r--data/scripts/maps/MossdeepCity_House4.inc2
-rw-r--r--data/scripts/maps/Route110_TrickHouseEntrance.inc4
-rw-r--r--data/scripts/maps/Route120.inc4
-rw-r--r--data/scripts/maps/Route128.inc8
-rw-r--r--data/scripts/maps/SeafloorCavern_Room9.inc4
-rw-r--r--data/scripts/maps/SootopolisCity.inc4
-rw-r--r--data/specials.inc2
-rwxr-xr-xinclude/constants/field_effects.h69
-rw-r--r--include/field_effect.h75
-rw-r--r--include/fldeff_cut.h14
-rw-r--r--include/fldeff_secretpower.h6
-rw-r--r--include/fldeff_teleport.h7
-rw-r--r--include/pokemon_menu.h4
-rw-r--r--include/rom6.h4
-rw-r--r--include/secret_base.h8
-rw-r--r--src/battle/battle_transition.c3
-rw-r--r--src/braille_puzzles.c9
-rw-r--r--src/debug/start_menu_debug.c9
-rw-r--r--src/event_object_movement.c3
-rw-r--r--src/field_effect.c53
-rw-r--r--src/field_effect_helpers.c3
-rw-r--r--src/field_player_avatar.c3
-rw-r--r--src/fldeff_cut.c143
-rw-r--r--src/fldeff_decoration.c3
-rw-r--r--src/fldeff_flash.c6
-rw-r--r--src/fldeff_secret_base_pc.c3
-rw-r--r--src/fldeff_secretpower.c212
-rw-r--r--src/fldeff_strength.c17
-rw-r--r--src/fldeff_sweetscent.c34
-rw-r--r--src/fldeff_teleport.c24
-rw-r--r--src/pokemon_menu.c37
-rw-r--r--src/rom6.c31
-rw-r--r--src/secret_base.c44
-rw-r--r--src/trainer_see.c1
-rw-r--r--sym_common.txt2
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)