Set up Battle Tent macros

This commit is contained in:
GriffinR
2019-12-02 14:49:22 -05:00
committed by huderlem
parent fdae25eab2
commit 467a103bcc
11 changed files with 272 additions and 112 deletions

View File

@@ -1 +1,163 @@
@ To be populated with macros for CallVerdanturfTentFunction, CallFallarborTentFunction, and CallSlateportTentFunction @ TODO: Add explanatory comments
@ Verdanturf Tent
@
.macro verdanturftent_init
setvar VAR_0x8004, VERDANTURF_TENT_FUNC_INIT
special CallVerdanturfTentFunction
.endm
@
.macro verdanturftent_getprize
setvar VAR_0x8004, VERDANTURF_TENT_FUNC_GET_PRIZE
special CallVerdanturfTentFunction
.endm
@ Unused.
.macro verdanturftent_setprize
setvar VAR_0x8004, VERDANTURF_TENT_FUNC_SET_PRIZE
special CallVerdanturfTentFunction
.endm
@ Unused.
.macro verdanturftent_setopponentgfx
setvar VAR_0x8004, VERDANTURF_TENT_FUNC_SET_OPPONENT_GFX
special CallVerdanturfTentFunction
.endm
@ Buffers the opponents intro speech to STR_VAR_4. Despite being a Verdanturf Tent function, it serves the same purpose for all 3 tents.
.macro battletent_getopponentintro
setvar VAR_0x8004, VERDANTURF_TENT_FUNC_GET_OPPONENT_INTRO
special CallVerdanturfTentFunction
.endm
@
.macro verdanturftent_save challengeStatus:req
setvar VAR_0x8004, VERDANTURF_TENT_FUNC_SAVE
setvar VAR_0x8005, \challengeStatus
special CallVerdanturfTentFunction
.endm
@
.macro verdanturftent_setrandomprize
setvar VAR_0x8004, VERDANTURF_TENT_FUNC_SET_RANDOM_PRIZE
special CallVerdanturfTentFunction
.endm
@
.macro verdanturftent_giveprize
setvar VAR_0x8004, VERDANTURF_TENT_FUNC_GIVE_PRIZE
special CallVerdanturfTentFunction
.endm
@ Fallarbor Tent
@
.macro fallarbortent_init
setvar VAR_0x8004, FALLARBOR_TENT_FUNC_INIT
special CallFallarborTentFunction
.endm
@
.macro fallarbortent_getprize
setvar VAR_0x8004, FALLARBOR_TENT_FUNC_GET_PRIZE
special CallFallarborTentFunction
.endm
@ Unused.
.macro fallarbortent_setprize
setvar VAR_0x8004, FALLARBOR_TENT_FUNC_SET_PRIZE
special CallFallarborTentFunction
.endm
@
.macro fallarbortent_save challengeStatus:req
setvar VAR_0x8004, FALLARBOR_TENT_FUNC_SAVE
setvar VAR_0x8005, \challengeStatus
special CallFallarborTentFunction
.endm
@
.macro fallarbortent_setrandomprize
setvar VAR_0x8004, FALLARBOR_TENT_FUNC_SET_RANDOM_PRIZE
special CallFallarborTentFunction
.endm
@
.macro fallarbortent_giveprize
setvar VAR_0x8004, FALLARBOR_TENT_FUNC_GIVE_PRIZE
special CallFallarborTentFunction
.endm
@
.macro fallarbortent_getopponentname
setvar VAR_0x8004, FALLARBOR_TENT_FUNC_GET_OPPONENT_NAME
special CallFallarborTentFunction
.endm
@ Slateport Tent
@
.macro slateporttent_init
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_INIT
special CallSlateportTentFunction
.endm
@
.macro slateporttent_getprize
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_GET_PRIZE
special CallSlateportTentFunction
.endm
@ Unused.
.macro slateporttent_setprize
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_SET_PRIZE
special CallSlateportTentFunction
.endm
@
.macro slateporttent_save challengeStatus:req
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_SAVE
setvar VAR_0x8005, \challengeStatus
special CallSlateportTentFunction
.endm
@
.macro slateporttent_setrandomprize
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_SET_RANDOM_PRIZE
special CallSlateportTentFunction
.endm
@
.macro slateporttent_giveprize
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_GIVE_PRIZE
special CallSlateportTentFunction
.endm
@
.macro slateporttent_rentmons
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_SELECT_RENT_MONS
special CallSlateportTentFunction
.endm
@
.macro slateporttent_swapmons
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_SWAP_RENT_MONS
special CallSlateportTentFunction
.endm
@
.macro slateporttent_generateopponentmons
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_GENERATE_OPPONENT_MONS
special CallSlateportTentFunction
.endm
@
.macro slateporttent_generaterentalmons
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_GENERATE_RENTAL_MONS
special CallSlateportTentFunction
.endm

