Merge pull request #863 from GriffinRichards/doc-partymenu
Document party menu
This commit is contained in:
@@ -1 +1 @@
|
|||||||
gUnknown_03006328
|
gItemUseCB
|
||||||
|
|||||||
@@ -175,8 +175,8 @@ gStdScripts_End:: @ 81DC2CC
|
|||||||
.include "data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc"
|
.include "data/maps/FallarborTown_BattleTentBattleRoom/scripts.inc"
|
||||||
.include "data/maps/FallarborTown_PokemonCenter_1F/scripts.inc"
|
.include "data/maps/FallarborTown_PokemonCenter_1F/scripts.inc"
|
||||||
.include "data/maps/FallarborTown_PokemonCenter_2F/scripts.inc"
|
.include "data/maps/FallarborTown_PokemonCenter_2F/scripts.inc"
|
||||||
.include "data/maps/FallarborTown_House1/scripts.inc"
|
.include "data/maps/FallarborTown_CozmosHouse/scripts.inc"
|
||||||
.include "data/maps/FallarborTown_House2/scripts.inc"
|
.include "data/maps/FallarborTown_MoveRelearnersHouse/scripts.inc"
|
||||||
.include "data/maps/VerdanturfTown_BattleTentLobby/scripts.inc"
|
.include "data/maps/VerdanturfTown_BattleTentLobby/scripts.inc"
|
||||||
.include "data/maps/VerdanturfTown_BattleTentCorridor/scripts.inc"
|
.include "data/maps/VerdanturfTown_BattleTentCorridor/scripts.inc"
|
||||||
.include "data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc"
|
.include "data/maps/VerdanturfTown_BattleTentBattleRoom/scripts.inc"
|
||||||
|
|||||||
@@ -61,10 +61,10 @@ BattleFrontier_BattlePyramidLobby_EventScript_2507D2:: @ 82507D2
|
|||||||
msgbox BattleFrontier_BattlePyramidLobby_Text_2525F4, MSGBOX_DEFAULT
|
msgbox BattleFrontier_BattlePyramidLobby_Text_2525F4, MSGBOX_DEFAULT
|
||||||
|
|
||||||
BattleFrontier_BattlePyramidLobby_EventScript_2507DA:: @ 82507DA
|
BattleFrontier_BattlePyramidLobby_EventScript_2507DA:: @ 82507DA
|
||||||
special sub_81B95E0
|
special DoBattlePyramidMonsHaveHeldItem
|
||||||
compare VAR_RESULT, 1
|
compare VAR_RESULT, TRUE
|
||||||
call_if_eq BattleFrontier_BattlePyramidLobby_EventScript_250DDB
|
call_if_eq BattleFrontier_BattlePyramidLobby_EventScript_250DDB
|
||||||
clearflag FLAG_SPECIAL_FLAG_0x4004
|
clearflag FLAG_STORING_ITEMS_IN_PYRAMID_BAG
|
||||||
setvar VAR_0x8004, 8
|
setvar VAR_0x8004, 8
|
||||||
special CallFrontierUtilFunc
|
special CallFrontierUtilFunc
|
||||||
special LoadPlayerParty
|
special LoadPlayerParty
|
||||||
@@ -494,8 +494,8 @@ BattleFrontier_BattlePyramidLobby_Movement_250DD8: @ 8250DD8
|
|||||||
|
|
||||||
BattleFrontier_BattlePyramidLobby_EventScript_250DDB:: @ 8250DDB
|
BattleFrontier_BattlePyramidLobby_EventScript_250DDB:: @ 8250DDB
|
||||||
msgbox BattleFrontier_BattlePyramidLobby_Text_2517FC, MSGBOX_DEFAULT
|
msgbox BattleFrontier_BattlePyramidLobby_Text_2517FC, MSGBOX_DEFAULT
|
||||||
setflag FLAG_SPECIAL_FLAG_0x4004
|
setflag FLAG_STORING_ITEMS_IN_PYRAMID_BAG
|
||||||
special sub_81C6A94
|
special TryStoreHeldItemsInPyramidBag
|
||||||
compare VAR_RESULT, 0
|
compare VAR_RESULT, 0
|
||||||
goto_if_eq BattleFrontier_BattlePyramidLobby_EventScript_250E00
|
goto_if_eq BattleFrontier_BattlePyramidLobby_EventScript_250E00
|
||||||
message BattleFrontier_BattlePyramidLobby_Text_2518C6
|
message BattleFrontier_BattlePyramidLobby_Text_2518C6
|
||||||
@@ -525,7 +525,7 @@ BattleFrontier_BattlePyramidLobby_EventScript_250E40:: @ 8250E40
|
|||||||
end
|
end
|
||||||
|
|
||||||
BattleFrontier_BattlePyramidLobby_EventScript_250E50:: @ 8250E50
|
BattleFrontier_BattlePyramidLobby_EventScript_250E50:: @ 8250E50
|
||||||
special sub_81B9620
|
special BattlePyramidChooseMonHeldItems
|
||||||
waitstate
|
waitstate
|
||||||
message BattleFrontier_BattlePyramidLobby_Text_25197E
|
message BattleFrontier_BattlePyramidLobby_Text_25197E
|
||||||
waitmessage
|
waitmessage
|
||||||
@@ -533,8 +533,8 @@ BattleFrontier_BattlePyramidLobby_EventScript_250E50:: @ 8250E50
|
|||||||
end
|
end
|
||||||
|
|
||||||
BattleFrontier_BattlePyramidLobby_EventScript_250E60:: @ 8250E60
|
BattleFrontier_BattlePyramidLobby_EventScript_250E60:: @ 8250E60
|
||||||
special sub_81B95E0
|
special DoBattlePyramidMonsHaveHeldItem
|
||||||
compare VAR_RESULT, 1
|
compare VAR_RESULT, TRUE
|
||||||
goto_if_eq BattleFrontier_BattlePyramidLobby_EventScript_250E6F
|
goto_if_eq BattleFrontier_BattlePyramidLobby_EventScript_250E6F
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ BattleFrontier_Lounge1_EventScript_25E775:: @ 825E775
|
|||||||
end
|
end
|
||||||
|
|
||||||
BattleFrontier_Lounge1_EventScript_25E792:: @ 825E792
|
BattleFrontier_Lounge1_EventScript_25E792:: @ 825E792
|
||||||
special sub_81B94B0
|
special ChoosePartyMon
|
||||||
waitstate
|
waitstate
|
||||||
compare VAR_0x8004, 255
|
compare VAR_0x8004, 255
|
||||||
goto_if_ne BattleFrontier_Lounge1_EventScript_25E7BF
|
goto_if_ne BattleFrontier_Lounge1_EventScript_25E7BF
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ BattleFrontier_Lounge5_EventScript_NatureGirl:: @ 82645C6
|
|||||||
msgbox BattleFrontier_Lounge5_Text_NatureGirlGreeting, MSGBOX_YESNO
|
msgbox BattleFrontier_Lounge5_Text_NatureGirlGreeting, MSGBOX_YESNO
|
||||||
compare VAR_RESULT, 0
|
compare VAR_RESULT, 0
|
||||||
goto_if_eq BattleFrontier_Lounge5_EventScript_NatureGirlNoneShown
|
goto_if_eq BattleFrontier_Lounge5_EventScript_NatureGirlNoneShown
|
||||||
special sub_81B94B0
|
special ChoosePartyMon
|
||||||
waitstate
|
waitstate
|
||||||
lock
|
lock
|
||||||
faceplayer
|
faceplayer
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ BattleFrontier_Lounge6_EventScript_264FED:: @ 8264FED
|
|||||||
msgbox BattleFrontier_Lounge6_Text_26508D, MSGBOX_YESNO
|
msgbox BattleFrontier_Lounge6_Text_26508D, MSGBOX_YESNO
|
||||||
compare VAR_RESULT, 0
|
compare VAR_RESULT, 0
|
||||||
goto_if_eq BattleFrontier_Lounge6_EventScript_26506B
|
goto_if_eq BattleFrontier_Lounge6_EventScript_26506B
|
||||||
special sub_81B94B0
|
special ChoosePartyMon
|
||||||
waitstate
|
waitstate
|
||||||
copyvar VAR_0x800A, VAR_0x8004
|
copyvar VAR_0x800A, VAR_0x8004
|
||||||
compare VAR_0x8004, 255
|
compare VAR_0x8004, 255
|
||||||
|
|||||||
@@ -265,7 +265,7 @@ BattleFrontier_Lounge7_EventScript_265696:: @ 8265696
|
|||||||
fadescreen 1
|
fadescreen 1
|
||||||
special CloseBattlePointsWindow
|
special CloseBattlePointsWindow
|
||||||
special CloseBattleFrontierTutorWindow
|
special CloseBattleFrontierTutorWindow
|
||||||
special OpenPartyMenuForMoveTutor
|
special ChooseMonForMoveTutor
|
||||||
waitstate
|
waitstate
|
||||||
compare VAR_RESULT, 0
|
compare VAR_RESULT, 0
|
||||||
goto_if_eq BattleFrontier_Lounge7_EventScript_265645
|
goto_if_eq BattleFrontier_Lounge7_EventScript_265645
|
||||||
|
|||||||
@@ -104,14 +104,14 @@
|
|||||||
"x": 6,
|
"x": 6,
|
||||||
"y": 17,
|
"y": 17,
|
||||||
"elevation": 0,
|
"elevation": 0,
|
||||||
"dest_map": "MAP_FALLARBOR_TOWN_HOUSE1",
|
"dest_map": "MAP_FALLARBOR_TOWN_COZMOS_HOUSE",
|
||||||
"dest_warp_id": 0
|
"dest_warp_id": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"x": 1,
|
"x": 1,
|
||||||
"y": 6,
|
"y": 6,
|
||||||
"elevation": 0,
|
"elevation": 0,
|
||||||
"dest_map": "MAP_FALLARBOR_TOWN_HOUSE2",
|
"dest_map": "MAP_FALLARBOR_TOWN_MOVE_RELEARNERS_HOUSE",
|
||||||
"dest_warp_id": 0
|
"dest_warp_id": 0
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
+5
-5
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"id": "MAP_FALLARBOR_TOWN_HOUSE1",
|
"id": "MAP_FALLARBOR_TOWN_COZMOS_HOUSE",
|
||||||
"name": "FallarborTown_House1",
|
"name": "FallarborTown_CozmosHouse",
|
||||||
"layout": "LAYOUT_HOUSE1",
|
"layout": "LAYOUT_HOUSE1",
|
||||||
"music": "MUS_TONEKUSA",
|
"music": "MUS_TONEKUSA",
|
||||||
"region_map_section": "MAPSEC_FALLARBOR_TOWN",
|
"region_map_section": "MAPSEC_FALLARBOR_TOWN",
|
||||||
@@ -24,8 +24,8 @@
|
|||||||
"movement_range_y": 1,
|
"movement_range_y": 1,
|
||||||
"trainer_type": "0",
|
"trainer_type": "0",
|
||||||
"trainer_sight_or_berry_tree_id": "0",
|
"trainer_sight_or_berry_tree_id": "0",
|
||||||
"script": "FallarborTown_House1_EventScript_200F13",
|
"script": "FallarborTown_CozmosHouse_EventScript_200F13",
|
||||||
"flag": "FLAG_HIDE_FALLARBOR_HOUSE_1_PROF_COZMO"
|
"flag": "FLAG_HIDE_FALLARBOR_HOUSE_PROF_COZMO"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"graphics_id": "EVENT_OBJ_GFX_WOMAN_2",
|
"graphics_id": "EVENT_OBJ_GFX_WOMAN_2",
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
"movement_range_y": 0,
|
"movement_range_y": 0,
|
||||||
"trainer_type": "0",
|
"trainer_type": "0",
|
||||||
"trainer_sight_or_berry_tree_id": "0",
|
"trainer_sight_or_berry_tree_id": "0",
|
||||||
"script": "FallarborTown_House1_EventScript_200FBC",
|
"script": "FallarborTown_CozmosHouse_EventScript_200FBC",
|
||||||
"flag": "0"
|
"flag": "0"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -0,0 +1,121 @@
|
|||||||
|
FallarborTown_CozmosHouse_MapScripts:: @ 8200F12
|
||||||
|
.byte 0
|
||||||
|
|
||||||
|
FallarborTown_CozmosHouse_EventScript_200F13:: @ 8200F13
|
||||||
|
lock
|
||||||
|
faceplayer
|
||||||
|
goto_if_set FLAG_RECEIVED_TM27, FallarborTown_CozmosHouse_EventScript_200FB2
|
||||||
|
checkitem ITEM_METEORITE, 1
|
||||||
|
compare VAR_RESULT, 1
|
||||||
|
goto_if_eq FallarborTown_CozmosHouse_EventScript_200F38
|
||||||
|
msgbox FallarborTown_CozmosHouse_Text_200FEE, MSGBOX_DEFAULT
|
||||||
|
release
|
||||||
|
end
|
||||||
|
|
||||||
|
FallarborTown_CozmosHouse_EventScript_200F38:: @ 8200F38
|
||||||
|
call_if_unset FLAG_TEMP_2, FallarborTown_CozmosHouse_EventScript_200F8B
|
||||||
|
call_if_set FLAG_TEMP_2, FallarborTown_CozmosHouse_EventScript_200F9C
|
||||||
|
compare VAR_RESULT, 0
|
||||||
|
goto_if_eq FallarborTown_CozmosHouse_EventScript_200FA5
|
||||||
|
msgbox FallarborTown_CozmosHouse_Text_201159, MSGBOX_DEFAULT
|
||||||
|
giveitem_std ITEM_TM27
|
||||||
|
compare VAR_RESULT, 0
|
||||||
|
goto_if_eq Common_EventScript_ShowBagIsFull
|
||||||
|
setvar VAR_0x8004, ITEM_METEORITE
|
||||||
|
call Common_EventScript_PlayerHandedOverTheItem
|
||||||
|
setflag FLAG_RECEIVED_TM27
|
||||||
|
msgbox FallarborTown_CozmosHouse_Text_2011A5, MSGBOX_DEFAULT
|
||||||
|
release
|
||||||
|
end
|
||||||
|
|
||||||
|
FallarborTown_CozmosHouse_EventScript_200F8B:: @ 8200F8B
|
||||||
|
msgbox FallarborTown_CozmosHouse_Text_200FEE, MSGBOX_DEFAULT
|
||||||
|
msgbox FallarborTown_CozmosHouse_Text_2010A2, MSGBOX_YESNO
|
||||||
|
return
|
||||||
|
|
||||||
|
FallarborTown_CozmosHouse_EventScript_200F9C:: @ 8200F9C
|
||||||
|
msgbox FallarborTown_CozmosHouse_Text_201249, MSGBOX_YESNO
|
||||||
|
return
|
||||||
|
|
||||||
|
FallarborTown_CozmosHouse_EventScript_200FA5:: @ 8200FA5
|
||||||
|
setflag FLAG_TEMP_2
|
||||||
|
msgbox FallarborTown_CozmosHouse_Text_201212, MSGBOX_DEFAULT
|
||||||
|
release
|
||||||
|
end
|
||||||
|
|
||||||
|
FallarborTown_CozmosHouse_EventScript_200FB2:: @ 8200FB2
|
||||||
|
msgbox FallarborTown_CozmosHouse_Text_2011A5, MSGBOX_DEFAULT
|
||||||
|
release
|
||||||
|
end
|
||||||
|
|
||||||
|
FallarborTown_CozmosHouse_EventScript_200FBC:: @ 8200FBC
|
||||||
|
lock
|
||||||
|
faceplayer
|
||||||
|
goto_if_set FLAG_RECEIVED_TM27, FallarborTown_CozmosHouse_EventScript_200FE4
|
||||||
|
goto_if_set FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY, FallarborTown_CozmosHouse_EventScript_200FDA
|
||||||
|
msgbox FallarborTown_CozmosHouse_Text_2012BC, MSGBOX_DEFAULT
|
||||||
|
release
|
||||||
|
end
|
||||||
|
|
||||||
|
FallarborTown_CozmosHouse_EventScript_200FDA:: @ 8200FDA
|
||||||
|
msgbox FallarborTown_CozmosHouse_Text_201310, MSGBOX_DEFAULT
|
||||||
|
release
|
||||||
|
end
|
||||||
|
|
||||||
|
FallarborTown_CozmosHouse_EventScript_200FE4:: @ 8200FE4
|
||||||
|
msgbox FallarborTown_CozmosHouse_Text_20134B, MSGBOX_DEFAULT
|
||||||
|
release
|
||||||
|
end
|
||||||
|
|
||||||
|
FallarborTown_CozmosHouse_Text_200FEE: @ 8200FEE
|
||||||
|
.string "PROF. COZMO: Oh…\n"
|
||||||
|
.string "I never should have let myself be\l"
|
||||||
|
.string "conned into telling TEAM MAGMA where\l"
|
||||||
|
.string "you can find METEORITES…\p"
|
||||||
|
.string "That METEORITE from METEOR FALLS…\n"
|
||||||
|
.string "It's never going to be mine now…$"
|
||||||
|
|
||||||
|
FallarborTown_CozmosHouse_Text_2010A2: @ 82010A2
|
||||||
|
.string "Oh!\n"
|
||||||
|
.string "Hah?\p"
|
||||||
|
.string "That item…\p"
|
||||||
|
.string "Could it be?\p"
|
||||||
|
.string "Is it the METEORITE that TEAM MAGMA\n"
|
||||||
|
.string "took from METEOR FALLS?\p"
|
||||||
|
.string "Please, may I have it?\p"
|
||||||
|
.string "I'm not asking for it for free.\n"
|
||||||
|
.string "How about in exchange for this TM?$"
|
||||||
|
|
||||||
|
FallarborTown_CozmosHouse_Text_201159: @ 8201159
|
||||||
|
.string "PROF. COZMO: This TM, it represents\n"
|
||||||
|
.string "my feeling of gratitude.\l"
|
||||||
|
.string "Please use it!$"
|
||||||
|
|
||||||
|
FallarborTown_CozmosHouse_Text_2011A5: @ 82011A5
|
||||||
|
.string "PROF. COZMO: Oh, I can't believe it.\n"
|
||||||
|
.string "This is really, really great!\p"
|
||||||
|
.string "This is really going to help my research!$"
|
||||||
|
|
||||||
|
FallarborTown_CozmosHouse_Text_201212: @ 8201212
|
||||||
|
.string "PROF. COZMO: Oh, but…\n"
|
||||||
|
.string "I'm crushed with disappointment…$"
|
||||||
|
|
||||||
|
FallarborTown_CozmosHouse_Text_201249: @ 8201249
|
||||||
|
.string "PROF. COZMO: Please, may I have that\n"
|
||||||
|
.string "METEORITE?\p"
|
||||||
|
.string "I'm not asking for it for free.\n"
|
||||||
|
.string "How about in exchange for this TM?$"
|
||||||
|
|
||||||
|
FallarborTown_CozmosHouse_Text_2012BC: @ 82012BC
|
||||||
|
.string "PROF. COZMO went off to METEOR FALLS\n"
|
||||||
|
.string "on ROUTE 114 with some people from\l"
|
||||||
|
.string "TEAM MAGMA.$"
|
||||||
|
|
||||||
|
FallarborTown_CozmosHouse_Text_201310: @ 8201310
|
||||||
|
.string "Poor PROF. COZMO…\n"
|
||||||
|
.string "He's so depressed… I feel sorry for him.$"
|
||||||
|
|
||||||
|
FallarborTown_CozmosHouse_Text_20134B: @ 820134B
|
||||||
|
.string "Look at PROF. COZMO…\n"
|
||||||
|
.string "He's so happy! I think it's cute.$"
|
||||||
|
|
||||||
@@ -1,121 +0,0 @@
|
|||||||
FallarborTown_House1_MapScripts:: @ 8200F12
|
|
||||||
.byte 0
|
|
||||||
|
|
||||||
FallarborTown_House1_EventScript_200F13:: @ 8200F13
|
|
||||||
lock
|
|
||||||
faceplayer
|
|
||||||
goto_if_set FLAG_RECEIVED_TM27, FallarborTown_House1_EventScript_200FB2
|
|
||||||
checkitem ITEM_METEORITE, 1
|
|
||||||
compare VAR_RESULT, 1
|
|
||||||
goto_if_eq FallarborTown_House1_EventScript_200F38
|
|
||||||
msgbox FallarborTown_House1_Text_200FEE, MSGBOX_DEFAULT
|
|
||||||
release
|
|
||||||
end
|
|
||||||
|
|
||||||
FallarborTown_House1_EventScript_200F38:: @ 8200F38
|
|
||||||
call_if_unset FLAG_TEMP_2, FallarborTown_House1_EventScript_200F8B
|
|
||||||
call_if_set FLAG_TEMP_2, FallarborTown_House1_EventScript_200F9C
|
|
||||||
compare VAR_RESULT, 0
|
|
||||||
goto_if_eq FallarborTown_House1_EventScript_200FA5
|
|
||||||
msgbox FallarborTown_House1_Text_201159, MSGBOX_DEFAULT
|
|
||||||
giveitem_std ITEM_TM27
|
|
||||||
compare VAR_RESULT, 0
|
|
||||||
goto_if_eq Common_EventScript_ShowBagIsFull
|
|
||||||
setvar VAR_0x8004, ITEM_METEORITE
|
|
||||||
call Common_EventScript_PlayerHandedOverTheItem
|
|
||||||
setflag FLAG_RECEIVED_TM27
|
|
||||||
msgbox FallarborTown_House1_Text_2011A5, MSGBOX_DEFAULT
|
|
||||||
release
|
|
||||||
end
|
|
||||||
|
|
||||||
FallarborTown_House1_EventScript_200F8B:: @ 8200F8B
|
|
||||||
msgbox FallarborTown_House1_Text_200FEE, MSGBOX_DEFAULT
|
|
||||||
msgbox FallarborTown_House1_Text_2010A2, MSGBOX_YESNO
|
|
||||||
return
|
|
||||||
|
|
||||||
FallarborTown_House1_EventScript_200F9C:: @ 8200F9C
|
|
||||||
msgbox FallarborTown_House1_Text_201249, MSGBOX_YESNO
|
|
||||||
return
|
|
||||||
|
|
||||||
FallarborTown_House1_EventScript_200FA5:: @ 8200FA5
|
|
||||||
setflag FLAG_TEMP_2
|
|
||||||
msgbox FallarborTown_House1_Text_201212, MSGBOX_DEFAULT
|
|
||||||
release
|
|
||||||
end
|
|
||||||
|
|
||||||
FallarborTown_House1_EventScript_200FB2:: @ 8200FB2
|
|
||||||
msgbox FallarborTown_House1_Text_2011A5, MSGBOX_DEFAULT
|
|
||||||
release
|
|
||||||
end
|
|
||||||
|
|
||||||
FallarborTown_House1_EventScript_200FBC:: @ 8200FBC
|
|
||||||
lock
|
|
||||||
faceplayer
|
|
||||||
goto_if_set FLAG_RECEIVED_TM27, FallarborTown_House1_EventScript_200FE4
|
|
||||||
goto_if_set FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY, FallarborTown_House1_EventScript_200FDA
|
|
||||||
msgbox FallarborTown_House1_Text_2012BC, MSGBOX_DEFAULT
|
|
||||||
release
|
|
||||||
end
|
|
||||||
|
|
||||||
FallarborTown_House1_EventScript_200FDA:: @ 8200FDA
|
|
||||||
msgbox FallarborTown_House1_Text_201310, MSGBOX_DEFAULT
|
|
||||||
release
|
|
||||||
end
|
|
||||||
|
|
||||||
FallarborTown_House1_EventScript_200FE4:: @ 8200FE4
|
|
||||||
msgbox FallarborTown_House1_Text_20134B, MSGBOX_DEFAULT
|
|
||||||
release
|
|
||||||
end
|
|
||||||
|
|
||||||
FallarborTown_House1_Text_200FEE: @ 8200FEE
|
|
||||||
.string "PROF. COZMO: Oh…\n"
|
|
||||||
.string "I never should have let myself be\l"
|
|
||||||
.string "conned into telling TEAM MAGMA where\l"
|
|
||||||
.string "you can find METEORITES…\p"
|
|
||||||
.string "That METEORITE from METEOR FALLS…\n"
|
|
||||||
.string "It's never going to be mine now…$"
|
|
||||||
|
|
||||||
FallarborTown_House1_Text_2010A2: @ 82010A2
|
|
||||||
.string "Oh!\n"
|
|
||||||
.string "Hah?\p"
|
|
||||||
.string "That item…\p"
|
|
||||||
.string "Could it be?\p"
|
|
||||||
.string "Is it the METEORITE that TEAM MAGMA\n"
|
|
||||||
.string "took from METEOR FALLS?\p"
|
|
||||||
.string "Please, may I have it?\p"
|
|
||||||
.string "I'm not asking for it for free.\n"
|
|
||||||
.string "How about in exchange for this TM?$"
|
|
||||||
|
|
||||||
FallarborTown_House1_Text_201159: @ 8201159
|
|
||||||
.string "PROF. COZMO: This TM, it represents\n"
|
|
||||||
.string "my feeling of gratitude.\l"
|
|
||||||
.string "Please use it!$"
|
|
||||||
|
|
||||||
FallarborTown_House1_Text_2011A5: @ 82011A5
|
|
||||||
.string "PROF. COZMO: Oh, I can't believe it.\n"
|
|
||||||
.string "This is really, really great!\p"
|
|
||||||
.string "This is really going to help my research!$"
|
|
||||||
|
|
||||||
FallarborTown_House1_Text_201212: @ 8201212
|
|
||||||
.string "PROF. COZMO: Oh, but…\n"
|
|
||||||
.string "I'm crushed with disappointment…$"
|
|
||||||
|
|
||||||
FallarborTown_House1_Text_201249: @ 8201249
|
|
||||||
.string "PROF. COZMO: Please, may I have that\n"
|
|
||||||
.string "METEORITE?\p"
|
|
||||||
.string "I'm not asking for it for free.\n"
|
|
||||||
.string "How about in exchange for this TM?$"
|
|
||||||
|
|
||||||
FallarborTown_House1_Text_2012BC: @ 82012BC
|
|
||||||
.string "PROF. COZMO went off to METEOR FALLS\n"
|
|
||||||
.string "on ROUTE 114 with some people from\l"
|
|
||||||
.string "TEAM MAGMA.$"
|
|
||||||
|
|
||||||
FallarborTown_House1_Text_201310: @ 8201310
|
|
||||||
.string "Poor PROF. COZMO…\n"
|
|
||||||
.string "He's so depressed… I feel sorry for him.$"
|
|
||||||
|
|
||||||
FallarborTown_House1_Text_20134B: @ 820134B
|
|
||||||
.string "Look at PROF. COZMO…\n"
|
|
||||||
.string "He's so happy! I think it's cute.$"
|
|
||||||
|
|
||||||
@@ -1,102 +0,0 @@
|
|||||||
FallarborTown_House2_MapScripts:: @ 8201382
|
|
||||||
.byte 0
|
|
||||||
|
|
||||||
FallarborTown_House2_EventScript_201383:: @ 8201383
|
|
||||||
lockall
|
|
||||||
applymovement 1, Common_Movement_FacePlayer
|
|
||||||
waitmovement 0
|
|
||||||
goto_if_set FLAG_TEMP_1, FallarborTown_House2_EventScript_2013A8
|
|
||||||
msgbox FallarborTown_House2_Text_20145C, MSGBOX_DEFAULT
|
|
||||||
setflag FLAG_TEMP_1
|
|
||||||
goto FallarborTown_House2_EventScript_2013A8
|
|
||||||
end
|
|
||||||
|
|
||||||
FallarborTown_House2_EventScript_2013A8:: @ 82013A8
|
|
||||||
checkitem ITEM_HEART_SCALE, 1
|
|
||||||
compare VAR_RESULT, 0
|
|
||||||
goto_if_eq FallarborTown_House2_EventScript_201452
|
|
||||||
msgbox FallarborTown_House2_Text_201541, MSGBOX_YESNO
|
|
||||||
switch VAR_RESULT
|
|
||||||
case 0, FallarborTown_House2_EventScript_201452
|
|
||||||
goto FallarborTown_House2_EventScript_2013D6
|
|
||||||
end
|
|
||||||
|
|
||||||
FallarborTown_House2_EventScript_2013D6:: @ 82013D6
|
|
||||||
msgbox FallarborTown_House2_Text_2015A5, MSGBOX_DEFAULT
|
|
||||||
special sub_81B951C
|
|
||||||
waitstate
|
|
||||||
compare VAR_0x8004, 255
|
|
||||||
goto_if_eq FallarborTown_House2_EventScript_201452
|
|
||||||
special sub_81B98DC
|
|
||||||
compare VAR_RESULT, 1
|
|
||||||
goto_if_eq FallarborTown_House2_EventScript_201444
|
|
||||||
compare VAR_0x8005, 0
|
|
||||||
goto_if_eq FallarborTown_House2_EventScript_201436
|
|
||||||
goto FallarborTown_House2_EventScript_20140C
|
|
||||||
end
|
|
||||||
|
|
||||||
FallarborTown_House2_EventScript_20140C:: @ 820140C
|
|
||||||
msgbox FallarborTown_House2_Text_2015C3, MSGBOX_DEFAULT
|
|
||||||
special TeachMoveRelearnerMove
|
|
||||||
waitstate
|
|
||||||
compare VAR_0x8004, 0
|
|
||||||
goto_if_eq FallarborTown_House2_EventScript_2013D6
|
|
||||||
msgbox FallarborTown_House2_Text_201627, MSGBOX_DEFAULT
|
|
||||||
takeitem ITEM_HEART_SCALE, 1
|
|
||||||
goto FallarborTown_House2_EventScript_201452
|
|
||||||
end
|
|
||||||
|
|
||||||
FallarborTown_House2_EventScript_201436:: @ 8201436
|
|
||||||
msgbox FallarborTown_House2_Text_2015DE, MSGBOX_DEFAULT
|
|
||||||
goto FallarborTown_House2_EventScript_2013D6
|
|
||||||
end
|
|
||||||
|
|
||||||
FallarborTown_House2_EventScript_201444:: @ 8201444
|
|
||||||
msgbox FallarborTown_House2_Text_201697, MSGBOX_DEFAULT
|
|
||||||
goto FallarborTown_House2_EventScript_2013D6
|
|
||||||
end
|
|
||||||
|
|
||||||
FallarborTown_House2_EventScript_201452:: @ 8201452
|
|
||||||
msgbox FallarborTown_House2_Text_201653, MSGBOX_DEFAULT
|
|
||||||
releaseall
|
|
||||||
end
|
|
||||||
|
|
||||||
FallarborTown_House2_Text_20145C: @ 820145C
|
|
||||||
.string "I'm the MOVE TUTOR.\p"
|
|
||||||
.string "I know all the moves that POKéMON\n"
|
|
||||||
.string "learn--every one of them--and I can\l"
|
|
||||||
.string "teach POKéMON those moves.\p"
|
|
||||||
.string "I can teach a move to a POKéMON\n"
|
|
||||||
.string "of yours if you'd like.\p"
|
|
||||||
.string "I'll do it for a HEART SCALE.\n"
|
|
||||||
.string "I'm collecting those now.$"
|
|
||||||
|
|
||||||
FallarborTown_House2_Text_201541: @ 8201541
|
|
||||||
.string "Oh! That's it! That's an honest to\n"
|
|
||||||
.string "goodness HEART SCALE!\p"
|
|
||||||
.string "Let me guess, you want me to teach\n"
|
|
||||||
.string "a move?$"
|
|
||||||
|
|
||||||
FallarborTown_House2_Text_2015A5: @ 82015A5
|
|
||||||
.string "Which POKéMON needs tutoring?$"
|
|
||||||
|
|
||||||
FallarborTown_House2_Text_2015C3: @ 82015C3
|
|
||||||
.string "Which move should I teach?$"
|
|
||||||
|
|
||||||
FallarborTown_House2_Text_2015DE: @ 82015DE
|
|
||||||
.string "Sorry…\p"
|
|
||||||
.string "It doesn't appear as if I have any move\n"
|
|
||||||
.string "I can teach that POKéMON.$"
|
|
||||||
|
|
||||||
FallarborTown_House2_Text_201627: @ 8201627
|
|
||||||
.string "{PLAYER} handed over one HEART SCALE\n"
|
|
||||||
.string "in exchange.$"
|
|
||||||
|
|
||||||
FallarborTown_House2_Text_201653: @ 8201653
|
|
||||||
.string "If your POKéMON need to learn a move,\n"
|
|
||||||
.string "come back with a HEART SCALE.$"
|
|
||||||
|
|
||||||
FallarborTown_House2_Text_201697: @ 8201697
|
|
||||||
.string "Hunh? There isn't a single move that\n"
|
|
||||||
.string "I can teach an EGG.$"
|
|
||||||
|
|
||||||
+3
-3
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"id": "MAP_FALLARBOR_TOWN_HOUSE2",
|
"id": "MAP_FALLARBOR_TOWN_MOVE_RELEARNERS_HOUSE",
|
||||||
"name": "FallarborTown_House2",
|
"name": "FallarborTown_MoveRelearnersHouse",
|
||||||
"layout": "LAYOUT_HOUSE2",
|
"layout": "LAYOUT_HOUSE2",
|
||||||
"music": "MUS_TONEKUSA",
|
"music": "MUS_TONEKUSA",
|
||||||
"region_map_section": "MAPSEC_FALLARBOR_TOWN",
|
"region_map_section": "MAPSEC_FALLARBOR_TOWN",
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
"movement_range_y": 0,
|
"movement_range_y": 0,
|
||||||
"trainer_type": "0",
|
"trainer_type": "0",
|
||||||
"trainer_sight_or_berry_tree_id": "0",
|
"trainer_sight_or_berry_tree_id": "0",
|
||||||
"script": "FallarborTown_House2_EventScript_201383",
|
"script": "FallarborTown_MoveRelearnersHouse_EventScript_MoveRelearner",
|
||||||
"flag": "0"
|
"flag": "0"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -0,0 +1,102 @@
|
|||||||
|
FallarborTown_MoveRelearnersHouse_MapScripts:: @ 8201382
|
||||||
|
.byte 0
|
||||||
|
|
||||||
|
FallarborTown_MoveRelearnersHouse_EventScript_MoveRelearner:: @ 8201383
|
||||||
|
lockall
|
||||||
|
applymovement 1, Common_Movement_FacePlayer
|
||||||
|
waitmovement 0
|
||||||
|
goto_if_set FLAG_TEMP_1, FallarborTown_MoveRelearnersHouse_EventScript_AskTeachMove
|
||||||
|
msgbox FallarborTown_MoveRelearnersHouse_Text_ImTheMoveTutor, MSGBOX_DEFAULT
|
||||||
|
setflag FLAG_TEMP_1
|
||||||
|
goto FallarborTown_MoveRelearnersHouse_EventScript_AskTeachMove
|
||||||
|
end
|
||||||
|
|
||||||
|
FallarborTown_MoveRelearnersHouse_EventScript_AskTeachMove:: @ 82013A8
|
||||||
|
checkitem ITEM_HEART_SCALE, 1
|
||||||
|
compare VAR_RESULT, 0
|
||||||
|
goto_if_eq FallarborTown_MoveRelearnersHouse_EventScript_ComeBackWithHeartScale
|
||||||
|
msgbox FallarborTown_MoveRelearnersHouse_Text_ThatsAHeartScaleWantMeToTeachMove, MSGBOX_YESNO
|
||||||
|
switch VAR_RESULT
|
||||||
|
case 0, FallarborTown_MoveRelearnersHouse_EventScript_ComeBackWithHeartScale
|
||||||
|
goto FallarborTown_MoveRelearnersHouse_EventScript_ChooseMon
|
||||||
|
end
|
||||||
|
|
||||||
|
FallarborTown_MoveRelearnersHouse_EventScript_ChooseMon:: @ 82013D6
|
||||||
|
msgbox FallarborTown_MoveRelearnersHouse_Text_TutorWhichMon, MSGBOX_DEFAULT
|
||||||
|
special ChooseMonForMoveRelearner
|
||||||
|
waitstate
|
||||||
|
compare VAR_0x8004, 255
|
||||||
|
goto_if_eq FallarborTown_MoveRelearnersHouse_EventScript_ComeBackWithHeartScale
|
||||||
|
special IsSelectedMonEgg
|
||||||
|
compare VAR_RESULT, TRUE
|
||||||
|
goto_if_eq FallarborTown_MoveRelearnersHouse_EventScript_CantTeachEgg
|
||||||
|
compare VAR_0x8005, 0
|
||||||
|
goto_if_eq FallarborTown_MoveRelearnersHouse_EventScript_NoMoveToTeachMon
|
||||||
|
goto FallarborTown_MoveRelearnersHouse_EventScript_ChooseMove
|
||||||
|
end
|
||||||
|
|
||||||
|
FallarborTown_MoveRelearnersHouse_EventScript_ChooseMove:: @ 820140C
|
||||||
|
msgbox FallarborTown_MoveRelearnersHouse_Text_TeachWhichMove, MSGBOX_DEFAULT
|
||||||
|
special TeachMoveRelearnerMove
|
||||||
|
waitstate
|
||||||
|
compare VAR_0x8004, 0
|
||||||
|
goto_if_eq FallarborTown_MoveRelearnersHouse_EventScript_ChooseMon
|
||||||
|
msgbox FallarborTown_MoveRelearnersHouse_Text_HandedOverHeartScale, MSGBOX_DEFAULT
|
||||||
|
takeitem ITEM_HEART_SCALE, 1
|
||||||
|
goto FallarborTown_MoveRelearnersHouse_EventScript_ComeBackWithHeartScale
|
||||||
|
end
|
||||||
|
|
||||||
|
FallarborTown_MoveRelearnersHouse_EventScript_NoMoveToTeachMon:: @ 8201436
|
||||||
|
msgbox FallarborTown_MoveRelearnersHouse_Text_DontHaveMoveToTeachPokemon, MSGBOX_DEFAULT
|
||||||
|
goto FallarborTown_MoveRelearnersHouse_EventScript_ChooseMon
|
||||||
|
end
|
||||||
|
|
||||||
|
FallarborTown_MoveRelearnersHouse_EventScript_CantTeachEgg:: @ 8201444
|
||||||
|
msgbox FallarborTown_MoveRelearnersHouse_Text_CantTeachEgg, MSGBOX_DEFAULT
|
||||||
|
goto FallarborTown_MoveRelearnersHouse_EventScript_ChooseMon
|
||||||
|
end
|
||||||
|
|
||||||
|
FallarborTown_MoveRelearnersHouse_EventScript_ComeBackWithHeartScale:: @ 8201452
|
||||||
|
msgbox FallarborTown_MoveRelearnersHouse_Text_ComeBackWithHeartScale, MSGBOX_DEFAULT
|
||||||
|
releaseall
|
||||||
|
end
|
||||||
|
|
||||||
|
FallarborTown_MoveRelearnersHouse_Text_ImTheMoveTutor: @ 820145C
|
||||||
|
.string "I'm the MOVE TUTOR.\p"
|
||||||
|
.string "I know all the moves that POKéMON\n"
|
||||||
|
.string "learn--every one of them--and I can\l"
|
||||||
|
.string "teach POKéMON those moves.\p"
|
||||||
|
.string "I can teach a move to a POKéMON\n"
|
||||||
|
.string "of yours if you'd like.\p"
|
||||||
|
.string "I'll do it for a HEART SCALE.\n"
|
||||||
|
.string "I'm collecting those now.$"
|
||||||
|
|
||||||
|
FallarborTown_MoveRelearnersHouse_Text_ThatsAHeartScaleWantMeToTeachMove: @ 8201541
|
||||||
|
.string "Oh! That's it! That's an honest to\n"
|
||||||
|
.string "goodness HEART SCALE!\p"
|
||||||
|
.string "Let me guess, you want me to teach\n"
|
||||||
|
.string "a move?$"
|
||||||
|
|
||||||
|
FallarborTown_MoveRelearnersHouse_Text_TutorWhichMon: @ 82015A5
|
||||||
|
.string "Which POKéMON needs tutoring?$"
|
||||||
|
|
||||||
|
FallarborTown_MoveRelearnersHouse_Text_TeachWhichMove: @ 82015C3
|
||||||
|
.string "Which move should I teach?$"
|
||||||
|
|
||||||
|
FallarborTown_MoveRelearnersHouse_Text_DontHaveMoveToTeachPokemon: @ 82015DE
|
||||||
|
.string "Sorry…\p"
|
||||||
|
.string "It doesn't appear as if I have any move\n"
|
||||||
|
.string "I can teach that POKéMON.$"
|
||||||
|
|
||||||
|
FallarborTown_MoveRelearnersHouse_Text_HandedOverHeartScale: @ 8201627
|
||||||
|
.string "{PLAYER} handed over one HEART SCALE\n"
|
||||||
|
.string "in exchange.$"
|
||||||
|
|
||||||
|
FallarborTown_MoveRelearnersHouse_Text_ComeBackWithHeartScale: @ 8201653
|
||||||
|
.string "If your POKéMON need to learn a move,\n"
|
||||||
|
.string "come back with a HEART SCALE.$"
|
||||||
|
|
||||||
|
FallarborTown_MoveRelearnersHouse_Text_CantTeachEgg: @ 8201697
|
||||||
|
.string "Hunh? There isn't a single move that\n"
|
||||||
|
.string "I can teach an EGG.$"
|
||||||
|
|
||||||
@@ -12,7 +12,7 @@ FortreeCity_House1_EventScript_2162BB:: @ 82162BB
|
|||||||
msgbox FortreeCity_House1_Text_21637B, MSGBOX_YESNO
|
msgbox FortreeCity_House1_Text_21637B, MSGBOX_YESNO
|
||||||
compare VAR_RESULT, 0
|
compare VAR_RESULT, 0
|
||||||
goto_if_eq FortreeCity_House1_EventScript_21633D
|
goto_if_eq FortreeCity_House1_EventScript_21633D
|
||||||
special sub_81B94B0
|
special ChoosePartyMon
|
||||||
waitstate
|
waitstate
|
||||||
copyvar VAR_0x800A, VAR_0x8004
|
copyvar VAR_0x800A, VAR_0x8004
|
||||||
compare VAR_0x8004, 255
|
compare VAR_0x8004, 255
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
"movement_range_y": 0,
|
"movement_range_y": 0,
|
||||||
"trainer_type": "0",
|
"trainer_type": "0",
|
||||||
"trainer_sight_or_berry_tree_id": "0",
|
"trainer_sight_or_berry_tree_id": "0",
|
||||||
"script": "LilycoveCity_MoveDeletersHouse_EventScript_21EA0B",
|
"script": "LilycoveCity_MoveDeletersHouse_EventScript_MoveDeleter",
|
||||||
"flag": "0"
|
"flag": "0"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,110 +1,110 @@
|
|||||||
LilycoveCity_MoveDeletersHouse_MapScripts:: @ 821EA0A
|
LilycoveCity_MoveDeletersHouse_MapScripts:: @ 821EA0A
|
||||||
.byte 0
|
.byte 0
|
||||||
|
|
||||||
LilycoveCity_MoveDeletersHouse_EventScript_21EA0B:: @ 821EA0B
|
LilycoveCity_MoveDeletersHouse_EventScript_MoveDeleter:: @ 821EA0B
|
||||||
lockall
|
lockall
|
||||||
applymovement 1, Common_Movement_FacePlayer
|
applymovement 1, Common_Movement_FacePlayer
|
||||||
waitmovement 0
|
waitmovement 0
|
||||||
msgbox LilycoveCity_MoveDeletersHouse_Text_21EAFD, MSGBOX_YESNO
|
msgbox LilycoveCity_MoveDeletersHouse_Text_ICanMakeMonForgetMove, MSGBOX_YESNO
|
||||||
switch VAR_RESULT
|
switch VAR_RESULT
|
||||||
case 1, LilycoveCity_MoveDeletersHouse_EventScript_21EA3B
|
case 1, LilycoveCity_MoveDeletersHouse_EventScript_ChooseMonAndMoveToForget
|
||||||
case 0, LilycoveCity_MoveDeletersHouse_EventScript_21EAE6
|
case 0, LilycoveCity_MoveDeletersHouse_EventScript_ComeAgain
|
||||||
releaseall
|
releaseall
|
||||||
end
|
end
|
||||||
|
|
||||||
LilycoveCity_MoveDeletersHouse_EventScript_21EA3B:: @ 821EA3B
|
LilycoveCity_MoveDeletersHouse_EventScript_ChooseMonAndMoveToForget:: @ 821EA3B
|
||||||
msgbox LilycoveCity_MoveDeletersHouse_Text_21EB65, MSGBOX_DEFAULT
|
msgbox LilycoveCity_MoveDeletersHouse_Text_WhichMonShouldForget, MSGBOX_DEFAULT
|
||||||
special sub_81B94B0
|
special ChoosePartyMon
|
||||||
waitstate
|
waitstate
|
||||||
compare VAR_0x8004, 255
|
compare VAR_0x8004, 255
|
||||||
goto_if_eq LilycoveCity_MoveDeletersHouse_EventScript_21EAE6
|
goto_if_eq LilycoveCity_MoveDeletersHouse_EventScript_ComeAgain
|
||||||
special sub_81B98DC
|
special IsSelectedMonEgg
|
||||||
|
compare VAR_RESULT, TRUE
|
||||||
|
goto_if_eq LilycoveCity_MoveDeletersHouse_EventScript_EggCantForgetMoves
|
||||||
|
special GetNumMovesSelectedMonHas
|
||||||
compare VAR_RESULT, 1
|
compare VAR_RESULT, 1
|
||||||
goto_if_eq LilycoveCity_MoveDeletersHouse_EventScript_21EADC
|
goto_if_eq LilycoveCity_MoveDeletersHouse_EventScript_MonOnlyKnowsOneMove
|
||||||
special sub_81B96D0
|
msgbox LilycoveCity_MoveDeletersHouse_Text_WhichMoveShouldBeForgotten, MSGBOX_DEFAULT
|
||||||
compare VAR_RESULT, 1
|
|
||||||
goto_if_eq LilycoveCity_MoveDeletersHouse_EventScript_21EACF
|
|
||||||
msgbox LilycoveCity_MoveDeletersHouse_Text_21EB89, MSGBOX_DEFAULT
|
|
||||||
fadescreen 1
|
fadescreen 1
|
||||||
special sub_81B968C
|
special MoveDeleterChooseMoveToForget
|
||||||
fadescreen 0
|
fadescreen 0
|
||||||
compare VAR_0x8005, 4
|
compare VAR_0x8005, MAX_MON_MOVES
|
||||||
goto_if_eq LilycoveCity_MoveDeletersHouse_EventScript_21EA3B
|
goto_if_eq LilycoveCity_MoveDeletersHouse_EventScript_ChooseMonAndMoveToForget
|
||||||
special sub_81B9718
|
special BufferMoveDeleterNicknameAndMove
|
||||||
msgbox LilycoveCity_MoveDeletersHouse_Text_21EBDA, MSGBOX_YESNO
|
msgbox LilycoveCity_MoveDeletersHouse_Text_MonsMoveShouldBeForgotten, MSGBOX_YESNO
|
||||||
switch VAR_RESULT
|
switch VAR_RESULT
|
||||||
case 1, LilycoveCity_MoveDeletersHouse_EventScript_21EAB0
|
case 1, LilycoveCity_MoveDeletersHouse_EventScript_TryForgetMove
|
||||||
case 0, LilycoveCity_MoveDeletersHouse_EventScript_21EAE6
|
case 0, LilycoveCity_MoveDeletersHouse_EventScript_ComeAgain
|
||||||
releaseall
|
releaseall
|
||||||
end
|
end
|
||||||
|
|
||||||
LilycoveCity_MoveDeletersHouse_EventScript_21EAB0:: @ 821EAB0
|
LilycoveCity_MoveDeletersHouse_EventScript_TryForgetMove:: @ 821EAB0
|
||||||
special sub_81B9918
|
special IsLastMonThatKnowsSurf
|
||||||
compare VAR_RESULT, 1
|
compare VAR_RESULT, TRUE
|
||||||
goto_if_eq LilycoveCity_MoveDeletersHouse_EventScript_21EAF0
|
goto_if_eq LilycoveCity_MoveDeletersHouse_EventScript_LastMonWithSurf
|
||||||
special sub_81B9770
|
special MoveDeleterForgetMove
|
||||||
playfanfare MUS_ME_WASURE
|
playfanfare MUS_ME_WASURE
|
||||||
waitfanfare
|
waitfanfare
|
||||||
msgbox LilycoveCity_MoveDeletersHouse_Text_21EC06, MSGBOX_DEFAULT
|
msgbox LilycoveCity_MoveDeletersHouse_Text_MonHasForgottenMove, MSGBOX_DEFAULT
|
||||||
releaseall
|
releaseall
|
||||||
end
|
end
|
||||||
|
|
||||||
LilycoveCity_MoveDeletersHouse_EventScript_21EACF:: @ 821EACF
|
LilycoveCity_MoveDeletersHouse_EventScript_MonOnlyKnowsOneMove:: @ 821EACF
|
||||||
special sub_81B9718
|
special BufferMoveDeleterNicknameAndMove
|
||||||
msgbox LilycoveCity_MoveDeletersHouse_Text_21EBA9, MSGBOX_DEFAULT
|
msgbox LilycoveCity_MoveDeletersHouse_Text_MonOnlyKnowsOneMove, MSGBOX_DEFAULT
|
||||||
releaseall
|
releaseall
|
||||||
end
|
end
|
||||||
|
|
||||||
LilycoveCity_MoveDeletersHouse_EventScript_21EADC:: @ 821EADC
|
LilycoveCity_MoveDeletersHouse_EventScript_EggCantForgetMoves:: @ 821EADC
|
||||||
msgbox LilycoveCity_MoveDeletersHouse_Text_21EC78, MSGBOX_DEFAULT
|
msgbox LilycoveCity_MoveDeletersHouse_Text_EggCantForgetMoves, MSGBOX_DEFAULT
|
||||||
releaseall
|
releaseall
|
||||||
end
|
end
|
||||||
|
|
||||||
LilycoveCity_MoveDeletersHouse_EventScript_21EAE6:: @ 821EAE6
|
LilycoveCity_MoveDeletersHouse_EventScript_ComeAgain:: @ 821EAE6
|
||||||
msgbox LilycoveCity_MoveDeletersHouse_Text_21EC3F, MSGBOX_DEFAULT
|
msgbox LilycoveCity_MoveDeletersHouse_Text_ComeAgain, MSGBOX_DEFAULT
|
||||||
releaseall
|
releaseall
|
||||||
end
|
end
|
||||||
|
|
||||||
LilycoveCity_MoveDeletersHouse_EventScript_21EAF0:: @ 821EAF0
|
LilycoveCity_MoveDeletersHouse_EventScript_LastMonWithSurf:: @ 821EAF0
|
||||||
special sub_81B9718
|
special BufferMoveDeleterNicknameAndMove
|
||||||
msgbox LilycoveCity_MoveDeletersHouse_Text_21EC9C, MSGBOX_DEFAULT
|
msgbox LilycoveCity_MoveDeletersHouse_Text_CantForgetSurf, MSGBOX_DEFAULT
|
||||||
releaseall
|
releaseall
|
||||||
end
|
end
|
||||||
|
|
||||||
LilycoveCity_MoveDeletersHouse_Text_21EAFD: @ 821EAFD
|
LilycoveCity_MoveDeletersHouse_Text_ICanMakeMonForgetMove: @ 821EAFD
|
||||||
.string "Uh…\n"
|
.string "Uh…\n"
|
||||||
.string "Oh, yes, I'm the MOVE DELETER.\p"
|
.string "Oh, yes, I'm the MOVE DELETER.\p"
|
||||||
.string "I can make POKéMON forget their moves.\p"
|
.string "I can make POKéMON forget their moves.\p"
|
||||||
.string "Would you like me to do that?$"
|
.string "Would you like me to do that?$"
|
||||||
|
|
||||||
LilycoveCity_MoveDeletersHouse_Text_21EB65: @ 821EB65
|
LilycoveCity_MoveDeletersHouse_Text_WhichMonShouldForget: @ 821EB65
|
||||||
.string "Which POKéMON should forget a move?$"
|
.string "Which POKéMON should forget a move?$"
|
||||||
|
|
||||||
LilycoveCity_MoveDeletersHouse_Text_21EB89: @ 821EB89
|
LilycoveCity_MoveDeletersHouse_Text_WhichMoveShouldBeForgotten: @ 821EB89
|
||||||
.string "Which move should be forgotten?$"
|
.string "Which move should be forgotten?$"
|
||||||
|
|
||||||
LilycoveCity_MoveDeletersHouse_Text_21EBA9: @ 821EBA9
|
LilycoveCity_MoveDeletersHouse_Text_MonOnlyKnowsOneMove: @ 821EBA9
|
||||||
.string "{STR_VAR_1} knows only one move\n"
|
.string "{STR_VAR_1} knows only one move\n"
|
||||||
.string "so it can't be forgotten…$"
|
.string "so it can't be forgotten…$"
|
||||||
|
|
||||||
LilycoveCity_MoveDeletersHouse_Text_21EBDA: @ 821EBDA
|
LilycoveCity_MoveDeletersHouse_Text_MonsMoveShouldBeForgotten: @ 821EBDA
|
||||||
.string "Hm! {STR_VAR_1}'s {STR_VAR_2}?\n"
|
.string "Hm! {STR_VAR_1}'s {STR_VAR_2}?\n"
|
||||||
.string "That move should be forgotten?$"
|
.string "That move should be forgotten?$"
|
||||||
|
|
||||||
LilycoveCity_MoveDeletersHouse_Text_21EC06: @ 821EC06
|
LilycoveCity_MoveDeletersHouse_Text_MonHasForgottenMove: @ 821EC06
|
||||||
.string "It worked to perfection!\p"
|
.string "It worked to perfection!\p"
|
||||||
.string "{STR_VAR_1} has forgotten\n"
|
.string "{STR_VAR_1} has forgotten\n"
|
||||||
.string "{STR_VAR_2} completely.$"
|
.string "{STR_VAR_2} completely.$"
|
||||||
|
|
||||||
LilycoveCity_MoveDeletersHouse_Text_21EC3F: @ 821EC3F
|
LilycoveCity_MoveDeletersHouse_Text_ComeAgain: @ 821EC3F
|
||||||
.string "Come again if there are moves that\n"
|
.string "Come again if there are moves that\n"
|
||||||
.string "need to be forgotten.$"
|
.string "need to be forgotten.$"
|
||||||
|
|
||||||
LilycoveCity_MoveDeletersHouse_Text_21EC78: @ 821EC78
|
LilycoveCity_MoveDeletersHouse_Text_EggCantForgetMoves: @ 821EC78
|
||||||
.string "What?\n"
|
.string "What?\n"
|
||||||
.string "No EGG should know any moves.$"
|
.string "No EGG should know any moves.$"
|
||||||
|
|
||||||
LilycoveCity_MoveDeletersHouse_Text_21EC9C: @ 821EC9C
|
LilycoveCity_MoveDeletersHouse_Text_CantForgetSurf: @ 821EC9C
|
||||||
.string "Hm!\p"
|
.string "Hm!\p"
|
||||||
.string "Your {STR_VAR_1} doesn't seem willing\n"
|
.string "Your {STR_VAR_1} doesn't seem willing\n"
|
||||||
.string "to forget SURF.$"
|
.string "to forget SURF.$"
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ MtChimney_EventScript_22EE0B:: @ 822EE0B
|
|||||||
removeobject 1
|
removeobject 1
|
||||||
setflag FLAG_HIDE_MT_CHIMNEY_TEAM_AQUA
|
setflag FLAG_HIDE_MT_CHIMNEY_TEAM_AQUA
|
||||||
setflag FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY
|
setflag FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY
|
||||||
clearflag FLAG_HIDE_FALLARBOR_HOUSE_1_PROF_COZMO
|
clearflag FLAG_HIDE_FALLARBOR_HOUSE_PROF_COZMO
|
||||||
setflag FLAG_HIDE_METEOR_FALLS_1F_1R_COZMO
|
setflag FLAG_HIDE_METEOR_FALLS_1F_1R_COZMO
|
||||||
clearflag FLAG_HIDE_MT_CHIMNEY_LAVA_COOKIE_LADY
|
clearflag FLAG_HIDE_MT_CHIMNEY_LAVA_COOKIE_LADY
|
||||||
releaseall
|
releaseall
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ PacifidlogTown_House3_EventScript_203C11:: @ 8203C11
|
|||||||
msgbox PacifidlogTown_House3_Text_203CBE, MSGBOX_YESNO
|
msgbox PacifidlogTown_House3_Text_203CBE, MSGBOX_YESNO
|
||||||
compare VAR_RESULT, 0
|
compare VAR_RESULT, 0
|
||||||
goto_if_eq PacifidlogTown_House3_EventScript_203C93
|
goto_if_eq PacifidlogTown_House3_EventScript_203C93
|
||||||
special sub_81B94B0
|
special ChoosePartyMon
|
||||||
waitstate
|
waitstate
|
||||||
copyvar VAR_0x800A, VAR_0x8004
|
copyvar VAR_0x800A, VAR_0x8004
|
||||||
compare VAR_0x8004, 255
|
compare VAR_0x8004, 255
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ RustboroCity_House1_EventScript_21593F:: @ 821593F
|
|||||||
msgbox RustboroCity_House1_Text_2159E8, MSGBOX_YESNO
|
msgbox RustboroCity_House1_Text_2159E8, MSGBOX_YESNO
|
||||||
compare VAR_RESULT, 0
|
compare VAR_RESULT, 0
|
||||||
goto_if_eq RustboroCity_House1_EventScript_2159BD
|
goto_if_eq RustboroCity_House1_EventScript_2159BD
|
||||||
special sub_81B94B0
|
special ChoosePartyMon
|
||||||
waitstate
|
waitstate
|
||||||
copyvar VAR_0x800A, VAR_0x8004
|
copyvar VAR_0x800A, VAR_0x8004
|
||||||
compare VAR_0x8004, 255
|
compare VAR_0x8004, 255
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ SlateportCity_House1_EventScript_209AA5:: @ 8209AA5
|
|||||||
|
|
||||||
SlateportCity_House1_EventScript_209AC6:: @ 8209AC6
|
SlateportCity_House1_EventScript_209AC6:: @ 8209AC6
|
||||||
msgbox SlateportCity_House1_Text_209BFF, MSGBOX_DEFAULT
|
msgbox SlateportCity_House1_Text_209BFF, MSGBOX_DEFAULT
|
||||||
special sub_81B94B0
|
special ChoosePartyMon
|
||||||
waitstate
|
waitstate
|
||||||
compare VAR_0x8004, 255
|
compare VAR_0x8004, 255
|
||||||
goto_if_ne SlateportCity_House1_EventScript_209AF3
|
goto_if_ne SlateportCity_House1_EventScript_209AF3
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ SootopolisCity_LotadAndSeedotHouse_EventScript_22722B:: @ 822722B
|
|||||||
lock
|
lock
|
||||||
faceplayer
|
faceplayer
|
||||||
msgbox SootopolisCity_LotadAndSeedotHouse_Text_227369, MSGBOX_DEFAULT
|
msgbox SootopolisCity_LotadAndSeedotHouse_Text_227369, MSGBOX_DEFAULT
|
||||||
special sub_81B94B0
|
special ChoosePartyMon
|
||||||
waitstate
|
waitstate
|
||||||
copyvar VAR_RESULT, VAR_0x8004
|
copyvar VAR_RESULT, VAR_0x8004
|
||||||
compare VAR_RESULT, 255
|
compare VAR_RESULT, 255
|
||||||
@@ -55,7 +55,7 @@ SootopolisCity_LotadAndSeedotHouse_EventScript_2272BC:: @ 82272BC
|
|||||||
lock
|
lock
|
||||||
faceplayer
|
faceplayer
|
||||||
msgbox SootopolisCity_LotadAndSeedotHouse_Text_227676, MSGBOX_DEFAULT
|
msgbox SootopolisCity_LotadAndSeedotHouse_Text_227676, MSGBOX_DEFAULT
|
||||||
special sub_81B94B0
|
special ChoosePartyMon
|
||||||
waitstate
|
waitstate
|
||||||
copyvar VAR_RESULT, VAR_0x8004
|
copyvar VAR_RESULT, VAR_0x8004
|
||||||
compare VAR_RESULT, 255
|
compare VAR_RESULT, 255
|
||||||
|
|||||||
@@ -132,8 +132,8 @@
|
|||||||
"FallarborTown_BattleTentBattleRoom",
|
"FallarborTown_BattleTentBattleRoom",
|
||||||
"FallarborTown_PokemonCenter_1F",
|
"FallarborTown_PokemonCenter_1F",
|
||||||
"FallarborTown_PokemonCenter_2F",
|
"FallarborTown_PokemonCenter_2F",
|
||||||
"FallarborTown_House1",
|
"FallarborTown_CozmosHouse",
|
||||||
"FallarborTown_House2"
|
"FallarborTown_MoveRelearnersHouse"
|
||||||
],
|
],
|
||||||
"gMapGroup6": [
|
"gMapGroup6": [
|
||||||
"VerdanturfTown_BattleTentLobby",
|
"VerdanturfTown_BattleTentLobby",
|
||||||
|
|||||||
@@ -911,7 +911,7 @@ EventScript_DoLinkRoomExit:: @ 8277513
|
|||||||
CableClub_EventScript_UnionRoomAttendant:: @ 827751B
|
CableClub_EventScript_UnionRoomAttendant:: @ 827751B
|
||||||
lock
|
lock
|
||||||
faceplayer
|
faceplayer
|
||||||
setvar VAR_FRONTIER_FACILITY, 8
|
setvar VAR_FRONTIER_FACILITY, FACILITY_UNION_ROOM
|
||||||
goto_if_unset FLAG_SYS_POKEDEX_GET, CableClub_EventScript_WirelessClubAdjustements
|
goto_if_unset FLAG_SYS_POKEDEX_GET, CableClub_EventScript_WirelessClubAdjustements
|
||||||
specialvar VAR_RESULT, IsBadEggInParty
|
specialvar VAR_RESULT, IsBadEggInParty
|
||||||
compare VAR_RESULT, TRUE
|
compare VAR_RESULT, TRUE
|
||||||
@@ -1019,7 +1019,7 @@ CableClub_EventScript_DontAskAboutLinking:: @ 827769A
|
|||||||
CableClub_EventScript_DirectCornerAttendant:: @ 82776A4
|
CableClub_EventScript_DirectCornerAttendant:: @ 82776A4
|
||||||
lock
|
lock
|
||||||
faceplayer
|
faceplayer
|
||||||
setvar VAR_FRONTIER_FACILITY, 9
|
setvar VAR_FRONTIER_FACILITY, FACILITY_MULTI_OR_EREADER @ Set preemptively for multi battles, ignored otherwise
|
||||||
goto_if_unset FLAG_SYS_POKEDEX_GET, CableClub_EventScript_WirelessClubAdjustements
|
goto_if_unset FLAG_SYS_POKEDEX_GET, CableClub_EventScript_WirelessClubAdjustements
|
||||||
specialvar VAR_RESULT, IsBadEggInParty
|
specialvar VAR_RESULT, IsBadEggInParty
|
||||||
compare VAR_RESULT, TRUE
|
compare VAR_RESULT, TRUE
|
||||||
|
|||||||
@@ -289,7 +289,7 @@ MoveTutor_EventScript_ExplosionTaught:: @ 82C831C
|
|||||||
end
|
end
|
||||||
|
|
||||||
MoveTutor_EventScript_OpenPartyMenu:: @ 82C8326
|
MoveTutor_EventScript_OpenPartyMenu:: @ 82C8326
|
||||||
special OpenPartyMenuForMoveTutor
|
special ChooseMonForMoveTutor
|
||||||
waitstate
|
waitstate
|
||||||
lock
|
lock
|
||||||
faceplayer
|
faceplayer
|
||||||
|
|||||||
@@ -204,7 +204,7 @@ EventScript_ResetAllMapFlags:: @ 82715DE
|
|||||||
setflag FLAG_HIDE_MOSSDEEP_CITY_HOUSE_2_WINGULL
|
setflag FLAG_HIDE_MOSSDEEP_CITY_HOUSE_2_WINGULL
|
||||||
setflag FLAG_HIDE_METEOR_FALLS_TEAM_AQUA
|
setflag FLAG_HIDE_METEOR_FALLS_TEAM_AQUA
|
||||||
setflag FLAG_HIDE_DEWFORD_HALL_SLUDGE_BOMB_MAN
|
setflag FLAG_HIDE_DEWFORD_HALL_SLUDGE_BOMB_MAN
|
||||||
setflag FLAG_HIDE_FALLARBOR_HOUSE_1_PROF_COZMO
|
setflag FLAG_HIDE_FALLARBOR_HOUSE_PROF_COZMO
|
||||||
setflag FLAG_HIDE_WEATHER_INSTITUTE_2F_AQUA_GRUNT_M
|
setflag FLAG_HIDE_WEATHER_INSTITUTE_2F_AQUA_GRUNT_M
|
||||||
setflag FLAG_HIDE_ROUTE_128_STEVEN
|
setflag FLAG_HIDE_ROUTE_128_STEVEN
|
||||||
setflag FLAG_HIDE_ROUTE_128_ARCHIE
|
setflag FLAG_HIDE_ROUTE_128_ARCHIE
|
||||||
|
|||||||
+12
-12
@@ -170,7 +170,7 @@ gSpecials:: @ 81DBA64
|
|||||||
def_special ChooseStarter
|
def_special ChooseStarter
|
||||||
def_special StartWallyTutorialBattle
|
def_special StartWallyTutorialBattle
|
||||||
def_special ChangePokemonNickname
|
def_special ChangePokemonNickname
|
||||||
def_special sub_81B94B0
|
def_special ChoosePartyMon
|
||||||
def_special GetFirstFreePokeblockSlot
|
def_special GetFirstFreePokeblockSlot
|
||||||
def_special DoBerryBlending
|
def_special DoBerryBlending
|
||||||
def_special PlayRoulette
|
def_special PlayRoulette
|
||||||
@@ -230,11 +230,11 @@ gSpecials:: @ 81DBA64
|
|||||||
def_special SetDeptStoreFloor
|
def_special SetDeptStoreFloor
|
||||||
def_special DoLotteryCornerComputerEffect
|
def_special DoLotteryCornerComputerEffect
|
||||||
def_special EndLotteryCornerComputerEffect
|
def_special EndLotteryCornerComputerEffect
|
||||||
def_special sub_81B951C
|
def_special ChooseMonForMoveRelearner
|
||||||
def_special sub_81B968C
|
def_special MoveDeleterChooseMoveToForget
|
||||||
def_special sub_81B9770
|
def_special MoveDeleterForgetMove
|
||||||
def_special sub_81B9718
|
def_special BufferMoveDeleterNicknameAndMove
|
||||||
def_special sub_81B96D0
|
def_special GetNumMovesSelectedMonHas
|
||||||
def_special TeachMoveRelearnerMove
|
def_special TeachMoveRelearnerMove
|
||||||
def_special GetRecordedCyclingRoadResults
|
def_special GetRecordedCyclingRoadResults
|
||||||
def_special Special_BeginCyclingRoadChallenge
|
def_special Special_BeginCyclingRoadChallenge
|
||||||
@@ -338,7 +338,7 @@ gSpecials:: @ 81DBA64
|
|||||||
def_special SetRoute123Weather
|
def_special SetRoute123Weather
|
||||||
def_special ScriptGetMultiplayerId
|
def_special ScriptGetMultiplayerId
|
||||||
def_special ScriptGetPartyMonSpecies
|
def_special ScriptGetPartyMonSpecies
|
||||||
def_special sub_81B98DC
|
def_special IsSelectedMonEgg
|
||||||
def_special TryInitBattleTowerAwardManEventObject
|
def_special TryInitBattleTowerAwardManEventObject
|
||||||
def_special MoveOutOfSecretBaseFromOutside
|
def_special MoveOutOfSecretBaseFromOutside
|
||||||
def_special LoadPlayerBag
|
def_special LoadPlayerBag
|
||||||
@@ -457,10 +457,10 @@ gSpecials:: @ 81DBA64
|
|||||||
def_special ShowScrollableMultichoice
|
def_special ShowScrollableMultichoice
|
||||||
def_special sub_813A630
|
def_special sub_813A630
|
||||||
def_special BufferBattleTowerElevatorFloors
|
def_special BufferBattleTowerElevatorFloors
|
||||||
def_special sub_81C6A94
|
def_special TryStoreHeldItemsInPyramidBag
|
||||||
def_special sub_81C4F24
|
def_special sub_81C4F24
|
||||||
def_special sub_81B95E0
|
def_special DoBattlePyramidMonsHaveHeldItem
|
||||||
def_special sub_81B9620
|
def_special BattlePyramidChooseMonHeldItems
|
||||||
def_special SetBattleTowerLinkPlayerGfx
|
def_special SetBattleTowerLinkPlayerGfx
|
||||||
def_special ShowNatureGirlMessage
|
def_special ShowNatureGirlMessage
|
||||||
def_special ShowBattlePointsWindow
|
def_special ShowBattlePointsWindow
|
||||||
@@ -485,7 +485,7 @@ gSpecials:: @ 81DBA64
|
|||||||
def_special BufferBattleFrontierTutorMoveName
|
def_special BufferBattleFrontierTutorMoveName
|
||||||
def_special CloseBattleFrontierTutorWindow
|
def_special CloseBattleFrontierTutorWindow
|
||||||
def_special sub_813ADD4
|
def_special sub_813ADD4
|
||||||
def_special OpenPartyMenuForMoveTutor
|
def_special ChooseMonForMoveTutor
|
||||||
def_special GetBattleFrontierTutorMoveIndex
|
def_special GetBattleFrontierTutorMoveIndex
|
||||||
def_special sub_813AF48
|
def_special sub_813AF48
|
||||||
def_special DoDeoxysRockInteraction
|
def_special DoDeoxysRockInteraction
|
||||||
@@ -529,7 +529,7 @@ gSpecials:: @ 81DBA64
|
|||||||
def_special ShowTrainerHillRecords
|
def_special ShowTrainerHillRecords
|
||||||
def_special sub_80B4808
|
def_special sub_80B4808
|
||||||
def_special ResetHealLocationFromDewford
|
def_special ResetHealLocationFromDewford
|
||||||
def_special sub_81B9918
|
def_special IsLastMonThatKnowsSurf
|
||||||
def_special CountPartyAliveNonEggMons
|
def_special CountPartyAliveNonEggMons
|
||||||
def_special TryPrepareSecondApproachingTrainer
|
def_special TryPrepareSecondApproachingTrainer
|
||||||
def_special RemoveRecordsWindow
|
def_special RemoveRecordsWindow
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 613 B After Width: | Height: | Size: 613 B |
@@ -409,7 +409,7 @@ $(MASKSGFXDIR)/unknown_C2EA50.4bpp: %.4bpp: %.png
|
|||||||
$(BATTRANSGFXDIR)/vs_frame.4bpp: %.4bpp: %.png
|
$(BATTRANSGFXDIR)/vs_frame.4bpp: %.4bpp: %.png
|
||||||
$(GFX) $< $@ -num_tiles 16
|
$(GFX) $< $@ -num_tiles 16
|
||||||
|
|
||||||
$(INTERFACEGFXDIR)/party_menu_misc.4bpp: %.4bpp: %.png
|
$(INTERFACEGFXDIR)/party_menu_bg.4bpp: %.4bpp: %.png
|
||||||
$(GFX) $< $@ -num_tiles 62
|
$(GFX) $< $@ -num_tiles 62
|
||||||
|
|
||||||
$(TYPESGFXDIR)/move_types.4bpp: $(types:%=$(TYPESGFXDIR)/%.4bpp) $(contest_types:%=$(TYPESGFXDIR)/contest_%.4bpp)
|
$(TYPESGFXDIR)/move_types.4bpp: $(types:%=$(TYPESGFXDIR)/%.4bpp) $(contest_types:%=$(TYPESGFXDIR)/contest_%.4bpp)
|
||||||
|
|||||||
@@ -248,8 +248,8 @@ void nullsub_21(void);
|
|||||||
void PlayerHandleGetRawMonData(void);
|
void PlayerHandleGetRawMonData(void);
|
||||||
void sub_80587B0(void);
|
void sub_80587B0(void);
|
||||||
void sub_805CC00(struct Sprite *sprite);
|
void sub_805CC00(struct Sprite *sprite);
|
||||||
void SetCB2ToReshowScreenAfterMenu(void);
|
void CB2_SetUpReshowBattleScreenAfterMenu(void);
|
||||||
void SetCB2ToReshowScreenAfterMenu2(void);
|
void CB2_SetUpReshowBattleScreenAfterMenu2(void);
|
||||||
void c3_0802FDF4(u8 taskId);
|
void c3_0802FDF4(u8 taskId);
|
||||||
void ActionSelectionCreateCursorAt(u8 cursorPos, u8 unused);
|
void ActionSelectionCreateCursorAt(u8 cursorPos, u8 unused);
|
||||||
void ActionSelectionDestroyCursorAt(u8 cursorPos);
|
void ActionSelectionDestroyCursorAt(u8 cursorPos);
|
||||||
|
|||||||
@@ -77,20 +77,20 @@ void sub_803B3AC(void); // unused
|
|||||||
void sub_803B598(void); // unused
|
void sub_803B598(void); // unused
|
||||||
void BattleTurnPassed(void);
|
void BattleTurnPassed(void);
|
||||||
u8 IsRunningFromBattleImpossible(void);
|
u8 IsRunningFromBattleImpossible(void);
|
||||||
void sub_803BDA0(u8 battlerId);
|
void SwitchPartyOrder(u8 battlerId);
|
||||||
void SwapTurnOrder(u8 id1, u8 id2);
|
void SwapTurnOrder(u8 id1, u8 id2);
|
||||||
u8 GetWhoStrikesFirst(u8 battlerId1, u8 battlerId2, bool8 ignoreChosenMoves);
|
u8 GetWhoStrikesFirst(u8 battlerId1, u8 battlerId2, bool8 ignoreChosenMoves);
|
||||||
void RunBattleScriptCommands_PopCallbacksStack(void);
|
void RunBattleScriptCommands_PopCallbacksStack(void);
|
||||||
void RunBattleScriptCommands(void);
|
void RunBattleScriptCommands(void);
|
||||||
bool8 TryRunFromBattle(u8 battlerId);
|
bool8 TryRunFromBattle(u8 battlerId);
|
||||||
|
|
||||||
extern struct UnknownPokemonStruct4 gUnknown_02022FF8[3];
|
extern struct UnknownPokemonStruct4 gMultiPartnerParty[MULTI_PARTY_SIZE];
|
||||||
|
|
||||||
extern const struct SpriteTemplate gUnknown_0831AC88;
|
extern const struct SpriteTemplate gUnknown_0831AC88;
|
||||||
extern const struct OamData gOamData_831ACA8;
|
extern const struct OamData gOamData_831ACA8;
|
||||||
extern const struct OamData gOamData_831ACB0;
|
extern const struct OamData gOamData_831ACB0;
|
||||||
extern const u8 gTypeEffectiveness[336];
|
extern const u8 gTypeEffectiveness[336];
|
||||||
extern const u8 gTypeNames[][TYPE_NAME_LENGTH + 1];
|
extern const u8 gTypeNames[NUMBER_OF_MON_TYPES][TYPE_NAME_LENGTH + 1];
|
||||||
extern const struct TrainerMoney gTrainerMoneyTable[];
|
extern const struct TrainerMoney gTrainerMoneyTable[];
|
||||||
extern const u8 gAbilityNames[][ABILITY_NAME_LENGTH + 1];
|
extern const u8 gAbilityNames[][ABILITY_NAME_LENGTH + 1];
|
||||||
extern const u8 *const gAbilityDescriptionPointers[];
|
extern const u8 *const gAbilityDescriptionPointers[];
|
||||||
|
|||||||
@@ -36,13 +36,13 @@ extern struct PyramidBagCursorData gPyramidBagCursorData;
|
|||||||
|
|
||||||
void InitBattlePyramidBagCursorPosition(void);
|
void InitBattlePyramidBagCursorPosition(void);
|
||||||
void CB2_PyramidBagMenuFromStartMenu(void);
|
void CB2_PyramidBagMenuFromStartMenu(void);
|
||||||
void sub_81C4F84(void);
|
void CB2_ReturnToPyramidBagMenu(void);
|
||||||
void sub_81C5924(void);
|
void sub_81C5924(void);
|
||||||
void sub_81C59BC(void);
|
void sub_81C59BC(void);
|
||||||
void sub_81C4EFC(void);
|
void sub_81C4EFC(void);
|
||||||
void sub_81C4F98(u8 a0, void (*callback)(void));
|
void GoToBattlePyramidBagMenu(u8 a0, void (*callback)(void));
|
||||||
void sub_81C6714(u8 taskId);
|
void sub_81C6714(u8 taskId);
|
||||||
void sub_81C6A94(void);
|
void TryStoreHeldItemsInPyramidBag(void);
|
||||||
void sub_81C4F24(void);
|
void sub_81C4F24(void);
|
||||||
void sub_81C5B14(u8 taskId);
|
void sub_81C5B14(u8 taskId);
|
||||||
void DisplayItemMessageInBattlePyramid(u8 taskId, const u8 *str, void (*callback)(u8 taskId));
|
void DisplayItemMessageInBattlePyramid(u8 taskId, const u8 *str, void (*callback)(u8 taskId));
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
void AllocateBattleResources(void);
|
void AllocateBattleResources(void);
|
||||||
void FreeBattleResources(void);
|
void FreeBattleResources(void);
|
||||||
void AdjustFriendshipOnBattleFaint(u8 battler);
|
void AdjustFriendshipOnBattleFaint(u8 battler);
|
||||||
void sub_80571DC(u8 battler, u8 arg1);
|
void SwitchPartyOrderInGameMulti(u8 battler, u8 arg1);
|
||||||
u32 sub_805725C(u8 battler);
|
u32 sub_805725C(u8 battler);
|
||||||
|
|
||||||
#endif // GUARD_BATTLE_UTIL_H
|
#endif // GUARD_BATTLE_UTIL_H
|
||||||
|
|||||||
@@ -4,16 +4,17 @@
|
|||||||
#define FRONTIER_CHALLENGE(facility, mode) ((facility << 8) + mode)
|
#define FRONTIER_CHALLENGE(facility, mode) ((facility << 8) + mode)
|
||||||
|
|
||||||
// Battle Frontier facility ids.
|
// Battle Frontier facility ids.
|
||||||
#define FRONTIER_FACILITY_TOWER 0
|
#define FRONTIER_FACILITY_TOWER 0
|
||||||
#define FRONTIER_FACILITY_DOME 1
|
#define FRONTIER_FACILITY_DOME 1
|
||||||
#define FRONTIER_FACILITY_PALACE 2
|
#define FRONTIER_FACILITY_PALACE 2
|
||||||
#define FRONTIER_FACILITY_ARENA 3
|
#define FRONTIER_FACILITY_ARENA 3
|
||||||
#define FRONTIER_FACILITY_FACTORY 4
|
#define FRONTIER_FACILITY_FACTORY 4
|
||||||
#define FRONTIER_FACILITY_PIKE 5
|
#define FRONTIER_FACILITY_PIKE 5
|
||||||
#define FRONTIER_FACILITY_PYRAMID 6
|
#define FRONTIER_FACILITY_PYRAMID 6
|
||||||
#define NUM_FRONTIER_FACILITIES 7
|
#define NUM_FRONTIER_FACILITIES 7
|
||||||
// The multiplayer battle colosseum rooms re-use VAR_FRONTIER_FACILITY.
|
// The multiplayer battle colosseum rooms re-use VAR_FRONTIER_FACILITY.
|
||||||
#define FRONTIER_FACILITY_DOUBLE_COLOSSEUM 9
|
#define FACILITY_UNION_ROOM 8
|
||||||
|
#define FACILITY_MULTI_OR_EREADER 9 // Direct Corner multi battles, multi battle with Steven, and e-Reader battles
|
||||||
|
|
||||||
#define TENT_VERDANTURF 2
|
#define TENT_VERDANTURF 2
|
||||||
#define TENT_FALLARBOR 3
|
#define TENT_FALLARBOR 3
|
||||||
|
|||||||
@@ -16,4 +16,10 @@
|
|||||||
#define CONTEST_CATEGORY_TOUGH 4
|
#define CONTEST_CATEGORY_TOUGH 4
|
||||||
#define CONTEST_CATEGORIES_COUNT 5
|
#define CONTEST_CATEGORIES_COUNT 5
|
||||||
|
|
||||||
|
#define CANT_ENTER_CONTEST 0
|
||||||
|
#define CAN_ENTER_CONTEST_EQUAL_RANK 1
|
||||||
|
#define CAN_ENTER_CONTEST_HIGH_RANK 2
|
||||||
|
#define CANT_ENTER_CONTEST_EGG 3
|
||||||
|
#define CANT_ENTER_CONTEST_FAINTED 4
|
||||||
|
|
||||||
#endif // GUARD_CONSTANTS_CONTEST_H
|
#endif // GUARD_CONSTANTS_CONTEST_H
|
||||||
|
|||||||
@@ -968,7 +968,7 @@
|
|||||||
#define FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS 0x39D
|
#define FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS 0x39D
|
||||||
#define FLAG_HIDE_MT_CHIMNEY_TEAM_AQUA 0x39E
|
#define FLAG_HIDE_MT_CHIMNEY_TEAM_AQUA 0x39E
|
||||||
#define FLAG_HIDE_MT_CHIMNEY_TEAM_MAGMA 0x39F
|
#define FLAG_HIDE_MT_CHIMNEY_TEAM_MAGMA 0x39F
|
||||||
#define FLAG_HIDE_FALLARBOR_HOUSE_1_PROF_COZMO 0x3A0
|
#define FLAG_HIDE_FALLARBOR_HOUSE_PROF_COZMO 0x3A0
|
||||||
#define FLAG_HIDE_LAVARIDGE_TOWN_RIVAL_1 0x3A1
|
#define FLAG_HIDE_LAVARIDGE_TOWN_RIVAL_1 0x3A1
|
||||||
#define FLAG_HIDE_LAVARIDGE_TOWN_RIVAL_2 0x3A2
|
#define FLAG_HIDE_LAVARIDGE_TOWN_RIVAL_2 0x3A2
|
||||||
#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_1 0x3A3
|
#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_1 0x3A3
|
||||||
@@ -1637,6 +1637,6 @@
|
|||||||
#define FLAG_DONT_TRANSITION_MUSIC 0x4001
|
#define FLAG_DONT_TRANSITION_MUSIC 0x4001
|
||||||
#define FLAG_SPECIAL_FLAG_0x4002 0x4002
|
#define FLAG_SPECIAL_FLAG_0x4002 0x4002
|
||||||
#define FLAG_SPECIAL_FLAG_0x4003 0x4003
|
#define FLAG_SPECIAL_FLAG_0x4003 0x4003
|
||||||
#define FLAG_SPECIAL_FLAG_0x4004 0x4004
|
#define FLAG_STORING_ITEMS_IN_PYRAMID_BAG 0x4004
|
||||||
|
|
||||||
#endif // GUARD_CONSTANTS_FLAGS_H
|
#endif // GUARD_CONSTANTS_FLAGS_H
|
||||||
|
|||||||
@@ -54,6 +54,8 @@
|
|||||||
|
|
||||||
#define TRAINER_ID_LENGTH 4
|
#define TRAINER_ID_LENGTH 4
|
||||||
#define PARTY_SIZE 6
|
#define PARTY_SIZE 6
|
||||||
|
#define FRONTIER_PARTY_SIZE 3
|
||||||
|
#define MULTI_PARTY_SIZE PARTY_SIZE / 2
|
||||||
#define MAX_MON_MOVES 4
|
#define MAX_MON_MOVES 4
|
||||||
|
|
||||||
// string lengths
|
// string lengths
|
||||||
|
|||||||
@@ -98,8 +98,8 @@
|
|||||||
#define MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM (3 | (5 << 8))
|
#define MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM (3 | (5 << 8))
|
||||||
#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F (4 | (5 << 8))
|
#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F (4 | (5 << 8))
|
||||||
#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F (5 | (5 << 8))
|
#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F (5 | (5 << 8))
|
||||||
#define MAP_FALLARBOR_TOWN_HOUSE1 (6 | (5 << 8))
|
#define MAP_FALLARBOR_TOWN_COZMOS_HOUSE (6 | (5 << 8))
|
||||||
#define MAP_FALLARBOR_TOWN_HOUSE2 (7 | (5 << 8))
|
#define MAP_FALLARBOR_TOWN_MOVE_RELEARNERS_HOUSE (7 | (5 << 8))
|
||||||
|
|
||||||
// Map Group 6
|
// Map Group 6
|
||||||
#define MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY (0 | (6 << 8))
|
#define MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY (0 | (6 << 8))
|
||||||
|
|||||||
@@ -10,13 +10,6 @@
|
|||||||
#define AILMENT_PKRS 6
|
#define AILMENT_PKRS 6
|
||||||
#define AILMENT_FNT 7
|
#define AILMENT_FNT 7
|
||||||
|
|
||||||
#define PARTY_CHOOSE_MON 0
|
|
||||||
#define PARTY_MUST_CHOOSE_MON 1
|
|
||||||
#define PARTY_CANT_SWITCH 2
|
|
||||||
#define PARTY_USE_ITEM_ON 3
|
|
||||||
#define PARTY_ABILITY_PREVENTS 4
|
|
||||||
#define PARTY_GIVE_ITEM 5
|
|
||||||
|
|
||||||
#define TUTOR_MOVE_MEGA_PUNCH 0
|
#define TUTOR_MOVE_MEGA_PUNCH 0
|
||||||
#define TUTOR_MOVE_SWORDS_DANCE 1
|
#define TUTOR_MOVE_SWORDS_DANCE 1
|
||||||
#define TUTOR_MOVE_MEGA_KICK 2
|
#define TUTOR_MOVE_MEGA_KICK 2
|
||||||
@@ -49,4 +42,91 @@
|
|||||||
#define TUTOR_MOVE_FURY_CUTTER 29
|
#define TUTOR_MOVE_FURY_CUTTER 29
|
||||||
#define TUTOR_MOVE_COUNT 30
|
#define TUTOR_MOVE_COUNT 30
|
||||||
|
|
||||||
|
#define PARTY_LAYOUT_SINGLE 0
|
||||||
|
#define PARTY_LAYOUT_DOUBLE 1
|
||||||
|
#define PARTY_LAYOUT_MULTI 2
|
||||||
|
#define PARTY_LAYOUT_MULTI_SHOWCASE 3 // The layout during the screen that appears just before a multi battle
|
||||||
|
#define PARTY_LAYOUT_COUNT 4
|
||||||
|
#define KEEP_PARTY_LAYOUT 0xFF
|
||||||
|
|
||||||
|
#define PARTY_MENU_TYPE_FIELD 0
|
||||||
|
#define PARTY_MENU_TYPE_IN_BATTLE 1
|
||||||
|
#define PARTY_MENU_TYPE_CONTEST 2
|
||||||
|
#define PARTY_MENU_TYPE_CHOOSE_MON 3
|
||||||
|
#define PARTY_MENU_TYPE_CHOOSE_HALF 4 // multi battles, eReader battles, and some battle facilities
|
||||||
|
#define PARTY_MENU_TYPE_MULTI_SHOWCASE 5
|
||||||
|
#define PARTY_MENU_TYPE_DAYCARE 6
|
||||||
|
#define PARTY_MENU_TYPE_MOVE_RELEARNER 7
|
||||||
|
#define PARTY_MENU_TYPE_UNION_ROOM_REGISTER 8 // trading board
|
||||||
|
#define PARTY_MENU_TYPE_UNION_ROOM_TRADE 9 // trading board
|
||||||
|
#define PARTY_MENU_TYPE_SPIN_TRADE 10 // Unused beta for Gen IV's Spin Trade
|
||||||
|
#define PARTY_MENU_TYPE_MINIGAME 11
|
||||||
|
#define PARTY_MENU_TYPE_STORE_PYRAMID_HELD_ITEMS 12
|
||||||
|
|
||||||
|
#define PARTY_ACTION_CHOOSE_MON 0
|
||||||
|
#define PARTY_ACTION_SEND_OUT 1
|
||||||
|
#define PARTY_ACTION_CANT_SWITCH 2
|
||||||
|
#define PARTY_ACTION_USE_ITEM 3
|
||||||
|
#define PARTY_ACTION_ABILITY_PREVENTS 4
|
||||||
|
#define PARTY_ACTION_GIVE_ITEM 5
|
||||||
|
#define PARTY_ACTION_GIVE_PC_ITEM 6 // Unused. Not possible to give non-mail items directly from PC
|
||||||
|
#define PARTY_ACTION_GIVE_MAILBOX_MAIL 7
|
||||||
|
#define PARTY_ACTION_SWITCH 8
|
||||||
|
#define PARTY_ACTION_SWITCHING 9
|
||||||
|
#define PARTY_ACTION_SOFTBOILED 10
|
||||||
|
#define PARTY_ACTION_CHOOSE_AND_CLOSE 11
|
||||||
|
#define PARTY_ACTION_MOVE_TUTOR 12
|
||||||
|
#define PARTY_ACTION_MINIGAME 13
|
||||||
|
#define PARTY_ACTION_REUSABLE_ITEM 14 // Unused. The only reusable items are handled separately
|
||||||
|
|
||||||
|
// IDs for DisplayPartyMenuStdMessage, to display the message at the bottom of the party menu
|
||||||
|
#define PARTY_MSG_CHOOSE_MON 0
|
||||||
|
#define PARTY_MSG_CHOOSE_MON_OR_CANCEL 1
|
||||||
|
#define PARTY_MSG_CHOOSE_MON_AND_CONFIRM 2
|
||||||
|
#define PARTY_MSG_MOVE_TO_WHERE 3
|
||||||
|
#define PARTY_MSG_TEACH_WHICH_MON 4
|
||||||
|
#define PARTY_MSG_USE_ON_WHICH_MON 5
|
||||||
|
#define PARTY_MSG_GIVE_TO_WHICH_MON 6
|
||||||
|
#define PARTY_MSG_NOTHING_TO_CUT 7
|
||||||
|
#define PARTY_MSG_CANT_SURF_HERE 8
|
||||||
|
#define PARTY_MSG_ALREADY_SURFING 9
|
||||||
|
#define PARTY_MSG_CURRENT_TOO_FAST 10
|
||||||
|
#define PARTY_MSG_ENJOY_CYCLING 11
|
||||||
|
#define PARTY_MSG_ALREADY_IN_USE 12
|
||||||
|
#define PARTY_MSG_CANT_USE_HERE 13
|
||||||
|
#define PARTY_MSG_NO_MON_FOR_BATTLE 14
|
||||||
|
#define PARTY_MSG_CHOOSE_MON_2 15
|
||||||
|
#define PARTY_MSG_NOT_ENOUGH_HP 16
|
||||||
|
#define PARTY_MSG_X_MONS_ARE_NEEDED 17
|
||||||
|
#define PARTY_MSG_MONS_CANT_BE_SAME 18
|
||||||
|
#define PARTY_MSG_NO_SAME_HOLD_ITEMS 19
|
||||||
|
#define PARTY_MSG_UNUSED 20
|
||||||
|
#define PARTY_MSG_DO_WHAT_WITH_MON 21
|
||||||
|
#define PARTY_MSG_RESTORE_WHICH_MOVE 22
|
||||||
|
#define PARTY_MSG_BOOST_PP_WHICH_MOVE 23
|
||||||
|
#define PARTY_MSG_DO_WHAT_WITH_ITEM 24
|
||||||
|
#define PARTY_MSG_DO_WHAT_WITH_MAIL 25
|
||||||
|
#define PARTY_MSG_ALREADY_HOLDING_ONE 26
|
||||||
|
#define PARTY_MSG_NONE 127
|
||||||
|
|
||||||
|
// IDs for DisplayPartyPokemonDescriptionText, to display a message in the party pokemon's box
|
||||||
|
#define PARTYBOX_DESC_NO_USE 0
|
||||||
|
#define PARTYBOX_DESC_ABLE_3 1
|
||||||
|
#define PARTYBOX_DESC_FIRST 2
|
||||||
|
#define PARTYBOX_DESC_SECOND 3
|
||||||
|
#define PARTYBOX_DESC_THIRD 4
|
||||||
|
#define PARTYBOX_DESC_FOURTH 5
|
||||||
|
#define PARTYBOX_DESC_ABLE 6
|
||||||
|
#define PARTYBOX_DESC_NOT_ABLE 7
|
||||||
|
#define PARTYBOX_DESC_ABLE_2 8
|
||||||
|
#define PARTYBOX_DESC_NOT_ABLE_2 9
|
||||||
|
#define PARTYBOX_DESC_LEARNED 10
|
||||||
|
#define PARTYBOX_DESC_HAVE 11
|
||||||
|
#define PARTYBOX_DESC_DONT_HAVE 12
|
||||||
|
|
||||||
|
#define SELECTWINDOW_ACTIONS 0
|
||||||
|
#define SELECTWINDOW_ITEM 1
|
||||||
|
#define SELECTWINDOW_MAIL 2
|
||||||
|
#define SELECTWINDOW_MOVES 3
|
||||||
|
|
||||||
#endif // GUARD_CONSTANTS_PARTY_MENU_H
|
#endif // GUARD_CONSTANTS_PARTY_MENU_H
|
||||||
|
|||||||
@@ -184,7 +184,6 @@
|
|||||||
#define OT_ID_PRESET 1
|
#define OT_ID_PRESET 1
|
||||||
#define OT_ID_RANDOM_NO_SHINY 2
|
#define OT_ID_RANDOM_NO_SHINY 2
|
||||||
|
|
||||||
|
|
||||||
#define MON_GIVEN_TO_PARTY 0
|
#define MON_GIVEN_TO_PARTY 0
|
||||||
#define MON_GIVEN_TO_PC 1
|
#define MON_GIVEN_TO_PC 1
|
||||||
#define MON_CANT_GIVE 2
|
#define MON_CANT_GIVE 2
|
||||||
@@ -193,6 +192,9 @@
|
|||||||
#define PLAYER_HAS_ONE_MON 1
|
#define PLAYER_HAS_ONE_MON 1
|
||||||
#define PLAYER_HAS_ONE_USABLE_MON 2
|
#define PLAYER_HAS_ONE_USABLE_MON 2
|
||||||
|
|
||||||
|
#define MON_ALREADY_KNOWS_MOVE 0xFFFE
|
||||||
|
#define MON_HAS_MAX_MOVES 0xFFFF
|
||||||
|
|
||||||
#define MON_MALE 0x00
|
#define MON_MALE 0x00
|
||||||
#define MON_FEMALE 0xFE
|
#define MON_FEMALE 0xFE
|
||||||
#define MON_GENDERLESS 0xFF
|
#define MON_GENDERLESS 0xFF
|
||||||
|
|||||||
@@ -20,13 +20,13 @@
|
|||||||
#define READY_FINISH_TRADE 1
|
#define READY_FINISH_TRADE 1
|
||||||
#define FINISH_TRADE 2
|
#define FINISH_TRADE 2
|
||||||
|
|
||||||
// Return values for CanTradeSelectedMon and CanTradeSelectedPartyMenuMon
|
// Return values for CanTradeSelectedMon and CanSpinTradeMon
|
||||||
#define CAN_TRADE_MON 0
|
#define CAN_TRADE_MON 0
|
||||||
#define CANT_TRADE_LAST_MON 1
|
#define CANT_TRADE_LAST_MON 1
|
||||||
#define CANT_TRADE_NATIONAL 2
|
#define CANT_TRADE_NATIONAL 2
|
||||||
#define CANT_TRADE_EGG 3
|
#define CANT_TRADE_EGG_YET 3
|
||||||
#define CANT_TRADE_INVALID_MON 4
|
#define CANT_TRADE_INVALID_MON 4
|
||||||
#define CANT_TRADE_EGG2 5
|
#define CANT_TRADE_EGG_YET2 5
|
||||||
|
|
||||||
// Return values for CheckValidityOfTradeMons
|
// Return values for CheckValidityOfTradeMons
|
||||||
#define PLAYER_MON_INVALID 0
|
#define PLAYER_MON_INVALID 0
|
||||||
|
|||||||
+1
-1
@@ -466,7 +466,7 @@ void CB2_StartContest(void);
|
|||||||
void sub_80DA8C8(u8 partyIndex);
|
void sub_80DA8C8(u8 partyIndex);
|
||||||
void sub_80DAB8C(u8 contestType, u8 rank);
|
void sub_80DAB8C(u8 contestType, u8 rank);
|
||||||
void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame);
|
void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame);
|
||||||
u8 sub_80DAE0C(struct Pokemon *pkmn);
|
u8 GetContestEntryEligibility(struct Pokemon *pkmn);
|
||||||
void sub_80DB09C(u8 contestCategory);
|
void sub_80DB09C(u8 contestCategory);
|
||||||
bool8 IsSpeciesNotUnown(u16 species);
|
bool8 IsSpeciesNotUnown(u16 species);
|
||||||
bool8 Contest_IsMonsTurnDisabled(u8 a);
|
bool8 Contest_IsMonsTurnDisabled(u8 a);
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ extern bool8 (*gFieldCallback2)(void);
|
|||||||
u32 FieldEffectStart(u8);
|
u32 FieldEffectStart(u8);
|
||||||
bool8 FieldEffectActiveListContains(u8 id);
|
bool8 FieldEffectActiveListContains(u8 id);
|
||||||
void FieldEffectActiveListClear(void);
|
void FieldEffectActiveListClear(void);
|
||||||
void sub_80B69DC(void);
|
void ReturnToFieldFromFlyMapSelect(void);
|
||||||
u8 AddNewGameBirchObject(s16, s16, u8);
|
u8 AddNewGameBirchObject(s16, s16, u8);
|
||||||
void FieldEffectStop(struct Sprite *sprite, u8 id);
|
void FieldEffectStop(struct Sprite *sprite, u8 id);
|
||||||
u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buffer);
|
u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buffer);
|
||||||
|
|||||||
+2
-2
@@ -28,8 +28,8 @@ bool8 sub_80E1584(void);
|
|||||||
|
|
||||||
// soft-boiled
|
// soft-boiled
|
||||||
bool8 SetUpFieldMove_SoftBoiled(void);
|
bool8 SetUpFieldMove_SoftBoiled(void);
|
||||||
void sub_81615A8(u8 taskId);
|
void Task_TryUseSoftboiledOnPartyMon(u8 taskId);
|
||||||
void sub_8161560(u8 taskId);
|
void ChooseMonForSoftboiled(u8 taskId);
|
||||||
|
|
||||||
// flash
|
// flash
|
||||||
bool8 SetUpFieldMove_Flash(void);
|
bool8 SetUpFieldMove_Flash(void);
|
||||||
|
|||||||
+6
-6
@@ -220,7 +220,7 @@ struct Apprentice
|
|||||||
u8 lvlMode:2; // + 1
|
u8 lvlMode:2; // + 1
|
||||||
u8 field_1;
|
u8 field_1;
|
||||||
u8 number;
|
u8 number;
|
||||||
struct ApprenticeMon party[3];
|
struct ApprenticeMon party[MULTI_PARTY_SIZE];
|
||||||
u16 easyChatWords[6];
|
u16 easyChatWords[6];
|
||||||
u8 playerId[TRAINER_ID_LENGTH];
|
u8 playerId[TRAINER_ID_LENGTH];
|
||||||
u8 playerName[PLAYER_NAME_LENGTH];
|
u8 playerName[PLAYER_NAME_LENGTH];
|
||||||
@@ -282,7 +282,7 @@ struct BattleTowerEReaderTrainer
|
|||||||
/*0x10*/ u16 greeting[6];
|
/*0x10*/ u16 greeting[6];
|
||||||
/*0x1C*/ u16 farewellPlayerLost[6];
|
/*0x1C*/ u16 farewellPlayerLost[6];
|
||||||
/*0x28*/ u16 farewellPlayerWon[6];
|
/*0x28*/ u16 farewellPlayerWon[6];
|
||||||
/*0x34*/ struct BattleTowerPokemon party[3];
|
/*0x34*/ struct BattleTowerPokemon party[FRONTIER_PARTY_SIZE];
|
||||||
/*0xB8*/ u32 checksum;
|
/*0xB8*/ u32 checksum;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -329,7 +329,7 @@ struct BattleFrontier
|
|||||||
/*0xCA9*/ u8 field_CA9_d:1; // 0x20
|
/*0xCA9*/ u8 field_CA9_d:1; // 0x20
|
||||||
/*0xCA9*/ u8 field_CA9_e:1; // 0x40
|
/*0xCA9*/ u8 field_CA9_e:1; // 0x40
|
||||||
/*0xCA9*/ u8 field_CA9_f:1; // 0x80
|
/*0xCA9*/ u8 field_CA9_f:1; // 0x80
|
||||||
/*0xCAA*/ u16 selectedPartyMons[3];
|
/*0xCAA*/ u16 selectedPartyMons[FRONTIER_PARTY_SIZE];
|
||||||
/*0xCB0*/ u16 field_CB0;
|
/*0xCB0*/ u16 field_CB0;
|
||||||
/*0xCB2*/ u16 curChallengeBattleNum; // In case of battle pyramid, the floor.
|
/*0xCB2*/ u16 curChallengeBattleNum; // In case of battle pyramid, the floor.
|
||||||
/*0xCB4*/ u16 trainerIds[20];
|
/*0xCB4*/ u16 trainerIds[20];
|
||||||
@@ -356,7 +356,7 @@ struct BattleFrontier
|
|||||||
/*0xD14*/ u16 domeRecordWinStreaks[2][2];
|
/*0xD14*/ u16 domeRecordWinStreaks[2][2];
|
||||||
/*0xD1C*/ u16 domeTotalChampionships[2][2];
|
/*0xD1C*/ u16 domeTotalChampionships[2][2];
|
||||||
/*0xD24*/ struct BattleDomeTrainer domeTrainers[DOME_TOURNAMENT_TRAINERS_COUNT];
|
/*0xD24*/ struct BattleDomeTrainer domeTrainers[DOME_TOURNAMENT_TRAINERS_COUNT];
|
||||||
/*0xD64*/ u16 domeMonIds[DOME_TOURNAMENT_TRAINERS_COUNT][3];
|
/*0xD64*/ u16 domeMonIds[DOME_TOURNAMENT_TRAINERS_COUNT][FRONTIER_PARTY_SIZE];
|
||||||
/*0xDC4*/ u16 field_DC4;
|
/*0xDC4*/ u16 field_DC4;
|
||||||
/*0xDC6*/ u16 field_DC6;
|
/*0xDC6*/ u16 field_DC6;
|
||||||
/*0xDC8*/ u16 palaceWinStreaks[2][2];
|
/*0xDC8*/ u16 palaceWinStreaks[2][2];
|
||||||
@@ -375,7 +375,7 @@ struct BattleFrontier
|
|||||||
/*0xE10*/ u8 pikeHintedRoomIndex:3;
|
/*0xE10*/ u8 pikeHintedRoomIndex:3;
|
||||||
/*0xE10*/ u8 pikeHintedRoomType:4;
|
/*0xE10*/ u8 pikeHintedRoomType:4;
|
||||||
/*0xE10*/ u8 pikeHealingRoomsDisabled:1;
|
/*0xE10*/ u8 pikeHealingRoomsDisabled:1;
|
||||||
/*0xE12*/ u16 pikeHeldItemsBackup[3];
|
/*0xE12*/ u16 pikeHeldItemsBackup[FRONTIER_PARTY_SIZE];
|
||||||
/*0xE18*/ u16 pyramidRewardItem;
|
/*0xE18*/ u16 pyramidRewardItem;
|
||||||
/*0xE1A*/ u16 pyramidWinStreaks[2];
|
/*0xE1A*/ u16 pyramidWinStreaks[2];
|
||||||
/*0xE1E*/ u16 pyramidRecordStreaks[2];
|
/*0xE1E*/ u16 pyramidRecordStreaks[2];
|
||||||
@@ -419,7 +419,7 @@ struct PlayersApprentice
|
|||||||
/*0xB2*/ u8 field_B2_0:3;
|
/*0xB2*/ u8 field_B2_0:3;
|
||||||
/*0xB2*/ u8 field_B2_1:2;
|
/*0xB2*/ u8 field_B2_1:2;
|
||||||
/*0xB3*/ u8 field_B3;
|
/*0xB3*/ u8 field_B3;
|
||||||
/*0xB4*/ u8 monIds[3];
|
/*0xB4*/ u8 monIds[MULTI_PARTY_SIZE];
|
||||||
/*0xB8*/ struct Sav2_B8 field_B8[9];
|
/*0xB8*/ struct Sav2_B8 field_B8[9];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -3916,9 +3916,9 @@ extern const u16 gIntro2FlygonPal[];
|
|||||||
extern const u32 gIntro2FlygonGfx[];
|
extern const u32 gIntro2FlygonGfx[];
|
||||||
|
|
||||||
// party menu graphics
|
// party menu graphics
|
||||||
extern const u32 gPartyMenuMisc_Gfx[];
|
extern const u32 gPartyMenuBg_Gfx[];
|
||||||
extern const u32 gPartyMenuMisc_Tilemap[];
|
extern const u32 gPartyMenuBg_Tilemap[];
|
||||||
extern const u32 gPartyMenuMisc_Pal[];
|
extern const u32 gPartyMenuBg_Pal[];
|
||||||
|
|
||||||
// berry pics
|
// berry pics
|
||||||
extern const u32 gBerryPic_Cheri[];
|
extern const u32 gBerryPic_Cheri[];
|
||||||
|
|||||||
+2
-3
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
#ifndef GUARD_MENU_H
|
#ifndef GUARD_MENU_H
|
||||||
#define GUARD_MENU_H
|
#define GUARD_MENU_H
|
||||||
|
|
||||||
@@ -87,7 +86,7 @@ void RemoveMapNamePopUpWindow(void);
|
|||||||
u8 GetMapNamePopUpWindowId(void);
|
u8 GetMapNamePopUpWindowId(void);
|
||||||
u8 AddMapNamePopUpWindow(void);
|
u8 AddMapNamePopUpWindow(void);
|
||||||
void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 letterSpacing, u8 lineSpacing);
|
void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 letterSpacing, u8 lineSpacing);
|
||||||
void sub_8199C30(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette);
|
void SetBgTilemapPalette(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette);
|
||||||
void sub_8199D3C(void *ptr, int delta, int width, int height, bool32 is8BPP);
|
void sub_8199D3C(void *ptr, int delta, int width, int height, bool32 is8BPP);
|
||||||
void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyToVram);
|
void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyToVram);
|
||||||
void sub_8197AE8(bool8 copyToVram);
|
void sub_8197AE8(bool8 copyToVram);
|
||||||
@@ -95,7 +94,7 @@ void PrintMenuGridTable(u8 windowId, u8 optionWidth, u8 columns, u8 rows, const
|
|||||||
s8 Menu_ProcessInputGridLayout(void);
|
s8 Menu_ProcessInputGridLayout(void);
|
||||||
u8 InitMenuInUpperLeftCorner(u8 windowId, u8 itemCount, u8 initialCursorPos, bool8 APressMuted);
|
u8 InitMenuInUpperLeftCorner(u8 windowId, u8 itemCount, u8 initialCursorPos, bool8 APressMuted);
|
||||||
s8 Menu_ProcessInputNoWrapAround_other(void);
|
s8 Menu_ProcessInputNoWrapAround_other(void);
|
||||||
void sub_8199CBC(u8 bgId, u16 *dest, u8 left, u8 top, u8 width, u8 height);
|
void CopyToBufferFromBgTilemap(u8 bgId, u16 *dest, u8 left, u8 top, u8 width, u8 height);
|
||||||
u8 sub_81980F0(u8 bg, u8 xPos, u8 yPos, u8 palette, u16 baseTile);
|
u8 sub_81980F0(u8 bg, u8 xPos, u8 yPos, u8 palette, u16 baseTile);
|
||||||
void sub_8198314(void);
|
void sub_8198314(void);
|
||||||
void sub_8198180(const u8 *string, u8 a2, bool8 copyToVram);
|
void sub_8198180(const u8 *string, u8 a2, bool8 copyToVram);
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
#include "task.h"
|
#include "task.h"
|
||||||
#include "window.h"
|
#include "window.h"
|
||||||
|
|
||||||
|
#define MENU_L_PRESSED 1
|
||||||
|
#define MENU_R_PRESSED 2
|
||||||
|
|
||||||
// Exported type declarations
|
// Exported type declarations
|
||||||
|
|
||||||
struct YesNoFuncTable
|
struct YesNoFuncTable
|
||||||
@@ -23,8 +26,8 @@ bool16 RunTextPrintersRetIsActive(u8 textPrinterId);
|
|||||||
void DoYesNoFuncWithChoice(u8 taskId, const struct YesNoFuncTable *data);
|
void DoYesNoFuncWithChoice(u8 taskId, const struct YesNoFuncTable *data);
|
||||||
void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 arg2, u8 arg3, u8 arg4, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo);
|
void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 arg2, u8 arg3, u8 arg4, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo);
|
||||||
bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1);
|
bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1);
|
||||||
u8 GetLRKeysState(void);
|
u8 GetLRKeysPressed(void);
|
||||||
u8 sub_812210C(void);
|
u8 GetLRKeysPressedAndHeld(void);
|
||||||
bool8 sub_8122148(u16 itemId);
|
bool8 sub_8122148(u16 itemId);
|
||||||
bool8 itemid_80BF6D8_mail_related(u16 itemId);
|
bool8 itemid_80BF6D8_mail_related(u16 itemId);
|
||||||
bool8 sub_81221AC(void);
|
bool8 sub_81221AC(void);
|
||||||
|
|||||||
+60
-63
@@ -4,93 +4,90 @@
|
|||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
|
|
||||||
#include "constants/party_menu.h"
|
// seems like the last two fields may have been left as all-purpose vars
|
||||||
|
// and the second of the two just happens to only be used in one case
|
||||||
struct Struct203CEC8
|
struct PartyMenu
|
||||||
{
|
{
|
||||||
MainCallback exitCallback;
|
MainCallback exitCallback;
|
||||||
TaskFunc unk4;
|
TaskFunc task;
|
||||||
u8 unk8_0:4;
|
u8 menuType:4;
|
||||||
u8 mode:2;
|
u8 layout:2;
|
||||||
u8 unk8_2:2;
|
|
||||||
s8 slotId;
|
s8 slotId;
|
||||||
s8 unkA;
|
s8 slotId2;
|
||||||
u8 unkB;
|
u8 action;
|
||||||
u16 unkC;
|
u16 bagItem;
|
||||||
s16 unkE;
|
s16 data1; // used variously as a moveId, counter, moveSlotId, or cursorPos
|
||||||
s16 unk10;
|
s16 learnMoveState; // data2, used only as a learn move state
|
||||||
};
|
};
|
||||||
|
|
||||||
extern struct Struct203CEC8 gUnknown_0203CEC8;
|
extern struct PartyMenu gPartyMenu;
|
||||||
extern u8 gUnknown_0203CEE8;
|
extern bool8 gPartyMenuUseExitCallback;
|
||||||
extern u8 gUnknown_0203CEE9;
|
extern u8 gSelectedMonPartyId;
|
||||||
extern MainCallback gPostMenuFieldCallback;
|
extern MainCallback gPostMenuFieldCallback;
|
||||||
extern u8 gSelectedOrderFromParty[4];
|
extern u8 gSelectedOrderFromParty[4];
|
||||||
extern u8 gUnknown_0203CF00[3];
|
extern u8 gBattlePartyCurrentOrder[3];
|
||||||
|
|
||||||
extern void (*gUnknown_03006328)(u8, TaskFunc);
|
extern void (*gItemUseCB)(u8, TaskFunc);
|
||||||
|
|
||||||
extern const u16 gTutorMoves[];
|
extern const u16 gTutorMoves[];
|
||||||
|
|
||||||
void sub_81B0FCC(u8 slot, u8 b);
|
void AnimatePartySlot(u8 slot, u8 animNum);
|
||||||
bool8 IsMultiBattle(void);
|
bool8 IsMultiBattle(void);
|
||||||
u8 GetCursorSelectionMonId(void);
|
u8 GetCursorSelectionMonId(void);
|
||||||
u8 sub_81B1360(void);
|
u8 GetPartyMenuType(void);
|
||||||
void sub_81B1370(u8 taskId);
|
void Task_HandleChooseMonInput(u8 taskId);
|
||||||
u8* GetMonNickname(struct Pokemon *mon, u8 *dest);
|
u8* GetMonNickname(struct Pokemon *mon, u8 *dest);
|
||||||
u8 DisplayPartyMenuMessage(const u8* str, u8 b);
|
u8 DisplayPartyMenuMessage(const u8* str, bool8 keepOpen);
|
||||||
bool8 sub_81B1BD4(void);
|
bool8 IsPartyMenuTextPrinterActive(void);
|
||||||
void sub_81B1F18(u8 taskId, u8 slot, s8 c, s16 HPDifference, TaskFunc func);
|
void PartyMenuModifyHP(u8 taskId, u8 slot, s8 hpIncrement, s16 HPDifference, TaskFunc task);
|
||||||
u8 pokemon_ailments_get_primary(u32 status);
|
u8 GetAilmentFromStatus(u32 status);
|
||||||
u8 GetMonAilment(struct Pokemon *mon);
|
u8 GetMonAilment(struct Pokemon *mon);
|
||||||
void DisplayPartyMenuStdMessage(u32 stringID);
|
void DisplayPartyMenuStdMessage(u32 stringId);
|
||||||
void sub_81B47E0(u8 taskId);
|
|
||||||
bool8 FieldCallback_PrepareFadeInFromMenu(void);
|
bool8 FieldCallback_PrepareFadeInFromMenu(void);
|
||||||
void sub_81B58A8(void);
|
void CB2_ReturnToPartyMenuFromFlyMap(void);
|
||||||
void LoadHeldItemIcons(void);
|
void LoadHeldItemIcons(void);
|
||||||
void DrawHeldItemIconsForTrade(u8 *a, u8 *b, u8 c);
|
void DrawHeldItemIconsForTrade(u8 *partyCounts, u8 *partySpriteIds, u8 whichParty);
|
||||||
void sub_81B617C(void);
|
void CB2_ShowPartyMenuForItemUse(void);
|
||||||
void ItemUseCB_Medicine(u8 taskId, TaskFunc task);
|
void ItemUseCB_Medicine(u8 taskId, TaskFunc task);
|
||||||
void sub_81B67C8(u8 taskId, TaskFunc task);
|
void ItemUseCB_ReduceEV(u8 taskId, TaskFunc task);
|
||||||
void dp05_ether(u8 taskId, TaskFunc task);
|
void ItemUseCB_PPRecovery(u8 taskId, TaskFunc task);
|
||||||
void dp05_pp_up(u8 taskId, TaskFunc task);
|
void ItemUseCB_PPUp(u8 taskId, TaskFunc task);
|
||||||
u16 ItemIdToBattleMoveId(u16 item);
|
u16 ItemIdToBattleMoveId(u16 item);
|
||||||
bool8 IsMoveHm(u16 move);
|
bool8 IsMoveHm(u16 move);
|
||||||
bool8 MonKnowsMove(struct Pokemon *mon, u16 move);
|
bool8 MonKnowsMove(struct Pokemon *mon, u16 move);
|
||||||
void sub_81B6DC4(u8 taskId, TaskFunc task);
|
void ItemUseCB_TMHM(u8 taskId, TaskFunc task);
|
||||||
void dp05_rare_candy(u8 taskId, TaskFunc task);
|
void ItemUseCB_RareCandy(u8 taskId, TaskFunc task);
|
||||||
void sub_81B79E8(u8 taskId, TaskFunc task);
|
void ItemUseCB_SacredAsh(u8 taskId, TaskFunc task);
|
||||||
void sub_81B7C74(u8 taskId, TaskFunc task);
|
void ItemUseCB_EvolutionStone(u8 taskId, TaskFunc task);
|
||||||
u8 GetItemEffectType(u16 item);
|
u8 GetItemEffectType(u16 item);
|
||||||
void CB2_PartyMenuFromStartMenu(void);
|
void CB2_PartyMenuFromStartMenu(void);
|
||||||
void sub_81B7F60(void);
|
void CB2_ChooseMonToGiveItem(void);
|
||||||
void sub_81B8448(void);
|
void ChooseMonToGiveMailFromMailbox(void);
|
||||||
void InitChooseHalfPartyForBattle(u8 unused);
|
void InitChooseHalfPartyForBattle(u8 unused);
|
||||||
void sub_81B8558(void);
|
void ClearSelectedPartyOrder(void);
|
||||||
void sub_81B8904(u8 initArg, MainCallback callback);
|
void ChooseMonForTradingBoard(u8 menuType, MainCallback callback);
|
||||||
void OpenPartyMenuForMoveTutor(void);
|
void ChooseMonForMoveTutor(void);
|
||||||
void ChooseMonForWirelessMinigame(void);
|
void ChooseMonForWirelessMinigame(void);
|
||||||
void ChooseMonForWirelessMinigame(void);
|
void OpenPartyMenuInBattle(u8 partyAction);
|
||||||
void OpenPartyMenuInBattle(u8 arg);
|
void ChooseMonForInBattleItem(void);
|
||||||
void sub_81B89F0(void);
|
void BufferBattlePartyCurrentOrder(void);
|
||||||
void sub_81B8C68(void);
|
void BufferBattlePartyCurrentOrderBySide(u8 battlerId, u8 flankId);
|
||||||
void sub_81B8D64(u8 battlerId, u8 multiplayerFlag);
|
void SwitchPartyOrderLinkMulti(u8 battlerId, u8 slot, u8 arrayIndex);
|
||||||
void sub_81B8E80(u8 battlerId, u8 unk, u8 arrayIndex);
|
void SwitchPartyMonSlots(u8 slot, u8 slot2);
|
||||||
void sub_81B8FB0(u8 slot, u8 slot2);
|
u8 GetPartyIdFromBattlePartyId(u8 slot);
|
||||||
u8 pokemon_order_func(u8 slot);
|
void ShowPartyMenuToShowcaseMultiBattleParty(void);
|
||||||
void sub_81B9150(void);
|
void ChooseMonForDaycare(void);
|
||||||
void sub_81B9328(void);
|
bool8 CB2_FadeFromPartyMenu(void);
|
||||||
bool8 hm_add_c3_without_phase_2(void);
|
void ChooseContestMon(void);
|
||||||
void sub_81B9404(void);
|
void ChoosePartyMon(void);
|
||||||
void sub_81B94B0(void);
|
void ChooseMonForMoveRelearner(void);
|
||||||
void sub_81B951C(void);
|
void BattlePyramidChooseMonHeldItems(void);
|
||||||
void sub_81B9620(void);
|
void DoBattlePyramidMonsHaveHeldItem(void);
|
||||||
void sub_81B95E0(void);
|
void IsSelectedMonEgg(void);
|
||||||
void sub_81B98DC(void);
|
void IsLastMonThatKnowsSurf(void);
|
||||||
void sub_81B9918(void);
|
void MoveDeleterForgetMove(void);
|
||||||
void sub_81B9770(void);
|
void BufferMoveDeleterNicknameAndMove(void);
|
||||||
void sub_81B9718(void);
|
void GetNumMovesSelectedMonHas(void);
|
||||||
void sub_81B96D0(void);
|
void MoveDeleterChooseMoveToForget(void);
|
||||||
void sub_81B968C(void);
|
|
||||||
|
|
||||||
#endif // GUARD_PARTY_MENU_H
|
#endif // GUARD_PARTY_MENU_H
|
||||||
|
|||||||
+2
-3
@@ -287,7 +287,6 @@ void BoxMonToMon(const struct BoxPokemon *src, struct Pokemon *dest);
|
|||||||
u8 GetLevelFromMonExp(struct Pokemon *mon);
|
u8 GetLevelFromMonExp(struct Pokemon *mon);
|
||||||
u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon);
|
u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon);
|
||||||
u16 GiveMoveToMon(struct Pokemon *mon, u16 move);
|
u16 GiveMoveToMon(struct Pokemon *mon, u16 move);
|
||||||
u16 GiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move);
|
|
||||||
u16 GiveMoveToBattleMon(struct BattlePokemon *mon, u16 move);
|
u16 GiveMoveToBattleMon(struct BattlePokemon *mon, u16 move);
|
||||||
void SetMonMoveSlot(struct Pokemon *mon, u16 move, u8 slot);
|
void SetMonMoveSlot(struct Pokemon *mon, u16 move, u8 slot);
|
||||||
void SetBattleMonMoveSlot(struct BattlePokemon *mon, u16 move, u8 slot);
|
void SetBattleMonMoveSlot(struct BattlePokemon *mon, u16 move, u8 slot);
|
||||||
@@ -357,8 +356,8 @@ u16 SpeciesToCryId(u16 species);
|
|||||||
void sub_806D544(u16 species, u32 personality, u8 *dest);
|
void sub_806D544(u16 species, u32 personality, u8 *dest);
|
||||||
void DrawSpindaSpots(u16 species, u32 personality, u8 *dest, u8 a4);
|
void DrawSpindaSpots(u16 species, u32 personality, u8 *dest, u8 a4);
|
||||||
void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies);
|
void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies);
|
||||||
bool8 sub_806D7EC(void);
|
u8 GetPlayerFlankId(void);
|
||||||
bool16 GetLinkTrainerFlankId(u8 id);
|
u16 GetLinkTrainerFlankId(u8 id);
|
||||||
s32 GetBattlerMultiplayerId(u16 a1);
|
s32 GetBattlerMultiplayerId(u16 a1);
|
||||||
u8 GetTrainerEncounterMusicId(u16 trainerOpponentId);
|
u8 GetTrainerEncounterMusicId(u16 trainerOpponentId);
|
||||||
u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex);
|
u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex);
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u
|
|||||||
u8 UpdateMonIconFrame(struct Sprite *sprite);
|
u8 UpdateMonIconFrame(struct Sprite *sprite);
|
||||||
void LoadMonIconPalette(u16 species);
|
void LoadMonIconPalette(u16 species);
|
||||||
void sub_80D328C(struct Sprite *sprite);
|
void sub_80D328C(struct Sprite *sprite);
|
||||||
void UpdateTradeMonIconFrame(struct Sprite *sprite);
|
void SpriteCB_MonIcon(struct Sprite *sprite);
|
||||||
void SetPartyHPBarSprite(struct Sprite *sprite, u8 animNum);
|
void SetPartyHPBarSprite(struct Sprite *sprite, u8 animNum);
|
||||||
u8 GetMonIconPaletteIndexFromSpecies(u16 species);
|
u8 GetMonIconPaletteIndexFromSpecies(u16 species);
|
||||||
|
|
||||||
|
|||||||
@@ -9,10 +9,9 @@ extern const u8 *const gMoveDescriptionPointers[];
|
|||||||
extern const u8 *const gNatureNamePointers[];
|
extern const u8 *const gNatureNamePointers[];
|
||||||
|
|
||||||
void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void));
|
void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void));
|
||||||
void sub_81C4F98(u8, void(*)(void));
|
|
||||||
void ShowSelectMovePokemonSummaryScreen(struct Pokemon *, u8, u8, MainCallback, u16);
|
void ShowSelectMovePokemonSummaryScreen(struct Pokemon *, u8, u8, MainCallback, u16);
|
||||||
void ShowPokemonSummaryScreenSet40EF(u8 mode, struct BoxPokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void));
|
void ShowPokemonSummaryScreenSet40EF(u8 mode, struct BoxPokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void));
|
||||||
u8 sub_81C1B94(void);
|
u8 GetMoveSlotToReplace(void);
|
||||||
void SummaryScreen_SetUnknownTaskId(u8 a0);
|
void SummaryScreen_SetUnknownTaskId(u8 a0);
|
||||||
void SummaryScreen_DestroyUnknownTask(void);
|
void SummaryScreen_DestroyUnknownTask(void);
|
||||||
|
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ void CreateRegionMapPlayerIcon(u16 x, u16 y);
|
|||||||
void CreateRegionMapCursor(u16 tileTag, u16 paletteTag);
|
void CreateRegionMapCursor(u16 tileTag, u16 paletteTag);
|
||||||
u8 *GetMapName(u8 *, u16, u16);
|
u8 *GetMapName(u8 *, u16, u16);
|
||||||
bool32 sub_8124668(u8 mapSecId);
|
bool32 sub_8124668(u8 mapSecId);
|
||||||
u8 *sub_81245DC(u8 *dest, u16 mapSecId);
|
u8 *GetMapNameGeneric(u8 *dest, u16 mapSecId);
|
||||||
u8 *sub_8124610(u8 *dest, u16 mapSecId);
|
u8 *sub_8124610(u8 *dest, u16 mapSecId);
|
||||||
u16 CorrectSpecialMapSecId(u16 mapSecId);
|
u16 CorrectSpecialMapSecId(u16 mapSecId);
|
||||||
void sub_8122D88(struct RegionMap *regionMap);
|
void sub_8122D88(struct RegionMap *regionMap);
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
#ifndef GUARD_SCRIPTPOKE81B9_H
|
|
||||||
#define GUARD_SCRIPTPOKE81B9_H
|
|
||||||
|
|
||||||
void sub_81B9404(void);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
+2
-2
@@ -411,7 +411,7 @@ extern const u8 gText_CantBeUsedOnPkmn[];
|
|||||||
extern const u8 gText_CancelParticipation[];
|
extern const u8 gText_CancelParticipation[];
|
||||||
extern const u8 gText_PkmnWasGivenItem[];
|
extern const u8 gText_PkmnWasGivenItem[];
|
||||||
extern const u8 gText_ReceivedItemFromPkmn[];
|
extern const u8 gText_ReceivedItemFromPkmn[];
|
||||||
extern const u8 gText_SwitchPkmnItem[];
|
extern const u8 gText_PkmnAlreadyHoldingItemSwitch[];
|
||||||
extern const u8 gText_SwitchedPkmnItem[];
|
extern const u8 gText_SwitchedPkmnItem[];
|
||||||
extern const u8 gText_BagFullCouldNotRemoveItem[];
|
extern const u8 gText_BagFullCouldNotRemoveItem[];
|
||||||
extern const u8 gText_PkmnCantParticipate[];
|
extern const u8 gText_PkmnCantParticipate[];
|
||||||
@@ -427,7 +427,7 @@ extern const u8 gText_NoMoreThanVar1Pkmn[];
|
|||||||
extern const u8 gText_PkmnCantBeTradedNow[];
|
extern const u8 gText_PkmnCantBeTradedNow[];
|
||||||
extern const u8 gText_EggCantBeTradedNow[];
|
extern const u8 gText_EggCantBeTradedNow[];
|
||||||
extern const u8 gText_OnlyPkmnForBattle[];
|
extern const u8 gText_OnlyPkmnForBattle[];
|
||||||
extern const u8 gJPText_PutVar1IntoSpinner[];
|
extern const u8 gJPText_AreYouSureYouWantToSpinTradeMon[];
|
||||||
extern const u8 gText_PauseUntilPress[];
|
extern const u8 gText_PauseUntilPress[];
|
||||||
extern const u8 gText_CantUseUntilNewBadge[];
|
extern const u8 gText_CantUseUntilNewBadge[];
|
||||||
extern const u8 gText_ReturnToHealingSpot[];
|
extern const u8 gText_ReturnToHealingSpot[];
|
||||||
|
|||||||
+1
-1
@@ -18,7 +18,7 @@ void CB2_StartCreateTradeMenu(void);
|
|||||||
void CB2_LinkTrade(void);
|
void CB2_LinkTrade(void);
|
||||||
int CanRegisterMonForTradingBoard(struct UnkLinkRfuStruct_02022B14Substruct a0, u16, u16, u8);
|
int CanRegisterMonForTradingBoard(struct UnkLinkRfuStruct_02022B14Substruct a0, u16, u16, u8);
|
||||||
int GetUnionRoomTradeMessageId(struct UnkLinkRfuStruct_02022B14Substruct a0, struct UnkLinkRfuStruct_02022B14Substruct a1, u16 a2, u16 a3, u8 a4, u16 a5, u8 a6);
|
int GetUnionRoomTradeMessageId(struct UnkLinkRfuStruct_02022B14Substruct a0, struct UnkLinkRfuStruct_02022B14Substruct a1, u16 a2, u16 a3, u8 a4, u16 a5, u8 a6);
|
||||||
int CanTradeSelectedPartyMenuMon(struct Pokemon*, u16);
|
int CanSpinTradeMon(struct Pokemon*, u16);
|
||||||
void InitTradeSequenceBgGpuRegs(void);
|
void InitTradeSequenceBgGpuRegs(void);
|
||||||
void LinkTradeDrawWindow(void);
|
void LinkTradeDrawWindow(void);
|
||||||
void InitTradeBg(void);
|
void InitTradeBg(void);
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
#include "constants/battle_anim.h"
|
#include "constants/battle_anim.h"
|
||||||
#include "constants/items.h"
|
#include "constants/items.h"
|
||||||
#include "constants/moves.h"
|
#include "constants/moves.h"
|
||||||
|
#include "constants/party_menu.h"
|
||||||
#include "constants/songs.h"
|
#include "constants/songs.h"
|
||||||
#include "constants/trainers.h"
|
#include "constants/trainers.h"
|
||||||
#include "constants/rgb.h"
|
#include "constants/rgb.h"
|
||||||
@@ -1341,10 +1342,10 @@ static void WaitForMonSelection(void)
|
|||||||
{
|
{
|
||||||
if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active)
|
if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active)
|
||||||
{
|
{
|
||||||
if (gUnknown_0203CEE8 == 1)
|
if (gPartyMenuUseExitCallback == TRUE)
|
||||||
BtlController_EmitChosenMonReturnValue(1, gUnknown_0203CEE9, gUnknown_0203CF00);
|
BtlController_EmitChosenMonReturnValue(1, gSelectedMonPartyId, gBattlePartyCurrentOrder);
|
||||||
else
|
else
|
||||||
BtlController_EmitChosenMonReturnValue(1, 6, NULL);
|
BtlController_EmitChosenMonReturnValue(1, PARTY_SIZE, NULL);
|
||||||
|
|
||||||
if ((gBattleBufferA[gActiveBattler][1] & 0xF) == 1)
|
if ((gBattleBufferA[gActiveBattler][1] & 0xF) == 1)
|
||||||
PrintLinkStandbyMsg();
|
PrintLinkStandbyMsg();
|
||||||
@@ -1531,12 +1532,12 @@ void ActionSelectionDestroyCursorAt(u8 cursorPosition)
|
|||||||
CopyBgTilemapBufferToVram(0);
|
CopyBgTilemapBufferToVram(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetCB2ToReshowScreenAfterMenu(void)
|
void CB2_SetUpReshowBattleScreenAfterMenu(void)
|
||||||
{
|
{
|
||||||
SetMainCallback2(ReshowBattleScreenAfterMenu);
|
SetMainCallback2(ReshowBattleScreenAfterMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetCB2ToReshowScreenAfterMenu2(void)
|
void CB2_SetUpReshowBattleScreenAfterMenu2(void)
|
||||||
{
|
{
|
||||||
SetMainCallback2(ReshowBattleScreenAfterMenu);
|
SetMainCallback2(ReshowBattleScreenAfterMenu);
|
||||||
}
|
}
|
||||||
@@ -2632,20 +2633,20 @@ static void PlayerHandleChooseItem(void)
|
|||||||
gBattlerControllerFuncs[gActiveBattler] = OpenBagAndChooseItem;
|
gBattlerControllerFuncs[gActiveBattler] = OpenBagAndChooseItem;
|
||||||
gBattlerInMenuId = gActiveBattler;
|
gBattlerInMenuId = gActiveBattler;
|
||||||
|
|
||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < (int)ARRAY_COUNT(gBattlePartyCurrentOrder); i++)
|
||||||
gUnknown_0203CF00[i] = gBattleBufferA[gActiveBattler][1 + i];
|
gBattlePartyCurrentOrder[i] = gBattleBufferA[gActiveBattler][1 + i];
|
||||||
}
|
}
|
||||||
|
|
||||||
static void PlayerHandleChoosePokemon(void)
|
static void PlayerHandleChoosePokemon(void)
|
||||||
{
|
{
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < (int)ARRAY_COUNT(gBattlePartyCurrentOrder); i++)
|
||||||
gUnknown_0203CF00[i] = gBattleBufferA[gActiveBattler][4 + i];
|
gBattlePartyCurrentOrder[i] = gBattleBufferA[gActiveBattler][4 + i];
|
||||||
|
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_ARENA && (gBattleBufferA[gActiveBattler][1] & 0xF) != PARTY_CANT_SWITCH)
|
if (gBattleTypeFlags & BATTLE_TYPE_ARENA && (gBattleBufferA[gActiveBattler][1] & 0xF) != PARTY_ACTION_CANT_SWITCH)
|
||||||
{
|
{
|
||||||
BtlController_EmitChosenMonReturnValue(1, gBattlerPartyIndexes[gActiveBattler] + 1, gUnknown_0203CF00);
|
BtlController_EmitChosenMonReturnValue(1, gBattlerPartyIndexes[gActiveBattler] + 1, gBattlePartyCurrentOrder);
|
||||||
PlayerBufferExecCompleted();
|
PlayerBufferExecCompleted();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
+23
-23
@@ -95,7 +95,7 @@ void sub_8032768(void)
|
|||||||
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||||
{
|
{
|
||||||
for (i = 0; i < gBattlersCount; i++)
|
for (i = 0; i < gBattlersCount; i++)
|
||||||
sub_81B8D64(i, 0);
|
BufferBattlePartyCurrentOrderBySide(i, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < sizeof(gBattleStruct->tvMovePoints); i++)
|
for (i = 0; i < sizeof(gBattleStruct->tvMovePoints); i++)
|
||||||
@@ -144,10 +144,10 @@ static void InitSinglePlayerBtlControllers(void)
|
|||||||
|
|
||||||
gBattlersCount = MAX_BATTLERS_COUNT;
|
gBattlersCount = MAX_BATTLERS_COUNT;
|
||||||
|
|
||||||
sub_81B8D64(0, 0);
|
BufferBattlePartyCurrentOrderBySide(0, 0);
|
||||||
sub_81B8D64(1, 0);
|
BufferBattlePartyCurrentOrderBySide(1, 0);
|
||||||
sub_81B8D64(2, 1);
|
BufferBattlePartyCurrentOrderBySide(2, 1);
|
||||||
sub_81B8D64(3, 1);
|
BufferBattlePartyCurrentOrderBySide(3, 1);
|
||||||
|
|
||||||
gBattlerPartyIndexes[0] = 0;
|
gBattlerPartyIndexes[0] = 0;
|
||||||
gBattlerPartyIndexes[1] = 0;
|
gBattlerPartyIndexes[1] = 0;
|
||||||
@@ -247,10 +247,10 @@ static void InitSinglePlayerBtlControllers(void)
|
|||||||
|
|
||||||
gBattlersCount = MAX_BATTLERS_COUNT;
|
gBattlersCount = MAX_BATTLERS_COUNT;
|
||||||
|
|
||||||
sub_81B8D64(0, 0);
|
BufferBattlePartyCurrentOrderBySide(0, 0);
|
||||||
sub_81B8D64(1, 0);
|
BufferBattlePartyCurrentOrderBySide(1, 0);
|
||||||
sub_81B8D64(2, 1);
|
BufferBattlePartyCurrentOrderBySide(2, 1);
|
||||||
sub_81B8D64(3, 1);
|
BufferBattlePartyCurrentOrderBySide(3, 1);
|
||||||
|
|
||||||
gBattlerPartyIndexes[0] = 0;
|
gBattlerPartyIndexes[0] = 0;
|
||||||
gBattlerPartyIndexes[1] = 0;
|
gBattlerPartyIndexes[1] = 0;
|
||||||
@@ -267,11 +267,11 @@ static void InitSinglePlayerBtlControllers(void)
|
|||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
case 3:
|
case 3:
|
||||||
sub_81B8D64(gLinkPlayers[i].id, 0);
|
BufferBattlePartyCurrentOrderBySide(gLinkPlayers[i].id, 0);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
case 2:
|
case 2:
|
||||||
sub_81B8D64(gLinkPlayers[i].id, 1);
|
BufferBattlePartyCurrentOrderBySide(gLinkPlayers[i].id, 1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -487,10 +487,10 @@ static void InitLinkBtlControllers(void)
|
|||||||
gBattlersCount = MAX_BATTLERS_COUNT;
|
gBattlersCount = MAX_BATTLERS_COUNT;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub_81B8D64(0, 0);
|
BufferBattlePartyCurrentOrderBySide(0, 0);
|
||||||
sub_81B8D64(1, 0);
|
BufferBattlePartyCurrentOrderBySide(1, 0);
|
||||||
sub_81B8D64(2, 1);
|
BufferBattlePartyCurrentOrderBySide(2, 1);
|
||||||
sub_81B8D64(3, 1);
|
BufferBattlePartyCurrentOrderBySide(3, 1);
|
||||||
gBattlerPartyIndexes[0] = 0;
|
gBattlerPartyIndexes[0] = 0;
|
||||||
gBattlerPartyIndexes[1] = 0;
|
gBattlerPartyIndexes[1] = 0;
|
||||||
gBattlerPartyIndexes[2] = 3;
|
gBattlerPartyIndexes[2] = 3;
|
||||||
@@ -509,11 +509,11 @@ static void InitLinkBtlControllers(void)
|
|||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
case 3:
|
case 3:
|
||||||
sub_81B8D64(gLinkPlayers[i].id, 0);
|
BufferBattlePartyCurrentOrderBySide(gLinkPlayers[i].id, 0);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
case 2:
|
case 2:
|
||||||
sub_81B8D64(gLinkPlayers[i].id, 1);
|
BufferBattlePartyCurrentOrderBySide(gLinkPlayers[i].id, 1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1175,13 +1175,13 @@ void BtlController_EmitChooseItem(u8 bufferId, u8 *arg1)
|
|||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8 *arg4)
|
void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 slotId, u8 abilityId, u8 *arg4)
|
||||||
{
|
{
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
sBattleBuffersTransferData[0] = CONTROLLER_CHOOSEPOKEMON;
|
sBattleBuffersTransferData[0] = CONTROLLER_CHOOSEPOKEMON;
|
||||||
sBattleBuffersTransferData[1] = caseId;
|
sBattleBuffersTransferData[1] = caseId;
|
||||||
sBattleBuffersTransferData[2] = arg2;
|
sBattleBuffersTransferData[2] = slotId;
|
||||||
sBattleBuffersTransferData[3] = abilityId;
|
sBattleBuffersTransferData[3] = abilityId;
|
||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < 3; i++)
|
||||||
sBattleBuffersTransferData[4 + i] = arg4[i];
|
sBattleBuffersTransferData[4 + i] = arg4[i];
|
||||||
@@ -1311,14 +1311,14 @@ void BtlController_EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2)
|
|||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c)
|
void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 partyId, u8 *battlePartyOrder)
|
||||||
{
|
{
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
sBattleBuffersTransferData[0] = CONTROLLER_CHOSENMONRETURNVALUE;
|
sBattleBuffersTransferData[0] = CONTROLLER_CHOSENMONRETURNVALUE;
|
||||||
sBattleBuffersTransferData[1] = b;
|
sBattleBuffersTransferData[1] = partyId;
|
||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < (int)ARRAY_COUNT(gBattlePartyCurrentOrder); i++)
|
||||||
sBattleBuffersTransferData[2 + i] = c[i];
|
sBattleBuffersTransferData[2 + i] = battlePartyOrder[i];
|
||||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 5);
|
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -2330,7 +2330,7 @@ static void GetDomeData(void)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
sub_81B8558();
|
ClearSelectedPartyOrder();
|
||||||
gSelectedOrderFromParty[0] = gSaveBlock2Ptr->frontier.field_CB0;
|
gSelectedOrderFromParty[0] = gSaveBlock2Ptr->frontier.field_CB0;
|
||||||
gSelectedOrderFromParty[1] = gSaveBlock2Ptr->frontier.field_CB0 >> 8;
|
gSelectedOrderFromParty[1] = gSaveBlock2Ptr->frontier.field_CB0 >> 8;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -811,7 +811,7 @@ bool8 BattleInitAllSprites(u8 *state1, u8 *battlerId)
|
|||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
LoadAndCreateEnemyShadowSprites();
|
LoadAndCreateEnemyShadowSprites();
|
||||||
sub_81B8C68();
|
BufferBattlePartyCurrentOrder();
|
||||||
retVal = TRUE;
|
retVal = TRUE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1061,8 +1061,8 @@ void HandleBattleLowHpMusicChange(void)
|
|||||||
{
|
{
|
||||||
u8 playerBattler1 = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
|
u8 playerBattler1 = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
|
||||||
u8 playerBattler2 = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
|
u8 playerBattler2 = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
|
||||||
u8 battler1PartyId = pokemon_order_func(gBattlerPartyIndexes[playerBattler1]);
|
u8 battler1PartyId = GetPartyIdFromBattlePartyId(gBattlerPartyIndexes[playerBattler1]);
|
||||||
u8 battler2PartyId = pokemon_order_func(gBattlerPartyIndexes[playerBattler2]);
|
u8 battler2PartyId = GetPartyIdFromBattlePartyId(gBattlerPartyIndexes[playerBattler2]);
|
||||||
|
|
||||||
if (GetMonData(&gPlayerParty[battler1PartyId], MON_DATA_HP) != 0)
|
if (GetMonData(&gPlayerParty[battler1PartyId], MON_DATA_HP) != 0)
|
||||||
HandleLowHpMusicChange(&gPlayerParty[battler1PartyId], playerBattler1);
|
HandleLowHpMusicChange(&gPlayerParty[battler1PartyId], playerBattler1);
|
||||||
|
|||||||
+55
-54
@@ -54,6 +54,7 @@
|
|||||||
#include "constants/hold_effects.h"
|
#include "constants/hold_effects.h"
|
||||||
#include "constants/items.h"
|
#include "constants/items.h"
|
||||||
#include "constants/moves.h"
|
#include "constants/moves.h"
|
||||||
|
#include "constants/party_menu.h"
|
||||||
#include "constants/rgb.h"
|
#include "constants/rgb.h"
|
||||||
#include "constants/songs.h"
|
#include "constants/songs.h"
|
||||||
#include "constants/species.h"
|
#include "constants/species.h"
|
||||||
@@ -166,8 +167,8 @@ EWRAM_DATA static u32 sUnusedUnknownArray[25] = {0};
|
|||||||
EWRAM_DATA u32 gBattleTypeFlags = 0;
|
EWRAM_DATA u32 gBattleTypeFlags = 0;
|
||||||
EWRAM_DATA u8 gBattleTerrain = 0;
|
EWRAM_DATA u8 gBattleTerrain = 0;
|
||||||
EWRAM_DATA u32 gUnknown_02022FF4 = 0;
|
EWRAM_DATA u32 gUnknown_02022FF4 = 0;
|
||||||
EWRAM_DATA struct UnknownPokemonStruct4 gUnknown_02022FF8[3] = {0}; // what is it used for?
|
EWRAM_DATA struct UnknownPokemonStruct4 gMultiPartnerParty[MULTI_PARTY_SIZE] = {0};
|
||||||
EWRAM_DATA struct UnknownPokemonStruct4* gUnknown_02023058 = NULL; // what is it used for?
|
EWRAM_DATA static struct UnknownPokemonStruct4* sMultiPartnerPartyBuffer = NULL;
|
||||||
EWRAM_DATA u8 *gUnknown_0202305C = NULL;
|
EWRAM_DATA u8 *gUnknown_0202305C = NULL;
|
||||||
EWRAM_DATA u8 *gUnknown_02023060 = NULL;
|
EWRAM_DATA u8 *gUnknown_02023060 = NULL;
|
||||||
EWRAM_DATA u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200] = {0};
|
EWRAM_DATA u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200] = {0};
|
||||||
@@ -453,7 +454,7 @@ const u8 gTypeEffectiveness[336] =
|
|||||||
TYPE_ENDTABLE, TYPE_ENDTABLE, TYPE_MUL_NO_EFFECT
|
TYPE_ENDTABLE, TYPE_ENDTABLE, TYPE_MUL_NO_EFFECT
|
||||||
};
|
};
|
||||||
|
|
||||||
const u8 gTypeNames[][TYPE_NAME_LENGTH + 1] =
|
const u8 gTypeNames[NUMBER_OF_MON_TYPES][TYPE_NAME_LENGTH + 1] =
|
||||||
{
|
{
|
||||||
_("NORMAL"),
|
_("NORMAL"),
|
||||||
_("FIGHT"),
|
_("FIGHT"),
|
||||||
@@ -1248,12 +1249,12 @@ static void CB2_HandleStartMultiPartnerBattle(void)
|
|||||||
if (gLinkPlayers[playerMultiplayerId].id != 0)
|
if (gLinkPlayers[playerMultiplayerId].id != 0)
|
||||||
{
|
{
|
||||||
memcpy(gPlayerParty, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon) * 2);
|
memcpy(gPlayerParty, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon) * 2);
|
||||||
memcpy(gPlayerParty + 3, gBlockRecvBuffer[playerMultiplayerId], sizeof(struct Pokemon) * 2);
|
memcpy(gPlayerParty + MULTI_PARTY_SIZE, gBlockRecvBuffer[playerMultiplayerId], sizeof(struct Pokemon) * 2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
memcpy(gPlayerParty, gBlockRecvBuffer[playerMultiplayerId], sizeof(struct Pokemon) * 2);
|
memcpy(gPlayerParty, gBlockRecvBuffer[playerMultiplayerId], sizeof(struct Pokemon) * 2);
|
||||||
memcpy(gPlayerParty + 3, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon) * 2);
|
memcpy(gPlayerParty + MULTI_PARTY_SIZE, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon) * 2);
|
||||||
}
|
}
|
||||||
gBattleCommunication[MULTIUSE_STATE]++;
|
gBattleCommunication[MULTIUSE_STATE]++;
|
||||||
}
|
}
|
||||||
@@ -1396,22 +1397,22 @@ static void sub_80379F8(u8 arrayIdPlus)
|
|||||||
{
|
{
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < (int)ARRAY_COUNT(gMultiPartnerParty); i++)
|
||||||
{
|
{
|
||||||
gUnknown_02022FF8[i].species = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_SPECIES);
|
gMultiPartnerParty[i].species = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_SPECIES);
|
||||||
gUnknown_02022FF8[i].heldItem = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_HELD_ITEM);
|
gMultiPartnerParty[i].heldItem = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_HELD_ITEM);
|
||||||
GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_NICKNAME, gUnknown_02022FF8[i].nickname);
|
GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_NICKNAME, gMultiPartnerParty[i].nickname);
|
||||||
gUnknown_02022FF8[i].level = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_LEVEL);
|
gMultiPartnerParty[i].level = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_LEVEL);
|
||||||
gUnknown_02022FF8[i].hp = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_HP);
|
gMultiPartnerParty[i].hp = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_HP);
|
||||||
gUnknown_02022FF8[i].maxhp = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_MAX_HP);
|
gMultiPartnerParty[i].maxhp = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_MAX_HP);
|
||||||
gUnknown_02022FF8[i].status = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_STATUS);
|
gMultiPartnerParty[i].status = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_STATUS);
|
||||||
gUnknown_02022FF8[i].personality = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_PERSONALITY);
|
gMultiPartnerParty[i].personality = GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_PERSONALITY);
|
||||||
gUnknown_02022FF8[i].gender = GetMonGender(&gPlayerParty[arrayIdPlus + i]);
|
gMultiPartnerParty[i].gender = GetMonGender(&gPlayerParty[arrayIdPlus + i]);
|
||||||
StripExtCtrlCodes(gUnknown_02022FF8[i].nickname);
|
StripExtCtrlCodes(gMultiPartnerParty[i].nickname);
|
||||||
if (GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_LANGUAGE) != LANGUAGE_JAPANESE)
|
if (GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_LANGUAGE) != LANGUAGE_JAPANESE)
|
||||||
PadNameString(gUnknown_02022FF8[i].nickname, CHAR_SPACE);
|
PadNameString(gMultiPartnerParty[i].nickname, CHAR_SPACE);
|
||||||
}
|
}
|
||||||
memcpy(gUnknown_02023058, gUnknown_02022FF8, sizeof(gUnknown_02022FF8));
|
memcpy(sMultiPartnerPartyBuffer, gMultiPartnerParty, sizeof(gMultiPartnerParty));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void CB2_PreInitMultiBattle(void)
|
static void CB2_PreInitMultiBattle(void)
|
||||||
@@ -1443,9 +1444,9 @@ static void CB2_PreInitMultiBattle(void)
|
|||||||
case 0:
|
case 0:
|
||||||
if (gReceivedRemoteLinkPlayers != 0 && IsLinkTaskFinished())
|
if (gReceivedRemoteLinkPlayers != 0 && IsLinkTaskFinished())
|
||||||
{
|
{
|
||||||
gUnknown_02023058 = Alloc(sizeof(struct UnknownPokemonStruct4) * 3);
|
sMultiPartnerPartyBuffer = Alloc(sizeof(struct UnknownPokemonStruct4) * ARRAY_COUNT(gMultiPartnerParty));
|
||||||
sub_80379F8(0);
|
sub_80379F8(0);
|
||||||
SendBlock(bitmask_all_link_players_but_self(), gUnknown_02023058, sizeof(struct UnknownPokemonStruct4) * 3);
|
SendBlock(bitmask_all_link_players_but_self(), sMultiPartnerPartyBuffer, sizeof(struct UnknownPokemonStruct4) * ARRAY_COUNT(gMultiPartnerParty));
|
||||||
gBattleCommunication[MULTIUSE_STATE]++;
|
gBattleCommunication[MULTIUSE_STATE]++;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -1458,24 +1459,24 @@ static void CB2_PreInitMultiBattle(void)
|
|||||||
if (i == playerMultiplierId)
|
if (i == playerMultiplierId)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (numPlayers == 4)
|
if (numPlayers == MAX_LINK_PLAYERS)
|
||||||
{
|
{
|
||||||
if ((!(gLinkPlayers[i].id & 1) && !(gLinkPlayers[playerMultiplierId].id & 1))
|
if ((!(gLinkPlayers[i].id & 1) && !(gLinkPlayers[playerMultiplierId].id & 1))
|
||||||
|| (gLinkPlayers[i].id & 1 && gLinkPlayers[playerMultiplierId].id & 1))
|
|| (gLinkPlayers[i].id & 1 && gLinkPlayers[playerMultiplierId].id & 1))
|
||||||
{
|
{
|
||||||
memcpy(gUnknown_02022FF8, gBlockRecvBuffer[i], sizeof(struct UnknownPokemonStruct4) * 3);
|
memcpy(gMultiPartnerParty, gBlockRecvBuffer[i], sizeof(struct UnknownPokemonStruct4) * ARRAY_COUNT(gMultiPartnerParty));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
memcpy(gUnknown_02022FF8, gBlockRecvBuffer[i], sizeof(struct UnknownPokemonStruct4) * 3);
|
memcpy(gMultiPartnerParty, gBlockRecvBuffer[i], sizeof(struct UnknownPokemonStruct4) * ARRAY_COUNT(gMultiPartnerParty));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gBattleCommunication[MULTIUSE_STATE]++;
|
gBattleCommunication[MULTIUSE_STATE]++;
|
||||||
*savedCallback = gMain.savedCallback;
|
*savedCallback = gMain.savedCallback;
|
||||||
*savedBattleTypeFlags = gBattleTypeFlags;
|
*savedBattleTypeFlags = gBattleTypeFlags;
|
||||||
gMain.savedCallback = CB2_PreInitMultiBattle;
|
gMain.savedCallback = CB2_PreInitMultiBattle;
|
||||||
sub_81B9150();
|
ShowPartyMenuToShowcaseMultiBattleParty();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
@@ -1496,8 +1497,8 @@ static void CB2_PreInitMultiBattle(void)
|
|||||||
gBattleTypeFlags = *savedBattleTypeFlags;
|
gBattleTypeFlags = *savedBattleTypeFlags;
|
||||||
gMain.savedCallback = *savedCallback;
|
gMain.savedCallback = *savedCallback;
|
||||||
SetMainCallback2(CB2_InitBattleInternal);
|
SetMainCallback2(CB2_InitBattleInternal);
|
||||||
Free(gUnknown_02023058);
|
Free(sMultiPartnerPartyBuffer);
|
||||||
gUnknown_02023058 = NULL;
|
sMultiPartnerPartyBuffer = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (gReceivedRemoteLinkPlayers == 0)
|
else if (gReceivedRemoteLinkPlayers == 0)
|
||||||
@@ -1505,8 +1506,8 @@ static void CB2_PreInitMultiBattle(void)
|
|||||||
gBattleTypeFlags = *savedBattleTypeFlags;
|
gBattleTypeFlags = *savedBattleTypeFlags;
|
||||||
gMain.savedCallback = *savedCallback;
|
gMain.savedCallback = *savedCallback;
|
||||||
SetMainCallback2(CB2_InitBattleInternal);
|
SetMainCallback2(CB2_InitBattleInternal);
|
||||||
Free(gUnknown_02023058);
|
Free(sMultiPartnerPartyBuffer);
|
||||||
gUnknown_02023058 = NULL;
|
sMultiPartnerPartyBuffer = NULL;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1527,13 +1528,13 @@ static void CB2_PreInitIngamePlayerPartnerBattle(void)
|
|||||||
switch (gBattleCommunication[MULTIUSE_STATE])
|
switch (gBattleCommunication[MULTIUSE_STATE])
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
gUnknown_02023058 = Alloc(sizeof(struct UnknownPokemonStruct4) * 3);
|
sMultiPartnerPartyBuffer = Alloc(sizeof(struct UnknownPokemonStruct4) * ARRAY_COUNT(gMultiPartnerParty));
|
||||||
sub_80379F8(3);
|
sub_80379F8(3);
|
||||||
gBattleCommunication[MULTIUSE_STATE]++;
|
gBattleCommunication[MULTIUSE_STATE]++;
|
||||||
*savedCallback = gMain.savedCallback;
|
*savedCallback = gMain.savedCallback;
|
||||||
*savedBattleTypeFlags = gBattleTypeFlags;
|
*savedBattleTypeFlags = gBattleTypeFlags;
|
||||||
gMain.savedCallback = CB2_PreInitIngamePlayerPartnerBattle;
|
gMain.savedCallback = CB2_PreInitIngamePlayerPartnerBattle;
|
||||||
sub_81B9150();
|
ShowPartyMenuToShowcaseMultiBattleParty();
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if (!gPaletteFade.active)
|
if (!gPaletteFade.active)
|
||||||
@@ -1542,8 +1543,8 @@ static void CB2_PreInitIngamePlayerPartnerBattle(void)
|
|||||||
gBattleTypeFlags = *savedBattleTypeFlags;
|
gBattleTypeFlags = *savedBattleTypeFlags;
|
||||||
gMain.savedCallback = *savedCallback;
|
gMain.savedCallback = *savedCallback;
|
||||||
SetMainCallback2(CB2_InitBattleInternal);
|
SetMainCallback2(CB2_InitBattleInternal);
|
||||||
Free(gUnknown_02023058);
|
Free(sMultiPartnerPartyBuffer);
|
||||||
gUnknown_02023058 = NULL;
|
sMultiPartnerPartyBuffer = NULL;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1666,7 +1667,7 @@ static void CB2_HandleStartMultiBattle(void)
|
|||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
case 2:
|
case 2:
|
||||||
memcpy(gPlayerParty + 3, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2);
|
memcpy(gPlayerParty + MULTI_PARTY_SIZE, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1683,7 +1684,7 @@ static void CB2_HandleStartMultiBattle(void)
|
|||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
case 2:
|
case 2:
|
||||||
memcpy(gPlayerParty + 3, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2);
|
memcpy(gPlayerParty + MULTI_PARTY_SIZE, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1697,7 +1698,7 @@ static void CB2_HandleStartMultiBattle(void)
|
|||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
case 2:
|
case 2:
|
||||||
memcpy(gEnemyParty + 3, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2);
|
memcpy(gEnemyParty + MULTI_PARTY_SIZE, gBlockRecvBuffer[id], sizeof(struct Pokemon) * 2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4121,34 +4122,34 @@ u8 IsRunningFromBattleImpossible(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_803BDA0(u8 battler)
|
void SwitchPartyOrder(u8 battler)
|
||||||
{
|
{
|
||||||
s32 i;
|
s32 i;
|
||||||
u8 r4;
|
u8 partyId1;
|
||||||
u8 r1;
|
u8 partyId2;
|
||||||
|
|
||||||
// gBattleStruct->field_60[battler][i]
|
// gBattleStruct->field_60[battler][i]
|
||||||
|
|
||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < (int)ARRAY_COUNT(gBattlePartyCurrentOrder); i++)
|
||||||
gUnknown_0203CF00[i] = *(battler * 3 + i + (u8*)(gBattleStruct->field_60));
|
gBattlePartyCurrentOrder[i] = *(battler * 3 + i + (u8*)(gBattleStruct->field_60));
|
||||||
|
|
||||||
r4 = pokemon_order_func(gBattlerPartyIndexes[battler]);
|
partyId1 = GetPartyIdFromBattlePartyId(gBattlerPartyIndexes[battler]);
|
||||||
r1 = pokemon_order_func(*(gBattleStruct->monToSwitchIntoId + battler));
|
partyId2 = GetPartyIdFromBattlePartyId(*(gBattleStruct->monToSwitchIntoId + battler));
|
||||||
sub_81B8FB0(r4, r1);
|
SwitchPartyMonSlots(partyId1, partyId2);
|
||||||
|
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
||||||
{
|
{
|
||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < (int)ARRAY_COUNT(gBattlePartyCurrentOrder); i++)
|
||||||
{
|
{
|
||||||
*(battler * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i];
|
*(battler * 3 + i + (u8*)(gBattleStruct->field_60)) = gBattlePartyCurrentOrder[i];
|
||||||
*(BATTLE_PARTNER(battler) * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i];
|
*(BATTLE_PARTNER(battler) * 3 + i + (u8*)(gBattleStruct->field_60)) = gBattlePartyCurrentOrder[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < (int)ARRAY_COUNT(gBattlePartyCurrentOrder); i++)
|
||||||
{
|
{
|
||||||
*(battler * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i];
|
*(battler * 3 + i + (u8*)(gBattleStruct->field_60)) = gBattlePartyCurrentOrder[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4283,7 +4284,7 @@ static void HandleTurnActionSelectionState(void)
|
|||||||
|| gBattleTypeFlags & BATTLE_TYPE_ARENA
|
|| gBattleTypeFlags & BATTLE_TYPE_ARENA
|
||||||
|| gStatuses3[gActiveBattler] & STATUS3_ROOTED)
|
|| gStatuses3[gActiveBattler] & STATUS3_ROOTED)
|
||||||
{
|
{
|
||||||
BtlController_EmitChoosePokemon(0, PARTY_CANT_SWITCH, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]);
|
BtlController_EmitChoosePokemon(0, PARTY_ACTION_CANT_SWITCH, PARTY_SIZE, ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]);
|
||||||
}
|
}
|
||||||
else if ((i = ABILITY_ON_OPPOSING_FIELD(gActiveBattler, ABILITY_SHADOW_TAG))
|
else if ((i = ABILITY_ON_OPPOSING_FIELD(gActiveBattler, ABILITY_SHADOW_TAG))
|
||||||
|| ((i = ABILITY_ON_OPPOSING_FIELD(gActiveBattler, ABILITY_ARENA_TRAP))
|
|| ((i = ABILITY_ON_OPPOSING_FIELD(gActiveBattler, ABILITY_ARENA_TRAP))
|
||||||
@@ -4292,16 +4293,16 @@ static void HandleTurnActionSelectionState(void)
|
|||||||
|| ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_FIELD_EXCEPT_BATTLER, gActiveBattler, ABILITY_MAGNET_PULL, 0, 0))
|
|| ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_FIELD_EXCEPT_BATTLER, gActiveBattler, ABILITY_MAGNET_PULL, 0, 0))
|
||||||
&& IS_BATTLER_OF_TYPE(gActiveBattler, TYPE_STEEL)))
|
&& IS_BATTLER_OF_TYPE(gActiveBattler, TYPE_STEEL)))
|
||||||
{
|
{
|
||||||
BtlController_EmitChoosePokemon(0, ((i - 1) << 4) | PARTY_ABILITY_PREVENTS, 6, gLastUsedAbility, gBattleStruct->field_60[gActiveBattler]);
|
BtlController_EmitChoosePokemon(0, ((i - 1) << 4) | PARTY_ACTION_ABILITY_PREVENTS, PARTY_SIZE, gLastUsedAbility, gBattleStruct->field_60[gActiveBattler]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (gActiveBattler == 2 && gChosenActionByBattler[0] == B_ACTION_SWITCH)
|
if (gActiveBattler == 2 && gChosenActionByBattler[0] == B_ACTION_SWITCH)
|
||||||
BtlController_EmitChoosePokemon(0, PARTY_CHOOSE_MON, *(gBattleStruct->monToSwitchIntoId + 0), ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]);
|
BtlController_EmitChoosePokemon(0, PARTY_ACTION_CHOOSE_MON, *(gBattleStruct->monToSwitchIntoId + 0), ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]);
|
||||||
else if (gActiveBattler == 3 && gChosenActionByBattler[1] == B_ACTION_SWITCH)
|
else if (gActiveBattler == 3 && gChosenActionByBattler[1] == B_ACTION_SWITCH)
|
||||||
BtlController_EmitChoosePokemon(0, PARTY_CHOOSE_MON, *(gBattleStruct->monToSwitchIntoId + 1), ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]);
|
BtlController_EmitChoosePokemon(0, PARTY_ACTION_CHOOSE_MON, *(gBattleStruct->monToSwitchIntoId + 1), ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]);
|
||||||
else
|
else
|
||||||
BtlController_EmitChoosePokemon(0, PARTY_CHOOSE_MON, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]);
|
BtlController_EmitChoosePokemon(0, PARTY_ACTION_CHOOSE_MON, PARTY_SIZE, ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]);
|
||||||
}
|
}
|
||||||
MarkBattlerForControllerExec(gActiveBattler);
|
MarkBattlerForControllerExec(gActiveBattler);
|
||||||
break;
|
break;
|
||||||
@@ -4589,7 +4590,7 @@ static void HandleTurnActionSelectionState(void)
|
|||||||
for (i = 0; i < gBattlersCount; i++)
|
for (i = 0; i < gBattlersCount; i++)
|
||||||
{
|
{
|
||||||
if (gChosenActionByBattler[i] == B_ACTION_SWITCH)
|
if (gChosenActionByBattler[i] == B_ACTION_SWITCH)
|
||||||
sub_80571DC(i, *(gBattleStruct->monToSwitchIntoId + i));
|
SwitchPartyOrderInGameMulti(i, *(gBattleStruct->monToSwitchIntoId + i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-5
@@ -22,6 +22,7 @@
|
|||||||
#include "constants/trainers.h"
|
#include "constants/trainers.h"
|
||||||
#include "constants/species.h"
|
#include "constants/species.h"
|
||||||
#include "constants/moves.h"
|
#include "constants/moves.h"
|
||||||
|
#include "constants/party_menu.h"
|
||||||
#include "constants/battle_pike.h"
|
#include "constants/battle_pike.h"
|
||||||
|
|
||||||
struct PikeRoomNPC
|
struct PikeRoomNPC
|
||||||
@@ -922,7 +923,7 @@ static bool8 TryInflictRandomStatus(void)
|
|||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < 3; i++)
|
||||||
{
|
{
|
||||||
mon = &gPlayerParty[indices[i]];
|
mon = &gPlayerParty[indices[i]];
|
||||||
if (pokemon_ailments_get_primary(GetMonData(mon, MON_DATA_STATUS)) == 0
|
if (GetAilmentFromStatus(GetMonData(mon, MON_DATA_STATUS)) == AILMENT_NONE
|
||||||
&& GetMonData(mon, MON_DATA_HP) != 0)
|
&& GetMonData(mon, MON_DATA_HP) != 0)
|
||||||
{
|
{
|
||||||
j++;
|
j++;
|
||||||
@@ -964,7 +965,7 @@ static bool8 TryInflictRandomStatus(void)
|
|||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < 3; i++)
|
||||||
{
|
{
|
||||||
mon = &gPlayerParty[indices[i]];
|
mon = &gPlayerParty[indices[i]];
|
||||||
if (pokemon_ailments_get_primary(GetMonData(mon, MON_DATA_STATUS)) == 0
|
if (GetAilmentFromStatus(GetMonData(mon, MON_DATA_STATUS)) == AILMENT_NONE
|
||||||
&& GetMonData(mon, MON_DATA_HP) != 0)
|
&& GetMonData(mon, MON_DATA_HP) != 0)
|
||||||
{
|
{
|
||||||
j++;
|
j++;
|
||||||
@@ -996,7 +997,7 @@ static bool8 AtLeastOneHealthyMon(void)
|
|||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < 3; i++)
|
||||||
{
|
{
|
||||||
struct Pokemon *mon = &gPlayerParty[i];
|
struct Pokemon *mon = &gPlayerParty[i];
|
||||||
if (pokemon_ailments_get_primary(GetMonData(mon, MON_DATA_STATUS)) == 0
|
if (GetAilmentFromStatus(GetMonData(mon, MON_DATA_STATUS)) == AILMENT_NONE
|
||||||
&& GetMonData(mon, MON_DATA_HP) != 0)
|
&& GetMonData(mon, MON_DATA_HP) != 0)
|
||||||
{
|
{
|
||||||
healthyMonsCount++;
|
healthyMonsCount++;
|
||||||
@@ -1285,7 +1286,7 @@ static void TryHealMons(u8 healCount)
|
|||||||
{
|
{
|
||||||
canBeHealed = TRUE;
|
canBeHealed = TRUE;
|
||||||
}
|
}
|
||||||
else if (pokemon_ailments_get_primary(GetMonData(mon, MON_DATA_STATUS)) != 0)
|
else if (GetAilmentFromStatus(GetMonData(mon, MON_DATA_STATUS)) != AILMENT_NONE)
|
||||||
{
|
{
|
||||||
canBeHealed = TRUE;
|
canBeHealed = TRUE;
|
||||||
}
|
}
|
||||||
@@ -1556,7 +1557,7 @@ static void CanAnyPartyMonsBeHealed(void)
|
|||||||
struct Pokemon *mon = &gPlayerParty[i];
|
struct Pokemon *mon = &gPlayerParty[i];
|
||||||
u16 curr = GetMonData(mon, MON_DATA_HP);
|
u16 curr = GetMonData(mon, MON_DATA_HP);
|
||||||
u16 max = GetMonData(mon, MON_DATA_MAX_HP);
|
u16 max = GetMonData(mon, MON_DATA_MAX_HP);
|
||||||
if (curr >= max && pokemon_ailments_get_primary(GetMonData(mon, MON_DATA_STATUS)) == 0)
|
if (curr >= max && GetAilmentFromStatus(GetMonData(mon, MON_DATA_STATUS)) == AILMENT_NONE)
|
||||||
{
|
{
|
||||||
u8 ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES);
|
u8 ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES);
|
||||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||||
|
|||||||
+14
-13
@@ -346,12 +346,12 @@ void InitBattlePyramidBagCursorPosition(void)
|
|||||||
|
|
||||||
void CB2_PyramidBagMenuFromStartMenu(void)
|
void CB2_PyramidBagMenuFromStartMenu(void)
|
||||||
{
|
{
|
||||||
sub_81C4F98(0, CB2_ReturnToFieldWithOpenMenu);
|
GoToBattlePyramidBagMenu(0, CB2_ReturnToFieldWithOpenMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81C4F10(void)
|
static void sub_81C4F10(void)
|
||||||
{
|
{
|
||||||
sub_81C4F98(1, SetCB2ToReshowScreenAfterMenu2);
|
GoToBattlePyramidBagMenu(1, CB2_SetUpReshowBattleScreenAfterMenu2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_81C4F24(void)
|
void sub_81C4F24(void)
|
||||||
@@ -366,18 +366,18 @@ static void sub_81C4F44(u8 taskId)
|
|||||||
if (!gPaletteFade.active)
|
if (!gPaletteFade.active)
|
||||||
{
|
{
|
||||||
CleanupOverworldWindowsAndTilemaps();
|
CleanupOverworldWindowsAndTilemaps();
|
||||||
gFieldCallback2 = hm_add_c3_without_phase_2;
|
gFieldCallback2 = CB2_FadeFromPartyMenu;
|
||||||
sub_81C4F98(3, CB2_ReturnToField);
|
GoToBattlePyramidBagMenu(3, CB2_ReturnToField);
|
||||||
DestroyTask(taskId);
|
DestroyTask(taskId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_81C4F84(void)
|
void CB2_ReturnToPyramidBagMenu(void)
|
||||||
{
|
{
|
||||||
sub_81C4F98(4, gPyramidBagCursorData.callback);
|
GoToBattlePyramidBagMenu(4, gPyramidBagCursorData.callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_81C4F98(u8 a0, void (*callback)(void))
|
void GoToBattlePyramidBagMenu(u8 a0, void (*callback)(void))
|
||||||
{
|
{
|
||||||
gPyramidBagResources = AllocZeroed(sizeof(*gPyramidBagResources));
|
gPyramidBagResources = AllocZeroed(sizeof(*gPyramidBagResources));
|
||||||
|
|
||||||
@@ -981,7 +981,7 @@ static void HandleMenuActionInput(u8 taskId)
|
|||||||
sub_8199134(0, 1);
|
sub_8199134(0, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1)
|
else if (gMain.newKeys & DPAD_LEFT || GetLRKeysPressed() == MENU_L_PRESSED)
|
||||||
{
|
{
|
||||||
if (id & 1 && IsValidMenuAction(id - 1))
|
if (id & 1 && IsValidMenuAction(id - 1))
|
||||||
{
|
{
|
||||||
@@ -989,7 +989,7 @@ static void HandleMenuActionInput(u8 taskId)
|
|||||||
sub_8199134(-1, 0);
|
sub_8199134(-1, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysState() == 2)
|
else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysPressed() == MENU_R_PRESSED)
|
||||||
{
|
{
|
||||||
if (!(id & 1) && IsValidMenuAction(id + 1))
|
if (!(id & 1) && IsValidMenuAction(id + 1))
|
||||||
{
|
{
|
||||||
@@ -1202,7 +1202,7 @@ static void BagAction_Give(u8 taskId)
|
|||||||
}
|
}
|
||||||
else if (!ItemId_GetImportance(gSpecialVar_ItemId))
|
else if (!ItemId_GetImportance(gSpecialVar_ItemId))
|
||||||
{
|
{
|
||||||
gPyramidBagResources->callback2 = sub_81B7F60;
|
gPyramidBagResources->callback2 = CB2_ChooseMonToGiveItem;
|
||||||
sub_81C5B14(taskId);
|
sub_81C5B14(taskId);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1350,7 +1350,7 @@ static void sub_81C6A14(u8 taskId)
|
|||||||
SetTaskToMainPyramidBagInputHandler(taskId);
|
SetTaskToMainPyramidBagInputHandler(taskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_81C6A94(void)
|
void TryStoreHeldItemsInPyramidBag(void)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
struct Pokemon *party = gPlayerParty;
|
struct Pokemon *party = gPlayerParty;
|
||||||
@@ -1363,8 +1363,9 @@ void sub_81C6A94(void)
|
|||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < 3; i++)
|
||||||
{
|
{
|
||||||
heldItem = GetMonData(&party[i], MON_DATA_HELD_ITEM);
|
heldItem = GetMonData(&party[i], MON_DATA_HELD_ITEM);
|
||||||
if (heldItem != 0 && !AddBagItem(heldItem, 1))
|
if (heldItem != ITEM_NONE && !AddBagItem(heldItem, 1))
|
||||||
{
|
{
|
||||||
|
// Cant store party held items in pyramid bag because bag is full
|
||||||
memcpy(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode], newItems, PYRAMID_BAG_ITEMS_COUNT * sizeof(u16));
|
memcpy(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode], newItems, PYRAMID_BAG_ITEMS_COUNT * sizeof(u16));
|
||||||
memcpy(gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode], newQuantities, PYRAMID_BAG_ITEMS_COUNT * sizeof(u8));
|
memcpy(gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode], newQuantities, PYRAMID_BAG_ITEMS_COUNT * sizeof(u8));
|
||||||
Free(newItems);
|
Free(newItems);
|
||||||
@@ -1374,7 +1375,7 @@ void sub_81C6A94(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
heldItem = 0;
|
heldItem = ITEM_NONE;
|
||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < 3; i++)
|
||||||
{
|
{
|
||||||
SetMonData(&party[i], MON_DATA_HELD_ITEM, &heldItem);
|
SetMonData(&party[i], MON_DATA_HELD_ITEM, &heldItem);
|
||||||
|
|||||||
@@ -52,6 +52,7 @@
|
|||||||
#include "menu_specialized.h"
|
#include "menu_specialized.h"
|
||||||
#include "constants/rgb.h"
|
#include "constants/rgb.h"
|
||||||
#include "data.h"
|
#include "data.h"
|
||||||
|
#include "constants/party_menu.h"
|
||||||
|
|
||||||
extern struct MusicPlayerInfo gMPlayInfo_BGM;
|
extern struct MusicPlayerInfo gMPlayInfo_BGM;
|
||||||
|
|
||||||
@@ -5107,13 +5108,13 @@ static void atk4F_jumpifcantswitch(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_804CF10(u8 arg0)
|
static void sub_804CF10(u8 slotId)
|
||||||
{
|
{
|
||||||
*(gBattleStruct->field_58 + gActiveBattler) = gBattlerPartyIndexes[gActiveBattler];
|
*(gBattleStruct->field_58 + gActiveBattler) = gBattlerPartyIndexes[gActiveBattler];
|
||||||
*(gBattleStruct->monToSwitchIntoId + gActiveBattler) = 6;
|
*(gBattleStruct->monToSwitchIntoId + gActiveBattler) = PARTY_SIZE;
|
||||||
gBattleStruct->field_93 &= ~(gBitTable[gActiveBattler]);
|
gBattleStruct->field_93 &= ~(gBitTable[gActiveBattler]);
|
||||||
|
|
||||||
BtlController_EmitChoosePokemon(0, PARTY_MUST_CHOOSE_MON, arg0, 0, gBattleStruct->field_60[gActiveBattler]);
|
BtlController_EmitChoosePokemon(0, PARTY_ACTION_SEND_OUT, slotId, ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]);
|
||||||
MarkBattlerForControllerExec(gActiveBattler);
|
MarkBattlerForControllerExec(gActiveBattler);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5145,7 +5146,7 @@ static void atk50_openpartyscreen(void)
|
|||||||
}
|
}
|
||||||
else if (!gSpecialStatuses[gActiveBattler].flag40)
|
else if (!gSpecialStatuses[gActiveBattler].flag40)
|
||||||
{
|
{
|
||||||
sub_804CF10(6);
|
sub_804CF10(PARTY_SIZE);
|
||||||
gSpecialStatuses[gActiveBattler].flag40 = 1;
|
gSpecialStatuses[gActiveBattler].flag40 = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5352,9 +5353,9 @@ static void atk50_openpartyscreen(void)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (gBattlescriptCurrInstr[1] & 0x80)
|
if (gBattlescriptCurrInstr[1] & 0x80)
|
||||||
hitmarkerFaintBits = PARTY_CHOOSE_MON; // Used here as the caseId for the EmitChoose function.
|
hitmarkerFaintBits = PARTY_ACTION_CHOOSE_MON; // Used here as the caseId for the EmitChoose function.
|
||||||
else
|
else
|
||||||
hitmarkerFaintBits = PARTY_MUST_CHOOSE_MON;
|
hitmarkerFaintBits = PARTY_ACTION_SEND_OUT;
|
||||||
|
|
||||||
battlerId = GetBattlerForBattleScript(gBattlescriptCurrInstr[1] & ~(0x80));
|
battlerId = GetBattlerForBattleScript(gBattlescriptCurrInstr[1] & ~(0x80));
|
||||||
if (gSpecialStatuses[battlerId].flag40)
|
if (gSpecialStatuses[battlerId].flag40)
|
||||||
@@ -5375,7 +5376,7 @@ static void atk50_openpartyscreen(void)
|
|||||||
*(gBattleStruct->monToSwitchIntoId + gActiveBattler) = 6;
|
*(gBattleStruct->monToSwitchIntoId + gActiveBattler) = 6;
|
||||||
gBattleStruct->field_93 &= ~(gBitTable[gActiveBattler]);
|
gBattleStruct->field_93 &= ~(gBitTable[gActiveBattler]);
|
||||||
|
|
||||||
BtlController_EmitChoosePokemon(0, hitmarkerFaintBits, *(gBattleStruct->monToSwitchIntoId + (gActiveBattler ^ 2)), 0, gBattleStruct->field_60[gActiveBattler]);
|
BtlController_EmitChoosePokemon(0, hitmarkerFaintBits, *(gBattleStruct->monToSwitchIntoId + (gActiveBattler ^ 2)), ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]);
|
||||||
MarkBattlerForControllerExec(gActiveBattler);
|
MarkBattlerForControllerExec(gActiveBattler);
|
||||||
|
|
||||||
gBattlescriptCurrInstr += 6;
|
gBattlescriptCurrInstr += 6;
|
||||||
@@ -5433,7 +5434,7 @@ static void atk51_switchhandleorder(void)
|
|||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||||
sub_803BDA0(gActiveBattler);
|
SwitchPartyOrder(gActiveBattler);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (!(gBattleStruct->field_93 & gBitTable[gActiveBattler]))
|
if (!(gBattleStruct->field_93 & gBitTable[gActiveBattler]))
|
||||||
@@ -5458,11 +5459,11 @@ static void atk51_switchhandleorder(void)
|
|||||||
}
|
}
|
||||||
else if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
|
else if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
|
||||||
{
|
{
|
||||||
sub_80571DC(gActiveBattler, *(gBattleStruct->monToSwitchIntoId + gActiveBattler));
|
SwitchPartyOrderInGameMulti(gActiveBattler, *(gBattleStruct->monToSwitchIntoId + gActiveBattler));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sub_803BDA0(gActiveBattler);
|
SwitchPartyOrder(gActiveBattler);
|
||||||
}
|
}
|
||||||
|
|
||||||
PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBattlerAttacker].species)
|
PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBattlerAttacker].species)
|
||||||
@@ -5615,15 +5616,15 @@ static void atk59_handlelearnnewmove(void)
|
|||||||
const u8 *jumpPtr1 = T1_READ_PTR(gBattlescriptCurrInstr + 1);
|
const u8 *jumpPtr1 = T1_READ_PTR(gBattlescriptCurrInstr + 1);
|
||||||
const u8 *jumpPtr2 = T1_READ_PTR(gBattlescriptCurrInstr + 5);
|
const u8 *jumpPtr2 = T1_READ_PTR(gBattlescriptCurrInstr + 5);
|
||||||
|
|
||||||
u16 ret = MonTryLearningNewMove(&gPlayerParty[gBattleStruct->expGetterMonId], gBattlescriptCurrInstr[9]);
|
u16 learnMove = MonTryLearningNewMove(&gPlayerParty[gBattleStruct->expGetterMonId], gBattlescriptCurrInstr[9]);
|
||||||
while (ret == 0xFFFE)
|
while (learnMove == MON_ALREADY_KNOWS_MOVE)
|
||||||
ret = MonTryLearningNewMove(&gPlayerParty[gBattleStruct->expGetterMonId], 0);
|
learnMove = MonTryLearningNewMove(&gPlayerParty[gBattleStruct->expGetterMonId], FALSE);
|
||||||
|
|
||||||
if (ret == 0)
|
if (learnMove == 0)
|
||||||
{
|
{
|
||||||
gBattlescriptCurrInstr = jumpPtr2;
|
gBattlescriptCurrInstr = jumpPtr2;
|
||||||
}
|
}
|
||||||
else if (ret == 0xFFFF)
|
else if (learnMove == MON_HAS_MAX_MOVES)
|
||||||
{
|
{
|
||||||
gBattlescriptCurrInstr += 10;
|
gBattlescriptCurrInstr += 10;
|
||||||
}
|
}
|
||||||
@@ -5634,7 +5635,7 @@ static void atk59_handlelearnnewmove(void)
|
|||||||
if (gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterMonId
|
if (gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterMonId
|
||||||
&& !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED))
|
&& !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED))
|
||||||
{
|
{
|
||||||
GiveMoveToBattleMon(&gBattleMons[gActiveBattler], ret);
|
GiveMoveToBattleMon(&gBattleMons[gActiveBattler], learnMove);
|
||||||
}
|
}
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
||||||
{
|
{
|
||||||
@@ -5642,7 +5643,7 @@ static void atk59_handlelearnnewmove(void)
|
|||||||
if (gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterMonId
|
if (gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterMonId
|
||||||
&& !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED))
|
&& !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED))
|
||||||
{
|
{
|
||||||
GiveMoveToBattleMon(&gBattleMons[gActiveBattler], ret);
|
GiveMoveToBattleMon(&gBattleMons[gActiveBattler], learnMove);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5715,8 +5716,8 @@ static void atk5A_yesnoboxlearnmove(void)
|
|||||||
case 4:
|
case 4:
|
||||||
if (!gPaletteFade.active && gMain.callback2 == BattleMainCB2)
|
if (!gPaletteFade.active && gMain.callback2 == BattleMainCB2)
|
||||||
{
|
{
|
||||||
u8 movePosition = sub_81C1B94();
|
u8 movePosition = GetMoveSlotToReplace();
|
||||||
if (movePosition == 4)
|
if (movePosition == MAX_MON_MOVES)
|
||||||
{
|
{
|
||||||
gBattleScripting.learnMoveState = 5;
|
gBattleScripting.learnMoveState = 5;
|
||||||
}
|
}
|
||||||
@@ -7566,19 +7567,19 @@ static void atk8F_forcerandomswitch(void)
|
|||||||
*(gBattleStruct->monToSwitchIntoId + gBattlerTarget) = i;
|
*(gBattleStruct->monToSwitchIntoId + gBattlerTarget) = i;
|
||||||
|
|
||||||
if (!IsMultiBattle())
|
if (!IsMultiBattle())
|
||||||
sub_803BDA0(gBattlerTarget);
|
SwitchPartyOrder(gBattlerTarget);
|
||||||
|
|
||||||
if ((gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
|
if ((gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
|
||||||
|| (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
|| (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
||||||
|| (gBattleTypeFlags & BATTLE_TYPE_x2000000 && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
|
|| (gBattleTypeFlags & BATTLE_TYPE_x2000000 && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
|
||||||
|| (gBattleTypeFlags & BATTLE_TYPE_x2000000 && gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
|| (gBattleTypeFlags & BATTLE_TYPE_x2000000 && gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||||
{
|
{
|
||||||
sub_81B8E80(gBattlerTarget, i, 0);
|
SwitchPartyOrderLinkMulti(gBattlerTarget, i, 0);
|
||||||
sub_81B8E80(gBattlerTarget ^ BIT_FLANK, i, 1);
|
SwitchPartyOrderLinkMulti(gBattlerTarget ^ BIT_FLANK, i, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
|
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
|
||||||
sub_80571DC(gBattlerTarget, i);
|
SwitchPartyOrderInGameMulti(gBattlerTarget, i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
+1
-1
@@ -3191,7 +3191,7 @@ static void FillPartnerParty(u16 trainerId)
|
|||||||
sStevenMons[i].fixedIV,
|
sStevenMons[i].fixedIV,
|
||||||
TRUE, i, // BUG: personality was stored in the 'j' variable. As a result, Steven's pokemon do not have the intended natures.
|
TRUE, i, // BUG: personality was stored in the 'j' variable. As a result, Steven's pokemon do not have the intended natures.
|
||||||
OT_ID_PRESET, STEVEN_OTID);
|
OT_ID_PRESET, STEVEN_OTID);
|
||||||
for (j = 0; j < 6; j++)
|
for (j = 0; j < PARTY_SIZE; j++)
|
||||||
SetMonData(&gPlayerParty[3 + i], MON_DATA_HP_EV + j, &sStevenMons[i].evs[j]);
|
SetMonData(&gPlayerParty[3 + i], MON_DATA_HP_EV + j, &sStevenMons[i].evs[j]);
|
||||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||||
SetMonMoveSlot(&gPlayerParty[3 + i], sStevenMons[i].moves[j], j);
|
SetMonMoveSlot(&gPlayerParty[3 + i], sStevenMons[i].moves[j], j);
|
||||||
|
|||||||
+6
-6
@@ -102,7 +102,7 @@ void AdjustFriendshipOnBattleFaint(u8 battlerId)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_80571DC(u8 battlerId, u8 arg1)
|
void SwitchPartyOrderInGameMulti(u8 battlerId, u8 arg1)
|
||||||
{
|
{
|
||||||
if (GetBattlerSide(battlerId) != B_SIDE_OPPONENT)
|
if (GetBattlerSide(battlerId) != B_SIDE_OPPONENT)
|
||||||
{
|
{
|
||||||
@@ -110,13 +110,13 @@ void sub_80571DC(u8 battlerId, u8 arg1)
|
|||||||
|
|
||||||
// gBattleStruct->field_60[0][i]
|
// gBattleStruct->field_60[0][i]
|
||||||
|
|
||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < (int)ARRAY_COUNT(gBattlePartyCurrentOrder); i++)
|
||||||
gUnknown_0203CF00[i] = *(0 * 3 + i + (u8*)(gBattleStruct->field_60));
|
gBattlePartyCurrentOrder[i] = *(0 * 3 + i + (u8*)(gBattleStruct->field_60));
|
||||||
|
|
||||||
sub_81B8FB0(pokemon_order_func(gBattlerPartyIndexes[battlerId]), pokemon_order_func(arg1));
|
SwitchPartyMonSlots(GetPartyIdFromBattlePartyId(gBattlerPartyIndexes[battlerId]), GetPartyIdFromBattlePartyId(arg1));
|
||||||
|
|
||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < (int)ARRAY_COUNT(gBattlePartyCurrentOrder); i++)
|
||||||
*(0 * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i];
|
*(0 * 3 + i + (u8*)(gBattleStruct->field_60)) = gBattlePartyCurrentOrder[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+9
-10
@@ -2799,16 +2799,15 @@ void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetContestAvailability?
|
u8 GetContestEntryEligibility(struct Pokemon *pkmn)
|
||||||
u8 sub_80DAE0C(struct Pokemon *pkmn)
|
|
||||||
{
|
{
|
||||||
u8 ribbon;
|
u8 ribbon;
|
||||||
u8 retVal;
|
u8 eligibility;
|
||||||
|
|
||||||
if (GetMonData(pkmn, MON_DATA_IS_EGG))
|
if (GetMonData(pkmn, MON_DATA_IS_EGG))
|
||||||
return 3;
|
return CANT_ENTER_CONTEST_EGG;
|
||||||
if (GetMonData(pkmn, MON_DATA_HP) == 0)
|
if (GetMonData(pkmn, MON_DATA_HP) == 0)
|
||||||
return 4;
|
return CANT_ENTER_CONTEST_FAINTED;
|
||||||
switch (gSpecialVar_ContestCategory)
|
switch (gSpecialVar_ContestCategory)
|
||||||
{
|
{
|
||||||
case CONTEST_CATEGORY_COOL:
|
case CONTEST_CATEGORY_COOL:
|
||||||
@@ -2827,19 +2826,19 @@ u8 sub_80DAE0C(struct Pokemon *pkmn)
|
|||||||
ribbon = GetMonData(pkmn, MON_DATA_TOUGH_RIBBON);
|
ribbon = GetMonData(pkmn, MON_DATA_TOUGH_RIBBON);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return CANT_ENTER_CONTEST;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Couldn't get this to match any other way.
|
// Couldn't get this to match any other way.
|
||||||
// Returns 2, 1, or 0 respectively if ribbon's rank is above, equal, or below
|
// Returns 2, 1, or 0 respectively if ribbon's rank is above, equal, or below
|
||||||
// the current contest rank.
|
// the current contest rank.
|
||||||
if (ribbon > gSpecialVar_ContestRank)
|
if (ribbon > gSpecialVar_ContestRank)
|
||||||
retVal = 2;
|
eligibility = CAN_ENTER_CONTEST_HIGH_RANK;
|
||||||
else if (ribbon >= gSpecialVar_ContestRank)
|
else if (ribbon >= gSpecialVar_ContestRank)
|
||||||
retVal = 1;
|
eligibility = CAN_ENTER_CONTEST_EQUAL_RANK;
|
||||||
else
|
else
|
||||||
retVal = 0;
|
eligibility = CANT_ENTER_CONTEST;
|
||||||
return retVal;
|
return eligibility;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void DrawContestantWindowText(void)
|
static void DrawContestantWindowText(void)
|
||||||
|
|||||||
@@ -1935,14 +1935,16 @@ static void sub_80F7ED0(int windowId, u8 *str, int arg2)
|
|||||||
|
|
||||||
void sub_80F7F30(void)
|
void sub_80F7F30(void)
|
||||||
{
|
{
|
||||||
u8 result = sub_80DAE0C(&gPlayerParty[gContestMonPartyIndex]);
|
u8 eligibility = GetContestEntryEligibility(&gPlayerParty[gContestMonPartyIndex]);
|
||||||
if (result)
|
|
||||||
|
// Nonzero eligibility can still be non-eligibile, if mon is fainted or egg
|
||||||
|
if (eligibility)
|
||||||
{
|
{
|
||||||
sub_80DAB8C(gSpecialVar_ContestCategory, gSpecialVar_ContestRank);
|
sub_80DAB8C(gSpecialVar_ContestCategory, gSpecialVar_ContestRank);
|
||||||
sub_80DB09C(gSpecialVar_ContestCategory);
|
sub_80DB09C(gSpecialVar_ContestCategory);
|
||||||
}
|
}
|
||||||
|
|
||||||
gSpecialVar_Result = result;
|
gSpecialVar_Result = eligibility;
|
||||||
}
|
}
|
||||||
|
|
||||||
u16 sub_80F7F7C(void)
|
u16 sub_80F7F7C(void)
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
+6
-9
@@ -231,11 +231,8 @@ static void ApplyDaycareExperience(struct Pokemon *mon)
|
|||||||
while ((learnedMove = MonTryLearningNewMove(mon, firstMove)) != 0)
|
while ((learnedMove = MonTryLearningNewMove(mon, firstMove)) != 0)
|
||||||
{
|
{
|
||||||
firstMove = FALSE;
|
firstMove = FALSE;
|
||||||
if (learnedMove == 0xFFFF)
|
if (learnedMove == MON_HAS_MAX_MOVES)
|
||||||
{
|
|
||||||
// Mon already knows 4 moves.
|
|
||||||
DeleteFirstMoveAndGiveMoveToMon(mon, gMoveToLearn);
|
DeleteFirstMoveAndGiveMoveToMon(mon, gMoveToLearn);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -666,7 +663,7 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru
|
|||||||
{
|
{
|
||||||
if (sHatchedEggFatherMoves[i] == sHatchedEggEggMoves[j])
|
if (sHatchedEggFatherMoves[i] == sHatchedEggEggMoves[j])
|
||||||
{
|
{
|
||||||
if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == 0xFFFF)
|
if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == MON_HAS_MAX_MOVES)
|
||||||
DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFatherMoves[i]);
|
DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFatherMoves[i]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -685,7 +682,7 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru
|
|||||||
{
|
{
|
||||||
if (sHatchedEggFatherMoves[i] == ItemIdToBattleMoveId(ITEM_TM01_FOCUS_PUNCH + j) && CanMonLearnTMHM(egg, j))
|
if (sHatchedEggFatherMoves[i] == ItemIdToBattleMoveId(ITEM_TM01_FOCUS_PUNCH + j) && CanMonLearnTMHM(egg, j))
|
||||||
{
|
{
|
||||||
if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == 0xFFFF)
|
if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == MON_HAS_MAX_MOVES)
|
||||||
DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFatherMoves[i]);
|
DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFatherMoves[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -710,7 +707,7 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru
|
|||||||
{
|
{
|
||||||
if (sHatchedEggLevelUpMoves[j] != MOVE_NONE && sHatchedEggFinalMoves[i] == sHatchedEggLevelUpMoves[j])
|
if (sHatchedEggLevelUpMoves[j] != MOVE_NONE && sHatchedEggFinalMoves[i] == sHatchedEggLevelUpMoves[j])
|
||||||
{
|
{
|
||||||
if (GiveMoveToMon(egg, sHatchedEggFinalMoves[i]) == 0xFFFF)
|
if (GiveMoveToMon(egg, sHatchedEggFinalMoves[i]) == MON_HAS_MAX_MOVES)
|
||||||
DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFinalMoves[i]);
|
DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFinalMoves[i]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -755,7 +752,7 @@ static void GiveVoltTackleIfLightBall(struct Pokemon *mon, struct DayCare *dayca
|
|||||||
|
|
||||||
if (motherItem == ITEM_LIGHT_BALL || fatherItem == ITEM_LIGHT_BALL)
|
if (motherItem == ITEM_LIGHT_BALL || fatherItem == ITEM_LIGHT_BALL)
|
||||||
{
|
{
|
||||||
if (GiveMoveToMon(mon, MOVE_VOLT_TACKLE) == 0xFFFF)
|
if (GiveMoveToMon(mon, MOVE_VOLT_TACKLE) == MON_HAS_MAX_MOVES)
|
||||||
DeleteFirstMoveAndGiveMoveToMon(mon, MOVE_VOLT_TACKLE);
|
DeleteFirstMoveAndGiveMoveToMon(mon, MOVE_VOLT_TACKLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1295,6 +1292,6 @@ void ShowDaycareLevelMenu(void)
|
|||||||
|
|
||||||
void ChooseSendDaycareMon(void)
|
void ChooseSendDaycareMon(void)
|
||||||
{
|
{
|
||||||
sub_81B9328();
|
ChooseMonForDaycare();
|
||||||
gMain.savedCallback = CB2_ReturnToField;
|
gMain.savedCallback = CB2_ReturnToField;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -743,12 +743,12 @@ static void Task_EvolutionScene(u8 taskID)
|
|||||||
GetMonData(mon, MON_DATA_NICKNAME, text);
|
GetMonData(mon, MON_DATA_NICKNAME, text);
|
||||||
StringCopy10(gBattleTextBuff1, text);
|
StringCopy10(gBattleTextBuff1, text);
|
||||||
|
|
||||||
if (var == 0xFFFF) // no place to learn it
|
if (var == MON_HAS_MAX_MOVES)
|
||||||
gTasks[taskID].tState = 22;
|
gTasks[taskID].tState = 22;
|
||||||
else if (var == 0xFFFE) // it already knows that move
|
else if (var == MON_ALREADY_KNOWS_MOVE)
|
||||||
break;
|
break;
|
||||||
else
|
else
|
||||||
gTasks[taskID].tState = 20; // has less than 4 moves, so it's been learned
|
gTasks[taskID].tState = 20; // move has been learned
|
||||||
}
|
}
|
||||||
else // no move to learn
|
else // no move to learn
|
||||||
{
|
{
|
||||||
@@ -909,8 +909,8 @@ static void Task_EvolutionScene(u8 taskID)
|
|||||||
case 6:
|
case 6:
|
||||||
if (!gPaletteFade.active && gMain.callback2 == CB2_EvolutionSceneUpdate)
|
if (!gPaletteFade.active && gMain.callback2 == CB2_EvolutionSceneUpdate)
|
||||||
{
|
{
|
||||||
var = sub_81C1B94(); // moveID
|
var = GetMoveSlotToReplace();
|
||||||
if (var == 4)
|
if (var == MAX_MON_MOVES)
|
||||||
{
|
{
|
||||||
gTasks[taskID].tLearnMoveState = 10;
|
gTasks[taskID].tLearnMoveState = 10;
|
||||||
}
|
}
|
||||||
@@ -1100,9 +1100,9 @@ static void Task_TradeEvolutionScene(u8 taskID)
|
|||||||
GetMonData(mon, MON_DATA_NICKNAME, text);
|
GetMonData(mon, MON_DATA_NICKNAME, text);
|
||||||
StringCopy10(gBattleTextBuff1, text);
|
StringCopy10(gBattleTextBuff1, text);
|
||||||
|
|
||||||
if (var == 0xFFFF)
|
if (var == MON_HAS_MAX_MOVES)
|
||||||
gTasks[taskID].tState = 20;
|
gTasks[taskID].tState = 20;
|
||||||
else if (var == 0xFFFE)
|
else if (var == MON_ALREADY_KNOWS_MOVE)
|
||||||
break;
|
break;
|
||||||
else
|
else
|
||||||
gTasks[taskID].tState = 18;
|
gTasks[taskID].tState = 18;
|
||||||
@@ -1243,8 +1243,8 @@ static void Task_TradeEvolutionScene(u8 taskID)
|
|||||||
case 6:
|
case 6:
|
||||||
if (!gPaletteFade.active && gMain.callback2 == CB2_TradeEvolutionSceneUpdate)
|
if (!gPaletteFade.active && gMain.callback2 == CB2_TradeEvolutionSceneUpdate)
|
||||||
{
|
{
|
||||||
var = sub_81C1B94(); // moveID
|
var = GetMoveSlotToReplace();
|
||||||
if (var == 4)
|
if (var == MAX_MON_MOVES)
|
||||||
{
|
{
|
||||||
gTasks[taskID].tLearnMoveState = 9;
|
gTasks[taskID].tLearnMoveState = 9;
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -63,7 +63,7 @@ static void PokeballGlowEffect_7(struct Sprite *);
|
|||||||
static u8 PokecenterHealEffectHelper(s16, s16);
|
static u8 PokecenterHealEffectHelper(s16, s16);
|
||||||
static void HallOfFameRecordEffectHelper(s16, s16, s16, u8);
|
static void HallOfFameRecordEffectHelper(s16, s16, s16, u8);
|
||||||
|
|
||||||
static void mapldr_080842E8(void);
|
static void FieldCallback_Fly(void);
|
||||||
static void task00_8084310(u8);
|
static void task00_8084310(u8);
|
||||||
static void mapldr_08084390(void);
|
static void mapldr_08084390(void);
|
||||||
static void c3_080843F8(u8);
|
static void c3_080843F8(u8);
|
||||||
@@ -1364,13 +1364,13 @@ void SpriteCB_HallOfFameMonitor(struct Sprite *sprite)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void sub_80B69DC(void)
|
void ReturnToFieldFromFlyMapSelect(void)
|
||||||
{
|
{
|
||||||
SetMainCallback2(CB2_ReturnToField);
|
SetMainCallback2(CB2_ReturnToField);
|
||||||
gFieldCallback = mapldr_080842E8;
|
gFieldCallback = FieldCallback_Fly;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mapldr_080842E8(void)
|
static void FieldCallback_Fly(void)
|
||||||
{
|
{
|
||||||
pal_fill_black();
|
pal_fill_black();
|
||||||
CreateTask(task00_8084310, 0);
|
CreateTask(task00_8084310, 0);
|
||||||
|
|||||||
+3
-2
@@ -15,6 +15,7 @@
|
|||||||
#include "task.h"
|
#include "task.h"
|
||||||
#include "trainer_hill.h"
|
#include "trainer_hill.h"
|
||||||
#include "constants/field_poison.h"
|
#include "constants/field_poison.h"
|
||||||
|
#include "constants/party_menu.h"
|
||||||
#include "constants/species.h"
|
#include "constants/species.h"
|
||||||
|
|
||||||
static bool32 IsMonValidSpecies(struct Pokemon *pokemon)
|
static bool32 IsMonValidSpecies(struct Pokemon *pokemon)
|
||||||
@@ -56,7 +57,7 @@ static void FaintFromFieldPoison(u8 partyIdx)
|
|||||||
static bool32 MonFaintedFromPoison(u8 partyIdx)
|
static bool32 MonFaintedFromPoison(u8 partyIdx)
|
||||||
{
|
{
|
||||||
struct Pokemon *pokemon = gPlayerParty + partyIdx;
|
struct Pokemon *pokemon = gPlayerParty + partyIdx;
|
||||||
if (IsMonValidSpecies(pokemon) && GetMonData(pokemon, MON_DATA_HP) == 0 && pokemon_ailments_get_primary(GetMonData(pokemon, MON_DATA_STATUS)) == AILMENT_PSN)
|
if (IsMonValidSpecies(pokemon) && GetMonData(pokemon, MON_DATA_HP) == 0 && GetAilmentFromStatus(GetMonData(pokemon, MON_DATA_STATUS)) == AILMENT_PSN)
|
||||||
{
|
{
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@@ -124,7 +125,7 @@ s32 DoPoisonFieldEffect(void)
|
|||||||
u32 numFainted = 0;
|
u32 numFainted = 0;
|
||||||
for (i = 0; i < PARTY_SIZE; i++)
|
for (i = 0; i < PARTY_SIZE; i++)
|
||||||
{
|
{
|
||||||
if (GetMonData(pokemon, MON_DATA_SANITY_HAS_SPECIES) && pokemon_ailments_get_primary(GetMonData(pokemon, MON_DATA_STATUS)) == AILMENT_PSN)
|
if (GetMonData(pokemon, MON_DATA_SANITY_HAS_SPECIES) && GetAilmentFromStatus(GetMonData(pokemon, MON_DATA_STATUS)) == AILMENT_PSN)
|
||||||
{
|
{
|
||||||
hp = GetMonData(pokemon, MON_DATA_HP);
|
hp = GetMonData(pokemon, MON_DATA_HP);
|
||||||
if (hp == 0 || --hp == 0)
|
if (hp == 0 || --hp == 0)
|
||||||
|
|||||||
@@ -1124,7 +1124,7 @@ static void sub_80B0318(u8 taskId)
|
|||||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(12, 7));
|
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(12, 7));
|
||||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR);
|
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR);
|
||||||
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ);
|
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ);
|
||||||
sub_8199C30(0, 0, 0, 0x1E, 0x14, 0xF);
|
SetBgTilemapPalette(0, 0, 0, 0x1E, 0x14, 0xF);
|
||||||
schedule_bg_copy_tilemap_to_vram(0);
|
schedule_bg_copy_tilemap_to_vram(0);
|
||||||
SetFlash2ScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], data[2], data[3], 1);
|
SetFlash2ScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], data[2], data[3], 1);
|
||||||
CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480);
|
CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480);
|
||||||
|
|||||||
@@ -60,6 +60,7 @@
|
|||||||
#include "constants/songs.h"
|
#include "constants/songs.h"
|
||||||
#include "constants/species.h"
|
#include "constants/species.h"
|
||||||
#include "constants/moves.h"
|
#include "constants/moves.h"
|
||||||
|
#include "constants/party_menu.h"
|
||||||
#include "constants/vars.h"
|
#include "constants/vars.h"
|
||||||
#include "constants/battle_frontier.h"
|
#include "constants/battle_frontier.h"
|
||||||
#include "constants/weather.h"
|
#include "constants/weather.h"
|
||||||
|
|||||||
+46
-44
@@ -7,12 +7,13 @@
|
|||||||
#include "string_util.h"
|
#include "string_util.h"
|
||||||
#include "strings.h"
|
#include "strings.h"
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
|
#include "constants/party_menu.h"
|
||||||
#include "constants/songs.h"
|
#include "constants/songs.h"
|
||||||
|
|
||||||
static void sub_816166C(u8 taskId);
|
static void Task_SoftboiledRestoreHealth(u8 taskId);
|
||||||
static void sub_81616C0(u8 taskId);
|
static void Task_DisplayHPRestoredMessage(u8 taskId);
|
||||||
static void sub_8161724(u8 taskId);
|
static void Task_FinishSoftboiled(u8 taskId);
|
||||||
static void sub_81617B8(u8 taskId);
|
static void CantUseSoftboiledOnMon(u8 taskId);
|
||||||
|
|
||||||
bool8 SetUpFieldMove_SoftBoiled(void)
|
bool8 SetUpFieldMove_SoftBoiled(void)
|
||||||
{
|
{
|
||||||
@@ -29,81 +30,82 @@ bool8 SetUpFieldMove_SoftBoiled(void)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_8161560(u8 taskId)
|
void ChooseMonForSoftboiled(u8 taskId)
|
||||||
{
|
{
|
||||||
gUnknown_0203CEC8.unkB = 0xA;
|
gPartyMenu.action = PARTY_ACTION_SOFTBOILED;
|
||||||
gUnknown_0203CEC8.unkA = gUnknown_0203CEC8.slotId;
|
gPartyMenu.slotId2 = gPartyMenu.slotId;
|
||||||
sub_81B0FCC(GetCursorSelectionMonId(), 0x1);
|
AnimatePartySlot(GetCursorSelectionMonId(), 1);
|
||||||
DisplayPartyMenuStdMessage(5);
|
DisplayPartyMenuStdMessage(PARTY_MSG_USE_ON_WHICH_MON);
|
||||||
gTasks[taskId].func = sub_81B1370;
|
gTasks[taskId].func = Task_HandleChooseMonInput;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_81615A8(u8 taskId)
|
void Task_TryUseSoftboiledOnPartyMon(u8 taskId)
|
||||||
{
|
{
|
||||||
u16 hp;
|
u16 hp;
|
||||||
|
|
||||||
u8 slotId = gUnknown_0203CEC8.slotId;
|
u8 userPartyId = gPartyMenu.slotId;
|
||||||
u8 pokemonIndex = gUnknown_0203CEC8.unkA;
|
u8 recipientPartyId = gPartyMenu.slotId2;
|
||||||
if(pokemonIndex > 6)
|
if(recipientPartyId > PARTY_SIZE)
|
||||||
{
|
{
|
||||||
gUnknown_0203CEC8.unkB = 0;
|
gPartyMenu.action = 0;
|
||||||
DisplayPartyMenuStdMessage(0);
|
DisplayPartyMenuStdMessage(PARTY_MSG_CHOOSE_MON);
|
||||||
gTasks[taskId].func = sub_81B1370;
|
gTasks[taskId].func = Task_HandleChooseMonInput;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
hp = GetMonData(&gPlayerParty[pokemonIndex], MON_DATA_HP);
|
hp = GetMonData(&gPlayerParty[recipientPartyId], MON_DATA_HP);
|
||||||
if(hp == 0 || slotId == pokemonIndex || GetMonData(&gPlayerParty[pokemonIndex], MON_DATA_MAX_HP) == hp)
|
if(hp == 0 || userPartyId == recipientPartyId || GetMonData(&gPlayerParty[recipientPartyId], MON_DATA_MAX_HP) == hp)
|
||||||
{
|
{
|
||||||
sub_81617B8(taskId);
|
CantUseSoftboiledOnMon(taskId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Take away Softboiled user's health first (-1)
|
||||||
PlaySE(SE_KAIFUKU);
|
PlaySE(SE_KAIFUKU);
|
||||||
sub_81B1F18(taskId, slotId, -1, GetMonData(&gPlayerParty[slotId], MON_DATA_MAX_HP)/5, sub_816166C);
|
PartyMenuModifyHP(taskId, userPartyId, -1, GetMonData(&gPlayerParty[userPartyId], MON_DATA_MAX_HP)/5, Task_SoftboiledRestoreHealth);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_816166C(u8 taskId)
|
static void Task_SoftboiledRestoreHealth(u8 taskId)
|
||||||
{
|
{
|
||||||
PlaySE(SE_KAIFUKU);
|
PlaySE(SE_KAIFUKU);
|
||||||
sub_81B1F18(taskId, gUnknown_0203CEC8.unkA, 1, GetMonData(&gPlayerParty[gUnknown_0203CEC8.slotId], MON_DATA_MAX_HP)/5, sub_81616C0);
|
PartyMenuModifyHP(taskId, gPartyMenu.slotId2, 1, GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_MAX_HP)/5, Task_DisplayHPRestoredMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81616C0(u8 taskId)
|
static void Task_DisplayHPRestoredMessage(u8 taskId)
|
||||||
{
|
{
|
||||||
GetMonNickname(&gPlayerParty[gUnknown_0203CEC8.unkA], gStringVar1);
|
GetMonNickname(&gPlayerParty[gPartyMenu.slotId2], gStringVar1);
|
||||||
StringExpandPlaceholders(gStringVar4, gText_PkmnHPRestoredByVar2);
|
StringExpandPlaceholders(gStringVar4, gText_PkmnHPRestoredByVar2);
|
||||||
DisplayPartyMenuMessage(gStringVar4, 0);
|
DisplayPartyMenuMessage(gStringVar4, FALSE);
|
||||||
schedule_bg_copy_tilemap_to_vram(2);
|
schedule_bg_copy_tilemap_to_vram(2);
|
||||||
gTasks[taskId].func = sub_8161724;
|
gTasks[taskId].func = Task_FinishSoftboiled;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_8161724(u8 taskId)
|
static void Task_FinishSoftboiled(u8 taskId)
|
||||||
{
|
{
|
||||||
if(sub_81B1BD4() == 1)
|
if(IsPartyMenuTextPrinterActive() == TRUE)
|
||||||
return;
|
return;
|
||||||
gUnknown_0203CEC8.unkB = 0x0;
|
gPartyMenu.action = 0;
|
||||||
sub_81B0FCC(gUnknown_0203CEC8.slotId, 0);
|
AnimatePartySlot(gPartyMenu.slotId, 0);
|
||||||
gUnknown_0203CEC8.slotId = gUnknown_0203CEC8.unkA;
|
gPartyMenu.slotId = gPartyMenu.slotId2;
|
||||||
sub_81B0FCC(gUnknown_0203CEC8.unkA, 1);
|
AnimatePartySlot(gPartyMenu.slotId2, 1);
|
||||||
ClearStdWindowAndFrameToTransparent(0x6, FALSE);
|
ClearStdWindowAndFrameToTransparent(6, FALSE);
|
||||||
ClearWindowTilemap(0x6);
|
ClearWindowTilemap(6);
|
||||||
DisplayPartyMenuStdMessage(0);
|
DisplayPartyMenuStdMessage(PARTY_MSG_CHOOSE_MON);
|
||||||
gTasks[taskId].func = sub_81B1370;
|
gTasks[taskId].func = Task_HandleChooseMonInput;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_8161784(u8 taskId)
|
static void Task_ChooseNewMonForSoftboiled(u8 taskId)
|
||||||
{
|
{
|
||||||
if(sub_81B1BD4() == 1)
|
if(IsPartyMenuTextPrinterActive() == TRUE)
|
||||||
return;
|
return;
|
||||||
DisplayPartyMenuStdMessage(5);
|
DisplayPartyMenuStdMessage(PARTY_MSG_USE_ON_WHICH_MON);
|
||||||
gTasks[taskId].func = sub_81B1370;
|
gTasks[taskId].func = Task_HandleChooseMonInput;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81617B8(u8 taskId)
|
static void CantUseSoftboiledOnMon(u8 taskId)
|
||||||
{
|
{
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
DisplayPartyMenuMessage(gText_CantBeUsedOnPkmn, 0);
|
DisplayPartyMenuMessage(gText_CantBeUsedOnPkmn, FALSE);
|
||||||
schedule_bg_copy_tilemap_to_vram(2);
|
schedule_bg_copy_tilemap_to_vram(2);
|
||||||
gTasks[taskId].func = sub_8161784;
|
gTasks[taskId].func = Task_ChooseNewMonForSoftboiled;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -884,7 +884,7 @@ static void sub_81A1AD4(void)
|
|||||||
{
|
{
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
sub_81B8558();
|
ClearSelectedPartyOrder();
|
||||||
for (i = 0; i < gSpecialVar_0x8005; i++)
|
for (i = 0; i < gSpecialVar_0x8005; i++)
|
||||||
gSelectedOrderFromParty[i] = gSaveBlock2Ptr->frontier.selectedPartyMons[i];
|
gSelectedOrderFromParty[i] = gSaveBlock2Ptr->frontier.selectedPartyMons[i];
|
||||||
ReducePlayerPartyToSelectedMons();
|
ReducePlayerPartyToSelectedMons();
|
||||||
|
|||||||
+3
-3
@@ -1138,9 +1138,9 @@ const u32 gBattleAnimSpritePal_Slash2[] = INCBIN_U32("graphics/battle_anims/spri
|
|||||||
const u32 gBattleAnimSpriteGfx_WhiteShadow[] = INCBIN_U32("graphics/battle_anims/sprites/white_shadow.4bpp.lz");
|
const u32 gBattleAnimSpriteGfx_WhiteShadow[] = INCBIN_U32("graphics/battle_anims/sprites/white_shadow.4bpp.lz");
|
||||||
const u32 gBattleAnimSpritePal_WhiteShadow[] = INCBIN_U32("graphics/battle_anims/sprites/white_shadow.gbapal.lz");
|
const u32 gBattleAnimSpritePal_WhiteShadow[] = INCBIN_U32("graphics/battle_anims/sprites/white_shadow.gbapal.lz");
|
||||||
|
|
||||||
const u32 gPartyMenuMisc_Gfx[] = INCBIN_U32("graphics/interface/party_menu_misc.4bpp.lz");
|
const u32 gPartyMenuBg_Gfx[] = INCBIN_U32("graphics/interface/party_menu_bg.4bpp.lz");
|
||||||
const u32 gPartyMenuMisc_Pal[] = INCBIN_U32("graphics/interface/party_menu_misc.gbapal.lz");
|
const u32 gPartyMenuBg_Pal[] = INCBIN_U32("graphics/interface/party_menu_bg.gbapal.lz");
|
||||||
const u32 gPartyMenuMisc_Tilemap[] = INCBIN_U32("graphics/interface/party_menu_misc.bin.lz");
|
const u32 gPartyMenuBg_Tilemap[] = INCBIN_U32("graphics/interface/party_menu_bg.bin.lz");
|
||||||
|
|
||||||
const u32 gPartyMenuPokeball_Gfx[] = INCBIN_U32("graphics/interface/party_menu_pokeball.4bpp.lz");
|
const u32 gPartyMenuPokeball_Gfx[] = INCBIN_U32("graphics/interface/party_menu_pokeball.4bpp.lz");
|
||||||
const u32 gPartyMenuPokeballSmall_Gfx[] = INCBIN_U32("graphics/interface/party_menu_pokeball_small.4bpp.lz"); //unused
|
const u32 gPartyMenuPokeballSmall_Gfx[] = INCBIN_U32("graphics/interface/party_menu_pokeball_small.4bpp.lz"); //unused
|
||||||
|
|||||||
+4
-4
@@ -142,7 +142,7 @@ bool8 CheckBagHasItem(u16 itemId, u16 count)
|
|||||||
|
|
||||||
if (ItemId_GetPocket(itemId) == 0)
|
if (ItemId_GetPocket(itemId) == 0)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
if (InBattlePyramid() || FlagGet(FLAG_SPECIAL_FLAG_0x4004) == TRUE)
|
if (InBattlePyramid() || FlagGet(FLAG_STORING_ITEMS_IN_PYRAMID_BAG) == TRUE)
|
||||||
return CheckPyramidBagHasItem(itemId, count);
|
return CheckPyramidBagHasItem(itemId, count);
|
||||||
pocket = ItemId_GetPocket(itemId) - 1;
|
pocket = ItemId_GetPocket(itemId) - 1;
|
||||||
// Check for item slots that contain the item
|
// Check for item slots that contain the item
|
||||||
@@ -189,7 +189,7 @@ bool8 CheckBagHasSpace(u16 itemId, u16 count)
|
|||||||
if (ItemId_GetPocket(itemId) == POCKET_NONE)
|
if (ItemId_GetPocket(itemId) == POCKET_NONE)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if (InBattlePyramid() || FlagGet(FLAG_SPECIAL_FLAG_0x4004) == TRUE)
|
if (InBattlePyramid() || FlagGet(FLAG_STORING_ITEMS_IN_PYRAMID_BAG) == TRUE)
|
||||||
{
|
{
|
||||||
return CheckPyramidBagHasSpace(itemId, count);
|
return CheckPyramidBagHasSpace(itemId, count);
|
||||||
}
|
}
|
||||||
@@ -404,7 +404,7 @@ bool8 AddBagItem(u16 itemId, u16 count)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
// check Battle Pyramid Bag
|
// check Battle Pyramid Bag
|
||||||
if (InBattlePyramid() || FlagGet(FLAG_SPECIAL_FLAG_0x4004) == TRUE)
|
if (InBattlePyramid() || FlagGet(FLAG_STORING_ITEMS_IN_PYRAMID_BAG) == TRUE)
|
||||||
{
|
{
|
||||||
return AddPyramidBagItem(itemId, count);
|
return AddPyramidBagItem(itemId, count);
|
||||||
}
|
}
|
||||||
@@ -517,7 +517,7 @@ bool8 RemoveBagItem(u16 itemId, u16 count)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
// check Battle Pyramid Bag
|
// check Battle Pyramid Bag
|
||||||
if (InBattlePyramid() || FlagGet(FLAG_SPECIAL_FLAG_0x4004) == TRUE)
|
if (InBattlePyramid() || FlagGet(FLAG_STORING_ITEMS_IN_PYRAMID_BAG) == TRUE)
|
||||||
{
|
{
|
||||||
return RemovePyramidBagItem(itemId, count);
|
return RemovePyramidBagItem(itemId, count);
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-9
@@ -4,6 +4,7 @@
|
|||||||
#include "battle_controllers.h"
|
#include "battle_controllers.h"
|
||||||
#include "battle_pyramid.h"
|
#include "battle_pyramid.h"
|
||||||
#include "frontier_util.h"
|
#include "frontier_util.h"
|
||||||
|
#include "battle_pyramid_bag.h"
|
||||||
#include "berry_tag_screen.h"
|
#include "berry_tag_screen.h"
|
||||||
#include "bg.h"
|
#include "bg.h"
|
||||||
#include "constants/items.h"
|
#include "constants/items.h"
|
||||||
@@ -466,9 +467,9 @@ void CB2_BagMenuFromStartMenu(void)
|
|||||||
void sub_81AABB0(void)
|
void sub_81AABB0(void)
|
||||||
{
|
{
|
||||||
if (!InBattlePyramid())
|
if (!InBattlePyramid())
|
||||||
GoToBagMenu(RETURN_LOCATION_BATTLE, POCKETS_COUNT, SetCB2ToReshowScreenAfterMenu2);
|
GoToBagMenu(RETURN_LOCATION_BATTLE, POCKETS_COUNT, CB2_SetUpReshowBattleScreenAfterMenu2);
|
||||||
else
|
else
|
||||||
sub_81C4F98(1, SetCB2ToReshowScreenAfterMenu2);
|
GoToBattlePyramidBagMenu(1, CB2_SetUpReshowBattleScreenAfterMenu2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CB2_ChooseBerry(void)
|
void CB2_ChooseBerry(void)
|
||||||
@@ -1148,13 +1149,13 @@ u8 GetSwitchBagPocketDirection(void)
|
|||||||
u8 LRKeys;
|
u8 LRKeys;
|
||||||
if (gBagMenu->unk81B != 0)
|
if (gBagMenu->unk81B != 0)
|
||||||
return 0;
|
return 0;
|
||||||
LRKeys = GetLRKeysState();
|
LRKeys = GetLRKeysPressed();
|
||||||
if ((gMain.newKeys & DPAD_LEFT) || LRKeys == 1)
|
if ((gMain.newKeys & DPAD_LEFT) || LRKeys == MENU_L_PRESSED)
|
||||||
{
|
{
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if ((gMain.newKeys & DPAD_RIGHT) || LRKeys == 2)
|
if ((gMain.newKeys & DPAD_RIGHT) || LRKeys == MENU_R_PRESSED)
|
||||||
{
|
{
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
return 2;
|
return 2;
|
||||||
@@ -1581,7 +1582,7 @@ void Task_HandleOutOfBattleItemMenuInput(u8 taskId)
|
|||||||
sub_8199134(0, 1);
|
sub_8199134(0, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((gMain.newKeys & DPAD_LEFT) || GetLRKeysState() == 1)
|
else if ((gMain.newKeys & DPAD_LEFT) || GetLRKeysPressed() == MENU_L_PRESSED)
|
||||||
{
|
{
|
||||||
if ((cursorPos & 1) && sub_81ACDFC(cursorPos - 1))
|
if ((cursorPos & 1) && sub_81ACDFC(cursorPos - 1))
|
||||||
{
|
{
|
||||||
@@ -1589,7 +1590,7 @@ void Task_HandleOutOfBattleItemMenuInput(u8 taskId)
|
|||||||
sub_8199134(-1, 0);
|
sub_8199134(-1, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((gMain.newKeys & DPAD_RIGHT) || GetLRKeysState() == 2)
|
else if ((gMain.newKeys & DPAD_RIGHT) || GetLRKeysPressed() == MENU_R_PRESSED)
|
||||||
{
|
{
|
||||||
if (!(cursorPos & 1) && sub_81ACDFC(cursorPos + 1))
|
if (!(cursorPos & 1) && sub_81ACDFC(cursorPos + 1))
|
||||||
{
|
{
|
||||||
@@ -1782,7 +1783,7 @@ void ItemMenu_Give(u8 taskId)
|
|||||||
BagMenu_PrintThereIsNoPokemon(taskId);
|
BagMenu_PrintThereIsNoPokemon(taskId);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gBagMenu->mainCallback2 = sub_81B7F60;
|
gBagMenu->mainCallback2 = CB2_ChooseMonToGiveItem;
|
||||||
unknown_ItemMenu_Confirm(taskId);
|
unknown_ItemMenu_Confirm(taskId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2157,7 +2158,7 @@ void DoWallyTutorialBagMenu(void)
|
|||||||
PrepareBagForWallyTutorial();
|
PrepareBagForWallyTutorial();
|
||||||
AddBagItem(ITEM_POTION, 1);
|
AddBagItem(ITEM_POTION, 1);
|
||||||
AddBagItem(ITEM_POKE_BALL, 1);
|
AddBagItem(ITEM_POKE_BALL, 1);
|
||||||
GoToBagMenu(RETURN_LOCATION_BATTLE_2, ITEMS_POCKET, SetCB2ToReshowScreenAfterMenu2);
|
GoToBagMenu(RETURN_LOCATION_BATTLE_2, ITEMS_POCKET, CB2_SetUpReshowBattleScreenAfterMenu2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Task_WallyTutorialBagMenu(u8 taskId)
|
void Task_WallyTutorialBagMenu(u8 taskId)
|
||||||
|
|||||||
+35
-34
@@ -64,10 +64,10 @@ void sub_80FDC00(u8 taskId);
|
|||||||
void ItemUseOnFieldCB_Berry(u8 taskId);
|
void ItemUseOnFieldCB_Berry(u8 taskId);
|
||||||
void ItemUseOnFieldCB_WailmerPailBerry(u8 taskId);
|
void ItemUseOnFieldCB_WailmerPailBerry(u8 taskId);
|
||||||
void ItemUseOnFieldCB_WailmerPailSudowoodo(u8 taskId);
|
void ItemUseOnFieldCB_WailmerPailSudowoodo(u8 taskId);
|
||||||
void sub_80FDF90(u8 taskId);
|
static void BootUpSoundTMHM(u8 taskId);
|
||||||
void task08_0809AD8C(u8 taskId);
|
static void Task_ShowTMHMContainedMessage(u8 taskId);
|
||||||
void sub_80FE024(u8 taskId);
|
static void UseTMHMYesNo(u8 taskId);
|
||||||
void sub_80FE03C(u8 taskId);
|
static void UseTMHM(u8 taskId);
|
||||||
void sub_80FE124(u8 taskId);
|
void sub_80FE124(u8 taskId);
|
||||||
void sub_80FE164(u8 taskId);
|
void sub_80FE164(u8 taskId);
|
||||||
|
|
||||||
@@ -91,16 +91,16 @@ EWRAM_DATA static void(*gUnknown_0203A0F4)(u8 taskId) = NULL;
|
|||||||
|
|
||||||
static const MainCallback gUnknown_085920D8[] =
|
static const MainCallback gUnknown_085920D8[] =
|
||||||
{
|
{
|
||||||
sub_81B617C,
|
CB2_ShowPartyMenuForItemUse,
|
||||||
CB2_ReturnToField,
|
CB2_ReturnToField,
|
||||||
NULL,
|
NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const u8 gUnknown_085920E4[] = {DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST};
|
static const u8 gUnknown_085920E4[] = {DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST};
|
||||||
|
|
||||||
static const struct YesNoFuncTable gUnknown_085920E8 =
|
static const struct YesNoFuncTable sUseTMHMYesNoFuncTable =
|
||||||
{
|
{
|
||||||
.yesFunc = sub_80FE03C,
|
.yesFunc = UseTMHM,
|
||||||
.noFunc = BagMenu_InitListsMenu,
|
.noFunc = BagMenu_InitListsMenu,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -722,72 +722,72 @@ void ItemUseOnFieldCB_WailmerPailSudowoodo(u8 taskId)
|
|||||||
|
|
||||||
void ItemUseOutOfBattle_Medicine(u8 taskId)
|
void ItemUseOutOfBattle_Medicine(u8 taskId)
|
||||||
{
|
{
|
||||||
gUnknown_03006328 = ItemUseCB_Medicine;
|
gItemUseCB = ItemUseCB_Medicine;
|
||||||
SetUpItemUseCallback(taskId);
|
SetUpItemUseCallback(taskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ItemUseOutOfBattle_ReduceEV(u8 taskId)
|
void ItemUseOutOfBattle_ReduceEV(u8 taskId)
|
||||||
{
|
{
|
||||||
gUnknown_03006328 = sub_81B67C8;
|
gItemUseCB = ItemUseCB_ReduceEV;
|
||||||
SetUpItemUseCallback(taskId);
|
SetUpItemUseCallback(taskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ItemUseOutOfBattle_SacredAsh(u8 taskId)
|
void ItemUseOutOfBattle_SacredAsh(u8 taskId)
|
||||||
{
|
{
|
||||||
gUnknown_03006328 = sub_81B79E8;
|
gItemUseCB = ItemUseCB_SacredAsh;
|
||||||
SetUpItemUseCallback(taskId);
|
SetUpItemUseCallback(taskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ItemUseOutOfBattle_PPRecovery(u8 taskId)
|
void ItemUseOutOfBattle_PPRecovery(u8 taskId)
|
||||||
{
|
{
|
||||||
gUnknown_03006328 = dp05_ether;
|
gItemUseCB = ItemUseCB_PPRecovery;
|
||||||
SetUpItemUseCallback(taskId);
|
SetUpItemUseCallback(taskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ItemUseOutOfBattle_PPUp(u8 taskId)
|
void ItemUseOutOfBattle_PPUp(u8 taskId)
|
||||||
{
|
{
|
||||||
gUnknown_03006328 = dp05_pp_up;
|
gItemUseCB = ItemUseCB_PPUp;
|
||||||
SetUpItemUseCallback(taskId);
|
SetUpItemUseCallback(taskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ItemUseOutOfBattle_RareCandy(u8 taskId)
|
void ItemUseOutOfBattle_RareCandy(u8 taskId)
|
||||||
{
|
{
|
||||||
gUnknown_03006328 = dp05_rare_candy;
|
gItemUseCB = ItemUseCB_RareCandy;
|
||||||
SetUpItemUseCallback(taskId);
|
SetUpItemUseCallback(taskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ItemUseOutOfBattle_TMHM(u8 taskId)
|
void ItemUseOutOfBattle_TMHM(u8 taskId)
|
||||||
{
|
{
|
||||||
if (gSpecialVar_ItemId >= ITEM_HM01_CUT)
|
if (gSpecialVar_ItemId >= ITEM_HM01_CUT)
|
||||||
DisplayItemMessage(taskId, 1, gText_BootedUpHM, sub_80FDF90); // HM
|
DisplayItemMessage(taskId, 1, gText_BootedUpHM, BootUpSoundTMHM); // HM
|
||||||
else
|
else
|
||||||
DisplayItemMessage(taskId, 1, gText_BootedUpTM, sub_80FDF90); // TM
|
DisplayItemMessage(taskId, 1, gText_BootedUpTM, BootUpSoundTMHM); // TM
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_80FDF90(u8 taskId)
|
static void BootUpSoundTMHM(u8 taskId)
|
||||||
{
|
{
|
||||||
PlaySE(SE_PC_LOGIN);
|
PlaySE(SE_PC_LOGIN);
|
||||||
gTasks[taskId].func = task08_0809AD8C;
|
gTasks[taskId].func = Task_ShowTMHMContainedMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
void task08_0809AD8C(u8 taskId)
|
static void Task_ShowTMHMContainedMessage(u8 taskId)
|
||||||
{
|
{
|
||||||
if (gMain.newKeys & (A_BUTTON | B_BUTTON))
|
if (gMain.newKeys & (A_BUTTON | B_BUTTON))
|
||||||
{
|
{
|
||||||
StringCopy(gStringVar1, gMoveNames[ItemIdToBattleMoveId(gSpecialVar_ItemId)]);
|
StringCopy(gStringVar1, gMoveNames[ItemIdToBattleMoveId(gSpecialVar_ItemId)]);
|
||||||
StringExpandPlaceholders(gStringVar4, gText_TMHMContainedVar1);
|
StringExpandPlaceholders(gStringVar4, gText_TMHMContainedVar1);
|
||||||
DisplayItemMessage(taskId, 1, gStringVar4, sub_80FE024);
|
DisplayItemMessage(taskId, 1, gStringVar4, UseTMHMYesNo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_80FE024(u8 taskId)
|
static void UseTMHMYesNo(u8 taskId)
|
||||||
{
|
{
|
||||||
BagMenu_YesNo(taskId, 6, &gUnknown_085920E8);
|
BagMenu_YesNo(taskId, 6, &sUseTMHMYesNoFuncTable);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_80FE03C(u8 taskId)
|
static void UseTMHM(u8 taskId)
|
||||||
{
|
{
|
||||||
gUnknown_03006328 = sub_81B6DC4;
|
gItemUseCB = ItemUseCB_TMHM;
|
||||||
SetUpItemUseCallback(taskId);
|
SetUpItemUseCallback(taskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -912,7 +912,7 @@ void ItemUseOutOfBattle_EscapeRope(u8 taskId)
|
|||||||
|
|
||||||
void ItemUseOutOfBattle_EvolutionStone(u8 taskId)
|
void ItemUseOutOfBattle_EvolutionStone(u8 taskId)
|
||||||
{
|
{
|
||||||
gUnknown_03006328 = sub_81B7C74;
|
gItemUseCB = ItemUseCB_EvolutionStone;
|
||||||
SetUpItemUseCallback(taskId);
|
SetUpItemUseCallback(taskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -976,36 +976,37 @@ void ItemUseInBattle_StatIncrease(u8 taskId)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_80FE54C(u8 taskId)
|
static void ItemUseInBattle_ShowPartyMenu(u8 taskId)
|
||||||
{
|
{
|
||||||
if (!InBattlePyramid())
|
if (!InBattlePyramid())
|
||||||
{
|
{
|
||||||
gBagMenu->mainCallback2 = sub_81B89F0;
|
gBagMenu->mainCallback2 = ChooseMonForInBattleItem;
|
||||||
unknown_ItemMenu_Confirm(taskId);
|
unknown_ItemMenu_Confirm(taskId);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gPyramidBagResources->callback2 = sub_81B89F0;
|
gPyramidBagResources->callback2 = ChooseMonForInBattleItem;
|
||||||
sub_81C5B14(taskId);
|
sub_81C5B14(taskId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ItemUseInBattle_Medicine(u8 taskId)
|
void ItemUseInBattle_Medicine(u8 taskId)
|
||||||
{
|
{
|
||||||
gUnknown_03006328 = ItemUseCB_Medicine;
|
gItemUseCB = ItemUseCB_Medicine;
|
||||||
sub_80FE54C(taskId);
|
ItemUseInBattle_ShowPartyMenu(taskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_80FE5AC(u8 taskId)
|
// Unused. Sacred Ash cannot be used in battle
|
||||||
|
void ItemUseInBattle_SacredAsh(u8 taskId)
|
||||||
{
|
{
|
||||||
gUnknown_03006328 = sub_81B79E8;
|
gItemUseCB = ItemUseCB_SacredAsh;
|
||||||
sub_80FE54C(taskId);
|
ItemUseInBattle_ShowPartyMenu(taskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ItemUseInBattle_PPRecovery(u8 taskId)
|
void ItemUseInBattle_PPRecovery(u8 taskId)
|
||||||
{
|
{
|
||||||
gUnknown_03006328 = dp05_ether;
|
gItemUseCB = ItemUseCB_PPRecovery;
|
||||||
sub_80FE54C(taskId);
|
ItemUseInBattle_ShowPartyMenu(taskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ItemUseInBattle_Escape(u8 taskId)
|
void ItemUseInBattle_Escape(u8 taskId)
|
||||||
|
|||||||
+1
-1
@@ -63,7 +63,7 @@ u8 GiveMailToMon(struct Pokemon *mon, u16 itemId)
|
|||||||
gSaveBlock1Ptr->mail[id].playerName[i] = EOS;
|
gSaveBlock1Ptr->mail[id].playerName[i] = EOS;
|
||||||
PadNameString(gSaveBlock1Ptr->mail[id].playerName, CHAR_SPACE);
|
PadNameString(gSaveBlock1Ptr->mail[id].playerName, CHAR_SPACE);
|
||||||
|
|
||||||
for (i = 0; i < 4; i++)
|
for (i = 0; i < TRAINER_ID_LENGTH; i++)
|
||||||
gSaveBlock1Ptr->mail[id].trainerId[i] = gSaveBlock2Ptr->playerTrainerId[i];
|
gSaveBlock1Ptr->mail[id].trainerId[i] = gSaveBlock2Ptr->playerTrainerId[i];
|
||||||
|
|
||||||
species = GetBoxMonData(&mon->box, MON_DATA_SPECIES);
|
species = GetBoxMonData(&mon->box, MON_DATA_SPECIES);
|
||||||
|
|||||||
+11
-11
@@ -1433,13 +1433,13 @@ s8 sub_8199284(void)
|
|||||||
sub_8199134(0, 1);
|
sub_8199134(0, 1);
|
||||||
return MENU_NOTHING_CHOSEN;
|
return MENU_NOTHING_CHOSEN;
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1)
|
else if (gMain.newKeys & DPAD_LEFT || GetLRKeysPressed() == MENU_L_PRESSED)
|
||||||
{
|
{
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
sub_8199134(-1, 0);
|
sub_8199134(-1, 0);
|
||||||
return MENU_NOTHING_CHOSEN;
|
return MENU_NOTHING_CHOSEN;
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysState() == 2)
|
else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysPressed() == MENU_R_PRESSED)
|
||||||
{
|
{
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
sub_8199134(1, 0);
|
sub_8199134(1, 0);
|
||||||
@@ -1474,13 +1474,13 @@ s8 Menu_ProcessInputGridLayout(void)
|
|||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
return MENU_NOTHING_CHOSEN;
|
return MENU_NOTHING_CHOSEN;
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1)
|
else if (gMain.newKeys & DPAD_LEFT || GetLRKeysPressed() == MENU_L_PRESSED)
|
||||||
{
|
{
|
||||||
if (oldPos != sub_81991F8(-1, 0))
|
if (oldPos != sub_81991F8(-1, 0))
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
return MENU_NOTHING_CHOSEN;
|
return MENU_NOTHING_CHOSEN;
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysState() == 2)
|
else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysPressed() == MENU_R_PRESSED)
|
||||||
{
|
{
|
||||||
if (oldPos != sub_81991F8(1, 0))
|
if (oldPos != sub_81991F8(1, 0))
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
@@ -1513,13 +1513,13 @@ s8 sub_81993D8(void)
|
|||||||
sub_8199134(0, 1);
|
sub_8199134(0, 1);
|
||||||
return MENU_NOTHING_CHOSEN;
|
return MENU_NOTHING_CHOSEN;
|
||||||
}
|
}
|
||||||
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_LEFT || sub_812210C() == 1)
|
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_LEFT || GetLRKeysPressedAndHeld() == MENU_L_PRESSED)
|
||||||
{
|
{
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
sub_8199134(-1, 0);
|
sub_8199134(-1, 0);
|
||||||
return MENU_NOTHING_CHOSEN;
|
return MENU_NOTHING_CHOSEN;
|
||||||
}
|
}
|
||||||
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_RIGHT || sub_812210C() == 2)
|
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == MENU_R_PRESSED)
|
||||||
{
|
{
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
sub_8199134(1, 0);
|
sub_8199134(1, 0);
|
||||||
@@ -1554,13 +1554,13 @@ s8 sub_8199484(void)
|
|||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
return MENU_NOTHING_CHOSEN;
|
return MENU_NOTHING_CHOSEN;
|
||||||
}
|
}
|
||||||
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_LEFT || sub_812210C() == 1)
|
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_LEFT || GetLRKeysPressedAndHeld() == MENU_L_PRESSED)
|
||||||
{
|
{
|
||||||
if (oldPos != sub_81991F8(-1, 0))
|
if (oldPos != sub_81991F8(-1, 0))
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
return MENU_NOTHING_CHOSEN;
|
return MENU_NOTHING_CHOSEN;
|
||||||
}
|
}
|
||||||
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_RIGHT || sub_812210C() == 2)
|
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == MENU_R_PRESSED)
|
||||||
{
|
{
|
||||||
if (oldPos != sub_81991F8(1, 0))
|
if (oldPos != sub_81991F8(1, 0))
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
@@ -1868,7 +1868,7 @@ u16 copy_decompressed_tile_data_to_vram(u8 bgId, const void *src, u16 size, u16
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_8199C30(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette)
|
void SetBgTilemapPalette(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
u8 j;
|
u8 j;
|
||||||
@@ -1883,7 +1883,7 @@ void sub_8199C30(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_8199CBC(u8 bgId, u16 *dest, u8 left, u8 top, u8 width, u8 height)
|
void CopyToBufferFromBgTilemap(u8 bgId, u16 *dest, u8 left, u8 top, u8 width, u8 height)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
u8 j;
|
u8 j;
|
||||||
@@ -2159,7 +2159,7 @@ void sub_819A344(u8 a0, u8 *dest, u8 color)
|
|||||||
ConvertIntToDecimalStringN(string, gSaveBlock2Ptr->playTimeMinutes, STR_CONV_MODE_LEADING_ZEROS, 2);
|
ConvertIntToDecimalStringN(string, gSaveBlock2Ptr->playTimeMinutes, STR_CONV_MODE_LEADING_ZEROS, 2);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
sub_81245DC(string, gMapHeader.regionMapSectionId);
|
GetMapNameGeneric(string, gMapHeader.regionMapSectionId);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
for (curFlag = FLAG_BADGE01_GET, flagCount = 0, endOfString = string + 1; curFlag <= FLAG_BADGE08_GET; curFlag++)
|
for (curFlag = FLAG_BADGE01_GET, flagCount = 0, endOfString = string + 1; curFlag <= FLAG_BADGE08_GET; curFlag++)
|
||||||
|
|||||||
+6
-6
@@ -251,27 +251,27 @@ bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 GetLRKeysState(void)
|
u8 GetLRKeysPressed(void)
|
||||||
{
|
{
|
||||||
if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR)
|
if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR)
|
||||||
{
|
{
|
||||||
if (gMain.newKeys & L_BUTTON)
|
if (gMain.newKeys & L_BUTTON)
|
||||||
return 1;
|
return MENU_L_PRESSED;
|
||||||
if (gMain.newKeys & R_BUTTON)
|
if (gMain.newKeys & R_BUTTON)
|
||||||
return 2;
|
return MENU_R_PRESSED;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 sub_812210C(void)
|
u8 GetLRKeysPressedAndHeld(void)
|
||||||
{
|
{
|
||||||
if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR)
|
if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR)
|
||||||
{
|
{
|
||||||
if (gMain.newAndRepeatedKeys & L_BUTTON)
|
if (gMain.newAndRepeatedKeys & L_BUTTON)
|
||||||
return 1;
|
return MENU_L_PRESSED;
|
||||||
if (gMain.newAndRepeatedKeys & R_BUTTON)
|
if (gMain.newAndRepeatedKeys & R_BUTTON)
|
||||||
return 2;
|
return MENU_R_PRESSED;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -513,7 +513,7 @@ static void DoMoveRelearnerMain(void)
|
|||||||
|
|
||||||
if (selection == 0)
|
if (selection == 0)
|
||||||
{
|
{
|
||||||
if (GiveMoveToMon(&gPlayerParty[sMoveRelearnerStruct->partyMon], GetCurrentSelectedMove()) != 0xFFFF)
|
if (GiveMoveToMon(&gPlayerParty[sMoveRelearnerStruct->partyMon], GetCurrentSelectedMove()) != MON_HAS_MAX_MOVES)
|
||||||
{
|
{
|
||||||
FormatAndPrintText(gText_MoveRelearnerPkmnLearnedMove);
|
FormatAndPrintText(gText_MoveRelearnerPkmnLearnedMove);
|
||||||
gSpecialVar_0x8004 = TRUE;
|
gSpecialVar_0x8004 = TRUE;
|
||||||
@@ -778,7 +778,7 @@ static void HandleInput(bool8 showContest)
|
|||||||
switch (itemId)
|
switch (itemId)
|
||||||
{
|
{
|
||||||
case LIST_NOTHING_CHOSEN:
|
case LIST_NOTHING_CHOSEN:
|
||||||
if (!(gMain.newKeys & (DPAD_LEFT | DPAD_RIGHT)) && !GetLRKeysState())
|
if (!(gMain.newKeys & (DPAD_LEFT | DPAD_RIGHT)) && !GetLRKeysPressed())
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
+2245
-3310
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -824,7 +824,7 @@ static void Mailbox_DoGiveMailPokeMenu(u8 taskId)
|
|||||||
{
|
{
|
||||||
sub_81D1EC0();
|
sub_81D1EC0();
|
||||||
CleanupOverworldWindowsAndTilemaps();
|
CleanupOverworldWindowsAndTilemaps();
|
||||||
sub_81B8448();
|
ChooseMonToGiveMailFromMailbox();
|
||||||
DestroyTask(taskId);
|
DestroyTask(taskId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -462,7 +462,7 @@ void OpenPokeblockCase(u8 caseId, void (*callback)(void))
|
|||||||
|
|
||||||
void OpenPokeblockCaseInBattle(void)
|
void OpenPokeblockCaseInBattle(void)
|
||||||
{
|
{
|
||||||
OpenPokeblockCase(PBLOCK_CASE_BATTLE, SetCB2ToReshowScreenAfterMenu2);
|
OpenPokeblockCase(PBLOCK_CASE_BATTLE, CB2_SetUpReshowBattleScreenAfterMenu2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OpenPokeblockCaseOnFeeder(void)
|
void OpenPokeblockCaseOnFeeder(void)
|
||||||
|
|||||||
+16
-13
@@ -60,6 +60,7 @@ static void EncryptBoxMon(struct BoxPokemon *boxMon);
|
|||||||
static void DecryptBoxMon(struct BoxPokemon *boxMon);
|
static void DecryptBoxMon(struct BoxPokemon *boxMon);
|
||||||
static void sub_806E6CC(u8 taskId);
|
static void sub_806E6CC(u8 taskId);
|
||||||
static bool8 ShouldGetStatBadgeBoost(u16 flagId, u8 battlerId);
|
static bool8 ShouldGetStatBadgeBoost(u16 flagId, u8 battlerId);
|
||||||
|
static u16 GiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move);
|
||||||
|
|
||||||
// EWRAM vars
|
// EWRAM vars
|
||||||
EWRAM_DATA static u8 sLearningMoveTableID = 0;
|
EWRAM_DATA static u8 sLearningMoveTableID = 0;
|
||||||
@@ -2879,22 +2880,22 @@ u16 GiveMoveToMon(struct Pokemon *mon, u16 move)
|
|||||||
return GiveMoveToBoxMon(&mon->box, move);
|
return GiveMoveToBoxMon(&mon->box, move);
|
||||||
}
|
}
|
||||||
|
|
||||||
u16 GiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move)
|
static u16 GiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move)
|
||||||
{
|
{
|
||||||
s32 i;
|
s32 i;
|
||||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||||
{
|
{
|
||||||
u16 existingMove = GetBoxMonData(boxMon, MON_DATA_MOVE1 + i, NULL);
|
u16 existingMove = GetBoxMonData(boxMon, MON_DATA_MOVE1 + i, NULL);
|
||||||
if (!existingMove)
|
if (existingMove == MOVE_NONE)
|
||||||
{
|
{
|
||||||
SetBoxMonData(boxMon, MON_DATA_MOVE1 + i, &move);
|
SetBoxMonData(boxMon, MON_DATA_MOVE1 + i, &move);
|
||||||
SetBoxMonData(boxMon, MON_DATA_PP1 + i, &gBattleMoves[move].pp);
|
SetBoxMonData(boxMon, MON_DATA_PP1 + i, &gBattleMoves[move].pp);
|
||||||
return move;
|
return move;
|
||||||
}
|
}
|
||||||
if (existingMove == move)
|
if (existingMove == move)
|
||||||
return -2;
|
return MON_ALREADY_KNOWS_MOVE;
|
||||||
}
|
}
|
||||||
return 0xFFFF;
|
return MON_HAS_MAX_MOVES;
|
||||||
}
|
}
|
||||||
|
|
||||||
u16 GiveMoveToBattleMon(struct BattlePokemon *mon, u16 move)
|
u16 GiveMoveToBattleMon(struct BattlePokemon *mon, u16 move)
|
||||||
@@ -2949,7 +2950,7 @@ void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon)
|
|||||||
|
|
||||||
move = (gLevelUpLearnsets[species][i] & 0x1FF);
|
move = (gLevelUpLearnsets[species][i] & 0x1FF);
|
||||||
|
|
||||||
if (GiveMoveToBoxMon(boxMon, move) == 0xFFFF)
|
if (GiveMoveToBoxMon(boxMon, move) == MON_HAS_MAX_MOVES)
|
||||||
DeleteFirstMoveAndGiveMoveToBoxMon(boxMon, move);
|
DeleteFirstMoveAndGiveMoveToBoxMon(boxMon, move);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4860,7 +4861,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
|
|||||||
if (battlerId != 4)
|
if (battlerId != 4)
|
||||||
{
|
{
|
||||||
gAbsentBattlerFlags &= ~gBitTable[battlerId];
|
gAbsentBattlerFlags &= ~gBitTable[battlerId];
|
||||||
CopyPlayerPartyMonToBattleData(battlerId, pokemon_order_func(gBattlerPartyIndexes[battlerId]));
|
CopyPlayerPartyMonToBattleData(battlerId, GetPartyIdFromBattlePartyId(gBattlerPartyIndexes[battlerId]));
|
||||||
if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER && gBattleResults.numRevivesUsed < 255)
|
if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER && gBattleResults.numRevivesUsed < 255)
|
||||||
gBattleResults.numRevivesUsed++;
|
gBattleResults.numRevivesUsed++;
|
||||||
}
|
}
|
||||||
@@ -5657,21 +5658,23 @@ void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies)
|
|||||||
SetMonData(mon, MON_DATA_NICKNAME, gSpeciesNames[newSpecies]);
|
SetMonData(mon, MON_DATA_NICKNAME, gSpeciesNames[newSpecies]);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool8 sub_806D7EC(void)
|
// The below two functions determine which side of a multi battle the trainer battles on
|
||||||
|
// 0 is the left (top in party menu), 1 is right (bottom in party menu)
|
||||||
|
u8 GetPlayerFlankId(void)
|
||||||
{
|
{
|
||||||
bool8 retVal = FALSE;
|
u8 flankId = 0;
|
||||||
switch (gLinkPlayers[GetMultiplayerId()].id)
|
switch (gLinkPlayers[GetMultiplayerId()].id)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
case 3:
|
case 3:
|
||||||
retVal = FALSE;
|
flankId = 0;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
case 2:
|
case 2:
|
||||||
retVal = TRUE;
|
flankId = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return retVal;
|
return flankId;
|
||||||
}
|
}
|
||||||
|
|
||||||
u16 GetLinkTrainerFlankId(u8 linkPlayerId)
|
u16 GetLinkTrainerFlankId(u8 linkPlayerId)
|
||||||
@@ -6439,11 +6442,11 @@ void SetMonPreventsSwitchingString(void)
|
|||||||
gBattleTextBuff1[4] = B_BUFF_EOS;
|
gBattleTextBuff1[4] = B_BUFF_EOS;
|
||||||
|
|
||||||
if (GetBattlerSide(gBattleStruct->battlerPreventingSwitchout) == B_SIDE_PLAYER)
|
if (GetBattlerSide(gBattleStruct->battlerPreventingSwitchout) == B_SIDE_PLAYER)
|
||||||
gBattleTextBuff1[3] = pokemon_order_func(gBattlerPartyIndexes[gBattleStruct->battlerPreventingSwitchout]);
|
gBattleTextBuff1[3] = GetPartyIdFromBattlePartyId(gBattlerPartyIndexes[gBattleStruct->battlerPreventingSwitchout]);
|
||||||
else
|
else
|
||||||
gBattleTextBuff1[3] = gBattlerPartyIndexes[gBattleStruct->battlerPreventingSwitchout];
|
gBattleTextBuff1[3] = gBattlerPartyIndexes[gBattleStruct->battlerPreventingSwitchout];
|
||||||
|
|
||||||
PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff2, gBattlerInMenuId, pokemon_order_func(gBattlerPartyIndexes[gBattlerInMenuId]))
|
PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff2, gBattlerInMenuId, GetPartyIdFromBattlePartyId(gBattlerPartyIndexes[gBattlerInMenuId]))
|
||||||
|
|
||||||
BattleStringExpandPlaceholders(gText_PkmnsXPreventsSwitching, gStringVar4);
|
BattleStringExpandPlaceholders(gText_PkmnsXPreventsSwitching, gStringVar4);
|
||||||
}
|
}
|
||||||
|
|||||||
+8
-8
@@ -1029,13 +1029,13 @@ const u16 sSpriteImageSizes[3][4] =
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool32 extra)
|
u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool32 handleDeoxys)
|
||||||
{
|
{
|
||||||
u8 spriteId;
|
u8 spriteId;
|
||||||
struct MonIconSpriteTemplate iconTemplate =
|
struct MonIconSpriteTemplate iconTemplate =
|
||||||
{
|
{
|
||||||
.oam = &sMonIconOamData,
|
.oam = &sMonIconOamData,
|
||||||
.image = GetMonIconPtr(species, personality, extra),
|
.image = GetMonIconPtr(species, personality, handleDeoxys),
|
||||||
.anims = sMonIconAnims,
|
.anims = sMonIconAnims,
|
||||||
.affineAnims = sMonIconAffineAnims,
|
.affineAnims = sMonIconAffineAnims,
|
||||||
.callback = callback,
|
.callback = callback,
|
||||||
@@ -1125,9 +1125,9 @@ u16 sub_80D2E84(u16 species)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const u8 *GetMonIconPtr(u16 species, u32 personality, bool32 extra)
|
const u8 *GetMonIconPtr(u16 species, u32 personality, bool32 handleDeoxys)
|
||||||
{
|
{
|
||||||
return GetMonIconTiles(GetIconSpecies(species, personality), extra);
|
return GetMonIconTiles(GetIconSpecies(species, personality), handleDeoxys);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_80D2EF8(struct Sprite *sprite)
|
void sub_80D2EF8(struct Sprite *sprite)
|
||||||
@@ -1184,17 +1184,17 @@ void FreeMonIconPalette(u16 species)
|
|||||||
FreeSpritePaletteByTag(gMonIconPaletteTable[palIndex].tag);
|
FreeSpritePaletteByTag(gMonIconPaletteTable[palIndex].tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateTradeMonIconFrame(struct Sprite *sprite)
|
void SpriteCB_MonIcon(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
UpdateMonIconFrame(sprite);
|
UpdateMonIconFrame(sprite);
|
||||||
}
|
}
|
||||||
|
|
||||||
const u8* GetMonIconTiles(u16 species, bool32 extra)
|
const u8* GetMonIconTiles(u16 species, bool32 handleDeoxys)
|
||||||
{
|
{
|
||||||
const u8* iconSprite = gMonIconTable[species];
|
const u8* iconSprite = gMonIconTable[species];
|
||||||
if (species == SPECIES_DEOXYS && extra == TRUE)
|
if (species == SPECIES_DEOXYS && handleDeoxys == TRUE)
|
||||||
{
|
{
|
||||||
iconSprite = (const u8*)(0x400 + (u32)iconSprite); //WTF?
|
iconSprite = (const u8*)(0x400 + (u32)iconSprite); // use the specific Deoxys form icon (Speed in this case)
|
||||||
}
|
}
|
||||||
return iconSprite;
|
return iconSprite;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,6 +42,7 @@
|
|||||||
#include "window.h"
|
#include "window.h"
|
||||||
#include "constants/items.h"
|
#include "constants/items.h"
|
||||||
#include "constants/moves.h"
|
#include "constants/moves.h"
|
||||||
|
#include "constants/party_menu.h"
|
||||||
#include "constants/region_map_sections.h"
|
#include "constants/region_map_sections.h"
|
||||||
#include "constants/rgb.h"
|
#include "constants/rgb.h"
|
||||||
#include "constants/songs.h"
|
#include "constants/songs.h"
|
||||||
@@ -162,7 +163,7 @@ static EWRAM_DATA struct PokemonSummaryScreenData
|
|||||||
u8 unk_filler4[6];
|
u8 unk_filler4[6];
|
||||||
} *sMonSummaryScreen = NULL;
|
} *sMonSummaryScreen = NULL;
|
||||||
EWRAM_DATA u8 gLastViewedMonIndex = 0;
|
EWRAM_DATA u8 gLastViewedMonIndex = 0;
|
||||||
static EWRAM_DATA u8 sUnknown_0203CF21 = 0;
|
static EWRAM_DATA u8 sMoveSlotToReplace = 0;
|
||||||
ALIGNED(4) static EWRAM_DATA u8 sUnknownTaskId = 0;
|
ALIGNED(4) static EWRAM_DATA u8 sUnknownTaskId = 0;
|
||||||
|
|
||||||
struct UnkStruct_61CC04
|
struct UnkStruct_61CC04
|
||||||
@@ -1491,11 +1492,11 @@ static void HandleInput(u8 taskId)
|
|||||||
{
|
{
|
||||||
ChangeSummaryPokemon(taskId, 1);
|
ChangeSummaryPokemon(taskId, 1);
|
||||||
}
|
}
|
||||||
else if ((gMain.newKeys & DPAD_LEFT) || GetLRKeysState() == 1)
|
else if ((gMain.newKeys & DPAD_LEFT) || GetLRKeysPressed() == MENU_L_PRESSED)
|
||||||
{
|
{
|
||||||
ChangePage(taskId, -1);
|
ChangePage(taskId, -1);
|
||||||
}
|
}
|
||||||
else if ((gMain.newKeys & DPAD_RIGHT) || GetLRKeysState() == 2)
|
else if ((gMain.newKeys & DPAD_RIGHT) || GetLRKeysPressed() == MENU_R_PRESSED)
|
||||||
{
|
{
|
||||||
ChangePage(taskId, 1);
|
ChangePage(taskId, 1);
|
||||||
}
|
}
|
||||||
@@ -2159,11 +2160,11 @@ static void HandleReplaceMoveInput(u8 taskId)
|
|||||||
data[0] = 4;
|
data[0] = 4;
|
||||||
sub_81C1070(data, 1, &sMonSummaryScreen->firstMoveIndex);
|
sub_81C1070(data, 1, &sMonSummaryScreen->firstMoveIndex);
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1)
|
else if (gMain.newKeys & DPAD_LEFT || GetLRKeysPressed() == MENU_L_PRESSED)
|
||||||
{
|
{
|
||||||
ChangePage(taskId, -1);
|
ChangePage(taskId, -1);
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysState() == 2)
|
else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysPressed() == MENU_R_PRESSED)
|
||||||
{
|
{
|
||||||
ChangePage(taskId, 1);
|
ChangePage(taskId, 1);
|
||||||
}
|
}
|
||||||
@@ -2173,8 +2174,8 @@ static void HandleReplaceMoveInput(u8 taskId)
|
|||||||
{
|
{
|
||||||
StopPokemonAnimations();
|
StopPokemonAnimations();
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
sUnknown_0203CF21 = sMonSummaryScreen->firstMoveIndex;
|
sMoveSlotToReplace = sMonSummaryScreen->firstMoveIndex;
|
||||||
gSpecialVar_0x8005 = sUnknown_0203CF21;
|
gSpecialVar_0x8005 = sMoveSlotToReplace;
|
||||||
BeginCloseSummaryScreen(taskId);
|
BeginCloseSummaryScreen(taskId);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -2188,8 +2189,8 @@ static void HandleReplaceMoveInput(u8 taskId)
|
|||||||
u32 var1;
|
u32 var1;
|
||||||
StopPokemonAnimations();
|
StopPokemonAnimations();
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
sUnknown_0203CF21 = 4;
|
sMoveSlotToReplace = MAX_MON_MOVES;
|
||||||
gSpecialVar_0x8005 = 4;
|
gSpecialVar_0x8005 = MAX_MON_MOVES;
|
||||||
BeginCloseSummaryScreen(taskId);
|
BeginCloseSummaryScreen(taskId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2238,7 +2239,7 @@ static void HandleHMMovesCantBeForgottenInput(u8 taskId)
|
|||||||
data[1] = 0;
|
data[1] = 0;
|
||||||
gTasks[taskId].func = HandleReplaceMoveInput;
|
gTasks[taskId].func = HandleReplaceMoveInput;
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1)
|
else if (gMain.newKeys & DPAD_LEFT || GetLRKeysPressed() == MENU_L_PRESSED)
|
||||||
{
|
{
|
||||||
if (sMonSummaryScreen->currPageIndex != 2)
|
if (sMonSummaryScreen->currPageIndex != 2)
|
||||||
{
|
{
|
||||||
@@ -2252,7 +2253,7 @@ static void HandleHMMovesCantBeForgottenInput(u8 taskId)
|
|||||||
sub_81C1EFC(9, -2, move);
|
sub_81C1EFC(9, -2, move);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysState() == 2)
|
else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysPressed() == MENU_R_PRESSED)
|
||||||
{
|
{
|
||||||
if (sMonSummaryScreen->currPageIndex != 3)
|
if (sMonSummaryScreen->currPageIndex != 3)
|
||||||
{
|
{
|
||||||
@@ -2281,9 +2282,9 @@ static void HandleHMMovesCantBeForgottenInput(u8 taskId)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 sub_81C1B94(void)
|
u8 GetMoveSlotToReplace(void)
|
||||||
{
|
{
|
||||||
return sUnknown_0203CF21;
|
return sMoveSlotToReplace;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void DrawPagination(void) // Updates the pagination dots at the top of the summary screen
|
static void DrawPagination(void) // Updates the pagination dots at the top of the summary screen
|
||||||
@@ -2574,9 +2575,9 @@ static void DrawPokerusCuredSymbol(struct Pokemon *mon) // This checks if the mo
|
|||||||
static void SetDexNumberColor(bool8 isMonShiny)
|
static void SetDexNumberColor(bool8 isMonShiny)
|
||||||
{
|
{
|
||||||
if (!isMonShiny)
|
if (!isMonShiny)
|
||||||
sub_8199C30(3, 1, 4, 8, 8, 0);
|
SetBgTilemapPalette(3, 1, 4, 8, 8, 0);
|
||||||
else
|
else
|
||||||
sub_8199C30(3, 1, 4, 8, 8, 5);
|
SetBgTilemapPalette(3, 1, 4, 8, 8, 5);
|
||||||
schedule_bg_copy_tilemap_to_vram(3);
|
schedule_bg_copy_tilemap_to_vram(3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+9
-8
@@ -55,7 +55,7 @@ static EWRAM_DATA struct {
|
|||||||
/*0x008*/ struct RegionMap regionMap;
|
/*0x008*/ struct RegionMap regionMap;
|
||||||
/*0x88c*/ u8 unk_88c[0x1c0];
|
/*0x88c*/ u8 unk_88c[0x1c0];
|
||||||
/*0xa4c*/ u8 unk_a4c[0x26];
|
/*0xa4c*/ u8 unk_a4c[0x26];
|
||||||
/*0xa72*/ bool8 unk_a72;
|
/*0xa72*/ bool8 choseFlyLocation;
|
||||||
} *sFlyMap = NULL; // a74
|
} *sFlyMap = NULL; // a74
|
||||||
|
|
||||||
static bool32 gUnknown_03001180;
|
static bool32 gUnknown_03001180;
|
||||||
@@ -1605,7 +1605,8 @@ u8 *GetMapName(u8 *dest, u16 regionMapId, u16 padLength)
|
|||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 *sub_81245DC(u8 *dest, u16 mapSecId)
|
// TODO: probably needs a better name
|
||||||
|
u8 *GetMapNameGeneric(u8 *dest, u16 mapSecId)
|
||||||
{
|
{
|
||||||
switch (mapSecId)
|
switch (mapSecId)
|
||||||
{
|
{
|
||||||
@@ -1626,7 +1627,7 @@ u8 *sub_8124610(u8 *dest, u16 mapSecId)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return sub_81245DC(dest, mapSecId);
|
return GetMapNameGeneric(dest, mapSecId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1972,13 +1973,13 @@ static void sub_8124D64(void)
|
|||||||
if (sFlyMap->regionMap.iconDrawType == MAPSECTYPE_CITY_CANFLY || sFlyMap->regionMap.iconDrawType == MAPSECTYPE_BATTLE_FRONTIER)
|
if (sFlyMap->regionMap.iconDrawType == MAPSECTYPE_CITY_CANFLY || sFlyMap->regionMap.iconDrawType == MAPSECTYPE_BATTLE_FRONTIER)
|
||||||
{
|
{
|
||||||
m4aSongNumStart(SE_SELECT);
|
m4aSongNumStart(SE_SELECT);
|
||||||
sFlyMap->unk_a72 = TRUE;
|
sFlyMap->choseFlyLocation = TRUE;
|
||||||
sub_81248F4(sub_8124E0C);
|
sub_81248F4(sub_8124E0C);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case INPUT_EVENT_B_BUTTON:
|
case INPUT_EVENT_B_BUTTON:
|
||||||
m4aSongNumStart(SE_SELECT);
|
m4aSongNumStart(SE_SELECT);
|
||||||
sFlyMap->unk_a72 = FALSE;
|
sFlyMap->choseFlyLocation = FALSE;
|
||||||
sub_81248F4(sub_8124E0C);
|
sub_81248F4(sub_8124E0C);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1997,7 +1998,7 @@ static void sub_8124E0C(void)
|
|||||||
if (!UpdatePaletteFade())
|
if (!UpdatePaletteFade())
|
||||||
{
|
{
|
||||||
FreeRegionMapIconResources();
|
FreeRegionMapIconResources();
|
||||||
if (sFlyMap->unk_a72)
|
if (sFlyMap->choseFlyLocation)
|
||||||
{
|
{
|
||||||
switch (sFlyMap->regionMap.mapSecId)
|
switch (sFlyMap->regionMap.mapSecId)
|
||||||
{
|
{
|
||||||
@@ -2024,11 +2025,11 @@ static void sub_8124E0C(void)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
sub_80B69DC();
|
ReturnToFieldFromFlyMapSelect();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SetMainCallback2(sub_81B58A8);
|
SetMainCallback2(CB2_ReturnToPartyMenuFromFlyMap);
|
||||||
}
|
}
|
||||||
if (sFlyMap != NULL)
|
if (sFlyMap != NULL)
|
||||||
{
|
{
|
||||||
|
|||||||
+1
-2
@@ -39,7 +39,6 @@
|
|||||||
#include "script_menu.h"
|
#include "script_menu.h"
|
||||||
#include "script_movement.h"
|
#include "script_movement.h"
|
||||||
#include "script_pokemon_80F8.h"
|
#include "script_pokemon_80F8.h"
|
||||||
#include "script_pokemon_81B9.h"
|
|
||||||
#include "shop.h"
|
#include "shop.h"
|
||||||
#include "slot_machine.h"
|
#include "slot_machine.h"
|
||||||
#include "sound.h"
|
#include "sound.h"
|
||||||
@@ -1938,7 +1937,7 @@ bool8 ScrCmd_getpricereduction(struct ScriptContext *ctx)
|
|||||||
|
|
||||||
bool8 ScrCmd_choosecontestmon(struct ScriptContext *ctx)
|
bool8 ScrCmd_choosecontestmon(struct ScriptContext *ctx)
|
||||||
{
|
{
|
||||||
sub_81B9404();
|
ChooseContestMon();
|
||||||
ScriptContext1_Stop();
|
ScriptContext1_Stop();
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -646,7 +646,7 @@ void ScriptSetMonMoveSlot(u8 monIndex, u16 move, u8 slot)
|
|||||||
void ChooseHalfPartyForBattle(void)
|
void ChooseHalfPartyForBattle(void)
|
||||||
{
|
{
|
||||||
gMain.savedCallback = CB2_ReturnFromChooseHalfParty;
|
gMain.savedCallback = CB2_ReturnFromChooseHalfParty;
|
||||||
VarSet(VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_DOUBLE_COLOSSEUM);
|
VarSet(VAR_FRONTIER_FACILITY, FACILITY_MULTI_OR_EREADER);
|
||||||
InitChooseHalfPartyForBattle(0);
|
InitChooseHalfPartyForBattle(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -388,7 +388,7 @@ const u8 gText_PCMailboxFull[] = _("Your PC's MAILBOX is full.{PAUSE_UNTIL_PRESS
|
|||||||
const u8 gText_MailMessageWillBeLost[] = _("If the MAIL is removed, the\nmessage will be lost. Okay?");
|
const u8 gText_MailMessageWillBeLost[] = _("If the MAIL is removed, the\nmessage will be lost. Okay?");
|
||||||
const u8 gText_RemoveMailBeforeItem[] = _("MAIL must be removed before\nholding an item.{PAUSE_UNTIL_PRESS}");
|
const u8 gText_RemoveMailBeforeItem[] = _("MAIL must be removed before\nholding an item.{PAUSE_UNTIL_PRESS}");
|
||||||
const u8 gText_PkmnWasGivenItem[] = _("{STR_VAR_1} was given the\n{STR_VAR_2} to hold.{PAUSE_UNTIL_PRESS}");
|
const u8 gText_PkmnWasGivenItem[] = _("{STR_VAR_1} was given the\n{STR_VAR_2} to hold.{PAUSE_UNTIL_PRESS}");
|
||||||
const u8 gText_SwitchPkmnItem[] = _("{STR_VAR_1} is already holding\none {STR_VAR_2}.\pWould you like to switch the\ntwo items?");
|
const u8 gText_PkmnAlreadyHoldingItemSwitch[] = _("{STR_VAR_1} is already holding\none {STR_VAR_2}.\pWould you like to switch the\ntwo items?");
|
||||||
const u8 gText_PkmnNotHolding[] = _("{STR_VAR_1} isn't holding\nanything.{PAUSE_UNTIL_PRESS}");
|
const u8 gText_PkmnNotHolding[] = _("{STR_VAR_1} isn't holding\nanything.{PAUSE_UNTIL_PRESS}");
|
||||||
const u8 gText_ReceivedItemFromPkmn[] = _("Received the {STR_VAR_2}\nfrom {STR_VAR_1}.{PAUSE_UNTIL_PRESS}");
|
const u8 gText_ReceivedItemFromPkmn[] = _("Received the {STR_VAR_2}\nfrom {STR_VAR_1}.{PAUSE_UNTIL_PRESS}");
|
||||||
const u8 gText_MailTakenFromPkmn[] = _("MAIL was taken from the\nPOKéMON.{PAUSE_UNTIL_PRESS}");
|
const u8 gText_MailTakenFromPkmn[] = _("MAIL was taken from the\nPOKéMON.{PAUSE_UNTIL_PRESS}");
|
||||||
@@ -471,7 +471,7 @@ const u8 gText_CancelChallenge[] = _("Cancel the challenge?");
|
|||||||
const u8 gText_EscapeFromHere[] = _("Want to escape from here and return\nto {STR_VAR_1}?");
|
const u8 gText_EscapeFromHere[] = _("Want to escape from here and return\nto {STR_VAR_1}?");
|
||||||
const u8 gText_ReturnToHealingSpot[] = _("Want to return to the healing spot\nused last in {STR_VAR_1}?");
|
const u8 gText_ReturnToHealingSpot[] = _("Want to return to the healing spot\nused last in {STR_VAR_1}?");
|
||||||
const u8 gText_PauseUntilPress[] = _("{PAUSE_UNTIL_PRESS}");
|
const u8 gText_PauseUntilPress[] = _("{PAUSE_UNTIL_PRESS}");
|
||||||
const u8 gJPText_PutVar1IntoSpinner[] = _("{STR_VAR_1}を ぐるぐるこうかんに\nだして よろしいですか?");
|
const u8 gJPText_AreYouSureYouWantToSpinTradeMon[] = _("{STR_VAR_1}を ぐるぐるこうかんに\nだして よろしいですか?");
|
||||||
ALIGNED(4) const u8 gText_OnlyPkmnForBattle[] = _("That's your only\nPOKéMON for battle.");
|
ALIGNED(4) const u8 gText_OnlyPkmnForBattle[] = _("That's your only\nPOKéMON for battle.");
|
||||||
ALIGNED(4) const u8 gText_PkmnCantBeTradedNow[] = _("That POKéMON can't be traded\nnow.");
|
ALIGNED(4) const u8 gText_PkmnCantBeTradedNow[] = _("That POKéMON can't be traded\nnow.");
|
||||||
ALIGNED(4) const u8 gText_EggCantBeTradedNow[] = _("An EGG can't be traded now.");
|
ALIGNED(4) const u8 gText_EggCantBeTradedNow[] = _("An EGG can't be traded now.");
|
||||||
|
|||||||
+15
-13
@@ -481,7 +481,7 @@ static void CB2_CreateTradeMenu(void)
|
|||||||
{
|
{
|
||||||
struct Pokemon *mon = &gPlayerParty[i];
|
struct Pokemon *mon = &gPlayerParty[i];
|
||||||
sTradeMenuData->partySpriteIds[TRADE_PLAYER][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2),
|
sTradeMenuData->partySpriteIds[TRADE_PLAYER][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2),
|
||||||
UpdateTradeMonIconFrame,
|
SpriteCB_MonIcon,
|
||||||
(sTradeMonSpriteCoords[i][0] * 8) + 14,
|
(sTradeMonSpriteCoords[i][0] * 8) + 14,
|
||||||
(sTradeMonSpriteCoords[i][1] * 8) - 12,
|
(sTradeMonSpriteCoords[i][1] * 8) - 12,
|
||||||
1,
|
1,
|
||||||
@@ -493,7 +493,7 @@ static void CB2_CreateTradeMenu(void)
|
|||||||
{
|
{
|
||||||
struct Pokemon *mon = &gEnemyParty[i];
|
struct Pokemon *mon = &gEnemyParty[i];
|
||||||
sTradeMenuData->partySpriteIds[TRADE_PARTNER][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2, NULL),
|
sTradeMenuData->partySpriteIds[TRADE_PARTNER][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2, NULL),
|
||||||
UpdateTradeMonIconFrame,
|
SpriteCB_MonIcon,
|
||||||
(sTradeMonSpriteCoords[i + PARTY_SIZE][0] * 8) + 14,
|
(sTradeMonSpriteCoords[i + PARTY_SIZE][0] * 8) + 14,
|
||||||
(sTradeMonSpriteCoords[i + PARTY_SIZE][1] * 8) - 12,
|
(sTradeMonSpriteCoords[i + PARTY_SIZE][1] * 8) - 12,
|
||||||
1,
|
1,
|
||||||
@@ -668,7 +668,7 @@ static void CB2_ReturnToTradeMenu(void)
|
|||||||
{
|
{
|
||||||
struct Pokemon *mon = &gPlayerParty[i];
|
struct Pokemon *mon = &gPlayerParty[i];
|
||||||
sTradeMenuData->partySpriteIds[TRADE_PLAYER][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2, NULL),
|
sTradeMenuData->partySpriteIds[TRADE_PLAYER][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2, NULL),
|
||||||
UpdateTradeMonIconFrame,
|
SpriteCB_MonIcon,
|
||||||
(sTradeMonSpriteCoords[i][0] * 8) + 14,
|
(sTradeMonSpriteCoords[i][0] * 8) + 14,
|
||||||
(sTradeMonSpriteCoords[i][1] * 8) - 12,
|
(sTradeMonSpriteCoords[i][1] * 8) - 12,
|
||||||
1,
|
1,
|
||||||
@@ -680,7 +680,7 @@ static void CB2_ReturnToTradeMenu(void)
|
|||||||
{
|
{
|
||||||
struct Pokemon *mon = &gEnemyParty[i];
|
struct Pokemon *mon = &gEnemyParty[i];
|
||||||
sTradeMenuData->partySpriteIds[TRADE_PARTNER][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2, NULL),
|
sTradeMenuData->partySpriteIds[TRADE_PARTNER][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2, NULL),
|
||||||
UpdateTradeMonIconFrame,
|
SpriteCB_MonIcon,
|
||||||
(sTradeMonSpriteCoords[i + PARTY_SIZE][0] * 8) + 14,
|
(sTradeMonSpriteCoords[i + PARTY_SIZE][0] * 8) + 14,
|
||||||
(sTradeMonSpriteCoords[i + PARTY_SIZE][1] * 8) - 12,
|
(sTradeMonSpriteCoords[i + PARTY_SIZE][1] * 8) - 12,
|
||||||
1,
|
1,
|
||||||
@@ -1439,8 +1439,8 @@ static void TradeMenuProcessInput_SelectedMon(void)
|
|||||||
QueueAction(QUEUE_DELAY_MSG, QUEUE_MON_CANT_BE_TRADED);
|
QueueAction(QUEUE_DELAY_MSG, QUEUE_MON_CANT_BE_TRADED);
|
||||||
sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_REDRAW_MAIN_MENU;
|
sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_REDRAW_MAIN_MENU;
|
||||||
break;
|
break;
|
||||||
case CANT_TRADE_EGG:
|
case CANT_TRADE_EGG_YET:
|
||||||
case CANT_TRADE_EGG2:
|
case CANT_TRADE_EGG_YET2:
|
||||||
QueueAction(QUEUE_DELAY_MSG, QUEUE_EGG_CANT_BE_TRADED);
|
QueueAction(QUEUE_DELAY_MSG, QUEUE_EGG_CANT_BE_TRADED);
|
||||||
sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_REDRAW_MAIN_MENU;
|
sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_REDRAW_MAIN_MENU;
|
||||||
break;
|
break;
|
||||||
@@ -1809,7 +1809,7 @@ static void DrawTradeMenuParty(u8 whichParty)
|
|||||||
gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].data[0] = 20;
|
gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].data[0] = 20;
|
||||||
gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].data[2] = (sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE][0] + sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE + 1][0]) / 2 * 8 + 14;
|
gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].data[2] = (sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE][0] + sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE + 1][0]) / 2 * 8 + 14;
|
||||||
gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].data[4] = (sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE][1] * 8) - 12;
|
gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].data[4] = (sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE][1] * 8) - 12;
|
||||||
StoreSpriteCallbackInData6(&gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]], UpdateTradeMonIconFrame);
|
StoreSpriteCallbackInData6(&gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]], SpriteCB_MonIcon);
|
||||||
sTradeMenuData->drawPartyState[whichParty]++;
|
sTradeMenuData->drawPartyState[whichParty]++;
|
||||||
TradeMenuBouncePartySprites(&gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]]);
|
TradeMenuBouncePartySprites(&gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]]);
|
||||||
CopyToBgTilemapBufferRect_ChangePalette(1, sTradePartyBoxTilemap, whichParty * 15, 0, 15, 17, 0);
|
CopyToBgTilemapBufferRect_ChangePalette(1, sTradePartyBoxTilemap, whichParty * 15, 0, 15, 17, 0);
|
||||||
@@ -1820,7 +1820,7 @@ static void DrawTradeMenuParty(u8 whichParty)
|
|||||||
PrintNicknamesForTradeMenu();
|
PrintNicknamesForTradeMenu();
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].callback == UpdateTradeMonIconFrame)
|
if (gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].callback == SpriteCB_MonIcon)
|
||||||
sTradeMenuData->drawPartyState[whichParty] = 3;
|
sTradeMenuData->drawPartyState[whichParty] = 3;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
@@ -2352,7 +2352,7 @@ static u32 CanTradeSelectedMon(struct Pokemon *playerParty, int partyCount, int
|
|||||||
if (!IsNationalPokedexEnabled())
|
if (!IsNationalPokedexEnabled())
|
||||||
{
|
{
|
||||||
if (species2[monIdx] == SPECIES_EGG)
|
if (species2[monIdx] == SPECIES_EGG)
|
||||||
return CANT_TRADE_EGG;
|
return CANT_TRADE_EGG_YET;
|
||||||
|
|
||||||
if (!IsSpeciesInHoennDex(species2[monIdx]))
|
if (!IsSpeciesInHoennDex(species2[monIdx]))
|
||||||
return CANT_TRADE_NATIONAL;
|
return CANT_TRADE_NATIONAL;
|
||||||
@@ -2366,7 +2366,7 @@ static u32 CanTradeSelectedMon(struct Pokemon *playerParty, int partyCount, int
|
|||||||
if (!(player->progressFlagsCopy & 0xF))
|
if (!(player->progressFlagsCopy & 0xF))
|
||||||
{
|
{
|
||||||
if (species2[monIdx] == SPECIES_EGG)
|
if (species2[monIdx] == SPECIES_EGG)
|
||||||
return CANT_TRADE_EGG2;
|
return CANT_TRADE_EGG_YET2;
|
||||||
|
|
||||||
if (!IsSpeciesInHoennDex(species2[monIdx]))
|
if (!IsSpeciesInHoennDex(species2[monIdx]))
|
||||||
return CANT_TRADE_INVALID_MON;
|
return CANT_TRADE_INVALID_MON;
|
||||||
@@ -2542,8 +2542,10 @@ int CanRegisterMonForTradingBoard(struct UnkLinkRfuStruct_02022B14Substruct rfuP
|
|||||||
}
|
}
|
||||||
|
|
||||||
// r6/r7 flip. Ugh.
|
// r6/r7 flip. Ugh.
|
||||||
|
// Spin Trade wasnt fully implemented, but this checks if a mon would be valid to Spin Trade
|
||||||
|
// Unlike later generations, this version of Spin Trade isnt only for Eggs
|
||||||
#ifdef NONMATCHING
|
#ifdef NONMATCHING
|
||||||
int CanTradeSelectedPartyMenuMon(struct Pokemon *mon, u16 monIdx)
|
int CanSpinTradeMon(struct Pokemon *mon, u16 monIdx)
|
||||||
{
|
{
|
||||||
int i, version, versions, canTradeAnyMon, numMonsLeft;
|
int i, version, versions, canTradeAnyMon, numMonsLeft;
|
||||||
int speciesArray[PARTY_SIZE];
|
int speciesArray[PARTY_SIZE];
|
||||||
@@ -2592,7 +2594,7 @@ int CanTradeSelectedPartyMenuMon(struct Pokemon *mon, u16 monIdx)
|
|||||||
return CANT_TRADE_NATIONAL;
|
return CANT_TRADE_NATIONAL;
|
||||||
|
|
||||||
if (speciesArray[monIdx] == SPECIES_NONE)
|
if (speciesArray[monIdx] == SPECIES_NONE)
|
||||||
return CANT_TRADE_EGG;
|
return CANT_TRADE_EGG_YET;
|
||||||
}
|
}
|
||||||
|
|
||||||
numMonsLeft = 0;
|
numMonsLeft = 0;
|
||||||
@@ -2611,7 +2613,7 @@ int CanTradeSelectedPartyMenuMon(struct Pokemon *mon, u16 monIdx)
|
|||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
NAKED
|
NAKED
|
||||||
int CanTradeSelectedPartyMenuMon(struct Pokemon *mon, u16 a1)
|
int CanSpinTradeMon(struct Pokemon *mon, u16 a1)
|
||||||
{
|
{
|
||||||
asm_unified("push {r4-r7,lr}\n\
|
asm_unified("push {r4-r7,lr}\n\
|
||||||
mov r7, r8\n\
|
mov r7, r8\n\
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user