diff options
Diffstat (limited to 'asm')
-rwxr-xr-x | asm/berry_crush.s | 36 | ||||
-rw-r--r-- | asm/macros/battle_frontier/apprentice.inc | 31 | ||||
-rw-r--r-- | asm/macros/battle_frontier/battle_arena.inc | 82 | ||||
-rw-r--r-- | asm/macros/battle_frontier/battle_dome.inc | 147 | ||||
-rw-r--r-- | asm/macros/battle_frontier/battle_factory.inc | 104 | ||||
-rw-r--r-- | asm/macros/battle_frontier/battle_palace.inc | 68 | ||||
-rw-r--r-- | asm/macros/battle_frontier/battle_pike.inc | 151 | ||||
-rw-r--r-- | asm/macros/battle_frontier/battle_pyramid.inc | 98 | ||||
-rw-r--r-- | asm/macros/battle_frontier/battle_tower.inc | 63 | ||||
-rw-r--r-- | asm/macros/battle_tent.inc | 168 | ||||
-rw-r--r-- | asm/macros/trainer_hill.inc | 20 |
11 files changed, 873 insertions, 95 deletions
diff --git a/asm/berry_crush.s b/asm/berry_crush.s index b6d07662e..cd70df741 100755 --- a/asm/berry_crush.s +++ b/asm/berry_crush.s @@ -296,7 +296,7 @@ _08021C5E: lsrs r2, 24 mov r1, r10 lsrs r3, r1, 24 - ldr r1, =gUnknown_082F32D8 + ldr r1, =sBerryCrushTextColors1 str r1, [sp] movs r4, 0 str r4, [sp, 0x4] @@ -338,7 +338,7 @@ _08021CC8: ldrb r0, [r0] mov r4, r10 lsrs r3, r4, 24 - ldr r1, =gUnknown_082F32D8 + ldr r1, =sBerryCrushTextColors1 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] @@ -402,7 +402,7 @@ sub_8021D34: @ 8021D34 ldrh r1, [r2, 0x4] bl sub_8021944 ldrb r0, [r4] - ldr r4, =gUnknown_082F32D8 + ldr r4, =sBerryCrushTextColors1 str r4, [sp] str r6, [sp, 0x4] ldr r1, =gText_TimeColon @@ -423,7 +423,7 @@ sub_8021D34: @ 8021D34 lsrs r6, r0, 24 mov r2, r9 ldrb r0, [r2] - ldr r1, =gUnknown_082F32D8 + ldr r1, =sBerryCrushTextColors1 str r1, [sp] mov r2, r10 str r2, [sp, 0x4] @@ -464,7 +464,7 @@ sub_8021D34: @ 8021D34 lsrs r6, r0, 24 mov r4, r9 ldrb r0, [r4] - ldr r1, =gUnknown_082F32D8 + ldr r1, =sBerryCrushTextColors1 str r1, [sp] mov r2, r10 str r2, [sp, 0x4] @@ -484,7 +484,7 @@ sub_8021D34: @ 8021D34 lsrs r6, r0, 24 mov r1, r9 ldrb r0, [r1] - ldr r2, =gUnknown_082F32D8 + ldr r2, =sBerryCrushTextColors1 str r2, [sp] mov r1, r10 str r1, [sp, 0x4] @@ -515,7 +515,7 @@ sub_8021D34: @ 8021D34 lsrs r6, r0, 24 mov r4, r9 ldrb r0, [r4] - ldr r1, =gUnknown_082F32D8 + ldr r1, =sBerryCrushTextColors1 str r1, [sp] mov r2, r10 str r2, [sp, 0x4] @@ -529,7 +529,7 @@ sub_8021D34: @ 8021D34 lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r4] - ldr r4, =gUnknown_082F32D8 + ldr r4, =sBerryCrushTextColors1 str r4, [sp] mov r1, r10 str r1, [sp, 0x4] @@ -552,7 +552,7 @@ sub_8021D34: @ 8021D34 lsrs r6, r0, 24 mov r1, r9 ldrb r0, [r1] - ldr r2, =gUnknown_082F32D8 + ldr r2, =sBerryCrushTextColors1 str r2, [sp] mov r1, r10 str r1, [sp, 0x4] @@ -633,7 +633,7 @@ _08021F0A: lsls r0, 1 add r0, r8 ldrb r0, [r0] - ldr r1, =gUnknown_082F32E7 + ldr r1, =sBerryCrushTextColors4 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] @@ -649,7 +649,7 @@ _08021FC4: lsls r0, 1 add r0, r8 ldrb r0, [r0] - ldr r1, =gUnknown_082F32D8 + ldr r1, =sBerryCrushTextColors1 str r1, [sp] str r2, [sp, 0x4] str r4, [sp, 0x8] @@ -667,7 +667,7 @@ _08021FDE: add r8, r4 mov r1, r8 ldrb r0, [r1] - ldr r2, =gUnknown_082F32D8 + ldr r2, =sBerryCrushTextColors1 mov r9, r2 str r2, [sp] movs r5, 0 @@ -1019,7 +1019,7 @@ _080222D0: lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r6, 0x2] - ldr r5, =gUnknown_082F32E1 + ldr r5, =sBerryCrushTextColorTable str r5, [sp] mov r1, r9 str r1, [sp, 0x4] @@ -1062,7 +1062,7 @@ _08022336: ldr r1, =gText_Var1Players bl StringExpandPlaceholders ldrb r0, [r6, 0x2] - ldr r1, =gUnknown_082F32D8 + ldr r1, =sBerryCrushTextColors1 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] @@ -1082,7 +1082,7 @@ _08022336: lsls r1, 24 lsrs r7, r1, 24 ldrb r0, [r6, 0x2] - ldr r1, =gUnknown_082F32D8 + ldr r1, =sBerryCrushTextColors1 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] @@ -1155,7 +1155,7 @@ _080223CA: lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r6, 0x2] - ldr r1, =gUnknown_082F32D8 + ldr r1, =sBerryCrushTextColors1 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] @@ -1405,7 +1405,7 @@ _08022616: mov r1, r8 str r1, [sp] str r1, [sp, 0x4] - ldr r1, =gUnknown_082F32DB + ldr r1, =sBerryCrushTextColors2 str r1, [sp, 0x8] mov r1, r8 str r1, [sp, 0xC] @@ -1432,7 +1432,7 @@ _08022668: mov r1, r8 str r1, [sp] str r1, [sp, 0x4] - ldr r1, =gUnknown_082F32DE + ldr r1, =sBerryCrushTextColors3 str r1, [sp, 0x8] mov r1, r8 str r1, [sp, 0xC] diff --git a/asm/macros/battle_frontier/apprentice.inc b/asm/macros/battle_frontier/apprentice.inc index e9b098a18..5d9ab8e3b 100644 --- a/asm/macros/battle_frontier/apprentice.inc +++ b/asm/macros/battle_frontier/apprentice.inc @@ -1,22 +1,24 @@ -@ TODO: These need to have description comment - + @ TRUE if the player has talked to the Apprentice and answered their level mode question .macro apprentice_gavelvlmode setvar VAR_0x8004, APPRENTICE_FUNC_GAVE_LVLMODE special CallApprenticeFunction .endm + @ Set the level mode the Apprentice should battle in .macro apprentice_setlvlmode lvlmode:req setvar VAR_0x8004, APPRENTICE_FUNC_SET_LVLMODE setorcopyvar VAR_0x8005, \lvlmode - addvar VAR_0x8005, 1 + addvar VAR_0x8005, 1 @ Apprentice lvl mode is +1 from regular lvl mode value special CallApprenticeFunction .endm + @ Question was answered, increment the number of questions answered .macro apprentice_answeredquestion setvar VAR_0x8004, APPRENTICE_FUNC_ANSWERED_QUESTION special CallApprenticeFunction .endm + @ Show the response selection box to answer the Apprentice question. Menus are defined as APPRENTICE_ASK_* .macro apprentice_menu which:req setvar VAR_0x8004, APPRENTICE_FUNC_MENU setvar VAR_0x8005, \which @@ -24,16 +26,19 @@ waitstate .endm + @ Shuffle and set the Apprentice party mons to pick between from their list of possible party species .macro apprentice_shufflespecies setvar VAR_0x8004, APPRENTICE_FUNC_SHUFFLE_SPECIES special CallApprenticeFunction .endm + @ Randomize the question data (e.g. moves to pick between) and shuffle the order to ask them in .macro apprentice_randomizequestions setvar VAR_0x8004, APPRENTICE_FUNC_RANDOMIZE_QUESTIONS special CallApprenticeFunction .endm + @ Print the APPRENTICE_MSG_* text for the current Apprentice .macro apprentice_msg waitbuttonpress:req, which:req setvar VAR_0x8004, APPRENTICE_FUNC_PRINT_MSG setvar VAR_0x8005, \waitbuttonpress @@ -42,46 +47,54 @@ waitstate .endm + @ Clear the data for the current Player Apprentice .macro apprentice_reset setvar VAR_0x8004, APPRENTICE_FUNC_RESET special CallApprenticeFunction .endm + @ Always returns TRUE. No side effect. May have been for debug or dummied for some other reason .macro apprentice_shouldcheckgone setvar VAR_0x8004, APPRENTICE_FUNC_CHECK_GONE special CallApprenticeFunction .endm + @ Return the APPRENTICE_QUESTION_* value for the current question to ask .macro apprentice_getquestion setvar VAR_0x8004, APPRENTICE_FUNC_GET_QUESTION special CallApprenticeFunction .endm + @ Get the number of mons that have been chosen for the Apprentice's party so far .macro apprentice_getnumpartymons setvar VAR_0x8004, APPRENTICE_FUNC_GET_NUM_PARTY_MONS special CallApprenticeFunction .endm + @ Set the Apprentice party mon at the given slot. VAR_0x8005 is used implicitly as which of the 2 mons was selected .macro apprentice_setpartymon slot:req copyvar VAR_0x8006, \slot setvar VAR_0x8004, APPRENTICE_FUNC_SET_PARTY_MON special CallApprenticeFunction .endm + @ Allocate and set up data to track about the question .macro apprentice_initquestion which:req setvar VAR_0x8004, APPRENTICE_FUNC_INIT_QUESTION_DATA setvar VAR_0x8005, \which special CallApprenticeFunction .endm + @ Free allocated question data .macro apprentice_freequestion setvar VAR_0x8004, APPRENTICE_FUNC_FREE_QUESTION_DATA special CallApprenticeFunction .endm - .macro apprentice_buff whichstringvar:req, tobuff:req + @ Buffer some APPRENTICE_BUFF_* string to the given stringvar (0 for STR_VAR_1, 1 for STR_VAR_2, 2 for STR_VAR_3) + .macro apprentice_buff stringvar:req, tobuff:req setvar VAR_0x8004, APPRENTICE_FUNC_BUFFER_STRING - setvar VAR_0x8005, \whichstringvar + setvar VAR_0x8005, \stringvar .if \tobuff >= VARS_START copyvar VAR_0x8006, \tobuff .else @@ -90,43 +103,51 @@ special CallApprenticeFunction .endm + @ Set which move to use that the player chose (implicitly VAR_0x8005) .macro apprentice_setmove setvar VAR_0x8004, APPRENTICE_FUNC_SET_MOVE special CallApprenticeFunction .endm + @ Set which mon the Apprentice should lead with .macro apprentice_setleadmon monId:req copyvar VAR_0x8005, \monId setvar VAR_0x8004, APPRENTICE_FUNC_SET_LEAD_MON special CallApprenticeFunction .endm + @ Open the Bag Menu for the player to choose an item to recommend as a held item .macro apprentice_openbag setvar VAR_0x8004, APPRENTICE_FUNC_OPEN_BAG special CallApprenticeFunction waitstate .endm + @ Try and set the recommended held item. FALSE if the item has been recommended before, as Battle Frontier forbids using the same held item for multiple party mons .macro apprentice_trysetitem setvar VAR_0x8004, APPRENTICE_FUNC_TRY_SET_HELD_ITEM special CallApprenticeFunction .endm + @ Save the current Player Apprentice to the saveblock to make room for a new Apprentice .macro apprentice_save setvar VAR_0x8004, APPRENTICE_FUNC_SAVE special CallApprenticeFunction .endm + @ Set the object event gfx for the Apprentice based on their trainer class .macro apprentice_setgfx setvar VAR_0x8004, APPRENTICE_FUNC_SET_GFX special CallApprenticeFunction .endm + @ Always returns TRUE. No side effect. May have been for debug or dummied for some other reason .macro apprentice_shouldleave setvar VAR_0x8004, APPRENTICE_FUNC_SHOULD_LEAVE special CallApprenticeFunction .endm + @ Shift the other saved Apprentices over to make room for saving a new Apprentice .macro apprentice_shiftsaved setvar VAR_0x8004, APPRENTICE_FUNC_SHIFT_SAVED special CallApprenticeFunction diff --git a/asm/macros/battle_frontier/battle_arena.inc b/asm/macros/battle_frontier/battle_arena.inc index 1c32de981..8280f5845 100644 --- a/asm/macros/battle_frontier/battle_arena.inc +++ b/asm/macros/battle_frontier/battle_arena.inc @@ -1,45 +1,49 @@ - @ Initialize the Battle Arena challenge - .macro arena_init - setvar VAR_0x8004, BATTLE_ARENA_FUNC_INIT - special CallBattleArenaFunction - .endm + @ Initialize the Battle Arena challenge + .macro arena_init + setvar VAR_0x8004, BATTLE_ARENA_FUNC_INIT + special CallBattleArenaFunction + .endm - @ Unused. Get the value of some ARENA_DATA_*. See GetArenaData for the data types that can be retrieved - .macro arena_get data:req - setvar VAR_0x8004, BATTLE_ARENA_FUNC_GET_DATA - setvar VAR_0x8005, \data - special CallBattleArenaFunction - .endm + @ Unused. Get the value of some ARENA_DATA_*. See GetArenaData for the data types that can be retrieved + .macro arena_get data:req + setvar VAR_0x8004, BATTLE_ARENA_FUNC_GET_DATA + setvar VAR_0x8005, \data + special CallBattleArenaFunction + .endm - @ Set some ARENA_DATA_* to val. See SetArenaData for the data types that can be set - .macro arena_set data:req, val:req - setvar VAR_0x8004, BATTLE_ARENA_FUNC_SET_DATA - setvar VAR_0x8005, \data - setvar VAR_0x8006, \val - special CallBattleArenaFunction - .endm + @ Set some ARENA_DATA_* to val. See SetArenaData for the data types that can be set + .macro arena_set data:req, val:req + setvar VAR_0x8004, BATTLE_ARENA_FUNC_SET_DATA + setvar VAR_0x8005, \data + .if \val >= VARS_START + copyvar VAR_0x8006, \val + .else + setvar VAR_0x8006, \val + .endif + special CallBattleArenaFunction + .endm - @ Save the game and set the challenge status - .macro arena_save challengeStatus:req - setvar VAR_0x8004, BATTLE_ARENA_FUNC_SAVE - setvar VAR_0x8005, \challengeStatus - special CallBattleArenaFunction - .endm + @ Save the game and set the challenge status + .macro arena_save challengeStatus:req + setvar VAR_0x8004, BATTLE_ARENA_FUNC_SAVE + setvar VAR_0x8005, \challengeStatus + special CallBattleArenaFunction + .endm - @ Unused. Set the reward item to give from one of two lists of possible awards, depending on streak. - .macro arena_setreward - setvar VAR_0x8004, BATTLE_ARENA_FUNC_SET_REWARD - special CallBattleArenaFunction - .endm + @ Unused. Set the prize item to give from one of two lists of possible prizes, depending on streak. + .macro arena_setprize + setvar VAR_0x8004, BATTLE_ARENA_FUNC_SET_PRIZE + special CallBattleArenaFunction + .endm - @ Unused. Give the set award item to the player. TRUE if room in Bag for award, FALSE otherwise - .macro arena_givereward - setvar VAR_0x8004, BATTLE_ARENA_FUNC_GIVE_REWARD - special CallBattleArenaFunction - .endm + @ Unused. Give the set prize item to the player. TRUE if room in Bag for prize, FALSE otherwise + .macro arena_giveprize + setvar VAR_0x8004, BATTLE_ARENA_FUNC_GIVE_PRIZE + special CallBattleArenaFunction + .endm - @ Buffer the opponents name to STR_VAR_1 - .macro arena_gettrainername - setvar VAR_0x8004, BATTLE_ARENA_FUNC_GET_TRAINER_NAME - special CallBattleArenaFunction - .endm + @ Buffer the opponents name to STR_VAR_1 + .macro arena_gettrainername + setvar VAR_0x8004, BATTLE_ARENA_FUNC_GET_TRAINER_NAME + special CallBattleArenaFunction + .endm diff --git a/asm/macros/battle_frontier/battle_dome.inc b/asm/macros/battle_frontier/battle_dome.inc index 12672ea37..882c82e8b 100644 --- a/asm/macros/battle_frontier/battle_dome.inc +++ b/asm/macros/battle_frontier/battle_dome.inc @@ -1 +1,146 @@ -@ To be populated with macros for CallBattleDomeFunction +@ TODO: Add explanatory comments to macros + + @ Initialize the Battle Dome challenge + .macro dome_init + setvar VAR_0x8004, BATTLE_DOME_FUNC_INIT + special CallBattleDomeFunction + .endm + + @ Get the value of some DOME_DATA_*. See GetDomeData for the data types that can be retrieved + .macro dome_get data:req + setvar VAR_0x8004, BATTLE_DOME_FUNC_GET_DATA + setvar VAR_0x8005, \data + special CallBattleDomeFunction + .endm + + @ Set some DOME_DATA_* to val. See SetDomeData for the data types that can be set + .macro dome_set data:req, val=0xFFFF + setvar VAR_0x8004, BATTLE_DOME_FUNC_SET_DATA + setvar VAR_0x8005, \data + .if \val != 0xFFFF + setvar VAR_0x8006, \val + .endif + special CallBattleDomeFunction + .endm + + @ + .macro dome_getroundtext + setvar VAR_0x8004, BATTLE_DOME_FUNC_GET_ROUND_TEXT + special CallBattleDomeFunction + .endm + + @ + .macro dome_getopponentname + setvar VAR_0x8004, BATTLE_DOME_FUNC_GET_OPPONENT_NAME + special CallBattleDomeFunction + .endm + + @ + .macro dome_initopponentparty + setvar VAR_0x8004, BATTLE_DOME_FUNC_INIT_OPPONENT_PARTY + special CallBattleDomeFunction + .endm + + @ + .macro dome_showopponentinfo + setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_OPPONENT_INFO + special CallBattleDomeFunction + .endm + + @ + .macro dome_showtourneytree + setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_TOURNEY_TREE + special CallBattleDomeFunction + .endm + + @ + .macro dome_showresultstree + setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_PREV_RESULTS_TREE + special CallBattleDomeFunction + .endm + + @ + .macro dome_setopponent + setvar VAR_0x8004, BATTLE_DOME_FUNC_SET_OPPONENT_ID + special CallBattleDomeFunction + .endm + + @ + .macro dome_setopponentgfx + setvar VAR_0x8004, BATTLE_DOME_FUNC_SET_OPPONENT_GFX + special CallBattleDomeFunction + .endm + + @ + .macro dome_showstatictourneytree + setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_STATIC_TOURNEY_TREE + special CallBattleDomeFunction + .endm + + @ + .macro dome_resolvewinners arg:req + setvar VAR_0x8004, BATTLE_DOME_FUNC_RESOLVE_WINNERS + setvar VAR_0x8005, \arg + special CallBattleDomeFunction + .endm + + @ Save the game and set the challenge status + .macro dome_save challengeStatus:req + setvar VAR_0x8004, BATTLE_DOME_FUNC_SAVE + setvar VAR_0x8005, \challengeStatus + special CallBattleDomeFunction + .endm + + @ Unused. Increment the win streaks for the current challenge by one + .macro dome_incrementstreaks + setvar VAR_0x8004, BATTLE_DOME_FUNC_INCREMENT_STREAK + special CallBattleDomeFunction + .endm + + @ + .macro dome_settrainers + setvar VAR_0x8004, BATTLE_DOME_FUNC_SET_TRAINERS + special CallBattleDomeFunction + .endm + + @ If any moves were copied using Sketch during the challenge then restore them to Sketch + .macro dome_resetsketch + setvar VAR_0x8004, BATTLE_DOME_FUNC_RESET_SKETCH + special CallBattleDomeFunction + .endm + + @ + .macro dome_restorehelditems + setvar VAR_0x8004, BATTLE_DOME_FUNC_RESTORE_HELD_ITEMS + special CallBattleDomeFunction + .endm + + @ + .macro dome_reduceparty + setvar VAR_0x8004, BATTLE_DOME_FUNC_REDUCE_PARTY + special CallBattleDomeFunction + .endm + + @ + .macro dome_compareseeds + setvar VAR_0x8004, BATTLE_DOME_FUNC_COMPARE_SEEDS + special CallBattleDomeFunction + .endm + + @ Buffer the name of the winner for the last Dome challenge to STR_VAR_1 + .macro dome_getwinnersname + setvar VAR_0x8004, BATTLE_DOME_FUNC_GET_WINNER_NAME + special CallBattleDomeFunction + .endm + + @ TODO: Document this macro and its function + .macro dome_21 + setvar VAR_0x8004, BATTLE_DOME_FUNC_21 + special CallBattleDomeFunction + .endm + + @ + .macro dome_inittrainers + setvar VAR_0x8004, BATTLE_DOME_FUNC_INIT_TRAINERS + special CallBattleDomeFunction + .endm diff --git a/asm/macros/battle_frontier/battle_factory.inc b/asm/macros/battle_frontier/battle_factory.inc index 9a8879df8..5a1eb33b7 100644 --- a/asm/macros/battle_frontier/battle_factory.inc +++ b/asm/macros/battle_frontier/battle_factory.inc @@ -1 +1,103 @@ -@ To be populated with macros for CallBattleFactoryFunction +@ TODO: Add explanatory comments to macros + + @ Initialize the Battle Factory challenge + .macro factory_init + setvar VAR_0x8004, BATTLE_FACTORY_FUNC_INIT + special CallBattleFactoryFunction + .endm + + @ Get the value of some FACTORY_DATA_*. See GetBattleFactoryData for the data types that can be retrieved + .macro factory_get data:req + setvar VAR_0x8004, BATTLE_FACTORY_FUNC_GET_DATA + setvar VAR_0x8005, \data + special CallBattleFactoryFunction + .endm + + @ Set some FACTORY_DATA_* to val. See SetBattleFactoryData for the data types that can be set + .macro factory_set data:req, val=0xFFFF + setvar VAR_0x8004, BATTLE_FACTORY_FUNC_SET_DATA + setvar VAR_0x8005, \data + .if \val == 0xFFFF + @ argument not provided + .elseif \val >= VARS_START + copyvar VAR_0x8006, \val + .else + setvar VAR_0x8006, \val + .endif + special CallBattleFactoryFunction + .endm + + @ Save the game and set the challenge status + .macro factory_save challengeStatus:req + setvar VAR_0x8004, BATTLE_FACTORY_FUNC_SAVE + setvar VAR_0x8005, \challengeStatus + special CallBattleFactoryFunction + .endm + + @ + .macro factory_rentmons + setvar VAR_0x8004, BATTLE_FACTORY_FUNC_SELECT_RENT_MONS + special CallBattleFactoryFunction + .endm + + @ + .macro factory_swapmons + setvar VAR_0x8004, BATTLE_FACTORY_FUNC_SWAP_RENT_MONS + special CallBattleFactoryFunction + .endm + + @ + .macro factory_setswapped + setvar VAR_0x8004, BATTLE_FACTORY_FUNC_SET_SWAPPED + special CallBattleFactoryFunction + .endm + + @ + .macro factory_setopponentmons + setvar VAR_0x8004, BATTLE_FACTORY_FUNC_SET_OPPONENT_MONS + special CallBattleFactoryFunction + .endm + + @ + .macro factory_setparties arg:req + setvar VAR_0x8004, BATTLE_FACTORY_FUNC_SET_PARTIES + setvar VAR_0x8005, \arg + special CallBattleFactoryFunction + .endm + + @ + .macro factory_setopponentgfx + setvar VAR_0x8004, BATTLE_FACTORY_FUNC_SET_OPPONENT_GFX + special CallBattleFactoryFunction + .endm + + @ + .macro factory_generateopponentmons + setvar VAR_0x8004, BATTLE_FACTORY_FUNC_GENERATE_OPPONENT_MONS + special CallBattleFactoryFunction + .endm + + @ + .macro factory_generaterentalmons + setvar VAR_0x8004, BATTLE_FACTORY_FUNC_GENERATE_RENTAL_MONS + special CallBattleFactoryFunction + .endm + + @ + .macro factory_getopponentmontype + setvar VAR_0x8004, BATTLE_FACTORY_FUNC_GET_OPPONENT_MON_TYPE + special CallBattleFactoryFunction + .endm + + @ + .macro factory_getopponentstyle + setvar VAR_0x8004, BATTLE_FACTORY_FUNC_GET_OPPONENT_STYLE + special CallBattleFactoryFunction + .endm + + @ + .macro factory_resethelditems + setvar VAR_0x8004, BATTLE_FACTORY_FUNC_RESET_HELD_ITEMS + special CallBattleFactoryFunction + .endm + diff --git a/asm/macros/battle_frontier/battle_palace.inc b/asm/macros/battle_frontier/battle_palace.inc index 2b59fd734..f326c1154 100644 --- a/asm/macros/battle_frontier/battle_palace.inc +++ b/asm/macros/battle_frontier/battle_palace.inc @@ -1,7 +1,63 @@ -@ To be populated with macros for CallBattlePalaceFunction + @ Initialize the Battle Palace challenge + .macro palace_init + setvar VAR_0x8004, BATTLE_PALACE_FUNC_INIT + special CallBattlePalaceFunction + .endm - @ Buffer the opponents intro speech to gStringVar4. Also used by Battle Arena and Factory - .macro palace_getopponentintro - setvar VAR_0x8004, BATTLE_PALACE_FUNC_GET_OPPONENT_INTRO - special CallBattlePalaceFunction - .endm + @ Get the value of some PALACE_DATA_*. See GetPalaceData for the data types that can be retrieved + .macro palace_get data:req + setvar VAR_0x8004, BATTLE_PALACE_FUNC_GET_DATA + setvar VAR_0x8005, \data + special CallBattlePalaceFunction + .endm + + @ Set some PALACE_DATA_* to val. See SetPalaceData for the data types that can be set + .macro palace_set data:req, val:req + setvar VAR_0x8004, BATTLE_PALACE_FUNC_SET_DATA + setvar VAR_0x8005, \data + setvar VAR_0x8006, \val + special CallBattlePalaceFunction + .endm + + @ Get the id of the comment to be made while being led through the corridor + .macro palace_getcomment + setvar VAR_0x8004, BATTLE_PALACE_FUNC_GET_COMMENT_ID + special CallBattlePalaceFunction + .endm + + @ Unused. Choose and set the opponent gfx id. The equivalent macro from Battle Tower is used instead + .macro palace_setopponent + setvar VAR_0x8004, BATTLE_PALACE_FUNC_SET_OPPONENT + special CallBattlePalaceFunction + .endm + + @ Buffer the opponents intro speech to gStringVar4. Also used by Battle Arena and Factory + .macro palace_getopponentintro + setvar VAR_0x8004, BATTLE_PALACE_FUNC_GET_OPPONENT_INTRO + special CallBattlePalaceFunction + .endm + + @ Increments the current win streak by 1 + .macro palace_incrementstreak + setvar VAR_0x8004, BATTLE_PALACE_FUNC_INCREMENT_STREAK + special CallBattlePalaceFunction + .endm + + @ Save the game and set the challenge status + .macro palace_save challengeStatus:req + setvar VAR_0x8004, BATTLE_PALACE_FUNC_SAVE + setvar VAR_0x8005, \challengeStatus + special CallBattlePalaceFunction + .endm + + @ Unused. Set the prize item to give from one of two lists of possible prizes, depending on streak. + .macro palace_setprize + setvar VAR_0x8004, BATTLE_PALACE_FUNC_SET_PRIZE + special CallBattleArenaFunction + .endm + + @ Unused. Give the set prize item to the player. TRUE if room in Bag for prize, FALSE otherwise + .macro palace_giveprize + setvar VAR_0x8004, BATTLE_PALACE_FUNC_GIVE_PRIZE + special CallBattleArenaFunction + .endm diff --git a/asm/macros/battle_frontier/battle_pike.inc b/asm/macros/battle_frontier/battle_pike.inc index 0f2d2627d..30f5c88d8 100644 --- a/asm/macros/battle_frontier/battle_pike.inc +++ b/asm/macros/battle_frontier/battle_pike.inc @@ -1,54 +1,171 @@ -@ To be populated with macros for CallBattlePikeFunction + @ Set sRoomType to the next PIKE_ROOM_* id + .macro pike_setnextroom + setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_TYPE + special CallBattlePikeFunction + .endm - .macro battlepike_getstreak + @ Get the value of some PIKE_DATA_*. See GetBattlePikeData for the data types that can be retrieved + .macro pike_get data:req setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_DATA - setvar VAR_0x8005, 1 + setvar VAR_0x8005, \data special CallBattlePikeFunction .endm - .macro battlepike_setstreak streak:req + @ Set some PIKE_DATA_* to val. See SetBattlePikeData for the data types that can be set + .macro pike_set data:req, val:req setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA - setvar VAR_0x8005, 1 - .if \streak >= VARS_START - copyvar VAR_0x8006, \streak + setvar VAR_0x8005, \data + .if \val >= VARS_START + copyvar VAR_0x8006, \val .else - setvar VAR_0x8006, \streak + setvar VAR_0x8006, \val .endif special CallBattlePikeFunction .endm - .macro battlepike_isfinalroom + @ TRUE if the next room is the last (15th) room, FALSE otherwise + .macro pike_isfinalroom setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_FINAL_ROOM special CallBattlePikeFunction .endm - .macro battlepike_setroomobjects + @ Set the object event gfx for the room being entered + .macro pike_setroomobjects setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_OBJECTS special CallBattlePikeFunction .endm - .macro battlepike_getroomtype + @ Get the current room type (sRoomType) + .macro pike_getroomtype setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE special CallBattlePikeFunction .endm - .macro battlepike_setnextroom - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_TYPE + @ Sets a bool that's never read + .macro pike_inwildmonroom + setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_IN_WILD_MON_ROOM + special CallBattlePikeFunction + .endm + + @ Clears a bool that's never read + .macro pike_exitwildmonroom + setvar VAR_0x8004, BATTLE_PIKE_FUNC_CLEAR_IN_WILD_MON_ROOM + special CallBattlePikeFunction + .endm + + @ Save the game and set the challenge status + .macro pike_save challengeStatus:req + setvar VAR_0x8004, BATTLE_PIKE_FUNC_SAVE + setvar VAR_0x8005, \challengeStatus + special CallBattlePikeFunction + .endm + + @ Returns the PIKE_STATUS_* to be afflicted for the status room + .macro pike_getstatus + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_STATUS + special CallBattlePikeFunction + .endm + + @ Returns the PIKE_STATUSMON_* that attacks the player for the status room + .macro pike_getstatusmon + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_STATUS_MON + special CallBattlePikeFunction + .endm + + @ Randomly heals either one or two party mons and returns the number of mons healed + .macro pike_healonetwomons + setvar VAR_0x8004, BATTLE_PIKE_FUNC_HEAL_ONE_TWO_MONS + special CallBattlePikeFunction + .endm + + @ Buffers a message for the lone NPC in the NPC room to gStringVar4 + .macro pike_getnpcmsg + setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_NPC_MSG + special CallBattlePikeFunction + .endm + + @ Flashes the screen 3 times for when the Dusclops/Kirlia attacks the player + .macro pike_flashscreen + setvar VAR_0x8004, BATTLE_PIKE_FUNC_STATUS_SCREEN_FLASH + special CallBattlePikeFunction + .endm + + @ TRUE if the player is currently in a Battle Pike challenge map + .macro pike_inchallenge + setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_IN special CallBattlePikeFunction .endm - .macro battlepike_gethint + @ Set which room to give a hint about. TRUE if its the Pike Queens room next + .macro pike_sethintroom + setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_HINT_ROOM + special CallBattlePikeFunction + .endm + + @ Get PIKE_ROOM_(LEFT/CENTER/RIGHT) for which room to give a hint about + .macro pike_gethintroomid + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_HINT_ROOM_ID + special CallBattlePikeFunction + .endm + + @ Get the PIKE_HINT_* to give about the next room + .macro pike_gethint setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT special CallBattlePikeFunction .endm - .macro battlepike_nohealing set:req - setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_HEALING_ROOMS_DISABLED + @ Reset the frontier trainer ids for the start of the challenge + .macro pike_cleartrainerids + setvar VAR_0x8004, BATTLE_PIKE_FUNC_CLEAR_TRAINER_IDS + special CallBattlePikeFunction + .endm + + @ Buffer the opponents battle intro speech to gStringVar4. \trainer 0 for Trainer A, 1 for Trainer B + .macro pike_gettrainerintro trainer:req + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_TRAINER_INTRO + setvar VAR_0x8005, \trainer + special CallBattlePikeFunction + .endm + + @ Get the status of the Pike Queen (Not ready, Silver/Gold streak before symbols, Silver/Gold streak after symbols) + .macro pike_getbrainstatus + setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_QUEEN_FIGHT_TYPE + special CallBattlePikeFunction + .endm + + @ Heal 0-2 party mons depending on which room was chosen for the Pike Queen battle. Return the number healed + .macro pike_prequeenheal + setvar VAR_0x8004, BATTLE_PIKE_FUNC_HEAL_MONS_BEFORE_QUEEN + special CallBattlePikeFunction + .endm + + @ When \set is TRUE, prevent healing rooms from appearing (for 1st room or when party is full health). \set FALSE to re-enable healing rooms + .macro pike_nohealing set:req + setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_HEAL_ROOMS_DISABLED setvar VAR_0x8005, \set special CallBattlePikeFunction .endm - .macro battlepike_ispartyfullhealth + @ TRUE if the party is full health (full HP, PP, and no status), FALSE otherwise + .macro pike_ispartyfullhealth setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_PARTY_FULL_HEALTH special CallBattlePikeFunction .endm + + @ Save the party held items in pikeHeldItemsBackup + .macro pike_savehelditems + setvar VAR_0x8004, BATTLE_PIKE_FUNC_SAVE_HELD_ITEMS + special CallBattlePikeFunction + .endm + + @ Restore the party held items from pikeHeldItemsBackup + .macro pike_resethelditems + setvar VAR_0x8004, BATTLE_PIKE_FUNC_RESET_HELD_ITEMS + special CallBattlePikeFunction + .endm + + @ Initialize the Battle Pike challenge + .macro pike_init + setvar VAR_0x8004, BATTLE_PIKE_FUNC_INIT + special CallBattlePikeFunction + .endm diff --git a/asm/macros/battle_frontier/battle_pyramid.inc b/asm/macros/battle_frontier/battle_pyramid.inc index e23a819c0..0468e5956 100644 --- a/asm/macros/battle_frontier/battle_pyramid.inc +++ b/asm/macros/battle_frontier/battle_pyramid.inc @@ -1 +1,97 @@ -@ To be populated with macros for CallBattlePyramidFunction +@ TODO: Add explanatory comments to macros + + @ Initialize the Battle Pyramid challenge + .macro pyramid_init + setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_INIT + special CallBattlePyramidFunction + .endm + + @ Get the value of some PYRAMID_DATA_*. See GetBattlePyramidData for the data types that can be retrieved + .macro pyramid_get data:req + setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_GET_DATA + setvar VAR_0x8005, \data + special CallBattlePyramidFunction + .endm + + @ Set some PYRAMID_DATA_* to val. See SetBattlePyramidData for the data types that can be set + .macro pyramid_set data:req, val:req + setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SET_DATA + setvar VAR_0x8005, \data + setvar VAR_0x8006, \val + special CallBattlePyramidFunction + .endm + + @ Save the game and set the challenge status + .macro pyramid_save challengeStatus:req + setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SAVE + setvar VAR_0x8005, \challengeStatus + special CallBattlePyramidFunction + .endm + + @ + .macro pyramid_setprize + setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SET_PRIZE + special CallBattlePyramidFunction + .endm + + @ + .macro pyramid_seedfloor + setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SEED_FLOOR + special CallBattlePyramidFunction + .endm + + @ + .macro pyramid_setitem + setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SET_ITEM + special CallBattlePyramidFunction + .endm + + @ + .macro pyramid_hideitem + setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_HIDE_ITEM + special CallBattlePyramidFunction + .endm + + @ + .macro pyramid_inittrainers + setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_INIT_TRAINERS + special CallBattlePyramidFunction + .endm + + @ + .macro pyramid_showhint + setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SHOW_HINT_TEXT + special CallBattlePyramidFunction + .endm + + @ VAR_RESULT is 1 if player is on a Pyramid floor, 2 if on the Pyramid peak, 0 otherwise + .macro pyramid_inchallenge + setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_IS_IN + special CallBattlePyramidFunction + .endm + + @ + .macro pyramid_updatelight radius:req, mode:req + setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_UPDATE_LIGHT + setvar VAR_0x8005, \radius + setvar VAR_0x8006, \mode + special CallBattlePyramidFunction + .endm + + @ + .macro pyramid_clearhelditems + setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_CLEAR_HELD_ITEMS + special CallBattlePyramidFunction + .endm + + @ + .macro pyramid_setfloorpal + setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SET_FLOOR_PALETTE + special CallBattlePyramidFunction + .endm + + @ + .macro pyramid_healparty + setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_RESTORE_PARTY + special CallBattlePyramidFunction + .endm diff --git a/asm/macros/battle_frontier/battle_tower.inc b/asm/macros/battle_frontier/battle_tower.inc index e9f8c9293..d5a02ea21 100644 --- a/asm/macros/battle_frontier/battle_tower.inc +++ b/asm/macros/battle_frontier/battle_tower.inc @@ -1,7 +1,62 @@ -@ To be populated with macros for CallBattleTowerFunc + @ Initialize the Battle Tower challenge + .macro tower_init + setvar VAR_0x8004, BATTLE_TOWER_FUNC_INIT + special CallBattleTowerFunc + .endm + + @ Get the value of some TOWER_DATA_*. See GetTowerData for the data types that can be retrieved + .macro tower_get data:req + setvar VAR_0x8004, BATTLE_TOWER_FUNC_GET_DATA + setvar VAR_0x8005, \data + special CallBattleTowerFunc + .endm + + @ Set some TOWER_DATA_* to val. See SetTowerData for the data types that can be set + .macro tower_set data:req, val=0xFFFF + setvar VAR_0x8004, BATTLE_TOWER_FUNC_SET_DATA + setvar VAR_0x8005, \data + .if \val != 0xFFFF + setvar VAR_0x8006, \val + .endif + special CallBattleTowerFunc + .endm + + @ Choose and set the gfx for the next opponent. Also used by Battle Tents + .macro tower_setopponent + setvar VAR_0x8004, BATTLE_TOWER_FUNC_SET_OPPONENT + special CallBattleTowerFunc + .endm + + @ Increments the battle number and returns the new one. Also clears E-Reader trainer if defeated, and saves the current win streak + .macro tower_setbattlewon + setvar VAR_0x8004, BATTLE_TOWER_FUNC_SET_BATTLE_WON + special CallBattleTowerFunc + .endm + + @ Try to award ribbons for completing 56th straight Battle Tower win. VAR_RESULT is TRUE if ribbons were awarded. + .macro tower_giveribbons + setvar VAR_0x8004, BATTLE_TOWER_FUNC_GIVE_RIBBONS + special CallBattleTowerFunc + .endm + + @ Save the game and set the challenge status + .macro tower_save challengeStatus:req + setvar VAR_0x8004, BATTLE_TOWER_FUNC_SAVE + setvar VAR_0x8005, \challengeStatus + special CallBattleTowerFunc + .endm + + @ Buffer the opponent's easy chat intro speech to STR_VAR_4 + .macro tower_getopponentintro opponent:req + setvar VAR_0x8004, BATTLE_TOWER_FUNC_GET_OPPONENT_INTRO + setvar VAR_0x8005, \opponent + special CallBattleTowerFunc + .endm + + @ TODO: Document and add macros for BATTLE_TOWER_FUNC_10 - BATTLE_TOWER_FUNC_14 - .macro battletower_getstreak - setvar VAR_0x8004, BATTLE_TOWER_FUNC_1 - setvar VAR_0x8005, 1 + @ Set the data used for the post-challenge Battle Tower interview + .macro tower_setinterviewdata + setvar VAR_0x8004, BATTLE_TOWER_FUNC_SET_INTERVIEW_DATA special CallBattleTowerFunc .endm diff --git a/asm/macros/battle_tent.inc b/asm/macros/battle_tent.inc index 9a304475b..663d1d344 100644 --- a/asm/macros/battle_tent.inc +++ b/asm/macros/battle_tent.inc @@ -1 +1,167 @@ -@ To be populated with macros for CallVerdanturfTentFunction, CallFallarborTentFunction, and CallSlateportTentFunction +@ Verdanturf Tent + + @ Initialize the Verdanturf Battle Tent challenge + .macro verdanturftent_init + setvar VAR_0x8004, VERDANTURF_TENT_FUNC_INIT + special CallVerdanturfTentFunction + .endm + + @ Get the current prize item id + .macro verdanturftent_getprize + setvar VAR_0x8004, VERDANTURF_TENT_FUNC_GET_PRIZE + special CallVerdanturfTentFunction + .endm + + @ Unused. Set the prize item to be given + .macro verdanturftent_setprize unusedArg:req, itemId:req + setvar VAR_0x8004, VERDANTURF_TENT_FUNC_SET_PRIZE + setvar VAR_0x8005, \unusedArg + setvar VAR_0x8006, \itemId + special CallVerdanturfTentFunction + .endm + + @ Unused. Set the opponent trainer and gfx. SetNextBattleTentOpponent is used through tower_setopponent instead + .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 + + @ Save the game and set the challenge status + .macro verdanturftent_save challengeStatus:req + setvar VAR_0x8004, VERDANTURF_TENT_FUNC_SAVE + setvar VAR_0x8005, \challengeStatus + special CallVerdanturfTentFunction + .endm + + @ Set the prize item as randomly selected from a list. Randomness unnecessary, as the list is only 1 item + .macro verdanturftent_setrandomprize + setvar VAR_0x8004, VERDANTURF_TENT_FUNC_SET_RANDOM_PRIZE + special CallVerdanturfTentFunction + .endm + + @ Give the current prize item. FALSE if no room for prize + .macro verdanturftent_giveprize + setvar VAR_0x8004, VERDANTURF_TENT_FUNC_GIVE_PRIZE + special CallVerdanturfTentFunction + .endm + + +@ Fallarbor Tent + + @ Initialize the Fallarbor Battle Tent challenge + .macro fallarbortent_init + setvar VAR_0x8004, FALLARBOR_TENT_FUNC_INIT + special CallFallarborTentFunction + .endm + + @ Get the current prize item id + .macro fallarbortent_getprize + setvar VAR_0x8004, FALLARBOR_TENT_FUNC_GET_PRIZE + special CallFallarborTentFunction + .endm + + @ Unused. Set the prize item to be given + .macro fallarbortent_setprize unusedArg:req, itemId:req + setvar VAR_0x8004, FALLARBOR_TENT_FUNC_SET_PRIZE + setvar VAR_0x8005, \unusedArg + setvar VAR_0x8006, \itemId + special CallFallarborTentFunction + .endm + + @ Save the game and set the challenge status + .macro fallarbortent_save challengeStatus:req + setvar VAR_0x8004, FALLARBOR_TENT_FUNC_SAVE + setvar VAR_0x8005, \challengeStatus + special CallFallarborTentFunction + .endm + + @ Set the prize item as randomly selected from a list. Randomness unnecessary, as the list is only 1 item + .macro fallarbortent_setrandomprize + setvar VAR_0x8004, FALLARBOR_TENT_FUNC_SET_RANDOM_PRIZE + special CallFallarborTentFunction + .endm + + @ Give the current prize item. FALSE if no room for prize + .macro fallarbortent_giveprize + setvar VAR_0x8004, FALLARBOR_TENT_FUNC_GIVE_PRIZE + special CallFallarborTentFunction + .endm + + @ Buffer the opponent trainers name to STR_VAR_1 + .macro fallarbortent_getopponentname + setvar VAR_0x8004, FALLARBOR_TENT_FUNC_GET_OPPONENT_NAME + special CallFallarborTentFunction + .endm + + +@ Slateport Tent + + @ Initialize the Slateport Battle Tent challenge + .macro slateporttent_init + setvar VAR_0x8004, SLATEPORT_TENT_FUNC_INIT + special CallSlateportTentFunction + .endm + + @ Get the current prize item id + .macro slateporttent_getprize + setvar VAR_0x8004, SLATEPORT_TENT_FUNC_GET_PRIZE + special CallSlateportTentFunction + .endm + + @ Unused. Set the prize item to be given + .macro slateporttent_setprize unusedArg:req, itemId:req + setvar VAR_0x8004, SLATEPORT_TENT_FUNC_SET_PRIZE + setvar VAR_0x8005, \unusedArg + setvar VAR_0x8006, \itemId + special CallSlateportTentFunction + .endm + + @ Save the game and set the challenge status + .macro slateporttent_save challengeStatus:req + setvar VAR_0x8004, SLATEPORT_TENT_FUNC_SAVE + setvar VAR_0x8005, \challengeStatus + special CallSlateportTentFunction + .endm + + @ Set the prize item as randomly selected from a list. Randomness unnecessary, as the list is only 1 item + .macro slateporttent_setrandomprize + setvar VAR_0x8004, SLATEPORT_TENT_FUNC_SET_RANDOM_PRIZE + special CallSlateportTentFunction + .endm + + @ Give the current prize item. FALSE if no room for prize + .macro slateporttent_giveprize + setvar VAR_0x8004, SLATEPORT_TENT_FUNC_GIVE_PRIZE + special CallSlateportTentFunction + .endm + + @ Slateport Tent's version of factory_rentmons + .macro slateporttent_rentmons + setvar VAR_0x8004, SLATEPORT_TENT_FUNC_SELECT_RENT_MONS + special CallSlateportTentFunction + .endm + + @ Slateport Tent's version of factory_swapmons + .macro slateporttent_swapmons + setvar VAR_0x8004, SLATEPORT_TENT_FUNC_SWAP_RENT_MONS + special CallSlateportTentFunction + .endm + + @ Slateport Tent's version of factory_generateopponentmons + .macro slateporttent_generateopponentmons + setvar VAR_0x8004, SLATEPORT_TENT_FUNC_GENERATE_OPPONENT_MONS + special CallSlateportTentFunction + .endm + + @ Slateport Tent's version of factory_generaterentalmons + .macro slateporttent_generaterentalmons + setvar VAR_0x8004, SLATEPORT_TENT_FUNC_GENERATE_RENTAL_MONS + special CallSlateportTentFunction + .endm + diff --git a/asm/macros/trainer_hill.inc b/asm/macros/trainer_hill.inc index 7ea1c77f6..d5c84fd02 100644 --- a/asm/macros/trainer_hill.inc +++ b/asm/macros/trainer_hill.inc @@ -1,90 +1,106 @@ -@ TODO: These need to have description comment - + @ Initialize the Trainer Hill challenge and start the timer .macro trainerhill_start setvar VAR_0x8004, TRAINER_HILL_FUNC_START special CallTrainerHillFunction .endm + @ 0 if not spoken to yet, 1 if spoken to but not received prize, 2 if received prize .macro trainerhill_getownerstate setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_OWNER_STATE special CallTrainerHillFunction .endm + @ Try to give prize. 0 if given successfully, 1 if no room for prize, 2 if giving prize should be skipped .macro trainerhill_giveprize setvar VAR_0x8004, TRAINER_HILL_FUNC_GIVE_PRIZE special CallTrainerHillFunction .endm + @ Check the final challenge time. 0 if new record, 1 if not, 2 if time has already been checked .macro trainerhill_finaltime setvar VAR_0x8004, TRAINER_HILL_FUNC_CHECK_FINAL_TIME special CallTrainerHillFunction .endm + @ Resume the timer. Wont resume if owner has been spoken to or max time has been reached .macro trainerhill_resumetimer setvar VAR_0x8004, TRAINER_HILL_FUNC_RESUME_TIMER special CallTrainerHillFunction .endm + @ Set player lost the challenge (trainerHill.hasLost) to TRUE .macro trainerhill_lost setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_LOST special CallTrainerHillFunction .endm + @ Get the current challenge status (TRAINER_HILL_PLAYER_STATUS_*) .macro trainerhill_getstatus setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS special CallTrainerHillFunction .endm + @ Buffer the current timer to string vars (mins to STR_VAR_1, secs to STR_VAR_2, fraction of sec to STR_VAR_3) .macro trainerhill_gettime setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_TIME special CallTrainerHillFunction .endm + @ FALSE if fewer than all 4 floors used, TRUE otherwise. Only FALSE in JP-exclusive modes .macro trainerhill_allfloorsused setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED special CallTrainerHillFunction .endm + @ Unknown, dummied. Only side effect is setting VAR_RESULT to 0. .macro trainerhill_clearresult setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_RESULT special CallTrainerHillFunction .endm + @ TRUE if currently in a Trainer Hill challenge .macro trainerhill_inchallenge setvar VAR_0x8004, TRAINER_HILL_FUNC_IN_CHALLENGE special CallTrainerHillFunction .endm + @ Show the post battle text for the spoken to Trainer Hill trainer .macro trainerhill_postbattletext setvar VAR_0x8004, TRAINER_HILL_FUNC_POST_BATTLE_TEXT special CallTrainerHillFunction .endm + @ Set all Trainer Hill trainers defeated .macro trainerhill_settrainerflags setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS special CallTrainerHillFunction .endm + @ TRUE if the game has been saved for the challenge, FALSE otherwise .macro trainerhill_getsaved setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_GAME_SAVED special CallTrainerHillFunction .endm + @ Set that the game has been saved for the challenge .macro trainerhill_setsaved setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_GAME_SAVED special CallTrainerHillFunction .endm + @ Clear that the game has been saved for the challenge .macro trainerhill_clearsaved setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_GAME_SAVED special CallTrainerHillFunction .endm + @ FALSE if the Trainer Hill challenge was lost, TRUE otherwise .macro trainerhill_getwon setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_WON special CallTrainerHillFunction .endm + @ Set the challenge mode to HILL_TAG_* (Normal, Variety, Unique, or Expert) .macro trainerhill_settag tag:req setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_TAG copyvar VAR_0x8005, \tag |