View File

@@ -9,6 +9,7 @@
#include "constants/battle_pike.h" #include "constants/battle_pike.h"
#include "constants/battle_pyramid.h" #include "constants/battle_pyramid.h"
#include "constants/battle_setup.h" #include "constants/battle_setup.h"
#include "constants/battle_tent.h"
#include "constants/battle_tower.h" #include "constants/battle_tower.h"
#include "constants/berry.h" #include "constants/berry.h"
#include "constants/cable_club.h" #include "constants/cable_club.h"

View File

@@ -49,8 +49,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_20090F:: @ 820090F
waitse waitse
waitmovement 0 waitmovement 0
msgbox BattleFrontier_BattleArenaBattleRoom_Text_SetKOTourneyBegin, MSGBOX_DEFAULT msgbox BattleFrontier_BattleArenaBattleRoom_Text_SetKOTourneyBegin, MSGBOX_DEFAULT
setvar VAR_0x8004, 4 battletent_getopponentintro
special CallVerdanturfTentFunction
msgbox gStringVar4, MSGBOX_DEFAULT msgbox gStringVar4, MSGBOX_DEFAULT
waitmessage waitmessage
call BattleFrontier_BattleArenaBattleRoom_EventScript_DoArenaBattle call BattleFrontier_BattleArenaBattleRoom_EventScript_DoArenaBattle
@@ -60,8 +59,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_20090F:: @ 820090F
playse SE_W173 playse SE_W173
waitse waitse
waitmovement 0 waitmovement 0
setvar VAR_0x8004, 6 fallarbortent_getopponentname
special CallFallarborTentFunction
msgbox BattleFrontier_BattleArenaBattleRoom_Text_WinnerIsOpponent, MSGBOX_DEFAULT msgbox BattleFrontier_BattleArenaBattleRoom_Text_WinnerIsOpponent, MSGBOX_DEFAULT
FallarborTown_BattleTentBattleRoom_EventScript_20097E:: @ 820097E FallarborTown_BattleTentBattleRoom_EventScript_20097E:: @ 820097E
@@ -160,9 +158,7 @@ FallarborTown_BattleTentBattleRoom_EventScript_200B4A:: @ 8200B4A
FallarborTown_BattleTentBattleRoom_EventScript_200B51:: @ 8200B51 FallarborTown_BattleTentBattleRoom_EventScript_200B51:: @ 8200B51
message BattleFrontier_BattleArenaBattleRoom_Text_SavingPleaseWait message BattleFrontier_BattleArenaBattleRoom_Text_SavingPleaseWait
waitmessage waitmessage
setvar VAR_0x8004, 3 fallarbortent_save CHALLENGE_STATUS_PAUSED
setvar VAR_0x8005, 2
special CallFallarborTentFunction
playse SE_SAVE playse SE_SAVE
waitse waitse
fadescreen 1 fadescreen 1

View File

