Document Battle Arena scripts

This commit is contained in:
GriffinR
2019-11-26 17:20:08 -05:00
committed by huderlem
parent 6efa51f8ad
commit 8d870d94c9
25 changed files with 632 additions and 589 deletions
+26 -25
View File
@@ -20,6 +20,7 @@
#include "text.h"
#include "util.h"
#include "constants/songs.h"
#include "constants/battle_arena.h"
#include "constants/battle_string_ids.h"
#include "constants/battle_frontier.h"
#include "constants/frontier_util.h"
@@ -31,7 +32,7 @@
static void InitArenaChallenge(void);
static void GetArenaData(void);
static void SetArenaData(void);
static void sub_81A5AC4(void);
static void SaveArenaChallenge(void);
static void SetArenaRewardItem(void);
static void GiveArenaRewardItem(void);
static void BufferArenaOpponentName(void);
@@ -468,13 +469,13 @@ static const struct CompressedSpriteSheet sBattleArenaJudgementSymbolsSpriteShee
static void (* const sArenaFunctions[])(void) =
{
InitArenaChallenge,
GetArenaData,
SetArenaData,
sub_81A5AC4,
SetArenaRewardItem,
GiveArenaRewardItem,
BufferArenaOpponentName,
[BATTLE_ARENA_FUNC_INIT] = InitArenaChallenge,
[BATTLE_ARENA_FUNC_GET_DATA] = GetArenaData,
[BATTLE_ARENA_FUNC_SET_DATA] = SetArenaData,
[BATTLE_ARENA_FUNC_SAVE] = SaveArenaChallenge,
[BATTLE_ARENA_FUNC_SET_REWARD] = SetArenaRewardItem,
[BATTLE_ARENA_FUNC_GIVE_REWARD] = GiveArenaRewardItem,
[BATTLE_ARENA_FUNC_GET_TRAINER_NAME] = BufferArenaOpponentName,
};
static const u16 sShortStreakRewardItems[] =
@@ -563,8 +564,8 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
break;
case 4:
PlaySE(SE_HANTEI1);
ShowJudgmentSprite(80, 40, 0, 0);
ShowJudgmentSprite(160, 40, 0, 1);
ShowJudgmentSprite(80, 40, ARENA_CATEGORY_MIND, B_POSITION_PLAYER_LEFT);
ShowJudgmentSprite(160, 40, ARENA_CATEGORY_MIND, B_POSITION_OPPONENT_LEFT);
BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement);
BattlePutTextOnWindow(gDisplayedStringBattle, 21);
(*state)++;
@@ -572,8 +573,8 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
break;
case 5:
PlaySE(SE_HANTEI1);
ShowJudgmentSprite(80, 56, 1, 0);
ShowJudgmentSprite(160, 56, 1, 1);
ShowJudgmentSprite(80, 56, ARENA_CATEGORY_SKILL, B_POSITION_PLAYER_LEFT);
ShowJudgmentSprite(160, 56, ARENA_CATEGORY_SKILL, B_POSITION_OPPONENT_LEFT);
BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement);
BattlePutTextOnWindow(gDisplayedStringBattle, 21);
(*state)++;
@@ -581,8 +582,8 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
break;
case 6:
PlaySE(SE_HANTEI1);
ShowJudgmentSprite(80, 72, 2, 0);
ShowJudgmentSprite(160, 72, 2, 1);
ShowJudgmentSprite(80, 72, ARENA_CATEGORY_BODY, B_POSITION_PLAYER_LEFT);
ShowJudgmentSprite(160, 72, ARENA_CATEGORY_BODY, B_POSITION_OPPONENT_LEFT);
BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement);
BattlePutTextOnWindow(gDisplayedStringBattle, 21);
(*state)++;
@@ -642,15 +643,15 @@ static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler)
switch (category)
{
case 0:
case ARENA_CATEGORY_MIND:
pointsPlayer = mindPoints[battler];
pointsOpponent = mindPoints[BATTLE_OPPOSITE(battler)];
break;
case 1:
case ARENA_CATEGORY_SKILL:
pointsPlayer = skillPoints[battler];
pointsOpponent = skillPoints[BATTLE_OPPOSITE(battler)];
break;
case 2:
case ARENA_CATEGORY_BODY:
pointsPlayer = (gBattleMons[battler].hp * 100) / hpAtStart[battler];
pointsOpponent = (gBattleMons[BATTLE_OPPOSITE(battler)].hp * 100) / hpAtStart[BATTLE_OPPOSITE(battler)];
break;
@@ -809,13 +810,13 @@ static void GetArenaData(void)
switch (gSpecialVar_0x8005)
{
case 0:
case ARENA_DATA_REWARD:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.arenaRewardItem;
break;
case 1:
case ARENA_DATA_WIN_STREAK:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode];
break;
case 2:
case ARENA_DATA_WIN_STREAK_ACTIVE:
if (lvlMode != FRONTIER_LVL_50)
gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_ARENA_OPEN;
else
@@ -830,13 +831,13 @@ static void SetArenaData(void)
switch (gSpecialVar_0x8005)
{
case 0:
case ARENA_DATA_REWARD:
gSaveBlock2Ptr->frontier.arenaRewardItem = gSpecialVar_0x8006;
break;
case 1:
case ARENA_DATA_WIN_STREAK:
gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] = gSpecialVar_0x8006;
break;
case 2:
case ARENA_DATA_WIN_STREAK_ACTIVE:
if (lvlMode != FRONTIER_LVL_50)
{
if (gSpecialVar_0x8006)
@@ -855,7 +856,7 @@ static void SetArenaData(void)
}
}
static void sub_81A5AC4(void)
static void SaveArenaChallenge(void)
{
gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005;
VarSet(VAR_TEMP_0, 0);
@@ -878,7 +879,7 @@ static void GiveArenaRewardItem(void)
if (AddBagItem(gSaveBlock2Ptr->frontier.arenaRewardItem, 1) == TRUE)
{
CopyItemName(gSaveBlock2Ptr->frontier.arenaRewardItem, gStringVar1);
gSaveBlock2Ptr->frontier.arenaRewardItem = 0;
gSaveBlock2Ptr->frontier.arenaRewardItem = ITEM_NONE;
gSpecialVar_Result = TRUE;
}
else