@@ -39,19 +39,15 @@ FallarborTown_BattleTentLobby_EventScript_1FFEED:: @ 81FFEED
msgbox FallarborTown_BattleTentLobby_Text_2C4EC3, MSGBOX_DEFAULT msgbox FallarborTown_BattleTentLobby_Text_2C4EC3, MSGBOX_DEFAULT
message FallarborTown_BattleTentLobby_Text_2C4EFF message FallarborTown_BattleTentLobby_Text_2C4EFF
waitmessage waitmessage
setvar VAR_0x8004, 4 fallarbortent_setrandomprize
special CallFallarborTentFunction
frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50
setvar VAR_0x8004, 3 fallarbortent_save 0
setvar VAR_0x8005, 0
special CallFallarborTentFunction
playse SE_SAVE playse SE_SAVE
waitse waitse
FallarborTown_BattleTentLobby_EventScript_1FFF27:: @ 81FFF27 FallarborTown_BattleTentLobby_EventScript_1FFF27:: @ 81FFF27
msgbox FallarborTown_BattleTentLobby_Text_2C4F22, MSGBOX_DEFAULT msgbox FallarborTown_BattleTentLobby_Text_2C4F22, MSGBOX_DEFAULT
setvar VAR_0x8004, 5 fallarbortent_giveprize
special CallFallarborTentFunction
switch VAR_RESULT switch VAR_RESULT
case 0, FallarborTown_BattleTentLobby_EventScript_1FFF73 case 0, FallarborTown_BattleTentLobby_EventScript_1FFF73
frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0
@@ -84,9 +80,7 @@ FallarborTown_BattleTentLobby_EventScript_1FFF93:: @ 81FFF93
message FallarborTown_BattleTentLobby_Text_2C4FD7 message FallarborTown_BattleTentLobby_Text_2C4FD7
waitmessage waitmessage
frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50
setvar VAR_0x8004, 3 fallarbortent_save 0
setvar VAR_0x8005, 0
special CallFallarborTentFunction
playse SE_SAVE playse SE_SAVE
waitse waitse
msgbox FallarborTown_BattleTentLobby_Text_2C501F, MSGBOX_DEFAULT msgbox FallarborTown_BattleTentLobby_Text_2C501F, MSGBOX_DEFAULT
@@ -99,9 +93,7 @@ FallarborTown_BattleTentLobby_EventScript_1FFFCD:: @ 81FFFCD
lockall lockall
message FallarborTown_BattleTentLobby_Text_2C504C message FallarborTown_BattleTentLobby_Text_2C504C
waitmessage waitmessage
setvar VAR_0x8004, 3 fallarbortent_save CHALLENGE_STATUS_SAVING
setvar VAR_0x8005, 1
special CallFallarborTentFunction
playse SE_SAVE playse SE_SAVE
waitse waitse
frontier_set FRONTIER_DATA_PAUSED, FALSE frontier_set FRONTIER_DATA_PAUSED, FALSE
@@ -111,8 +103,7 @@ FallarborTown_BattleTentLobby_EventScript_1FFFCD:: @ 81FFFCD
FallarborTown_BattleTentLobby_EventScript_200001:: @ 8200001 FallarborTown_BattleTentLobby_EventScript_200001:: @ 8200001
lock lock
faceplayer faceplayer
setvar VAR_0x8004, 1 fallarbortent_getprize
special CallFallarborTentFunction
compare VAR_RESULT, 0 compare VAR_RESULT, 0
goto_if_ne FallarborTown_BattleTentLobby_EventScript_1FFF84 goto_if_ne FallarborTown_BattleTentLobby_EventScript_1FFF84
special SavePlayerParty special SavePlayerParty
@@ -153,8 +144,7 @@ FallarborTown_BattleTentLobby_EventScript_20005D:: @ 820005D
FallarborTown_BattleTentLobby_EventScript_2000E2:: @ 82000E2 FallarborTown_BattleTentLobby_EventScript_2000E2:: @ 82000E2
setvar VAR_TEMP_0, 0 setvar VAR_TEMP_0, 0
frontier_set FRONTIER_DATA_SELECTED_MON_ORDER frontier_set FRONTIER_DATA_SELECTED_MON_ORDER
setvar VAR_0x8004, 0 fallarbortent_init
special CallFallarborTentFunction
frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING
frontier_set FRONTIER_DATA_PAUSED, FALSE frontier_set FRONTIER_DATA_PAUSED, FALSE
special LoadPlayerParty special LoadPlayerParty

View File

@@ -47,8 +47,7 @@ SlateportCity_BattleTentBattleRoom_EventScript_2099BE:: @ 82099BE
addobject 2 addobject 2
applymovement 2, SlateportCity_BattleTentBattleRoom_Movement_209A9E applymovement 2, SlateportCity_BattleTentBattleRoom_Movement_209A9E
waitmovement 0 waitmovement 0
setvar VAR_0x8004, 4 battletent_getopponentintro
special CallVerdanturfTentFunction
lockall lockall
msgbox gStringVar4, MSGBOX_DEFAULT msgbox gStringVar4, MSGBOX_DEFAULT
waitmessage waitmessage

View File

@@ -31,14 +31,11 @@ SlateportCity_BattleTentCorridor_EventScript_208E65:: @ 8208E65
waitmovement 0 waitmovement 0
compare VAR_0x8006, 2 compare VAR_0x8006, 2
goto_if_eq SlateportCity_BattleTentCorridor_EventScript_209044 goto_if_eq SlateportCity_BattleTentCorridor_EventScript_209044
setvar VAR_0x8004, 9 slateporttent_generaterentalmons
special CallSlateportTentFunction slateporttent_generateopponentmons
setvar VAR_0x8004, 8
special CallSlateportTentFunction
msgbox SlateportCity_BattleTentCorridor_Text_25A1C8, MSGBOX_DEFAULT msgbox SlateportCity_BattleTentCorridor_Text_25A1C8, MSGBOX_DEFAULT
fadescreen 1 fadescreen 1
setvar VAR_0x8004, 6 slateporttent_rentmons
special CallSlateportTentFunction
waitstate waitstate
SlateportCity_BattleTentCorridor_EventScript_208EB4:: @ 8208EB4 SlateportCity_BattleTentCorridor_EventScript_208EB4:: @ 8208EB4
msgbox SlateportCity_BattleTentCorridor_Text_25AB96, MSGBOX_DEFAULT msgbox SlateportCity_BattleTentCorridor_Text_25AB96, MSGBOX_DEFAULT
@@ -92,8 +89,7 @@ SlateportCity_BattleTentCorridor_EventScript_208F89:: @ 8208F89
case MULTI_B_PRESSED, SlateportCity_BattleTentCorridor_EventScript_208F0D case MULTI_B_PRESSED, SlateportCity_BattleTentCorridor_EventScript_208F0D
SlateportCity_BattleTentCorridor_EventScript_208FBB:: @ 8208FBB SlateportCity_BattleTentCorridor_EventScript_208FBB:: @ 8208FBB
setvar VAR_0x8004, 8 slateporttent_generateopponentmons
special CallSlateportTentFunction
msgbox SlateportCity_BattleTentCorridor_Text_25AB2E, MSGBOX_YESNO msgbox SlateportCity_BattleTentCorridor_Text_25AB2E, MSGBOX_YESNO
switch VAR_RESULT switch VAR_RESULT
case NO, SlateportCity_BattleTentCorridor_EventScript_208EB4 case NO, SlateportCity_BattleTentCorridor_EventScript_208EB4
@@ -102,8 +98,7 @@ SlateportCity_BattleTentCorridor_EventScript_208FBB:: @ 8208FBB
SlateportCity_BattleTentCorridor_EventScript_208FF1:: @ 8208FF1 SlateportCity_BattleTentCorridor_EventScript_208FF1:: @ 8208FF1
fadescreen 1 fadescreen 1
setvar VAR_0x8004, 7 slateporttent_swapmons
special CallSlateportTentFunction
waitstate waitstate
compare VAR_RESULT, 1 compare VAR_RESULT, 1
goto_if_eq SlateportCity_BattleTentCorridor_EventScript_208EB4 goto_if_eq SlateportCity_BattleTentCorridor_EventScript_208EB4
@@ -123,9 +118,7 @@ SlateportCity_BattleTentCorridor_EventScript_20901B:: @ 820901B
SlateportCity_BattleTentCorridor_EventScript_209022:: @ 8209022 SlateportCity_BattleTentCorridor_EventScript_209022:: @ 8209022
message SlateportCity_BattleTentCorridor_Text_25ABAE message SlateportCity_BattleTentCorridor_Text_25ABAE
waitmessage waitmessage
setvar VAR_0x8004, 3 slateporttent_save CHALLENGE_STATUS_PAUSED
setvar VAR_0x8005, 2
special CallSlateportTentFunction
playse SE_SAVE playse SE_SAVE
waitse waitse
fadescreen 1 fadescreen 1

View File

@@ -38,18 +38,14 @@ SlateportCity_BattleTentLobby_EventScript_2087B7:: @ 82087B7
lockall lockall
message SlateportCity_BattleTentLobby_Text_2C5C6F message SlateportCity_BattleTentLobby_Text_2C5C6F
waitmessage waitmessage
setvar VAR_0x8004, 4 slateporttent_setrandomprize
special CallSlateportTentFunction
frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50
setvar VAR_0x8004, 3 slateporttent_save 0
setvar VAR_0x8005, 0
special CallSlateportTentFunction
playse SE_SAVE playse SE_SAVE
waitse waitse
SlateportCity_BattleTentLobby_EventScript_2087E9:: @ 82087E9 SlateportCity_BattleTentLobby_EventScript_2087E9:: @ 82087E9
msgbox SlateportCity_BattleTentLobby_Text_2C5D14, MSGBOX_DEFAULT msgbox SlateportCity_BattleTentLobby_Text_2C5D14, MSGBOX_DEFAULT
setvar VAR_0x8004, 5 slateporttent_giveprize
special CallSlateportTentFunction
switch VAR_RESULT switch VAR_RESULT
case 0, SlateportCity_BattleTentLobby_EventScript_20882A case 0, SlateportCity_BattleTentLobby_EventScript_20882A
frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0
@@ -68,9 +64,7 @@ SlateportCity_BattleTentLobby_EventScript_208837:: @ 8208837
message SlateportCity_BattleTentLobby_Text_2C5BA2 message SlateportCity_BattleTentLobby_Text_2C5BA2
waitmessage waitmessage
frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50
setvar VAR_0x8004, 3 slateporttent_save 0
setvar VAR_0x8005, 0
special CallSlateportTentFunction
playse SE_SAVE playse SE_SAVE
waitse waitse
@@ -85,9 +79,7 @@ SlateportCity_BattleTentLobby_EventScript_208871:: @ 8208871
lockall lockall
message SlateportCity_BattleTentLobby_Text_2C5DA7 message SlateportCity_BattleTentLobby_Text_2C5DA7
waitmessage waitmessage
setvar VAR_0x8004, 3 slateporttent_save CHALLENGE_STATUS_SAVING
setvar VAR_0x8005, 1
special CallSlateportTentFunction
playse SE_SAVE playse SE_SAVE
waitse waitse
frontier_set FRONTIER_DATA_PAUSED, FALSE frontier_set FRONTIER_DATA_PAUSED, FALSE
@@ -98,13 +90,11 @@ SlateportCity_BattleTentLobby_EventScript_208871:: @ 8208871
SlateportCity_BattleTentLobby_EventScript_2088AA:: @ 82088AA SlateportCity_BattleTentLobby_EventScript_2088AA:: @ 82088AA
lock lock
faceplayer faceplayer
setvar VAR_0x8004, 1 slateporttent_getprize
special CallSlateportTentFunction
compare VAR_RESULT, 0 compare VAR_RESULT, 0
goto_if_ne SlateportCity_BattleTentLobby_EventScript_2087E9 goto_if_ne SlateportCity_BattleTentLobby_EventScript_2087E9
special SavePlayerParty special SavePlayerParty
msgbox SlateportCity_BattleTentLobby_Text_2C5810, MSGBOX_DEFAULT msgbox SlateportCity_BattleTentLobby_Text_2C5810, MSGBOX_DEFAULT
SlateportCity_BattleTentLobby_EventScript_2088CA:: @ 82088CA SlateportCity_BattleTentLobby_EventScript_2088CA:: @ 82088CA
message SlateportCity_BattleTentLobby_Text_2C586A message SlateportCity_BattleTentLobby_Text_2C586A
waitmessage waitmessage
@@ -128,8 +118,7 @@ SlateportCity_BattleTentLobby_EventScript_208906:: @ 8208906
SlateportCity_BattleTentLobby_EventScript_208950:: @ 8208950 SlateportCity_BattleTentLobby_EventScript_208950:: @ 8208950
setvar VAR_TEMP_0, 0 setvar VAR_TEMP_0, 0
frontier_set FRONTIER_DATA_SELECTED_MON_ORDER frontier_set FRONTIER_DATA_SELECTED_MON_ORDER
setvar VAR_0x8004, 0 slateporttent_init
special CallSlateportTentFunction
frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING
frontier_set FRONTIER_DATA_PAUSED, FALSE frontier_set FRONTIER_DATA_PAUSED, FALSE
closemessage closemessage

View File

@@ -43,8 +43,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_20236F:: @ 820236F
addobject 2 addobject 2
applymovement 2, VerdanturfTown_BattleTentBattleRoom_Movement_20257B applymovement 2, VerdanturfTown_BattleTentBattleRoom_Movement_20257B
waitmovement 0 waitmovement 0
setvar VAR_0x8004, 4 battletent_getopponentintro
special CallVerdanturfTentFunction
msgbox gStringVar4, MSGBOX_DEFAULT msgbox gStringVar4, MSGBOX_DEFAULT
waitmessage waitmessage
call VerdanturfTown_BattleTentBattleRoom_EventScript_24FDF7 call VerdanturfTown_BattleTentBattleRoom_EventScript_24FDF7
@@ -121,9 +120,7 @@ VerdanturfTown_BattleTentBattleRoom_EventScript_202501:: @ 8202501
VerdanturfTown_BattleTentBattleRoom_EventScript_20251F:: @ 820251F VerdanturfTown_BattleTentBattleRoom_EventScript_20251F:: @ 820251F
message VerdanturfTown_BattleTentBattleRoom_Text_25007E message VerdanturfTown_BattleTentBattleRoom_Text_25007E
waitmessage waitmessage
setvar VAR_0x8004, 5 verdanturftent_save CHALLENGE_STATUS_PAUSED
setvar VAR_0x8005, 2
special CallVerdanturfTentFunction
playse SE_SAVE playse SE_SAVE
waitse waitse
fadescreen 1 fadescreen 1

View File

@@ -39,19 +39,15 @@ VerdanturfTown_BattleTentLobby_EventScript_201757:: @ 8201757
msgbox VerdanturfTown_BattleTentLobby_Text_2C5731, MSGBOX_DEFAULT msgbox VerdanturfTown_BattleTentLobby_Text_2C5731, MSGBOX_DEFAULT
message VerdanturfTown_BattleTentLobby_Text_2C5791 message VerdanturfTown_BattleTentLobby_Text_2C5791
waitmessage waitmessage
setvar VAR_0x8004, 6 verdanturftent_setrandomprize
special CallVerdanturfTentFunction
frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50
setvar VAR_0x8004, 5 verdanturftent_save 0
setvar VAR_0x8005, 0
special CallVerdanturfTentFunction
playse SE_SAVE playse SE_SAVE
waitse waitse
VerdanturfTown_BattleTentLobby_EventScript_201791:: @ 8201791 VerdanturfTown_BattleTentLobby_EventScript_201791:: @ 8201791
msgbox VerdanturfTown_BattleTentLobby_Text_2C57CD, MSGBOX_DEFAULT msgbox VerdanturfTown_BattleTentLobby_Text_2C57CD, MSGBOX_DEFAULT
setvar VAR_0x8004, 7 verdanturftent_giveprize
special CallVerdanturfTentFunction
switch VAR_RESULT switch VAR_RESULT
case 0, VerdanturfTown_BattleTentLobby_EventScript_2017DD case 0, VerdanturfTown_BattleTentLobby_EventScript_2017DD
frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0
@@ -84,9 +80,7 @@ VerdanturfTown_BattleTentLobby_EventScript_2017FD:: @ 82017FD
message VerdanturfTown_BattleTentLobby_Text_2C56B8 message VerdanturfTown_BattleTentLobby_Text_2C56B8
waitmessage waitmessage
frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50 frontier_set FRONTIER_DATA_LVL_MODE, FRONTIER_LVL_50
setvar VAR_0x8004, 5 verdanturftent_save 0
setvar VAR_0x8005, 0
special CallVerdanturfTentFunction
playse SE_SAVE playse SE_SAVE
waitse waitse
msgbox VerdanturfTown_BattleTentLobby_Text_2C539A, MSGBOX_DEFAULT msgbox VerdanturfTown_BattleTentLobby_Text_2C539A, MSGBOX_DEFAULT
@@ -100,9 +94,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201837:: @ 8201837
msgbox VerdanturfTown_BattleTentLobby_Text_24E5D8, MSGBOX_DEFAULT msgbox VerdanturfTown_BattleTentLobby_Text_24E5D8, MSGBOX_DEFAULT
message VerdanturfTown_BattleTentLobby_Text_24E5F6 message VerdanturfTown_BattleTentLobby_Text_24E5F6
waitmessage waitmessage
setvar VAR_0x8004, 5 verdanturftent_save CHALLENGE_STATUS_SAVING
setvar VAR_0x8005, 1
special CallVerdanturfTentFunction
playse SE_SAVE playse SE_SAVE
waitse waitse
frontier_set FRONTIER_DATA_PAUSED, FALSE frontier_set FRONTIER_DATA_PAUSED, FALSE
@@ -112,8 +104,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201837:: @ 8201837
VerdanturfTown_BattleTentLobby_EventScript_201873:: @ 8201873 VerdanturfTown_BattleTentLobby_EventScript_201873:: @ 8201873
lock lock
faceplayer faceplayer
setvar VAR_0x8004, 1 verdanturftent_getprize
special CallVerdanturfTentFunction
compare VAR_RESULT, 0 compare VAR_RESULT, 0
goto_if_ne VerdanturfTown_BattleTentLobby_EventScript_2017EE goto_if_ne VerdanturfTown_BattleTentLobby_EventScript_2017EE
special SavePlayerParty special SavePlayerParty
@@ -154,8 +145,7 @@ VerdanturfTown_BattleTentLobby_EventScript_2018CF:: @ 82018CF
VerdanturfTown_BattleTentLobby_EventScript_201954:: @ 8201954 VerdanturfTown_BattleTentLobby_EventScript_201954:: @ 8201954
setvar VAR_TEMP_0, 0 setvar VAR_TEMP_0, 0
frontier_set FRONTIER_DATA_SELECTED_MON_ORDER frontier_set FRONTIER_DATA_SELECTED_MON_ORDER
setvar VAR_0x8004, 0 verdanturftent_init
special CallVerdanturfTentFunction
frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_SAVING
frontier_set FRONTIER_DATA_PAUSED, FALSE frontier_set FRONTIER_DATA_PAUSED, FALSE
special LoadPlayerParty special LoadPlayerParty

View File

@@ -0,0 +1,32 @@
#ifndef GUARD_CONSTANTS_BATTLE_TENT_H
#define GUARD_CONSTANTS_BATTLE_TENT_H
#define VERDANTURF_TENT_FUNC_INIT 0
#define VERDANTURF_TENT_FUNC_GET_PRIZE 1
#define VERDANTURF_TENT_FUNC_SET_PRIZE 2
#define VERDANTURF_TENT_FUNC_SET_OPPONENT_GFX 3
#define VERDANTURF_TENT_FUNC_GET_OPPONENT_INTRO 4
#define VERDANTURF_TENT_FUNC_SAVE 5
#define VERDANTURF_TENT_FUNC_SET_RANDOM_PRIZE 6
#define VERDANTURF_TENT_FUNC_GIVE_PRIZE 7
#define FALLARBOR_TENT_FUNC_INIT 0
#define FALLARBOR_TENT_FUNC_GET_PRIZE 1
#define FALLARBOR_TENT_FUNC_SET_PRIZE 2
#define FALLARBOR_TENT_FUNC_SAVE 3
#define FALLARBOR_TENT_FUNC_SET_RANDOM_PRIZE 4
#define FALLARBOR_TENT_FUNC_GIVE_PRIZE 5
#define FALLARBOR_TENT_FUNC_GET_OPPONENT_NAME 6
#define SLATEPORT_TENT_FUNC_INIT 0
#define SLATEPORT_TENT_FUNC_GET_PRIZE 1
#define SLATEPORT_TENT_FUNC_SET_PRIZE 2
#define SLATEPORT_TENT_FUNC_SAVE 3
#define SLATEPORT_TENT_FUNC_SET_RANDOM_PRIZE 4
#define SLATEPORT_TENT_FUNC_GIVE_PRIZE 5
#define SLATEPORT_TENT_FUNC_SELECT_RENT_MONS 6
#define SLATEPORT_TENT_FUNC_SWAP_RENT_MONS 7
#define SLATEPORT_TENT_FUNC_GENERATE_OPPONENT_MONS 8
#define SLATEPORT_TENT_FUNC_GENERATE_RENTAL_MONS 9
#endif // GUARD_CONSTANTS_BATTLE_TENT_H

View File

@@ -11,6 +11,7 @@
#include "battle_factory_screen.h" #include "battle_factory_screen.h"
#include "frontier_util.h" #include "frontier_util.h"
#include "string_util.h" #include "string_util.h"
#include "constants/battle_tent.h"
#include "constants/items.h" #include "constants/items.h"
#include "constants/layouts.h" #include "constants/layouts.h"
#include "constants/region_map_sections.h" #include "constants/region_map_sections.h"
@@ -41,8 +42,18 @@ static void SetRandomSlateportTentPrize(void);
static void GiveSlateportTentPrize(void); static void GiveSlateportTentPrize(void);
static void SelectInitialRentalMons(void); static void SelectInitialRentalMons(void);
static void SwapRentalMons(void); static void SwapRentalMons(void);
static void sub_81BA040(void); static void GenerateOpponentMons(void);
static void sub_81B9EC0(void); static void GenerateInitialRentalMons(void);
/*
* Battle Tents are mini versions of particular Battle Frontier facilities
* As such they each share some scripts and functions with their counterpart
*
* Verdanturf Battle Tent: Battle Palace
* Fallarbor Battle Tent: Battle Arena
* Slateport Battle Tent: Battle Factory
*
*/
// IWRAM bss // IWRAM bss
static u16 sRandMonSetId; static u16 sRandMonSetId;
@@ -50,43 +61,43 @@ static u16 sRandMonSetId;
// const rom data // const rom data
void static (*const sVerdanturfTentFuncs[])(void) = void static (*const sVerdanturfTentFuncs[])(void) =
{ {
InitVerdanturfTentChallenge, [VERDANTURF_TENT_FUNC_INIT] = InitVerdanturfTentChallenge,
GetVerdanturfTentPrize, [VERDANTURF_TENT_FUNC_GET_PRIZE] = GetVerdanturfTentPrize,
SetVerdanturfTentPrize, [VERDANTURF_TENT_FUNC_SET_PRIZE] = SetVerdanturfTentPrize,
SetVerdanturfTentTrainerGfx, [VERDANTURF_TENT_FUNC_SET_OPPONENT_GFX] = SetVerdanturfTentTrainerGfx,
BufferVerdanturfTentTrainerIntro, [VERDANTURF_TENT_FUNC_GET_OPPONENT_INTRO] = BufferVerdanturfTentTrainerIntro,
SaveVerdanturfTentChallenge, [VERDANTURF_TENT_FUNC_SAVE] = SaveVerdanturfTentChallenge,
SetRandomVerdanturfTentPrize, [VERDANTURF_TENT_FUNC_SET_RANDOM_PRIZE] = SetRandomVerdanturfTentPrize,
GiveVerdanturfTentPrize [VERDANTURF_TENT_FUNC_GIVE_PRIZE] = GiveVerdanturfTentPrize
}; };
static const u16 sVerdanturfTentRewards[] = {ITEM_NEST_BALL}; static const u16 sVerdanturfTentRewards[] = {ITEM_NEST_BALL};
void static (*const sFallarborTentFuncs[])(void) = void static (*const sFallarborTentFuncs[])(void) =
{ {
InitFallarborTentChallenge, [FALLARBOR_TENT_FUNC_INIT] = InitFallarborTentChallenge,
GetFallarborTentPrize, [FALLARBOR_TENT_FUNC_GET_PRIZE] = GetFallarborTentPrize,
SetFallarborTentPrize, [FALLARBOR_TENT_FUNC_SET_PRIZE] = SetFallarborTentPrize,
SaveFallarborTentChallenge, [FALLARBOR_TENT_FUNC_SAVE] = SaveFallarborTentChallenge,
SetRandomFallarborTentPrize, [FALLARBOR_TENT_FUNC_SET_RANDOM_PRIZE] = SetRandomFallarborTentPrize,
GiveFallarborTentPrize, [FALLARBOR_TENT_FUNC_GIVE_PRIZE] = GiveFallarborTentPrize,
BufferFallarborTentTrainerName [FALLARBOR_TENT_FUNC_GET_OPPONENT_NAME] = BufferFallarborTentTrainerName
}; };
static const u16 sFallarborTentRewards[] = {ITEM_HYPER_POTION}; static const u16 sFallarborTentRewards[] = {ITEM_HYPER_POTION};
void static (*const sSlateportTentFuncs[])(void) = void static (*const sSlateportTentFuncs[])(void) =
{ {
InitSlateportTentChallenge, [SLATEPORT_TENT_FUNC_INIT] = InitSlateportTentChallenge,
GetSlateportTentPrize, [SLATEPORT_TENT_FUNC_GET_PRIZE] = GetSlateportTentPrize,
SetSlateportTentPrize, [SLATEPORT_TENT_FUNC_SET_PRIZE] = SetSlateportTentPrize,
SaveSlateportTentChallenge, [SLATEPORT_TENT_FUNC_SAVE] = SaveSlateportTentChallenge,
SetRandomSlateportTentPrize, [SLATEPORT_TENT_FUNC_SET_RANDOM_PRIZE] = SetRandomSlateportTentPrize,
GiveSlateportTentPrize, [SLATEPORT_TENT_FUNC_GIVE_PRIZE] = GiveSlateportTentPrize,
SelectInitialRentalMons, [SLATEPORT_TENT_FUNC_SELECT_RENT_MONS] = SelectInitialRentalMons,
SwapRentalMons, [SLATEPORT_TENT_FUNC_SWAP_RENT_MONS] = SwapRentalMons,
sub_81BA040, [SLATEPORT_TENT_FUNC_GENERATE_OPPONENT_MONS] = GenerateOpponentMons,
sub_81B9EC0 [SLATEPORT_TENT_FUNC_GENERATE_RENTAL_MONS] = GenerateInitialRentalMons
}; };
static const u16 sSlateportTentRewards[] = {ITEM_FULL_HEAL}; static const u16 sSlateportTentRewards[] = {ITEM_FULL_HEAL};
@@ -276,7 +287,7 @@ bool8 InSlateportBattleTent(void)
&& (gMapHeader.mapLayoutId == LAYOUT_BATTLE_TENT_CORRIDOR || gMapHeader.mapLayoutId == LAYOUT_BATTLE_TENT_BATTLE_ROOM); && (gMapHeader.mapLayoutId == LAYOUT_BATTLE_TENT_CORRIDOR || gMapHeader.mapLayoutId == LAYOUT_BATTLE_TENT_BATTLE_ROOM);
} }
static void sub_81B9EC0(void) static void GenerateInitialRentalMons(void)
{ {
s32 i, j; s32 i, j;
u8 firstMonId; u8 firstMonId;
@@ -338,13 +349,13 @@ static void sub_81B9EC0(void)
} }
} }
static void sub_81BA040(void) static void GenerateOpponentMons(void)
{ {
u16 trainerId; u16 trainerId;
s32 i, j, k; s32 i, j, k;
register const u16 *monSets asm("r9"); // Fix me. Compiler insists on moving that variable into stack. register const u16 *monSets asm("r9"); // Fix me. Compiler insists on moving that variable into stack.
u16 species[3]; u16 species[FRONTIER_PARTY_SIZE];
u16 heldItems[3]; u16 heldItems[FRONTIER_PARTY_SIZE];
s32 setsCount = 0; s32 setsCount = 0;
gFacilityTrainers = gSlateportBattleTentTrainers; gFacilityTrainers = gSlateportBattleTentTrainers;
@@ -375,7 +386,7 @@ static void sub_81BA040(void)
monSets = gFacilityTrainers[gTrainerBattleOpponent_A].monSets; monSets = gFacilityTrainers[gTrainerBattleOpponent_A].monSets;
i = 0; i = 0;
while (i != 3) while (i != FRONTIER_PARTY_SIZE)
{ {
sRandMonSetId = monSets[Random() % setsCount]; sRandMonSetId = monSets[Random() % setsCount];
for (j = 0; j < 6; j++) for (j = 0; j < 6; j++)