Merge branch 'master' of https://github.com/pret/pokeemerald into doc-contest-bar
This commit is contained in:
@@ -49,7 +49,7 @@ u32 rfu_LMAN_REQBN_softReset_and_checkID(void)
|
||||
return id;
|
||||
}
|
||||
|
||||
void rfu_LMAN_REQ_sendData(u8 clockChangeFlag)
|
||||
void rfu_LMAN_REQ_sendData(bool8 clockChangeFlag)
|
||||
{
|
||||
if (gRfuLinkStatus->parentChild == MODE_CHILD)
|
||||
{
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
|
||||
static const char AgbLibFlashVersion[] = "FLASH1M_V103";
|
||||
|
||||
const struct FlashSetupInfo * const sSetupInfos[] =
|
||||
static const struct FlashSetupInfo * const sSetupInfos[] =
|
||||
{
|
||||
&MX29L010,
|
||||
&LE26FV10N1TS,
|
||||
|
||||
+10
-10
@@ -132,9 +132,9 @@ void BufferApprenticeChallengeText(u8 saveApprenticeId)
|
||||
StringExpandPlaceholders(gStringVar4, challengeText);
|
||||
}
|
||||
|
||||
void Apprentice_EnableBothScriptContexts(void)
|
||||
void Apprentice_ScriptContext_Enable(void)
|
||||
{
|
||||
EnableBothScriptContexts();
|
||||
ScriptContext_Enable();
|
||||
}
|
||||
|
||||
void ResetApprenticeStruct(struct Apprentice *apprentice)
|
||||
@@ -638,7 +638,7 @@ static void CreateApprenticeMenu(u8 menu)
|
||||
width = ConvertPixelWidthToTileWidth(pixelWidth);
|
||||
left = ScriptMenu_AdjustLeftCoordFromWidth(left, width);
|
||||
windowId = CreateAndShowWindow(left, top, width, count * 2);
|
||||
SetStandardWindowBorderStyle(windowId, 0);
|
||||
SetStandardWindowBorderStyle(windowId, FALSE);
|
||||
|
||||
for (i = 0; i < count; i++)
|
||||
AddTextPrinterParameterized(windowId, FONT_NORMAL, strings[i], 8, (i * 16) + 1, TEXT_SKIP_DRAW, NULL);
|
||||
@@ -679,7 +679,7 @@ static void Task_ChooseAnswer(u8 taskId)
|
||||
|
||||
RemoveAndHideWindow(tWindowId);
|
||||
DestroyTask(taskId);
|
||||
EnableBothScriptContexts();
|
||||
ScriptContext_Enable();
|
||||
}
|
||||
|
||||
static u8 CreateAndShowWindow(u8 left, u8 top, u8 width, u8 height)
|
||||
@@ -815,9 +815,9 @@ static void Task_WaitForPrintingMessage(u8 taskId)
|
||||
{
|
||||
DestroyTask(taskId);
|
||||
if (gSpecialVar_0x8005)
|
||||
ExecuteFuncAfterButtonPress(EnableBothScriptContexts);
|
||||
ExecuteFuncAfterButtonPress(ScriptContext_Enable);
|
||||
else
|
||||
EnableBothScriptContexts();
|
||||
ScriptContext_Enable();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -895,7 +895,7 @@ static void PrintApprenticeMessage(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
EnableBothScriptContexts();
|
||||
ScriptContext_Enable();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -906,11 +906,11 @@ static void PrintApprenticeMessage(void)
|
||||
|
||||
static void Script_PrintApprenticeMessage(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
LockPlayerFieldControls();
|
||||
FreezeObjectEvents();
|
||||
PlayerFreeze();
|
||||
StopPlayerAvatar();
|
||||
DrawDialogueFrame(0, 1);
|
||||
DrawDialogueFrame(0, TRUE);
|
||||
PrintApprenticeMessage();
|
||||
}
|
||||
|
||||
@@ -1289,7 +1289,7 @@ static void Task_ExecuteFuncAfterButtonPress(u8 taskId)
|
||||
{
|
||||
if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON))
|
||||
{
|
||||
gApprenticeFunc = (void*)(u32)(((u16)gTasks[taskId].data[0] | (gTasks[taskId].data[1] << 16)));
|
||||
gApprenticeFunc = (void *)(u32)(((u16)gTasks[taskId].data[0] | (gTasks[taskId].data[1] << 16)));
|
||||
gApprenticeFunc();
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
|
||||
+4
-4
@@ -7,9 +7,9 @@
|
||||
#include "data/bard_music/default_sound.h"
|
||||
#include "data/bard_music/length_table.h"
|
||||
|
||||
static s16 CalcWordPitch(int arg0, int songPos)
|
||||
static s16 CalcWordPitch(int pitchIdx, int songPos)
|
||||
{
|
||||
return sBardSoundPitchTables[arg0][songPos];
|
||||
return sBardSoundPitchTables[pitchIdx][songPos];
|
||||
}
|
||||
|
||||
const struct BardSound *GetWordSounds(u16 word)
|
||||
@@ -51,9 +51,9 @@ void GetWordPhonemes(struct BardSong *song, u16 word)
|
||||
for (i = 0; i < 6; i ++)
|
||||
{
|
||||
sound = &song->sound[i];
|
||||
if (sound->var00 != 0xFF)
|
||||
if (sound->songLengthId != 0xFF)
|
||||
{
|
||||
song->phonemes[i].length = sound->var01 + gBardSoundLengthTable[sound->var00];
|
||||
song->phonemes[i].length = sound->songLengthOffset + gBardSoundLengthTable[sound->songLengthId];
|
||||
song->phonemes[i].pitch = CalcWordPitch(word + 30, i);
|
||||
song->length += song->phonemes[i].length;
|
||||
}
|
||||
|
||||
@@ -351,14 +351,14 @@ void BattleAI_SetupAIData(u8 defaultScoreMoves)
|
||||
// Decide a random target battlerId in doubles.
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
||||
{
|
||||
gBattlerTarget = (Random() & BIT_FLANK) + (GetBattlerSide(gActiveBattler) ^ BIT_SIDE);
|
||||
gBattlerTarget = (Random() & BIT_FLANK) + BATTLE_OPPOSITE(GetBattlerSide(gActiveBattler));
|
||||
if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
|
||||
gBattlerTarget ^= BIT_FLANK;
|
||||
}
|
||||
// There's only one choice in single battles.
|
||||
else
|
||||
{
|
||||
gBattlerTarget = sBattler_AI ^ BIT_SIDE;
|
||||
gBattlerTarget = BATTLE_OPPOSITE(sBattler_AI);
|
||||
}
|
||||
|
||||
// Choose proper trainer ai scripts.
|
||||
@@ -541,7 +541,7 @@ static u8 ChooseMoveOrAction_Doubles(void)
|
||||
bestMovePointsForTarget[i] = mostViableMovesScores[0];
|
||||
|
||||
// Don't use a move against ally if it has less than 100 points.
|
||||
if (i == (sBattler_AI ^ BIT_FLANK) && bestMovePointsForTarget[i] < 100)
|
||||
if (i == BATTLE_PARTNER(sBattler_AI) && bestMovePointsForTarget[i] < 100)
|
||||
{
|
||||
bestMovePointsForTarget[i] = -1;
|
||||
mostViableMovesScores[0] = mostViableMovesScores[0]; // Needed to match.
|
||||
@@ -1151,9 +1151,9 @@ static u8 BattleAI_GetWantedBattler(u8 wantedBattler)
|
||||
default:
|
||||
return gBattlerTarget;
|
||||
case AI_USER_PARTNER:
|
||||
return sBattler_AI ^ BIT_FLANK;
|
||||
return BATTLE_PARTNER(sBattler_AI);
|
||||
case AI_TARGET_PARTNER:
|
||||
return gBattlerTarget ^ BIT_FLANK;
|
||||
return BATTLE_PARTNER(gBattlerTarget);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1316,7 +1316,7 @@ static void Cmd_count_usable_party_mons(void)
|
||||
{
|
||||
u32 position;
|
||||
battlerOnField1 = gBattlerPartyIndexes[battlerId];
|
||||
position = GetBattlerPosition(battlerId) ^ BIT_FLANK;
|
||||
position = BATTLE_PARTNER(GetBattlerPosition(battlerId));
|
||||
battlerOnField2 = gBattlerPartyIndexes[GetBattlerAtPosition(position)];
|
||||
}
|
||||
else // In singles there's only one battlerId by side.
|
||||
@@ -1379,24 +1379,24 @@ static void Cmd_get_ability(void)
|
||||
return;
|
||||
}
|
||||
|
||||
if (gBaseStats[gBattleMons[battlerId].species].abilities[0] != ABILITY_NONE)
|
||||
if (gSpeciesInfo[gBattleMons[battlerId].species].abilities[0] != ABILITY_NONE)
|
||||
{
|
||||
if (gBaseStats[gBattleMons[battlerId].species].abilities[1] != ABILITY_NONE)
|
||||
if (gSpeciesInfo[gBattleMons[battlerId].species].abilities[1] != ABILITY_NONE)
|
||||
{
|
||||
// AI has no knowledge of opponent, so it guesses which ability.
|
||||
if (Random() & 1)
|
||||
AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[battlerId].species].abilities[0];
|
||||
AI_THINKING_STRUCT->funcResult = gSpeciesInfo[gBattleMons[battlerId].species].abilities[0];
|
||||
else
|
||||
AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[battlerId].species].abilities[1];
|
||||
AI_THINKING_STRUCT->funcResult = gSpeciesInfo[gBattleMons[battlerId].species].abilities[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[battlerId].species].abilities[0]; // It's definitely ability 1.
|
||||
AI_THINKING_STRUCT->funcResult = gSpeciesInfo[gBattleMons[battlerId].species].abilities[0]; // It's definitely ability 1.
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
AI_THINKING_STRUCT->funcResult = gBaseStats[gBattleMons[battlerId].species].abilities[1]; // AI can't actually reach this part since no pokemon has ability 2 and no ability 1.
|
||||
AI_THINKING_STRUCT->funcResult = gSpeciesInfo[gBattleMons[battlerId].species].abilities[1]; // AI can't actually reach this part since no pokemon has ability 2 and no ability 1.
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1427,15 +1427,15 @@ static void Cmd_check_ability(void)
|
||||
{
|
||||
ability = gBattleMons[battlerId].ability;
|
||||
}
|
||||
else if (gBaseStats[gBattleMons[battlerId].species].abilities[0] != ABILITY_NONE)
|
||||
else if (gSpeciesInfo[gBattleMons[battlerId].species].abilities[0] != ABILITY_NONE)
|
||||
{
|
||||
if (gBaseStats[gBattleMons[battlerId].species].abilities[1] != ABILITY_NONE)
|
||||
if (gSpeciesInfo[gBattleMons[battlerId].species].abilities[1] != ABILITY_NONE)
|
||||
{
|
||||
u8 abilityDummyVariable = ability; // Needed to match.
|
||||
if (gBaseStats[gBattleMons[battlerId].species].abilities[0] != abilityDummyVariable
|
||||
&& gBaseStats[gBattleMons[battlerId].species].abilities[1] != abilityDummyVariable)
|
||||
if (gSpeciesInfo[gBattleMons[battlerId].species].abilities[0] != abilityDummyVariable
|
||||
&& gSpeciesInfo[gBattleMons[battlerId].species].abilities[1] != abilityDummyVariable)
|
||||
{
|
||||
ability = gBaseStats[gBattleMons[battlerId].species].abilities[0];
|
||||
ability = gSpeciesInfo[gBattleMons[battlerId].species].abilities[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1444,12 +1444,12 @@ static void Cmd_check_ability(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
ability = gBaseStats[gBattleMons[battlerId].species].abilities[0];
|
||||
ability = gSpeciesInfo[gBattleMons[battlerId].species].abilities[0];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ability = gBaseStats[gBattleMons[battlerId].species].abilities[1]; // AI can't actually reach this part since no pokemon has ability 2 and no ability 1.
|
||||
ability = gSpeciesInfo[gBattleMons[battlerId].species].abilities[1]; // AI can't actually reach this part since no pokemon has ability 2 and no ability 1.
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1799,7 +1799,7 @@ static void Cmd_if_has_move(void)
|
||||
gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
|
||||
break;
|
||||
case AI_USER_PARTNER:
|
||||
if (gBattleMons[sBattler_AI ^ BIT_FLANK].hp == 0)
|
||||
if (gBattleMons[BATTLE_PARTNER(sBattler_AI)].hp == 0)
|
||||
{
|
||||
gAIScriptPtr += 8;
|
||||
break;
|
||||
@@ -1808,7 +1808,7 @@ static void Cmd_if_has_move(void)
|
||||
{
|
||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||
{
|
||||
if (gBattleMons[sBattler_AI ^ BIT_FLANK].moves[i] == *movePtr)
|
||||
if (gBattleMons[BATTLE_PARTNER(sBattler_AI)].moves[i] == *movePtr)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#include "battle.h"
|
||||
#include "battle_anim.h"
|
||||
#include "battle_controllers.h"
|
||||
#include "battle_main.h"
|
||||
#include "data.h"
|
||||
#include "pokemon.h"
|
||||
#include "random.h"
|
||||
@@ -66,13 +67,13 @@ static bool8 ShouldSwitchIfWonderGuard(void)
|
||||
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_TOWER_LINK_MULTI))
|
||||
{
|
||||
if ((gActiveBattler & BIT_FLANK) == B_FLANK_LEFT)
|
||||
firstId = 0, lastId = 3;
|
||||
firstId = 0, lastId = PARTY_SIZE / 2;
|
||||
else
|
||||
firstId = 3, lastId = 6;
|
||||
firstId = PARTY_SIZE / 2, lastId = PARTY_SIZE;
|
||||
}
|
||||
else
|
||||
{
|
||||
firstId = 0, lastId = 6;
|
||||
firstId = 0, lastId = PARTY_SIZE;
|
||||
}
|
||||
|
||||
if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
|
||||
@@ -126,9 +127,9 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void)
|
||||
|
||||
if (HasSuperEffectiveMoveAgainstOpponents(TRUE) && Random() % 3 != 0)
|
||||
return FALSE;
|
||||
if (gLastLandedMoves[gActiveBattler] == 0)
|
||||
if (gLastLandedMoves[gActiveBattler] == MOVE_NONE)
|
||||
return FALSE;
|
||||
if (gLastLandedMoves[gActiveBattler] == 0xFFFF)
|
||||
if (gLastLandedMoves[gActiveBattler] == MOVE_UNAVAILABLE)
|
||||
return FALSE;
|
||||
if (gBattleMoves[gLastLandedMoves[gActiveBattler]].power == 0)
|
||||
return FALSE;
|
||||
@@ -162,13 +163,13 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void)
|
||||
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_TOWER_LINK_MULTI))
|
||||
{
|
||||
if ((gActiveBattler & BIT_FLANK) == B_FLANK_LEFT)
|
||||
firstId = 0, lastId = 3;
|
||||
firstId = 0, lastId = PARTY_SIZE / 2;
|
||||
else
|
||||
firstId = 3, lastId = 6;
|
||||
firstId = PARTY_SIZE / 2, lastId = PARTY_SIZE;
|
||||
}
|
||||
else
|
||||
{
|
||||
firstId = 0, lastId = 6;
|
||||
firstId = 0, lastId = PARTY_SIZE;
|
||||
}
|
||||
|
||||
if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
|
||||
@@ -198,9 +199,9 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void)
|
||||
|
||||
species = GetMonData(&party[i], MON_DATA_SPECIES);
|
||||
if (GetMonData(&party[i], MON_DATA_ABILITY_NUM) != 0)
|
||||
monAbility = gBaseStats[species].abilities[1];
|
||||
monAbility = gSpeciesInfo[species].abilities[1];
|
||||
else
|
||||
monAbility = gBaseStats[species].abilities[0];
|
||||
monAbility = gSpeciesInfo[species].abilities[0];
|
||||
|
||||
if (absorbingTypeAbility == monAbility && Random() & 1)
|
||||
{
|
||||
@@ -223,13 +224,16 @@ static bool8 ShouldSwitchIfNaturalCure(void)
|
||||
if (gBattleMons[gActiveBattler].hp < gBattleMons[gActiveBattler].maxHP / 2)
|
||||
return FALSE;
|
||||
|
||||
if ((gLastLandedMoves[gActiveBattler] == 0 || gLastLandedMoves[gActiveBattler] == 0xFFFF) && Random() & 1)
|
||||
if ((gLastLandedMoves[gActiveBattler] == MOVE_NONE
|
||||
|| gLastLandedMoves[gActiveBattler] == MOVE_UNAVAILABLE)
|
||||
&& Random() & 1)
|
||||
{
|
||||
*(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = PARTY_SIZE;
|
||||
BtlController_EmitTwoReturnValues(BUFFER_B, B_ACTION_SWITCH, 0);
|
||||
return TRUE;
|
||||
}
|
||||
else if (gBattleMoves[gLastLandedMoves[gActiveBattler]].power == 0 && Random() & 1)
|
||||
else if (gBattleMoves[gLastLandedMoves[gActiveBattler]].power == 0
|
||||
&& Random() & 1)
|
||||
{
|
||||
*(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = PARTY_SIZE;
|
||||
BtlController_EmitTwoReturnValues(BUFFER_B, B_ACTION_SWITCH, 0);
|
||||
@@ -331,9 +335,9 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent)
|
||||
u16 move;
|
||||
u8 moveFlags;
|
||||
|
||||
if (gLastLandedMoves[gActiveBattler] == 0)
|
||||
if (gLastLandedMoves[gActiveBattler] == MOVE_NONE)
|
||||
return FALSE;
|
||||
if (gLastLandedMoves[gActiveBattler] == 0xFFFF)
|
||||
if (gLastLandedMoves[gActiveBattler] == MOVE_UNAVAILABLE)
|
||||
return FALSE;
|
||||
if (gLastHitBy[gActiveBattler] == 0xFF)
|
||||
return FALSE;
|
||||
@@ -357,13 +361,13 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent)
|
||||
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_TOWER_LINK_MULTI))
|
||||
{
|
||||
if ((gActiveBattler & BIT_FLANK) == 0)
|
||||
firstId = 0, lastId = 3;
|
||||
firstId = 0, lastId = PARTY_SIZE / 2;
|
||||
else
|
||||
firstId = 3, lastId = 6;
|
||||
firstId = PARTY_SIZE / 2, lastId = PARTY_SIZE;
|
||||
}
|
||||
else
|
||||
{
|
||||
firstId = 0, lastId = 6;
|
||||
firstId = 0, lastId = PARTY_SIZE;
|
||||
}
|
||||
|
||||
if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
|
||||
@@ -393,9 +397,9 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent)
|
||||
|
||||
species = GetMonData(&party[i], MON_DATA_SPECIES);
|
||||
if (GetMonData(&party[i], MON_DATA_ABILITY_NUM) != 0)
|
||||
monAbility = gBaseStats[species].abilities[1];
|
||||
monAbility = gSpeciesInfo[species].abilities[1];
|
||||
else
|
||||
monAbility = gBaseStats[species].abilities[0];
|
||||
monAbility = gSpeciesInfo[species].abilities[0];
|
||||
|
||||
moveFlags = AI_TypeCalc(gLastLandedMoves[gActiveBattler], species, monAbility);
|
||||
if (moveFlags & flags)
|
||||
@@ -442,9 +446,7 @@ static bool8 ShouldSwitch(void)
|
||||
return FALSE;
|
||||
if (ABILITY_ON_FIELD2(ABILITY_MAGNET_PULL))
|
||||
{
|
||||
if (gBattleMons[gActiveBattler].type1 == TYPE_STEEL)
|
||||
return FALSE;
|
||||
if (gBattleMons[gActiveBattler].type2 == TYPE_STEEL)
|
||||
if (IS_BATTLER_OF_TYPE(gActiveBattler, TYPE_STEEL))
|
||||
return FALSE;
|
||||
}
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_ARENA)
|
||||
@@ -454,10 +456,10 @@ static bool8 ShouldSwitch(void)
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
||||
{
|
||||
battlerIn1 = *activeBattlerPtr;
|
||||
if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(GetBattlerPosition(*activeBattlerPtr) ^ BIT_FLANK)])
|
||||
if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(*activeBattlerPtr)))])
|
||||
battlerIn2 = *activeBattlerPtr;
|
||||
else
|
||||
battlerIn2 = GetBattlerAtPosition(GetBattlerPosition(*activeBattlerPtr) ^ BIT_FLANK);
|
||||
battlerIn2 = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(*activeBattlerPtr)));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -468,13 +470,13 @@ static bool8 ShouldSwitch(void)
|
||||
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_TOWER_LINK_MULTI))
|
||||
{
|
||||
if ((gActiveBattler & BIT_FLANK) == B_FLANK_LEFT)
|
||||
firstId = 0, lastId = 3;
|
||||
firstId = 0, lastId = PARTY_SIZE / 2;
|
||||
else
|
||||
firstId = 3, lastId = 6;
|
||||
firstId = PARTY_SIZE / 2, lastId = PARTY_SIZE;
|
||||
}
|
||||
else
|
||||
{
|
||||
firstId = 0, lastId = 6;
|
||||
firstId = 0, lastId = PARTY_SIZE;
|
||||
}
|
||||
|
||||
if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
|
||||
@@ -553,19 +555,19 @@ void AI_TrySwitchOrUseItem(void)
|
||||
else
|
||||
{
|
||||
battlerIn1 = GetBattlerAtPosition(battlerIdentity);
|
||||
battlerIn2 = GetBattlerAtPosition(battlerIdentity ^ BIT_FLANK);
|
||||
battlerIn2 = GetBattlerAtPosition(BATTLE_PARTNER(battlerIdentity));
|
||||
}
|
||||
|
||||
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_TOWER_LINK_MULTI))
|
||||
{
|
||||
if ((gActiveBattler & BIT_FLANK) == B_FLANK_LEFT)
|
||||
firstId = 0, lastId = 3;
|
||||
firstId = 0, lastId = PARTY_SIZE / 2;
|
||||
else
|
||||
firstId = 3, lastId = 6;
|
||||
firstId = PARTY_SIZE / 2, lastId = PARTY_SIZE;
|
||||
}
|
||||
else
|
||||
{
|
||||
firstId = 0, lastId = 6;
|
||||
firstId = 0, lastId = PARTY_SIZE;
|
||||
}
|
||||
|
||||
for (monToSwitchId = firstId; monToSwitchId < lastId; monToSwitchId++)
|
||||
@@ -597,7 +599,7 @@ void AI_TrySwitchOrUseItem(void)
|
||||
}
|
||||
}
|
||||
|
||||
BtlController_EmitTwoReturnValues(BUFFER_B, B_ACTION_USE_MOVE, (gActiveBattler ^ BIT_SIDE) << 8);
|
||||
BtlController_EmitTwoReturnValues(BUFFER_B, B_ACTION_USE_MOVE, BATTLE_OPPOSITE(gActiveBattler) << 8);
|
||||
}
|
||||
|
||||
static void ModulateByTypeEffectiveness(u8 atkType, u8 defType1, u8 defType2, u8 *var)
|
||||
@@ -615,10 +617,10 @@ static void ModulateByTypeEffectiveness(u8 atkType, u8 defType1, u8 defType2, u8
|
||||
{
|
||||
// Check type1.
|
||||
if (TYPE_EFFECT_DEF_TYPE(i) == defType1)
|
||||
*var = (*var * TYPE_EFFECT_MULTIPLIER(i)) / 10;
|
||||
*var = (*var * TYPE_EFFECT_MULTIPLIER(i)) / TYPE_MUL_NORMAL;
|
||||
// Check type2.
|
||||
if (TYPE_EFFECT_DEF_TYPE(i) == defType2 && defType1 != defType2)
|
||||
*var = (*var * TYPE_EFFECT_MULTIPLIER(i)) / 10;
|
||||
*var = (*var * TYPE_EFFECT_MULTIPLIER(i)) / TYPE_MUL_NORMAL;
|
||||
}
|
||||
i += 3;
|
||||
}
|
||||
@@ -627,7 +629,11 @@ static void ModulateByTypeEffectiveness(u8 atkType, u8 defType1, u8 defType2, u8
|
||||
u8 GetMostSuitableMonToSwitchInto(void)
|
||||
{
|
||||
u8 opposingBattler;
|
||||
u8 bestDmg; // Note : should be changed to u32 for obvious reasons.
|
||||
#ifdef BUGFIX
|
||||
s32 bestDmg;
|
||||
#else
|
||||
u8 bestDmg; // Note: should be changed to s32 since it is also used for the actual damage done later
|
||||
#endif
|
||||
u8 bestMonId;
|
||||
u8 battlerIn1, battlerIn2;
|
||||
s32 firstId;
|
||||
@@ -645,10 +651,10 @@ u8 GetMostSuitableMonToSwitchInto(void)
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
||||
{
|
||||
battlerIn1 = gActiveBattler;
|
||||
if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)])
|
||||
if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))])
|
||||
battlerIn2 = gActiveBattler;
|
||||
else
|
||||
battlerIn2 = GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK);
|
||||
battlerIn2 = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)));
|
||||
|
||||
// UB: It considers the opponent only player's side even though it can battle alongside player.
|
||||
opposingBattler = Random() & BIT_FLANK;
|
||||
@@ -657,7 +663,7 @@ u8 GetMostSuitableMonToSwitchInto(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
opposingBattler = GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_SIDE);
|
||||
opposingBattler = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gActiveBattler)));
|
||||
battlerIn1 = gActiveBattler;
|
||||
battlerIn2 = gActiveBattler;
|
||||
}
|
||||
@@ -665,13 +671,13 @@ u8 GetMostSuitableMonToSwitchInto(void)
|
||||
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_TOWER_LINK_MULTI))
|
||||
{
|
||||
if ((gActiveBattler & BIT_FLANK) == B_FLANK_LEFT)
|
||||
firstId = 0, lastId = 3;
|
||||
firstId = 0, lastId = PARTY_SIZE / 2;
|
||||
else
|
||||
firstId = 3, lastId = 6;
|
||||
firstId = PARTY_SIZE / 2, lastId = PARTY_SIZE;
|
||||
}
|
||||
else
|
||||
{
|
||||
firstId = 0, lastId = 6;
|
||||
firstId = 0, lastId = PARTY_SIZE;
|
||||
}
|
||||
|
||||
if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
|
||||
@@ -683,8 +689,8 @@ u8 GetMostSuitableMonToSwitchInto(void)
|
||||
|
||||
while (invalidMons != 0x3F) // All mons are invalid.
|
||||
{
|
||||
bestDmg = 0;
|
||||
bestMonId = 6;
|
||||
bestDmg = TYPE_MUL_NO_EFFECT;
|
||||
bestMonId = PARTY_SIZE;
|
||||
// Find the mon whose type is the most suitable offensively.
|
||||
for (i = firstId; i < lastId; i++)
|
||||
{
|
||||
@@ -697,11 +703,15 @@ u8 GetMostSuitableMonToSwitchInto(void)
|
||||
&& i != *(gBattleStruct->monToSwitchIntoId + battlerIn1)
|
||||
&& i != *(gBattleStruct->monToSwitchIntoId + battlerIn2))
|
||||
{
|
||||
u8 type1 = gBaseStats[species].type1;
|
||||
u8 type2 = gBaseStats[species].type2;
|
||||
u8 typeDmg = 10;
|
||||
u8 type1 = gSpeciesInfo[species].types[0];
|
||||
u8 type2 = gSpeciesInfo[species].types[1];
|
||||
u8 typeDmg = TYPE_MUL_NORMAL;
|
||||
ModulateByTypeEffectiveness(gBattleMons[opposingBattler].type1, type1, type2, &typeDmg);
|
||||
ModulateByTypeEffectiveness(gBattleMons[opposingBattler].type2, type1, type2, &typeDmg);
|
||||
|
||||
/* Possible bug: this comparison gives the type that takes the most damage, when
|
||||
a "good" AI would want to select the type that takes the least damage. Unknown if this
|
||||
is a legitimate mistake or if it's an intentional, if weird, design choice */
|
||||
if (bestDmg < typeDmg)
|
||||
{
|
||||
bestDmg = typeDmg;
|
||||
@@ -741,7 +751,7 @@ u8 GetMostSuitableMonToSwitchInto(void)
|
||||
gMoveResultFlags = 0;
|
||||
gCritMultiplier = 1;
|
||||
bestDmg = 0;
|
||||
bestMonId = 6;
|
||||
bestMonId = PARTY_SIZE;
|
||||
|
||||
// If we couldn't find the best mon in terms of typing, find the one that deals most damage.
|
||||
for (i = firstId; i < lastId; i++)
|
||||
|
||||
+17
-17
@@ -676,13 +676,13 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible)
|
||||
|
||||
if (IsContest() == TRUE)
|
||||
{
|
||||
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(16)), 0x2000, 1);
|
||||
RequestDma3Fill(0xFF, (void*)(BG_SCREEN_ADDR(30)), 0x1000, 0);
|
||||
RequestDma3Fill(0, (void *)(BG_SCREEN_ADDR(16)), 0x2000, 1);
|
||||
RequestDma3Fill(0xFF, (void *)(BG_SCREEN_ADDR(30)), 0x1000, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(8)), 0x2000, 1);
|
||||
RequestDma3Fill(0xFF, (void*)(BG_SCREEN_ADDR(28)), 0x1000, 0);
|
||||
RequestDma3Fill(0, (void *)(BG_SCREEN_ADDR(8)), 0x2000, 1);
|
||||
RequestDma3Fill(0xFF, (void *)(BG_SCREEN_ADDR(28)), 0x1000, 0);
|
||||
}
|
||||
|
||||
GetBattleAnimBg1Data(&animBg);
|
||||
@@ -706,8 +706,8 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible)
|
||||
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
|
||||
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
|
||||
|
||||
LoadPalette(&gPlttBufferUnfaded[0x100 + battlerId * 16], animBg.paletteId * 16, 0x20);
|
||||
CpuCopy32(&gPlttBufferUnfaded[0x100 + battlerId * 16], (void*)(BG_PLTT + animBg.paletteId * 32), 0x20);
|
||||
LoadPalette(&gPlttBufferUnfaded[OBJ_PLTT_ID(battlerId)], BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
|
||||
CpuCopy32(&gPlttBufferUnfaded[OBJ_PLTT_ID(battlerId)], (void *)(BG_PLTT + PLTT_OFFSET_4BPP(animBg.paletteId)), PLTT_SIZE_4BPP);
|
||||
|
||||
if (IsContest())
|
||||
battlerPosition = 0;
|
||||
@@ -721,8 +721,8 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible)
|
||||
}
|
||||
else
|
||||
{
|
||||
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(12)), 0x2000, 1);
|
||||
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(30)), 0x1000, 1);
|
||||
RequestDma3Fill(0, (void *)(BG_SCREEN_ADDR(12)), 0x2000, 1);
|
||||
RequestDma3Fill(0, (void *)(BG_SCREEN_ADDR(30)), 0x1000, 1);
|
||||
GetBattleAnimBgData(&animBg, 2);
|
||||
CpuFill16(0, animBg.bgTiles + 0x1000, 0x1000);
|
||||
CpuFill16(0, animBg.bgTilemap + 0x400, 0x800);
|
||||
@@ -741,8 +741,8 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible)
|
||||
SetGpuReg(REG_OFFSET_BG2HOFS, gBattle_BG2_X);
|
||||
SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y);
|
||||
|
||||
LoadPalette(&gPlttBufferUnfaded[0x100 + battlerId * 16], 0x90, 0x20);
|
||||
CpuCopy32(&gPlttBufferUnfaded[0x100 + battlerId * 16], (void*)(BG_PLTT + 0x120), 0x20);
|
||||
LoadPalette(&gPlttBufferUnfaded[OBJ_PLTT_ID(battlerId)], BG_PLTT_ID(9), PLTT_SIZE_4BPP);
|
||||
CpuCopy32(&gPlttBufferUnfaded[OBJ_PLTT_ID(battlerId)], (void *)(BG_PLTT + PLTT_OFFSET_4BPP(9)), PLTT_SIZE_4BPP);
|
||||
|
||||
DrawBattlerOnBg(2, 0, 0, GetBattlerPosition(battlerId), animBg.paletteId, animBg.bgTiles + 0x1000, animBg.bgTilemap + 0x400, animBg.tilesOffset);
|
||||
}
|
||||
@@ -883,7 +883,7 @@ static void Cmd_clearmonbg(void)
|
||||
if (sMonAnimTaskIdArray[0] != TASK_NONE)
|
||||
gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE;
|
||||
if (animBattlerId > 1 && sMonAnimTaskIdArray[1] != TASK_NONE)
|
||||
gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = FALSE;
|
||||
gSprites[gBattlerSpriteIds[BATTLE_PARTNER(battlerId)]].invisible = FALSE;
|
||||
else
|
||||
animBattlerId = 0;
|
||||
|
||||
@@ -990,8 +990,8 @@ static void Cmd_clearmonbg_static(void)
|
||||
|
||||
if (IsBattlerSpriteVisible(battlerId))
|
||||
gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE;
|
||||
if (animBattlerId > 1 && IsBattlerSpriteVisible(battlerId ^ BIT_FLANK))
|
||||
gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = FALSE;
|
||||
if (animBattlerId > 1 && IsBattlerSpriteVisible(BATTLE_PARTNER(battlerId)))
|
||||
gSprites[gBattlerSpriteIds[BATTLE_PARTNER(battlerId)]].invisible = FALSE;
|
||||
else
|
||||
animBattlerId = 0;
|
||||
|
||||
@@ -1017,7 +1017,7 @@ static void Task_ClearMonBgStatic(u8 taskId)
|
||||
|
||||
if (IsBattlerSpriteVisible(battlerId))
|
||||
ResetBattleAnimBg(toBG_2);
|
||||
if (gTasks[taskId].data[0] > 1 && IsBattlerSpriteVisible(battlerId ^ BIT_FLANK))
|
||||
if (gTasks[taskId].data[0] > 1 && IsBattlerSpriteVisible(BATTLE_PARTNER(battlerId)))
|
||||
ResetBattleAnimBg(toBG_2 ^ 1);
|
||||
|
||||
DestroyTask(taskId);
|
||||
@@ -1203,18 +1203,18 @@ static void LoadMoveBg(u16 bgId)
|
||||
void *dmaDest;
|
||||
|
||||
LZDecompressWram(tilemap, gDecompressionBuffer);
|
||||
RelocateBattleBgPal(GetBattleBgPaletteNum(), (void*)gDecompressionBuffer, 0x100, FALSE);
|
||||
RelocateBattleBgPal(GetBattleBgPaletteNum(), (void *)gDecompressionBuffer, 0x100, FALSE);
|
||||
dmaSrc = gDecompressionBuffer;
|
||||
dmaDest = (void *)BG_SCREEN_ADDR(26);
|
||||
DmaCopy32(3, dmaSrc, dmaDest, 0x800);
|
||||
LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)BG_SCREEN_ADDR(4));
|
||||
LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, GetBattleBgPaletteNum() * 16, 32);
|
||||
LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, BG_PLTT_ID(GetBattleBgPaletteNum()), PLTT_SIZE_4BPP);
|
||||
}
|
||||
else
|
||||
{
|
||||
LZDecompressVram(gBattleAnimBackgroundTable[bgId].tilemap, (void *)BG_SCREEN_ADDR(26));
|
||||
LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)BG_CHAR_ADDR(2));
|
||||
LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, 32, 32);
|
||||
LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, BG_PLTT_ID(2), PLTT_SIZE_4BPP);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -203,7 +203,7 @@ static void AnimMegahornHorn(struct Sprite *sprite)
|
||||
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
|
||||
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
|
||||
}
|
||||
else if (!GetBattlerSide(gBattleAnimTarget))
|
||||
else if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
|
||||
{
|
||||
StartSpriteAffineAnim(sprite, 1);
|
||||
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
|
||||
@@ -230,7 +230,7 @@ static void AnimLeechLifeNeedle(struct Sprite *sprite)
|
||||
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
|
||||
StartSpriteAffineAnim(sprite, 2);
|
||||
}
|
||||
else if (!GetBattlerSide(gBattleAnimTarget))
|
||||
else if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
|
||||
{
|
||||
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
|
||||
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
|
||||
@@ -271,7 +271,7 @@ static void AnimTranslateWebThread(struct Sprite *sprite)
|
||||
}
|
||||
else
|
||||
{
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->data[2], &sprite->data[4]);
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, TRUE, &sprite->data[2], &sprite->data[4]);
|
||||
}
|
||||
|
||||
InitAnimLinearTranslationWithSpeed(sprite);
|
||||
@@ -294,14 +294,14 @@ static void AnimTranslateWebThread_Step(struct Sprite *sprite)
|
||||
// Second stage of String Shot
|
||||
static void AnimStringWrap(struct Sprite *sprite)
|
||||
{
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->x, &sprite->y);
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, FALSE, &sprite->x, &sprite->y);
|
||||
if (GetBattlerSide(gBattleAnimAttacker))
|
||||
sprite->x -= gBattleAnimArgs[0];
|
||||
else
|
||||
sprite->x += gBattleAnimArgs[0];
|
||||
|
||||
sprite->y += gBattleAnimArgs[1];
|
||||
if (!GetBattlerSide(gBattleAnimTarget))
|
||||
if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
|
||||
sprite->y += 8;
|
||||
|
||||
sprite->callback = AnimStringWrap_Step;
|
||||
@@ -392,7 +392,7 @@ static void AnimTranslateStinger(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
|
||||
lVarX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2];
|
||||
lVarY = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3];
|
||||
@@ -417,7 +417,7 @@ static void AnimTranslateStinger(struct Sprite *sprite)
|
||||
// arg 5: wave amplitude
|
||||
static void AnimMissileArc(struct Sprite *sprite)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
|
||||
if (GetBattlerSide(gBattleAnimAttacker))
|
||||
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
|
||||
|
||||
+13
-13
@@ -426,7 +426,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId)
|
||||
GetBattleAnimBg1Data(&animBg);
|
||||
task->data[10] = gBattle_BG1_Y;
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1);
|
||||
FillPalette(0, animBg.paletteId * 16, 32);
|
||||
FillPalette(RGB_BLACK, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
|
||||
scanlineParams.dmaDest = ®_BG1VOFS;
|
||||
var0 = WINOUT_WIN01_BG1;
|
||||
if (!IsContest())
|
||||
@@ -436,7 +436,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId)
|
||||
{
|
||||
task->data[10] = gBattle_BG2_Y;
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG2);
|
||||
FillPalette(0, 144, 32);
|
||||
FillPalette(RGB_BLACK, BG_PLTT_ID(9), PLTT_SIZE_4BPP);
|
||||
scanlineParams.dmaDest = ®_BG2VOFS;
|
||||
var0 = WINOUT_WIN01_BG2;
|
||||
if (!IsContest())
|
||||
@@ -566,12 +566,12 @@ void AnimTask_MoveTargetMementoShadow(u8 taskId)
|
||||
{
|
||||
GetBattleAnimBg1Data(&animBg);
|
||||
task->data[10] = gBattle_BG1_Y;
|
||||
FillPalette(0, animBg.paletteId * 16, 32);
|
||||
FillPalette(RGB_BLACK, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
|
||||
}
|
||||
else
|
||||
{
|
||||
task->data[10] = gBattle_BG2_Y;
|
||||
FillPalette(0, 9 * 16, 32);
|
||||
FillPalette(RGB_BLACK, BG_PLTT_ID(9), PLTT_SIZE_4BPP);
|
||||
}
|
||||
|
||||
SetAllBattlersSpritePriority(3);
|
||||
@@ -777,8 +777,8 @@ void AnimTask_InitMementoShadow(u8 taskId)
|
||||
|
||||
if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
|
||||
{
|
||||
MoveBattlerSpriteToBG(gBattleAnimAttacker ^ 2, toBG2 ^ 1, TRUE);
|
||||
gSprites[gBattlerSpriteIds[gBattleAnimAttacker ^ 2]].invisible = FALSE;
|
||||
MoveBattlerSpriteToBG(BATTLE_PARTNER(gBattleAnimAttacker), toBG2 ^ 1, TRUE);
|
||||
gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].invisible = FALSE;
|
||||
}
|
||||
|
||||
DestroyAnimVisualTask(taskId);
|
||||
@@ -786,7 +786,7 @@ void AnimTask_InitMementoShadow(u8 taskId)
|
||||
|
||||
void AnimTask_MementoHandleBg(u8 taskId)
|
||||
{
|
||||
u8 toBG2 = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) ^ 1 ? 1 : 0;
|
||||
bool8 toBG2 = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) ^ 1 ? TRUE : FALSE;
|
||||
ResetBattleAnimBg(toBG2);
|
||||
|
||||
if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
|
||||
@@ -863,7 +863,7 @@ void AnimTask_MetallicShine(u8 taskId)
|
||||
GetBattleAnimBg1Data(&animBg);
|
||||
AnimLoadCompressedBgTilemap(animBg.bgId, gMetalShineTilemap);
|
||||
AnimLoadCompressedBgGfx(animBg.bgId, gMetalShineGfx, animBg.tilesOffset);
|
||||
LoadCompressedPalette(gMetalShinePalette, animBg.paletteId * 16, 32);
|
||||
LoadCompressedPalette(gMetalShinePalette, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
|
||||
|
||||
gBattle_BG1_X = -gSprites[spriteId].x + 96;
|
||||
gBattle_BG1_Y = -gSprites[spriteId].y + 32;
|
||||
@@ -872,7 +872,7 @@ void AnimTask_MetallicShine(u8 taskId)
|
||||
if (gBattleAnimArgs[1] == 0)
|
||||
SetGrayscaleOrOriginalPalette(paletteNum, FALSE);
|
||||
else
|
||||
BlendPalette(paletteNum * 16, 16, 11, gBattleAnimArgs[2]);
|
||||
BlendPalette(BG_PLTT_ID(paletteNum), 16, 11, gBattleAnimArgs[2]);
|
||||
|
||||
gTasks[taskId].data[0] = newSpriteId;
|
||||
gTasks[taskId].data[1] = gBattleAnimArgs[0];
|
||||
@@ -943,19 +943,19 @@ void AnimTask_SetGrayscaleOrOriginalPal(u8 taskId)
|
||||
case ANIM_DEF_PARTNER:
|
||||
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
|
||||
break;
|
||||
case 4:
|
||||
case ANIM_PLAYER_LEFT:
|
||||
position = B_POSITION_PLAYER_LEFT;
|
||||
calcSpriteId = TRUE;
|
||||
break;
|
||||
case 5:
|
||||
case ANIM_PLAYER_RIGHT:
|
||||
position = B_POSITION_PLAYER_RIGHT;
|
||||
calcSpriteId = TRUE;
|
||||
break;
|
||||
case 6:
|
||||
case ANIM_OPPONENT_LEFT:
|
||||
position = B_POSITION_OPPONENT_LEFT;
|
||||
calcSpriteId = TRUE;
|
||||
break;
|
||||
case 7:
|
||||
case ANIM_OPPONENT_RIGHT:
|
||||
position = B_POSITION_OPPONENT_RIGHT;
|
||||
calcSpriteId = TRUE;
|
||||
break;
|
||||
|
||||
@@ -15,7 +15,7 @@ static void AnimOverheatFlame_Step(struct Sprite *);
|
||||
static void AnimTask_DragonDanceWaver_Step(u8);
|
||||
static void UpdateDragonDanceScanlineEffect(struct Task *);
|
||||
|
||||
EWRAM_DATA static u16 gUnusedOverheatData[7] = {0};
|
||||
EWRAM_DATA static u16 sUnusedOverheatData[7] = {0};
|
||||
|
||||
static const union AnimCmd sAnim_OutrageOverheatFire_0[] =
|
||||
{
|
||||
@@ -426,7 +426,7 @@ static void AnimOverheatFlame(struct Sprite *sprite)
|
||||
sprite->data[3] = gBattleAnimArgs[3];
|
||||
sprite->callback = AnimOverheatFlame_Step;
|
||||
for (i = 0; i < 7; i++)
|
||||
gUnusedOverheatData[i] = sprite->data[i];
|
||||
sUnusedOverheatData[i] = sprite->data[i];
|
||||
}
|
||||
|
||||
static void AnimOverheatFlame_Step(struct Sprite *sprite)
|
||||
|
||||
+207
-199
File diff suppressed because it is too large
Load Diff
+38
-41
@@ -1534,7 +1534,7 @@ static void AnimAirWaveProjectile_Step2(struct Sprite *sprite)
|
||||
|
||||
static void AnimAirWaveProjectile_Step1(struct Sprite *sprite)
|
||||
{
|
||||
struct Task* task = &gTasks[sprite->data[7]];
|
||||
struct Task *task = &gTasks[sprite->data[7]];
|
||||
if (sprite->data[0] > task->data[5])
|
||||
{
|
||||
sprite->data[5] += sprite->data[3];
|
||||
@@ -1571,7 +1571,7 @@ static void AnimAirWaveProjectile(struct Sprite *sprite)
|
||||
s16 b;
|
||||
s16 c;
|
||||
|
||||
struct Task* task = &gTasks[sprite->data[7]];
|
||||
struct Task *task = &gTasks[sprite->data[7]];
|
||||
sprite->data[1] += (-2 & task->data[7]);
|
||||
sprite->data[2] += (-2 & task->data[8]);
|
||||
if (1 & task->data[7])
|
||||
@@ -1642,7 +1642,7 @@ static void AirCutterProjectileStep1(u8 taskId)
|
||||
gTasks[taskId].data[gTasks[taskId].data[1] + 13] = spriteId;
|
||||
gTasks[taskId].data[0] = gTasks[taskId].data[3];
|
||||
gTasks[taskId].data[1]++;
|
||||
PlaySE12WithPanning(SE_M_BLIZZARD2, BattleAnimAdjustPanning(-63));
|
||||
PlaySE12WithPanning(SE_M_BLIZZARD2, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER + 1));
|
||||
if (gTasks[taskId].data[1] > 2)
|
||||
gTasks[taskId].func = AirCutterProjectileStep2;
|
||||
}
|
||||
@@ -1667,7 +1667,7 @@ void AnimTask_AirCutterProjectile(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((gBattlerPositions[gBattleAnimTarget] & BIT_SIDE) == B_SIDE_PLAYER)
|
||||
if (GET_BATTLER_SIDE2(gBattleAnimTarget) == B_SIDE_PLAYER)
|
||||
{
|
||||
gTasks[taskId].data[4] = 1;
|
||||
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
|
||||
@@ -1684,7 +1684,7 @@ void AnimTask_AirCutterProjectile(u8 taskId)
|
||||
if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
||||
&& IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget)))
|
||||
{
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, 0, &targetX, &targetY);
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, FALSE, &targetX, &targetY);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1838,8 +1838,8 @@ static void AnimBulletSeed_Step1(struct Sprite *sprite)
|
||||
{
|
||||
int i;
|
||||
u16 rand;
|
||||
s16* ptr;
|
||||
PlaySE12WithPanning(SE_M_HORN_ATTACK, BattleAnimAdjustPanning(63));
|
||||
s16 *ptr;
|
||||
PlaySE12WithPanning(SE_M_HORN_ATTACK, BattleAnimAdjustPanning(SOUND_PAN_TARGET));
|
||||
sprite->x += sprite->x2;
|
||||
sprite->y += sprite->y2;
|
||||
sprite->y2 = 0;
|
||||
@@ -2035,7 +2035,7 @@ static void AnimTask_GrowAndGrayscale_Step(u8 taskId)
|
||||
// No args.
|
||||
void AnimTask_Minimize(u8 taskId)
|
||||
{
|
||||
struct Task* task = &gTasks[taskId];
|
||||
struct Task *task = &gTasks[taskId];
|
||||
u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
|
||||
task->data[0] = spriteId;
|
||||
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
|
||||
@@ -2051,7 +2051,7 @@ void AnimTask_Minimize(u8 taskId)
|
||||
|
||||
static void AnimTask_Minimize_Step(u8 taskId)
|
||||
{
|
||||
struct Task* task = &gTasks[taskId];
|
||||
struct Task *task = &gTasks[taskId];
|
||||
switch (task->data[1])
|
||||
{
|
||||
case 0:
|
||||
@@ -2115,7 +2115,7 @@ static void AnimTask_Minimize_Step(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
static void CreateMinimizeSprite(struct Task* task, u8 taskId)
|
||||
static void CreateMinimizeSprite(struct Task *task, u8 taskId)
|
||||
{
|
||||
u16 matrixNum;
|
||||
s16 spriteId = CloneBattlerSpriteWithBlend(ANIM_ATTACKER);
|
||||
@@ -2160,7 +2160,7 @@ static void ClonedMinizeSprite_Step(struct Sprite *sprite)
|
||||
// arg 1: num hops
|
||||
void AnimTask_Splash(u8 taskId)
|
||||
{
|
||||
struct Task* task = &gTasks[taskId];
|
||||
struct Task *task = &gTasks[taskId];
|
||||
if (gBattleAnimArgs[1] == 0)
|
||||
{
|
||||
DestroyAnimVisualTask(taskId);
|
||||
@@ -2180,7 +2180,7 @@ void AnimTask_Splash(u8 taskId)
|
||||
|
||||
static void AnimTask_Splash_Step(u8 taskId)
|
||||
{
|
||||
struct Task* task = &gTasks[taskId];
|
||||
struct Task *task = &gTasks[taskId];
|
||||
switch (task->data[1])
|
||||
{
|
||||
case 0:
|
||||
@@ -2234,7 +2234,7 @@ static void AnimTask_Splash_Step(u8 taskId)
|
||||
// No args.
|
||||
void AnimTask_GrowAndShrink(u8 taskId)
|
||||
{
|
||||
struct Task* task = &gTasks[taskId];
|
||||
struct Task *task = &gTasks[taskId];
|
||||
u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
|
||||
PrepareAffineAnimInTaskData(task, spriteId, gGrowAndShrinkAffineAnimCmds);
|
||||
task->func = AnimTask_GrowAndShrink_Step;
|
||||
@@ -2242,7 +2242,7 @@ void AnimTask_GrowAndShrink(u8 taskId)
|
||||
|
||||
static void AnimTask_GrowAndShrink_Step(u8 taskId)
|
||||
{
|
||||
struct Task* task = &gTasks[taskId];
|
||||
struct Task *task = &gTasks[taskId];
|
||||
if (!RunAffineAnimFromTaskData(task))
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
@@ -2301,7 +2301,7 @@ static void AnimAngerMark(struct Sprite *sprite)
|
||||
// left/right movements
|
||||
void AnimTask_ThrashMoveMonHorizontal(u8 taskId)
|
||||
{
|
||||
struct Task* task = &gTasks[taskId];
|
||||
struct Task *task = &gTasks[taskId];
|
||||
u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
|
||||
task->data[0] = spriteId;
|
||||
task->data[1] = 0;
|
||||
@@ -2311,7 +2311,7 @@ void AnimTask_ThrashMoveMonHorizontal(u8 taskId)
|
||||
|
||||
static void AnimTask_ThrashMoveMonHorizontal_Step(u8 taskId)
|
||||
{
|
||||
struct Task* task = &gTasks[taskId];
|
||||
struct Task *task = &gTasks[taskId];
|
||||
if (!RunAffineAnimFromTaskData(task))
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
@@ -2319,7 +2319,7 @@ static void AnimTask_ThrashMoveMonHorizontal_Step(u8 taskId)
|
||||
// up/down movements
|
||||
void AnimTask_ThrashMoveMonVertical(u8 taskId)
|
||||
{
|
||||
struct Task* task = &gTasks[taskId];
|
||||
struct Task *task = &gTasks[taskId];
|
||||
task->data[0] = GetAnimBattlerSpriteId(ANIM_ATTACKER);
|
||||
task->data[1] = 0;
|
||||
task->data[2] = 4;
|
||||
@@ -2338,7 +2338,7 @@ void AnimTask_ThrashMoveMonVertical(u8 taskId)
|
||||
|
||||
static void AnimTask_ThrashMoveMonVertical_Step(u8 taskId)
|
||||
{
|
||||
struct Task* task = &gTasks[taskId];
|
||||
struct Task *task = &gTasks[taskId];
|
||||
if (++task->data[7] > 2)
|
||||
{
|
||||
task->data[7] = 0;
|
||||
@@ -2389,7 +2389,7 @@ static void AnimTask_ThrashMoveMonVertical_Step(u8 taskId)
|
||||
|
||||
void AnimTask_SketchDrawMon(u8 taskId)
|
||||
{
|
||||
struct Task* task = &gTasks[taskId];
|
||||
struct Task *task = &gTasks[taskId];
|
||||
struct ScanlineEffectParams params;
|
||||
|
||||
s16 i;
|
||||
@@ -2430,7 +2430,7 @@ void AnimTask_SketchDrawMon(u8 taskId)
|
||||
|
||||
static void AnimTask_SketchDrawMon_Step(u8 taskId)
|
||||
{
|
||||
struct Task* task = &gTasks[taskId];
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
switch (task->data[4])
|
||||
{
|
||||
@@ -2485,7 +2485,7 @@ static void AnimPencil(struct Sprite *sprite)
|
||||
sprite->data[3] = 16;
|
||||
sprite->data[4] = 0;
|
||||
sprite->data[5] = GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_HEIGHT) + 2;
|
||||
sprite->data[6] = BattleAnimAdjustPanning(63);
|
||||
sprite->data[6] = BattleAnimAdjustPanning(SOUND_PAN_TARGET);
|
||||
sprite->callback = AnimPencil_Step;
|
||||
}
|
||||
|
||||
@@ -2678,7 +2678,7 @@ static void AnimUproarRing(struct Sprite *sprite)
|
||||
u8 index = IndexOfSpritePaletteTag(ANIM_TAG_THIN_RING);
|
||||
if (index != 0xFF)
|
||||
{
|
||||
BlendPalette(((index << 20) + 0x1010000) >> 16, 15, gBattleAnimArgs[5], gBattleAnimArgs[4]);
|
||||
BlendPalette((OBJ_PLTT_ID(index) + 1), 15, gBattleAnimArgs[5], gBattleAnimArgs[4]);
|
||||
}
|
||||
|
||||
StartSpriteAffineAnim(sprite, 1);
|
||||
@@ -2791,7 +2791,7 @@ static void AnimSoftBoiledEgg_Step4_Callback(struct Sprite *sprite)
|
||||
// Used by Extremespeed
|
||||
void AnimTask_AttackerStretchAndDisappear(u8 taskId)
|
||||
{
|
||||
struct Task* task = &gTasks[taskId];
|
||||
struct Task *task = &gTasks[taskId];
|
||||
u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
|
||||
task->data[0] = spriteId;
|
||||
PrepareAffineAnimInTaskData(task, spriteId, gStretchAttackerAffineAnimCmds);
|
||||
@@ -2800,7 +2800,7 @@ void AnimTask_AttackerStretchAndDisappear(u8 taskId)
|
||||
|
||||
static void AnimTask_AttackerStretchAndDisappear_Step(u8 taskId)
|
||||
{
|
||||
struct Task* task = &gTasks[taskId];
|
||||
struct Task *task = &gTasks[taskId];
|
||||
if (!RunAffineAnimFromTaskData(task))
|
||||
{
|
||||
gSprites[task->data[0]].y2 = 0;
|
||||
@@ -2811,7 +2811,7 @@ static void AnimTask_AttackerStretchAndDisappear_Step(u8 taskId)
|
||||
|
||||
void AnimTask_ExtremeSpeedImpact(u8 taskId)
|
||||
{
|
||||
struct Task* task = &gTasks[taskId];
|
||||
struct Task *task = &gTasks[taskId];
|
||||
task->data[0] = 0;
|
||||
task->data[1] = 0;
|
||||
task->data[2] = 0;
|
||||
@@ -2834,7 +2834,7 @@ void AnimTask_ExtremeSpeedImpact(u8 taskId)
|
||||
|
||||
static void AnimTask_ExtremeSpeedImpact_Step(u8 taskId)
|
||||
{
|
||||
struct Task* task = &gTasks[taskId];
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
switch (task->data[0])
|
||||
{
|
||||
@@ -2880,7 +2880,7 @@ static void AnimTask_ExtremeSpeedImpact_Step(u8 taskId)
|
||||
|
||||
void AnimTask_ExtremeSpeedMonReappear(u8 taskId)
|
||||
{
|
||||
struct Task* task = &gTasks[taskId];
|
||||
struct Task *task = &gTasks[taskId];
|
||||
task->data[0] = 0;
|
||||
task->data[1] = 0;
|
||||
task->data[2] = 0;
|
||||
@@ -2894,7 +2894,7 @@ void AnimTask_ExtremeSpeedMonReappear(u8 taskId)
|
||||
|
||||
static void AnimTask_ExtremeSpeedMonReappear_Step(u8 taskId)
|
||||
{
|
||||
struct Task* task = &gTasks[taskId];
|
||||
struct Task *task = &gTasks[taskId];
|
||||
if (task->data[0] == 0 && ++task->data[1] > task->data[4])
|
||||
{
|
||||
task->data[1] = 0;
|
||||
@@ -2922,7 +2922,7 @@ static void AnimTask_ExtremeSpeedMonReappear_Step(u8 taskId)
|
||||
|
||||
void AnimTask_SpeedDust(u8 taskId)
|
||||
{
|
||||
struct Task* task = &gTasks[taskId];
|
||||
struct Task *task = &gTasks[taskId];
|
||||
task->data[0] = 0;
|
||||
task->data[1] = 4;
|
||||
task->data[2] = 0;
|
||||
@@ -2940,7 +2940,7 @@ void AnimTask_SpeedDust(u8 taskId)
|
||||
|
||||
static void AnimTask_SpeedDust_Step(u8 taskId)
|
||||
{
|
||||
struct Task* task = &gTasks[taskId];
|
||||
struct Task *task = &gTasks[taskId];
|
||||
switch (task->data[8])
|
||||
{
|
||||
case 0:
|
||||
@@ -3026,7 +3026,7 @@ void AnimTask_LoadMusicNotesPals(u8 taskId)
|
||||
gMonSpritesGfxPtr->buffer = AllocZeroed(0x2000);
|
||||
LZDecompressWram(gBattleAnimSpritePal_MusicNotes2, gMonSpritesGfxPtr->buffer);
|
||||
for (i = 0; i < NUM_MUSIC_NOTE_PAL_TAGS; i++)
|
||||
LoadPalette(&gMonSpritesGfxPtr->buffer[i * 32], (u16)((paletteNums[i] << 4) + 0x100), 32);
|
||||
LoadPalette(&gMonSpritesGfxPtr->buffer[i * 32], (u16)(OBJ_PLTT_ID(paletteNums[i])), PLTT_SIZE_4BPP);
|
||||
|
||||
FREE_AND_SET_NULL(gMonSpritesGfxPtr->buffer);
|
||||
DestroyAnimVisualTask(taskId);
|
||||
@@ -3043,9 +3043,7 @@ void AnimTask_FreeMusicNotesPals(u8 taskId)
|
||||
|
||||
static void SetMusicNotePalette(struct Sprite *sprite, u8 a, u8 b)
|
||||
{
|
||||
u8 tile;
|
||||
tile = (b & 1);
|
||||
tile = ((-tile | tile) >> 31) & 32;
|
||||
u8 tile = (b & 1) ? 32 : 0;
|
||||
sprite->oam.tileNum += tile + (a << 2);
|
||||
sprite->oam.paletteNum = IndexOfSpritePaletteTag(sMusicNotePaletteTagsTable[b >> 1]);
|
||||
}
|
||||
@@ -3116,7 +3114,7 @@ static void AnimTask_FakeOut_Step2(u8 taskId)
|
||||
{
|
||||
gTasks[taskId].data[11] = 0x88;
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_LIGHTEN);
|
||||
BlendPalettes(GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0), 16, RGB(31, 31, 31));
|
||||
BlendPalettes(GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), 16, RGB(31, 31, 31));
|
||||
}
|
||||
else if (gTasks[taskId].data[10] > 4)
|
||||
{
|
||||
@@ -3261,7 +3259,7 @@ void AnimTask_HeartsBackground(u8 taskId)
|
||||
GetBattleAnimBg1Data(&animBg);
|
||||
AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBgImage_Attract, animBg.tilesOffset);
|
||||
AnimLoadCompressedBgTilemapHandleContest(&animBg, gBattleAnimBgTilemap_Attract, FALSE);
|
||||
LoadCompressedPalette(gBattleAnimBgPalette_Attract, animBg.paletteId * 16, 32);
|
||||
LoadCompressedPalette(gBattleAnimBgPalette_Attract, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
|
||||
gTasks[taskId].func = AnimTask_HeartsBackground_Step;
|
||||
}
|
||||
|
||||
@@ -3345,7 +3343,7 @@ void AnimTask_ScaryFace(u8 taskId)
|
||||
AnimLoadCompressedBgTilemapHandleContest(&animBg, &gBattleAnimBgTilemap_ScaryFaceOpponent, FALSE);
|
||||
|
||||
AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBgImage_ScaryFace, animBg.tilesOffset);
|
||||
LoadCompressedPalette(gBattleAnimBgPalette_ScaryFace, animBg.paletteId * 16, 32);
|
||||
LoadCompressedPalette(gBattleAnimBgPalette_ScaryFace, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
|
||||
gTasks[taskId].func = AnimTask_ScaryFace_Step;
|
||||
}
|
||||
|
||||
@@ -3720,7 +3718,7 @@ static void AnimPerishSongMusicNote2(struct Sprite *sprite)
|
||||
}
|
||||
|
||||
if (++sprite->data[0] == sprite->data[1])
|
||||
SetGrayscaleOrOriginalPalette(sprite->oam.paletteNum + 16, 0);
|
||||
SetGrayscaleOrOriginalPalette(sprite->oam.paletteNum + 16, FALSE);
|
||||
|
||||
if (sprite->data[0] == sprite->data[1] + 80)
|
||||
DestroyAnimSprite(sprite);
|
||||
@@ -3792,8 +3790,7 @@ static void AnimPerishSongMusicNote_Step2(struct Sprite *sprite)
|
||||
|
||||
if (sprite->data[4] > 3)
|
||||
{
|
||||
int var1 = sprite->data[2];
|
||||
sprite->invisible = var1 - (((s32)(var1 + ((u32)var1 >> 31)) >> 1) << 1);
|
||||
sprite->invisible = sprite->data[2] % 2;
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
@@ -3807,7 +3804,7 @@ static void AnimGuardRing(struct Sprite *sprite)
|
||||
{
|
||||
if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
|
||||
{
|
||||
SetAverageBattlerPositions(gBattleAnimAttacker, 0, &sprite->x, &sprite->y);
|
||||
SetAverageBattlerPositions(gBattleAnimAttacker, FALSE, &sprite->x, &sprite->y);
|
||||
sprite->y += 40;
|
||||
|
||||
StartSpriteAffineAnim(sprite, 1);
|
||||
|
||||
+186
-109
@@ -1213,7 +1213,7 @@ void AnimTask_SmokescreenImpact(u8 taskId)
|
||||
SmokescreenImpact(
|
||||
GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + 8,
|
||||
GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + 8,
|
||||
0);
|
||||
FALSE);
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
@@ -1646,7 +1646,7 @@ static void AnimClappingHand_Step(struct Sprite *sprite)
|
||||
sprite->data[2]++;
|
||||
if (sprite->data[3] == 0)
|
||||
{
|
||||
PlaySE1WithPanning(SE_M_ENCORE, BattleAnimAdjustPanning(-64));
|
||||
PlaySE1WithPanning(SE_M_ENCORE, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1930,7 +1930,7 @@ static void TormentAttacker_Step(u8 taskId)
|
||||
|
||||
y = task->data[3] + task->data[5];
|
||||
spriteId = CreateSprite(&gThoughtBubbleSpriteTemplate, x, y, 6 - task->data[1]);
|
||||
PlaySE12WithPanning(SE_M_METRONOME, BattleAnimAdjustPanning(-64));
|
||||
PlaySE12WithPanning(SE_M_METRONOME, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER));
|
||||
|
||||
if (spriteId != MAX_SPRITES)
|
||||
{
|
||||
@@ -2107,7 +2107,7 @@ static void AnimWishStar(struct Sprite *sprite)
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
sprite->x = -16;
|
||||
else
|
||||
sprite->x = 256;
|
||||
sprite->x = DISPLAY_WIDTH + 16;
|
||||
|
||||
sprite->y = 0;
|
||||
sprite->callback = AnimWishStar_Step;
|
||||
@@ -2136,7 +2136,7 @@ static void AnimWishStar_Step(struct Sprite *sprite)
|
||||
}
|
||||
|
||||
newX = sprite->x + sprite->x2 + 32;
|
||||
if (newX > 304)
|
||||
if (newX > DISPLAY_WIDTH + 64)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
@@ -2405,13 +2405,13 @@ void AnimTask_MorningSunLightBeam(u8 taskId)
|
||||
}
|
||||
|
||||
AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimMaskImage_LightBeam, animBg.tilesOffset);
|
||||
LoadCompressedPalette(gBattleAnimMaskPalette_LightBeam, animBg.paletteId * 16, 32);
|
||||
LoadCompressedPalette(gBattleAnimMaskPalette_LightBeam, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
|
||||
|
||||
gTasks[taskId].data[10] = gBattle_BG1_X;
|
||||
gTasks[taskId].data[11] = gBattle_BG1_Y;
|
||||
|
||||
gTasks[taskId].data[0]++;
|
||||
PlaySE12WithPanning(SE_M_MORNING_SUN, BattleAnimAdjustPanning(-64));
|
||||
PlaySE12WithPanning(SE_M_MORNING_SUN, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER));
|
||||
break;
|
||||
case 1:
|
||||
if (gTasks[taskId].data[4]++ > 0)
|
||||
@@ -2446,7 +2446,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId)
|
||||
{
|
||||
gTasks[taskId].data[3] = 0;
|
||||
gTasks[taskId].data[0] = 1;
|
||||
PlaySE12WithPanning(SE_M_MORNING_SUN, BattleAnimAdjustPanning(-64));
|
||||
PlaySE12WithPanning(SE_M_MORNING_SUN, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER));
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
@@ -2601,7 +2601,7 @@ void AnimTask_DoomDesireLightBeam(u8 taskId)
|
||||
}
|
||||
|
||||
AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimMaskImage_LightBeam, animBg.tilesOffset);
|
||||
LoadCompressedPalette(gBattleAnimMaskPalette_LightBeam, animBg.paletteId * 16, 32);
|
||||
LoadCompressedPalette(gBattleAnimMaskPalette_LightBeam, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
|
||||
gTasks[taskId].data[10] = gBattle_BG1_X;
|
||||
gTasks[taskId].data[11] = gBattle_BG1_Y;
|
||||
gTasks[taskId].data[0]++;
|
||||
@@ -2677,7 +2677,7 @@ static void AnimWeakFrustrationAngerMark(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[0] == 0)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, 0);
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
sprite->data[0]++;
|
||||
}
|
||||
else if (sprite->data[0]++ > 20)
|
||||
@@ -3183,7 +3183,7 @@ static void AnimReversalOrb_Step(struct Sprite *sprite)
|
||||
// Copies the target mon's sprite, and makes a white silhouette that shrinks away.
|
||||
void AnimTask_RolePlaySilhouette(u8 taskId)
|
||||
{
|
||||
u8 isBackPic;
|
||||
bool8 isBackPic;
|
||||
u32 personality;
|
||||
u32 otId;
|
||||
u16 species;
|
||||
@@ -3206,7 +3206,7 @@ void AnimTask_RolePlaySilhouette(u8 taskId)
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
{
|
||||
isBackPic = 0;
|
||||
isBackPic = FALSE;
|
||||
personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY);
|
||||
otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID);
|
||||
if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE)
|
||||
@@ -3226,7 +3226,7 @@ void AnimTask_RolePlaySilhouette(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
isBackPic = 1;
|
||||
isBackPic = TRUE;
|
||||
personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY);
|
||||
otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID);
|
||||
if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE)
|
||||
@@ -3252,7 +3252,7 @@ void AnimTask_RolePlaySilhouette(u8 taskId)
|
||||
|
||||
gSprites[spriteId].oam.priority = priority;
|
||||
gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND;
|
||||
FillPalette(RGB_WHITE, (gSprites[spriteId].oam.paletteNum << 4) + 0x100, 32);
|
||||
FillPalette(RGB_WHITE, OBJ_PLTT_ID(gSprites[spriteId].oam.paletteNum), PLTT_SIZE_4BPP);
|
||||
gSprites[spriteId].oam.priority = priority;
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[1], 16 - gTasks[taskId].data[1]));
|
||||
@@ -3717,6 +3717,26 @@ void AnimTask_SlideMonForFocusBand(u8 taskId)
|
||||
gTasks[taskId].func = AnimTask_SlideMonForFocusBand_Step1;
|
||||
}
|
||||
|
||||
#define IDX_ACTIVE_SPRITES 2 // Used by the sprite callback to modify the number of active sprites
|
||||
|
||||
// Task data for AnimTask_SquishAndSweatDroplets
|
||||
#define tState data[0]
|
||||
#define tTimer data[1]
|
||||
#define tActiveSprites data[IDX_ACTIVE_SPRITES]
|
||||
#define tNumSquishes data[3]
|
||||
#define tBaseX data[4]
|
||||
#define tBaseY data[5]
|
||||
#define tSubpriority data[6]
|
||||
// data[7]-data[15] used by PrepareAffineAnimInTaskData
|
||||
#define tBattlerSpriteId data[15]
|
||||
|
||||
// Sprite data for AnimFacadeSweatDrop
|
||||
#define sTimer data[0]
|
||||
#define sVelocX data[1]
|
||||
#define sVelocY data[2]
|
||||
#define sTaskId data[3]
|
||||
#define sActiveSpritesIdx data[4]
|
||||
|
||||
// Squishes the mon vertically and emits sweat droplets a few times.
|
||||
// arg 0: battler
|
||||
// arg 1: num squishes
|
||||
@@ -3728,20 +3748,20 @@ void AnimTask_SquishAndSweatDroplets(u8 taskId)
|
||||
if (!gBattleAnimArgs[1])
|
||||
DestroyAnimVisualTask(taskId);
|
||||
|
||||
task->data[0] = 0;
|
||||
task->data[1] = 0;
|
||||
task->data[2] = 0;
|
||||
task->data[3] = gBattleAnimArgs[1];
|
||||
task->tState = 0;
|
||||
task->tTimer = 0;
|
||||
task->tActiveSprites = 0;
|
||||
task->tNumSquishes = gBattleAnimArgs[1];
|
||||
if (gBattleAnimArgs[0] == ANIM_ATTACKER)
|
||||
battler = gBattleAnimAttacker;
|
||||
else
|
||||
battler = gBattleAnimTarget;
|
||||
|
||||
task->data[4] = GetBattlerSpriteCoord(battler, BATTLER_COORD_X);
|
||||
task->data[5] = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y);
|
||||
task->data[6] = GetBattlerSpriteSubpriority(battler);
|
||||
task->data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
|
||||
PrepareAffineAnimInTaskData(task, task->data[15], gFacadeSquishAffineAnimCmds);
|
||||
task->tBaseX = GetBattlerSpriteCoord(battler, BATTLER_COORD_X);
|
||||
task->tBaseY = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y);
|
||||
task->tSubpriority = GetBattlerSpriteSubpriority(battler);
|
||||
task->tBattlerSpriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
|
||||
PrepareAffineAnimInTaskData(task, task->tBattlerSpriteId, gFacadeSquishAffineAnimCmds);
|
||||
task->func = AnimTask_SquishAndSweatDroplets_Step;
|
||||
}
|
||||
|
||||
@@ -3749,37 +3769,40 @@ static void AnimTask_SquishAndSweatDroplets_Step(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
switch (task->data[0])
|
||||
switch (task->tState)
|
||||
{
|
||||
case 0:
|
||||
task->data[1]++;
|
||||
if (task->data[1] == 6)
|
||||
task->tTimer++;
|
||||
if (task->tTimer == 6)
|
||||
CreateSweatDroplets(taskId, TRUE);
|
||||
|
||||
if (task->data[1] == 18)
|
||||
if (task->tTimer == 18)
|
||||
CreateSweatDroplets(taskId, FALSE);
|
||||
|
||||
if (!RunAffineAnimFromTaskData(task))
|
||||
{
|
||||
if (--task->data[3] == 0)
|
||||
if (--task->tNumSquishes == 0)
|
||||
{
|
||||
task->data[0]++;
|
||||
// Animation is finished
|
||||
task->tState++;
|
||||
}
|
||||
else
|
||||
{
|
||||
task->data[1] = 0;
|
||||
PrepareAffineAnimInTaskData(task, task->data[15], gFacadeSquishAffineAnimCmds);
|
||||
// Animation continues, more droplet sprites to create
|
||||
task->tTimer = 0;
|
||||
PrepareAffineAnimInTaskData(task, task->tBattlerSpriteId, gFacadeSquishAffineAnimCmds);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (task->data[2] == 0)
|
||||
// Wait for sprites to be destroyed before ending task
|
||||
if (task->tActiveSprites == 0)
|
||||
DestroyAnimVisualTask(taskId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void CreateSweatDroplets(u8 taskId, bool8 arg1)
|
||||
static void CreateSweatDroplets(u8 taskId, bool8 lowerDroplets)
|
||||
{
|
||||
u8 i;
|
||||
s8 xOffset, yOffset;
|
||||
@@ -3788,7 +3811,7 @@ static void CreateSweatDroplets(u8 taskId, bool8 arg1)
|
||||
s16 yCoords[2];
|
||||
|
||||
task = &gTasks[taskId];
|
||||
if (!arg1)
|
||||
if (!lowerDroplets)
|
||||
{
|
||||
xOffset = 18;
|
||||
yOffset = -20;
|
||||
@@ -3799,39 +3822,54 @@ static void CreateSweatDroplets(u8 taskId, bool8 arg1)
|
||||
yOffset = 20;
|
||||
}
|
||||
|
||||
xCoords[0] = task->data[4] - xOffset;
|
||||
xCoords[1] = task->data[4] - xOffset - 4;
|
||||
xCoords[2] = task->data[4] + xOffset;
|
||||
xCoords[3] = task->data[4] + xOffset + 4;
|
||||
yCoords[0] = task->data[5] + yOffset;
|
||||
yCoords[1] = task->data[5] + yOffset + 6;
|
||||
xCoords[0] = task->tBaseX - xOffset;
|
||||
xCoords[1] = task->tBaseX - xOffset - 4;
|
||||
xCoords[2] = task->tBaseX + xOffset;
|
||||
xCoords[3] = task->tBaseX + xOffset + 4;
|
||||
yCoords[0] = task->tBaseY + yOffset;
|
||||
yCoords[1] = task->tBaseY + yOffset + 6;
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
u8 spriteId = CreateSprite(&gFacadeSweatDropSpriteTemplate, xCoords[i], yCoords[i & 1], task->data[6] - 5);
|
||||
u8 spriteId = CreateSprite(&gFacadeSweatDropSpriteTemplate, xCoords[i], yCoords[i & 1], task->tSubpriority - 5);
|
||||
if (spriteId != MAX_SPRITES)
|
||||
{
|
||||
gSprites[spriteId].data[0] = 0;
|
||||
gSprites[spriteId].data[1] = i < 2 ? -2 : 2;
|
||||
gSprites[spriteId].data[2] = -1;
|
||||
gSprites[spriteId].data[3] = taskId;
|
||||
gSprites[spriteId].data[4] = 2;
|
||||
task->data[2]++;
|
||||
gSprites[spriteId].sTimer = 0;
|
||||
gSprites[spriteId].sVelocX = i < 2 ? -2 : 2; // First two travel left, remaining travel right
|
||||
gSprites[spriteId].sVelocY = -1;
|
||||
gSprites[spriteId].sTaskId = taskId;
|
||||
gSprites[spriteId].sActiveSpritesIdx = IDX_ACTIVE_SPRITES;
|
||||
task->tActiveSprites++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void AnimFacadeSweatDrop(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x += sprite->data[1];
|
||||
sprite->y += sprite->data[2];
|
||||
if (++sprite->data[0] > 6)
|
||||
sprite->x += sprite->sVelocX;
|
||||
sprite->y += sprite->sVelocY;
|
||||
if (++sprite->sTimer > 6)
|
||||
{
|
||||
gTasks[sprite->data[3]].data[sprite->data[4]]--;
|
||||
gTasks[sprite->sTaskId].data[sprite->sActiveSpritesIdx]--;
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
}
|
||||
|
||||
#undef IDX_ACTIVE_SPRITES
|
||||
#undef tState
|
||||
#undef tTimer
|
||||
#undef tActiveSprites
|
||||
#undef tNumSquishes
|
||||
#undef tBaseX
|
||||
#undef tBaseY
|
||||
#undef tSubpriority
|
||||
#undef tBattlerSpriteId
|
||||
#undef sTimer
|
||||
#undef sVelocX
|
||||
#undef sVelocY
|
||||
#undef sTaskId
|
||||
#undef sActiveSpritesIdx
|
||||
|
||||
// Blends the mon sprite's color with a rotating set of colors.
|
||||
// arg 0: battler
|
||||
// arg 1: duration
|
||||
@@ -3842,7 +3880,7 @@ void AnimTask_FacadeColorBlend(u8 taskId)
|
||||
gTasks[taskId].data[0] = 0;
|
||||
gTasks[taskId].data[1] = gBattleAnimArgs[1];
|
||||
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
|
||||
gTasks[taskId].data[2] = 0x100 + gSprites[spriteId].oam.paletteNum * 16;
|
||||
gTasks[taskId].data[2] = OBJ_PLTT_ID(gSprites[spriteId].oam.paletteNum);
|
||||
gTasks[taskId].func = AnimTask_FacadeColorBlend_Step;
|
||||
}
|
||||
|
||||
@@ -3927,6 +3965,26 @@ static void AnimRoarNoiseLine_Step(struct Sprite *sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
#define IDX_ACTIVE_SPRITES 10 // Used by the sprite callback to modify the number of active sprites
|
||||
|
||||
// Task data for AnimTask_GlareEyeDots
|
||||
#define tState data[0]
|
||||
#define tTimer data[1]
|
||||
#define tPairNum data[2]
|
||||
#define tPairMax data[5]
|
||||
#define tDotOffset data[6]
|
||||
#define tIsContest data[7]
|
||||
#define tActiveSprites data[IDX_ACTIVE_SPRITES]
|
||||
#define tStartX data[11]
|
||||
#define tStartY data[12]
|
||||
#define tEndX data[13]
|
||||
#define tEndY data[14]
|
||||
|
||||
// Sprite data for AnimGlareEyeDot
|
||||
#define sTimer data[0]
|
||||
#define sTaskId data[1]
|
||||
#define sActiveSpritesIdx data[2]
|
||||
|
||||
// Makes a series of dots in a trail from the attacker to the target.
|
||||
// arg 0: unused
|
||||
void AnimTask_GlareEyeDots(u8 taskId)
|
||||
@@ -3935,25 +3993,25 @@ void AnimTask_GlareEyeDots(u8 taskId)
|
||||
|
||||
if (IsContest())
|
||||
{
|
||||
task->data[5] = 8;
|
||||
task->data[6] = 3;
|
||||
task->data[7] = 1;
|
||||
task->tPairMax = 8;
|
||||
task->tDotOffset = 3;
|
||||
task->tIsContest = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
task->data[5] = 12;
|
||||
task->data[6] = 3;
|
||||
task->data[7] = 0;
|
||||
task->tPairMax = 12;
|
||||
task->tDotOffset = 3;
|
||||
task->tIsContest = FALSE;
|
||||
}
|
||||
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||
task->data[11] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4;
|
||||
task->tStartX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4;
|
||||
else
|
||||
task->data[11] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) - GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4;
|
||||
task->tStartX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) - GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4;
|
||||
|
||||
task->data[12] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) - GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4;
|
||||
task->data[13] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
|
||||
task->data[14] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
task->tStartY = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) - GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4;
|
||||
task->tEndX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
|
||||
task->tEndY = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
task->func = AnimTask_GlareEyeDots_Step;
|
||||
}
|
||||
|
||||
@@ -3963,103 +4021,122 @@ static void AnimTask_GlareEyeDots_Step(u8 taskId)
|
||||
s16 x, y;
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
switch (task->data[0])
|
||||
switch (task->tState)
|
||||
{
|
||||
case 0:
|
||||
if (++task->data[1] > 3)
|
||||
// Wait to create next pair of dots
|
||||
if (++task->tTimer > 3)
|
||||
{
|
||||
task->data[1] = 0;
|
||||
task->tTimer = 0;
|
||||
GetGlareEyeDotCoords(
|
||||
task->data[11],
|
||||
task->data[12],
|
||||
task->data[13],
|
||||
task->data[14],
|
||||
task->data[5],
|
||||
task->data[2],
|
||||
task->tStartX,
|
||||
task->tStartY,
|
||||
task->tEndX,
|
||||
task->tEndY,
|
||||
task->tPairMax,
|
||||
task->tPairNum,
|
||||
&x,
|
||||
&y);
|
||||
|
||||
// Create dot pair
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
u8 spriteId = CreateSprite(&gGlareEyeDotSpriteTemplate, x, y, 35);
|
||||
if (spriteId != MAX_SPRITES)
|
||||
{
|
||||
if (task->data[7] == 0)
|
||||
if (!task->tIsContest)
|
||||
{
|
||||
if (i == 0)
|
||||
gSprites[spriteId].x2 = gSprites[spriteId].y2 = -task->data[6];
|
||||
gSprites[spriteId].x2 = gSprites[spriteId].y2 = -task->tDotOffset;
|
||||
else
|
||||
gSprites[spriteId].x2 = gSprites[spriteId].y2 = task->data[6];
|
||||
gSprites[spriteId].x2 = gSprites[spriteId].y2 = task->tDotOffset;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (i == 0)
|
||||
{
|
||||
gSprites[spriteId].x2 = -task->data[6];
|
||||
gSprites[spriteId].y2 = task->data[6];
|
||||
gSprites[spriteId].x2 = -task->tDotOffset;
|
||||
gSprites[spriteId].y2 = task->tDotOffset;
|
||||
}
|
||||
else
|
||||
{
|
||||
gSprites[spriteId].x2 = task->data[6];
|
||||
gSprites[spriteId].y2 = -task->data[6];
|
||||
gSprites[spriteId].x2 = task->tDotOffset;
|
||||
gSprites[spriteId].y2 = -task->tDotOffset;
|
||||
}
|
||||
}
|
||||
|
||||
gSprites[spriteId].data[0] = 0;
|
||||
gSprites[spriteId].data[1] = taskId;
|
||||
gSprites[spriteId].data[2] = 10;
|
||||
task->data[10]++;
|
||||
gSprites[spriteId].sTimer = 0;
|
||||
gSprites[spriteId].sTaskId = taskId;
|
||||
gSprites[spriteId].sActiveSpritesIdx = IDX_ACTIVE_SPRITES;
|
||||
task->tActiveSprites++;
|
||||
}
|
||||
}
|
||||
|
||||
if (task->data[2] == task->data[5])
|
||||
task->data[0]++;
|
||||
if (task->tPairNum == task->tPairMax)
|
||||
task->tState++;
|
||||
|
||||
task->data[2]++;
|
||||
task->tPairNum++;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (task->data[10] == 0)
|
||||
// Wait for sprites to be destroyed before ending task
|
||||
if (task->tActiveSprites == 0)
|
||||
DestroyAnimVisualTask(taskId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void GetGlareEyeDotCoords(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u8 arg4, u8 arg5, s16 *x, s16 *y)
|
||||
static void GetGlareEyeDotCoords(s16 startX, s16 startY, s16 endX, s16 endY, u8 pairMax, u8 pairNum, s16 *x, s16 *y)
|
||||
{
|
||||
int x2;
|
||||
int y2;
|
||||
|
||||
if (arg5 == 0)
|
||||
if (pairNum == 0)
|
||||
{
|
||||
*x = arg0;
|
||||
*y = arg1;
|
||||
*x = startX;
|
||||
*y = startY;
|
||||
return;
|
||||
}
|
||||
|
||||
if (arg5 >= arg4)
|
||||
if (pairNum >= pairMax)
|
||||
{
|
||||
*x = arg2;
|
||||
*y = arg3;
|
||||
*x = endX;
|
||||
*y = endY;
|
||||
return;
|
||||
}
|
||||
|
||||
arg4--;
|
||||
x2 = (arg0 << 8) + arg5 * (((arg2 - arg0) << 8) / arg4);
|
||||
y2 = (arg1 << 8) + arg5 * (((arg3 - arg1) << 8) / arg4);
|
||||
pairMax--;
|
||||
x2 = (startX << 8) + pairNum * (((endX - startX) << 8) / pairMax);
|
||||
y2 = (startY << 8) + pairNum * (((endY - startY) << 8) / pairMax);
|
||||
*x = x2 >> 8;
|
||||
*y = y2 >> 8;
|
||||
}
|
||||
|
||||
static void AnimGlareEyeDot(struct Sprite *sprite)
|
||||
{
|
||||
if (++sprite->data[0] > 36)
|
||||
if (++sprite->sTimer > 36)
|
||||
{
|
||||
gTasks[sprite->data[1]].data[sprite->data[2]]--;
|
||||
gTasks[sprite->sTaskId].data[sprite->sActiveSpritesIdx]--;
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
}
|
||||
|
||||
#undef IDX_ACTIVE_SPRITES
|
||||
#undef tState
|
||||
#undef tTimer
|
||||
#undef tPairNum
|
||||
#undef tPairMax
|
||||
#undef tDotOffset
|
||||
#undef tIsContest
|
||||
#undef tActiveSprites
|
||||
#undef tStartX
|
||||
#undef tStartY
|
||||
#undef tEndX
|
||||
#undef tEndY
|
||||
#undef sTimer
|
||||
#undef sTaskId
|
||||
#undef sActiveSpritesIdx
|
||||
|
||||
// Moves a pawprint in a straight line.
|
||||
// arg 0: initial x position
|
||||
// arg 1: initial y position
|
||||
@@ -4730,7 +4807,7 @@ void AnimTask_MonToSubstitute(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
LoadBattleMonGfxAndAnimate(gBattleAnimAttacker, 0, spriteId);
|
||||
LoadBattleMonGfxAndAnimate(gBattleAnimAttacker, FALSE, spriteId);
|
||||
if (IsContest())
|
||||
{
|
||||
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gAffineAnims_BattleSpriteContest;
|
||||
@@ -4768,7 +4845,7 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId)
|
||||
|
||||
if (gSprites[spriteId].y2 == 0)
|
||||
{
|
||||
PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(-64));
|
||||
PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER));
|
||||
gTasks[taskId].data[10] -= 0x800;
|
||||
gTasks[taskId].data[0]++;
|
||||
}
|
||||
@@ -4790,7 +4867,7 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId)
|
||||
|
||||
if (gSprites[spriteId].y2 == 0)
|
||||
{
|
||||
PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(-64));
|
||||
PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER));
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
break;
|
||||
@@ -4827,7 +4904,7 @@ static void AnimBlockX_Step(struct Sprite *sprite)
|
||||
sprite->y2 += 10;
|
||||
if (sprite->y2 >= 0)
|
||||
{
|
||||
PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(63));
|
||||
PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(SOUND_PAN_TARGET));
|
||||
sprite->y2 = 0;
|
||||
sprite->data[0]++;
|
||||
}
|
||||
@@ -4837,7 +4914,7 @@ static void AnimBlockX_Step(struct Sprite *sprite)
|
||||
sprite->y2 = -(gSineTable[sprite->data[1]] >> 3);
|
||||
if (sprite->data[1] > 0x7F)
|
||||
{
|
||||
PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(63));
|
||||
PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(SOUND_PAN_TARGET));
|
||||
sprite->data[1] = 0;
|
||||
sprite->y2 = 0;
|
||||
sprite->data[0]++;
|
||||
@@ -4856,7 +4933,7 @@ static void AnimBlockX_Step(struct Sprite *sprite)
|
||||
case 3:
|
||||
if (++sprite->data[1] > 8)
|
||||
{
|
||||
PlaySE12WithPanning(SE_M_LEER, BattleAnimAdjustPanning(63));
|
||||
PlaySE12WithPanning(SE_M_LEER, BattleAnimAdjustPanning(SOUND_PAN_TARGET));
|
||||
sprite->data[1] = 0;
|
||||
sprite->data[0]++;
|
||||
}
|
||||
@@ -5020,7 +5097,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId)
|
||||
|
||||
gTasks[taskId].data[1] &= 0xFF;
|
||||
x = gSprites[spriteId].x + gSprites[spriteId].x2;
|
||||
if ((u16)(x + 32) > 304)
|
||||
if (x < -32 || x > DISPLAY_WIDTH + 32)
|
||||
{
|
||||
gTasks[taskId].data[1] = 0;
|
||||
gTasks[taskId].data[0]++;
|
||||
@@ -5068,7 +5145,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId)
|
||||
|
||||
spriteId2 = CreateAdditionalMonSpriteForMoveAnim(species, isBackPic, 0, x, GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y), subpriority, personality, otId, gBattleAnimAttacker, FALSE);
|
||||
if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies != SPECIES_NONE)
|
||||
BlendPalette((gSprites[spriteId2].oam.paletteNum * 16) | 0x100, 16, 6, RGB_WHITE);
|
||||
BlendPalette(OBJ_PLTT_ID(gSprites[spriteId2].oam.paletteNum), 16, 6, RGB_WHITE);
|
||||
|
||||
gTasks[taskId].data[15] = spriteId2;
|
||||
gTasks[taskId].data[0]++;
|
||||
@@ -5103,7 +5180,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
if ((u16)(x + 32) > 304)
|
||||
if (x < -32 || x > DISPLAY_WIDTH + 32)
|
||||
{
|
||||
gTasks[taskId].data[1] = 0;
|
||||
gTasks[taskId].data[0]++;
|
||||
@@ -5150,7 +5227,7 @@ static void AnimUnusedItemBagSteal(struct Sprite *sprite)
|
||||
case 0:
|
||||
if (gBattleAnimArgs[7] == -1)
|
||||
{
|
||||
PlaySE12WithPanning(SE_M_VITAL_THROW, BattleAnimAdjustPanning(63));
|
||||
PlaySE12WithPanning(SE_M_VITAL_THROW, BattleAnimAdjustPanning(SOUND_PAN_TARGET));
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 16;
|
||||
sprite->data[0] = -32;
|
||||
sprite->data[7]++;
|
||||
|
||||
@@ -571,7 +571,7 @@ static void AnimSparkElectricity(struct Sprite *sprite)
|
||||
|
||||
static void AnimZapCannonSpark(struct Sprite *sprite)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
sprite->data[0] = gBattleAnimArgs[3];
|
||||
sprite->data[1] = sprite->x;
|
||||
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
|
||||
@@ -583,7 +583,7 @@ static void AnimZapCannonSpark(struct Sprite *sprite)
|
||||
sprite->data[7] = gBattleAnimArgs[4];
|
||||
sprite->oam.tileNum += gBattleAnimArgs[6] * 4;
|
||||
sprite->callback = AnimZapCannonSpark_Step;
|
||||
AnimZapCannonSpark_Step(sprite);
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
static void AnimZapCannonSpark_Step(struct Sprite *sprite)
|
||||
@@ -1159,7 +1159,7 @@ void AnimTask_ShockWaveProgressingBolt(u8 taskId)
|
||||
task->data[4] = 7;
|
||||
task->data[5] = -1;
|
||||
task->data[11] = 12;
|
||||
task->data[12] = BattleAnimAdjustPanning(task->data[11] - 76);
|
||||
task->data[12] = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER);
|
||||
task->data[13] = BattleAnimAdjustPanning(SOUND_PAN_TARGET);
|
||||
task->data[14] = task->data[12];
|
||||
task->data[15] = (task->data[13] - task->data[12]) / 3;
|
||||
|
||||
@@ -454,7 +454,7 @@ static void AnimBasicFistOrFoot(struct Sprite *sprite)
|
||||
StartSpriteAnim(sprite, gBattleAnimArgs[4]);
|
||||
|
||||
if (gBattleAnimArgs[3] == 0)
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
else
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
|
||||
@@ -492,7 +492,7 @@ static void AnimFistOrFootRandomPos(struct Sprite *sprite)
|
||||
if (Random2() & 1)
|
||||
y *= -1;
|
||||
|
||||
if ((gBattlerPositions[battler] & BIT_SIDE) == B_SIDE_PLAYER)
|
||||
if (GET_BATTLER_SIDE2(battler) == B_SIDE_PLAYER)
|
||||
y += 0xFFF0;
|
||||
|
||||
sprite->x += x;
|
||||
@@ -500,7 +500,7 @@ static void AnimFistOrFootRandomPos(struct Sprite *sprite)
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[1];
|
||||
sprite->data[7] = CreateSprite(&gBasicHitSplatSpriteTemplate, sprite->x, sprite->y, sprite->subpriority + 1);
|
||||
if (sprite->data[7] != 64)
|
||||
if (sprite->data[7] != MAX_SPRITES)
|
||||
{
|
||||
StartSpriteAffineAnim(&gSprites[sprite->data[7]], 0);
|
||||
gSprites[sprite->data[7]].callback = SpriteCallbackDummy;
|
||||
@@ -513,7 +513,7 @@ static void AnimFistOrFootRandomPos_Step(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[0] == 0)
|
||||
{
|
||||
if (sprite->data[7] != 64)
|
||||
if (sprite->data[7] != MAX_SPRITES)
|
||||
{
|
||||
FreeOamMatrix(gSprites[sprite->data[7]].oam.matrixNum);
|
||||
DestroySprite(&gSprites[sprite->data[7]]);
|
||||
@@ -964,7 +964,7 @@ static void AnimArmThrustHit(struct Sprite *sprite)
|
||||
static void AnimRevengeScratch(struct Sprite *sprite)
|
||||
{
|
||||
if (gBattleAnimArgs[2] == ANIM_ATTACKER)
|
||||
InitSpritePosToAnimAttacker(sprite, 0);
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
else
|
||||
InitSpritePosToAnimTarget(sprite, FALSE);
|
||||
|
||||
|
||||
+170
-119
@@ -2,6 +2,7 @@
|
||||
#include "battle_anim.h"
|
||||
#include "constants/rgb.h"
|
||||
#include "constants/songs.h"
|
||||
#include "palette.h"
|
||||
#include "sound.h"
|
||||
#include "util.h"
|
||||
#include "task.h"
|
||||
@@ -26,18 +27,18 @@ static void AnimFireCross(struct Sprite *);
|
||||
static void AnimFireSpiralOutward(struct Sprite *);
|
||||
static void AnimFireSpiralOutward_Step1(struct Sprite *);
|
||||
static void AnimFireSpiralOutward_Step2(struct Sprite *);
|
||||
static void AnimTask_EruptionLaunchRocks_Step(u8 taskId);
|
||||
static void CreateEruptionLaunchRocks(u8 spriteId, u8 taskId, u8 a3);
|
||||
static void AnimTask_EruptionLaunchRocks_Step(u8);
|
||||
static void CreateEruptionLaunchRocks(u8, u8, u8);
|
||||
static void AnimEruptionLaunchRock(struct Sprite *);
|
||||
static u16 GetEruptionLaunchRockInitialYPos(u8 spriteId);
|
||||
static void InitEruptionLaunchRockCoordData(struct Sprite *sprite, s16 x, s16 y);
|
||||
static u16 GetEruptionLaunchRockInitialYPos(u8);
|
||||
static void InitEruptionLaunchRockCoordData(struct Sprite *, s16, s16);
|
||||
static void UpdateEruptionLaunchRockPos(struct Sprite *);
|
||||
static void AnimEruptionFallingRock(struct Sprite *);
|
||||
static void AnimEruptionFallingRock_Step(struct Sprite *);
|
||||
static void AnimWillOWispOrb(struct Sprite *);
|
||||
static void AnimWillOWispOrb_Step(struct Sprite *);
|
||||
static void AnimWillOWispFire(struct Sprite *);
|
||||
static void AnimTask_MoveHeatWaveTargets_Step(u8 taskId);
|
||||
static void AnimTask_MoveHeatWaveTargets_Step(u8);
|
||||
|
||||
static const union AnimCmd sAnim_FireSpiralSpread_0[] =
|
||||
{
|
||||
@@ -355,7 +356,7 @@ const struct SpriteTemplate gEruptionLaunchRockSpriteTemplate =
|
||||
.callback = AnimEruptionLaunchRock,
|
||||
};
|
||||
|
||||
static const s16 sEruptionLaunchRockCoords[][2] =
|
||||
static const s16 sEruptionLaunchRockSpeeds[][2] =
|
||||
{
|
||||
{-2, -5},
|
||||
{-1, -1},
|
||||
@@ -649,7 +650,7 @@ static void AnimBurnFlame(struct Sprite *sprite)
|
||||
//void AnimFireRing(struct Sprite *sprite)
|
||||
void AnimFireRing(struct Sprite *sprite)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
|
||||
sprite->data[7] = gBattleAnimArgs[2];
|
||||
sprite->data[0] = 0;
|
||||
@@ -736,7 +737,7 @@ static void AnimFireCross(struct Sprite *sprite)
|
||||
|
||||
static void AnimFireSpiralOutward(struct Sprite *sprite)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
|
||||
sprite->data[1] = gBattleAnimArgs[2];
|
||||
sprite->data[0] = gBattleAnimArgs[3];
|
||||
@@ -770,22 +771,43 @@ static void AnimFireSpiralOutward_Step2(struct Sprite *sprite)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
#define IDX_ACTIVE_SPRITES 6 // Used by the sprite callback to modify the number of active sprites
|
||||
|
||||
#define tState data[0]
|
||||
#define tTimer1 data[1]
|
||||
#define tTimer2 data[2]
|
||||
#define tTimer3 data[3]
|
||||
#define tAttackerY data[4]
|
||||
#define tAttackerSide data[5]
|
||||
#define tActiveSprites data[IDX_ACTIVE_SPRITES]
|
||||
// data[8]-data[15] used by PrepareEruptAnimTaskData / UpdateEruptAnimTask
|
||||
#define tAttackerSpriteId data[15]
|
||||
|
||||
#define sSpeedDelay data[0]
|
||||
#define sLaunchStage data[1]
|
||||
#define sX data[2]
|
||||
#define sY data[3]
|
||||
#define sSpeedX data[4]
|
||||
#define sSpeedY data[5]
|
||||
#define sTaskId data[6]
|
||||
#define sActiveSpritesIdx data[7]
|
||||
|
||||
// Animates first stage of Eruption where the attacker squishes and launches rocks away from themself
|
||||
void AnimTask_EruptionLaunchRocks(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER);
|
||||
task->tAttackerSpriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
|
||||
|
||||
task->data[0] = 0;
|
||||
task->data[1] = 0;
|
||||
task->data[2] = 0;
|
||||
task->data[3] = 0;
|
||||
task->data[4] = gSprites[task->data[15]].y;
|
||||
task->data[5] = GetBattlerSide(gBattleAnimAttacker);
|
||||
task->data[6] = 0;
|
||||
task->tState = 0;
|
||||
task->tTimer1 = 0;
|
||||
task->tTimer2 = 0;
|
||||
task->tTimer3 = 0;
|
||||
task->tAttackerY = gSprites[task->tAttackerSpriteId].y;
|
||||
task->tAttackerSide = GetBattlerSide(gBattleAnimAttacker);
|
||||
task->tActiveSprites = 0;
|
||||
|
||||
PrepareBattlerSpriteForRotScale(task->data[15], ST_OAM_OBJ_NORMAL);
|
||||
PrepareBattlerSpriteForRotScale(task->tAttackerSpriteId, ST_OAM_OBJ_NORMAL);
|
||||
|
||||
task->func = AnimTask_EruptionLaunchRocks_Step;
|
||||
}
|
||||
@@ -794,102 +816,102 @@ static void AnimTask_EruptionLaunchRocks_Step(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
switch (task->data[0])
|
||||
switch (task->tState)
|
||||
{
|
||||
case 0:
|
||||
PrepareEruptAnimTaskData(task, task->data[15], 0x100, 0x100, 0xE0, 0x200, 32);
|
||||
task->data[0]++;
|
||||
PrepareEruptAnimTaskData(task, task->tAttackerSpriteId, 0x100, 0x100, 0xE0, 0x200, 32);
|
||||
task->tState++;
|
||||
case 1:
|
||||
if (++task->data[1] > 1)
|
||||
if (++task->tTimer1 > 1)
|
||||
{
|
||||
task->data[1] = 0;
|
||||
task->tTimer1 = 0;
|
||||
|
||||
if (++task->data[2] & 0x1)
|
||||
gSprites[task->data[15]].x2 = 3;
|
||||
if (++task->tTimer2 & 1)
|
||||
gSprites[task->tAttackerSpriteId].x2 = 3;
|
||||
else
|
||||
gSprites[task->data[15]].x2 = -3;
|
||||
gSprites[task->tAttackerSpriteId].x2 = -3;
|
||||
}
|
||||
|
||||
if (task->data[5] != B_SIDE_PLAYER)
|
||||
if (task->tAttackerSide != B_SIDE_PLAYER)
|
||||
{
|
||||
if (++task->data[3] > 4)
|
||||
if (++task->tTimer3 > 4)
|
||||
{
|
||||
task->data[3] = 0;
|
||||
gSprites[task->data[15]].y++;
|
||||
task->tTimer3 = 0;
|
||||
gSprites[task->tAttackerSpriteId].y++;
|
||||
}
|
||||
}
|
||||
|
||||
if(!UpdateEruptAnimTask(task))
|
||||
{
|
||||
SetBattlerSpriteYOffsetFromYScale(task->data[15]);
|
||||
gSprites[task->data[15]].x2 = 0;
|
||||
SetBattlerSpriteYOffsetFromYScale(task->tAttackerSpriteId);
|
||||
gSprites[task->tAttackerSpriteId].x2 = 0;
|
||||
|
||||
task->data[1] = 0;
|
||||
task->data[2] = 0;
|
||||
task->data[3] = 0;
|
||||
task->data[0]++;
|
||||
task->tTimer1 = 0;
|
||||
task->tTimer2 = 0;
|
||||
task->tTimer3 = 0;
|
||||
task->tState++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (++task->data[1] > 4)
|
||||
if (++task->tTimer1 > 4)
|
||||
{
|
||||
if (task->data[5] != B_SIDE_PLAYER)
|
||||
PrepareEruptAnimTaskData(task, task->data[15], 0xE0, 0x200, 0x180, 0xF0, 6);
|
||||
if (task->tAttackerSide != B_SIDE_PLAYER)
|
||||
PrepareEruptAnimTaskData(task, task->tAttackerSpriteId, 0xE0, 0x200, 0x180, 0xF0, 6);
|
||||
else
|
||||
PrepareEruptAnimTaskData(task, task->data[15], 0xE0, 0x200, 0x180, 0xC0, 6);
|
||||
PrepareEruptAnimTaskData(task, task->tAttackerSpriteId, 0xE0, 0x200, 0x180, 0xC0, 6);
|
||||
|
||||
task->data[1] = 0;
|
||||
task->data[0]++;
|
||||
task->tTimer1 = 0;
|
||||
task->tState++;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (!UpdateEruptAnimTask(task))
|
||||
{
|
||||
CreateEruptionLaunchRocks(task->data[15], taskId, 6);
|
||||
task->data[0]++;
|
||||
CreateEruptionLaunchRocks(task->tAttackerSpriteId, taskId, IDX_ACTIVE_SPRITES);
|
||||
task->tState++;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (++task->data[1] > 1)
|
||||
if (++task->tTimer1 > 1)
|
||||
{
|
||||
task->data[1] = 0;
|
||||
task->tTimer1 = 0;
|
||||
|
||||
if (++task->data[2] & 1)
|
||||
gSprites[task->data[15]].y2 += 3;
|
||||
if (++task->tTimer2 & 1)
|
||||
gSprites[task->tAttackerSpriteId].y2 += 3;
|
||||
else
|
||||
gSprites[task->data[15]].y2 -= 3;
|
||||
gSprites[task->tAttackerSpriteId].y2 -= 3;
|
||||
}
|
||||
|
||||
if (++task->data[3] > 0x18)
|
||||
if (++task->tTimer3 > 24)
|
||||
{
|
||||
if (task->data[5] != B_SIDE_PLAYER)
|
||||
PrepareEruptAnimTaskData(task, task->data[15], 0x180, 0xF0, 0x100, 0x100, 8);
|
||||
if (task->tAttackerSide != B_SIDE_PLAYER)
|
||||
PrepareEruptAnimTaskData(task, task->tAttackerSpriteId, 0x180, 0xF0, 0x100, 0x100, 8);
|
||||
else
|
||||
PrepareEruptAnimTaskData(task, task->data[15], 0x180, 0xC0, 0x100, 0x100, 8);
|
||||
PrepareEruptAnimTaskData(task, task->tAttackerSpriteId, 0x180, 0xC0, 0x100, 0x100, 8);
|
||||
|
||||
if (task->data[2] & 1)
|
||||
gSprites[task->data[15]].y2 -= 3;
|
||||
if (task->tTimer2 & 1)
|
||||
gSprites[task->tAttackerSpriteId].y2 -= 3;
|
||||
|
||||
task->data[1] = 0;
|
||||
task->data[2] = 0;
|
||||
task->data[3] = 0;
|
||||
task->data[0]++;
|
||||
task->tTimer1 = 0;
|
||||
task->tTimer2 = 0;
|
||||
task->tTimer3 = 0;
|
||||
task->tState++;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (task->data[5] != B_SIDE_PLAYER)
|
||||
gSprites[task->data[15]].y--;
|
||||
if (task->tAttackerSide != B_SIDE_PLAYER)
|
||||
gSprites[task->tAttackerSpriteId].y--;
|
||||
|
||||
if (!UpdateEruptAnimTask(task))
|
||||
{
|
||||
gSprites[task->data[15]].y = task->data[4];
|
||||
ResetSpriteRotScale(task->data[15]);
|
||||
task->data[2] = 0;
|
||||
task->data[0]++;
|
||||
gSprites[task->tAttackerSpriteId].y = task->tAttackerY;
|
||||
ResetSpriteRotScale(task->tAttackerSpriteId);
|
||||
task->tTimer2 = 0;
|
||||
task->tState++;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (!task->data[6])
|
||||
if (task->tActiveSprites == 0)
|
||||
DestroyAnimVisualTask(taskId);
|
||||
break;
|
||||
default:
|
||||
@@ -897,7 +919,7 @@ static void AnimTask_EruptionLaunchRocks_Step(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
static void CreateEruptionLaunchRocks(u8 spriteId, u8 taskId, u8 a3)
|
||||
static void CreateEruptionLaunchRocks(u8 spriteId, u8 taskId, u8 activeSpritesIdx)
|
||||
{
|
||||
u16 i, j;
|
||||
s8 sign;
|
||||
@@ -905,14 +927,14 @@ static void CreateEruptionLaunchRocks(u8 spriteId, u8 taskId, u8 a3)
|
||||
u16 y = GetEruptionLaunchRockInitialYPos(spriteId);
|
||||
u16 x = gSprites[spriteId].x;
|
||||
|
||||
if(!GetBattlerSide(gBattleAnimAttacker))
|
||||
if(GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||
{
|
||||
x -= 0xC;
|
||||
x -= 12;
|
||||
sign = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
x += 0x10;
|
||||
x += 16;
|
||||
sign = -1;
|
||||
}
|
||||
|
||||
@@ -920,18 +942,18 @@ static void CreateEruptionLaunchRocks(u8 spriteId, u8 taskId, u8 a3)
|
||||
{
|
||||
u8 spriteId = CreateSprite(&gEruptionLaunchRockSpriteTemplate, x, y, 2);
|
||||
|
||||
if (spriteId != 0x40)
|
||||
if (spriteId != MAX_SPRITES)
|
||||
{
|
||||
gSprites[spriteId].oam.tileNum += j * 4 + 0x40;
|
||||
|
||||
if (++j >= 5)
|
||||
j = 0;
|
||||
|
||||
InitEruptionLaunchRockCoordData(&gSprites[spriteId], sEruptionLaunchRockCoords[i][0] * sign, sEruptionLaunchRockCoords[i][1]);
|
||||
gSprites[spriteId].data[6] = taskId;
|
||||
gSprites[spriteId].data[7] = a3;
|
||||
InitEruptionLaunchRockCoordData(&gSprites[spriteId], sEruptionLaunchRockSpeeds[i][0] * sign, sEruptionLaunchRockSpeeds[i][1]);
|
||||
gSprites[spriteId].sTaskId = taskId;
|
||||
gSprites[spriteId].sActiveSpritesIdx = activeSpritesIdx;
|
||||
|
||||
gTasks[taskId].data[a3]++;
|
||||
gTasks[taskId].data[activeSpritesIdx]++;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -942,7 +964,7 @@ static void AnimEruptionLaunchRock(struct Sprite *sprite)
|
||||
|
||||
if (sprite->invisible)
|
||||
{
|
||||
gTasks[sprite->data[6]].data[sprite->data[7]]--;
|
||||
gTasks[sprite->sTaskId].data[sprite->sActiveSpritesIdx]--;
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
}
|
||||
@@ -959,46 +981,71 @@ static u16 GetEruptionLaunchRockInitialYPos(u8 spriteId)
|
||||
return y;
|
||||
}
|
||||
|
||||
static void InitEruptionLaunchRockCoordData(struct Sprite *sprite, s16 x, s16 y)
|
||||
static void InitEruptionLaunchRockCoordData(struct Sprite *sprite, s16 speedX, s16 speedY)
|
||||
{
|
||||
sprite->data[0] = 0;
|
||||
sprite->data[1] = 0;
|
||||
sprite->data[2] = (u16)sprite->x * 8;
|
||||
sprite->data[3] = (u16)sprite->y * 8;
|
||||
sprite->data[4] = x * 8;
|
||||
sprite->data[5] = y * 8;
|
||||
sprite->sSpeedDelay = 0;
|
||||
sprite->sLaunchStage = 0;
|
||||
sprite->sX = (u16)sprite->x * 8;
|
||||
sprite->sY = (u16)sprite->y * 8;
|
||||
sprite->sSpeedX = speedX * 8;
|
||||
sprite->sSpeedY = speedY * 8;
|
||||
}
|
||||
|
||||
static void UpdateEruptionLaunchRockPos(struct Sprite *sprite)
|
||||
{
|
||||
int var1;
|
||||
if (++sprite->data[0] > 2)
|
||||
int extraLaunchSpeed;
|
||||
if (++sprite->sSpeedDelay > 2)
|
||||
{
|
||||
sprite->data[0] = 0;
|
||||
++sprite->data[1];
|
||||
var1 = (u16)sprite->data[1] * (u16)sprite->data[1];
|
||||
sprite->data[3] += var1;
|
||||
sprite->sSpeedDelay = 0;
|
||||
++sprite->sLaunchStage;
|
||||
extraLaunchSpeed = (u16)sprite->sLaunchStage * (u16)sprite->sLaunchStage;
|
||||
sprite->sY += extraLaunchSpeed;
|
||||
}
|
||||
|
||||
sprite->data[2] += sprite->data[4];
|
||||
sprite->x = sprite->data[2] >> 3;
|
||||
sprite->data[3] += sprite->data[5];
|
||||
sprite->y = sprite->data[3] >> 3;
|
||||
sprite->sX += sprite->sSpeedX;
|
||||
sprite->x = sprite->sX >> 3;
|
||||
sprite->sY += sprite->sSpeedY;
|
||||
sprite->y = sprite->sY >> 3;
|
||||
|
||||
if (sprite->x < -8 || sprite->x > 0xf8 || sprite->y < -8 || sprite->y > 120)
|
||||
if (sprite->x < -8 || sprite->x > DISPLAY_WIDTH + 8 || sprite->y < -8 || sprite->y > 120)
|
||||
sprite->invisible = TRUE;
|
||||
}
|
||||
|
||||
#undef IDX_ACTIVE_SPRITES
|
||||
#undef tState
|
||||
#undef tTimer1
|
||||
#undef tTimer2
|
||||
#undef tTimer3
|
||||
#undef tAttackerY
|
||||
#undef tAttackerSide
|
||||
#undef tActiveSprites
|
||||
#undef tAttackerSpriteId
|
||||
#undef sSpeedDelay
|
||||
#undef sLaunchStage
|
||||
#undef sX
|
||||
#undef sY
|
||||
#undef sSpeedX
|
||||
#undef sSpeedY
|
||||
#undef sTaskId
|
||||
#undef sActiveSpritesIdx
|
||||
|
||||
#define sState data[0]
|
||||
#define sBounceTimer data[1]
|
||||
#define sBounceDir data[2]
|
||||
#define sEndTimer data[3]
|
||||
#define sFallDelay data[6]
|
||||
#define sTargetY data[7]
|
||||
|
||||
static void AnimEruptionFallingRock(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x = gBattleAnimArgs[0];
|
||||
sprite->y = gBattleAnimArgs[1];
|
||||
|
||||
sprite->data[0] = 0;
|
||||
sprite->data[1] = 0;
|
||||
sprite->data[2] = 0;
|
||||
sprite->data[6] = gBattleAnimArgs[2];
|
||||
sprite->data[7] = gBattleAnimArgs[3];
|
||||
sprite->sState = 0;
|
||||
sprite->sBounceTimer = 0;
|
||||
sprite->sBounceDir = 0;
|
||||
sprite->sFallDelay = gBattleAnimArgs[2];
|
||||
sprite->sTargetY = gBattleAnimArgs[3];
|
||||
|
||||
sprite->oam.tileNum += gBattleAnimArgs[4] * 16;
|
||||
sprite->callback = AnimEruptionFallingRock_Step;
|
||||
@@ -1006,53 +1053,57 @@ static void AnimEruptionFallingRock(struct Sprite *sprite)
|
||||
|
||||
static void AnimEruptionFallingRock_Step(struct Sprite *sprite)
|
||||
{
|
||||
switch (sprite->data[0])
|
||||
switch (sprite->sState)
|
||||
{
|
||||
case 0:
|
||||
if (sprite->data[6] != 0)
|
||||
// Wait to begin falling
|
||||
if (sprite->sFallDelay != 0)
|
||||
{
|
||||
sprite->data[6]--;
|
||||
sprite->sFallDelay--;
|
||||
return;
|
||||
}
|
||||
|
||||
sprite->data[0]++;
|
||||
sprite->sState++;
|
||||
// fall through
|
||||
case 1:
|
||||
// Rock is falling
|
||||
sprite->y += 8;
|
||||
if (sprite->y >= sprite->data[7])
|
||||
if (sprite->y >= sprite->sTargetY)
|
||||
{
|
||||
sprite->y = sprite->data[7];
|
||||
sprite->data[0]++;
|
||||
sprite->y = sprite->sTargetY;
|
||||
sprite->sState++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (++sprite->data[1] > 1)
|
||||
// Bounce up and down on landing spot
|
||||
if (++sprite->sBounceTimer > 1)
|
||||
{
|
||||
sprite->data[1] = 0;
|
||||
if ((++sprite->data[2] & 1) != 0)
|
||||
{
|
||||
sprite->sBounceTimer = 0;
|
||||
if ((++sprite->sBounceDir & 1) != 0)
|
||||
sprite->y2 = -3;
|
||||
}
|
||||
else
|
||||
{
|
||||
sprite->y2 = 3;
|
||||
}
|
||||
}
|
||||
|
||||
if (++sprite->data[3] > 16)
|
||||
{
|
||||
if (++sprite->sEndTimer > 16)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#undef sState
|
||||
#undef sBounceTimer
|
||||
#undef sBounceDir
|
||||
#undef sEndTimer
|
||||
#undef sFallDelay
|
||||
#undef sTargetY
|
||||
|
||||
static void AnimWillOWispOrb(struct Sprite *sprite)
|
||||
{
|
||||
switch (sprite->data[0])
|
||||
{
|
||||
case 0:
|
||||
InitSpritePosToAnimAttacker(sprite, 0);
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
StartSpriteAnim(sprite, gBattleAnimArgs[2]);
|
||||
sprite->data[7] = gBattleAnimArgs[2];
|
||||
|
||||
@@ -1177,8 +1228,8 @@ void AnimTask_MoveHeatWaveTargets(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
task->data[12] = !GetBattlerSide(gBattleAnimAttacker) ? 1 : -1;
|
||||
task->data[13] = IsBattlerSpriteVisible(gBattleAnimTarget ^ 2) + 1;
|
||||
task->data[12] = GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER ? 1 : -1;
|
||||
task->data[13] = IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget)) + 1;
|
||||
task->data[14] = GetAnimBattlerSpriteId(ANIM_TARGET);
|
||||
task->data[15] = GetAnimBattlerSpriteId(ANIM_DEF_PARTNER);
|
||||
|
||||
@@ -1279,7 +1330,7 @@ void AnimTask_BlendBackground(u8 taskId)
|
||||
{
|
||||
struct BattleAnimBgData animBg;
|
||||
GetBattleAnimBg1Data(&animBg);
|
||||
BlendPalette(animBg.paletteId * 16, 16, gBattleAnimArgs[0], gBattleAnimArgs[1]);
|
||||
BlendPalette(BG_PLTT_ID(animBg.paletteId), 16, gBattleAnimArgs[0], gBattleAnimArgs[1]);
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
|
||||
+14
-14
@@ -456,7 +456,7 @@ static void AnimAirWaveCrescent(struct Sprite *sprite)
|
||||
}
|
||||
else
|
||||
{
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->data[2], &sprite->data[4]);
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, TRUE, &sprite->data[2], &sprite->data[4]);
|
||||
}
|
||||
|
||||
sprite->data[2] = sprite->data[2] + gBattleAnimArgs[2];
|
||||
@@ -528,8 +528,8 @@ static void AnimFlyBallAttack_Step(struct Sprite *sprite)
|
||||
}
|
||||
|
||||
if (sprite->x + sprite->x2 < -32
|
||||
|| sprite->x + sprite->x2 > DISPLAY_WIDTH + 32
|
||||
|| sprite->y + sprite->y2 > DISPLAY_HEIGHT)
|
||||
|| sprite->x + sprite->x2 > DISPLAY_WIDTH + 32
|
||||
|| sprite->y + sprite->y2 > DISPLAY_HEIGHT)
|
||||
{
|
||||
gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = FALSE;
|
||||
DestroyAnimSprite(sprite);
|
||||
@@ -595,7 +595,7 @@ static void AnimFallingFeather(struct Sprite *sprite)
|
||||
data->unkA = (gBattleAnimArgs[2] >> 8) & 0xFF;
|
||||
data->unk4 = gBattleAnimArgs[3];
|
||||
data->unk6 = gBattleAnimArgs[4];
|
||||
*(u16*)(data->unkC) = gBattleAnimArgs[5];
|
||||
*(u16 *)(data->unkC) = gBattleAnimArgs[5];
|
||||
|
||||
if (data->unk2 >= 64 && data->unk2 <= 191)
|
||||
{
|
||||
@@ -906,12 +906,12 @@ static void AnimWhirlwindLine(struct Sprite * sprite)
|
||||
u8 mult;
|
||||
|
||||
if (gBattleAnimArgs[2] == ANIM_ATTACKER)
|
||||
InitSpritePosToAnimAttacker(sprite, 0);
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
else
|
||||
InitSpritePosToAnimTarget(sprite, FALSE);
|
||||
|
||||
if ((gBattleAnimArgs[2] == ANIM_ATTACKER && !GetBattlerSide(gBattleAnimAttacker))
|
||||
|| (gBattleAnimArgs[2] == ANIM_TARGET && !GetBattlerSide(gBattleAnimTarget)))
|
||||
if ((gBattleAnimArgs[2] == ANIM_ATTACKER && GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||
|| (gBattleAnimArgs[2] == ANIM_TARGET && GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER))
|
||||
{
|
||||
sprite->x += 8;
|
||||
}
|
||||
@@ -971,7 +971,7 @@ static void AnimBounceBallShrink(struct Sprite *sprite)
|
||||
switch (sprite->data[0])
|
||||
{
|
||||
case 0:
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = TRUE;
|
||||
++sprite->data[0];
|
||||
break;
|
||||
@@ -1009,7 +1009,7 @@ static void AnimBounceBallLand(struct Sprite *sprite)
|
||||
|
||||
static void AnimDiveBall(struct Sprite *sprite)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
sprite->data[0] = gBattleAnimArgs[2];
|
||||
sprite->data[1] = gBattleAnimArgs[3];
|
||||
sprite->callback = AnimDiveBall_Step1;
|
||||
@@ -1067,7 +1067,7 @@ static void AnimDiveWaterSplash(struct Sprite *sprite)
|
||||
|
||||
sprite->data[1] = 0x200;
|
||||
|
||||
TrySetSpriteRotScale(sprite, 0, 0x100, sprite->data[1], 0);
|
||||
TrySetSpriteRotScale(sprite, FALSE, 0x100, sprite->data[1], 0);
|
||||
sprite->data[0]++;
|
||||
break;
|
||||
case 1:
|
||||
@@ -1078,7 +1078,7 @@ static void AnimDiveWaterSplash(struct Sprite *sprite)
|
||||
|
||||
sprite->data[2]++;
|
||||
|
||||
TrySetSpriteRotScale(sprite, 0, 0x100, sprite->data[1], 0);
|
||||
TrySetSpriteRotScale(sprite, FALSE, 0x100, sprite->data[1], 0);
|
||||
|
||||
matrixNum = sprite->oam.matrixNum;
|
||||
|
||||
@@ -1202,7 +1202,7 @@ static void AnimSkyAttackBird(struct Sprite *sprite)
|
||||
rotation = ArcTan2Neg(posx - sprite->x, posy - sprite->y);
|
||||
rotation -= 16384;
|
||||
|
||||
TrySetSpriteRotScale(sprite, 1, 0x100, 0x100, rotation);
|
||||
TrySetSpriteRotScale(sprite, TRUE, 0x100, 0x100, rotation);
|
||||
|
||||
sprite->callback = AnimSkyAttackBird_Step;
|
||||
}
|
||||
@@ -1215,8 +1215,8 @@ void AnimSkyAttackBird_Step(struct Sprite *sprite)
|
||||
sprite->x = sprite->data[4] >> 4;
|
||||
sprite->y = sprite->data[5] >> 4;
|
||||
|
||||
if (sprite->x > 285 || sprite->x < -45
|
||||
|| sprite->y > 157 || sprite->y < -45)
|
||||
if (sprite->x > DISPLAY_WIDTH + 45 || sprite->x < -45
|
||||
|| sprite->y > 157 || sprite->y < -45)
|
||||
DestroySpriteAndMatrix(sprite);
|
||||
}
|
||||
|
||||
|
||||
@@ -642,8 +642,8 @@ static void AnimTask_SpiteTargetShadow_Step1(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
task->data[14] = (task->data[14] + 16) * 16;
|
||||
CpuCopy32(&gPlttBufferUnfaded[task->data[4]], &gPlttBufferFaded[task->data[14]], 32);
|
||||
task->data[14] = OBJ_PLTT_ID2(task->data[14]);
|
||||
CpuCopy32(&gPlttBufferUnfaded[task->data[4]], &gPlttBufferFaded[task->data[14]], PLTT_SIZE_4BPP);
|
||||
BlendPalette(task->data[4], 16, 10, RGB(13, 0, 15));
|
||||
task->data[15]++;
|
||||
break;
|
||||
@@ -653,9 +653,9 @@ static void AnimTask_SpiteTargetShadow_Step1(u8 taskId)
|
||||
startLine = 0;
|
||||
|
||||
if (position == 1)
|
||||
task->data[10] = ScanlineEffect_InitWave(startLine, startLine + 64, 2, 6, 0, SCANLINE_EFFECT_REG_BG1HOFS, 1);
|
||||
task->data[10] = ScanlineEffect_InitWave(startLine, startLine + 64, 2, 6, 0, SCANLINE_EFFECT_REG_BG1HOFS, TRUE);
|
||||
else
|
||||
task->data[10] = ScanlineEffect_InitWave(startLine, startLine + 64, 2, 6, 0, SCANLINE_EFFECT_REG_BG2HOFS, 1);
|
||||
task->data[10] = ScanlineEffect_InitWave(startLine, startLine + 64, 2, 6, 0, SCANLINE_EFFECT_REG_BG2HOFS, TRUE);
|
||||
|
||||
task->data[15]++;
|
||||
break;
|
||||
@@ -814,7 +814,7 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId)
|
||||
for (battler = 0; battler < MAX_BATTLERS_COUNT; battler++)
|
||||
{
|
||||
if (battler != gBattleAnimAttacker
|
||||
&& battler != (gBattleAnimAttacker ^ 2)
|
||||
&& battler != BATTLE_PARTNER(gBattleAnimAttacker)
|
||||
&& IsBattlerSpriteVisible(battler))
|
||||
{
|
||||
spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55);
|
||||
@@ -1004,7 +1004,7 @@ static void AnimTask_CurseStretchingBlackBg_Step1(u8 taskId)
|
||||
right = DISPLAY_WIDTH;
|
||||
top = 0;
|
||||
bottom = 112;
|
||||
selectedPalettes = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0);
|
||||
selectedPalettes = GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE);
|
||||
BeginNormalPaletteFade(selectedPalettes, 0, 16, 16, RGB(0, 0, 0));
|
||||
gTasks[taskId].func = AnimTask_CurseStretchingBlackBg_Step2;
|
||||
}
|
||||
@@ -1034,7 +1034,7 @@ static void AnimCurseNail(struct Sprite *sprite)
|
||||
s16 xDelta;
|
||||
s16 xDelta2;
|
||||
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||
{
|
||||
xDelta = 24;
|
||||
|
||||
@@ -205,7 +205,7 @@ static void AnimDirtScatter(struct Sprite *sprite)
|
||||
u8 targetXPos, targetYPos;
|
||||
s16 xOffset, yOffset;
|
||||
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
|
||||
targetXPos = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X_2);
|
||||
targetYPos = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
|
||||
+30
-26
@@ -45,7 +45,7 @@ static void AnimThrowIceBall(struct Sprite *);
|
||||
static void InitIceBallParticle(struct Sprite *);
|
||||
static void AnimIceBallParticle(struct Sprite *);
|
||||
static void AnimTask_HazeScrollingFog_Step(u8);
|
||||
static void AnimTask_LoadMistTiles_Step(u8);
|
||||
static void AnimTask_MistBallFog_Step(u8);
|
||||
static void AnimTask_Hail2(u8);
|
||||
static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, u8 c);
|
||||
|
||||
@@ -353,7 +353,7 @@ const struct SpriteTemplate gMistBallSpriteTemplate =
|
||||
.callback = AnimThrowMistBall,
|
||||
};
|
||||
|
||||
static const u8 wMistBlendAmounts[] =
|
||||
static const u8 sMistBlendAmounts[] =
|
||||
{
|
||||
0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5,
|
||||
};
|
||||
@@ -631,7 +631,7 @@ static void AnimIceEffectParticle(struct Sprite *sprite)
|
||||
}
|
||||
else
|
||||
{
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->x, &sprite->y);
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, TRUE, &sprite->x, &sprite->y);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
|
||||
|
||||
@@ -676,7 +676,7 @@ static void AnimSwirlingSnowball(struct Sprite *sprite)
|
||||
}
|
||||
else
|
||||
{
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->data[2], &sprite->data[4]);
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, TRUE, &sprite->data[2], &sprite->data[4]);
|
||||
}
|
||||
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
@@ -696,7 +696,8 @@ static void AnimSwirlingSnowball(struct Sprite *sprite)
|
||||
sprite->data[0] = 1;
|
||||
AnimFastTranslateLinear(sprite);
|
||||
|
||||
if ((u32)(sprite->x + sprite->x2 + 16) > DISPLAY_WIDTH + 32
|
||||
if (sprite->x + sprite->x2 > DISPLAY_WIDTH + 16
|
||||
|| sprite->x + sprite->x2 < -16
|
||||
|| sprite->y + sprite->y2 > DISPLAY_HEIGHT
|
||||
|| sprite->y + sprite->y2 < -16)
|
||||
break;
|
||||
@@ -762,7 +763,8 @@ static void AnimSwirlingSnowball_End(struct Sprite *sprite)
|
||||
sprite->data[0] = 1;
|
||||
AnimFastTranslateLinear(sprite);
|
||||
|
||||
if ((u32)(sprite->x + sprite->x2 + 16) > DISPLAY_WIDTH + 32
|
||||
if (sprite->x + sprite->x2 > 256
|
||||
|| sprite->x + sprite->x2 < -16
|
||||
|| sprite->y + sprite->y2 > 256
|
||||
|| sprite->y + sprite->y2 < -16)
|
||||
DestroyAnimSprite(sprite);
|
||||
@@ -796,7 +798,7 @@ static void AnimMoveParticleBeyondTarget(struct Sprite *sprite)
|
||||
}
|
||||
else
|
||||
{
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->data[2], &sprite->data[4]);
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, TRUE, &sprite->data[2], &sprite->data[4]);
|
||||
}
|
||||
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
@@ -816,7 +818,8 @@ static void AnimMoveParticleBeyondTarget(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0] = 1;
|
||||
AnimFastTranslateLinear(sprite);
|
||||
if ((u32)(sprite->x + sprite->x2 + 16) > DISPLAY_WIDTH + 32
|
||||
if (sprite->x + sprite->x2 > DISPLAY_WIDTH + 16
|
||||
|| sprite->x + sprite->x2 < -16
|
||||
|| sprite->y + sprite->y2 > DISPLAY_HEIGHT
|
||||
|| sprite->y + sprite->y2 < -16)
|
||||
break;
|
||||
@@ -846,7 +849,8 @@ static void AnimWiggleParticleTowardsTarget(struct Sprite *sprite)
|
||||
sprite->data[7] = (sprite->data[7] + sprite->data[6]) & 0xFF;
|
||||
if (sprite->data[0] == 1)
|
||||
{
|
||||
if ((u32)(sprite->x + sprite->x2 + 16) > DISPLAY_WIDTH + 32
|
||||
if (sprite->x + sprite->x2 > DISPLAY_WIDTH + 16
|
||||
|| sprite->x + sprite->x2 < -16
|
||||
|| sprite->y + sprite->y2 > DISPLAY_HEIGHT
|
||||
|| sprite->y + sprite->y2 < -16)
|
||||
DestroyAnimSprite(sprite);
|
||||
@@ -867,7 +871,7 @@ static void AnimWaveFromCenterOfTarget(struct Sprite *sprite)
|
||||
}
|
||||
else
|
||||
{
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->x, &sprite->y);
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, FALSE, &sprite->x, &sprite->y);
|
||||
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
|
||||
@@ -905,7 +909,7 @@ static void InitSwirlingFogAnim(struct Sprite *sprite)
|
||||
}
|
||||
else
|
||||
{
|
||||
SetAverageBattlerPositions(gBattleAnimAttacker, 0, &sprite->x, &sprite->y);
|
||||
SetAverageBattlerPositions(gBattleAnimAttacker, FALSE, &sprite->x, &sprite->y);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
sprite->x -= gBattleAnimArgs[0];
|
||||
else
|
||||
@@ -924,7 +928,7 @@ static void InitSwirlingFogAnim(struct Sprite *sprite)
|
||||
}
|
||||
else
|
||||
{
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->x, &sprite->y);
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, FALSE, &sprite->x, &sprite->y);
|
||||
if (GetBattlerSide(gBattleAnimTarget) != B_SIDE_PLAYER)
|
||||
sprite->x -= gBattleAnimArgs[0];
|
||||
else
|
||||
@@ -1001,7 +1005,7 @@ void AnimTask_HazeScrollingFog(u8 taskId)
|
||||
GetBattleAnimBg1Data(&animBg);
|
||||
LoadBgTiles(animBg.bgId, gWeatherFogHorizontalTiles, 0x800, animBg.tilesOffset);
|
||||
AnimLoadCompressedBgTilemapHandleContest(&animBg, gBattleAnimFogTilemap, FALSE);
|
||||
LoadPalette(&gFogPalette, animBg.paletteId * 16, 32);
|
||||
LoadPalette(&gFogPalette, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
|
||||
|
||||
gTasks[taskId].func = AnimTask_HazeScrollingFog_Step;
|
||||
}
|
||||
@@ -1086,7 +1090,7 @@ static void AnimThrowMistBall(struct Sprite *sprite)
|
||||
}
|
||||
|
||||
// Displays misty background in Mist Ball.
|
||||
void AnimTask_LoadMistTiles(u8 taskId)
|
||||
void AnimTask_MistBallFog(u8 taskId)
|
||||
{
|
||||
struct BattleAnimBgData animBg;
|
||||
|
||||
@@ -1106,13 +1110,13 @@ void AnimTask_LoadMistTiles(u8 taskId)
|
||||
GetBattleAnimBg1Data(&animBg);
|
||||
LoadBgTiles(animBg.bgId, gWeatherFogHorizontalTiles, 0x800, animBg.tilesOffset);
|
||||
AnimLoadCompressedBgTilemapHandleContest(&animBg, gBattleAnimFogTilemap, FALSE);
|
||||
LoadPalette(&gFogPalette, animBg.paletteId * 16, 32);
|
||||
LoadPalette(&gFogPalette, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
|
||||
|
||||
gTasks[taskId].data[15] = -1;
|
||||
gTasks[taskId].func = AnimTask_LoadMistTiles_Step;
|
||||
gTasks[taskId].func = AnimTask_MistBallFog_Step;
|
||||
}
|
||||
|
||||
static void AnimTask_LoadMistTiles_Step(u8 taskId)
|
||||
static void AnimTask_MistBallFog_Step(u8 taskId)
|
||||
{
|
||||
struct BattleAnimBgData animBg;
|
||||
|
||||
@@ -1123,7 +1127,7 @@ static void AnimTask_LoadMistTiles_Step(u8 taskId)
|
||||
{
|
||||
case 0:
|
||||
gTasks[taskId].data[9] += 1;
|
||||
gTasks[taskId].data[11] = wMistBlendAmounts[gTasks[taskId].data[9]];
|
||||
gTasks[taskId].data[11] = sMistBlendAmounts[gTasks[taskId].data[9]];
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[11], 17 - gTasks[taskId].data[11]));
|
||||
if (gTasks[taskId].data[11] == 5)
|
||||
{
|
||||
@@ -1189,12 +1193,12 @@ static void InitPoisonGasCloudAnim(struct Sprite *sprite)
|
||||
if (GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) < GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2))
|
||||
sprite->data[7] = 0x8000;
|
||||
|
||||
if ((gBattlerPositions[gBattleAnimTarget] & BIT_SIDE) == B_SIDE_PLAYER)
|
||||
if (GET_BATTLER_SIDE2(gBattleAnimTarget) == B_SIDE_PLAYER)
|
||||
{
|
||||
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
|
||||
gBattleAnimArgs[3] = -gBattleAnimArgs[3];
|
||||
|
||||
if ((sprite->data[7] & 0x8000) && (gBattlerPositions[gBattleAnimAttacker] & BIT_SIDE) == B_SIDE_PLAYER)
|
||||
if ((sprite->data[7] & 0x8000) && GET_BATTLER_SIDE2(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||
sprite->subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority + 1;
|
||||
|
||||
sprite->data[6] = 1;
|
||||
@@ -1410,14 +1414,14 @@ static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId,
|
||||
}
|
||||
else
|
||||
{
|
||||
battlerX = (sHailCoordData[hailStructId].x);
|
||||
battlerY = (sHailCoordData[hailStructId].y);
|
||||
battlerX = sHailCoordData[hailStructId].x;
|
||||
battlerY = sHailCoordData[hailStructId].y;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
battlerX = (sHailCoordData[hailStructId].x);
|
||||
battlerY = (sHailCoordData[hailStructId].y);
|
||||
battlerX = sHailCoordData[hailStructId].x;
|
||||
battlerY = sHailCoordData[hailStructId].y;
|
||||
}
|
||||
spriteX = battlerX - ((battlerY + 8) / 2);
|
||||
id = CreateSprite(&gHailParticleSpriteTemplate, spriteX, -8, 18);
|
||||
@@ -1454,7 +1458,7 @@ static void AnimHailBegin(struct Sprite *sprite)
|
||||
sprite->data[3], sprite->data[4], sprite->subpriority);
|
||||
|
||||
sprite->data[0] = spriteId;
|
||||
if (spriteId != 64)
|
||||
if (spriteId != MAX_SPRITES)
|
||||
{
|
||||
gSprites[sprite->data[0]].callback = AnimHailContinue;
|
||||
gSprites[sprite->data[0]].data[6] = sprite->data[6];
|
||||
@@ -1497,7 +1501,7 @@ static void InitIceBallAnim(struct Sprite *sprite)
|
||||
animNum = 4;
|
||||
|
||||
StartSpriteAffineAnim(sprite, animNum);
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[4];
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
#include "task.h"
|
||||
#include "trig.h"
|
||||
|
||||
// This file's functions.
|
||||
static void AnimTask_ShakeMon_Step(u8 taskId);
|
||||
static void AnimTask_ShakeMon2_Step(u8 taskId);
|
||||
static void AnimTask_ShakeMonInPlace_Step(u8 taskId);
|
||||
@@ -14,7 +13,7 @@ static void AnimTask_TranslateMonElliptical_Step(u8 taskId);
|
||||
static void DoHorizontalLunge(struct Sprite *sprite);
|
||||
static void ReverseHorizontalLungeDirection(struct Sprite *sprite);
|
||||
static void DoVerticalDip(struct Sprite *sprite);
|
||||
static void ReverseVerticalDipDirection(struct Sprite* sprite);
|
||||
static void ReverseVerticalDipDirection(struct Sprite *sprite);
|
||||
static void SlideMonToOriginalPos(struct Sprite *sprite);
|
||||
static void SlideMonToOriginalPos_Step(struct Sprite *sprite);
|
||||
static void SlideMonToOffset(struct Sprite *sprite);
|
||||
@@ -108,7 +107,7 @@ void AnimTask_ShakeMon(u8 taskId)
|
||||
gTasks[taskId].data[4] = gBattleAnimArgs[1];
|
||||
gTasks[taskId].data[5] = gBattleAnimArgs[2];
|
||||
gTasks[taskId].func = AnimTask_ShakeMon_Step;
|
||||
AnimTask_ShakeMon_Step(taskId);
|
||||
gTasks[taskId].func(taskId);
|
||||
}
|
||||
|
||||
static void AnimTask_ShakeMon_Step(u8 taskId)
|
||||
@@ -156,39 +155,36 @@ static void AnimTask_ShakeMon_Step(u8 taskId)
|
||||
void AnimTask_ShakeMon2(u8 taskId)
|
||||
{
|
||||
u8 spriteId;
|
||||
bool8 destroy = FALSE;
|
||||
bool8 abort = FALSE;
|
||||
u8 battlerId;
|
||||
|
||||
if (gBattleAnimArgs[0] < MAX_BATTLERS_COUNT)
|
||||
{
|
||||
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
|
||||
if (spriteId == SPRITE_NONE)
|
||||
{
|
||||
DestroyAnimVisualTask(taskId);
|
||||
return;
|
||||
}
|
||||
abort = TRUE;
|
||||
}
|
||||
else if (gBattleAnimArgs[0] != 8)
|
||||
else if (gBattleAnimArgs[0] != ANIM_ATTACKER_FORCE)
|
||||
{
|
||||
switch (gBattleAnimArgs[0])
|
||||
{
|
||||
case 4:
|
||||
case ANIM_PLAYER_LEFT:
|
||||
battlerId = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
|
||||
break;
|
||||
case 5:
|
||||
case ANIM_PLAYER_RIGHT:
|
||||
battlerId = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
|
||||
break;
|
||||
case 6:
|
||||
case ANIM_OPPONENT_LEFT:
|
||||
battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
|
||||
break;
|
||||
case 7:
|
||||
case ANIM_OPPONENT_RIGHT:
|
||||
default:
|
||||
battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
|
||||
break;
|
||||
}
|
||||
|
||||
if (IsBattlerSpriteVisible(battlerId) == FALSE)
|
||||
destroy = TRUE;
|
||||
abort = TRUE;
|
||||
|
||||
spriteId = gBattlerSpriteIds[battlerId];
|
||||
}
|
||||
@@ -197,7 +193,7 @@ void AnimTask_ShakeMon2(u8 taskId)
|
||||
spriteId = gBattlerSpriteIds[gBattleAnimAttacker];
|
||||
}
|
||||
|
||||
if (destroy)
|
||||
if (abort)
|
||||
{
|
||||
DestroyAnimVisualTask(taskId);
|
||||
return;
|
||||
@@ -332,10 +328,8 @@ void AnimTask_ShakeAndSinkMon(u8 taskId)
|
||||
|
||||
static void AnimTask_ShakeAndSinkMon_Step(u8 taskId)
|
||||
{
|
||||
s16 x;
|
||||
u8 spriteId;
|
||||
spriteId = gTasks[taskId].data[0];
|
||||
x = gTasks[taskId].data[1];
|
||||
u8 spriteId = gTasks[taskId].data[0];
|
||||
s16 x = gTasks[taskId].data[1];
|
||||
if (gTasks[taskId].data[2] == gTasks[taskId].data[8]++)
|
||||
{
|
||||
gTasks[taskId].data[8] = 0;
|
||||
@@ -365,11 +359,8 @@ static void AnimTask_ShakeAndSinkMon_Step(u8 taskId)
|
||||
void AnimTask_TranslateMonElliptical(u8 taskId)
|
||||
{
|
||||
u8 i;
|
||||
u8 spriteId;
|
||||
u8 wavePeriod;
|
||||
|
||||
wavePeriod = 1;
|
||||
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
|
||||
u8 wavePeriod = 1;
|
||||
u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
|
||||
if (gBattleAnimArgs[4] > 5)
|
||||
gBattleAnimArgs[4] = 5;
|
||||
|
||||
@@ -742,7 +733,7 @@ static void AnimTask_SlideOffScreen_Step(u8 taskId)
|
||||
{
|
||||
u8 spriteId = gTasks[taskId].data[0];
|
||||
gSprites[spriteId].x2 += gTasks[taskId].data[1];
|
||||
if (gSprites[spriteId].x2 + gSprites[spriteId].x + 0x20 > 0x130u)
|
||||
if (gSprites[spriteId].x2 + gSprites[spriteId].x < -32 || gSprites[spriteId].x2 + gSprites[spriteId].x > DISPLAY_WIDTH + 32)
|
||||
{
|
||||
DestroyAnimVisualTask(taskId);
|
||||
return;
|
||||
@@ -831,8 +822,7 @@ static void AnimTask_SwayMonStep(u8 taskId)
|
||||
// arg 4: sprite object mode
|
||||
void AnimTask_ScaleMonAndRestore(u8 taskId)
|
||||
{
|
||||
u8 spriteId;
|
||||
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[3]);
|
||||
u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[3]);
|
||||
PrepareBattlerSpriteForRotScale(spriteId, gBattleAnimArgs[4]);
|
||||
gTasks[taskId].data[0] = gBattleAnimArgs[0];
|
||||
gTasks[taskId].data[1] = gBattleAnimArgs[1];
|
||||
@@ -893,13 +883,13 @@ void AnimTask_RotateMonSpriteToSide(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gBattleAnimArgs[2] == 0)
|
||||
if (gBattleAnimArgs[2] == ANIM_ATTACKER)
|
||||
{
|
||||
gTasks[taskId].data[7] = !GetBattlerSide(gBattleAnimAttacker);
|
||||
gTasks[taskId].data[7] = GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER;
|
||||
}
|
||||
else
|
||||
{
|
||||
gTasks[taskId].data[7] = !GetBattlerSide(gBattleAnimTarget);
|
||||
gTasks[taskId].data[7] = GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER;
|
||||
}
|
||||
}
|
||||
if (gTasks[taskId].data[7])
|
||||
@@ -916,8 +906,7 @@ void AnimTask_RotateMonSpriteToSide(u8 taskId)
|
||||
// Rotates mon to side and back to original position. For Peck and when a held item activates
|
||||
void AnimTask_RotateMonToSideAndRestore(u8 taskId)
|
||||
{
|
||||
u8 spriteId;
|
||||
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]);
|
||||
u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]);
|
||||
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
|
||||
gTasks[taskId].data[1] = 0;
|
||||
gTasks[taskId].data[2] = gBattleAnimArgs[0];
|
||||
|
||||
+50
-46
@@ -81,7 +81,7 @@ static const u8 sCastformBackSpriteYCoords[NUM_CASTFORM_FORMS] =
|
||||
#define TAG_MOVE_EFFECT_MON_1 55125
|
||||
#define TAG_MOVE_EFFECT_MON_2 55126
|
||||
|
||||
static const struct SpriteTemplate sSpriteTemplate_MoveEffectMons[] =
|
||||
static const struct SpriteTemplate sSpriteTemplates_MoveEffectMons[] =
|
||||
{
|
||||
{
|
||||
.tileTag = TAG_MOVE_EFFECT_MON_1,
|
||||
@@ -103,7 +103,7 @@ static const struct SpriteTemplate sSpriteTemplate_MoveEffectMons[] =
|
||||
}
|
||||
};
|
||||
|
||||
static const struct SpriteSheet sSpriteSheet_MoveEffectMons[] =
|
||||
static const struct SpriteSheet sSpriteSheets_MoveEffectMons[] =
|
||||
{
|
||||
{ gMiscBlank_Gfx, MON_PIC_SIZE, TAG_MOVE_EFFECT_MON_1, },
|
||||
{ gMiscBlank_Gfx, MON_PIC_SIZE, TAG_MOVE_EFFECT_MON_2, },
|
||||
@@ -414,7 +414,7 @@ u8 GetAnimBattlerSpriteId(u8 animBattler)
|
||||
}
|
||||
}
|
||||
|
||||
void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*callback)(struct Sprite*))
|
||||
void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*callback)(struct Sprite *))
|
||||
{
|
||||
sprite->data[6] = (u32)(callback) & 0xffff;
|
||||
sprite->data[7] = (u32)(callback) >> 16;
|
||||
@@ -440,7 +440,7 @@ void SetCallbackToStoredInData6(struct Sprite *sprite)
|
||||
#define sAmplitudeX sAmplitude
|
||||
#define sAmplitudeY data[4]
|
||||
|
||||
// TranslateSpriteInWavePattern
|
||||
// TranslateSpriteInLissajousCurve
|
||||
#define sCirclePosX sCirclePos
|
||||
#define sCircleSpeedX sCircleSpeed
|
||||
#define sCirclePosY data[4]
|
||||
@@ -487,7 +487,7 @@ void TranslateSpriteInGrowingCircle(struct Sprite *sprite)
|
||||
|
||||
// Unused
|
||||
// Exact shape depends on arguments. Can move in a figure-8-like pattern, or circular, etc.
|
||||
static void TranslateSpriteInWavePattern(struct Sprite *sprite)
|
||||
static void TranslateSpriteInLissajousCurve(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->sDuration)
|
||||
{
|
||||
@@ -495,7 +495,7 @@ static void TranslateSpriteInWavePattern(struct Sprite *sprite)
|
||||
sprite->y2 = Cos(sprite->sCirclePosY, sprite->sAmplitude);
|
||||
sprite->sCirclePosX += sprite->sCircleSpeedX;
|
||||
sprite->sCirclePosY += sprite->sCircleSpeedY;
|
||||
|
||||
|
||||
if (sprite->sCirclePosX >= 0x100)
|
||||
sprite->sCirclePosX -= 0x100;
|
||||
else if (sprite->sCirclePosX < 0)
|
||||
@@ -857,7 +857,7 @@ u8 GetBattlerSide(u8 battlerId)
|
||||
|
||||
u8 GetBattlerPosition(u8 battlerId)
|
||||
{
|
||||
return GET_BATTLER_POSITION(battlerId);
|
||||
return gBattlerPositions[battlerId];
|
||||
}
|
||||
|
||||
u8 GetBattlerAtPosition(u8 position)
|
||||
@@ -908,13 +908,17 @@ bool8 IsDoubleBattle(void)
|
||||
return IS_DOUBLE_BATTLE();
|
||||
}
|
||||
|
||||
#define BG_ANIM_PAL_1 8
|
||||
#define BG_ANIM_PAL_2 9
|
||||
#define BG_ANIM_PAL_CONTEST 14
|
||||
|
||||
void GetBattleAnimBg1Data(struct BattleAnimBgData *out)
|
||||
{
|
||||
if (IsContest())
|
||||
{
|
||||
out->bgTiles = gBattleAnimBgTileBuffer;
|
||||
out->bgTilemap = (u16 *)gBattleAnimBgTilemapBuffer;
|
||||
out->paletteId = 14;
|
||||
out->paletteId = BG_ANIM_PAL_CONTEST;
|
||||
out->bgId = 1;
|
||||
out->tilesOffset = 0;
|
||||
out->unused = 0;
|
||||
@@ -923,7 +927,7 @@ void GetBattleAnimBg1Data(struct BattleAnimBgData *out)
|
||||
{
|
||||
out->bgTiles = gBattleAnimBgTileBuffer;
|
||||
out->bgTilemap = (u16 *)gBattleAnimBgTilemapBuffer;
|
||||
out->paletteId = 8;
|
||||
out->paletteId = BG_ANIM_PAL_1;
|
||||
out->bgId = 1;
|
||||
out->tilesOffset = 0x200;
|
||||
out->unused = 0;
|
||||
@@ -936,7 +940,7 @@ void GetBattleAnimBgData(struct BattleAnimBgData *out, u32 bgId)
|
||||
{
|
||||
out->bgTiles = gBattleAnimBgTileBuffer;
|
||||
out->bgTilemap = (u16 *)gBattleAnimBgTilemapBuffer;
|
||||
out->paletteId = 14;
|
||||
out->paletteId = BG_ANIM_PAL_CONTEST;
|
||||
out->bgId = 1;
|
||||
out->tilesOffset = 0;
|
||||
out->unused = 0;
|
||||
@@ -949,7 +953,7 @@ void GetBattleAnimBgData(struct BattleAnimBgData *out, u32 bgId)
|
||||
{
|
||||
out->bgTiles = gBattleAnimBgTileBuffer;
|
||||
out->bgTilemap = (u16 *)gBattleAnimBgTilemapBuffer;
|
||||
out->paletteId = 9;
|
||||
out->paletteId = BG_ANIM_PAL_2;
|
||||
out->bgId = 2;
|
||||
out->tilesOffset = 0x300;
|
||||
out->unused = 0;
|
||||
@@ -962,21 +966,21 @@ void GetBgDataForTransform(struct BattleAnimBgData *out, u8 battlerId)
|
||||
out->bgTilemap = (u16 *)gBattleAnimBgTilemapBuffer;
|
||||
if (IsContest())
|
||||
{
|
||||
out->paletteId = 14;
|
||||
out->paletteId = BG_ANIM_PAL_CONTEST;
|
||||
out->bgId = 1;
|
||||
out->tilesOffset = 0;
|
||||
out->unused = 0;
|
||||
}
|
||||
else if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1)
|
||||
{
|
||||
out->paletteId = 8;
|
||||
out->paletteId = BG_ANIM_PAL_1;
|
||||
out->bgId = 1;
|
||||
out->tilesOffset = 0x200;
|
||||
out->unused = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
out->paletteId = 9;
|
||||
out->paletteId = BG_ANIM_PAL_2;
|
||||
out->bgId = 2;
|
||||
out->tilesOffset = 0x300;
|
||||
out->unused = 0;
|
||||
@@ -1361,14 +1365,14 @@ void ResetSpriteRotScale_PreserveAffine(struct Sprite *sprite)
|
||||
CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode);
|
||||
}
|
||||
|
||||
static u16 ArcTan2_(s16 a, s16 b)
|
||||
static u16 ArcTan2_(s16 x, s16 y)
|
||||
{
|
||||
return ArcTan2(a, b);
|
||||
return ArcTan2(x, y);
|
||||
}
|
||||
|
||||
u16 ArcTan2Neg(s16 a, s16 b)
|
||||
u16 ArcTan2Neg(s16 x, s16 y)
|
||||
{
|
||||
u16 var = ArcTan2_(a, b);
|
||||
u16 var = ArcTan2_(x, y);
|
||||
return -var;
|
||||
}
|
||||
|
||||
@@ -1401,7 +1405,7 @@ void SetGrayscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor)
|
||||
}
|
||||
}
|
||||
|
||||
u32 GetBattleBgPalettesMask(u8 battleBackground, u8 attacker, u8 target, u8 attackerPartner, u8 targetPartner, u8 a6, u8 a7)
|
||||
u32 GetBattlePalettesMask(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 anim1, bool8 anim2)
|
||||
{
|
||||
u32 selectedPalettes = 0;
|
||||
u32 shift;
|
||||
@@ -1409,7 +1413,7 @@ u32 GetBattleBgPalettesMask(u8 battleBackground, u8 attacker, u8 target, u8 atta
|
||||
if (battleBackground)
|
||||
{
|
||||
if (!IsContest())
|
||||
selectedPalettes = 0xe;
|
||||
selectedPalettes = 0xe; // Palettes 1, 2, and 3
|
||||
else
|
||||
selectedPalettes = 1 << GetBattleBgPaletteNum();
|
||||
}
|
||||
@@ -1439,17 +1443,17 @@ u32 GetBattleBgPalettesMask(u8 battleBackground, u8 attacker, u8 target, u8 atta
|
||||
selectedPalettes |= 1 << shift;
|
||||
}
|
||||
}
|
||||
if (a6)
|
||||
if (anim1)
|
||||
{
|
||||
if (!IsContest())
|
||||
selectedPalettes |= 0x100;
|
||||
selectedPalettes |= 1 << BG_ANIM_PAL_1;
|
||||
else
|
||||
selectedPalettes |= 0x4000;
|
||||
selectedPalettes |= 1 << BG_ANIM_PAL_CONTEST;
|
||||
}
|
||||
if (a7)
|
||||
if (anim2)
|
||||
{
|
||||
if (!IsContest())
|
||||
selectedPalettes |= 0x200;
|
||||
selectedPalettes |= 1 << BG_ANIM_PAL_2;
|
||||
}
|
||||
return selectedPalettes;
|
||||
}
|
||||
@@ -1504,13 +1508,13 @@ u32 GetBattleMonSpritePalettesMask(u8 playerLeft, u8 playerRight, u8 opponentLef
|
||||
return selectedPalettes;
|
||||
}
|
||||
|
||||
// Presumably something commented here, just returns arg
|
||||
u8 AnimDummyReturnArg(u8 battler)
|
||||
u8 GetSpritePalIdxByBattler(u8 battler)
|
||||
{
|
||||
return battler;
|
||||
}
|
||||
|
||||
static u8 GetBattlerAtPosition_(u8 position)
|
||||
// Unused
|
||||
static u8 GetSpritePalIdxByPosition(u8 position)
|
||||
{
|
||||
return GetBattlerAtPosition(position);
|
||||
}
|
||||
@@ -1548,20 +1552,20 @@ void AnimSpriteOnMonPos(struct Sprite *sprite)
|
||||
// arg 5: lower 8 bits = location on attacking mon, upper 8 bits = location on target mon pick to target
|
||||
void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite)
|
||||
{
|
||||
bool8 v1;
|
||||
bool8 respectMonPicOffsets;
|
||||
u8 coordType;
|
||||
|
||||
if (!(gBattleAnimArgs[5] & 0xff00))
|
||||
v1 = TRUE;
|
||||
respectMonPicOffsets = TRUE;
|
||||
else
|
||||
v1 = FALSE;
|
||||
respectMonPicOffsets = FALSE;
|
||||
|
||||
if (!(gBattleAnimArgs[5] & 0xff))
|
||||
coordType = BATTLER_COORD_Y_PIC_OFFSET;
|
||||
else
|
||||
coordType = BATTLER_COORD_Y;
|
||||
|
||||
InitSpritePosToAnimAttacker(sprite, v1);
|
||||
InitSpritePosToAnimAttacker(sprite, respectMonPicOffsets);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
|
||||
|
||||
@@ -1574,7 +1578,7 @@ void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite)
|
||||
|
||||
void AnimThrowProjectile(struct Sprite *sprite)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
if (GetBattlerSide(gBattleAnimAttacker))
|
||||
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
|
||||
sprite->data[0] = gBattleAnimArgs[4];
|
||||
@@ -1722,7 +1726,7 @@ void AnimTask_BlendMonInAndOut(u8 task)
|
||||
DestroyAnimVisualTask(task);
|
||||
return;
|
||||
}
|
||||
gTasks[task].data[0] = (gSprites[spriteId].oam.paletteNum * 0x10) + 0x101;
|
||||
gTasks[task].data[0] = OBJ_PLTT_ID(gSprites[spriteId].oam.paletteNum) + 1;
|
||||
AnimTask_BlendPalInAndOutSetup(&gTasks[task]);
|
||||
}
|
||||
|
||||
@@ -2093,14 +2097,14 @@ u8 GetBattlerSpriteBGPriorityRank(u8 battlerId)
|
||||
u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, bool32 ignoreDeoxysForm)
|
||||
{
|
||||
u8 spriteId;
|
||||
u16 sheet = LoadSpriteSheet(&sSpriteSheet_MoveEffectMons[id]);
|
||||
u16 palette = AllocSpritePalette(sSpriteTemplate_MoveEffectMons[id].paletteTag);
|
||||
u16 sheet = LoadSpriteSheet(&sSpriteSheets_MoveEffectMons[id]);
|
||||
u16 palette = AllocSpritePalette(sSpriteTemplates_MoveEffectMons[id].paletteTag);
|
||||
|
||||
if (gMonSpritesGfxPtr != NULL && gMonSpritesGfxPtr->buffer == NULL)
|
||||
gMonSpritesGfxPtr->buffer = AllocZeroed(0x2000);
|
||||
if (!isBackpic)
|
||||
{
|
||||
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20);
|
||||
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), OBJ_PLTT_ID(palette), PLTT_SIZE_4BPP);
|
||||
if (ignoreDeoxysForm == TRUE || ShouldIgnoreDeoxysForm(5, battlerId) == TRUE || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0)
|
||||
LoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species],
|
||||
gMonSpritesGfxPtr->buffer,
|
||||
@@ -2116,7 +2120,7 @@ u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16
|
||||
}
|
||||
else
|
||||
{
|
||||
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20);
|
||||
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), OBJ_PLTT_ID(palette), PLTT_SIZE_4BPP);
|
||||
if (ignoreDeoxysForm == TRUE || ShouldIgnoreDeoxysForm(5, battlerId) == TRUE || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0)
|
||||
LoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species],
|
||||
gMonSpritesGfxPtr->buffer,
|
||||
@@ -2135,9 +2139,9 @@ u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16
|
||||
FREE_AND_SET_NULL(gMonSpritesGfxPtr->buffer);
|
||||
|
||||
if (!isBackpic)
|
||||
spriteId = CreateSprite(&sSpriteTemplate_MoveEffectMons[id], x, y + gMonFrontPicCoords[species].y_offset, subpriority);
|
||||
spriteId = CreateSprite(&sSpriteTemplates_MoveEffectMons[id], x, y + gMonFrontPicCoords[species].y_offset, subpriority);
|
||||
else
|
||||
spriteId = CreateSprite(&sSpriteTemplate_MoveEffectMons[id], x, y + gMonBackPicCoords[species].y_offset, subpriority);
|
||||
spriteId = CreateSprite(&sSpriteTemplates_MoveEffectMons[id], x, y + gMonBackPicCoords[species].y_offset, subpriority);
|
||||
|
||||
if (IsContest())
|
||||
{
|
||||
@@ -2423,9 +2427,9 @@ void AnimTask_AttackerPunchWithTrace(u8 taskId)
|
||||
task->tPaletteNum = AllocSpritePalette(ANIM_TAG_BENT_SPOON);
|
||||
task->tNumTracesActive = 0;
|
||||
|
||||
dest = (task->tPaletteNum + 16) * 16;
|
||||
src = (gSprites[task->tBattlerSpriteId].oam.paletteNum + 0x10) * 0x10;
|
||||
|
||||
dest = OBJ_PLTT_ID2(task->tPaletteNum);
|
||||
src = OBJ_PLTT_ID2(gSprites[task->tBattlerSpriteId].oam.paletteNum);
|
||||
|
||||
// Set trace's priority based on battler's subpriority
|
||||
task->tPriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker);
|
||||
if (task->tPriority == 20 || task->tPriority == 40)
|
||||
@@ -2433,7 +2437,7 @@ void AnimTask_AttackerPunchWithTrace(u8 taskId)
|
||||
else
|
||||
task->tPriority = 3;
|
||||
|
||||
CpuCopy32(&gPlttBufferUnfaded[src], &gPlttBufferFaded[dest], 0x20);
|
||||
CpuCopy32(&gPlttBufferUnfaded[src], &gPlttBufferFaded[dest], PLTT_SIZE_4BPP);
|
||||
BlendPalette(dest, 16, gBattleAnimArgs[1], gBattleAnimArgs[0]);
|
||||
task->func = AnimTask_AttackerPunchWithTrace_Step;
|
||||
}
|
||||
@@ -2515,7 +2519,7 @@ void AnimWeatherBallUp(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
|
||||
sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
|
||||
if (!GetBattlerSide(gBattleAnimAttacker))
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||
sprite->data[0] = 5;
|
||||
else
|
||||
sprite->data[0] = -10;
|
||||
@@ -2541,7 +2545,7 @@ void AnimWeatherBallDown(struct Sprite *sprite)
|
||||
sprite->data[0] = gBattleAnimArgs[2];
|
||||
sprite->data[2] = sprite->x + gBattleAnimArgs[4];
|
||||
sprite->data[4] = sprite->y + gBattleAnimArgs[5];
|
||||
if (!GetBattlerSide(gBattleAnimTarget))
|
||||
if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
|
||||
{
|
||||
x = (u16)gBattleAnimArgs[4] + 30;
|
||||
sprite->x += x;
|
||||
|
||||
+27
-27
@@ -304,7 +304,7 @@ static void AnimConfusionDuck_Step(struct Sprite *sprite)
|
||||
// arg 4: blend color
|
||||
static void AnimSimplePaletteBlend(struct Sprite *sprite)
|
||||
{
|
||||
u32 selectedPalettes = UnpackSelectedBattleBgPalettes(gBattleAnimArgs[0]);
|
||||
u32 selectedPalettes = UnpackSelectedBattlePalettes(gBattleAnimArgs[0]);
|
||||
BeginNormalPaletteFade(selectedPalettes, gBattleAnimArgs[1], gBattleAnimArgs[2], gBattleAnimArgs[3], gBattleAnimArgs[4]);
|
||||
sprite->invisible = TRUE;
|
||||
sprite->callback = AnimSimplePaletteBlend_Step;
|
||||
@@ -312,23 +312,23 @@ static void AnimSimplePaletteBlend(struct Sprite *sprite)
|
||||
|
||||
// Unpacks a bitfield and returns a bitmask of its selected palettes.
|
||||
// Bits 0-6 of the selector parameter result in the following palettes being selected:
|
||||
// 0: battle background palettes (BG palettes 1, 2, and 3)
|
||||
// 1: gBattleAnimAttacker OBJ palette
|
||||
// 2: gBattleAnimTarget OBJ palette
|
||||
// 3: gBattleAnimAttacker partner OBJ palette
|
||||
// 4: gBattleAnimTarget partner OBJ palette
|
||||
// 5: BG palette 4
|
||||
// 6: BG palette 5
|
||||
u32 UnpackSelectedBattleBgPalettes(s16 selector)
|
||||
// 0: F_PAL_BG, battle background palettes (BG palettes 1, 2, and 3)
|
||||
// 1: F_PAL_ATTACKER, gBattleAnimAttacker OBJ palette
|
||||
// 2: F_PAL_TARGET, gBattleAnimTarget OBJ palette
|
||||
// 3: F_PAL_ATK_PARTNER, gBattleAnimAttacker partner OBJ palette
|
||||
// 4: F_PAL_DEF_PARTNER, gBattleAnimTarget partner OBJ palette
|
||||
// 5: F_PAL_ANIM_1, BG palette 8 (or 14, if in Contest)
|
||||
// 6: F_PAL_ANIM_2, BG palette 9
|
||||
u32 UnpackSelectedBattlePalettes(s16 selector)
|
||||
{
|
||||
u8 battleBackground = selector & 1;
|
||||
u8 attacker = (selector >> 1) & 1;
|
||||
u8 target = (selector >> 2) & 1;
|
||||
u8 attackerPartner = (selector >> 3) & 1;
|
||||
u8 targetPartner = (selector >> 4) & 1;
|
||||
u8 arg5 = (selector >> 5) & 1;
|
||||
u8 arg6 = (selector >> 6) & 1;
|
||||
return GetBattleBgPalettesMask(battleBackground, attacker, target, attackerPartner, targetPartner, arg5, arg6);
|
||||
bool8 battleBackground = selector & 1;
|
||||
bool8 attacker = (selector >> 1) & 1;
|
||||
bool8 target = (selector >> 2) & 1;
|
||||
bool8 attackerPartner = (selector >> 3) & 1;
|
||||
bool8 targetPartner = (selector >> 4) & 1;
|
||||
bool8 anim1 = (selector >> 5) & 1;
|
||||
bool8 anim2 = (selector >> 6) & 1;
|
||||
return GetBattlePalettesMask(battleBackground, attacker, target, attackerPartner, targetPartner, anim1, anim2);
|
||||
}
|
||||
|
||||
static void AnimSimplePaletteBlend_Step(struct Sprite *sprite)
|
||||
@@ -350,7 +350,7 @@ static void AnimComplexPaletteBlend(struct Sprite *sprite)
|
||||
sprite->data[6] = gBattleAnimArgs[6];
|
||||
sprite->data[7] = gBattleAnimArgs[0];
|
||||
|
||||
selectedPalettes = UnpackSelectedBattleBgPalettes(sprite->data[7]);
|
||||
selectedPalettes = UnpackSelectedBattlePalettes(sprite->data[7]);
|
||||
BlendPalettes(selectedPalettes, gBattleAnimArgs[4], gBattleAnimArgs[3]);
|
||||
sprite->invisible = TRUE;
|
||||
sprite->callback = AnimComplexPaletteBlend_Step1;
|
||||
@@ -375,7 +375,7 @@ static void AnimComplexPaletteBlend_Step1(struct Sprite *sprite)
|
||||
return;
|
||||
}
|
||||
|
||||
selectedPalettes = UnpackSelectedBattleBgPalettes(sprite->data[7]);
|
||||
selectedPalettes = UnpackSelectedBattlePalettes(sprite->data[7]);
|
||||
if (sprite->data[1] & 0x100)
|
||||
BlendPalettes(selectedPalettes, sprite->data[4], sprite->data[3]);
|
||||
else
|
||||
@@ -392,7 +392,7 @@ static void AnimComplexPaletteBlend_Step2(struct Sprite *sprite)
|
||||
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
selectedPalettes = UnpackSelectedBattleBgPalettes(sprite->data[7]);
|
||||
selectedPalettes = UnpackSelectedBattlePalettes(sprite->data[7]);
|
||||
BlendPalettes(selectedPalettes, 0, 0);
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
@@ -442,7 +442,7 @@ void AnimTask_BlendColorCycle(u8 taskId)
|
||||
|
||||
static void BlendColorCycle(u8 taskId, u8 startBlendAmount, u8 targetBlendAmount)
|
||||
{
|
||||
u32 selectedPalettes = UnpackSelectedBattleBgPalettes(gTasks[taskId].tPalSelector);
|
||||
u32 selectedPalettes = UnpackSelectedBattlePalettes(gTasks[taskId].tPalSelector);
|
||||
BeginNormalPaletteFade(
|
||||
selectedPalettes,
|
||||
gTasks[taskId].tDelay,
|
||||
@@ -721,7 +721,7 @@ void AnimTask_InvertScreenColor(u8 taskId)
|
||||
u8 targetBattler = gBattleAnimTarget;
|
||||
|
||||
if (gBattleAnimArgs[0] & 0x100)
|
||||
selectedPalettes = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0);
|
||||
selectedPalettes = GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE);
|
||||
|
||||
if (gBattleAnimArgs[1] & 0x100)
|
||||
selectedPalettes |= (0x10000 << attackerBattler);
|
||||
@@ -945,7 +945,7 @@ static void AnimHitSplatBasic(struct Sprite *sprite)
|
||||
{
|
||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
|
||||
if (gBattleAnimArgs[2] == ANIM_ATTACKER)
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
else
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
|
||||
@@ -958,7 +958,7 @@ static void AnimHitSplatPersistent(struct Sprite *sprite)
|
||||
{
|
||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
|
||||
if (gBattleAnimArgs[2] == ANIM_ATTACKER)
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
else
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
|
||||
@@ -984,7 +984,7 @@ static void AnimHitSplatRandom(struct Sprite *sprite)
|
||||
|
||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[1]);
|
||||
if (gBattleAnimArgs[0] == ANIM_ATTACKER)
|
||||
InitSpritePosToAnimAttacker(sprite, 0);
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
else
|
||||
InitSpritePosToAnimTarget(sprite, FALSE);
|
||||
|
||||
@@ -1010,7 +1010,7 @@ static void AnimHitSplatOnMonEdge(struct Sprite *sprite)
|
||||
static void AnimCrossImpact(struct Sprite *sprite)
|
||||
{
|
||||
if (gBattleAnimArgs[2] == ANIM_ATTACKER)
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
else
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
|
||||
@@ -1023,7 +1023,7 @@ static void AnimFlashingHitSplat(struct Sprite *sprite)
|
||||
{
|
||||
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
|
||||
if (gBattleAnimArgs[2] == ANIM_ATTACKER)
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
else
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
|
||||
|
||||
@@ -190,7 +190,7 @@ static void AnimSludgeProjectile(struct Sprite *sprite)
|
||||
if (!gBattleAnimArgs[3])
|
||||
StartSpriteAnim(sprite, 2);
|
||||
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[2];
|
||||
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
|
||||
@@ -214,8 +214,8 @@ static void AnimAcidPoisonBubble(struct Sprite *sprite)
|
||||
if (!gBattleAnimArgs[3])
|
||||
StartSpriteAnim(sprite, 2);
|
||||
|
||||
InitSpritePosToAnimAttacker(sprite, 1);
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, 1, &l1, &l2);
|
||||
InitSpritePosToAnimAttacker(sprite, TRUE);
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, TRUE, &l1, &l2);
|
||||
|
||||
if (GetBattlerSide(gBattleAnimAttacker))
|
||||
gBattleAnimArgs[4] = -gBattleAnimArgs[4];
|
||||
|
||||
@@ -570,7 +570,7 @@ static void AnimDefensiveWall_Step5(struct Sprite *sprite)
|
||||
if (IsBattlerSpriteVisible(battler))
|
||||
ResetBattleAnimBg(toBG2);
|
||||
|
||||
battler = battlerCopy ^ 2;
|
||||
battler = BATTLE_PARTNER(battlerCopy);
|
||||
if (IsBattlerSpriteVisible(battler))
|
||||
ResetBattleAnimBg(toBG2 ^ var0);
|
||||
}
|
||||
@@ -583,9 +583,9 @@ static void AnimWallSparkle(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[0] == 0)
|
||||
{
|
||||
int arg3 = gBattleAnimArgs[3];
|
||||
bool32 ignoreOffsets = gBattleAnimArgs[3];
|
||||
bool8 respectMonPicOffsets = FALSE;
|
||||
if (arg3 == 0)
|
||||
if (!ignoreOffsets)
|
||||
respectMonPicOffsets = TRUE;
|
||||
|
||||
if (!IsContest() && IsDoubleBattle())
|
||||
@@ -818,7 +818,7 @@ static void AnimTask_ImprisonOrbs_Step(u8 taskId)
|
||||
{
|
||||
for (i = 8; i < 13; i++)
|
||||
{
|
||||
if (task->data[i] != 64)
|
||||
if (task->data[i] != MAX_SPRITES)
|
||||
DestroySprite(&gSprites[task->data[i]]);
|
||||
}
|
||||
|
||||
@@ -918,7 +918,7 @@ static void AnimTask_SkillSwap_Step(u8 taskId)
|
||||
{
|
||||
task->data[1] = 0;
|
||||
spriteId = CreateSprite(&gSkillSwapOrbSpriteTemplate, task->data[11], task->data[12], 0);
|
||||
if (spriteId != 64)
|
||||
if (spriteId != MAX_SPRITES)
|
||||
{
|
||||
gSprites[spriteId].data[0] = 16;
|
||||
gSprites[spriteId].data[2] = task->data[13];
|
||||
@@ -997,12 +997,10 @@ void AnimTask_ExtrasensoryDistortion(u8 taskId)
|
||||
scanlineParams.dmaDest = ®_BG2HOFS;
|
||||
}
|
||||
|
||||
i = task->data[14];
|
||||
while (i <= task->data[14] + 64)
|
||||
for (i = task->data[14]; i <= task->data[14] + 64; i++)
|
||||
{
|
||||
gScanlineEffectRegBuffers[0][i] = task->data[10];
|
||||
gScanlineEffectRegBuffers[1][i] = task->data[10];
|
||||
i++;
|
||||
}
|
||||
|
||||
scanlineParams.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT;
|
||||
@@ -1137,7 +1135,7 @@ static void AnimPsychoBoost(struct Sprite *sprite)
|
||||
case 1:
|
||||
if (sprite->affineAnimEnded)
|
||||
{
|
||||
PlaySE12WithPanning(SE_M_TELEPORT, BattleAnimAdjustPanning(-64));
|
||||
PlaySE12WithPanning(SE_M_TELEPORT, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER));
|
||||
ChangeSpriteAffineAnim(sprite, 1);
|
||||
sprite->data[0]++;
|
||||
}
|
||||
|
||||
@@ -297,7 +297,7 @@ const struct SpriteTemplate gWeatherBallRockDownSpriteTemplate =
|
||||
static void AnimFallingRock(struct Sprite *sprite)
|
||||
{
|
||||
if (gBattleAnimArgs[3] != 0)
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->x, &sprite->y);
|
||||
SetAverageBattlerPositions(gBattleAnimTarget, FALSE, &sprite->x, &sprite->y);
|
||||
|
||||
sprite->x += gBattleAnimArgs[0];
|
||||
sprite->y += 14;
|
||||
@@ -363,7 +363,7 @@ static void AnimRockFragment(struct Sprite *sprite)
|
||||
static void AnimParticleInVortex(struct Sprite *sprite)
|
||||
{
|
||||
if (gBattleAnimArgs[6] == ANIM_ATTACKER)
|
||||
InitSpritePosToAnimAttacker(sprite, 0);
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
else
|
||||
InitSpritePosToAnimTarget(sprite, FALSE);
|
||||
|
||||
@@ -410,7 +410,7 @@ void AnimTask_LoadSandstormBackground(u8 taskId)
|
||||
GetBattleAnimBg1Data(&animBg);
|
||||
AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBgImage_Sandstorm, animBg.tilesOffset);
|
||||
AnimLoadCompressedBgTilemapHandleContest(&animBg, gBattleAnimBgTilemap_Sandstorm, FALSE);
|
||||
LoadCompressedPalette(gBattleAnimSpritePal_FlyingDirt, animBg.paletteId * 16, 32);
|
||||
LoadCompressedPalette(gBattleAnimSpritePal_FlyingDirt, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
|
||||
|
||||
if (gBattleAnimArgs[0] && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
var0 = 1;
|
||||
@@ -544,7 +544,7 @@ static void AnimFlyingSandCrescent(struct Sprite *sprite)
|
||||
static void AnimRaiseSprite(struct Sprite *sprite)
|
||||
{
|
||||
StartSpriteAnim(sprite, gBattleAnimArgs[4]);
|
||||
InitSpritePosToAnimAttacker(sprite, 0);
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[3];
|
||||
sprite->data[2] = sprite->x;
|
||||
@@ -596,8 +596,8 @@ void AnimTask_Rollout(u8 taskId)
|
||||
task->data[6] = 0;
|
||||
task->data[7] = 0;
|
||||
|
||||
pan1 = BattleAnimAdjustPanning(-64);
|
||||
pan2 = BattleAnimAdjustPanning(63);
|
||||
pan1 = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER);
|
||||
pan2 = BattleAnimAdjustPanning(SOUND_PAN_TARGET);
|
||||
|
||||
task->data[13] = pan1;
|
||||
task->data[14] = (pan2 - pan1) / task->data[8];
|
||||
|
||||
@@ -7,8 +7,13 @@
|
||||
#include "util.h"
|
||||
#include "constants/battle_palace.h"
|
||||
|
||||
static void SmokescreenImpact_Callback(struct Sprite *);
|
||||
static void SpriteCB_DestroySprite(struct Sprite *sprite);
|
||||
#define TAG_SMOKESCREEN 55019
|
||||
|
||||
#define PALTAG_SHADOW 55039
|
||||
#define GFXTAG_SHADOW 55129
|
||||
|
||||
static void SpriteCB_SmokescreenImpactMain(struct Sprite *);
|
||||
static void SpriteCB_SmokescreenImpact(struct Sprite *);
|
||||
|
||||
// The below data for smokescreen starts and ends with some data that belongs to battle_gfx_sfx_util.c
|
||||
|
||||
@@ -43,12 +48,12 @@ const u8 gBattlePalaceNatureToMoveTarget[NUM_NATURES] =
|
||||
|
||||
static const struct CompressedSpriteSheet sSmokescreenImpactSpriteSheet =
|
||||
{
|
||||
.data = gSmokescreenImpactTiles, .size = 0x180, .tag = 55019
|
||||
.data = gSmokescreenImpactTiles, .size = 0x180, .tag = TAG_SMOKESCREEN
|
||||
};
|
||||
|
||||
static const struct CompressedSpritePalette sSmokescreenImpactSpritePalette =
|
||||
{
|
||||
.data = gSmokescreenImpactPalette, .tag = 55019
|
||||
.data = gSmokescreenImpactPalette, .tag = TAG_SMOKESCREEN
|
||||
};
|
||||
|
||||
static const struct OamData sOamData_SmokescreenImpact =
|
||||
@@ -56,7 +61,7 @@ static const struct OamData sOamData_SmokescreenImpact =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(16x16),
|
||||
.x = 0,
|
||||
@@ -110,18 +115,18 @@ static const union AnimCmd *const sAnims_SmokescreenImpact[] =
|
||||
|
||||
static const struct SpriteTemplate sSmokescreenImpactSpriteTemplate =
|
||||
{
|
||||
.tileTag = 55019,
|
||||
.paletteTag = 55019,
|
||||
.tileTag = TAG_SMOKESCREEN,
|
||||
.paletteTag = TAG_SMOKESCREEN,
|
||||
.oam = &sOamData_SmokescreenImpact,
|
||||
.anims = sAnims_SmokescreenImpact,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCB_DestroySprite
|
||||
.callback = SpriteCB_SmokescreenImpact
|
||||
};
|
||||
|
||||
const struct CompressedSpriteSheet gSpriteSheet_EnemyShadow =
|
||||
{
|
||||
.data = gEnemyMonShadow_Gfx, .size = 0x80, .tag = 55129
|
||||
.data = gEnemyMonShadow_Gfx, .size = 0x80, .tag = GFXTAG_SHADOW
|
||||
};
|
||||
|
||||
static const struct OamData sOamData_EnemyShadow =
|
||||
@@ -129,7 +134,7 @@ static const struct OamData sOamData_EnemyShadow =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(32x8),
|
||||
.x = 0,
|
||||
@@ -143,8 +148,8 @@ static const struct OamData sOamData_EnemyShadow =
|
||||
|
||||
const struct SpriteTemplate gSpriteTemplate_EnemyShadow =
|
||||
{
|
||||
.tileTag = 55129,
|
||||
.paletteTag = 55039,
|
||||
.tileTag = GFXTAG_SHADOW,
|
||||
.paletteTag = PALTAG_SHADOW,
|
||||
.oam = &sOamData_EnemyShadow,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
@@ -152,7 +157,12 @@ const struct SpriteTemplate gSpriteTemplate_EnemyShadow =
|
||||
.callback = SpriteCB_SetInvisible
|
||||
};
|
||||
|
||||
u8 SmokescreenImpact(s16 x, s16 y, u8 a3)
|
||||
#define sActiveSprites data[0]
|
||||
#define sPersist data[1]
|
||||
|
||||
#define sMainSpriteId data[0]
|
||||
|
||||
u8 SmokescreenImpact(s16 x, s16 y, bool8 persist)
|
||||
{
|
||||
u8 mainSpriteId;
|
||||
u8 spriteId1, spriteId2, spriteId3, spriteId4;
|
||||
@@ -164,54 +174,58 @@ u8 SmokescreenImpact(s16 x, s16 y, u8 a3)
|
||||
LoadCompressedSpritePaletteUsingHeap(&sSmokescreenImpactSpritePalette);
|
||||
}
|
||||
|
||||
mainSpriteId = CreateInvisibleSpriteWithCallback(SmokescreenImpact_Callback);
|
||||
mainSpriteId = CreateInvisibleSpriteWithCallback(SpriteCB_SmokescreenImpactMain);
|
||||
mainSprite = &gSprites[mainSpriteId];
|
||||
mainSprite->data[1] = a3;
|
||||
mainSprite->sPersist = persist;
|
||||
|
||||
// Top left sprite
|
||||
spriteId1 = CreateSprite(&sSmokescreenImpactSpriteTemplate, x - 16, y - 16, 2);
|
||||
gSprites[spriteId1].data[0] = mainSpriteId;
|
||||
mainSprite->data[0]++;
|
||||
gSprites[spriteId1].sMainSpriteId = mainSpriteId;
|
||||
mainSprite->sActiveSprites++;
|
||||
AnimateSprite(&gSprites[spriteId1]);
|
||||
|
||||
// Top right sprite
|
||||
spriteId2 = CreateSprite(&sSmokescreenImpactSpriteTemplate, x, y - 16, 2);
|
||||
gSprites[spriteId2].data[0] = mainSpriteId;
|
||||
mainSprite->data[0]++;
|
||||
gSprites[spriteId2].sMainSpriteId = mainSpriteId;
|
||||
mainSprite->sActiveSprites++;
|
||||
StartSpriteAnim(&gSprites[spriteId2], 1);
|
||||
AnimateSprite(&gSprites[spriteId2]);
|
||||
|
||||
// Bottom left sprite
|
||||
spriteId3 = CreateSprite(&sSmokescreenImpactSpriteTemplate, x - 16, y, 2);
|
||||
gSprites[spriteId3].data[0] = mainSpriteId;
|
||||
mainSprite->data[0]++;
|
||||
gSprites[spriteId3].sMainSpriteId = mainSpriteId;
|
||||
mainSprite->sActiveSprites++;
|
||||
StartSpriteAnim(&gSprites[spriteId3], 2);
|
||||
AnimateSprite(&gSprites[spriteId3]);
|
||||
|
||||
// Bottom right sprite
|
||||
spriteId4 = CreateSprite(&sSmokescreenImpactSpriteTemplate, x, y, 2);
|
||||
gSprites[spriteId4].data[0] = mainSpriteId;
|
||||
mainSprite->data[0]++;
|
||||
gSprites[spriteId4].sMainSpriteId = mainSpriteId;
|
||||
mainSprite->sActiveSprites++;
|
||||
StartSpriteAnim(&gSprites[spriteId4], 3);
|
||||
AnimateSprite(&gSprites[spriteId4]);
|
||||
|
||||
return mainSpriteId;
|
||||
}
|
||||
|
||||
static void SmokescreenImpact_Callback(struct Sprite *sprite)
|
||||
static void SpriteCB_SmokescreenImpactMain(struct Sprite *sprite)
|
||||
{
|
||||
if (!sprite->data[0])
|
||||
if (sprite->sActiveSprites == 0)
|
||||
{
|
||||
FreeSpriteTilesByTag(sSmokescreenImpactSpriteSheet.tag);
|
||||
FreeSpritePaletteByTag(sSmokescreenImpactSpritePalette.tag);
|
||||
if (!sprite->data[1])
|
||||
if (!sprite->sPersist)
|
||||
DestroySprite(sprite);
|
||||
else
|
||||
sprite->callback = SpriteCallbackDummy;
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_DestroySprite(struct Sprite *sprite)
|
||||
static void SpriteCB_SmokescreenImpact(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->animEnded)
|
||||
{
|
||||
gSprites[sprite->data[0]].data[0]--;
|
||||
gSprites[sprite->sMainSpriteId].sActiveSprites--;
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ void SoundTask_LoopSEAdjustPanning(u8 taskId)
|
||||
gTasks[taskId].data[12] = r9;
|
||||
|
||||
gTasks[taskId].func = SoundTask_LoopSEAdjustPanning_Step;
|
||||
SoundTask_LoopSEAdjustPanning_Step(taskId);
|
||||
gTasks[taskId].func(taskId);
|
||||
}
|
||||
|
||||
static void SoundTask_LoopSEAdjustPanning_Step(u8 taskId)
|
||||
@@ -135,10 +135,12 @@ void SoundTask_PlayCryHighPitch(u8 taskId)
|
||||
{
|
||||
if (gBattleAnimArgs[0] == ANIM_ATTACKER)
|
||||
species = gContestResources->moveAnim->species;
|
||||
#ifndef UBFIX
|
||||
// Destroying the task twice (here and at end of function)
|
||||
// results in an incorrect value for gAnimVisualTaskCount
|
||||
#ifndef BUGFIX
|
||||
else
|
||||
DestroyAnimVisualTask(taskId); // UB: task gets destroyed twice.
|
||||
#endif
|
||||
DestroyAnimVisualTask(taskId);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -181,10 +183,12 @@ void SoundTask_PlayDoubleCry(u8 taskId)
|
||||
{
|
||||
if (gBattleAnimArgs[0] == ANIM_ATTACKER)
|
||||
species = gContestResources->moveAnim->species;
|
||||
#ifndef UBFIX
|
||||
// Destroying the task twice (here and at end of function)
|
||||
// results in an incorrect value for gAnimVisualTaskCount
|
||||
#ifndef BUGFIX
|
||||
else
|
||||
DestroyAnimVisualTask(taskId); // UB: task gets destroyed twice.
|
||||
#endif
|
||||
DestroyAnimVisualTask(taskId);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -381,7 +385,7 @@ void SoundTask_AdjustPanningVar(u8 taskId)
|
||||
gTasks[taskId].data[11] = sourcePan;
|
||||
|
||||
gTasks[taskId].func = SoundTask_AdjustPanningVar_Step;
|
||||
SoundTask_AdjustPanningVar_Step(taskId);
|
||||
gTasks[taskId].func(taskId);
|
||||
}
|
||||
|
||||
static void SoundTask_AdjustPanningVar_Step(u8 taskId)
|
||||
|
||||
@@ -248,7 +248,7 @@ static const struct SubspriteTable sFrozenIceCubeSubspriteTable[] =
|
||||
{ARRAY_COUNT(sFrozenIceCubeSubsprites), sFrozenIceCubeSubsprites},
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate gFrozenIceCubeSpriteTemplate =
|
||||
static const struct SpriteTemplate sFrozenIceCubeSpriteTemplate =
|
||||
{
|
||||
.tileTag = ANIM_TAG_ICE_CUBE,
|
||||
.paletteTag = ANIM_TAG_ICE_CUBE,
|
||||
@@ -316,7 +316,7 @@ static void Task_UpdateFlashingCircleImpacts(u8 taskId)
|
||||
if (gTasks[taskId].data[2] == 2)
|
||||
{
|
||||
gTasks[taskId].data[2] = 0;
|
||||
BlendPalette(0x100 + gTasks[taskId].data[0] * 16, 16, gTasks[taskId].data[4], gTasks[taskId].data[1]);
|
||||
BlendPalette(OBJ_PLTT_ID(gTasks[taskId].data[0]), 16, gTasks[taskId].data[4], gTasks[taskId].data[1]);
|
||||
if (gTasks[taskId].data[5] == 0)
|
||||
{
|
||||
gTasks[taskId].data[4]++;
|
||||
@@ -389,7 +389,7 @@ void AnimTask_FrozenIceCube(u8 taskId)
|
||||
x -= 6;
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
|
||||
spriteId = CreateSprite(&gFrozenIceCubeSpriteTemplate, x, y, 4);
|
||||
spriteId = CreateSprite(&sFrozenIceCubeSpriteTemplate, x, y, 4);
|
||||
if (GetSpriteTileStartByTag(ANIM_TAG_ICE_CUBE) == 0xFFFF)
|
||||
gSprites[spriteId].invisible = TRUE;
|
||||
SetSubspriteTables(&gSprites[spriteId], sFrozenIceCubeSubspriteTable);
|
||||
@@ -549,7 +549,7 @@ void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId)
|
||||
|
||||
gBattleAnimAttacker = battlerId;
|
||||
gBattleAnimTarget = battlerId;
|
||||
LaunchBattleAnimation(gBattleAnims_StatusConditions, statusAnimId, 0);
|
||||
LaunchBattleAnimation(gBattleAnims_StatusConditions, statusAnimId, FALSE);
|
||||
taskId = CreateTask(Task_DoStatusAnimation, 10);
|
||||
gTasks[taskId].data[0] = battlerId;
|
||||
}
|
||||
|
||||
+23
-23
@@ -471,7 +471,7 @@ void AnimTask_UnusedLevelUpHealthBox(u8 taskId)
|
||||
GetBattleAnimBg1Data(&animBgData);
|
||||
AnimLoadCompressedBgTilemap(animBgData.bgId, UnusedLevelupAnimationTilemap);
|
||||
AnimLoadCompressedBgGfx(animBgData.bgId, UnusedLevelupAnimationGfx, animBgData.tilesOffset);
|
||||
LoadCompressedPalette(gCureBubblesPal, animBgData.paletteId << 4, 32);
|
||||
LoadCompressedPalette(gCureBubblesPal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
||||
|
||||
gBattle_BG1_X = -gSprites[spriteId3].x + 32;
|
||||
gBattle_BG1_Y = -gSprites[spriteId3].y - 32;
|
||||
@@ -515,7 +515,7 @@ static void AnimTask_UnusedLevelUpHealthBox_Step(u8 taskId)
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12]));
|
||||
if (gTasks[taskId].data[12] == 0)
|
||||
{
|
||||
ResetBattleAnimBg(0);
|
||||
ResetBattleAnimBg(FALSE);
|
||||
gBattle_WIN0H = 0;
|
||||
gBattle_WIN0V = 0;
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
|
||||
@@ -550,13 +550,13 @@ static void LoadHealthboxPalsForLevelUp(u8 *paletteId1, u8 *paletteId2, u8 battl
|
||||
healthBoxSpriteId = gHealthboxSpriteIds[battler];
|
||||
spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam;
|
||||
spriteId2 = gSprites[healthBoxSpriteId].data[5];
|
||||
*paletteId1 = AllocSpritePalette(0xD709);
|
||||
*paletteId2 = AllocSpritePalette(0xD70A);
|
||||
*paletteId1 = AllocSpritePalette(TAG_HEALTHBOX_PALS_1);
|
||||
*paletteId2 = AllocSpritePalette(TAG_HEALTHBOX_PALS_2);
|
||||
|
||||
offset1 = (gSprites[healthBoxSpriteId].oam.paletteNum * 16) + 0x100;
|
||||
offset2 = (gSprites[spriteId2].oam.paletteNum * 16) + 0x100;
|
||||
LoadPalette(&gPlttBufferUnfaded[offset1], *paletteId1 * 16 + 0x100, 0x20);
|
||||
LoadPalette(&gPlttBufferUnfaded[offset2], *paletteId2 * 16 + 0x100, 0x20);
|
||||
offset1 = OBJ_PLTT_ID(gSprites[healthBoxSpriteId].oam.paletteNum);
|
||||
offset2 = OBJ_PLTT_ID(gSprites[spriteId2].oam.paletteNum);
|
||||
LoadPalette(&gPlttBufferUnfaded[offset1], OBJ_PLTT_ID(*paletteId1), PLTT_SIZE_4BPP);
|
||||
LoadPalette(&gPlttBufferUnfaded[offset2], OBJ_PLTT_ID(*paletteId2), PLTT_SIZE_4BPP);
|
||||
|
||||
gSprites[healthBoxSpriteId].oam.paletteNum = *paletteId1;
|
||||
gSprites[spriteId1].oam.paletteNum = *paletteId1;
|
||||
@@ -580,10 +580,10 @@ static void FreeHealthboxPalsForLevelUp(u8 battler)
|
||||
spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam;
|
||||
spriteId2 = gSprites[healthBoxSpriteId].data[5];
|
||||
|
||||
FreeSpritePaletteByTag(0xD709);
|
||||
FreeSpritePaletteByTag(0xD70A);
|
||||
paletteId1 = IndexOfSpritePaletteTag(0xD6FF);
|
||||
paletteId2 = IndexOfSpritePaletteTag(0xD704);
|
||||
FreeSpritePaletteByTag(TAG_HEALTHBOX_PALS_1);
|
||||
FreeSpritePaletteByTag(TAG_HEALTHBOX_PALS_2);
|
||||
paletteId1 = IndexOfSpritePaletteTag(TAG_HEALTHBOX_PAL);
|
||||
paletteId2 = IndexOfSpritePaletteTag(TAG_HEALTHBAR_PAL);
|
||||
gSprites[healthBoxSpriteId].oam.paletteNum = paletteId1;
|
||||
gSprites[spriteId1].oam.paletteNum = paletteId1;
|
||||
gSprites[spriteId2].oam.paletteNum = paletteId2;
|
||||
@@ -611,7 +611,7 @@ static void AnimTask_FlashHealthboxOnLevelUp_Step(u8 taskId)
|
||||
if (gTasks[taskId].data[0]++ >= gTasks[taskId].data[11])
|
||||
{
|
||||
gTasks[taskId].data[0] = 0;
|
||||
paletteNum = IndexOfSpritePaletteTag(0xD709);
|
||||
paletteNum = IndexOfSpritePaletteTag(TAG_HEALTHBOX_PALS_1);
|
||||
colorOffset = gTasks[taskId].data[10] == 0 ? 6 : 2;
|
||||
switch (gTasks[taskId].data[1])
|
||||
{
|
||||
@@ -620,7 +620,7 @@ static void AnimTask_FlashHealthboxOnLevelUp_Step(u8 taskId)
|
||||
if (gTasks[taskId].data[2] > 16)
|
||||
gTasks[taskId].data[2] = 16;
|
||||
|
||||
paletteOffset = paletteNum * 16 + 0x100;
|
||||
paletteOffset = OBJ_PLTT_ID(paletteNum);
|
||||
BlendPalette(paletteOffset + colorOffset, 1, gTasks[taskId].data[2], RGB(20, 27, 31));
|
||||
if (gTasks[taskId].data[2] == 16)
|
||||
gTasks[taskId].data[1]++;
|
||||
@@ -630,7 +630,7 @@ static void AnimTask_FlashHealthboxOnLevelUp_Step(u8 taskId)
|
||||
if (gTasks[taskId].data[2] < 0)
|
||||
gTasks[taskId].data[2] = 0;
|
||||
|
||||
paletteOffset = paletteNum * 16 + 0x100;
|
||||
paletteOffset = OBJ_PLTT_ID(paletteNum);
|
||||
BlendPalette(paletteOffset + colorOffset, 1, gTasks[taskId].data[2], RGB(20, 27, 31));
|
||||
if (gTasks[taskId].data[2] == 0)
|
||||
DestroyAnimVisualTask(taskId);
|
||||
@@ -690,7 +690,7 @@ void AnimTask_SwitchOutBallEffect(u8 taskId)
|
||||
priority = gSprites[spriteId].oam.priority;
|
||||
subpriority = gSprites[spriteId].subpriority;
|
||||
gTasks[taskId].data[10] = AnimateBallOpenParticles(x, y + 32, priority, subpriority, ballId);
|
||||
selectedPalettes = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0);
|
||||
selectedPalettes = GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE);
|
||||
gTasks[taskId].data[11] = LaunchBallFadeMonTask(FALSE, gBattleAnimAttacker, selectedPalettes, ballId);
|
||||
gTasks[taskId].data[0]++;
|
||||
break;
|
||||
@@ -2018,24 +2018,24 @@ static void DestroyBallOpenAnimationParticle(struct Sprite *sprite)
|
||||
#define tPaletteHi data[11]
|
||||
#define tBallId data[15]
|
||||
|
||||
u8 LaunchBallFadeMonTask(bool8 unfadeLater, u8 battler, u32 selectedPalettes, u8 ballId)
|
||||
u8 LaunchBallFadeMonTask(bool8 unfadeLater, u8 spritePalNum, u32 selectedPalettes, u8 ballId)
|
||||
{
|
||||
u8 taskId;
|
||||
|
||||
taskId = CreateTask(Task_FadeMon_ToBallColor, 5);
|
||||
gTasks[taskId].tBallId = ballId;
|
||||
gTasks[taskId].tPalOffset = battler;
|
||||
gTasks[taskId].tPalOffset = spritePalNum;
|
||||
gTasks[taskId].tPaletteLo = selectedPalettes;
|
||||
gTasks[taskId].tPaletteHi = selectedPalettes >> 16;
|
||||
|
||||
if (!unfadeLater)
|
||||
{
|
||||
BlendPalette(battler * 16 + 0x100, 16, 0, gBallOpenFadeColors[ballId]);
|
||||
BlendPalette(OBJ_PLTT_ID(spritePalNum), 16, 0, gBallOpenFadeColors[ballId]);
|
||||
gTasks[taskId].tdCoeff = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
BlendPalette(battler * 16 + 0x100, 16, 16, gBallOpenFadeColors[ballId]);
|
||||
BlendPalette(OBJ_PLTT_ID(spritePalNum), 16, 16, gBallOpenFadeColors[ballId]);
|
||||
gTasks[taskId].tCoeff = 16;
|
||||
gTasks[taskId].tdCoeff = -1;
|
||||
gTasks[taskId].func = Task_FadeMon_ToNormal;
|
||||
@@ -2051,7 +2051,7 @@ static void Task_FadeMon_ToBallColor(u8 taskId)
|
||||
|
||||
if (gTasks[taskId].tTimer <= 16)
|
||||
{
|
||||
BlendPalette(gTasks[taskId].tPalOffset * 16 + 0x100, 16, gTasks[taskId].tCoeff, gBallOpenFadeColors[ballId]);
|
||||
BlendPalette(OBJ_PLTT_ID(gTasks[taskId].tPalOffset), 16, gTasks[taskId].tCoeff, gBallOpenFadeColors[ballId]);
|
||||
gTasks[taskId].tCoeff += gTasks[taskId].tdCoeff;
|
||||
gTasks[taskId].tTimer++;
|
||||
}
|
||||
@@ -2079,7 +2079,7 @@ static void Task_FadeMon_ToNormal_Step(u8 taskId)
|
||||
|
||||
if (gTasks[taskId].tTimer <= 16)
|
||||
{
|
||||
BlendPalette(gTasks[taskId].tPalOffset * 16 + 0x100, 16, gTasks[taskId].tCoeff, gBallOpenFadeColors[ballId]);
|
||||
BlendPalette(OBJ_PLTT_ID(gTasks[taskId].tPalOffset), 16, gTasks[taskId].tCoeff, gBallOpenFadeColors[ballId]);
|
||||
gTasks[taskId].tCoeff += gTasks[taskId].tdCoeff;
|
||||
gTasks[taskId].tTimer++;
|
||||
}
|
||||
@@ -2408,7 +2408,7 @@ void AnimTask_FreePokeblockGfx(u8 taskId)
|
||||
|
||||
static void SpriteCB_PokeBlock_Throw(struct Sprite *sprite)
|
||||
{
|
||||
InitSpritePosToAnimAttacker(sprite, 0);
|
||||
InitSpritePosToAnimAttacker(sprite, FALSE);
|
||||
sprite->sDuration = 30;
|
||||
sprite->sTargetX = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), BATTLER_COORD_X) + gBattleAnimArgs[2];
|
||||
sprite->sTargetY = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), BATTLER_COORD_Y) + gBattleAnimArgs[3];
|
||||
|
||||
@@ -27,7 +27,7 @@ static void StartBlendAnimSpriteColor(u8, u32);
|
||||
static void AnimTask_BlendSpriteColor_Step2(u8);
|
||||
static void AnimTask_HardwarePaletteFade_Step(u8);
|
||||
static void AnimTask_TraceMonBlended_Step(u8);
|
||||
static void AnimMonTrace(struct Sprite*);
|
||||
static void AnimMonTrace(struct Sprite *);
|
||||
static void AnimTask_DrawFallingWhiteLinesOnAttacker_Step(u8);
|
||||
static void StatsChangeAnimation_Step1(u8);
|
||||
static void StatsChangeAnimation_Step2(u8);
|
||||
@@ -47,7 +47,7 @@ const u8 gBattleAnimBgCntGet[] = {REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFS
|
||||
|
||||
void AnimTask_BlendBattleAnimPal(u8 taskId)
|
||||
{
|
||||
u32 selectedPalettes = UnpackSelectedBattleBgPalettes(gBattleAnimArgs[0]);
|
||||
u32 selectedPalettes = UnpackSelectedBattlePalettes(gBattleAnimArgs[0]);
|
||||
selectedPalettes |= GetBattleMonSpritePalettesMask((gBattleAnimArgs[0] >> 7) & 1,
|
||||
(gBattleAnimArgs[0] >> 8) & 1,
|
||||
(gBattleAnimArgs[0] >> 9) & 1,
|
||||
@@ -62,7 +62,7 @@ void AnimTask_BlendBattleAnimPalExclude(u8 taskId)
|
||||
u8 animBattlers[2];
|
||||
|
||||
animBattlers[1] = 0xFF;
|
||||
selectedPalettes = UnpackSelectedBattleBgPalettes(1);
|
||||
selectedPalettes = UnpackSelectedBattlePalettes(F_PAL_BG);
|
||||
switch (gBattleAnimArgs[0])
|
||||
{
|
||||
case 2:
|
||||
@@ -97,7 +97,7 @@ void AnimTask_BlendBattleAnimPalExclude(u8 taskId)
|
||||
for (battler = 0; battler < MAX_BATTLERS_COUNT; battler++)
|
||||
{
|
||||
if (battler != animBattlers[0] && battler != animBattlers[1] && IsBattlerSpriteVisible(battler))
|
||||
selectedPalettes |= 0x10000 << AnimDummyReturnArg(battler);
|
||||
selectedPalettes |= 0x10000 << GetSpritePalIdxByBattler(battler);
|
||||
}
|
||||
|
||||
StartBlendAnimSpriteColor(taskId, selectedPalettes);
|
||||
@@ -105,7 +105,7 @@ void AnimTask_BlendBattleAnimPalExclude(u8 taskId)
|
||||
|
||||
void AnimTask_SetCamouflageBlend(u8 taskId)
|
||||
{
|
||||
u32 selectedPalettes = UnpackSelectedBattleBgPalettes(gBattleAnimArgs[0]);
|
||||
u32 selectedPalettes = UnpackSelectedBattlePalettes(gBattleAnimArgs[0]);
|
||||
switch (gBattleTerrain)
|
||||
{
|
||||
case BATTLE_TERRAIN_GRASS:
|
||||
@@ -166,7 +166,7 @@ void StartBlendAnimSpriteColor(u8 taskId, u32 selectedPalettes)
|
||||
static void AnimTask_BlendSpriteColor_Step2(u8 taskId)
|
||||
{
|
||||
u32 selectedPalettes;
|
||||
u16 singlePaletteMask = 0;
|
||||
u16 singlePaletteOffset = 0;
|
||||
|
||||
if (gTasks[taskId].data[9] == gTasks[taskId].data[2])
|
||||
{
|
||||
@@ -175,8 +175,8 @@ static void AnimTask_BlendSpriteColor_Step2(u8 taskId)
|
||||
while (selectedPalettes != 0)
|
||||
{
|
||||
if (selectedPalettes & 1)
|
||||
BlendPalette(singlePaletteMask, 16, gTasks[taskId].data[10], gTasks[taskId].data[5]);
|
||||
singlePaletteMask += 0x10;
|
||||
BlendPalette(singlePaletteOffset, 16, gTasks[taskId].data[10], gTasks[taskId].data[5]);
|
||||
singlePaletteOffset += 16;
|
||||
selectedPalettes >>= 1;
|
||||
}
|
||||
|
||||
@@ -333,7 +333,7 @@ void AnimTask_DrawFallingWhiteLinesOnAttacker(u8 taskId)
|
||||
GetBattleAnimBg1Data(&animBgData);
|
||||
AnimLoadCompressedBgTilemapHandleContest(&animBgData, gBattleAnimMaskTilemap_Curse, FALSE);
|
||||
AnimLoadCompressedBgGfx(animBgData.bgId, gBattleAnimMaskImage_Curse, animBgData.tilesOffset);
|
||||
LoadPalette(sCurseLinesPalette, animBgData.paletteId * 16 + 1, 2);
|
||||
LoadPalette(sCurseLinesPalette, BG_PLTT_ID(animBgData.paletteId) + 1, PLTT_SIZEOF(1));
|
||||
|
||||
gBattle_BG1_X = -gSprites[spriteId].x + 32;
|
||||
gBattle_BG1_Y = -gSprites[spriteId].y + 32;
|
||||
@@ -356,7 +356,7 @@ static void AnimTask_DrawFallingWhiteLinesOnAttacker_Step(u8 taskId)
|
||||
gBattle_BG1_Y += 64;
|
||||
if (++gTasks[taskId].data[11] == 4)
|
||||
{
|
||||
ResetBattleAnimBg(0);
|
||||
ResetBattleAnimBg(FALSE);
|
||||
gBattle_WIN0H = 0;
|
||||
gBattle_WIN0V = 0;
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR
|
||||
@@ -478,28 +478,28 @@ static void StatsChangeAnimation_Step2(u8 taskId)
|
||||
switch (sAnimStatsChangeData->data[1])
|
||||
{
|
||||
case 0:
|
||||
LoadCompressedPalette(gBattleStatMask2_Pal, animBgData.paletteId * 16, 32);
|
||||
LoadCompressedPalette(gBattleStatMask2_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case 1:
|
||||
LoadCompressedPalette(gBattleStatMask1_Pal, animBgData.paletteId * 16, 32);
|
||||
LoadCompressedPalette(gBattleStatMask1_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case 2:
|
||||
LoadCompressedPalette(gBattleStatMask3_Pal, animBgData.paletteId * 16, 32);
|
||||
LoadCompressedPalette(gBattleStatMask3_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case 3:
|
||||
LoadCompressedPalette(gBattleStatMask4_Pal, animBgData.paletteId * 16, 32);
|
||||
LoadCompressedPalette(gBattleStatMask4_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case 4:
|
||||
LoadCompressedPalette(gBattleStatMask6_Pal, animBgData.paletteId * 16, 32);
|
||||
LoadCompressedPalette(gBattleStatMask6_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case 5:
|
||||
LoadCompressedPalette(gBattleStatMask7_Pal, animBgData.paletteId * 16, 32);
|
||||
LoadCompressedPalette(gBattleStatMask7_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case 6:
|
||||
LoadCompressedPalette(gBattleStatMask8_Pal, animBgData.paletteId * 16, 32);
|
||||
LoadCompressedPalette(gBattleStatMask8_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
||||
break;
|
||||
default:
|
||||
LoadCompressedPalette(gBattleStatMask5_Pal, animBgData.paletteId * 16, 32);
|
||||
LoadCompressedPalette(gBattleStatMask5_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -535,9 +535,9 @@ static void StatsChangeAnimation_Step2(u8 taskId)
|
||||
gTasks[taskId].func = StatsChangeAnimation_Step3;
|
||||
|
||||
if (sAnimStatsChangeData->data[0] == 0)
|
||||
PlaySE12WithPanning(SE_M_STAT_INCREASE, BattleAnimAdjustPanning2(-64));
|
||||
PlaySE12WithPanning(SE_M_STAT_INCREASE, BattleAnimAdjustPanning2(SOUND_PAN_ATTACKER));
|
||||
else
|
||||
PlaySE12WithPanning(SE_M_STAT_DECREASE, BattleAnimAdjustPanning2(-64));
|
||||
PlaySE12WithPanning(SE_M_STAT_DECREASE, BattleAnimAdjustPanning2(SOUND_PAN_ATTACKER));
|
||||
}
|
||||
|
||||
static void StatsChangeAnimation_Step3(u8 taskId)
|
||||
@@ -568,7 +568,7 @@ static void StatsChangeAnimation_Step3(u8 taskId)
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12]));
|
||||
if (gTasks[taskId].data[12] == 0)
|
||||
{
|
||||
ResetBattleAnimBg(0);
|
||||
ResetBattleAnimBg(FALSE);
|
||||
gTasks[taskId].data[15]++;
|
||||
}
|
||||
}
|
||||
@@ -594,8 +594,7 @@ static void StatsChangeAnimation_Step3(u8 taskId)
|
||||
if (gTasks[taskId].data[6] == 1)
|
||||
gSprites[gTasks[taskId].data[7]].oam.priority++;
|
||||
|
||||
Free(sAnimStatsChangeData);
|
||||
sAnimStatsChangeData = NULL;
|
||||
FREE_AND_SET_NULL(sAnimStatsChangeData);
|
||||
DestroyAnimVisualTask(taskId);
|
||||
break;
|
||||
}
|
||||
@@ -607,7 +606,7 @@ void AnimTask_Flash(u8 taskId)
|
||||
SetPalettesToColor(selectedPalettes, RGB_BLACK);
|
||||
gTasks[taskId].data[14] = selectedPalettes >> 16;
|
||||
|
||||
selectedPalettes = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0) & 0xFFFF;
|
||||
selectedPalettes = GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE) & 0xFFFF;
|
||||
SetPalettesToColor(selectedPalettes, RGB_WHITEALPHA);
|
||||
gTasks[taskId].data[15] = selectedPalettes;
|
||||
|
||||
@@ -640,16 +639,10 @@ static void AnimTask_Flash_Step(u8 taskId)
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
if ((task->data[15] >> i) & 1)
|
||||
{
|
||||
u16 paletteOffset = i * 16;
|
||||
BlendPalette(paletteOffset, 16, task->data[2], 0xFFFF);
|
||||
}
|
||||
BlendPalette(BG_PLTT_ID(i), 16, task->data[2], 0xFFFF);
|
||||
|
||||
if ((task->data[14] >> i) & 1)
|
||||
{
|
||||
u16 paletteOffset = i * 16 + 0x100;
|
||||
BlendPalette(paletteOffset, 16, task->data[2], 0);
|
||||
}
|
||||
BlendPalette(OBJ_PLTT_ID(i), 16, task->data[2], 0);
|
||||
}
|
||||
|
||||
if (task->data[2] == 0)
|
||||
@@ -823,7 +816,7 @@ void StartMonScrollingBgMask(u8 taskId, int unused, u16 scrollSpeed, u8 battler,
|
||||
GetBattleAnimBg1Data(&animBgData);
|
||||
AnimLoadCompressedBgTilemapHandleContest(&animBgData, tilemap, FALSE);
|
||||
AnimLoadCompressedBgGfx(animBgData.bgId, gfx, animBgData.tilesOffset);
|
||||
LoadCompressedPalette(palette, animBgData.paletteId * 16, 32);
|
||||
LoadCompressedPalette(palette, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
|
||||
|
||||
gBattle_BG1_X = 0;
|
||||
gBattle_BG1_Y = 0;
|
||||
@@ -870,7 +863,7 @@ static void UpdateMonScrollingBgMask(u8 taskId)
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12]));
|
||||
if (gTasks[taskId].data[12] == 0)
|
||||
{
|
||||
ResetBattleAnimBg(0);
|
||||
ResetBattleAnimBg(FALSE);
|
||||
gBattle_WIN0H = 0;
|
||||
gBattle_WIN0V = 0;
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR
|
||||
@@ -923,7 +916,7 @@ void AnimTask_CopyPalUnfadedToBackup(u8 taskId)
|
||||
|
||||
if (gBattleAnimArgs[0] == 0)
|
||||
{
|
||||
selectedPalettes = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0);
|
||||
selectedPalettes = GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE);
|
||||
while ((selectedPalettes & 1) == 0)
|
||||
{
|
||||
selectedPalettes >>= 1;
|
||||
@@ -950,7 +943,7 @@ void AnimTask_CopyPalUnfadedFromBackup(u8 taskId)
|
||||
|
||||
if (gBattleAnimArgs[0] == 0)
|
||||
{
|
||||
selectedPalettes = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0);
|
||||
selectedPalettes = GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE);
|
||||
while ((selectedPalettes & 1) == 0)
|
||||
{
|
||||
selectedPalettes >>= 1;
|
||||
@@ -977,7 +970,7 @@ void AnimTask_CopyPalFadedToUnfaded(u8 taskId)
|
||||
|
||||
if (gBattleAnimArgs[0] == 0)
|
||||
{
|
||||
selectedPalettes = GetBattleBgPalettesMask(1, 0, 0, 0, 0, 0, 0);
|
||||
selectedPalettes = GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE);
|
||||
while ((selectedPalettes & 1) == 0)
|
||||
{
|
||||
selectedPalettes >>= 1;
|
||||
|
||||
@@ -48,11 +48,11 @@ static void AnimTask_SurfWaveScanlineEffect(u8);
|
||||
static void AnimTask_WaterSpoutLaunch_Step(u8);
|
||||
static void AnimTask_WaterSpoutRain_Step(u8);
|
||||
static u8 GetWaterSpoutPowerForAnim(void);
|
||||
static void CreateWaterSpoutLaunchDroplets(struct Task*, u8);
|
||||
static void CreateWaterSpoutRainDroplet(struct Task*, u8);
|
||||
static void CreateWaterSpoutLaunchDroplets(struct Task *, u8);
|
||||
static void CreateWaterSpoutRainDroplet(struct Task *, u8);
|
||||
static void AnimTask_WaterSport_Step(u8);
|
||||
static void CreateWaterSportDroplet(struct Task*);
|
||||
static void CreateWaterPulseRingBubbles(struct Sprite*, int, int);
|
||||
static void CreateWaterSportDroplet(struct Task *);
|
||||
static void CreateWaterPulseRingBubbles(struct Sprite *, int, int);
|
||||
|
||||
static const u8 sUnusedWater_Gfx[] = INCBIN_U8("graphics/battle_anims/unused/water_gfx.4bpp");
|
||||
static const u8 sUnusedWater[] = INCBIN_U8("graphics/battle_anims/unused/water.bin");
|
||||
@@ -825,9 +825,9 @@ void AnimTask_CreateSurfWave(u8 taskId)
|
||||
}
|
||||
AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBgImage_Surf, animBg.tilesOffset);
|
||||
if (gBattleAnimArgs[0] == 0)
|
||||
LoadCompressedPalette(gBattleAnimBgPalette_Surf, animBg.paletteId * 16, 32);
|
||||
LoadCompressedPalette(gBattleAnimBgPalette_Surf, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
|
||||
else
|
||||
LoadCompressedPalette(gBattleAnimBackgroundImageMuddyWater_Pal, animBg.paletteId * 16, 32);
|
||||
LoadCompressedPalette(gBattleAnimBackgroundImageMuddyWater_Pal, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
|
||||
taskId2 = CreateTask(AnimTask_SurfWaveScanlineEffect, gTasks[taskId].priority + 1);
|
||||
gTasks[taskId].data[15] = taskId2;
|
||||
gTasks[taskId2].data[0] = 0;
|
||||
|
||||
+77
-197
@@ -35,12 +35,28 @@ static void SaveArenaChallenge(void);
|
||||
static void SetArenaPrize(void);
|
||||
static void GiveArenaPrize(void);
|
||||
static void BufferArenaOpponentName(void);
|
||||
static void SpriteCb_JudgmentIcon(struct Sprite *sprite);
|
||||
static void SpriteCB_JudgmentIcon(struct Sprite *sprite);
|
||||
static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler);
|
||||
|
||||
static const s8 sMindRatings[] =
|
||||
#define JUDGMENT_STATE_FINISHED 8
|
||||
|
||||
#define TAG_JUDGMENT_ICON 1000
|
||||
|
||||
enum {
|
||||
ANIM_ICON_X, // Player lost
|
||||
ANIM_ICON_TRIANGLE, // Tie
|
||||
ANIM_ICON_CIRCLE, // Player won
|
||||
ANIM_ICON_LINE, // Line segment for separating the score total at the bottom
|
||||
};
|
||||
|
||||
// This table holds the number of points to add to the 'mind' score for each move.
|
||||
// All moves with power != 0 give 1 point, with the following exceptions:
|
||||
// - Counter, Mirror Coat, and Bide give 0 points
|
||||
// - Fake Out subtracts 1 point
|
||||
// All moves with power == 0 give 0 points, with the following exceptions:
|
||||
// - Protect, Detect, and Endure subtract 1 point
|
||||
static const s8 sMindRatings[MOVES_COUNT] =
|
||||
{
|
||||
[MOVE_NONE] = 0,
|
||||
[MOVE_POUND] = 1,
|
||||
[MOVE_KARATE_CHOP] = 1,
|
||||
[MOVE_DOUBLE_SLAP] = 1,
|
||||
@@ -54,11 +70,9 @@ static const s8 sMindRatings[] =
|
||||
[MOVE_VICE_GRIP] = 1,
|
||||
[MOVE_GUILLOTINE] = 1,
|
||||
[MOVE_RAZOR_WIND] = 1,
|
||||
[MOVE_SWORDS_DANCE] = 0,
|
||||
[MOVE_CUT] = 1,
|
||||
[MOVE_GUST] = 1,
|
||||
[MOVE_WING_ATTACK] = 1,
|
||||
[MOVE_WHIRLWIND] = 0,
|
||||
[MOVE_FLY] = 1,
|
||||
[MOVE_BIND] = 1,
|
||||
[MOVE_SLAM] = 1,
|
||||
@@ -68,7 +82,6 @@ static const s8 sMindRatings[] =
|
||||
[MOVE_MEGA_KICK] = 1,
|
||||
[MOVE_JUMP_KICK] = 1,
|
||||
[MOVE_ROLLING_KICK] = 1,
|
||||
[MOVE_SAND_ATTACK] = 0,
|
||||
[MOVE_HEADBUTT] = 1,
|
||||
[MOVE_HORN_ATTACK] = 1,
|
||||
[MOVE_FURY_ATTACK] = 1,
|
||||
@@ -79,22 +92,14 @@ static const s8 sMindRatings[] =
|
||||
[MOVE_TAKE_DOWN] = 1,
|
||||
[MOVE_THRASH] = 1,
|
||||
[MOVE_DOUBLE_EDGE] = 1,
|
||||
[MOVE_TAIL_WHIP] = 0,
|
||||
[MOVE_POISON_STING] = 1,
|
||||
[MOVE_TWINEEDLE] = 1,
|
||||
[MOVE_PIN_MISSILE] = 1,
|
||||
[MOVE_LEER] = 0,
|
||||
[MOVE_BITE] = 1,
|
||||
[MOVE_GROWL] = 0,
|
||||
[MOVE_ROAR] = 0,
|
||||
[MOVE_SING] = 0,
|
||||
[MOVE_SUPERSONIC] = 0,
|
||||
[MOVE_SONIC_BOOM] = 1,
|
||||
[MOVE_DISABLE] = 0,
|
||||
[MOVE_ACID] = 1,
|
||||
[MOVE_EMBER] = 1,
|
||||
[MOVE_FLAMETHROWER] = 1,
|
||||
[MOVE_MIST] = 0,
|
||||
[MOVE_WATER_GUN] = 1,
|
||||
[MOVE_HYDRO_PUMP] = 1,
|
||||
[MOVE_SURF] = 1,
|
||||
@@ -108,58 +113,27 @@ static const s8 sMindRatings[] =
|
||||
[MOVE_DRILL_PECK] = 1,
|
||||
[MOVE_SUBMISSION] = 1,
|
||||
[MOVE_LOW_KICK] = 1,
|
||||
[MOVE_COUNTER] = 0,
|
||||
[MOVE_SEISMIC_TOSS] = 1,
|
||||
[MOVE_STRENGTH] = 1,
|
||||
[MOVE_ABSORB] = 1,
|
||||
[MOVE_MEGA_DRAIN] = 1,
|
||||
[MOVE_LEECH_SEED] = 0,
|
||||
[MOVE_GROWTH] = 0,
|
||||
[MOVE_RAZOR_LEAF] = 1,
|
||||
[MOVE_SOLAR_BEAM] = 1,
|
||||
[MOVE_POISON_POWDER] = 0,
|
||||
[MOVE_STUN_SPORE] = 0,
|
||||
[MOVE_SLEEP_POWDER] = 0,
|
||||
[MOVE_PETAL_DANCE] = 1,
|
||||
[MOVE_STRING_SHOT] = 0,
|
||||
[MOVE_DRAGON_RAGE] = 1,
|
||||
[MOVE_FIRE_SPIN] = 1,
|
||||
[MOVE_THUNDER_SHOCK] = 1,
|
||||
[MOVE_THUNDERBOLT] = 1,
|
||||
[MOVE_THUNDER_WAVE] = 0,
|
||||
[MOVE_THUNDER] = 1,
|
||||
[MOVE_ROCK_THROW] = 1,
|
||||
[MOVE_EARTHQUAKE] = 1,
|
||||
[MOVE_FISSURE] = 1,
|
||||
[MOVE_DIG] = 1,
|
||||
[MOVE_TOXIC] = 0,
|
||||
[MOVE_CONFUSION] = 1,
|
||||
[MOVE_PSYCHIC] = 1,
|
||||
[MOVE_HYPNOSIS] = 0,
|
||||
[MOVE_MEDITATE] = 0,
|
||||
[MOVE_AGILITY] = 0,
|
||||
[MOVE_QUICK_ATTACK] = 1,
|
||||
[MOVE_RAGE] = 1,
|
||||
[MOVE_TELEPORT] = 0,
|
||||
[MOVE_NIGHT_SHADE] = 1,
|
||||
[MOVE_MIMIC] = 0,
|
||||
[MOVE_SCREECH] = 0,
|
||||
[MOVE_DOUBLE_TEAM] = 0,
|
||||
[MOVE_RECOVER] = 0,
|
||||
[MOVE_HARDEN] = 0,
|
||||
[MOVE_MINIMIZE] = 0,
|
||||
[MOVE_SMOKESCREEN] = 0,
|
||||
[MOVE_CONFUSE_RAY] = 0,
|
||||
[MOVE_WITHDRAW] = 0,
|
||||
[MOVE_DEFENSE_CURL] = 0,
|
||||
[MOVE_BARRIER] = 0,
|
||||
[MOVE_LIGHT_SCREEN] = 0,
|
||||
[MOVE_HAZE] = 0,
|
||||
[MOVE_REFLECT] = 0,
|
||||
[MOVE_FOCUS_ENERGY] = 0,
|
||||
[MOVE_BIDE] = 0,
|
||||
[MOVE_METRONOME] = 0,
|
||||
[MOVE_MIRROR_MOVE] = 0,
|
||||
[MOVE_SELF_DESTRUCT] = 1,
|
||||
[MOVE_EGG_BOMB] = 1,
|
||||
[MOVE_LICK] = 1,
|
||||
@@ -173,118 +147,67 @@ static const s8 sMindRatings[] =
|
||||
[MOVE_SKULL_BASH] = 1,
|
||||
[MOVE_SPIKE_CANNON] = 1,
|
||||
[MOVE_CONSTRICT] = 1,
|
||||
[MOVE_AMNESIA] = 0,
|
||||
[MOVE_KINESIS] = 0,
|
||||
[MOVE_SOFT_BOILED] = 0,
|
||||
[MOVE_HI_JUMP_KICK] = 1,
|
||||
[MOVE_GLARE] = 0,
|
||||
[MOVE_DREAM_EATER] = 1,
|
||||
[MOVE_POISON_GAS] = 0,
|
||||
[MOVE_BARRAGE] = 1,
|
||||
[MOVE_LEECH_LIFE] = 1,
|
||||
[MOVE_LOVELY_KISS] = 0,
|
||||
[MOVE_SKY_ATTACK] = 1,
|
||||
[MOVE_TRANSFORM] = 0,
|
||||
[MOVE_BUBBLE] = 1,
|
||||
[MOVE_DIZZY_PUNCH] = 1,
|
||||
[MOVE_SPORE] = 0,
|
||||
[MOVE_FLASH] = 0,
|
||||
[MOVE_PSYWAVE] = 1,
|
||||
[MOVE_SPLASH] = 0,
|
||||
[MOVE_ACID_ARMOR] = 0,
|
||||
[MOVE_CRABHAMMER] = 1,
|
||||
[MOVE_EXPLOSION] = 1,
|
||||
[MOVE_FURY_SWIPES] = 1,
|
||||
[MOVE_BONEMERANG] = 1,
|
||||
[MOVE_REST] = 0,
|
||||
[MOVE_ROCK_SLIDE] = 1,
|
||||
[MOVE_HYPER_FANG] = 1,
|
||||
[MOVE_SHARPEN] = 0,
|
||||
[MOVE_CONVERSION] = 0,
|
||||
[MOVE_TRI_ATTACK] = 1,
|
||||
[MOVE_SUPER_FANG] = 1,
|
||||
[MOVE_SLASH] = 1,
|
||||
[MOVE_SUBSTITUTE] = 0,
|
||||
[MOVE_STRUGGLE] = 1,
|
||||
[MOVE_SKETCH] = 0,
|
||||
[MOVE_TRIPLE_KICK] = 1,
|
||||
[MOVE_THIEF] = 1,
|
||||
[MOVE_SPIDER_WEB] = 0,
|
||||
[MOVE_MIND_READER] = 0,
|
||||
[MOVE_NIGHTMARE] = 0,
|
||||
[MOVE_FLAME_WHEEL] = 1,
|
||||
[MOVE_SNORE] = 1,
|
||||
[MOVE_CURSE] = 0,
|
||||
[MOVE_FLAIL] = 1,
|
||||
[MOVE_CONVERSION_2] = 0,
|
||||
[MOVE_AEROBLAST] = 1,
|
||||
[MOVE_COTTON_SPORE] = 0,
|
||||
[MOVE_REVERSAL] = 1,
|
||||
[MOVE_SPITE] = 0,
|
||||
[MOVE_POWDER_SNOW] = 1,
|
||||
[MOVE_PROTECT] = -1,
|
||||
[MOVE_MACH_PUNCH] = 1,
|
||||
[MOVE_SCARY_FACE] = 0,
|
||||
[MOVE_FAINT_ATTACK] = 1,
|
||||
[MOVE_SWEET_KISS] = 0,
|
||||
[MOVE_BELLY_DRUM] = 0,
|
||||
[MOVE_SLUDGE_BOMB] = 1,
|
||||
[MOVE_MUD_SLAP] = 1,
|
||||
[MOVE_OCTAZOOKA] = 1,
|
||||
[MOVE_SPIKES] = 0,
|
||||
[MOVE_ZAP_CANNON] = 1,
|
||||
[MOVE_FORESIGHT] = 0,
|
||||
[MOVE_DESTINY_BOND] = 0,
|
||||
[MOVE_PERISH_SONG] = 0,
|
||||
[MOVE_ICY_WIND] = 1,
|
||||
[MOVE_DETECT] = -1,
|
||||
[MOVE_BONE_RUSH] = 1,
|
||||
[MOVE_LOCK_ON] = 0,
|
||||
[MOVE_OUTRAGE] = 1,
|
||||
[MOVE_SANDSTORM] = 0,
|
||||
[MOVE_GIGA_DRAIN] = 1,
|
||||
[MOVE_ENDURE] = -1,
|
||||
[MOVE_CHARM] = 0,
|
||||
[MOVE_ROLLOUT] = 1,
|
||||
[MOVE_FALSE_SWIPE] = 1,
|
||||
[MOVE_SWAGGER] = 0,
|
||||
[MOVE_MILK_DRINK] = 0,
|
||||
[MOVE_SPARK] = 1,
|
||||
[MOVE_FURY_CUTTER] = 1,
|
||||
[MOVE_STEEL_WING] = 1,
|
||||
[MOVE_MEAN_LOOK] = 0,
|
||||
[MOVE_ATTRACT] = 0,
|
||||
[MOVE_SLEEP_TALK] = 0,
|
||||
[MOVE_HEAL_BELL] = 0,
|
||||
[MOVE_RETURN] = 1,
|
||||
[MOVE_PRESENT] = 1,
|
||||
[MOVE_FRUSTRATION] = 1,
|
||||
[MOVE_SAFEGUARD] = 0,
|
||||
[MOVE_PAIN_SPLIT] = 0,
|
||||
[MOVE_SACRED_FIRE] = 1,
|
||||
[MOVE_MAGNITUDE] = 1,
|
||||
[MOVE_DYNAMIC_PUNCH] = 1,
|
||||
[MOVE_MEGAHORN] = 1,
|
||||
[MOVE_DRAGON_BREATH] = 1,
|
||||
[MOVE_BATON_PASS] = 0,
|
||||
[MOVE_ENCORE] = 0,
|
||||
[MOVE_PURSUIT] = 1,
|
||||
[MOVE_RAPID_SPIN] = 1,
|
||||
[MOVE_SWEET_SCENT] = 0,
|
||||
[MOVE_IRON_TAIL] = 1,
|
||||
[MOVE_METAL_CLAW] = 1,
|
||||
[MOVE_VITAL_THROW] = 1,
|
||||
[MOVE_MORNING_SUN] = 0,
|
||||
[MOVE_SYNTHESIS] = 0,
|
||||
[MOVE_MOONLIGHT] = 0,
|
||||
[MOVE_HIDDEN_POWER] = 1,
|
||||
[MOVE_CROSS_CHOP] = 1,
|
||||
[MOVE_TWISTER] = 1,
|
||||
[MOVE_RAIN_DANCE] = 0,
|
||||
[MOVE_SUNNY_DAY] = 0,
|
||||
[MOVE_CRUNCH] = 1,
|
||||
[MOVE_MIRROR_COAT] = 0,
|
||||
[MOVE_PSYCH_UP] = 0,
|
||||
[MOVE_EXTREME_SPEED] = 1,
|
||||
[MOVE_ANCIENT_POWER] = 1,
|
||||
[MOVE_SHADOW_BALL] = 1,
|
||||
@@ -294,56 +217,25 @@ static const s8 sMindRatings[] =
|
||||
[MOVE_BEAT_UP] = 1,
|
||||
[MOVE_FAKE_OUT] = -1,
|
||||
[MOVE_UPROAR] = 1,
|
||||
[MOVE_STOCKPILE] = 0,
|
||||
[MOVE_SPIT_UP] = 1,
|
||||
[MOVE_SWALLOW] = 0,
|
||||
[MOVE_HEAT_WAVE] = 1,
|
||||
[MOVE_HAIL] = 0,
|
||||
[MOVE_TORMENT] = 0,
|
||||
[MOVE_FLATTER] = 0,
|
||||
[MOVE_WILL_O_WISP] = 0,
|
||||
[MOVE_MEMENTO] = 0,
|
||||
[MOVE_FACADE] = 1,
|
||||
[MOVE_FOCUS_PUNCH] = 1,
|
||||
[MOVE_SMELLING_SALT] = 1,
|
||||
[MOVE_FOLLOW_ME] = 0,
|
||||
[MOVE_NATURE_POWER] = 0,
|
||||
[MOVE_CHARGE] = 0,
|
||||
[MOVE_TAUNT] = 0,
|
||||
[MOVE_HELPING_HAND] = 0,
|
||||
[MOVE_TRICK] = 0,
|
||||
[MOVE_ROLE_PLAY] = 0,
|
||||
[MOVE_WISH] = 0,
|
||||
[MOVE_ASSIST] = 0,
|
||||
[MOVE_INGRAIN] = 0,
|
||||
[MOVE_SUPERPOWER] = 1,
|
||||
[MOVE_MAGIC_COAT] = 0,
|
||||
[MOVE_RECYCLE] = 0,
|
||||
[MOVE_REVENGE] = 1,
|
||||
[MOVE_BRICK_BREAK] = 1,
|
||||
[MOVE_YAWN] = 0,
|
||||
[MOVE_KNOCK_OFF] = 1,
|
||||
[MOVE_ENDEAVOR] = 1,
|
||||
[MOVE_ERUPTION] = 1,
|
||||
[MOVE_SKILL_SWAP] = 0,
|
||||
[MOVE_IMPRISON] = 0,
|
||||
[MOVE_REFRESH] = 0,
|
||||
[MOVE_GRUDGE] = 0,
|
||||
[MOVE_SNATCH] = 0,
|
||||
[MOVE_SECRET_POWER] = 1,
|
||||
[MOVE_DIVE] = 1,
|
||||
[MOVE_ARM_THRUST] = 1,
|
||||
[MOVE_CAMOUFLAGE] = 0,
|
||||
[MOVE_TAIL_GLOW] = 0,
|
||||
[MOVE_LUSTER_PURGE] = 1,
|
||||
[MOVE_MIST_BALL] = 1,
|
||||
[MOVE_FEATHER_DANCE] = 0,
|
||||
[MOVE_TEETER_DANCE] = 0,
|
||||
[MOVE_BLAZE_KICK] = 1,
|
||||
[MOVE_MUD_SPORT] = 0,
|
||||
[MOVE_ICE_BALL] = 1,
|
||||
[MOVE_NEEDLE_ARM] = 1,
|
||||
[MOVE_SLACK_OFF] = 0,
|
||||
[MOVE_HYPER_VOICE] = 1,
|
||||
[MOVE_POISON_FANG] = 1,
|
||||
[MOVE_CRUSH_CLAW] = 1,
|
||||
@@ -352,17 +244,10 @@ static const s8 sMindRatings[] =
|
||||
[MOVE_METEOR_MASH] = 1,
|
||||
[MOVE_ASTONISH] = 1,
|
||||
[MOVE_WEATHER_BALL] = 1,
|
||||
[MOVE_AROMATHERAPY] = 0,
|
||||
[MOVE_FAKE_TEARS] = 0,
|
||||
[MOVE_AIR_CUTTER] = 1,
|
||||
[MOVE_OVERHEAT] = 1,
|
||||
[MOVE_ODOR_SLEUTH] = 0,
|
||||
[MOVE_ROCK_TOMB] = 1,
|
||||
[MOVE_SILVER_WIND] = 1,
|
||||
[MOVE_METAL_SOUND] = 0,
|
||||
[MOVE_GRASS_WHISTLE] = 0,
|
||||
[MOVE_TICKLE] = 0,
|
||||
[MOVE_COSMIC_POWER] = 0,
|
||||
[MOVE_WATER_SPOUT] = 1,
|
||||
[MOVE_SIGNAL_BEAM] = 1,
|
||||
[MOVE_SHADOW_PUNCH] = 1,
|
||||
@@ -374,22 +259,15 @@ static const s8 sMindRatings[] =
|
||||
[MOVE_BULLET_SEED] = 1,
|
||||
[MOVE_AERIAL_ACE] = 1,
|
||||
[MOVE_ICICLE_SPEAR] = 1,
|
||||
[MOVE_IRON_DEFENSE] = 0,
|
||||
[MOVE_BLOCK] = 0,
|
||||
[MOVE_HOWL] = 0,
|
||||
[MOVE_DRAGON_CLAW] = 1,
|
||||
[MOVE_FRENZY_PLANT] = 1,
|
||||
[MOVE_BULK_UP] = 0,
|
||||
[MOVE_BOUNCE] = 1,
|
||||
[MOVE_MUD_SHOT] = 1,
|
||||
[MOVE_POISON_TAIL] = 1,
|
||||
[MOVE_COVET] = 1,
|
||||
[MOVE_VOLT_TACKLE] = 1,
|
||||
[MOVE_MAGICAL_LEAF] = 1,
|
||||
[MOVE_WATER_SPORT] = 0,
|
||||
[MOVE_CALM_MIND] = 0,
|
||||
[MOVE_LEAF_BLADE] = 1,
|
||||
[MOVE_DRAGON_DANCE] = 0,
|
||||
[MOVE_ROCK_BLAST] = 1,
|
||||
[MOVE_SHOCK_WAVE] = 1,
|
||||
[MOVE_WATER_PULSE] = 1,
|
||||
@@ -397,14 +275,12 @@ static const s8 sMindRatings[] =
|
||||
[MOVE_PSYCHO_BOOST] = 1,
|
||||
};
|
||||
|
||||
#define TAG_JUDGEMENT_ICON 1000
|
||||
|
||||
static const struct OamData sJudgementIconOamData =
|
||||
static const struct OamData sOam_JudgmentIcon =
|
||||
{
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(16x16),
|
||||
.x = 0,
|
||||
@@ -416,52 +292,52 @@ static const struct OamData sJudgementIconOamData =
|
||||
.affineParam = 0
|
||||
};
|
||||
|
||||
static const union AnimCmd sJudgementIconAnimCmd0[] =
|
||||
static const union AnimCmd sAnim_JudgmentIcon_X[] =
|
||||
{
|
||||
ANIMCMD_FRAME(0, 1),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sJudgementIconAnimCmd1[] =
|
||||
static const union AnimCmd sAnim_JudgmentIcon_Triangle[] =
|
||||
{
|
||||
ANIMCMD_FRAME(4, 1),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sJudgementIconAnimCmd2[] =
|
||||
static const union AnimCmd sAnim_JudgmentIcon_Circle[] =
|
||||
{
|
||||
ANIMCMD_FRAME(8, 1),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sJudgementIconAnimCmd3[] =
|
||||
static const union AnimCmd sAnim_JudgmentIcon_Line[] =
|
||||
{
|
||||
ANIMCMD_FRAME(12, 1),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd *const sJudgementIconAnimCmds[] =
|
||||
static const union AnimCmd *const sAnims_JudgmentIcon[] =
|
||||
{
|
||||
sJudgementIconAnimCmd0,
|
||||
sJudgementIconAnimCmd1,
|
||||
sJudgementIconAnimCmd2,
|
||||
sJudgementIconAnimCmd3
|
||||
[ANIM_ICON_X] = sAnim_JudgmentIcon_X,
|
||||
[ANIM_ICON_TRIANGLE] = sAnim_JudgmentIcon_Triangle,
|
||||
[ANIM_ICON_CIRCLE] = sAnim_JudgmentIcon_Circle,
|
||||
[ANIM_ICON_LINE] = sAnim_JudgmentIcon_Line,
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate sSpriteTemplate_JudgmentIcon =
|
||||
{
|
||||
.tileTag = TAG_JUDGEMENT_ICON,
|
||||
.tileTag = TAG_JUDGMENT_ICON,
|
||||
.paletteTag = TAG_NONE,
|
||||
.oam = &sJudgementIconOamData,
|
||||
.anims = sJudgementIconAnimCmds,
|
||||
.oam = &sOam_JudgmentIcon,
|
||||
.anims = sAnims_JudgmentIcon,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCb_JudgmentIcon,
|
||||
.callback = SpriteCB_JudgmentIcon,
|
||||
};
|
||||
|
||||
static const struct CompressedSpriteSheet sBattleArenaJudgementSymbolsSpriteSheet[] =
|
||||
static const struct CompressedSpriteSheet sBattleArenaJudgmentSymbolsSpriteSheet[] =
|
||||
{
|
||||
{gBattleArenaJudgementSymbolsGfx, 0x200, TAG_JUDGEMENT_ICON},
|
||||
{gBattleArenaJudgmentSymbolsGfx, 0x200, TAG_JUDGMENT_ICON},
|
||||
{0}
|
||||
};
|
||||
|
||||
@@ -507,14 +383,14 @@ void CallBattleArenaFunction(void)
|
||||
u8 BattleArena_ShowJudgmentWindow(u8 *state)
|
||||
{
|
||||
int i;
|
||||
u8 ret = 0;
|
||||
u8 result = ARENA_RESULT_RUNNING;
|
||||
switch (*state)
|
||||
{
|
||||
case 0:
|
||||
BeginNormalPaletteFade(0x7FFFFF1C, 4, 0, 8, RGB_BLACK);
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
|
||||
LoadCompressedSpriteSheet(sBattleArenaJudgementSymbolsSpriteSheet);
|
||||
LoadCompressedPalette(gBattleArenaJudgementSymbolsPalette, 0x1F0, 0x20);
|
||||
SetGpuReg(REG_OFFSET_WININ, (WININ_WIN0_ALL & ~WININ_WIN0_BG0) | WININ_WIN1_ALL);
|
||||
LoadCompressedSpriteSheet(sBattleArenaJudgmentSymbolsSpriteSheet);
|
||||
LoadCompressedPalette(gBattleArenaJudgmentSymbolsPalette, OBJ_PLTT_ID(15), PLTT_SIZE_4BPP);
|
||||
gBattle_WIN0H = 0xFF;
|
||||
gBattle_WIN0V = 0x70;
|
||||
(*state)++;
|
||||
@@ -541,21 +417,23 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
|
||||
BattlePutTextOnWindow(gText_Mind, ARENA_WIN_MIND);
|
||||
BattlePutTextOnWindow(gText_Skill, ARENA_WIN_SKILL);
|
||||
BattlePutTextOnWindow(gText_Body, ARENA_WIN_BODY);
|
||||
BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement);
|
||||
BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGEMENT_TITLE);
|
||||
BattleStringExpandPlaceholdersToDisplayedString(gText_Judgment);
|
||||
BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGMENT_TITLE);
|
||||
(*state)++;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (!IsDma3ManagerBusyWithBgCopy())
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_ALL | WININ_WIN1_ALL);
|
||||
|
||||
// Create dividing line for the the score totals at the bottom
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
u8 spriteId = CreateSprite(&sSpriteTemplate_JudgmentIcon, 64 + i * 16, 84, 0);
|
||||
StartSpriteAnim(&gSprites[spriteId], 3);
|
||||
StartSpriteAnim(&gSprites[spriteId], ANIM_ICON_LINE);
|
||||
}
|
||||
ret = 1;
|
||||
result = ARENA_RESULT_STEP_DONE;
|
||||
(*state)++;
|
||||
}
|
||||
break;
|
||||
@@ -563,70 +441,71 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
|
||||
PlaySE(SE_ARENA_TIMEUP1);
|
||||
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, ARENA_WIN_JUDGEMENT_TITLE);
|
||||
BattleStringExpandPlaceholdersToDisplayedString(gText_Judgment);
|
||||
BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGMENT_TITLE);
|
||||
(*state)++;
|
||||
ret = 1;
|
||||
result = ARENA_RESULT_STEP_DONE;
|
||||
break;
|
||||
case 5:
|
||||
PlaySE(SE_ARENA_TIMEUP1);
|
||||
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, ARENA_WIN_JUDGEMENT_TITLE);
|
||||
BattleStringExpandPlaceholdersToDisplayedString(gText_Judgment);
|
||||
BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGMENT_TITLE);
|
||||
(*state)++;
|
||||
ret = 1;
|
||||
result = ARENA_RESULT_STEP_DONE;
|
||||
break;
|
||||
case 6:
|
||||
PlaySE(SE_ARENA_TIMEUP1);
|
||||
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, ARENA_WIN_JUDGEMENT_TITLE);
|
||||
BattleStringExpandPlaceholdersToDisplayedString(gText_Judgment);
|
||||
BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGMENT_TITLE);
|
||||
(*state)++;
|
||||
ret = 1;
|
||||
result = ARENA_RESULT_STEP_DONE;
|
||||
break;
|
||||
case 7:
|
||||
PlaySE(SE_ARENA_TIMEUP2);
|
||||
if (gBattleTextBuff1[0] > gBattleTextBuff2[0])
|
||||
{
|
||||
ret = 2;
|
||||
result = ARENA_RESULT_PLAYER_WON;
|
||||
gBattleScripting.battler = 0;
|
||||
}
|
||||
else if (gBattleTextBuff1[0] < gBattleTextBuff2[0])
|
||||
{
|
||||
ret = 3;
|
||||
result = ARENA_RESULT_PLAYER_LOST;
|
||||
gBattleScripting.battler = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = 4;
|
||||
result = ARENA_RESULT_TIE;
|
||||
}
|
||||
(*state)++;
|
||||
break;
|
||||
case 8:
|
||||
case JUDGMENT_STATE_FINISHED:
|
||||
// Finishing this state is the indicator to SpriteCB_JudgmentIcon that its safe to destroy the judgment icon sprites
|
||||
(*state)++;
|
||||
break;
|
||||
case 9:
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
|
||||
case JUDGMENT_STATE_FINISHED + 1:
|
||||
SetGpuReg(REG_OFFSET_WININ, (WININ_WIN0_ALL & ~WININ_WIN0_BG0) | WININ_WIN1_ALL);
|
||||
HandleBattleWindow(5, 0, 24, 13, WINDOW_CLEAR);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 256);
|
||||
BeginNormalPaletteFade(0x7FFFFF1C, 4, 8, 0, RGB_BLACK);
|
||||
(*state)++;
|
||||
break;
|
||||
case 10:
|
||||
case JUDGMENT_STATE_FINISHED + 2:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
|
||||
FreeSpriteTilesByTag(TAG_JUDGEMENT_ICON);
|
||||
ret = 1;
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_ALL | WININ_WIN1_ALL);
|
||||
FreeSpriteTilesByTag(TAG_JUDGMENT_ICON);
|
||||
result = ARENA_RESULT_STEP_DONE;
|
||||
(*state)++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
return result;
|
||||
}
|
||||
|
||||
static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler)
|
||||
@@ -656,7 +535,8 @@ static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler)
|
||||
|
||||
if (pointsPlayer > pointsOpponent)
|
||||
{
|
||||
animNum = 2;
|
||||
animNum = ANIM_ICON_CIRCLE;
|
||||
// +2 to score total for winning
|
||||
if (battler != 0)
|
||||
gBattleTextBuff2[0] += 2;
|
||||
else
|
||||
@@ -664,7 +544,8 @@ static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler)
|
||||
}
|
||||
else if (pointsPlayer == pointsOpponent)
|
||||
{
|
||||
animNum = 1;
|
||||
animNum = ANIM_ICON_TRIANGLE;
|
||||
// +1 to score total for a tie
|
||||
if (battler != 0)
|
||||
gBattleTextBuff2[0] += 1;
|
||||
else
|
||||
@@ -672,16 +553,16 @@ static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler)
|
||||
}
|
||||
else
|
||||
{
|
||||
animNum = 0;
|
||||
animNum = ANIM_ICON_X;
|
||||
}
|
||||
|
||||
pointsPlayer = CreateSprite(&sSpriteTemplate_JudgmentIcon, x, y, 0);
|
||||
StartSpriteAnim(&gSprites[pointsPlayer], animNum);
|
||||
}
|
||||
|
||||
static void SpriteCb_JudgmentIcon(struct Sprite *sprite)
|
||||
static void SpriteCB_JudgmentIcon(struct Sprite *sprite)
|
||||
{
|
||||
if (gBattleCommunication[0] > 8)
|
||||
if (gBattleCommunication[0] > JUDGMENT_STATE_FINISHED)
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
|
||||
@@ -701,8 +582,7 @@ void BattleArena_InitPoints(void)
|
||||
|
||||
void BattleArena_AddMindPoints(u8 battler)
|
||||
{
|
||||
s8 *mindPoints = gBattleStruct->arenaMindPoints;
|
||||
mindPoints[battler] += sMindRatings[gCurrentMove];
|
||||
gBattleStruct->arenaMindPoints[battler] += sMindRatings[gCurrentMove];
|
||||
}
|
||||
|
||||
void BattleArena_AddSkillPoints(u8 battler)
|
||||
@@ -719,7 +599,7 @@ void BattleArena_AddSkillPoints(u8 battler)
|
||||
}
|
||||
else if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
|
||||
{
|
||||
if (!(gMoveResultFlags & MOVE_RESULT_MISSED) || gBattleCommunication[6] != 1)
|
||||
if (!(gMoveResultFlags & MOVE_RESULT_MISSED) || gBattleCommunication[MISS_TYPE] != B_MSG_PROTECTED)
|
||||
skillPoints[battler] -= 2;
|
||||
}
|
||||
else if ((gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) && (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE))
|
||||
|
||||
+124
-124
@@ -41,7 +41,7 @@ static const struct OamData sVsLetter_V_OamData =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_DOUBLE,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(64x64),
|
||||
.x = 0,
|
||||
@@ -58,7 +58,7 @@ static const struct OamData sVsLetter_S_OamData =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_DOUBLE,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(64x64),
|
||||
.x = 0,
|
||||
@@ -159,7 +159,7 @@ const struct BgTemplate gBattleBgTemplates[] =
|
||||
},
|
||||
};
|
||||
|
||||
static const struct WindowTemplate gStandardBattleWindowTemplates[] =
|
||||
static const struct WindowTemplate sStandardBattleWindowTemplates[] =
|
||||
{
|
||||
[B_WIN_MSG] = {
|
||||
.bg = 0,
|
||||
@@ -380,7 +380,7 @@ static const struct WindowTemplate gStandardBattleWindowTemplates[] =
|
||||
DUMMY_WIN_TEMPLATE
|
||||
};
|
||||
|
||||
static const struct WindowTemplate gBattleArenaWindowTemplates[] =
|
||||
static const struct WindowTemplate sBattleArenaWindowTemplates[] =
|
||||
{
|
||||
[B_WIN_MSG] = {
|
||||
.bg = 0,
|
||||
@@ -571,7 +571,7 @@ static const struct WindowTemplate gBattleArenaWindowTemplates[] =
|
||||
.paletteNum = 5,
|
||||
.baseBlock = 0x013c,
|
||||
},
|
||||
[ARENA_WIN_JUDGEMENT_TITLE] = {
|
||||
[ARENA_WIN_JUDGMENT_TITLE] = {
|
||||
.bg = 0,
|
||||
.tilemapLeft = 8,
|
||||
.tilemapTop = 11,
|
||||
@@ -580,7 +580,7 @@ static const struct WindowTemplate gBattleArenaWindowTemplates[] =
|
||||
.paletteNum = 5,
|
||||
.baseBlock = 0x0148,
|
||||
},
|
||||
[ARENA_WIN_JUDGEMENT_TEXT] = {
|
||||
[ARENA_WIN_JUDGMENT_TEXT] = {
|
||||
.bg = 0,
|
||||
.tilemapLeft = 2,
|
||||
.tilemapTop = 15,
|
||||
@@ -594,8 +594,8 @@ static const struct WindowTemplate gBattleArenaWindowTemplates[] =
|
||||
|
||||
const struct WindowTemplate * const gBattleWindowTemplates[] =
|
||||
{
|
||||
[B_WIN_TYPE_NORMAL] = gStandardBattleWindowTemplates,
|
||||
[B_WIN_TYPE_ARENA] = gBattleArenaWindowTemplates,
|
||||
[B_WIN_TYPE_NORMAL] = sStandardBattleWindowTemplates,
|
||||
[B_WIN_TYPE_ARENA] = sBattleArenaWindowTemplates,
|
||||
};
|
||||
|
||||
static const struct BattleBackground sBattleTerrainTable[] =
|
||||
@@ -742,17 +742,17 @@ void InitBattleBgsVideo(void)
|
||||
|
||||
void LoadBattleMenuWindowGfx(void)
|
||||
{
|
||||
LoadUserWindowBorderGfx(2, 0x12, 0x10);
|
||||
LoadUserWindowBorderGfx(2, 0x22, 0x10);
|
||||
LoadCompressedPalette(gBattleWindowTextPalette, 0x50, 0x20);
|
||||
LoadUserWindowBorderGfx(2, 0x12, BG_PLTT_ID(1));
|
||||
LoadUserWindowBorderGfx(2, 0x22, BG_PLTT_ID(1));
|
||||
LoadCompressedPalette(gBattleWindowTextPalette, BG_PLTT_ID(5), PLTT_SIZE_4BPP);
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_ARENA)
|
||||
{
|
||||
// Load graphics for the Battle Arena referee's mid-battle messages.
|
||||
Menu_LoadStdPalAt(0x70);
|
||||
LoadMessageBoxGfx(0, 0x30, 0x70);
|
||||
gPlttBufferUnfaded[0x76] = 0;
|
||||
CpuCopy16(&gPlttBufferUnfaded[0x76], &gPlttBufferFaded[0x76], 2);
|
||||
Menu_LoadStdPalAt(BG_PLTT_ID(7));
|
||||
LoadMessageBoxGfx(0, 0x30, BG_PLTT_ID(7));
|
||||
gPlttBufferUnfaded[BG_PLTT_ID(7) + 6] = 0;
|
||||
CpuCopy16(&gPlttBufferUnfaded[BG_PLTT_ID(7) + 6], &gPlttBufferFaded[BG_PLTT_ID(7) + 6], PLTT_SIZEOF(1));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -760,27 +760,27 @@ void DrawMainBattleBackground(void)
|
||||
{
|
||||
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_RECORDED_LINK))
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60);
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_GROUDON)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTiles_Cave, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Cave, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Groudon, 0x20, 0x60);
|
||||
LZDecompressVram(gBattleTerrainTiles_Cave, (void *)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Cave, (void *)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Groudon, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTiles_Water, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Water, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Kyogre, 0x20, 0x60);
|
||||
LZDecompressVram(gBattleTerrainTiles_Water, (void *)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Water, (void *)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Kyogre, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_RAYQUAZA)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTiles_Rayquaza, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Rayquaza, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Rayquaza, 0x20, 0x60);
|
||||
LZDecompressVram(gBattleTerrainTiles_Rayquaza, (void *)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Rayquaza, (void *)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Rayquaza, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -789,16 +789,16 @@ void DrawMainBattleBackground(void)
|
||||
u8 trainerClass = gTrainers[gTrainerBattleOpponent_A].trainerClass;
|
||||
if (trainerClass == TRAINER_CLASS_LEADER)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, 0x20, 0x60);
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
return;
|
||||
}
|
||||
else if (trainerClass == TRAINER_CLASS_CHAMPION)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumWallace, 0x20, 0x60);
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumWallace, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -807,49 +807,49 @@ void DrawMainBattleBackground(void)
|
||||
{
|
||||
default:
|
||||
case MAP_BATTLE_SCENE_NORMAL:
|
||||
LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tileset, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tilemap, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(sBattleTerrainTable[gBattleTerrain].palette, 0x20, 0x60);
|
||||
LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tileset, (void *)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tilemap, (void *)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(sBattleTerrainTable[gBattleTerrain].palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_GYM:
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, 0x20, 0x60);
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_MAGMA:
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumMagma, 0x20, 0x60);
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumMagma, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_AQUA:
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumAqua, 0x20, 0x60);
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumAqua, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_SIDNEY:
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumSidney, 0x20, 0x60);
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumSidney, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_PHOEBE:
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumPhoebe, 0x20, 0x60);
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumPhoebe, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_GLACIA:
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumGlacia, 0x20, 0x60);
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumGlacia, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_DRAKE:
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumDrake, 0x20, 0x60);
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumDrake, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_FRONTIER:
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60);
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26)));
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -857,10 +857,10 @@ void DrawMainBattleBackground(void)
|
||||
|
||||
void LoadBattleTextboxAndBackground(void)
|
||||
{
|
||||
LZDecompressVram(gBattleTextboxTiles, (void*)(BG_CHAR_ADDR(0)));
|
||||
LZDecompressVram(gBattleTextboxTiles, (void *)(BG_CHAR_ADDR(0)));
|
||||
CopyToBgTilemapBuffer(0, gBattleTextboxTilemap, 0, 0);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
LoadCompressedPalette(gBattleTextboxPalette, 0, 0x40);
|
||||
LoadCompressedPalette(gBattleTextboxPalette, BG_PLTT_ID(0), 2 * PLTT_SIZE_4BPP);
|
||||
LoadBattleMenuWindowGfx();
|
||||
DrawMainBattleBackground();
|
||||
}
|
||||
@@ -1124,9 +1124,9 @@ void DrawBattleEntryBackground(void)
|
||||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||
{
|
||||
LZDecompressVram(gBattleVSFrame_Gfx, (void*)(BG_CHAR_ADDR(1)));
|
||||
LZDecompressVram(gVsLettersGfx, (void*)OBJ_VRAM0);
|
||||
LoadCompressedPalette(gBattleVSFrame_Pal, 0x60, 0x20);
|
||||
LZDecompressVram(gBattleVSFrame_Gfx, (void *)(BG_CHAR_ADDR(1)));
|
||||
LZDecompressVram(gVsLettersGfx, (void *)OBJ_VRAM0);
|
||||
LoadCompressedPalette(gBattleVSFrame_Pal, BG_PLTT_ID(6), PLTT_SIZE_4BPP);
|
||||
SetBgAttribute(1, BG_ATTR_SCREENSIZE, 1);
|
||||
SetGpuReg(REG_OFFSET_BG1CNT, 0x5C04);
|
||||
CopyToBgTilemapBuffer(1, gBattleVSFrame_Tilemap, 0, 0);
|
||||
@@ -1143,8 +1143,8 @@ void DrawBattleEntryBackground(void)
|
||||
{
|
||||
if (!(gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) || gPartnerTrainerId == TRAINER_STEVEN_PARTNER)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainAnimTiles_Building, (void*)(BG_CHAR_ADDR(1)));
|
||||
LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void*)(BG_SCREEN_ADDR(28)));
|
||||
LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)(BG_CHAR_ADDR(1)));
|
||||
LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)(BG_SCREEN_ADDR(28)));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1160,18 +1160,18 @@ void DrawBattleEntryBackground(void)
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_GROUDON)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainAnimTiles_Cave, (void*)(BG_CHAR_ADDR(1)));
|
||||
LZDecompressVram(gBattleTerrainAnimTilemap_Cave, (void*)(BG_SCREEN_ADDR(28)));
|
||||
LZDecompressVram(gBattleTerrainAnimTiles_Cave, (void *)(BG_CHAR_ADDR(1)));
|
||||
LZDecompressVram(gBattleTerrainAnimTilemap_Cave, (void *)(BG_SCREEN_ADDR(28)));
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainAnimTiles_Underwater, (void*)(BG_CHAR_ADDR(1)));
|
||||
LZDecompressVram(gBattleTerrainAnimTilemap_Underwater, (void*)(BG_SCREEN_ADDR(28)));
|
||||
LZDecompressVram(gBattleTerrainAnimTiles_Underwater, (void *)(BG_CHAR_ADDR(1)));
|
||||
LZDecompressVram(gBattleTerrainAnimTilemap_Underwater, (void *)(BG_SCREEN_ADDR(28)));
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_RAYQUAZA)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainAnimTiles_Rayquaza, (void*)(BG_CHAR_ADDR(1)));
|
||||
LZDecompressVram(gBattleTerrainAnimTilemap_Rayquaza, (void*)(BG_SCREEN_ADDR(28)));
|
||||
LZDecompressVram(gBattleTerrainAnimTiles_Rayquaza, (void *)(BG_CHAR_ADDR(1)));
|
||||
LZDecompressVram(gBattleTerrainAnimTilemap_Rayquaza, (void *)(BG_SCREEN_ADDR(28)));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1180,27 +1180,27 @@ void DrawBattleEntryBackground(void)
|
||||
u8 trainerClass = gTrainers[gTrainerBattleOpponent_A].trainerClass;
|
||||
if (trainerClass == TRAINER_CLASS_LEADER)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainAnimTiles_Building, (void*)(BG_CHAR_ADDR(1)));
|
||||
LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void*)(BG_SCREEN_ADDR(28)));
|
||||
LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)(BG_CHAR_ADDR(1)));
|
||||
LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)(BG_SCREEN_ADDR(28)));
|
||||
return;
|
||||
}
|
||||
else if (trainerClass == TRAINER_CLASS_CHAMPION)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainAnimTiles_Building, (void*)(BG_CHAR_ADDR(1)));
|
||||
LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void*)(BG_SCREEN_ADDR(28)));
|
||||
LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)(BG_CHAR_ADDR(1)));
|
||||
LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)(BG_SCREEN_ADDR(28)));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (GetCurrentMapBattleScene() == MAP_BATTLE_SCENE_NORMAL)
|
||||
{
|
||||
LZDecompressVram(sBattleTerrainTable[gBattleTerrain].entryTileset, (void*)(BG_CHAR_ADDR(1)));
|
||||
LZDecompressVram(sBattleTerrainTable[gBattleTerrain].entryTilemap, (void*)(BG_SCREEN_ADDR(28)));
|
||||
LZDecompressVram(sBattleTerrainTable[gBattleTerrain].entryTileset, (void *)(BG_CHAR_ADDR(1)));
|
||||
LZDecompressVram(sBattleTerrainTable[gBattleTerrain].entryTilemap, (void *)(BG_SCREEN_ADDR(28)));
|
||||
}
|
||||
else
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainAnimTiles_Building, (void*)(BG_CHAR_ADDR(1)));
|
||||
LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void*)(BG_SCREEN_ADDR(28)));
|
||||
LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)(BG_CHAR_ADDR(1)));
|
||||
LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)(BG_SCREEN_ADDR(28)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1212,23 +1212,23 @@ bool8 LoadChosenBattleElement(u8 caseId)
|
||||
switch (caseId)
|
||||
{
|
||||
case 0:
|
||||
LZDecompressVram(gBattleTextboxTiles, (void*)(BG_CHAR_ADDR(0)));
|
||||
LZDecompressVram(gBattleTextboxTiles, (void *)(BG_CHAR_ADDR(0)));
|
||||
break;
|
||||
case 1:
|
||||
CopyToBgTilemapBuffer(0, gBattleTextboxTilemap, 0, 0);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
break;
|
||||
case 2:
|
||||
LoadCompressedPalette(gBattleTextboxPalette, 0, 0x40);
|
||||
LoadCompressedPalette(gBattleTextboxPalette, BG_PLTT_ID(0), 2 * PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case 3:
|
||||
if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_EREADER_TRAINER))
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2)));
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_GROUDON)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTiles_Cave, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTiles_Cave, (void *)(BG_CHAR_ADDR(2)));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1237,12 +1237,12 @@ bool8 LoadChosenBattleElement(u8 caseId)
|
||||
u8 trainerClass = gTrainers[gTrainerBattleOpponent_A].trainerClass;
|
||||
if (trainerClass == TRAINER_CLASS_LEADER)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2)));
|
||||
break;
|
||||
}
|
||||
else if (trainerClass == TRAINER_CLASS_CHAMPION)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2)));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1251,31 +1251,31 @@ bool8 LoadChosenBattleElement(u8 caseId)
|
||||
{
|
||||
default:
|
||||
case MAP_BATTLE_SCENE_NORMAL:
|
||||
LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tileset, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tileset, (void *)(BG_CHAR_ADDR(2)));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_GYM:
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2)));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_MAGMA:
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2)));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_AQUA:
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2)));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_SIDNEY:
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2)));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_PHOEBE:
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2)));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_GLACIA:
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2)));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_DRAKE:
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)(BG_CHAR_ADDR(2)));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_FRONTIER:
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2)));
|
||||
LZDecompressVram(gBattleTerrainTiles_Building, (void *)(BG_CHAR_ADDR(2)));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1283,14 +1283,14 @@ bool8 LoadChosenBattleElement(u8 caseId)
|
||||
case 4:
|
||||
if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_EREADER_TRAINER))
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26)));
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON)
|
||||
{
|
||||
if (gGameVersion == VERSION_RUBY)
|
||||
LZDecompressVram(gBattleTerrainTilemap_Cave, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Cave, (void *)(BG_SCREEN_ADDR(26)));
|
||||
else
|
||||
LZDecompressVram(gBattleTerrainTilemap_Water, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Water, (void *)(BG_SCREEN_ADDR(26)));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1299,12 +1299,12 @@ bool8 LoadChosenBattleElement(u8 caseId)
|
||||
u8 trainerClass = gTrainers[gTrainerBattleOpponent_A].trainerClass;
|
||||
if (trainerClass == TRAINER_CLASS_LEADER)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26)));
|
||||
break;
|
||||
}
|
||||
else if (trainerClass == TRAINER_CLASS_CHAMPION)
|
||||
{
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26)));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1313,31 +1313,31 @@ bool8 LoadChosenBattleElement(u8 caseId)
|
||||
{
|
||||
default:
|
||||
case MAP_BATTLE_SCENE_NORMAL:
|
||||
LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tilemap, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tilemap, (void *)(BG_SCREEN_ADDR(26)));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_GYM:
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26)));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_MAGMA:
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26)));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_AQUA:
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26)));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_SIDNEY:
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26)));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_PHOEBE:
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26)));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_GLACIA:
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26)));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_DRAKE:
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)(BG_SCREEN_ADDR(26)));
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_FRONTIER:
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26)));
|
||||
LZDecompressVram(gBattleTerrainTilemap_Building, (void *)(BG_SCREEN_ADDR(26)));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1345,14 +1345,14 @@ bool8 LoadChosenBattleElement(u8 caseId)
|
||||
case 5:
|
||||
if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_EREADER_TRAINER))
|
||||
{
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60);
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON)
|
||||
{
|
||||
if (gGameVersion == VERSION_RUBY)
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Groudon, 0x20, 0x60);
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Groudon, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
else
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Kyogre, 0x20, 0x60);
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Kyogre, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1361,12 +1361,12 @@ bool8 LoadChosenBattleElement(u8 caseId)
|
||||
u8 trainerClass = gTrainers[gTrainerBattleOpponent_A].trainerClass;
|
||||
if (trainerClass == TRAINER_CLASS_LEADER)
|
||||
{
|
||||
LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, 0x20, 0x60);
|
||||
LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
break;
|
||||
}
|
||||
else if (trainerClass == TRAINER_CLASS_CHAMPION)
|
||||
{
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumWallace, 0x20, 0x60);
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumWallace, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1375,31 +1375,31 @@ bool8 LoadChosenBattleElement(u8 caseId)
|
||||
{
|
||||
default:
|
||||
case MAP_BATTLE_SCENE_NORMAL:
|
||||
LoadCompressedPalette(sBattleTerrainTable[gBattleTerrain].palette, 0x20, 0x60);
|
||||
LoadCompressedPalette(sBattleTerrainTable[gBattleTerrain].palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_GYM:
|
||||
LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, 0x20, 0x60);
|
||||
LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_MAGMA:
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumMagma, 0x20, 0x60);
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumMagma, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_AQUA:
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumAqua, 0x20, 0x60);
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumAqua, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_SIDNEY:
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumSidney, 0x20, 0x60);
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumSidney, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_PHOEBE:
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumPhoebe, 0x20, 0x60);
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumPhoebe, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_GLACIA:
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumGlacia, 0x20, 0x60);
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumGlacia, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_DRAKE:
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumDrake, 0x20, 0x60);
|
||||
LoadCompressedPalette(gBattleTerrainPalette_StadiumDrake, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
break;
|
||||
case MAP_BATTLE_SCENE_FRONTIER:
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60);
|
||||
LoadCompressedPalette(gBattleTerrainPalette_Frontier, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -368,16 +368,13 @@ static void TryShinyAnimAfterMonAnim(void)
|
||||
{
|
||||
TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
|
||||
}
|
||||
else
|
||||
else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
|
||||
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||
LinkOpponentBufferExecCompleted();
|
||||
}
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
|
||||
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||
LinkOpponentBufferExecCompleted();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -389,13 +386,9 @@ static void CompleteOnHealthbarDone(void)
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
|
||||
|
||||
if (hpValue != -1)
|
||||
{
|
||||
UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT);
|
||||
}
|
||||
else
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
}
|
||||
}
|
||||
|
||||
static void HideHealthboxAfterMonFaint(void)
|
||||
@@ -627,7 +620,7 @@ static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst)
|
||||
moveData.pp[size] = GetMonData(&gEnemyParty[monId], MON_DATA_PP1 + size);
|
||||
}
|
||||
moveData.ppBonuses = GetMonData(&gEnemyParty[monId], MON_DATA_PP_BONUSES);
|
||||
src = (u8*)(&moveData);
|
||||
src = (u8 *)(&moveData);
|
||||
for (size = 0; size < sizeof(moveData); size++)
|
||||
dst[size] = src[size];
|
||||
break;
|
||||
@@ -1466,7 +1459,7 @@ static void LinkOpponentHandlePrintString(void)
|
||||
|
||||
gBattle_BG0_X = 0;
|
||||
gBattle_BG0_Y = 0;
|
||||
stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]);
|
||||
stringId = (u16 *)(&gBattleBufferA[gActiveBattler][2]);
|
||||
BufferStringBattle(*stringId);
|
||||
BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG);
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
|
||||
@@ -1758,14 +1751,14 @@ static void LinkOpponentHandleDrawPartyStatusSummary(void)
|
||||
|
||||
if (gBattleBufferA[gActiveBattler][2] != 0)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E < 2)
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay < 2)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E++;
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay++;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E = 0;
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -217,7 +217,7 @@ static void Intro_WaitForHealthbox(void)
|
||||
else
|
||||
{
|
||||
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
|
||||
&& gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy)
|
||||
{
|
||||
finished = TRUE;
|
||||
}
|
||||
@@ -236,7 +236,7 @@ static void Intro_WaitForHealthbox(void)
|
||||
static void Intro_ShowHealthbox(void)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive
|
||||
&& gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||
&& ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay != 1)
|
||||
@@ -245,10 +245,10 @@ static void Intro_ShowHealthbox(void)
|
||||
|
||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||
{
|
||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
|
||||
DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]]);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(BATTLE_PARTNER(gActiveBattler));
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]);
|
||||
}
|
||||
|
||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
|
||||
@@ -514,7 +514,7 @@ static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst)
|
||||
moveData.pp[size] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + size);
|
||||
}
|
||||
moveData.ppBonuses = GetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES);
|
||||
src = (u8*)(&moveData);
|
||||
src = (u8 *)(&moveData);
|
||||
for (size = 0; size < sizeof(moveData); size++)
|
||||
dst[size] = src[size];
|
||||
break;
|
||||
@@ -1298,7 +1298,7 @@ static void LinkPartnerHandlePrintString(void)
|
||||
|
||||
gBattle_BG0_X = 0;
|
||||
gBattle_BG0_Y = 0;
|
||||
stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]);
|
||||
stringId = (u16 *)(&gBattleBufferA[gActiveBattler][2]);
|
||||
BufferStringBattle(*stringId);
|
||||
BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG);
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
|
||||
@@ -1558,7 +1558,7 @@ static void LinkPartnerHandleIntroTrainerBallThrow(void)
|
||||
trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender;
|
||||
}
|
||||
|
||||
LoadCompressedPalette(gTrainerBackPicPaletteTable[trainerPicId].data, 0x100 + paletteNum * 16, 32);
|
||||
LoadCompressedPalette(gTrainerBackPicPaletteTable[trainerPicId].data, OBJ_PLTT_ID(paletteNum), PLTT_SIZE_4BPP);
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum;
|
||||
|
||||
|
||||
@@ -234,25 +234,25 @@ static void Intro_WaitForShinyAnimAndHealthbox(void)
|
||||
else
|
||||
{
|
||||
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
|
||||
&& gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy)
|
||||
healthboxAnimDone = TRUE;
|
||||
twoMons = TRUE;
|
||||
}
|
||||
|
||||
gBattleControllerOpponentHealthboxData = &gBattleSpritesDataPtr->healthBoxesData[gActiveBattler];
|
||||
gBattleControllerOpponentFlankHealthboxData = &gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK];
|
||||
gBattleControllerOpponentFlankHealthboxData = &gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)];
|
||||
|
||||
if (healthboxAnimDone)
|
||||
{
|
||||
if (twoMons == TRUE)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim
|
||||
&& gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim)
|
||||
&& gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim = FALSE;
|
||||
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||
}
|
||||
@@ -263,8 +263,8 @@ static void Intro_WaitForShinyAnimAndHealthbox(void)
|
||||
{
|
||||
if (GetBattlerPosition(gActiveBattler) == 3)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim)
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim)
|
||||
{
|
||||
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||
@@ -296,20 +296,20 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
||||
if (!(gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)
|
||||
&& !(gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
||||
&& IsDoubleBattle()
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim)
|
||||
TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim)
|
||||
TryShinyAnimation(BATTLE_PARTNER(gActiveBattler), &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]]);
|
||||
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted)
|
||||
{
|
||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||
{
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(BATTLE_PARTNER(gActiveBattler));
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]);
|
||||
}
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(gActiveBattler);
|
||||
@@ -320,7 +320,7 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
||||
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].waitForCry
|
||||
&& gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].waitForCry
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].waitForCry
|
||||
&& !IsCryPlayingOrClearCrySongs())
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored)
|
||||
@@ -349,8 +349,8 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
||||
{
|
||||
if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
|
||||
&& gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy)
|
||||
{
|
||||
battlerAnimsDone = TRUE;
|
||||
}
|
||||
@@ -360,8 +360,8 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
||||
{
|
||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||
{
|
||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]);
|
||||
SetBattlerShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES));
|
||||
DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]]);
|
||||
SetBattlerShadowSpriteCallback(BATTLE_PARTNER(gActiveBattler), GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], MON_DATA_SPECIES));
|
||||
}
|
||||
|
||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
|
||||
@@ -397,9 +397,7 @@ static void CompleteOnHealthbarDone(void)
|
||||
s16 hpValue = MoveBattleBar(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
|
||||
if (hpValue != -1)
|
||||
{
|
||||
UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT);
|
||||
}
|
||||
else
|
||||
OpponentBufferExecCompleted();
|
||||
}
|
||||
@@ -627,7 +625,7 @@ static u32 GetOpponentMonData(u8 monId, u8 *dst)
|
||||
moveData.pp[size] = GetMonData(&gEnemyParty[monId], MON_DATA_PP1 + size);
|
||||
}
|
||||
moveData.ppBonuses = GetMonData(&gEnemyParty[monId], MON_DATA_PP_BONUSES);
|
||||
src = (u8*)(&moveData);
|
||||
src = (u8 *)(&moveData);
|
||||
for (size = 0; size < sizeof(moveData); size++)
|
||||
dst[size] = src[size];
|
||||
break;
|
||||
@@ -1153,7 +1151,7 @@ static void OpponentHandleLoadMonSprite(void)
|
||||
|
||||
static void OpponentHandleSwitchInAnim(void)
|
||||
{
|
||||
*(gBattleStruct->monToSwitchIntoId + gActiveBattler) = 6;
|
||||
*(gBattleStruct->monToSwitchIntoId + gActiveBattler) = PARTY_SIZE;
|
||||
gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1];
|
||||
StartSendOutAnim(gActiveBattler, gBattleBufferA[gActiveBattler][2]);
|
||||
gBattlerControllerFuncs[gActiveBattler] = SwitchIn_TryShinyAnim;
|
||||
@@ -1519,7 +1517,7 @@ static void OpponentHandlePrintString(void)
|
||||
|
||||
gBattle_BG0_X = 0;
|
||||
gBattle_BG0_Y = 0;
|
||||
stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]);
|
||||
stringId = (u16 *)(&gBattleBufferA[gActiveBattler][2]);
|
||||
BufferStringBattle(*stringId);
|
||||
BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG);
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
|
||||
@@ -1552,7 +1550,7 @@ static void OpponentHandleChooseMove(void)
|
||||
else
|
||||
{
|
||||
u8 chosenMoveId;
|
||||
struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]);
|
||||
struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct *)(&gBattleBufferA[gActiveBattler][4]);
|
||||
|
||||
if (gBattleTypeFlags & (BATTLE_TYPE_TRAINER | BATTLE_TYPE_FIRST_BATTLE | BATTLE_TYPE_SAFARI | BATTLE_TYPE_ROAMER))
|
||||
{
|
||||
@@ -1637,13 +1635,13 @@ static void OpponentHandleChoosePokemon(void)
|
||||
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_TOWER_LINK_MULTI))
|
||||
{
|
||||
if (gActiveBattler == 1)
|
||||
firstId = 0, lastId = 3;
|
||||
firstId = 0, lastId = PARTY_SIZE / 2;
|
||||
else
|
||||
firstId = 3, lastId = 6;
|
||||
firstId = PARTY_SIZE / 2, lastId = PARTY_SIZE;
|
||||
}
|
||||
else
|
||||
{
|
||||
firstId = 0, lastId = 6;
|
||||
firstId = 0, lastId = PARTY_SIZE;
|
||||
}
|
||||
|
||||
for (chosenMonId = firstId; chosenMonId < lastId; chosenMonId++)
|
||||
@@ -1929,14 +1927,14 @@ static void OpponentHandleDrawPartyStatusSummary(void)
|
||||
|
||||
if (gBattleBufferA[gActiveBattler][2] != 0)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E < 2)
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay < 2)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E++;
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay++;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E = 0;
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -96,8 +96,8 @@ static void PlayerCmdEnd(void);
|
||||
static void PlayerBufferRunCommand(void);
|
||||
static void HandleInputChooseTarget(void);
|
||||
static void HandleInputChooseMove(void);
|
||||
static void MoveSelectionCreateCursorAt(u8 cursorPos, u8 arg1);
|
||||
static void MoveSelectionDestroyCursorAt(u8 cursorPos);
|
||||
static void MoveSelectionCreateCursorAt(u8, u8);
|
||||
static void MoveSelectionDestroyCursorAt(u8);
|
||||
static void MoveSelectionDisplayPpNumber(void);
|
||||
static void MoveSelectionDisplayPpString(void);
|
||||
static void MoveSelectionDisplayMoveType(void);
|
||||
@@ -106,18 +106,18 @@ static void HandleMoveSwitching(void);
|
||||
static void SwitchIn_HandleSoundAndEnd(void);
|
||||
static void WaitForMonSelection(void);
|
||||
static void CompleteWhenChoseItem(void);
|
||||
static void Task_LaunchLvlUpAnim(u8 taskId);
|
||||
static void Task_PrepareToGiveExpWithExpBar(u8 taskId);
|
||||
static void DestroyExpTaskAndCompleteOnInactiveTextPrinter(u8 taskId);
|
||||
static void Task_GiveExpWithExpBar(u8 taskId);
|
||||
static void Task_UpdateLvlInHealthbox(u8 taskId);
|
||||
static void Task_LaunchLvlUpAnim(u8);
|
||||
static void Task_PrepareToGiveExpWithExpBar(u8);
|
||||
static void DestroyExpTaskAndCompleteOnInactiveTextPrinter(u8);
|
||||
static void Task_GiveExpWithExpBar(u8);
|
||||
static void Task_UpdateLvlInHealthbox(u8);
|
||||
static void PrintLinkStandbyMsg(void);
|
||||
static u32 CopyPlayerMonData(u8 monId, u8 *dst);
|
||||
static void SetPlayerMonData(u8 monId);
|
||||
static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit);
|
||||
static u32 CopyPlayerMonData(u8, u8 *);
|
||||
static void SetPlayerMonData(u8);
|
||||
static void StartSendOutAnim(u8, bool8);
|
||||
static void DoSwitchOutAnimation(void);
|
||||
static void PlayerDoMoveAnimation(void);
|
||||
static void Task_StartSendOutAnim(u8 taskId);
|
||||
static void Task_StartSendOutAnim(u8);
|
||||
static void EndDrawPartyStatusSummary(void);
|
||||
|
||||
static void (*const sPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
|
||||
@@ -364,7 +364,7 @@ static void HandleInputChooseTarget(void)
|
||||
if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget;
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCB_HideAsMoveTarget;
|
||||
BtlController_EmitTwoReturnValues(BUFFER_B, 10, gMoveSelectionCursor[gActiveBattler] | (gMultiUsePlayerCursor << 8));
|
||||
EndBounceEffect(gMultiUsePlayerCursor, BOUNCE_HEALTHBOX);
|
||||
PlayerBufferExecCompleted();
|
||||
@@ -372,7 +372,7 @@ static void HandleInputChooseTarget(void)
|
||||
else if (JOY_NEW(B_BUTTON) || gPlayerDpadHoldFrames > 59)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget;
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCB_HideAsMoveTarget;
|
||||
gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseMove;
|
||||
DoBounceEffect(gActiveBattler, BOUNCE_HEALTHBOX, 7, 1);
|
||||
DoBounceEffect(gActiveBattler, BOUNCE_MON, 7, 1);
|
||||
@@ -381,7 +381,7 @@ static void HandleInputChooseTarget(void)
|
||||
else if (JOY_NEW(DPAD_LEFT | DPAD_UP))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget;
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCB_HideAsMoveTarget;
|
||||
|
||||
do
|
||||
{
|
||||
@@ -422,12 +422,12 @@ static void HandleInputChooseTarget(void)
|
||||
if (gAbsentBattlerFlags & gBitTable[gMultiUsePlayerCursor])
|
||||
i = 0;
|
||||
} while (i == 0);
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_ShowAsMoveTarget;
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCB_ShowAsMoveTarget;
|
||||
}
|
||||
else if (JOY_NEW(DPAD_RIGHT | DPAD_DOWN))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget;
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCB_HideAsMoveTarget;
|
||||
|
||||
do
|
||||
{
|
||||
@@ -464,14 +464,14 @@ static void HandleInputChooseTarget(void)
|
||||
if (gAbsentBattlerFlags & gBitTable[gMultiUsePlayerCursor])
|
||||
i = 0;
|
||||
} while (i == 0);
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_ShowAsMoveTarget;
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCB_ShowAsMoveTarget;
|
||||
}
|
||||
}
|
||||
|
||||
static void HandleInputChooseMove(void)
|
||||
{
|
||||
bool32 canSelectTarget = FALSE;
|
||||
struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]);
|
||||
struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct *)(&gBattleBufferA[gActiveBattler][4]);
|
||||
|
||||
if (JOY_HELD(DPAD_ANY) && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_L_EQUALS_A)
|
||||
gPlayerDpadHoldFrames++;
|
||||
@@ -498,7 +498,7 @@ static void HandleInputChooseMove(void)
|
||||
if (moveTarget & MOVE_TARGET_USER)
|
||||
gMultiUsePlayerCursor = gActiveBattler;
|
||||
else
|
||||
gMultiUsePlayerCursor = GetBattlerAtPosition((GetBattlerPosition(gActiveBattler) & BIT_SIDE) ^ BIT_SIDE);
|
||||
gMultiUsePlayerCursor = GetBattlerAtPosition(BATTLE_OPPOSITE(GET_BATTLER_SIDE(gActiveBattler)));
|
||||
|
||||
if (!gBattleBufferA[gActiveBattler][1]) // not a double battle
|
||||
{
|
||||
@@ -537,7 +537,7 @@ static void HandleInputChooseMove(void)
|
||||
else
|
||||
gMultiUsePlayerCursor = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
|
||||
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_ShowAsMoveTarget;
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCB_ShowAsMoveTarget;
|
||||
}
|
||||
}
|
||||
else if (JOY_NEW(B_BUTTON) || gPlayerDpadHoldFrames > 59)
|
||||
@@ -676,7 +676,7 @@ static void HandleMoveSwitching(void)
|
||||
|
||||
if (gMoveSelectionCursor[gActiveBattler] != gMultiUsePlayerCursor)
|
||||
{
|
||||
struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]);
|
||||
struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct *)(&gBattleBufferA[gActiveBattler][4]);
|
||||
s32 i;
|
||||
|
||||
// swap moves and pp
|
||||
@@ -950,26 +950,26 @@ static void Intro_WaitForShinyAnimAndHealthbox(void)
|
||||
else
|
||||
{
|
||||
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
|
||||
&& gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy)
|
||||
healthboxAnimDone = TRUE;
|
||||
}
|
||||
|
||||
// If healthbox and shiny anim are done
|
||||
if (healthboxAnimDone && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim
|
||||
&& gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim)
|
||||
&& gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim)
|
||||
{
|
||||
// Reset shiny anim (even if it didn't occur)
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim = FALSE;
|
||||
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
|
||||
|
||||
if (IsDoubleBattle())
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], gActiveBattler ^ BIT_FLANK);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], BATTLE_PARTNER(gActiveBattler));
|
||||
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 3;
|
||||
gBattlerControllerFuncs[gActiveBattler] = Intro_DelayAndEnd;
|
||||
@@ -987,21 +987,21 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
||||
TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
|
||||
|
||||
// Start shiny animation if applicable for 2nd pokemon
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
|
||||
TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive)
|
||||
TryShinyAnimation(BATTLE_PARTNER(gActiveBattler), &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]]);
|
||||
|
||||
// Show healthbox after ball anim
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted)
|
||||
{
|
||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||
{
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(BATTLE_PARTNER(gActiveBattler));
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]);
|
||||
}
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(gActiveBattler);
|
||||
@@ -1013,7 +1013,7 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
||||
// Restore bgm after cry has played and healthbox anim is started
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].waitForCry
|
||||
&& gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].waitForCry
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].waitForCry
|
||||
&& !IsCryPlayingOrClearCrySongs())
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored)
|
||||
@@ -1040,8 +1040,8 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
||||
{
|
||||
if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
|
||||
&& gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy)
|
||||
{
|
||||
battlerAnimsDone = TRUE;
|
||||
}
|
||||
@@ -1051,7 +1051,7 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
||||
if (bgmRestored && battlerAnimsDone)
|
||||
{
|
||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]);
|
||||
DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]]);
|
||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
|
||||
|
||||
gBattleSpritesDataPtr->animationData->introAnimActive = FALSE;
|
||||
@@ -1163,7 +1163,7 @@ static void Task_GiveExpToMon(u8 taskId)
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
u8 level = GetMonData(mon, MON_DATA_LEVEL);
|
||||
u32 currExp = GetMonData(mon, MON_DATA_EXP);
|
||||
u32 nextLvlExp = gExperienceTables[gBaseStats[species].growthRate][level + 1];
|
||||
u32 nextLvlExp = gExperienceTables[gSpeciesInfo[species].growthRate][level + 1];
|
||||
|
||||
if (currExp + gainedExp >= nextLvlExp)
|
||||
{
|
||||
@@ -1178,7 +1178,7 @@ static void Task_GiveExpToMon(u8 taskId)
|
||||
gActiveBattler = savedActiveBattler;
|
||||
|
||||
if (IsDoubleBattle() == TRUE
|
||||
&& ((u16)(monId) == gBattlerPartyIndexes[battlerId] || (u16)(monId) == gBattlerPartyIndexes[battlerId ^ BIT_FLANK]))
|
||||
&& ((u16)(monId) == gBattlerPartyIndexes[battlerId] || (u16)(monId) == gBattlerPartyIndexes[BATTLE_PARTNER(battlerId)]))
|
||||
gTasks[taskId].func = Task_LaunchLvlUpAnim;
|
||||
else
|
||||
gTasks[taskId].func = DestroyExpTaskAndCompleteOnInactiveTextPrinter;
|
||||
@@ -1206,11 +1206,11 @@ static void Task_PrepareToGiveExpWithExpBar(u8 taskId)
|
||||
u8 level = GetMonData(mon, MON_DATA_LEVEL);
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
u32 exp = GetMonData(mon, MON_DATA_EXP);
|
||||
u32 currLvlExp = gExperienceTables[gBaseStats[species].growthRate][level];
|
||||
u32 currLvlExp = gExperienceTables[gSpeciesInfo[species].growthRate][level];
|
||||
u32 expToNextLvl;
|
||||
|
||||
exp -= currLvlExp;
|
||||
expToNextLvl = gExperienceTables[gBaseStats[species].growthRate][level + 1] - currLvlExp;
|
||||
expToNextLvl = gExperienceTables[gSpeciesInfo[species].growthRate][level + 1] - currLvlExp;
|
||||
SetBattleBarStruct(battlerId, gHealthboxSpriteIds[battlerId], expToNextLvl, exp, -gainedExp);
|
||||
PlaySE(SE_EXP);
|
||||
gTasks[taskId].func = Task_GiveExpWithExpBar;
|
||||
@@ -1242,7 +1242,7 @@ static void Task_GiveExpWithExpBar(u8 taskId)
|
||||
level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL);
|
||||
currExp = GetMonData(&gPlayerParty[monId], MON_DATA_EXP);
|
||||
species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES);
|
||||
expOnNextLvl = gExperienceTables[gBaseStats[species].growthRate][level + 1];
|
||||
expOnNextLvl = gExperienceTables[gSpeciesInfo[species].growthRate][level + 1];
|
||||
|
||||
if (currExp + gainedExp >= expOnNextLvl)
|
||||
{
|
||||
@@ -1273,7 +1273,7 @@ static void Task_LaunchLvlUpAnim(u8 taskId)
|
||||
u8 battlerId = gTasks[taskId].tExpTask_battler;
|
||||
u8 monIndex = gTasks[taskId].tExpTask_monId;
|
||||
|
||||
if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[battlerId ^ BIT_FLANK])
|
||||
if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[BATTLE_PARTNER(battlerId)])
|
||||
battlerId ^= BIT_FLANK;
|
||||
|
||||
InitAndLaunchSpecialAnimation(battlerId, battlerId, battlerId, B_ANIM_LVL_UP);
|
||||
@@ -1290,8 +1290,8 @@ static void Task_UpdateLvlInHealthbox(u8 taskId)
|
||||
|
||||
GetMonData(&gPlayerParty[monIndex], MON_DATA_LEVEL); // Unused return value.
|
||||
|
||||
if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[battlerId ^ BIT_FLANK])
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battlerId ^ BIT_FLANK], &gPlayerParty[monIndex], HEALTHBOX_ALL);
|
||||
if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[BATTLE_PARTNER(battlerId)])
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(battlerId)], &gPlayerParty[monIndex], HEALTHBOX_ALL);
|
||||
else
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battlerId], &gPlayerParty[monIndex], HEALTHBOX_ALL);
|
||||
|
||||
@@ -1435,7 +1435,7 @@ static void PlayerHandleYesNoInput(void)
|
||||
}
|
||||
if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
HandleBattleWindow(0x18, 8, 0x1D, 0xD, WINDOW_CLEAR);
|
||||
HandleBattleWindow(YESNOBOX_X_Y, WINDOW_CLEAR);
|
||||
PlaySE(SE_SELECT);
|
||||
|
||||
if (gMultiUsePlayerCursor != 0)
|
||||
@@ -1447,7 +1447,7 @@ static void PlayerHandleYesNoInput(void)
|
||||
}
|
||||
if (JOY_NEW(B_BUTTON))
|
||||
{
|
||||
HandleBattleWindow(0x18, 8, 0x1D, 0xD, WINDOW_CLEAR);
|
||||
HandleBattleWindow(YESNOBOX_X_Y, WINDOW_CLEAR);
|
||||
PlaySE(SE_SELECT);
|
||||
PlayerBufferExecCompleted();
|
||||
}
|
||||
@@ -1456,7 +1456,7 @@ static void PlayerHandleYesNoInput(void)
|
||||
static void MoveSelectionDisplayMoveNames(void)
|
||||
{
|
||||
s32 i;
|
||||
struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]);
|
||||
struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct *)(&gBattleBufferA[gActiveBattler][4]);
|
||||
gNumberOfMovesToChoose = 0;
|
||||
|
||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||
@@ -1485,7 +1485,7 @@ static void MoveSelectionDisplayPpNumber(void)
|
||||
return;
|
||||
|
||||
SetPpNumbersPaletteInMoveSelection();
|
||||
moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]);
|
||||
moveInfo = (struct ChooseMoveStruct *)(&gBattleBufferA[gActiveBattler][4]);
|
||||
txtPtr = ConvertIntToDecimalStringN(gDisplayedStringBattle, moveInfo->currentPp[gMoveSelectionCursor[gActiveBattler]], STR_CONV_MODE_RIGHT_ALIGN, 2);
|
||||
*(txtPtr)++ = CHAR_SLASH;
|
||||
ConvertIntToDecimalStringN(txtPtr, moveInfo->maxPp[gMoveSelectionCursor[gActiveBattler]], STR_CONV_MODE_RIGHT_ALIGN, 2);
|
||||
@@ -1496,22 +1496,22 @@ static void MoveSelectionDisplayPpNumber(void)
|
||||
static void MoveSelectionDisplayMoveType(void)
|
||||
{
|
||||
u8 *txtPtr;
|
||||
struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]);
|
||||
struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct *)(&gBattleBufferA[gActiveBattler][4]);
|
||||
|
||||
txtPtr = StringCopy(gDisplayedStringBattle, gText_MoveInterfaceType);
|
||||
*(txtPtr)++ = EXT_CTRL_CODE_BEGIN;
|
||||
*(txtPtr)++ = EXT_CTRL_CODE_FONT;
|
||||
*(txtPtr)++ = 1;
|
||||
*(txtPtr)++ = FONT_NORMAL;
|
||||
|
||||
StringCopy(txtPtr, gTypeNames[gBattleMoves[moveInfo->moves[gMoveSelectionCursor[gActiveBattler]]].type]);
|
||||
BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MOVE_TYPE);
|
||||
}
|
||||
|
||||
static void MoveSelectionCreateCursorAt(u8 cursorPosition, u8 arg1)
|
||||
static void MoveSelectionCreateCursorAt(u8 cursorPosition, u8 baseTileNum)
|
||||
{
|
||||
u16 src[2];
|
||||
src[0] = arg1 + 1;
|
||||
src[1] = arg1 + 2;
|
||||
src[0] = baseTileNum + 1;
|
||||
src[1] = baseTileNum + 2;
|
||||
|
||||
CopyToBgTilemapBufferRect_ChangePalette(0, src, 9 * (cursorPosition & 1) + 1, 55 + (cursorPosition & 2), 1, 2, 0x11);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
@@ -1527,7 +1527,7 @@ static void MoveSelectionDestroyCursorAt(u8 cursorPosition)
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
}
|
||||
|
||||
void ActionSelectionCreateCursorAt(u8 cursorPosition, u8 arg1)
|
||||
void ActionSelectionCreateCursorAt(u8 cursorPosition, u8 baseTileNum)
|
||||
{
|
||||
u16 src[2];
|
||||
src[0] = 1;
|
||||
@@ -1672,7 +1672,7 @@ static u32 CopyPlayerMonData(u8 monId, u8 *dst)
|
||||
moveData.pp[size] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + size);
|
||||
}
|
||||
moveData.ppBonuses = GetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES);
|
||||
src = (u8*)(&moveData);
|
||||
src = (u8 *)(&moveData);
|
||||
for (size = 0; size < sizeof(moveData); size++)
|
||||
dst[size] = src[size];
|
||||
break;
|
||||
@@ -2546,7 +2546,7 @@ static void PlayerHandlePrintString(void)
|
||||
|
||||
gBattle_BG0_X = 0;
|
||||
gBattle_BG0_Y = 0;
|
||||
stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]);
|
||||
stringId = (u16 *)(&gBattleBufferA[gActiveBattler][2]);
|
||||
BufferStringBattle(*stringId);
|
||||
BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG);
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter2;
|
||||
@@ -2592,7 +2592,7 @@ static void PlayerHandleYesNoBox(void)
|
||||
{
|
||||
if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
|
||||
{
|
||||
HandleBattleWindow(0x18, 8, 0x1D, 0xD, 0);
|
||||
HandleBattleWindow(YESNOBOX_X_Y, 0);
|
||||
BattlePutTextOnWindow(gText_BattleYesNoChoice, B_WIN_YESNO);
|
||||
gMultiUsePlayerCursor = 1;
|
||||
BattleCreateYesNoCursorAt(1);
|
||||
@@ -2797,7 +2797,7 @@ static void PlayerHandleDMA3Transfer(void)
|
||||
u16 sizeArg = gBattleBufferA[gActiveBattler][5] | (gBattleBufferA[gActiveBattler][6] << 8);
|
||||
|
||||
const u8 *src = &gBattleBufferA[gActiveBattler][7];
|
||||
u8 *dst = (u8*)(dstArg);
|
||||
u8 *dst = (u8 *)(dstArg);
|
||||
u32 size = sizeArg;
|
||||
|
||||
while (1)
|
||||
@@ -2960,7 +2960,7 @@ static void PlayerHandleIntroTrainerBallThrow(void)
|
||||
StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1);
|
||||
|
||||
paletteNum = AllocSpritePalette(0xD6F8);
|
||||
LoadCompressedPalette(gTrainerBackPicPaletteTable[gSaveBlock2Ptr->playerGender].data, 0x100 + paletteNum * 16, 32);
|
||||
LoadCompressedPalette(gTrainerBackPicPaletteTable[gSaveBlock2Ptr->playerGender].data, OBJ_PLTT_ID(paletteNum), PLTT_SIZE_4BPP);
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum;
|
||||
|
||||
taskId = CreateTask(Task_StartSendOutAnim, 5);
|
||||
|
||||
@@ -229,7 +229,7 @@ static void Intro_WaitForHealthbox(void)
|
||||
else
|
||||
{
|
||||
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
|
||||
&& gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy)
|
||||
{
|
||||
finished = TRUE;
|
||||
}
|
||||
@@ -248,7 +248,7 @@ static void Intro_WaitForHealthbox(void)
|
||||
static void Intro_ShowHealthbox(void)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive
|
||||
&& gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||
&& ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay != 1)
|
||||
@@ -257,10 +257,10 @@ static void Intro_ShowHealthbox(void)
|
||||
|
||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||
{
|
||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
|
||||
DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]]);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(BATTLE_PARTNER(gActiveBattler));
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]);
|
||||
}
|
||||
|
||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
|
||||
@@ -321,7 +321,7 @@ static void Task_GiveExpToMon(u8 taskId)
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
u8 level = GetMonData(mon, MON_DATA_LEVEL);
|
||||
u32 currExp = GetMonData(mon, MON_DATA_EXP);
|
||||
u32 nextLvlExp = gExperienceTables[gBaseStats[species].growthRate][level + 1];
|
||||
u32 nextLvlExp = gExperienceTables[gSpeciesInfo[species].growthRate][level + 1];
|
||||
|
||||
if (currExp + gainedExp >= nextLvlExp)
|
||||
{
|
||||
@@ -336,7 +336,7 @@ static void Task_GiveExpToMon(u8 taskId)
|
||||
gActiveBattler = savedActiveBank;
|
||||
|
||||
if (IsDoubleBattle() == TRUE
|
||||
&& ((u16)(monId) == gBattlerPartyIndexes[battlerId] || (u16)(monId) == gBattlerPartyIndexes[battlerId ^ BIT_FLANK]))
|
||||
&& ((u16)(monId) == gBattlerPartyIndexes[battlerId] || (u16)(monId) == gBattlerPartyIndexes[BATTLE_PARTNER(battlerId)]))
|
||||
gTasks[taskId].func = Task_LaunchLvlUpAnim;
|
||||
else
|
||||
gTasks[taskId].func = DestroyExpTaskAndCompleteOnInactiveTextPrinter;
|
||||
@@ -364,11 +364,11 @@ static void Task_PrepareToGiveExpWithExpBar(u8 taskId)
|
||||
u8 level = GetMonData(mon, MON_DATA_LEVEL);
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
u32 exp = GetMonData(mon, MON_DATA_EXP);
|
||||
u32 currLvlExp = gExperienceTables[gBaseStats[species].growthRate][level];
|
||||
u32 currLvlExp = gExperienceTables[gSpeciesInfo[species].growthRate][level];
|
||||
u32 expToNextLvl;
|
||||
|
||||
exp -= currLvlExp;
|
||||
expToNextLvl = gExperienceTables[gBaseStats[species].growthRate][level + 1] - currLvlExp;
|
||||
expToNextLvl = gExperienceTables[gSpeciesInfo[species].growthRate][level + 1] - currLvlExp;
|
||||
SetBattleBarStruct(battlerId, gHealthboxSpriteIds[battlerId], expToNextLvl, exp, -gainedExp);
|
||||
PlaySE(SE_EXP);
|
||||
gTasks[taskId].func = Task_GiveExpWithExpBar;
|
||||
@@ -400,7 +400,7 @@ static void Task_GiveExpWithExpBar(u8 taskId)
|
||||
level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL);
|
||||
currExp = GetMonData(&gPlayerParty[monId], MON_DATA_EXP);
|
||||
species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES);
|
||||
expOnNextLvl = gExperienceTables[gBaseStats[species].growthRate][level + 1];
|
||||
expOnNextLvl = gExperienceTables[gSpeciesInfo[species].growthRate][level + 1];
|
||||
|
||||
if (currExp + gainedExp >= expOnNextLvl)
|
||||
{
|
||||
@@ -431,7 +431,7 @@ static void Task_LaunchLvlUpAnim(u8 taskId)
|
||||
u8 battlerId = gTasks[taskId].tExpTask_bank;
|
||||
u8 monIndex = gTasks[taskId].tExpTask_monId;
|
||||
|
||||
if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[battlerId ^ BIT_FLANK])
|
||||
if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[BATTLE_PARTNER(battlerId)])
|
||||
battlerId ^= BIT_FLANK;
|
||||
|
||||
InitAndLaunchSpecialAnimation(battlerId, battlerId, battlerId, B_ANIM_LVL_UP);
|
||||
@@ -448,8 +448,8 @@ static void Task_UpdateLvlInHealthbox(u8 taskId)
|
||||
|
||||
GetMonData(&gPlayerParty[monIndex], MON_DATA_LEVEL); // Unused return value
|
||||
|
||||
if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[battlerId ^ BIT_FLANK])
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battlerId ^ BIT_FLANK], &gPlayerParty[monIndex], HEALTHBOX_ALL);
|
||||
if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[BATTLE_PARTNER(battlerId)])
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(battlerId)], &gPlayerParty[monIndex], HEALTHBOX_ALL);
|
||||
else
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[battlerId], &gPlayerParty[monIndex], HEALTHBOX_ALL);
|
||||
|
||||
@@ -698,7 +698,7 @@ static u32 CopyPlayerPartnerMonData(u8 monId, u8 *dst)
|
||||
moveData.pp[size] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + size);
|
||||
}
|
||||
moveData.ppBonuses = GetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES);
|
||||
src = (u8*)(&moveData);
|
||||
src = (u8 *)(&moveData);
|
||||
for (size = 0; size < sizeof(moveData); size++)
|
||||
dst[size] = src[size];
|
||||
break;
|
||||
@@ -1488,7 +1488,7 @@ static void PlayerPartnerHandlePrintString(void)
|
||||
|
||||
gBattle_BG0_X = 0;
|
||||
gBattle_BG0_Y = 0;
|
||||
stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]);
|
||||
stringId = (u16 *)(&gBattleBufferA[gActiveBattler][2]);
|
||||
BufferStringBattle(*stringId);
|
||||
BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG);
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter2;
|
||||
@@ -1513,7 +1513,7 @@ static void PlayerPartnerHandleYesNoBox(void)
|
||||
static void PlayerPartnerHandleChooseMove(void)
|
||||
{
|
||||
u8 chosenMoveId;
|
||||
struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]);
|
||||
struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct *)(&gBattleBufferA[gActiveBattler][4]);
|
||||
|
||||
BattleAI_SetupAIData(0xF);
|
||||
chosenMoveId = BattleAI_ChooseMoveOrAction();
|
||||
@@ -1540,12 +1540,12 @@ static void PlayerPartnerHandleChoosePokemon(void)
|
||||
{
|
||||
s32 chosenMonId = GetMostSuitableMonToSwitchInto();
|
||||
|
||||
if (chosenMonId == 6) // just switch to the next mon
|
||||
if (chosenMonId == PARTY_SIZE) // just switch to the next mon
|
||||
{
|
||||
u8 playerMonIdentity = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
|
||||
u8 selfIdentity = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
|
||||
|
||||
for (chosenMonId = 3; chosenMonId < 6; chosenMonId++)
|
||||
for (chosenMonId = PARTY_SIZE / 2; chosenMonId < PARTY_SIZE; chosenMonId++)
|
||||
{
|
||||
if (GetMonData(&gPlayerParty[chosenMonId], MON_DATA_HP) != 0
|
||||
&& chosenMonId != gBattlerPartyIndexes[playerMonIdentity]
|
||||
@@ -1794,12 +1794,12 @@ static void PlayerPartnerHandleIntroTrainerBallThrow(void)
|
||||
if (gPartnerTrainerId == TRAINER_STEVEN_PARTNER)
|
||||
{
|
||||
u8 spriteId = TRAINER_BACK_PIC_STEVEN;
|
||||
LoadCompressedPalette(gTrainerBackPicPaletteTable[spriteId].data, 0x100 + paletteNum * 16, 32);
|
||||
LoadCompressedPalette(gTrainerBackPicPaletteTable[spriteId].data, OBJ_PLTT_ID(paletteNum), PLTT_SIZE_4BPP);
|
||||
}
|
||||
else
|
||||
{
|
||||
u8 spriteId = GetFrontierTrainerFrontSpriteId(gPartnerTrainerId);
|
||||
LoadCompressedPalette(gTrainerFrontPicPaletteTable[spriteId].data, 0x100 + paletteNum * 16, 32);
|
||||
LoadCompressedPalette(gTrainerFrontPicPaletteTable[spriteId].data, OBJ_PLTT_ID(paletteNum), PLTT_SIZE_4BPP);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -226,9 +226,9 @@ static void Intro_WaitForShinyAnimAndHealthbox(void)
|
||||
else
|
||||
{
|
||||
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded
|
||||
&& gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].animEnded)
|
||||
&& gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gActiveBattler)]].animEnded)
|
||||
healthboxAnimDone = TRUE;
|
||||
}
|
||||
|
||||
@@ -238,13 +238,13 @@ static void Intro_WaitForShinyAnimAndHealthbox(void)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim)
|
||||
return;
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim)
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim)
|
||||
return;
|
||||
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim = FALSE;
|
||||
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||
}
|
||||
@@ -263,19 +263,19 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
|
||||
TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
|
||||
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
|
||||
TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive)
|
||||
TryShinyAnimation(BATTLE_PARTNER(gActiveBattler), &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]]);
|
||||
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted)
|
||||
{
|
||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||
{
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(BATTLE_PARTNER(gActiveBattler));
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]);
|
||||
}
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(gActiveBattler);
|
||||
@@ -286,7 +286,7 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
||||
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].waitForCry
|
||||
&& gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].waitForCry
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].waitForCry
|
||||
&& !IsCryPlayingOrClearCrySongs())
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored)
|
||||
@@ -317,8 +317,8 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
||||
{
|
||||
if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
|
||||
&& gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy)
|
||||
{
|
||||
battlerAnimsDone = TRUE;
|
||||
}
|
||||
@@ -328,8 +328,8 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
||||
{
|
||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||
{
|
||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]);
|
||||
SetBattlerShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES));
|
||||
DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]]);
|
||||
SetBattlerShadowSpriteCallback(BATTLE_PARTNER(gActiveBattler), GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], MON_DATA_SPECIES));
|
||||
}
|
||||
|
||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
|
||||
@@ -373,13 +373,9 @@ static void CompleteOnHealthbarDone(void)
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
|
||||
|
||||
if (hpValue != -1)
|
||||
{
|
||||
UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT);
|
||||
}
|
||||
else
|
||||
{
|
||||
RecordedOpponentBufferExecCompleted();
|
||||
}
|
||||
}
|
||||
|
||||
static void HideHealthboxAfterMonFaint(void)
|
||||
@@ -610,7 +606,7 @@ static u32 CopyRecordedOpponentMonData(u8 monId, u8 *dst)
|
||||
moveData.pp[size] = GetMonData(&gEnemyParty[monId], MON_DATA_PP1 + size);
|
||||
}
|
||||
moveData.ppBonuses = GetMonData(&gEnemyParty[monId], MON_DATA_PP_BONUSES);
|
||||
src = (u8*)(&moveData);
|
||||
src = (u8 *)(&moveData);
|
||||
for (size = 0; size < sizeof(moveData); size++)
|
||||
dst[size] = src[size];
|
||||
break;
|
||||
@@ -1393,7 +1389,7 @@ static void RecordedOpponentHandlePrintString(void)
|
||||
|
||||
gBattle_BG0_X = 0;
|
||||
gBattle_BG0_Y = 0;
|
||||
stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]);
|
||||
stringId = (u16 *)(&gBattleBufferA[gActiveBattler][2]);
|
||||
BufferStringBattle(*stringId);
|
||||
BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG);
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
|
||||
@@ -1698,14 +1694,14 @@ static void RecordedOpponentHandleDrawPartyStatusSummary(void)
|
||||
|
||||
if (gBattleBufferA[gActiveBattler][2] != 0)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E < 2)
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay < 2)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E++;
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay++;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E = 0;
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -215,27 +215,27 @@ static void Intro_WaitForShinyAnimAndHealthbox(void)
|
||||
else
|
||||
{
|
||||
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
|
||||
&& gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy)
|
||||
{
|
||||
healthboxAnimDone = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
if (healthboxAnimDone && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim
|
||||
&& gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim)
|
||||
&& gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
|
||||
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim = FALSE;
|
||||
|
||||
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
|
||||
if (IsDoubleBattle())
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], gActiveBattler ^ BIT_FLANK);
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], BATTLE_PARTNER(gActiveBattler));
|
||||
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 3;
|
||||
gBattlerControllerFuncs[gActiveBattler] = Intro_DelayAndEnd;
|
||||
@@ -251,7 +251,7 @@ static void Intro_WaitForShinyAnimAndHealthbox(void)
|
||||
else
|
||||
{
|
||||
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
|
||||
&& gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy)
|
||||
{
|
||||
healthboxAnimDone = TRUE;
|
||||
}
|
||||
@@ -278,21 +278,21 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
|
||||
TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
|
||||
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
|
||||
TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive)
|
||||
TryShinyAnimation(BATTLE_PARTNER(gActiveBattler), &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]]);
|
||||
}
|
||||
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted)
|
||||
{
|
||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||
{
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(BATTLE_PARTNER(gActiveBattler));
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]);
|
||||
}
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(gActiveBattler);
|
||||
@@ -303,7 +303,7 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
||||
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].waitForCry
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].waitForCry
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].waitForCry
|
||||
&& !IsCryPlayingOrClearCrySongs())
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored)
|
||||
@@ -327,7 +327,7 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
||||
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
|
||||
{
|
||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]);
|
||||
DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]]);
|
||||
|
||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
|
||||
gBattleSpritesDataPtr->animationData->introAnimActive = FALSE;
|
||||
@@ -589,7 +589,7 @@ static u32 CopyRecordedPlayerMonData(u8 monId, u8 *dst)
|
||||
moveData.pp[size] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + size);
|
||||
}
|
||||
moveData.ppBonuses = GetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES);
|
||||
src = (u8*)(&moveData);
|
||||
src = (u8 *)(&moveData);
|
||||
for (size = 0; size < sizeof(moveData); size++)
|
||||
dst[size] = src[size];
|
||||
break;
|
||||
@@ -1399,7 +1399,7 @@ static void RecordedPlayerHandlePrintString(void)
|
||||
|
||||
gBattle_BG0_X = 0;
|
||||
gBattle_BG0_Y = 0;
|
||||
stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]);
|
||||
stringId = (u16 *)(&gBattleBufferA[gActiveBattler][2]);
|
||||
BufferStringBattle(*stringId);
|
||||
BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG);
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
|
||||
@@ -1678,7 +1678,7 @@ static void RecordedPlayerHandleIntroTrainerBallThrow(void)
|
||||
else
|
||||
trainerPicId = gSaveBlock2Ptr->playerGender;
|
||||
|
||||
LoadCompressedPalette(gTrainerBackPicPaletteTable[trainerPicId].data, 0x100 + paletteNum * 16, 32);
|
||||
LoadCompressedPalette(gTrainerBackPicPaletteTable[trainerPicId].data, OBJ_PLTT_ID(paletteNum), PLTT_SIZE_4BPP);
|
||||
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum;
|
||||
|
||||
|
||||
@@ -422,7 +422,7 @@ static void SafariHandlePrintString(void)
|
||||
|
||||
gBattle_BG0_X = 0;
|
||||
gBattle_BG0_Y = 0;
|
||||
stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]);
|
||||
stringId = (u16 *)(&gBattleBufferA[gActiveBattler][2]);
|
||||
BufferStringBattle(*stringId);
|
||||
BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG);
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
|
||||
|
||||
@@ -289,21 +289,21 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
|
||||
TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
|
||||
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
|
||||
TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive)
|
||||
TryShinyAnimation(BATTLE_PARTNER(gActiveBattler), &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]]);
|
||||
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive
|
||||
&& gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy
|
||||
&& gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
|
||||
{
|
||||
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
|
||||
{
|
||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
|
||||
DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]]);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL);
|
||||
StartHealthboxSlideIn(BATTLE_PARTNER(gActiveBattler));
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]);
|
||||
}
|
||||
DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
|
||||
@@ -324,13 +324,13 @@ static void Intro_WaitForShinyAnimAndHealthbox(void)
|
||||
healthboxAnimDone = TRUE;
|
||||
|
||||
if (healthboxAnimDone && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim
|
||||
&& gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim)
|
||||
&& gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
|
||||
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim = FALSE;
|
||||
gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim = FALSE;
|
||||
|
||||
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||
@@ -516,7 +516,7 @@ static u32 CopyWallyMonData(u8 monId, u8 *dst)
|
||||
moveData.pp[size] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + size);
|
||||
}
|
||||
moveData.ppBonuses = GetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES);
|
||||
src = (u8*)(&moveData);
|
||||
src = (u8 *)(&moveData);
|
||||
for (size = 0; size < sizeof(moveData); size++)
|
||||
dst[size] = src[size];
|
||||
break;
|
||||
@@ -1176,7 +1176,7 @@ static void WallyHandlePrintString(void)
|
||||
|
||||
gBattle_BG0_X = 0;
|
||||
gBattle_BG0_Y = 0;
|
||||
stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]);
|
||||
stringId = (u16 *)(&gBattleBufferA[gActiveBattler][2]);
|
||||
BufferStringBattle(*stringId);
|
||||
BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG);
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
|
||||
@@ -1445,7 +1445,7 @@ static void WallyHandleIntroTrainerBallThrow(void)
|
||||
StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1);
|
||||
|
||||
paletteNum = AllocSpritePalette(0xD6F8);
|
||||
LoadCompressedPalette(gTrainerBackPicPaletteTable[TRAINER_BACK_PIC_WALLY].data, 0x100 + paletteNum * 16, 32);
|
||||
LoadCompressedPalette(gTrainerBackPicPaletteTable[TRAINER_BACK_PIC_WALLY].data, OBJ_PLTT_ID(paletteNum), PLTT_SIZE_4BPP);
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum;
|
||||
|
||||
taskId = CreateTask(Task_StartSendOutAnim, 5);
|
||||
|
||||
+64
-59
@@ -8,7 +8,6 @@
|
||||
#include "link.h"
|
||||
#include "link_rfu.h"
|
||||
#include "party_menu.h"
|
||||
#include "pokemon.h"
|
||||
#include "recorded_battle.h"
|
||||
#include "task.h"
|
||||
#include "util.h"
|
||||
@@ -99,10 +98,10 @@ void InitBattleControllers(void)
|
||||
}
|
||||
|
||||
for (i = 0; i < sizeof(gBattleStruct->tvMovePoints); i++)
|
||||
*((u8*)(&gBattleStruct->tvMovePoints) + i) = 0;
|
||||
*((u8 *)(&gBattleStruct->tvMovePoints) + i) = 0;
|
||||
|
||||
for (i = 0; i < sizeof(gBattleStruct->tv); i++)
|
||||
*((u8*)(&gBattleStruct->tv) + i) = 0;
|
||||
*((u8 *)(&gBattleStruct->tv) + i) = 0;
|
||||
}
|
||||
|
||||
static void InitSinglePlayerBtlControllers(void)
|
||||
@@ -595,7 +594,7 @@ static void SetBattlePartyIds(void)
|
||||
if (GetMonData(&gPlayerParty[j], MON_DATA_HP) != 0
|
||||
&& GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_NONE
|
||||
&& GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
|
||||
&& GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG) == 0)
|
||||
&& !GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG))
|
||||
{
|
||||
gBattlerPartyIndexes[i] = j;
|
||||
break;
|
||||
@@ -606,7 +605,7 @@ static void SetBattlePartyIds(void)
|
||||
if (GetMonData(&gEnemyParty[j], MON_DATA_HP) != 0
|
||||
&& GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_NONE
|
||||
&& GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
|
||||
&& GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG) == 0)
|
||||
&& !GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG))
|
||||
{
|
||||
gBattlerPartyIndexes[i] = j;
|
||||
break;
|
||||
@@ -620,7 +619,7 @@ static void SetBattlePartyIds(void)
|
||||
if (GetMonData(&gPlayerParty[j], MON_DATA_HP) != 0
|
||||
&& GetMonData(&gPlayerParty[j], MON_DATA_SPECIES) != SPECIES_NONE // Probably a typo by Game Freak. The rest use SPECIES2.
|
||||
&& GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
|
||||
&& GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG) == 0
|
||||
&& !GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG)
|
||||
&& gBattlerPartyIndexes[i - 2] != j)
|
||||
{
|
||||
gBattlerPartyIndexes[i] = j;
|
||||
@@ -632,7 +631,7 @@ static void SetBattlePartyIds(void)
|
||||
if (GetMonData(&gEnemyParty[j], MON_DATA_HP) != 0
|
||||
&& GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_NONE
|
||||
&& GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
|
||||
&& GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG) == 0
|
||||
&& !GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG)
|
||||
&& gBattlerPartyIndexes[i - 2] != j)
|
||||
{
|
||||
gBattlerPartyIndexes[i] = j;
|
||||
@@ -661,18 +660,12 @@ static void PrepareBufferDataTransfer(u8 bufferId, u8 *data, u16 size)
|
||||
switch (bufferId)
|
||||
{
|
||||
case BUFFER_A:
|
||||
for (i = 0; i < size; i++)
|
||||
{
|
||||
for (i = 0; i < size; data++, i++)
|
||||
gBattleBufferA[gActiveBattler][i] = *data;
|
||||
data++;
|
||||
}
|
||||
break;
|
||||
case BUFFER_B:
|
||||
for (i = 0; i < size; i++)
|
||||
{
|
||||
for (i = 0; i < size; data++, i++)
|
||||
gBattleBufferB[gActiveBattler][i] = *data;
|
||||
data++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -809,8 +802,7 @@ static void Task_HandleSendLinkBuffersData(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
gTasks[taskId].data[13]--;
|
||||
if (gTasks[taskId].data[13] == 0)
|
||||
if (--gTasks[taskId].data[13] == 0)
|
||||
{
|
||||
gTasks[taskId].data[13] = 1;
|
||||
gTasks[taskId].data[11] = 3;
|
||||
@@ -825,7 +817,7 @@ void TryReceiveLinkBattleData(void)
|
||||
s32 j;
|
||||
u8 *recvBuffer;
|
||||
|
||||
if (gReceivedRemoteLinkPlayers != 0 && (gBattleTypeFlags & BATTLE_TYPE_LINK_IN_BATTLE))
|
||||
if (gReceivedRemoteLinkPlayers && (gBattleTypeFlags & BATTLE_TYPE_LINK_IN_BATTLE))
|
||||
{
|
||||
DestroyTask_RfuIdle();
|
||||
for (i = 0; i < GetLinkPlayerCount(); i++)
|
||||
@@ -913,7 +905,8 @@ void BtlController_EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck)
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void BtlController_EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes)
|
||||
// Unused
|
||||
static void BtlController_EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes)
|
||||
{
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_GETRAWMONDATA;
|
||||
sBattleBuffersTransferData[1] = monId;
|
||||
@@ -930,11 +923,12 @@ void BtlController_EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 b
|
||||
sBattleBuffersTransferData[1] = requestId;
|
||||
sBattleBuffersTransferData[2] = monToCheck;
|
||||
for (i = 0; i < bytes; i++)
|
||||
sBattleBuffersTransferData[3 + i] = *(u8*)(data++);
|
||||
sBattleBuffersTransferData[3 + i] = *(u8 *)(data++);
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 3 + bytes);
|
||||
}
|
||||
|
||||
void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data)
|
||||
// Unused
|
||||
static void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
@@ -942,7 +936,7 @@ void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data
|
||||
sBattleBuffersTransferData[1] = monId;
|
||||
sBattleBuffersTransferData[2] = bytes;
|
||||
for (i = 0; i < bytes; i++)
|
||||
sBattleBuffersTransferData[3 + i] = *(u8*)(data++);
|
||||
sBattleBuffersTransferData[3 + i] = *(u8 *)(data++);
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, bytes + 3);
|
||||
}
|
||||
|
||||
@@ -1007,7 +1001,8 @@ void BtlController_EmitFaintAnimation(u8 bufferId)
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void BtlController_EmitPaletteFade(u8 bufferId)
|
||||
// Unused
|
||||
static void BtlController_EmitPaletteFade(u8 bufferId)
|
||||
{
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_PALETTEFADE;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_PALETTEFADE;
|
||||
@@ -1016,7 +1011,8 @@ void BtlController_EmitPaletteFade(u8 bufferId)
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void BtlController_EmitSuccessBallThrowAnim(u8 bufferId)
|
||||
// Unused
|
||||
static void BtlController_EmitSuccessBallThrowAnim(u8 bufferId)
|
||||
{
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_SUCCESSBALLTHROWANIM;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_SUCCESSBALLTHROWANIM;
|
||||
@@ -1032,14 +1028,15 @@ void BtlController_EmitBallThrowAnim(u8 bufferId, u8 caseId)
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
|
||||
}
|
||||
|
||||
void BtlController_EmitPause(u8 bufferId, u8 toWait, void *data)
|
||||
// Unused
|
||||
static void BtlController_EmitPause(u8 bufferId, u8 toWait, void *data)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_PAUSE;
|
||||
sBattleBuffersTransferData[1] = toWait;
|
||||
for (i = 0; i < toWait * 3; i++)
|
||||
sBattleBuffersTransferData[2 + i] = *(u8*)(data++);
|
||||
sBattleBuffersTransferData[2 + i] = *(u8 *)(data++);
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, toWait * 3 + 2);
|
||||
}
|
||||
|
||||
@@ -1076,20 +1073,20 @@ void BtlController_EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 m
|
||||
void BtlController_EmitPrintString(u8 bufferId, u16 stringID)
|
||||
{
|
||||
s32 i;
|
||||
struct BattleMsgData* stringInfo;
|
||||
struct BattleMsgData *stringInfo;
|
||||
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRING;
|
||||
sBattleBuffersTransferData[1] = gBattleOutcome;
|
||||
sBattleBuffersTransferData[2] = stringID;
|
||||
sBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8;
|
||||
|
||||
stringInfo = (struct BattleMsgData*)(&sBattleBuffersTransferData[4]);
|
||||
stringInfo = (struct BattleMsgData *)(&sBattleBuffersTransferData[4]);
|
||||
stringInfo->currentMove = gCurrentMove;
|
||||
stringInfo->originallyUsedMove = gChosenMove;
|
||||
stringInfo->lastItem = gLastUsedItem;
|
||||
stringInfo->lastAbility = gLastUsedAbility;
|
||||
stringInfo->scrActive = gBattleScripting.battler;
|
||||
stringInfo->unk1605E = gBattleStruct->field_52;
|
||||
stringInfo->bakScriptPartyIdx = gBattleStruct->scriptPartyIdx;
|
||||
stringInfo->hpScale = gBattleStruct->hpScale;
|
||||
stringInfo->itemEffectBattler = gPotentialItemEffectBattler;
|
||||
stringInfo->moveType = gBattleMoves[gCurrentMove].type;
|
||||
@@ -1115,13 +1112,13 @@ void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringID)
|
||||
sBattleBuffersTransferData[2] = stringID;
|
||||
sBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8;
|
||||
|
||||
stringInfo = (struct BattleMsgData*)(&sBattleBuffersTransferData[4]);
|
||||
stringInfo = (struct BattleMsgData *)(&sBattleBuffersTransferData[4]);
|
||||
stringInfo->currentMove = gCurrentMove;
|
||||
stringInfo->originallyUsedMove = gChosenMove;
|
||||
stringInfo->lastItem = gLastUsedItem;
|
||||
stringInfo->lastAbility = gLastUsedAbility;
|
||||
stringInfo->scrActive = gBattleScripting.battler;
|
||||
stringInfo->unk1605E = gBattleStruct->field_52;
|
||||
stringInfo->bakScriptPartyIdx = gBattleStruct->scriptPartyIdx;
|
||||
|
||||
for (i = 0; i < MAX_BATTLERS_COUNT; i++)
|
||||
stringInfo->abilities[i] = gBattleMons[i].ability;
|
||||
@@ -1164,17 +1161,17 @@ void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpN
|
||||
sBattleBuffersTransferData[2] = NoPpNumber;
|
||||
sBattleBuffersTransferData[3] = 0;
|
||||
for (i = 0; i < sizeof(*movePpData); i++)
|
||||
sBattleBuffersTransferData[4 + i] = *((u8*)(movePpData) + i);
|
||||
sBattleBuffersTransferData[4 + i] = *((u8 *)(movePpData) + i);
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(*movePpData) + 4);
|
||||
}
|
||||
|
||||
void BtlController_EmitChooseItem(u8 bufferId, u8 *arg1)
|
||||
void BtlController_EmitChooseItem(u8 bufferId, u8 *battlePartyOrder)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_OPENBAG;
|
||||
for (i = 0; i < 3; i++)
|
||||
sBattleBuffersTransferData[1 + i] = arg1[i];
|
||||
for (i = 0; i < PARTY_SIZE / 2; i++)
|
||||
sBattleBuffersTransferData[1 + i] = battlePartyOrder[i];
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
@@ -1191,7 +1188,8 @@ void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 slotId, u8 abili
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 8); // Only 7 bytes were written.
|
||||
}
|
||||
|
||||
void BtlController_EmitCmd23(u8 bufferId)
|
||||
// Unused
|
||||
static void BtlController_EmitCmd23(u8 bufferId)
|
||||
{
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_23;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_23;
|
||||
@@ -1245,7 +1243,8 @@ void BtlController_EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status)
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 6);
|
||||
}
|
||||
|
||||
void BtlController_EmitStatusXor(u8 bufferId, u8 b)
|
||||
// Unused
|
||||
static void BtlController_EmitStatusXor(u8 bufferId, u8 b)
|
||||
{
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_STATUSXOR;
|
||||
sBattleBuffersTransferData[1] = b;
|
||||
@@ -1261,11 +1260,12 @@ void BtlController_EmitDataTransfer(u8 bufferId, u16 size, void *data)
|
||||
sBattleBuffersTransferData[2] = size;
|
||||
sBattleBuffersTransferData[3] = (size & 0xFF00) >> 8;
|
||||
for (i = 0; i < size; i++)
|
||||
sBattleBuffersTransferData[4 + i] = *(u8*)(data++);
|
||||
sBattleBuffersTransferData[4 + i] = *(u8 *)(data++);
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 4);
|
||||
}
|
||||
|
||||
void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data)
|
||||
// Unused
|
||||
static void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
@@ -1277,12 +1277,12 @@ void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data
|
||||
sBattleBuffersTransferData[5] = size;
|
||||
sBattleBuffersTransferData[6] = (size & 0xFF00) >> 8;
|
||||
for (i = 0; i < size; i++)
|
||||
sBattleBuffersTransferData[7 + i] = *(u8*)(data++);
|
||||
sBattleBuffersTransferData[7 + i] = *(u8 *)(data++);
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 7);
|
||||
}
|
||||
|
||||
// Unused
|
||||
void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *data)
|
||||
static void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *data)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
@@ -1293,11 +1293,12 @@ void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *data)
|
||||
// Nonsense loop using songId as a size
|
||||
// Would go out of bounds for any song id after SE_RG_BAG_POCKET (253)
|
||||
for (i = 0; i < songId; i++)
|
||||
sBattleBuffersTransferData[3 + i] = *(u8*)(data++);
|
||||
sBattleBuffersTransferData[3 + i] = *(u8 *)(data++);
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, songId + 3);
|
||||
}
|
||||
|
||||
void BtlController_EmitCmd32(u8 bufferId, u16 size, void *data)
|
||||
// Unused
|
||||
static void BtlController_EmitCmd32(u8 bufferId, u16 size, void *data)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
@@ -1305,16 +1306,16 @@ void BtlController_EmitCmd32(u8 bufferId, u16 size, void *data)
|
||||
sBattleBuffersTransferData[1] = size;
|
||||
sBattleBuffersTransferData[2] = (size & 0xFF00) >> 8;
|
||||
for (i = 0; i < size; i++)
|
||||
sBattleBuffersTransferData[3 + i] = *(u8*)(data++);
|
||||
sBattleBuffersTransferData[3 + i] = *(u8 *)(data++);
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 3);
|
||||
}
|
||||
|
||||
void BtlController_EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2)
|
||||
void BtlController_EmitTwoReturnValues(u8 bufferId, u8 ret8, u16 ret16)
|
||||
{
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_TWORETURNVALUES;
|
||||
sBattleBuffersTransferData[1] = arg1;
|
||||
sBattleBuffersTransferData[2] = arg2;
|
||||
sBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8;
|
||||
sBattleBuffersTransferData[1] = ret8;
|
||||
sBattleBuffersTransferData[2] = ret16;
|
||||
sBattleBuffersTransferData[3] = (ret16 & 0xFF00) >> 8;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
@@ -1329,25 +1330,26 @@ void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 partyId, u8 *battleP
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 5);
|
||||
}
|
||||
|
||||
void BtlController_EmitOneReturnValue(u8 bufferId, u16 arg1)
|
||||
void BtlController_EmitOneReturnValue(u8 bufferId, u16 ret)
|
||||
{
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE;
|
||||
sBattleBuffersTransferData[1] = arg1;
|
||||
sBattleBuffersTransferData[2] = (arg1 & 0xFF00) >> 8;
|
||||
sBattleBuffersTransferData[1] = ret;
|
||||
sBattleBuffersTransferData[2] = (ret & 0xFF00) >> 8;
|
||||
sBattleBuffersTransferData[3] = 0;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 b)
|
||||
void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 ret)
|
||||
{
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE_DUPLICATE;
|
||||
sBattleBuffersTransferData[1] = b;
|
||||
sBattleBuffersTransferData[2] = (b & 0xFF00) >> 8;
|
||||
sBattleBuffersTransferData[1] = ret;
|
||||
sBattleBuffersTransferData[2] = (ret & 0xFF00) >> 8;
|
||||
sBattleBuffersTransferData[3] = 0;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void BtlController_EmitClearUnkVar(u8 bufferId)
|
||||
// Unused
|
||||
static void BtlController_EmitClearUnkVar(u8 bufferId)
|
||||
{
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_CLEARUNKVAR;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_CLEARUNKVAR;
|
||||
@@ -1356,14 +1358,16 @@ void BtlController_EmitClearUnkVar(u8 bufferId)
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void BtlController_EmitSetUnkVar(u8 bufferId, u8 b)
|
||||
// Unused
|
||||
static void BtlController_EmitSetUnkVar(u8 bufferId, u8 b)
|
||||
{
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_SETUNKVAR;
|
||||
sBattleBuffersTransferData[1] = b;
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2);
|
||||
}
|
||||
|
||||
void BtlController_EmitClearUnkFlag(u8 bufferId)
|
||||
// Unused
|
||||
static void BtlController_EmitClearUnkFlag(u8 bufferId)
|
||||
{
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_CLEARUNKFLAG;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_CLEARUNKFLAG;
|
||||
@@ -1372,7 +1376,8 @@ void BtlController_EmitClearUnkFlag(u8 bufferId)
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void BtlController_EmitToggleUnkFlag(u8 bufferId)
|
||||
// Unused
|
||||
static void BtlController_EmitToggleUnkFlag(u8 bufferId)
|
||||
{
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_TOGGLEUNKFLAG;
|
||||
sBattleBuffersTransferData[1] = CONTROLLER_TOGGLEUNKFLAG;
|
||||
@@ -1451,7 +1456,7 @@ void BtlController_EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* h
|
||||
sBattleBuffersTransferData[2] = (flags & PARTY_SUMM_SKIP_DRAW_DELAY) >> 7; // If true, skip delay after drawing. True during intro
|
||||
sBattleBuffersTransferData[3] = CONTROLLER_DRAWPARTYSTATUSSUMMARY;
|
||||
for (i = 0; i < (s32)(sizeof(struct HpAndStatus) * PARTY_SIZE); i++)
|
||||
sBattleBuffersTransferData[4 + i] = *(i + (u8*)(hpAndStatus));
|
||||
sBattleBuffersTransferData[4 + i] = *(i + (u8 *)(hpAndStatus));
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(struct HpAndStatus) * PARTY_SIZE + 4);
|
||||
}
|
||||
|
||||
|
||||
+172
-156
@@ -73,40 +73,43 @@ struct TourneyTreeLineSection
|
||||
#define tMode data[2]
|
||||
#define tPrevTaskId data[3]
|
||||
|
||||
// This file's functions.
|
||||
static u8 GetDomeTrainerMonIvs(u16 trainerId);
|
||||
static void SwapDomeTrainers(int id1, int id2, u16 *statsArray);
|
||||
static void CalcDomeMonStats(u16 species, int level, int ivs, u8 evBits, u8 nature, int *stats);
|
||||
static void CreateDomeOpponentMons(u16 tournamentTrainerId);
|
||||
static int SelectOpponentMonsUsingPersonality(u16 tournamentTrainerId, bool8 arg1);
|
||||
static int SelectOpponentMonsUsingOtId(u16 tournamentTrainerId, bool8 arg1);
|
||||
static int GetTypeEffectivenessPoints(int move, int species, int arg2);
|
||||
static int SelectOpponentMonsFromParty(int *arr, bool8 arg1);
|
||||
static void Task_ShowTourneyInfoCard(u8 taskId);
|
||||
static void Task_HandleInfoCardInput(u8 taskId);
|
||||
static u8 Task_GetInfoCardInput(u8 taskId);
|
||||
#define EFFECTIVENESS_MODE_GOOD 0
|
||||
#define EFFECTIVENESS_MODE_BAD 1
|
||||
#define EFFECTIVENESS_MODE_AI_VS_AI 2
|
||||
|
||||
static u8 GetDomeTrainerMonIvs(u16);
|
||||
static void SwapDomeTrainers(int, int, u16 *);
|
||||
static void CalcDomeMonStats(u16, int, int, u8, u8, int *);
|
||||
static void CreateDomeOpponentMons(u16);
|
||||
static int SelectOpponentMons_Good(u16, bool8);
|
||||
static int SelectOpponentMons_Bad(u16, bool8);
|
||||
static int GetTypeEffectivenessPoints(int, int, int);
|
||||
static int SelectOpponentMonsFromParty(int *, bool8);
|
||||
static void Task_ShowTourneyInfoCard(u8);
|
||||
static void Task_HandleInfoCardInput(u8);
|
||||
static u8 Task_GetInfoCardInput(u8);
|
||||
static void SetFacilityTrainerAndMonPtrs(void);
|
||||
static int TrainerIdToTournamentId(u16 trainerId);
|
||||
static int TrainerIdToTournamentId(u16);
|
||||
static u16 TrainerIdOfPlayerOpponent(void);
|
||||
static void Task_ShowTourneyTree(u8 taskId);
|
||||
static void Task_HandleStaticTourneyTreeInput(u8 taskId);
|
||||
static void Task_ShowTourneyTree(u8);
|
||||
static void Task_HandleStaticTourneyTreeInput(u8);
|
||||
static void CB2_TourneyTree(void);
|
||||
static void VblankCb_TourneyInfoCard(void);
|
||||
static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo);
|
||||
static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId);
|
||||
static int BufferDomeWinString(u8, u8*);
|
||||
static void DisplayMatchInfoOnCard(u8, u8);
|
||||
static void DisplayTrainerInfoOnCard(u8, u8);
|
||||
static int BufferDomeWinString(u8, u8 *);
|
||||
static u8 GetDomeBrainTrainerPicId(void);
|
||||
static u8 GetDomeBrainTrainerClass(void);
|
||||
static void CopyDomeBrainTrainerName(u8 *str);
|
||||
static void CopyDomeTrainerName(u8 *str, u16 trainerId);
|
||||
static void CopyDomeBrainTrainerName(u8 *);
|
||||
static void CopyDomeTrainerName(u8 *, u16);
|
||||
static void HblankCb_TourneyTree(void);
|
||||
static void VblankCb_TourneyTree(void);
|
||||
static u8 UpdateTourneyTreeCursor(u8 taskId);
|
||||
static void DecideRoundWinners(u8 roundId);
|
||||
static u8 GetOpposingNPCTournamentIdByRound(u8 tournamentId, u8);
|
||||
static u8 UpdateTourneyTreeCursor(u8);
|
||||
static void DecideRoundWinners(u8);
|
||||
static u8 GetOpposingNPCTournamentIdByRound(u8, u8);
|
||||
static void DrawTourneyAdvancementLine(u8, u8);
|
||||
static void SpriteCb_HorizontalScrollArrow(struct Sprite *sprite);
|
||||
static void SpriteCb_VerticalScrollArrow(struct Sprite *sprite);
|
||||
static void SpriteCB_HorizontalScrollArrow(struct Sprite *);
|
||||
static void SpriteCB_VerticalScrollArrow(struct Sprite *);
|
||||
static void InitDomeChallenge(void);
|
||||
static void GetDomeData(void);
|
||||
static void SetDomeData(void);
|
||||
@@ -130,7 +133,6 @@ static void BufferLastDomeWinnerName(void);
|
||||
static void InitRandomTourneyTreeResults(void);
|
||||
static void InitDomeTrainers(void);
|
||||
|
||||
// EWRAM variables.
|
||||
EWRAM_DATA u32 gPlayerPartyLostHP = 0; // never read
|
||||
static EWRAM_DATA u32 sPlayerPartyMaxHP = 0; // never read
|
||||
static EWRAM_DATA struct TourneyTreeInfoCard *sInfoCard = {0};
|
||||
@@ -892,7 +894,7 @@ static const struct OamData sOamData_TourneyTreePokeball =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(16x16),
|
||||
.x = 0,
|
||||
@@ -910,7 +912,7 @@ static const struct OamData sOamData_TourneyTreeCloseButton =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(32x16),
|
||||
.x = 0,
|
||||
@@ -927,7 +929,7 @@ static const struct OamData sOamData_VerticalScrollArrow =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(16x8),
|
||||
.x = 0,
|
||||
@@ -944,7 +946,7 @@ static const struct OamData sOamData_HorizontalScrollArrow =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(8x16),
|
||||
.x = 0,
|
||||
@@ -1087,7 +1089,7 @@ static const struct SpriteTemplate sHorizontalScrollArrowSpriteTemplate =
|
||||
.anims = sSpriteAnimTable_HorizontalScrollArrow,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCb_HorizontalScrollArrow
|
||||
.callback = SpriteCB_HorizontalScrollArrow
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate sVerticalScrollArrowSpriteTemplate =
|
||||
@@ -1098,7 +1100,7 @@ static const struct SpriteTemplate sVerticalScrollArrowSpriteTemplate =
|
||||
.anims = sSpriteAnimTable_VerticalScrollArrow,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCb_VerticalScrollArrow
|
||||
.callback = SpriteCB_VerticalScrollArrow
|
||||
};
|
||||
|
||||
// Organized by seed starting position, i.e. seed 0 battles seed 8 first
|
||||
@@ -2080,7 +2082,6 @@ static const u8 sTourneyTreeLineSectionArrayCounts[DOME_TOURNAMENT_TRAINERS_COUN
|
||||
{ARRAY_COUNT(sLineSectionTrainer16Round1), ARRAY_COUNT(sLineSectionTrainer16Round2), ARRAY_COUNT(sLineSectionTrainer16Semifinal), ARRAY_COUNT(sLineSectionTrainer16Final)},
|
||||
};
|
||||
|
||||
// code
|
||||
void CallBattleDomeFunction(void)
|
||||
{
|
||||
sBattleDomeFunctions[gSpecialVar_0x8004]();
|
||||
@@ -2347,8 +2348,8 @@ static void InitDomeTrainers(void)
|
||||
rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPDEF, NULL);
|
||||
rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPEED, NULL);
|
||||
rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_MAX_HP, NULL);
|
||||
monTypesBits |= gBitTable[gBaseStats[GetMonData(&gPlayerParty[trainerId], MON_DATA_SPECIES, NULL)].type1];
|
||||
monTypesBits |= gBitTable[gBaseStats[GetMonData(&gPlayerParty[trainerId], MON_DATA_SPECIES, NULL)].type2];
|
||||
monTypesBits |= gBitTable[gSpeciesInfo[GetMonData(&gPlayerParty[trainerId], MON_DATA_SPECIES, NULL)].types[0]];
|
||||
monTypesBits |= gBitTable[gSpeciesInfo[GetMonData(&gPlayerParty[trainerId], MON_DATA_SPECIES, NULL)].types[1]];
|
||||
}
|
||||
|
||||
// Count the number of types in the players party, to factor into the ranking
|
||||
@@ -2382,8 +2383,8 @@ static void InitDomeTrainers(void)
|
||||
rankingScores[i] += statValues[STAT_SPDEF];
|
||||
rankingScores[i] += statValues[STAT_SPEED];
|
||||
rankingScores[i] += statValues[STAT_HP];
|
||||
monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[DOME_MONS[i][j]].species].type1];
|
||||
monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[DOME_MONS[i][j]].species].type2];
|
||||
monTypesBits |= gBitTable[gSpeciesInfo[gFacilityTrainerMons[DOME_MONS[i][j]].species].types[0]];
|
||||
monTypesBits |= gBitTable[gSpeciesInfo[gFacilityTrainerMons[DOME_MONS[i][j]].species].types[1]];
|
||||
}
|
||||
|
||||
for (monTypesCount = 0, j = 0; j < 32; j++)
|
||||
@@ -2447,7 +2448,7 @@ static void InitDomeTrainers(void)
|
||||
|
||||
#define CALC_STAT(base, statIndex) \
|
||||
{ \
|
||||
u8 baseStat = gBaseStats[species].base; \
|
||||
u8 baseStat = gSpeciesInfo[species].base; \
|
||||
stats[statIndex] = (((2 * baseStat + ivs + evs[statIndex] / 4) * level) / 100) + 5; \
|
||||
stats[statIndex] = (u8) ModifyStatByNature(nature, stats[statIndex], statIndex); \
|
||||
}
|
||||
@@ -2480,7 +2481,7 @@ static void CalcDomeMonStats(u16 species, int level, int ivs, u8 evBits, u8 natu
|
||||
}
|
||||
else
|
||||
{
|
||||
int n = 2 * gBaseStats[species].baseHP;
|
||||
int n = 2 * gSpeciesInfo[species].baseHP;
|
||||
stats[STAT_HP] = (((n + ivs + evs[STAT_HP] / 4) * level) / 100) + level + 10;
|
||||
}
|
||||
|
||||
@@ -2592,28 +2593,33 @@ static void CreateDomeOpponentMons(u16 tournamentTrainerId)
|
||||
}
|
||||
}
|
||||
|
||||
// Returns a bitmask representing which 2 of the trainer's 3 pokemon to select.
|
||||
// The choice is calculated solely depending on the type effectiveness of their
|
||||
// movesets against the player's pokemon.
|
||||
// There is a 50% chance of either a "good" or "bad" selection mode being used.
|
||||
// In the good mode movesets are preferred which are more effective against the
|
||||
// player, and in the bad mode the opposite is true. If all 3 pokemon tie, the
|
||||
// other mode will be tried. If they tie again, the pokemon selection is random.
|
||||
int GetDomeTrainerSelectedMons(u16 tournamentTrainerId)
|
||||
{
|
||||
int selectedMonBits;
|
||||
if (Random() & 1)
|
||||
{
|
||||
selectedMonBits = SelectOpponentMonsUsingPersonality(tournamentTrainerId, FALSE);
|
||||
selectedMonBits = SelectOpponentMons_Good(tournamentTrainerId, FALSE);
|
||||
if (selectedMonBits == 0)
|
||||
selectedMonBits = SelectOpponentMonsUsingOtId(tournamentTrainerId, TRUE);
|
||||
selectedMonBits = SelectOpponentMons_Bad(tournamentTrainerId, TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
selectedMonBits = SelectOpponentMonsUsingOtId(tournamentTrainerId, FALSE);
|
||||
selectedMonBits = SelectOpponentMons_Bad(tournamentTrainerId, FALSE);
|
||||
if (selectedMonBits == 0)
|
||||
selectedMonBits = SelectOpponentMonsUsingPersonality(tournamentTrainerId, TRUE);
|
||||
selectedMonBits = SelectOpponentMons_Good(tournamentTrainerId, TRUE);
|
||||
}
|
||||
|
||||
return selectedMonBits;
|
||||
}
|
||||
|
||||
// Could probably use a better name once GetTypeEffectivenessPoints is clarified
|
||||
// Personality seems to be used to select a different weighting system for type effectiveness points
|
||||
static int SelectOpponentMonsUsingPersonality(u16 tournamentTrainerId, bool8 allowRandom)
|
||||
static int SelectOpponentMons_Good(u16 tournamentTrainerId, bool8 allowRandom)
|
||||
{
|
||||
int i, moveId, playerMonId;
|
||||
int partyMovePoints[FRONTIER_PARTY_SIZE];
|
||||
@@ -2628,12 +2634,12 @@ static int SelectOpponentMonsUsingPersonality(u16 tournamentTrainerId, bool8 all
|
||||
if (DOME_TRAINERS[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN)
|
||||
{
|
||||
partyMovePoints[i] += GetTypeEffectivenessPoints(GetFrontierBrainMonMove(i, moveId),
|
||||
GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), MON_DATA_PERSONALITY);
|
||||
GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), EFFECTIVENESS_MODE_GOOD);
|
||||
}
|
||||
else
|
||||
{
|
||||
partyMovePoints[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][i]].moves[moveId],
|
||||
GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), MON_DATA_PERSONALITY);
|
||||
GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), EFFECTIVENESS_MODE_GOOD);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2641,8 +2647,8 @@ static int SelectOpponentMonsUsingPersonality(u16 tournamentTrainerId, bool8 all
|
||||
return SelectOpponentMonsFromParty(partyMovePoints, allowRandom);
|
||||
}
|
||||
|
||||
// See above function, identical but uses MON_DATA_OT_ID
|
||||
static int SelectOpponentMonsUsingOtId(u16 tournamentTrainerId, bool8 allowRandom)
|
||||
// Identical to function above, but uses EFFECTIVENESS_MODE_BAD
|
||||
static int SelectOpponentMons_Bad(u16 tournamentTrainerId, bool8 allowRandom)
|
||||
{
|
||||
int i, moveId, playerMonId;
|
||||
int partyMovePoints[FRONTIER_PARTY_SIZE];
|
||||
@@ -2657,12 +2663,12 @@ static int SelectOpponentMonsUsingOtId(u16 tournamentTrainerId, bool8 allowRando
|
||||
if (DOME_TRAINERS[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN)
|
||||
{
|
||||
partyMovePoints[i] += GetTypeEffectivenessPoints(GetFrontierBrainMonMove(i, moveId),
|
||||
GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), MON_DATA_OT_ID);
|
||||
GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), EFFECTIVENESS_MODE_BAD);
|
||||
}
|
||||
else
|
||||
{
|
||||
partyMovePoints[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][i]].moves[moveId],
|
||||
GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), MON_DATA_OT_ID);
|
||||
GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), EFFECTIVENESS_MODE_BAD);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2735,27 +2741,36 @@ static int SelectOpponentMonsFromParty(int *partyMovePoints, bool8 allowRandom)
|
||||
#define TYPE_x2 40
|
||||
#define TYPE_x4 80
|
||||
|
||||
static int GetTypeEffectivenessPoints(int move, int targetSpecies, int arg2)
|
||||
static int GetTypeEffectivenessPoints(int move, int targetSpecies, int mode)
|
||||
{
|
||||
int defType1, defType2, defAbility, moveType;
|
||||
int i = 0;
|
||||
int typePower = TYPE_x1;
|
||||
|
||||
if (move == MOVE_NONE || move == 0xFFFF || gBattleMoves[move].power == 0)
|
||||
if (move == MOVE_NONE || move == MOVE_UNAVAILABLE || gBattleMoves[move].power == 0)
|
||||
return 0;
|
||||
|
||||
defType1 = gBaseStats[targetSpecies].type1;
|
||||
defType2 = gBaseStats[targetSpecies].type2;
|
||||
defAbility = gBaseStats[targetSpecies].abilities[0];
|
||||
defType1 = gSpeciesInfo[targetSpecies].types[0];
|
||||
defType2 = gSpeciesInfo[targetSpecies].types[1];
|
||||
defAbility = gSpeciesInfo[targetSpecies].abilities[0];
|
||||
moveType = gBattleMoves[move].type;
|
||||
|
||||
if (defAbility == ABILITY_LEVITATE && moveType == TYPE_GROUND)
|
||||
{
|
||||
if (arg2 == 1)
|
||||
// They likely meant to return here, as 8 is the number of points normally used in this mode for moves with no effect.
|
||||
// Because there's no return the value instead gets interpreted by the switch, and the number of points becomes 0.
|
||||
if (mode == EFFECTIVENESS_MODE_BAD)
|
||||
{
|
||||
typePower = 8;
|
||||
#ifdef BUGFIX
|
||||
return typePower;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Calculate a "type power" value to determine the benefit of using this type move against the target.
|
||||
// This value will then be used to get the number of points to assign to the move.
|
||||
while (TYPE_EFFECT_ATK_TYPE(i) != TYPE_ENDTABLE)
|
||||
{
|
||||
if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT)
|
||||
@@ -2767,33 +2782,30 @@ static int GetTypeEffectivenessPoints(int move, int targetSpecies, int arg2)
|
||||
{
|
||||
// BUG: the value of TYPE_x2 does not exist in gTypeEffectiveness, so if defAbility is ABILITY_WONDER_GUARD, the conditional always fails
|
||||
#ifndef BUGFIX
|
||||
if (TYPE_EFFECT_DEF_TYPE(i) == defType1)
|
||||
if ((defAbility == ABILITY_WONDER_GUARD && TYPE_EFFECT_MULTIPLIER(i) == TYPE_x2) || defAbility != ABILITY_WONDER_GUARD)
|
||||
typePower = (typePower * TYPE_EFFECT_MULTIPLIER(i)) / 10;
|
||||
if (TYPE_EFFECT_DEF_TYPE(i) == defType2 && defType1 != defType2)
|
||||
if ((defAbility == ABILITY_WONDER_GUARD && TYPE_EFFECT_MULTIPLIER(i) == TYPE_x2) || defAbility != ABILITY_WONDER_GUARD)
|
||||
typePower = (typePower * TYPE_EFFECT_MULTIPLIER(i)) / 10;
|
||||
#define WONDER_GUARD_EFFECTIVENESS TYPE_x2
|
||||
#else
|
||||
#define WONDER_GUARD_EFFECTIVENESS TYPE_MUL_SUPER_EFFECTIVE
|
||||
#endif
|
||||
if (TYPE_EFFECT_DEF_TYPE(i) == defType1)
|
||||
if ((defAbility == ABILITY_WONDER_GUARD && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE) || defAbility != ABILITY_WONDER_GUARD)
|
||||
if ((defAbility == ABILITY_WONDER_GUARD && TYPE_EFFECT_MULTIPLIER(i) == WONDER_GUARD_EFFECTIVENESS) || defAbility != ABILITY_WONDER_GUARD)
|
||||
typePower = (typePower * TYPE_EFFECT_MULTIPLIER(i)) / 10;
|
||||
if (TYPE_EFFECT_DEF_TYPE(i) == defType2 && defType1 != defType2)
|
||||
if ((defAbility == ABILITY_WONDER_GUARD && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE) || defAbility != ABILITY_WONDER_GUARD)
|
||||
if ((defAbility == ABILITY_WONDER_GUARD && TYPE_EFFECT_MULTIPLIER(i) == WONDER_GUARD_EFFECTIVENESS) || defAbility != ABILITY_WONDER_GUARD)
|
||||
typePower = (typePower * TYPE_EFFECT_MULTIPLIER(i)) / 10;
|
||||
#endif
|
||||
}
|
||||
i += 3;
|
||||
}
|
||||
}
|
||||
|
||||
switch (arg2)
|
||||
switch (mode)
|
||||
{
|
||||
case 0:
|
||||
case EFFECTIVENESS_MODE_GOOD:
|
||||
// Weights moves that more effective.
|
||||
switch (typePower)
|
||||
{
|
||||
case TYPE_x0_50:
|
||||
case TYPE_x0_25:
|
||||
case TYPE_x0:
|
||||
case TYPE_x0_25:
|
||||
case TYPE_x0_50:
|
||||
default:
|
||||
typePower = 0;
|
||||
break;
|
||||
@@ -2808,22 +2820,24 @@ static int GetTypeEffectivenessPoints(int move, int targetSpecies, int arg2)
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
case EFFECTIVENESS_MODE_BAD:
|
||||
// Weights moves that are less effective.
|
||||
// Odd that there's no limit on this being used, even the Frontier Brain could end up using this.
|
||||
switch (typePower)
|
||||
{
|
||||
default:
|
||||
case TYPE_x1:
|
||||
typePower = 0;
|
||||
case TYPE_x0:
|
||||
typePower = 8;
|
||||
break;
|
||||
case TYPE_x0_25:
|
||||
typePower = 4;
|
||||
break;
|
||||
case TYPE_x0:
|
||||
typePower = 8;
|
||||
break;
|
||||
case TYPE_x0_50:
|
||||
typePower = 2;
|
||||
break;
|
||||
default:
|
||||
case TYPE_x1:
|
||||
typePower = 0;
|
||||
break;
|
||||
case TYPE_x2:
|
||||
typePower = -2;
|
||||
break;
|
||||
@@ -2832,7 +2846,9 @@ static int GetTypeEffectivenessPoints(int move, int targetSpecies, int arg2)
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
case EFFECTIVENESS_MODE_AI_VS_AI:
|
||||
// Used as part of calculating the winner in a battle between two AIs.
|
||||
// Weights moves that are more effective much more strongly in both directions.
|
||||
switch (typePower)
|
||||
{
|
||||
case TYPE_x0:
|
||||
@@ -3032,12 +3048,12 @@ static void Task_ShowTourneyInfoCard(u8 taskId)
|
||||
DecompressAndLoadBgGfxUsingHeap(2, gDomeTourneyInfoCard_Tilemap, 0x2000, 0, 1);
|
||||
DecompressAndLoadBgGfxUsingHeap(3, gDomeTourneyInfoCardBg_Tilemap, 0x800, 0, 1);
|
||||
LoadCompressedSpriteSheet(sTourneyTreeButtonsSpriteSheet);
|
||||
LoadCompressedPalette(gDomeTourneyTree_Pal, 0, 0x200);
|
||||
LoadCompressedPalette(gDomeTourneyTreeButtons_Pal, 0x100, 0x200);
|
||||
LoadCompressedPalette(gBattleWindowTextPalette, 0xF0, 0x20);
|
||||
LoadCompressedPalette(gDomeTourneyTree_Pal, BG_PLTT_OFFSET, BG_PLTT_SIZE);
|
||||
LoadCompressedPalette(gDomeTourneyTreeButtons_Pal, OBJ_PLTT_OFFSET, OBJ_PLTT_SIZE);
|
||||
LoadCompressedPalette(gBattleWindowTextPalette, BG_PLTT_ID(15), PLTT_SIZE_4BPP);
|
||||
if (mode == INFOCARD_MATCH)
|
||||
LoadCompressedPalette(gDomeTourneyMatchCardBg_Pal, 0x50, 0x20); // Changes the moving info card bg to orange when in match card mode
|
||||
CpuFill32(0, gPlttBufferFaded, 0x400);
|
||||
LoadCompressedPalette(gDomeTourneyMatchCardBg_Pal, BG_PLTT_ID(5), PLTT_SIZE_4BPP); // Changes the moving info card bg to orange when in match card mode
|
||||
CpuFill32(0, gPlttBufferFaded, PLTT_SIZE);
|
||||
ShowBg(0);
|
||||
ShowBg(1);
|
||||
ShowBg(2);
|
||||
@@ -3099,7 +3115,7 @@ static void Task_ShowTourneyInfoCard(u8 taskId)
|
||||
// Note: Card scrolling up means the current card goes down and another one appears from top.
|
||||
// The same is true for scrolling left.
|
||||
// That means that the sprite needs to move with the moving card in the opposite scrolling direction.
|
||||
static void SpriteCb_TrainerIconCardScrollUp(struct Sprite *sprite)
|
||||
static void SpriteCB_TrainerIconCardScrollUp(struct Sprite *sprite)
|
||||
{
|
||||
sprite->y += 4;
|
||||
if (sprite->data[0] != 0)
|
||||
@@ -3119,7 +3135,7 @@ static void SpriteCb_TrainerIconCardScrollUp(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCb_TrainerIconCardScrollDown(struct Sprite *sprite)
|
||||
static void SpriteCB_TrainerIconCardScrollDown(struct Sprite *sprite)
|
||||
{
|
||||
sprite->y -= 4;
|
||||
if (sprite->data[0] != 0)
|
||||
@@ -3139,7 +3155,7 @@ static void SpriteCb_TrainerIconCardScrollDown(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCb_TrainerIconCardScrollLeft(struct Sprite *sprite)
|
||||
static void SpriteCB_TrainerIconCardScrollLeft(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x += 4;
|
||||
if (sprite->data[0] != 0)
|
||||
@@ -3159,7 +3175,7 @@ static void SpriteCb_TrainerIconCardScrollLeft(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCb_TrainerIconCardScrollRight(struct Sprite *sprite)
|
||||
static void SpriteCB_TrainerIconCardScrollRight(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x -= 4;
|
||||
if (sprite->data[0] != 0)
|
||||
@@ -3181,13 +3197,13 @@ static void SpriteCb_TrainerIconCardScrollRight(struct Sprite *sprite)
|
||||
|
||||
#define sMonIconStill data[3]
|
||||
|
||||
static void SpriteCb_MonIcon(struct Sprite *sprite)
|
||||
static void SpriteCB_MonIconDomeInfo(struct Sprite *sprite)
|
||||
{
|
||||
if (!sprite->sMonIconStill)
|
||||
UpdateMonIconFrame(sprite);
|
||||
}
|
||||
|
||||
static void SpriteCb_MonIconCardScrollUp(struct Sprite *sprite)
|
||||
static void SpriteCB_MonIconCardScrollUp(struct Sprite *sprite)
|
||||
{
|
||||
if (!sprite->sMonIconStill)
|
||||
UpdateMonIconFrame(sprite);
|
||||
@@ -3197,7 +3213,7 @@ static void SpriteCb_MonIconCardScrollUp(struct Sprite *sprite)
|
||||
if (sprite->y >= -16)
|
||||
sprite->invisible = FALSE;
|
||||
if (++sprite->data[1] == 40)
|
||||
sprite->callback = SpriteCb_MonIcon;
|
||||
sprite->callback = SpriteCB_MonIconDomeInfo;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3209,7 +3225,7 @@ static void SpriteCb_MonIconCardScrollUp(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCb_MonIconCardScrollDown(struct Sprite *sprite)
|
||||
static void SpriteCB_MonIconCardScrollDown(struct Sprite *sprite)
|
||||
{
|
||||
if (!sprite->sMonIconStill)
|
||||
UpdateMonIconFrame(sprite);
|
||||
@@ -3219,7 +3235,7 @@ static void SpriteCb_MonIconCardScrollDown(struct Sprite *sprite)
|
||||
if (sprite->y <= 176)
|
||||
sprite->invisible = FALSE;
|
||||
if (++sprite->data[1] == 40)
|
||||
sprite->callback = SpriteCb_MonIcon;
|
||||
sprite->callback = SpriteCB_MonIconDomeInfo;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3231,7 +3247,7 @@ static void SpriteCb_MonIconCardScrollDown(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCb_MonIconCardScrollLeft(struct Sprite *sprite)
|
||||
static void SpriteCB_MonIconCardScrollLeft(struct Sprite *sprite)
|
||||
{
|
||||
if (!sprite->sMonIconStill)
|
||||
UpdateMonIconFrame(sprite);
|
||||
@@ -3241,7 +3257,7 @@ static void SpriteCb_MonIconCardScrollLeft(struct Sprite *sprite)
|
||||
if (sprite->x >= -16)
|
||||
sprite->invisible = FALSE;
|
||||
if (++sprite->data[1] == 64)
|
||||
sprite->callback = SpriteCb_MonIcon;
|
||||
sprite->callback = SpriteCB_MonIconDomeInfo;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3253,7 +3269,7 @@ static void SpriteCb_MonIconCardScrollLeft(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCb_MonIconCardScrollRight(struct Sprite *sprite)
|
||||
static void SpriteCB_MonIconCardScrollRight(struct Sprite *sprite)
|
||||
{
|
||||
if (!sprite->sMonIconStill)
|
||||
UpdateMonIconFrame(sprite);
|
||||
@@ -3263,7 +3279,7 @@ static void SpriteCb_MonIconCardScrollRight(struct Sprite *sprite)
|
||||
if (sprite->x <= DISPLAY_WIDTH + 16)
|
||||
sprite->invisible = FALSE;
|
||||
if (++sprite->data[1] == 64)
|
||||
sprite->callback = SpriteCb_MonIcon;
|
||||
sprite->callback = SpriteCB_MonIconDomeInfo;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3275,7 +3291,7 @@ static void SpriteCb_MonIconCardScrollRight(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCb_HorizontalScrollArrow(struct Sprite *sprite)
|
||||
static void SpriteCB_HorizontalScrollArrow(struct Sprite *sprite)
|
||||
{
|
||||
int taskId1 = sprite->data[0];
|
||||
int arrId = gTasks[gTasks[taskId1].data[4]].data[1];
|
||||
@@ -3344,7 +3360,7 @@ static void SpriteCb_HorizontalScrollArrow(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCb_VerticalScrollArrow(struct Sprite *sprite)
|
||||
static void SpriteCB_VerticalScrollArrow(struct Sprite *sprite)
|
||||
{
|
||||
int taskId1 = sprite->data[0];
|
||||
|
||||
@@ -3510,7 +3526,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollUp;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_TrainerIconCardScrollUp;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3521,7 +3537,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollUp;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_MonIconCardScrollUp;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3534,7 +3550,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollUp;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_TrainerIconCardScrollUp;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3545,7 +3561,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollUp;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_MonIconCardScrollUp;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3626,7 +3642,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollDown;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_TrainerIconCardScrollDown;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3637,7 +3653,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollDown;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_MonIconCardScrollDown;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3650,7 +3666,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollDown;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_TrainerIconCardScrollDown;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3661,7 +3677,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollDown;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_MonIconCardScrollDown;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3709,7 +3725,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollLeft;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_TrainerIconCardScrollLeft;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3720,7 +3736,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollLeft;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_MonIconCardScrollLeft;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3733,7 +3749,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollLeft;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_TrainerIconCardScrollLeft;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3744,7 +3760,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollLeft;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_MonIconCardScrollLeft;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3792,7 +3808,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollLeft;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_TrainerIconCardScrollLeft;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3803,7 +3819,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollLeft;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_MonIconCardScrollLeft;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3816,7 +3832,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollLeft;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_TrainerIconCardScrollLeft;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3827,7 +3843,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollLeft;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_MonIconCardScrollLeft;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3873,7 +3889,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollRight;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_TrainerIconCardScrollRight;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3884,7 +3900,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollRight;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_MonIconCardScrollRight;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3897,7 +3913,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollRight;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_TrainerIconCardScrollRight;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3908,7 +3924,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollRight;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_MonIconCardScrollRight;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3956,7 +3972,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollRight;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_TrainerIconCardScrollRight;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3967,7 +3983,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollRight;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_MonIconCardScrollRight;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3980,7 +3996,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollRight;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_TrainerIconCardScrollRight;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -3991,7 +4007,7 @@ static void Task_HandleInfoCardInput(u8 taskId)
|
||||
{
|
||||
if (sInfoCard->spriteIds[i] != SPRITE_NONE)
|
||||
{
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollRight;
|
||||
gSprites[sInfoCard->spriteIds[i]].callback = SpriteCB_MonIconCardScrollRight;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[1] = 0;
|
||||
gSprites[sInfoCard->spriteIds[i]].data[2] = i;
|
||||
@@ -4238,7 +4254,7 @@ static u8 Task_GetInfoCardInput(u8 taskId)
|
||||
#undef tUsingAlternateSlot
|
||||
|
||||
// allocatedArray below needs to be large enough to hold stat totals for each mon, or totals of each type of move points
|
||||
#define ALLOC_ARRAY_SIZE (NUM_STATS * FRONTIER_PARTY_SIZE >= NUM_MOVE_POINT_TYPES ? (NUM_STATS * FRONTIER_PARTY_SIZE) : NUM_MOVE_POINT_TYPES)
|
||||
#define ALLOC_ARRAY_SIZE max(NUM_STATS * FRONTIER_PARTY_SIZE, NUM_MOVE_POINT_TYPES)
|
||||
|
||||
static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId)
|
||||
{
|
||||
@@ -4281,7 +4297,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId)
|
||||
if (trainerId == TRAINER_PLAYER)
|
||||
{
|
||||
sInfoCard->spriteIds[2 + i + arrId] = CreateMonIcon(DOME_MONS[trainerTourneyId][i],
|
||||
SpriteCb_MonIcon,
|
||||
SpriteCB_MonIconDomeInfo,
|
||||
x | sInfoTrainerMonX[i],
|
||||
y + sInfoTrainerMonY[i],
|
||||
0, 0, TRUE);
|
||||
@@ -4290,7 +4306,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId)
|
||||
else if (trainerId == TRAINER_FRONTIER_BRAIN)
|
||||
{
|
||||
sInfoCard->spriteIds[2 + i + arrId] = CreateMonIcon(DOME_MONS[trainerTourneyId][i],
|
||||
SpriteCb_MonIcon,
|
||||
SpriteCB_MonIconDomeInfo,
|
||||
x | sInfoTrainerMonX[i],
|
||||
y + sInfoTrainerMonY[i],
|
||||
0, 0, TRUE);
|
||||
@@ -4299,7 +4315,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId)
|
||||
else
|
||||
{
|
||||
sInfoCard->spriteIds[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[DOME_MONS[trainerTourneyId][i]].species,
|
||||
SpriteCb_MonIcon,
|
||||
SpriteCB_MonIconDomeInfo,
|
||||
x | sInfoTrainerMonX[i],
|
||||
y + sInfoTrainerMonY[i],
|
||||
0, 0, TRUE);
|
||||
@@ -4770,7 +4786,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
|
||||
if (trainerIds[0] == TRAINER_PLAYER)
|
||||
{
|
||||
sInfoCard->spriteIds[2 + i + arrId] = CreateMonIcon(DOME_MONS[tournamentIds[0]][i],
|
||||
SpriteCb_MonIcon,
|
||||
SpriteCB_MonIconDomeInfo,
|
||||
x | sLeftTrainerMonX[i],
|
||||
y + sLeftTrainerMonY[i],
|
||||
0, 0, TRUE);
|
||||
@@ -4779,7 +4795,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
|
||||
else if (trainerIds[0] == TRAINER_FRONTIER_BRAIN)
|
||||
{
|
||||
sInfoCard->spriteIds[2 + i + arrId] = CreateMonIcon(DOME_MONS[tournamentIds[0]][i],
|
||||
SpriteCb_MonIcon,
|
||||
SpriteCB_MonIconDomeInfo,
|
||||
x | sLeftTrainerMonX[i],
|
||||
y + sLeftTrainerMonY[i],
|
||||
0, 0, TRUE);
|
||||
@@ -4788,7 +4804,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
|
||||
else
|
||||
{
|
||||
sInfoCard->spriteIds[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[DOME_MONS[tournamentIds[0]][i]].species,
|
||||
SpriteCb_MonIcon,
|
||||
SpriteCB_MonIconDomeInfo,
|
||||
x | sLeftTrainerMonX[i],
|
||||
y + sLeftTrainerMonY[i],
|
||||
0, 0, TRUE);
|
||||
@@ -4810,7 +4826,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
|
||||
if (trainerIds[1] == TRAINER_PLAYER)
|
||||
{
|
||||
sInfoCard->spriteIds[5 + i + arrId] = CreateMonIcon(DOME_MONS[tournamentIds[1]][i],
|
||||
SpriteCb_MonIcon,
|
||||
SpriteCB_MonIconDomeInfo,
|
||||
x | sRightTrainerMonX[i],
|
||||
y + sRightTrainerMonY[i],
|
||||
0, 0, TRUE);
|
||||
@@ -4819,7 +4835,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
|
||||
else if (trainerIds[1] == TRAINER_FRONTIER_BRAIN)
|
||||
{
|
||||
sInfoCard->spriteIds[5 + i + arrId] = CreateMonIcon(DOME_MONS[tournamentIds[1]][i],
|
||||
SpriteCb_MonIcon,
|
||||
SpriteCB_MonIconDomeInfo,
|
||||
x | sRightTrainerMonX[i],
|
||||
y + sRightTrainerMonY[i],
|
||||
0, 0, TRUE);
|
||||
@@ -4828,7 +4844,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
|
||||
else
|
||||
{
|
||||
sInfoCard->spriteIds[5 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[DOME_MONS[tournamentIds[1]][i]].species,
|
||||
SpriteCb_MonIcon,
|
||||
SpriteCB_MonIconDomeInfo,
|
||||
x | sRightTrainerMonX[i],
|
||||
y + sRightTrainerMonY[i],
|
||||
0, 0, TRUE);
|
||||
@@ -5188,9 +5204,9 @@ static u16 GetWinningMove(int winnerTournamentId, int loserTournamentId, u8 roun
|
||||
|
||||
targetSpecies = gFacilityTrainerMons[DOME_MONS[loserTournamentId][k]].species;
|
||||
if (var & 1)
|
||||
targetAbility = gBaseStats[targetSpecies].abilities[1];
|
||||
targetAbility = gSpeciesInfo[targetSpecies].abilities[1];
|
||||
else
|
||||
targetAbility = gBaseStats[targetSpecies].abilities[0];
|
||||
targetAbility = gSpeciesInfo[targetSpecies].abilities[0];
|
||||
|
||||
var = AI_TypeCalc(moveIds[i * MAX_MON_MOVES + j], targetSpecies, targetAbility);
|
||||
if (var & MOVE_RESULT_NOT_VERY_EFFECTIVE && var & MOVE_RESULT_SUPER_EFFECTIVE)
|
||||
@@ -5311,10 +5327,10 @@ static void Task_ShowTourneyTree(u8 taskId)
|
||||
DecompressAndLoadBgGfxUsingHeap(2, gDomeTourneyLine_Gfx, 0x2000, 0, 0);
|
||||
DecompressAndLoadBgGfxUsingHeap(2, gDomeTourneyLineDown_Tilemap, 0x2000, 0, 1);
|
||||
DecompressAndLoadBgGfxUsingHeap(3, gDomeTourneyLineUp_Tilemap, 0x2000, 0, 1);
|
||||
LoadCompressedPalette(gDomeTourneyTree_Pal, 0, 0x200);
|
||||
LoadCompressedPalette(gDomeTourneyTreeButtons_Pal, 0x100, 0x200);
|
||||
LoadCompressedPalette(gBattleWindowTextPalette, 0xF0, 0x20);
|
||||
CpuFill32(0, gPlttBufferFaded, 0x400);
|
||||
LoadCompressedPalette(gDomeTourneyTree_Pal, BG_PLTT_OFFSET, BG_PLTT_SIZE);
|
||||
LoadCompressedPalette(gDomeTourneyTreeButtons_Pal, OBJ_PLTT_OFFSET, OBJ_PLTT_SIZE);
|
||||
LoadCompressedPalette(gBattleWindowTextPalette, BG_PLTT_ID(15), PLTT_SIZE_4BPP);
|
||||
CpuFill32(0, gPlttBufferFaded, PLTT_SIZE);
|
||||
ShowBg(0);
|
||||
ShowBg(1);
|
||||
ShowBg(2);
|
||||
@@ -5847,7 +5863,7 @@ static void InitRandomTourneyTreeResults(void)
|
||||
DOME_TRAINERS[i].forfeited = FALSE;
|
||||
}
|
||||
|
||||
monLevel = 50;
|
||||
monLevel = FRONTIER_MAX_LEVEL_50;
|
||||
for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)
|
||||
{
|
||||
monTypesBits = 0;
|
||||
@@ -5867,8 +5883,8 @@ static void InitRandomTourneyTreeResults(void)
|
||||
statSums[i] += statValues[STAT_SPDEF];
|
||||
statSums[i] += statValues[STAT_SPEED];
|
||||
statSums[i] += statValues[STAT_HP];
|
||||
monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[DOME_MONS[i][j]].species].type1];
|
||||
monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[DOME_MONS[i][j]].species].type2];
|
||||
monTypesBits |= gBitTable[gSpeciesInfo[gFacilityTrainerMons[DOME_MONS[i][j]].species].types[0]];
|
||||
monTypesBits |= gBitTable[gSpeciesInfo[gFacilityTrainerMons[DOME_MONS[i][j]].species].types[1]];
|
||||
}
|
||||
|
||||
// Because GF hates temporary vars, trainerId acts like monTypesCount here.
|
||||
@@ -5990,16 +6006,16 @@ static void DecideRoundWinners(u8 roundId)
|
||||
for (monId2 = 0; monId2 < FRONTIER_PARTY_SIZE; monId2++)
|
||||
{
|
||||
points1 += GetTypeEffectivenessPoints(gFacilityTrainerMons[DOME_MONS[tournamentId1][monId1]].moves[moveSlot],
|
||||
gFacilityTrainerMons[DOME_MONS[tournamentId2][monId2]].species, 2);
|
||||
gFacilityTrainerMons[DOME_MONS[tournamentId2][monId2]].species, EFFECTIVENESS_MODE_AI_VS_AI);
|
||||
}
|
||||
}
|
||||
species = gFacilityTrainerMons[DOME_MONS[tournamentId1][monId1]].species;
|
||||
points1 += ( gBaseStats[species].baseHP
|
||||
+ gBaseStats[species].baseAttack
|
||||
+ gBaseStats[species].baseDefense
|
||||
+ gBaseStats[species].baseSpeed
|
||||
+ gBaseStats[species].baseSpAttack
|
||||
+ gBaseStats[species].baseSpDefense) / 10;
|
||||
points1 += ( gSpeciesInfo[species].baseHP
|
||||
+ gSpeciesInfo[species].baseAttack
|
||||
+ gSpeciesInfo[species].baseDefense
|
||||
+ gSpeciesInfo[species].baseSpeed
|
||||
+ gSpeciesInfo[species].baseSpAttack
|
||||
+ gSpeciesInfo[species].baseSpDefense) / 10;
|
||||
}
|
||||
// Random part of the formula.
|
||||
points1 += (Random() & 0x1F);
|
||||
@@ -6013,16 +6029,16 @@ static void DecideRoundWinners(u8 roundId)
|
||||
for (monId2 = 0; monId2 < FRONTIER_PARTY_SIZE; monId2++)
|
||||
{
|
||||
points2 += GetTypeEffectivenessPoints(gFacilityTrainerMons[DOME_MONS[tournamentId2][monId1]].moves[moveSlot],
|
||||
gFacilityTrainerMons[DOME_MONS[tournamentId1][monId2]].species, 2);
|
||||
gFacilityTrainerMons[DOME_MONS[tournamentId1][monId2]].species, EFFECTIVENESS_MODE_AI_VS_AI);
|
||||
}
|
||||
}
|
||||
species = gFacilityTrainerMons[DOME_MONS[tournamentId2][monId1]].species;
|
||||
points2 += ( gBaseStats[species].baseHP
|
||||
+ gBaseStats[species].baseAttack
|
||||
+ gBaseStats[species].baseDefense
|
||||
+ gBaseStats[species].baseSpeed
|
||||
+ gBaseStats[species].baseSpAttack
|
||||
+ gBaseStats[species].baseSpDefense) / 10;
|
||||
points2 += ( gSpeciesInfo[species].baseHP
|
||||
+ gSpeciesInfo[species].baseAttack
|
||||
+ gSpeciesInfo[species].baseDefense
|
||||
+ gSpeciesInfo[species].baseSpeed
|
||||
+ gSpeciesInfo[species].baseSpAttack
|
||||
+ gSpeciesInfo[species].baseSpDefense) / 10;
|
||||
}
|
||||
// Random part of the formula.
|
||||
points2 += (Random() & 0x1F);
|
||||
|
||||
+29
-21
@@ -12,15 +12,15 @@
|
||||
#include "constants/battle_factory.h"
|
||||
#include "constants/battle_frontier.h"
|
||||
#include "constants/battle_frontier_mons.h"
|
||||
#include "constants/battle_tent.h"
|
||||
#include "constants/frontier_util.h"
|
||||
#include "constants/layouts.h"
|
||||
#include "constants/trainers.h"
|
||||
#include "constants/moves.h"
|
||||
#include "constants/items.h"
|
||||
|
||||
// IWRAM bss
|
||||
static bool8 sPerformedRentalSwap;
|
||||
|
||||
// This file's functions.
|
||||
static void InitFactoryChallenge(void);
|
||||
static void GetBattleFactoryData(void);
|
||||
static void SetBattleFactoryData(void);
|
||||
@@ -212,7 +212,7 @@ static void InitFactoryChallenge(void)
|
||||
}
|
||||
|
||||
sPerformedRentalSwap = FALSE;
|
||||
for (i = 0; i < 6; i++)
|
||||
for (i = 0; i < ARRAY_COUNT(gSaveBlock2Ptr->frontier.rentalMons); i++)
|
||||
gSaveBlock2Ptr->frontier.rentalMons[i].monId = 0xFFFF;
|
||||
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
|
||||
gFrontierTempParty[i] = 0xFFFF;
|
||||
@@ -310,11 +310,12 @@ static void GenerateOpponentMons(void)
|
||||
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
|
||||
u32 winStreak = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode];
|
||||
u32 challengeNum = winStreak / 7;
|
||||
u32 challengeNum = winStreak / FRONTIER_STAGES_PER_CHALLENGE;
|
||||
gFacilityTrainers = gBattleFrontierTrainers;
|
||||
|
||||
do
|
||||
{
|
||||
// Choose a random trainer, ensuring no repeats in this challenge
|
||||
trainerId = GetRandomScaledFrontierTrainerId(challengeNum, gSaveBlock2Ptr->frontier.curChallengeBattleNum);
|
||||
for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++)
|
||||
{
|
||||
@@ -324,27 +325,32 @@ static void GenerateOpponentMons(void)
|
||||
} while (i != gSaveBlock2Ptr->frontier.curChallengeBattleNum);
|
||||
|
||||
gTrainerBattleOpponent_A = trainerId;
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < 6)
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < FRONTIER_STAGES_PER_CHALLENGE - 1)
|
||||
gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = trainerId;
|
||||
|
||||
i = 0;
|
||||
while (i != FRONTIER_PARTY_SIZE)
|
||||
{
|
||||
u16 monId = GetFactoryMonId(lvlMode, challengeNum, FALSE);
|
||||
|
||||
// Unown (FRONTIER_MON_UNOWN) is forbidden on opponent Factory teams.
|
||||
if (gFacilityTrainerMons[monId].species == SPECIES_UNOWN)
|
||||
continue;
|
||||
|
||||
for (j = 0; j < 6; j++)
|
||||
// Ensure none of the opponent's pokemon are the same as the potential rental pokemon for the player
|
||||
for (j = 0; j < (int)ARRAY_COUNT(gSaveBlock2Ptr->frontier.rentalMons); j++)
|
||||
{
|
||||
if (gFacilityTrainerMons[monId].species == gFacilityTrainerMons[gSaveBlock2Ptr->frontier.rentalMons[j].monId].species)
|
||||
break;
|
||||
}
|
||||
if (j != 6)
|
||||
if (j != (int)ARRAY_COUNT(gSaveBlock2Ptr->frontier.rentalMons))
|
||||
continue;
|
||||
|
||||
// "High tier" pokemon are only allowed on open level mode
|
||||
if (lvlMode == FRONTIER_LVL_50 && monId > FRONTIER_MONS_HIGH_TIER)
|
||||
continue;
|
||||
|
||||
// Ensure this species hasn't already been chosen for the opponent
|
||||
for (k = firstMonId; k < firstMonId + i; k++)
|
||||
{
|
||||
if (species[k] == gFacilityTrainerMons[monId].species)
|
||||
@@ -353,14 +359,16 @@ static void GenerateOpponentMons(void)
|
||||
if (k != firstMonId + i)
|
||||
continue;
|
||||
|
||||
// Ensure held items don't repeat on the opponent's team
|
||||
for (k = firstMonId; k < firstMonId + i; k++)
|
||||
{
|
||||
if (heldItems[k] != 0 && heldItems[k] == gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId])
|
||||
if (heldItems[k] != ITEM_NONE && heldItems[k] == gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId])
|
||||
break;
|
||||
}
|
||||
if (k != firstMonId + i)
|
||||
continue;
|
||||
|
||||
// Successful selection
|
||||
species[i] = gFacilityTrainerMons[monId].species;
|
||||
heldItems[i] = gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId];
|
||||
gFrontierTempParty[i] = monId;
|
||||
@@ -406,15 +414,15 @@ static void SetPlayerAndOpponentParties(void)
|
||||
if (gSaveBlock2Ptr->frontier.lvlMode == FRONTIER_LVL_TENT)
|
||||
{
|
||||
gFacilityTrainerMons = gSlateportBattleTentMons;
|
||||
monLevel = 30;
|
||||
monLevel = TENT_MIN_LEVEL;
|
||||
}
|
||||
else
|
||||
{
|
||||
gFacilityTrainerMons = gBattleFrontierMons;
|
||||
if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_50)
|
||||
monLevel = 100;
|
||||
monLevel = FRONTIER_MAX_LEVEL_OPEN;
|
||||
else
|
||||
monLevel = 50;
|
||||
monLevel = FRONTIER_MAX_LEVEL_50;
|
||||
}
|
||||
|
||||
if (gSpecialVar_0x8005 < 2)
|
||||
@@ -610,17 +618,17 @@ static void GetOpponentMostCommonMonType(void)
|
||||
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
|
||||
{
|
||||
u32 species = gFacilityTrainerMons[gFrontierTempParty[i]].species;
|
||||
typeCounts[gBaseStats[species].type1]++;
|
||||
if (gBaseStats[species].type1 != gBaseStats[species].type2)
|
||||
typeCounts[gBaseStats[species].type2]++;
|
||||
typeCounts[gSpeciesInfo[species].types[0]]++;
|
||||
if (gSpeciesInfo[species].types[0] != gSpeciesInfo[species].types[1])
|
||||
typeCounts[gSpeciesInfo[species].types[1]]++;
|
||||
}
|
||||
|
||||
// Determine which are the two most-common types.
|
||||
// The second most-common type is only updated if
|
||||
// its count is equal to the most-common type.
|
||||
mostCommonTypes[0] = TYPE_NORMAL;
|
||||
mostCommonTypes[1] = TYPE_NORMAL;
|
||||
for (i = TYPE_FIGHTING; i < NUMBER_OF_MON_TYPES; i++)
|
||||
mostCommonTypes[0] = 0;
|
||||
mostCommonTypes[1] = 0;
|
||||
for (i = 1; i < NUMBER_OF_MON_TYPES; i++)
|
||||
{
|
||||
if (typeCounts[mostCommonTypes[0]] < typeCounts[i])
|
||||
mostCommonTypes[0] = i;
|
||||
@@ -765,15 +773,15 @@ void FillFactoryBrainParty(void)
|
||||
|
||||
if (gFacilityTrainerMons[monId].species == SPECIES_UNOWN)
|
||||
continue;
|
||||
if (monLevel == 50 && monId > FRONTIER_MONS_HIGH_TIER)
|
||||
if (monLevel == FRONTIER_MAX_LEVEL_50 && monId > FRONTIER_MONS_HIGH_TIER)
|
||||
continue;
|
||||
|
||||
for (j = 0; j < 6; j++)
|
||||
for (j = 0; j < (int)ARRAY_COUNT(gSaveBlock2Ptr->frontier.rentalMons); j++)
|
||||
{
|
||||
if (monId == gSaveBlock2Ptr->frontier.rentalMons[j].monId)
|
||||
break;
|
||||
}
|
||||
if (j != 6)
|
||||
if (j != (int)ARRAY_COUNT(gSaveBlock2Ptr->frontier.rentalMons))
|
||||
continue;
|
||||
|
||||
for (k = 0; k < i; k++)
|
||||
@@ -786,7 +794,7 @@ void FillFactoryBrainParty(void)
|
||||
|
||||
for (k = 0; k < i; k++)
|
||||
{
|
||||
if (heldItems[k] != 0 && heldItems[k] == gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId])
|
||||
if (heldItems[k] != ITEM_NONE && heldItems[k] == gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId])
|
||||
break;
|
||||
}
|
||||
if (k != i)
|
||||
|
||||
+28
-34
@@ -410,7 +410,7 @@ static const struct OamData sOam_Select_Pokeball =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(32x32),
|
||||
.x = 0,
|
||||
@@ -427,7 +427,7 @@ static const struct OamData sOam_Select_Arrow =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(16x16),
|
||||
.x = 0,
|
||||
@@ -444,7 +444,7 @@ static const struct OamData sOam_Select_MenuHighlight =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(32x16),
|
||||
.x = 0,
|
||||
@@ -461,7 +461,7 @@ static const struct OamData sOam_Select_MonPicBgAnim =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_DOUBLE,
|
||||
.objMode = ST_OAM_OBJ_BLEND,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(64x64),
|
||||
.x = 0,
|
||||
@@ -661,7 +661,7 @@ static const struct OamData sOam_Swap_Pokeball =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(32x32),
|
||||
.x = 0,
|
||||
@@ -678,7 +678,7 @@ static const struct OamData sOam_Swap_Arrow =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(16x16),
|
||||
.x = 0,
|
||||
@@ -695,7 +695,7 @@ static const struct OamData sOam_Swap_MenuHighlight =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(32x16),
|
||||
.x = 0,
|
||||
@@ -712,7 +712,7 @@ static const struct OamData sOam_Swap_MonPicBgAnim =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_DOUBLE,
|
||||
.objMode = ST_OAM_OBJ_BLEND,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(64x64),
|
||||
.x = 0,
|
||||
@@ -1131,8 +1131,7 @@ static void CB2_InitSelectScreen(void)
|
||||
switch (gMain.state)
|
||||
{
|
||||
case 0:
|
||||
if (sFactorySelectMons != NULL)
|
||||
FREE_AND_SET_NULL(sFactorySelectMons);
|
||||
TRY_FREE_AND_SET_NULL(sFactorySelectMons);
|
||||
SetHBlankCallback(NULL);
|
||||
SetVBlankCallback(NULL);
|
||||
CpuFill32(0, (void *)VRAM, VRAM_SIZE);
|
||||
@@ -1176,16 +1175,16 @@ static void CB2_InitSelectScreen(void)
|
||||
LoadBgTiles(3, sSelectMonPicBgTilesetBuffer, 0x60, 0);
|
||||
CpuCopy16(gFrontierFactorySelectMenu_Tilemap, sSelectMenuTilemapBuffer, BG_SCREEN_SIZE);
|
||||
LoadBgTilemap(1, sSelectMenuTilemapBuffer, BG_SCREEN_SIZE, 0);
|
||||
LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40);
|
||||
LoadPalette(sSelectText_Pal, 0xF0, 8);
|
||||
LoadPalette(sSelectText_Pal, 0xE0, 10);
|
||||
LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 2 * PLTT_SIZE_4BPP);
|
||||
LoadPalette(sSelectText_Pal, BG_PLTT_ID(15), PLTT_SIZEOF(4));
|
||||
LoadPalette(sSelectText_Pal, BG_PLTT_ID(14), PLTT_SIZEOF(5));
|
||||
#ifdef UBFIX
|
||||
if (sFactorySelectScreen && sFactorySelectScreen->fromSummaryScreen)
|
||||
#else
|
||||
if (sFactorySelectScreen->fromSummaryScreen == TRUE)
|
||||
#endif
|
||||
gPlttBufferUnfaded[228] = sFactorySelectScreen->speciesNameColorBackup;
|
||||
LoadPalette(sMonPicBg_Pal, 0x20, 4);
|
||||
LoadPalette(sMonPicBg_Pal, BG_PLTT_ID(2), PLTT_SIZEOF(2));
|
||||
gMain.state++;
|
||||
break;
|
||||
case 3:
|
||||
@@ -1748,9 +1747,9 @@ static void CreateFrontierFactorySelectableMons(u8 firstMonId)
|
||||
u16 monId = gSaveBlock2Ptr->frontier.rentalMons[i].monId;
|
||||
sFactorySelectScreen->mons[i + firstMonId].monId = monId;
|
||||
if (i < rentalRank)
|
||||
ivs = GetFactoryMonFixedIV(challengeNum + 1, 0);
|
||||
ivs = GetFactoryMonFixedIV(challengeNum + 1, FALSE);
|
||||
else
|
||||
ivs = GetFactoryMonFixedIV(challengeNum, 0);
|
||||
ivs = GetFactoryMonFixedIV(challengeNum, FALSE);
|
||||
CreateMonWithEVSpreadNatureOTID(&sFactorySelectScreen->mons[i + firstMonId].monData,
|
||||
gFacilityTrainerMons[monId].species,
|
||||
level,
|
||||
@@ -2474,7 +2473,7 @@ static void Swap_Task_HandleYesNo(u8 taskId)
|
||||
gTasks[taskId].tSaidYes = TRUE;
|
||||
hiPtr = gTasks[taskId].tFollowUpTaskPtrHi;
|
||||
loPtr = gTasks[taskId].tFollowUpTaskPtrLo;
|
||||
gTasks[taskId].func = (void*)((hiPtr << 16) | loPtr);
|
||||
gTasks[taskId].func = (void *)((hiPtr << 16) | loPtr);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2483,7 +2482,7 @@ static void Swap_Task_HandleYesNo(u8 taskId)
|
||||
Swap_ErasePopupMenu(SWAP_WIN_YES_NO);
|
||||
hiPtr = gTasks[taskId].tFollowUpTaskPtrHi;
|
||||
loPtr = gTasks[taskId].tFollowUpTaskPtrLo;
|
||||
gTasks[taskId].func = (void*)((hiPtr << 16) | loPtr);
|
||||
gTasks[taskId].func = (void *)((hiPtr << 16) | loPtr);
|
||||
}
|
||||
}
|
||||
else if (JOY_NEW(B_BUTTON))
|
||||
@@ -2493,7 +2492,7 @@ static void Swap_Task_HandleYesNo(u8 taskId)
|
||||
Swap_ErasePopupMenu(SWAP_WIN_YES_NO);
|
||||
hiPtr = gTasks[taskId].tFollowUpTaskPtrHi;
|
||||
loPtr = gTasks[taskId].tFollowUpTaskPtrLo;
|
||||
gTasks[taskId].func = (void*)((hiPtr << 16) | loPtr);
|
||||
gTasks[taskId].func = (void *)((hiPtr << 16) | loPtr);
|
||||
}
|
||||
else if (JOY_REPEAT(DPAD_UP))
|
||||
{
|
||||
@@ -2749,7 +2748,7 @@ static void Swap_Task_FadeOutSpeciesName(u8 taskId)
|
||||
gTasks[taskId].tState++;
|
||||
break;
|
||||
case 1:
|
||||
LoadPalette(&gPlttBufferUnfaded[0xF0], 0xE0, 0xA);
|
||||
LoadPalette(&gPlttBufferUnfaded[BG_PLTT_ID(15)], BG_PLTT_ID(14), PLTT_SIZEOF(5));
|
||||
gTasks[taskId].tState++;
|
||||
break;
|
||||
case 2:
|
||||
@@ -2995,7 +2994,7 @@ static void Swap_Task_ScreenInfoTransitionOut(u8 taskId)
|
||||
switch (gTasks[taskId].tState)
|
||||
{
|
||||
case 0:
|
||||
LoadPalette(sSwapText_Pal, 0xE0, sizeof(sSwapText_Pal));
|
||||
LoadPalette(sSwapText_Pal, BG_PLTT_ID(14), sizeof(sSwapText_Pal));
|
||||
Swap_PrintActionStrings();
|
||||
PutWindowTilemap(SWAP_WIN_ACTION_FADE);
|
||||
gTasks[taskId].tState++;
|
||||
@@ -3310,10 +3309,10 @@ static void CB2_InitSwapScreen(void)
|
||||
LoadBgTiles(3, sSwapMonPicBgTilesetBuffer, 0x60, 0);
|
||||
CpuCopy16(gFrontierFactorySelectMenu_Tilemap, sSwapMenuTilemapBuffer, BG_SCREEN_SIZE);
|
||||
LoadBgTilemap(1, sSwapMenuTilemapBuffer, BG_SCREEN_SIZE, 0);
|
||||
LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40);
|
||||
LoadPalette(sSwapText_Pal, 0xF0, sizeof(sSwapText_Pal));
|
||||
LoadPalette(sSwapText_Pal, 0xE0, sizeof(sSwapText_Pal));
|
||||
LoadPalette(sMonPicBg_Pal, 0x20, 4);
|
||||
LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 2 * PLTT_SIZE_4BPP);
|
||||
LoadPalette(sSwapText_Pal, BG_PLTT_ID(15), sizeof(sSwapText_Pal));
|
||||
LoadPalette(sSwapText_Pal, BG_PLTT_ID(14), sizeof(sSwapText_Pal));
|
||||
LoadPalette(sMonPicBg_Pal, BG_PLTT_ID(2), PLTT_SIZEOF(2));
|
||||
gMain.state++;
|
||||
break;
|
||||
case 3:
|
||||
@@ -3868,7 +3867,7 @@ static void Swap_PrintMonSpeciesAtFade(void)
|
||||
pal[4] = gPlttBufferFaded[228];
|
||||
else
|
||||
pal[4] = sFactorySwapScreen->speciesNameColorBackup;
|
||||
LoadPalette(pal, 0xF0, sizeof(sSwapText_Pal));
|
||||
LoadPalette(pal, BG_PLTT_ID(15), sizeof(sSwapText_Pal));
|
||||
|
||||
PutWindowTilemap(SWAP_WIN_SPECIES_AT_FADE);
|
||||
FillWindowPixelBuffer(SWAP_WIN_SPECIES_AT_FADE, PIXEL_FILL(0));
|
||||
@@ -3896,8 +3895,8 @@ static void Swap_PrintMonSpeciesForTransition(void)
|
||||
u16 species;
|
||||
u8 x;
|
||||
|
||||
LoadPalette(sSwapText_Pal, 0xE0, sizeof(sSwapText_Pal));
|
||||
CpuCopy16(&gPlttBufferUnfaded[240], &gPlttBufferFaded[224], 10);
|
||||
LoadPalette(sSwapText_Pal, BG_PLTT_ID(14), sizeof(sSwapText_Pal));
|
||||
CpuCopy16(&gPlttBufferUnfaded[BG_PLTT_ID(15)], &gPlttBufferFaded[BG_PLTT_ID(14)], PLTT_SIZEOF(5));
|
||||
|
||||
if (sFactorySwapScreen->cursorPos >= FRONTIER_PARTY_SIZE)
|
||||
{
|
||||
@@ -4221,17 +4220,12 @@ static void Task_OpenMonPic(u8 taskId)
|
||||
return;
|
||||
break;
|
||||
default:
|
||||
#ifndef UBFIX
|
||||
DestroyTask(taskId);
|
||||
#endif
|
||||
// UB: Should not use the task after it has been deleted.
|
||||
// Accessing data of destroyed task. Task data isn't reset until a new task needs that task id.
|
||||
if (gTasks[taskId].tIsSwapScreen == TRUE)
|
||||
Swap_CreateMonSprite();
|
||||
else
|
||||
Select_CreateMonSprite();
|
||||
#ifdef UBFIX
|
||||
DestroyTask(taskId);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
task->tState++;
|
||||
|
||||
+37
-37
@@ -110,7 +110,7 @@ u16 ChooseMoveAndTargetInBattlePalace(void)
|
||||
{
|
||||
s32 i, var1, var2;
|
||||
s32 chosenMoveId = -1;
|
||||
struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]);
|
||||
struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct *)(&gBattleBufferA[gActiveBattler][4]);
|
||||
u8 unusableMovesBits = CheckMoveLimitations(gActiveBattler, 0, MOVE_LIMITATIONS_ALL);
|
||||
s32 percent = Random() % 100;
|
||||
|
||||
@@ -254,7 +254,7 @@ u16 ChooseMoveAndTargetInBattlePalace(void)
|
||||
else if (moveTarget == MOVE_TARGET_SELECTED)
|
||||
chosenMoveId |= GetBattlePalaceTarget();
|
||||
else
|
||||
chosenMoveId |= (GetBattlerAtPosition((GetBattlerPosition(gActiveBattler) & BIT_SIDE) ^ BIT_SIDE) << 8);
|
||||
chosenMoveId |= (GetBattlerAtPosition(BATTLE_OPPOSITE(GET_BATTLER_SIDE(gActiveBattler))) << 8);
|
||||
|
||||
return chosenMoveId;
|
||||
}
|
||||
@@ -310,7 +310,7 @@ static u16 GetBattlePalaceTarget(void)
|
||||
}
|
||||
|
||||
if (gBattleMons[opposing1].hp == gBattleMons[opposing2].hp)
|
||||
return (((gActiveBattler & BIT_SIDE) ^ BIT_SIDE) + (Random() & 2)) << 8;
|
||||
return (BATTLE_OPPOSITE(gActiveBattler & BIT_SIDE) + (Random() & 2)) << 8;
|
||||
|
||||
switch (gBattlePalaceNatureToMoveTarget[GetNatureFromPersonality(gBattleMons[gActiveBattler].personality)])
|
||||
{
|
||||
@@ -325,11 +325,11 @@ static u16 GetBattlePalaceTarget(void)
|
||||
else
|
||||
return opposing2 << 8;
|
||||
case PALACE_TARGET_RANDOM:
|
||||
return (((gActiveBattler & BIT_SIDE) ^ BIT_SIDE) + (Random() & 2)) << 8;
|
||||
return (BATTLE_OPPOSITE(gActiveBattler & BIT_SIDE) + (Random() & 2)) << 8;
|
||||
}
|
||||
}
|
||||
|
||||
return (gActiveBattler ^ BIT_SIDE) << 8;
|
||||
return BATTLE_OPPOSITE(gActiveBattler) << 8;
|
||||
}
|
||||
|
||||
// Wait for the pokemon to finish appearing out from the pokeball on send out
|
||||
@@ -353,12 +353,12 @@ void SpriteCB_WaitForBattlerBallReleaseAnim(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void UnusedDoBattleSpriteAffineAnim(struct Sprite *sprite, bool8 arg1)
|
||||
static void UnusedDoBattleSpriteAffineAnim(struct Sprite *sprite, bool8 pointless)
|
||||
{
|
||||
sprite->animPaused = TRUE;
|
||||
sprite->callback = SpriteCallbackDummy;
|
||||
|
||||
if (!arg1)
|
||||
if (!pointless)
|
||||
StartSpriteAffineAnim(sprite, 1);
|
||||
else
|
||||
StartSpriteAffineAnim(sprite, 1);
|
||||
@@ -576,7 +576,7 @@ void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 battlerId)
|
||||
gMonSpritesGfxPtr->sprites.ptr[position],
|
||||
species, currentPersonality);
|
||||
|
||||
paletteOffset = 0x100 + battlerId * 16;
|
||||
paletteOffset = OBJ_PLTT_ID(battlerId);
|
||||
|
||||
if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies == SPECIES_NONE)
|
||||
lzPaletteData = GetMonFrontSpritePal(mon);
|
||||
@@ -584,21 +584,21 @@ void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 battlerId)
|
||||
lzPaletteData = GetMonSpritePalFromSpeciesAndPersonality(species, otId, monsPersonality);
|
||||
|
||||
LZDecompressWram(lzPaletteData, gDecompressionBuffer);
|
||||
LoadPalette(gDecompressionBuffer, paletteOffset, 0x20);
|
||||
LoadPalette(gDecompressionBuffer, 0x80 + battlerId * 16, 0x20);
|
||||
LoadPalette(gDecompressionBuffer, paletteOffset, PLTT_SIZE_4BPP);
|
||||
LoadPalette(gDecompressionBuffer, BG_PLTT_ID(8) + BG_PLTT_ID(battlerId), PLTT_SIZE_4BPP);
|
||||
|
||||
if (species == SPECIES_CASTFORM)
|
||||
{
|
||||
paletteOffset = 0x100 + battlerId * 16;
|
||||
LZDecompressWram(lzPaletteData, gBattleStruct->castformPalette[CASTFORM_NORMAL]);
|
||||
LoadPalette(gBattleStruct->castformPalette[gBattleMonForms[battlerId]], paletteOffset, 0x20);
|
||||
paletteOffset = OBJ_PLTT_ID(battlerId);
|
||||
LZDecompressWram(lzPaletteData, gBattleStruct->castformPalette);
|
||||
LoadPalette(gBattleStruct->castformPalette[gBattleMonForms[battlerId]], paletteOffset, PLTT_SIZE_4BPP);
|
||||
}
|
||||
|
||||
// transform's pink color
|
||||
if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != SPECIES_NONE)
|
||||
{
|
||||
BlendPalette(paletteOffset, 16, 6, RGB_WHITE);
|
||||
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32);
|
||||
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, PLTT_SIZEOF(16));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -639,7 +639,7 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId)
|
||||
species, currentPersonality);
|
||||
}
|
||||
|
||||
paletteOffset = 0x100 + battlerId * 16;
|
||||
paletteOffset = OBJ_PLTT_ID(battlerId);
|
||||
|
||||
if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies == SPECIES_NONE)
|
||||
lzPaletteData = GetMonFrontSpritePal(mon);
|
||||
@@ -647,21 +647,21 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId)
|
||||
lzPaletteData = GetMonSpritePalFromSpeciesAndPersonality(species, otId, monsPersonality);
|
||||
|
||||
LZDecompressWram(lzPaletteData, gDecompressionBuffer);
|
||||
LoadPalette(gDecompressionBuffer, paletteOffset, 0x20);
|
||||
LoadPalette(gDecompressionBuffer, 0x80 + battlerId * 16, 0x20);
|
||||
LoadPalette(gDecompressionBuffer, paletteOffset, PLTT_SIZE_4BPP);
|
||||
LoadPalette(gDecompressionBuffer, BG_PLTT_ID(8) + BG_PLTT_ID(battlerId), PLTT_SIZE_4BPP);
|
||||
|
||||
if (species == SPECIES_CASTFORM)
|
||||
{
|
||||
paletteOffset = 0x100 + battlerId * 16;
|
||||
LZDecompressWram(lzPaletteData, gBattleStruct->castformPalette[CASTFORM_NORMAL]);
|
||||
LoadPalette(gBattleStruct->castformPalette[gBattleMonForms[battlerId]], paletteOffset, 0x20);
|
||||
paletteOffset = OBJ_PLTT_ID(battlerId);
|
||||
LZDecompressWram(lzPaletteData, gBattleStruct->castformPalette);
|
||||
LoadPalette(gBattleStruct->castformPalette[gBattleMonForms[battlerId]], paletteOffset, PLTT_SIZE_4BPP);
|
||||
}
|
||||
|
||||
// transform's pink color
|
||||
if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != SPECIES_NONE)
|
||||
{
|
||||
BlendPalette(paletteOffset, 16, 6, RGB_WHITE);
|
||||
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32);
|
||||
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, PLTT_SIZEOF(16));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -690,7 +690,7 @@ void DecompressTrainerBackPic(u16 backPicId, u8 battlerId)
|
||||
gMonSpritesGfxPtr->sprites.ptr[position],
|
||||
SPECIES_NONE);
|
||||
LoadCompressedPalette(gTrainerBackPicPaletteTable[backPicId].data,
|
||||
0x100 + 16 * battlerId, 0x20);
|
||||
OBJ_PLTT_ID(battlerId), PLTT_SIZE_4BPP);
|
||||
}
|
||||
|
||||
void BattleGfxSfxDummy3(u8 gender)
|
||||
@@ -783,7 +783,7 @@ bool8 BattleLoadAllHealthBoxesGfx(u8 state)
|
||||
return retVal;
|
||||
}
|
||||
|
||||
void LoadBattleBarGfx(u8 arg0)
|
||||
void LoadBattleBarGfx(u8 unused)
|
||||
{
|
||||
LZDecompressWram(gBattleInterfaceGfx_BattleBar, gMonSpritesGfxPtr->barFontGfx);
|
||||
}
|
||||
@@ -903,13 +903,13 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool8 castform)
|
||||
if (castform)
|
||||
{
|
||||
StartSpriteAnim(&gSprites[gBattlerSpriteIds[battlerAtk]], gBattleSpritesDataPtr->animationData->animArg);
|
||||
paletteOffset = 0x100 + battlerAtk * 16;
|
||||
LoadPalette(gBattleStruct->castformPalette[gBattleSpritesDataPtr->animationData->animArg], paletteOffset, 32);
|
||||
paletteOffset = OBJ_PLTT_ID(battlerAtk);
|
||||
LoadPalette(gBattleStruct->castformPalette[gBattleSpritesDataPtr->animationData->animArg], paletteOffset, PLTT_SIZE_4BPP);
|
||||
gBattleMonForms[battlerAtk] = gBattleSpritesDataPtr->animationData->animArg;
|
||||
if (gBattleSpritesDataPtr->battlerData[battlerAtk].transformSpecies != SPECIES_NONE)
|
||||
{
|
||||
BlendPalette(paletteOffset, 16, 6, RGB_WHITE);
|
||||
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32);
|
||||
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, PLTT_SIZEOF(16));
|
||||
}
|
||||
gSprites[gBattlerSpriteIds[battlerAtk]].y = GetBattlerSpriteDefault_Y(battlerAtk);
|
||||
}
|
||||
@@ -965,20 +965,20 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool8 castform)
|
||||
src = gMonSpritesGfxPtr->sprites.ptr[position];
|
||||
dst = (void *)(OBJ_VRAM0 + gSprites[gBattlerSpriteIds[battlerAtk]].oam.tileNum * 32);
|
||||
DmaCopy32(3, src, dst, MON_PIC_SIZE);
|
||||
paletteOffset = 0x100 + battlerAtk * 16;
|
||||
paletteOffset = OBJ_PLTT_ID(battlerAtk);
|
||||
lzPaletteData = GetMonSpritePalFromSpeciesAndPersonality(targetSpecies, otId, personalityValue);
|
||||
LZDecompressWram(lzPaletteData, gDecompressionBuffer);
|
||||
LoadPalette(gDecompressionBuffer, paletteOffset, 32);
|
||||
LoadPalette(gDecompressionBuffer, paletteOffset, PLTT_SIZE_4BPP);
|
||||
|
||||
if (targetSpecies == SPECIES_CASTFORM)
|
||||
{
|
||||
gSprites[gBattlerSpriteIds[battlerAtk]].anims = gMonFrontAnimsPtrTable[targetSpecies];
|
||||
LZDecompressWram(lzPaletteData, gBattleStruct->castformPalette[CASTFORM_NORMAL]);
|
||||
LoadPalette(gBattleStruct->castformPalette[gBattleMonForms[battlerDef]], paletteOffset, 32);
|
||||
LZDecompressWram(lzPaletteData, gBattleStruct->castformPalette);
|
||||
LoadPalette(gBattleStruct->castformPalette[gBattleMonForms[battlerDef]], paletteOffset, PLTT_SIZE_4BPP);
|
||||
}
|
||||
|
||||
BlendPalette(paletteOffset, 16, 6, RGB_WHITE);
|
||||
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32);
|
||||
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, PLTT_SIZEOF(16));
|
||||
|
||||
if (!IsContest())
|
||||
{
|
||||
@@ -1014,8 +1014,8 @@ void BattleLoadSubstituteOrMonSpriteGfx(u8 battlerId, bool8 loadMonSprite)
|
||||
Dma3CopyLarge32_(gMonSpritesGfxPtr->sprites.ptr[position], &gMonSpritesGfxPtr->sprites.byte[position][MON_PIC_SIZE * i], MON_PIC_SIZE);
|
||||
}
|
||||
|
||||
palOffset = (battlerId * 16) + 0x100;
|
||||
LoadCompressedPalette(gSubstituteDollPal, palOffset, 32);
|
||||
palOffset = OBJ_PLTT_ID(battlerId);
|
||||
LoadCompressedPalette(gSubstituteDollPal, palOffset, PLTT_SIZE_4BPP);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1060,7 +1060,7 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 battlerId)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->battlerData[battlerId ^ BIT_FLANK].lowHpSong)
|
||||
if (!gBattleSpritesDataPtr->battlerData[BATTLE_PARTNER(battlerId)].lowHpSong)
|
||||
PlaySE(SE_LOW_HEALTH);
|
||||
gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong = 1;
|
||||
}
|
||||
@@ -1073,7 +1073,7 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 battlerId)
|
||||
m4aSongNumStop(SE_LOW_HEALTH);
|
||||
return;
|
||||
}
|
||||
if (IsDoubleBattle() && !gBattleSpritesDataPtr->battlerData[battlerId ^ BIT_FLANK].lowHpSong)
|
||||
if (IsDoubleBattle() && !gBattleSpritesDataPtr->battlerData[BATTLE_PARTNER(battlerId)].lowHpSong)
|
||||
{
|
||||
m4aSongNumStop(SE_LOW_HEALTH);
|
||||
return;
|
||||
@@ -1087,7 +1087,7 @@ void BattleStopLowHpSound(void)
|
||||
|
||||
gBattleSpritesDataPtr->battlerData[playerBattler].lowHpSong = 0;
|
||||
if (IsDoubleBattle())
|
||||
gBattleSpritesDataPtr->battlerData[playerBattler ^ BIT_FLANK].lowHpSong = 0;
|
||||
gBattleSpritesDataPtr->battlerData[BATTLE_PARTNER(playerBattler)].lowHpSong = 0;
|
||||
|
||||
m4aSongNumStop(SE_LOW_HEALTH);
|
||||
}
|
||||
@@ -1219,7 +1219,7 @@ void HideBattlerShadowSprite(u8 battlerId)
|
||||
// Color the background tiles surrounding the action selection and move windows
|
||||
void FillAroundBattleWindows(void)
|
||||
{
|
||||
u16 *vramPtr = (u16*)(VRAM + 0x240);
|
||||
u16 *vramPtr = (u16 *)(VRAM + 0x240);
|
||||
s32 i;
|
||||
s32 j;
|
||||
|
||||
|
||||
+141
-113
@@ -158,43 +158,43 @@ enum
|
||||
HEALTHBOX_GFX_FRAME_END_BAR,
|
||||
};
|
||||
|
||||
static const u8 *GetHealthboxElementGfxPtr(u8 elementId);
|
||||
static u8* AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y, u32 bgColor, u32 *windowId);
|
||||
static const u8 *GetHealthboxElementGfxPtr(u8);
|
||||
static u8 *AddTextPrinterAndCreateWindowOnHealthbox(const u8 *, u32, u32, u32, u32 *);
|
||||
|
||||
static void RemoveWindowOnHealthbox(u32 windowId);
|
||||
static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent);
|
||||
static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId);
|
||||
static void UpdateHpTextInHealthboxInDoubles(u8, s16, u8);
|
||||
static void UpdateStatusIconInHealthbox(u8);
|
||||
|
||||
static void TextIntoHealthboxObject(void *dest, u8 *windowTileData, s32 windowWidth);
|
||||
static void SafariTextIntoHealthboxObject(void *dest, u8 *windowTileData, u32 windowWidth);
|
||||
static void HpTextIntoHealthboxObject(void *dest, u8 *windowTileData, u32 windowWidth);
|
||||
static void FillHealthboxObject(void *dest, u32 arg1, u32 arg2);
|
||||
static void TextIntoHealthboxObject(void *, u8 *, s32);
|
||||
static void SafariTextIntoHealthboxObject(void *, u8 *, u32);
|
||||
static void HpTextIntoHealthboxObject(void *, u8 *, u32);
|
||||
static void FillHealthboxObject(void *, u32, u32);
|
||||
|
||||
static void Task_HidePartyStatusSummary_BattleStart_1(u8 taskId);
|
||||
static void Task_HidePartyStatusSummary_BattleStart_2(u8 taskId);
|
||||
static void Task_HidePartyStatusSummary_DuringBattle(u8 taskId);
|
||||
static void Task_HidePartyStatusSummary_BattleStart_1(u8);
|
||||
static void Task_HidePartyStatusSummary_BattleStart_2(u8);
|
||||
static void Task_HidePartyStatusSummary_DuringBattle(u8);
|
||||
|
||||
static void SpriteCB_HealthBoxOther(struct Sprite *sprite);
|
||||
static void SpriteCB_HealthBar(struct Sprite *sprite);
|
||||
static void SpriteCB_StatusSummaryBar_Enter(struct Sprite *sprite);
|
||||
static void SpriteCB_StatusSummaryBar_Exit(struct Sprite *sprite);
|
||||
static void SpriteCB_StatusSummaryBalls_Enter(struct Sprite *sprite);
|
||||
static void SpriteCB_StatusSummaryBalls_Exit(struct Sprite *sprite);
|
||||
static void SpriteCB_StatusSummaryBalls_OnSwitchout(struct Sprite *sprite);
|
||||
static void SpriteCB_HealthBoxOther(struct Sprite *);
|
||||
static void SpriteCB_HealthBar(struct Sprite *);
|
||||
static void SpriteCB_StatusSummaryBar_Enter(struct Sprite *);
|
||||
static void SpriteCB_StatusSummaryBar_Exit(struct Sprite *);
|
||||
static void SpriteCB_StatusSummaryBalls_Enter(struct Sprite *);
|
||||
static void SpriteCB_StatusSummaryBalls_Exit(struct Sprite *);
|
||||
static void SpriteCB_StatusSummaryBalls_OnSwitchout(struct Sprite *);
|
||||
|
||||
static u8 GetStatusIconForBattlerId(u8 statusElementId, u8 battlerId);
|
||||
static s32 CalcNewBarValue(s32 maxValue, s32 currValue, s32 receivedValue, s32 *arg3, u8 arg4, u16 arg5);
|
||||
static u8 GetScaledExpFraction(s32 currValue, s32 receivedValue, s32 maxValue, u8 scale);
|
||||
static void MoveBattleBarGraphically(u8 battlerId, u8 whichBar);
|
||||
static u8 CalcBarFilledPixels(s32 maxValue, s32 oldValue, s32 receivedValue, s32 *currValue, u8 *arg4, u8 scale);
|
||||
static void Debug_TestHealthBar_Helper(struct TestingBar *barInfo, s32 *arg1, u16 *arg2);
|
||||
static u8 GetStatusIconForBattlerId(u8, u8);
|
||||
static s32 CalcNewBarValue(s32, s32, s32, s32 *, u8, u16);
|
||||
static u8 GetScaledExpFraction(s32, s32, s32, u8);
|
||||
static void MoveBattleBarGraphically(u8, u8);
|
||||
static u8 CalcBarFilledPixels(s32, s32, s32, s32 *, u8 *, u8);
|
||||
static void Debug_TestHealthBar_Helper(struct TestingBar *, s32 *, u16 *);
|
||||
|
||||
static const struct OamData sOamData_64x32 =
|
||||
{
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(64x32),
|
||||
.x = 0,
|
||||
@@ -266,7 +266,7 @@ static const struct OamData sOamData_Healthbar =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(32x8),
|
||||
.x = 0,
|
||||
@@ -318,10 +318,17 @@ static const struct SpriteTemplate sHealthbarSpriteTemplates[MAX_BATTLERS_COUNT]
|
||||
}
|
||||
};
|
||||
|
||||
/* v-- Origin
|
||||
[0 + ][1 ]
|
||||
[ ][ ]
|
||||
[ ][ ]
|
||||
[______________][______] 96x40
|
||||
[2 ][3 ][4 ]
|
||||
*/
|
||||
static const struct Subsprite sUnused_Subsprites_0[] =
|
||||
{
|
||||
{
|
||||
.x = DISPLAY_WIDTH,
|
||||
.x = -16,
|
||||
.y = 0,
|
||||
.shape = SPRITE_SHAPE(64x32),
|
||||
.size = SPRITE_SIZE(64x32),
|
||||
@@ -337,7 +344,7 @@ static const struct Subsprite sUnused_Subsprites_0[] =
|
||||
.priority = 1
|
||||
},
|
||||
{
|
||||
.x = DISPLAY_WIDTH,
|
||||
.x = -16,
|
||||
.y = 32,
|
||||
.shape = SPRITE_SHAPE(32x8),
|
||||
.size = SPRITE_SIZE(32x8),
|
||||
@@ -362,10 +369,11 @@ static const struct Subsprite sUnused_Subsprites_0[] =
|
||||
}
|
||||
};
|
||||
|
||||
// This subsprite table has the same layout as above, but offset by 64 base tiles.
|
||||
static const struct Subsprite sUnused_Subsprites_2[] =
|
||||
{
|
||||
{
|
||||
.x = DISPLAY_WIDTH,
|
||||
.x = -16,
|
||||
.y = 0,
|
||||
.shape = SPRITE_SHAPE(64x32),
|
||||
.size = SPRITE_SIZE(64x32),
|
||||
@@ -381,7 +389,7 @@ static const struct Subsprite sUnused_Subsprites_2[] =
|
||||
.priority = 1
|
||||
},
|
||||
{
|
||||
.x = DISPLAY_WIDTH,
|
||||
.x = -16,
|
||||
.y = 32,
|
||||
.shape = SPRITE_SHAPE(32x8),
|
||||
.size = SPRITE_SIZE(32x8),
|
||||
@@ -406,10 +414,16 @@ static const struct Subsprite sUnused_Subsprites_2[] =
|
||||
}
|
||||
};
|
||||
|
||||
/* v-- Origin
|
||||
[0 + ][1 ]
|
||||
[ ][ ]
|
||||
[ ][ ]
|
||||
[ ][ ] 96x32
|
||||
*/
|
||||
static const struct Subsprite sUnused_Subsprites_1[] =
|
||||
{
|
||||
{
|
||||
.x = DISPLAY_WIDTH,
|
||||
.x = -16,
|
||||
.y = 0,
|
||||
.shape = SPRITE_SHAPE(64x32),
|
||||
.size = SPRITE_SIZE(64x32),
|
||||
@@ -426,10 +440,11 @@ static const struct Subsprite sUnused_Subsprites_1[] =
|
||||
}
|
||||
};
|
||||
|
||||
// Same as above
|
||||
static const struct Subsprite sUnused_Subsprites_3[] =
|
||||
{
|
||||
{
|
||||
.x = DISPLAY_WIDTH,
|
||||
.x = -16,
|
||||
.y = 0,
|
||||
.shape = SPRITE_SHAPE(64x32),
|
||||
.size = SPRITE_SIZE(64x32),
|
||||
@@ -446,10 +461,13 @@ static const struct Subsprite sUnused_Subsprites_3[] =
|
||||
}
|
||||
};
|
||||
|
||||
/* v-- Origin
|
||||
[0 + ][1 ] 64x8
|
||||
*/
|
||||
static const struct Subsprite sHealthBar_Subsprites_Player[] =
|
||||
{
|
||||
{
|
||||
.x = DISPLAY_WIDTH,
|
||||
.x = -16,
|
||||
.y = 0,
|
||||
.shape = SPRITE_SHAPE(32x8),
|
||||
.size = SPRITE_SIZE(32x8),
|
||||
@@ -466,10 +484,14 @@ static const struct Subsprite sHealthBar_Subsprites_Player[] =
|
||||
}
|
||||
};
|
||||
|
||||
/* v-- Origin
|
||||
[] [0 + ][1 ] 8x8 + 64x8
|
||||
2^ ^--- Note 8px space
|
||||
*/
|
||||
static const struct Subsprite sHealthBar_Subsprites_Opponent[] =
|
||||
{
|
||||
{
|
||||
.x = DISPLAY_WIDTH,
|
||||
.x = -16,
|
||||
.y = 0,
|
||||
.shape = SPRITE_SHAPE(32x8),
|
||||
.size = SPRITE_SIZE(32x8),
|
||||
@@ -485,7 +507,7 @@ static const struct Subsprite sHealthBar_Subsprites_Opponent[] =
|
||||
.priority = 1
|
||||
},
|
||||
{
|
||||
.x = DISPLAY_WIDTH - 16,
|
||||
.x = -32,
|
||||
.y = 0,
|
||||
.shape = SPRITE_SHAPE(8x8),
|
||||
.size = SPRITE_SIZE(8x8),
|
||||
@@ -507,11 +529,13 @@ static const struct SubspriteTable sHealthBar_SubspriteTables[] =
|
||||
[B_SIDE_PLAYER] = {ARRAY_COUNT(sHealthBar_Subsprites_Player), sHealthBar_Subsprites_Player},
|
||||
[B_SIDE_OPPONENT] = {ARRAY_COUNT(sHealthBar_Subsprites_Opponent), sHealthBar_Subsprites_Opponent}
|
||||
};
|
||||
|
||||
/* v-- Origin
|
||||
[0 ][1 ][2 ][3 ] 128x8
|
||||
*/
|
||||
static const struct Subsprite sStatusSummaryBar_Subsprites_Enter[] =
|
||||
{
|
||||
{
|
||||
.x = 32 * 5,
|
||||
.x = 32 * -3,
|
||||
.y = 0,
|
||||
.shape = SPRITE_SHAPE(32x8),
|
||||
.size = SPRITE_SIZE(32x8),
|
||||
@@ -519,7 +543,7 @@ static const struct Subsprite sStatusSummaryBar_Subsprites_Enter[] =
|
||||
.priority = 1
|
||||
},
|
||||
{
|
||||
.x = 32 * 6,
|
||||
.x = 32 * -2,
|
||||
.y = 0,
|
||||
.shape = SPRITE_SHAPE(32x8),
|
||||
.size = SPRITE_SIZE(32x8),
|
||||
@@ -527,7 +551,7 @@ static const struct Subsprite sStatusSummaryBar_Subsprites_Enter[] =
|
||||
.priority = 1
|
||||
},
|
||||
{
|
||||
.x = 32 * 7,
|
||||
.x = 32 * -1,
|
||||
.y = 0,
|
||||
.shape = SPRITE_SHAPE(32x8),
|
||||
.size = SPRITE_SIZE(32x8),
|
||||
@@ -544,10 +568,14 @@ static const struct Subsprite sStatusSummaryBar_Subsprites_Enter[] =
|
||||
}
|
||||
};
|
||||
|
||||
/* v-- Origin
|
||||
[0 ][1 ][2 ][3 ][4 ][5 ] 192x8
|
||||
^-- uses same tiles --^
|
||||
*/
|
||||
static const struct Subsprite sStatusSummaryBar_Subsprites_Exit[] =
|
||||
{
|
||||
{
|
||||
.x = 32 * 5,
|
||||
.x = 32 * -3,
|
||||
.y = 0,
|
||||
.shape = SPRITE_SHAPE(32x8),
|
||||
.size = SPRITE_SIZE(32x8),
|
||||
@@ -555,7 +583,7 @@ static const struct Subsprite sStatusSummaryBar_Subsprites_Exit[] =
|
||||
.priority = 1
|
||||
},
|
||||
{
|
||||
.x = 32 * 6,
|
||||
.x = 32 * -2,
|
||||
.y = 0,
|
||||
.shape = SPRITE_SHAPE(32x8),
|
||||
.size = SPRITE_SIZE(32x8),
|
||||
@@ -563,7 +591,7 @@ static const struct Subsprite sStatusSummaryBar_Subsprites_Exit[] =
|
||||
.priority = 1
|
||||
},
|
||||
{
|
||||
.x = 32 * 7,
|
||||
.x = 32 * -1,
|
||||
.y = 0,
|
||||
.shape = SPRITE_SHAPE(32x8),
|
||||
.size = SPRITE_SIZE(32x8),
|
||||
@@ -635,7 +663,7 @@ static const struct OamData sOamData_Unused64x32 =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(64x32),
|
||||
.x = 0,
|
||||
@@ -652,7 +680,7 @@ static const struct OamData sOamData_StatusSummaryBalls =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(8x8),
|
||||
.x = 0,
|
||||
@@ -814,11 +842,11 @@ static void Debug_DrawNumber(s16 number, u16 *dest, bool8 unk)
|
||||
}
|
||||
|
||||
// Unused
|
||||
static void Debug_DrawNumberPair(s16 number1, s16 number2, u16 *arg2)
|
||||
static void Debug_DrawNumberPair(s16 number1, s16 number2, u16 *dest)
|
||||
{
|
||||
arg2[4] = 0x1E;
|
||||
Debug_DrawNumber(number2, arg2, 0);
|
||||
Debug_DrawNumber(number1, arg2 + 5, 1);
|
||||
dest[4] = 0x1E;
|
||||
Debug_DrawNumber(number2, dest, FALSE);
|
||||
Debug_DrawNumber(number1, dest + 5, TRUE);
|
||||
}
|
||||
|
||||
// Because the healthbox is too large to fit into one sprite, it is divided into two sprites.
|
||||
@@ -908,7 +936,7 @@ u8 CreateBattlerHealthboxSprites(u8 battlerId)
|
||||
healthBarSpritePtr->subspriteMode = SUBSPRITES_IGNORE_PRIORITY;
|
||||
healthBarSpritePtr->oam.priority = 1;
|
||||
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_1), (void*)(OBJ_VRAM0 + healthBarSpritePtr->oam.tileNum * TILE_SIZE_4BPP), 64);
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_1), (void *)(OBJ_VRAM0 + healthBarSpritePtr->oam.tileNum * TILE_SIZE_4BPP), 64);
|
||||
|
||||
gSprites[healthboxLeftSpriteId].hMain_HealthBarSpriteId = healthbarSpriteId;
|
||||
gSprites[healthboxLeftSpriteId].hMain_Battler = battlerId;
|
||||
@@ -1094,7 +1122,7 @@ static void UpdateLvlInHealthbox(u8 healthboxSpriteId, u8 lvl)
|
||||
|
||||
if (GetBattlerSide(gSprites[healthboxSpriteId].hMain_Battler) == B_SIDE_PLAYER)
|
||||
{
|
||||
objVram = (void*)(OBJ_VRAM0);
|
||||
objVram = (void *)(OBJ_VRAM0);
|
||||
if (!IsDoubleBattle())
|
||||
objVram += spriteTileNum + 0x820;
|
||||
else
|
||||
@@ -1102,7 +1130,7 @@ static void UpdateLvlInHealthbox(u8 healthboxSpriteId, u8 lvl)
|
||||
}
|
||||
else
|
||||
{
|
||||
objVram = (void*)(OBJ_VRAM0);
|
||||
objVram = (void *)(OBJ_VRAM0);
|
||||
objVram += spriteTileNum + 0x400;
|
||||
}
|
||||
TextIntoHealthboxObject(objVram, windowTileData, 3);
|
||||
@@ -1123,7 +1151,7 @@ void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent)
|
||||
{
|
||||
ConvertIntToDecimalStringN(text, value, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
||||
windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, 0, 5, 2, &windowId);
|
||||
objVram = (void*)(OBJ_VRAM0);
|
||||
objVram = (void *)(OBJ_VRAM0);
|
||||
objVram += spriteTileNum + 0xB40;
|
||||
HpTextIntoHealthboxObject(objVram, windowTileData, 2);
|
||||
RemoveWindowOnHealthbox(windowId);
|
||||
@@ -1134,10 +1162,10 @@ void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent)
|
||||
text[3] = CHAR_SLASH;
|
||||
text[4] = EOS;
|
||||
windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, 4, 5, 2, &windowId);
|
||||
objVram = (void*)(OBJ_VRAM0);
|
||||
objVram = (void *)(OBJ_VRAM0);
|
||||
objVram += spriteTileNum + 0x3E0;
|
||||
HpTextIntoHealthboxObject(objVram, windowTileData, 1);
|
||||
objVram = (void*)(OBJ_VRAM0);
|
||||
objVram = (void *)(OBJ_VRAM0);
|
||||
objVram += spriteTileNum + 0xB00;
|
||||
HpTextIntoHealthboxObject(objVram, windowTileData + 0x20, 2);
|
||||
RemoveWindowOnHealthbox(windowId);
|
||||
@@ -1179,7 +1207,7 @@ void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent)
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[i * 64 + 32],
|
||||
(void*)((OBJ_VRAM0) + TILE_SIZE_4BPP * (gSprites[healthboxSpriteId].oam.tileNum + var + i)),
|
||||
(void *)((OBJ_VRAM0) + TILE_SIZE_4BPP * (gSprites[healthboxSpriteId].oam.tileNum + var + i)),
|
||||
0x20);
|
||||
}
|
||||
}
|
||||
@@ -1198,16 +1226,16 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8
|
||||
if (gBattleSpritesDataPtr->battlerData[gSprites[healthboxSpriteId].data[6]].hpNumbersNoBars) // don't print text if only bars are visible
|
||||
{
|
||||
spriteTileNum = gSprites[gSprites[healthboxSpriteId].data[5]].oam.tileNum * TILE_SIZE_4BPP;
|
||||
objVram = (void*)(OBJ_VRAM0) + spriteTileNum;
|
||||
objVram = (void *)(OBJ_VRAM0) + spriteTileNum;
|
||||
|
||||
if (maxOrCurrent != HP_CURRENT) // doubles, max hp
|
||||
{
|
||||
ConvertIntToDecimalStringN(text, value, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
||||
windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, 0, 5, 0, &windowId);
|
||||
HpTextIntoHealthboxObject((void*)(OBJ_VRAM0) + spriteTileNum + 0xC0, windowTileData, 2);
|
||||
HpTextIntoHealthboxObject((void *)(OBJ_VRAM0) + spriteTileNum + 0xC0, windowTileData, 2);
|
||||
RemoveWindowOnHealthbox(windowId);
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_FRAME_END),
|
||||
(void*)(OBJ_VRAM0 + 0x680) + (gSprites[healthboxSpriteId].oam.tileNum * TILE_SIZE_4BPP),
|
||||
(void *)(OBJ_VRAM0 + 0x680) + (gSprites[healthboxSpriteId].oam.tileNum * TILE_SIZE_4BPP),
|
||||
0x20);
|
||||
}
|
||||
else
|
||||
@@ -1217,7 +1245,7 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8
|
||||
text[4] = EOS;
|
||||
windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, 4, 5, 0, &windowId);
|
||||
FillHealthboxObject(objVram, 0, 3); // Erases HP bar leftover.
|
||||
HpTextIntoHealthboxObject((void*)(OBJ_VRAM0 + 0x60) + spriteTileNum, windowTileData, 3);
|
||||
HpTextIntoHealthboxObject((void *)(OBJ_VRAM0 + 0x60) + spriteTileNum, windowTileData, 3);
|
||||
RemoveWindowOnHealthbox(windowId);
|
||||
}
|
||||
}
|
||||
@@ -1250,13 +1278,13 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8
|
||||
if (i < 3)
|
||||
{
|
||||
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[((i - var) * 64) + 32],
|
||||
(void*)((OBJ_VRAM0) + 32 * (1 + gSprites[r7].oam.tileNum + i)),
|
||||
(void *)((OBJ_VRAM0) + 32 * (1 + gSprites[r7].oam.tileNum + i)),
|
||||
0x20);
|
||||
}
|
||||
else
|
||||
{
|
||||
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[((i - var) * 64) + 32],
|
||||
(void*)((OBJ_VRAM0 + 0x20) + 32 * (i + gSprites[r7].oam.tileNum)),
|
||||
(void *)((OBJ_VRAM0 + 0x20) + 32 * (i + gSprites[r7].oam.tileNum)),
|
||||
0x20);
|
||||
}
|
||||
}
|
||||
@@ -1264,16 +1292,16 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8
|
||||
if (maxOrCurrent == HP_CURRENT)
|
||||
{
|
||||
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[224],
|
||||
(void*)((OBJ_VRAM0) + ((gSprites[r7].oam.tileNum + 4) * TILE_SIZE_4BPP)),
|
||||
(void *)((OBJ_VRAM0) + ((gSprites[r7].oam.tileNum + 4) * TILE_SIZE_4BPP)),
|
||||
0x20);
|
||||
CpuFill32(0, (void*)((OBJ_VRAM0) + (gSprites[r7].oam.tileNum * TILE_SIZE_4BPP)), 0x20);
|
||||
CpuFill32(0, (void *)((OBJ_VRAM0) + (gSprites[r7].oam.tileNum * TILE_SIZE_4BPP)), 0x20);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) // Impossible to reach part, because the battlerId is from the opponent's side.
|
||||
{
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_FRAME_END),
|
||||
(void*)(OBJ_VRAM0) + ((gSprites[healthboxSpriteId].oam.tileNum + 52) * TILE_SIZE_4BPP),
|
||||
(void *)(OBJ_VRAM0) + ((gSprites[healthboxSpriteId].oam.tileNum + 52) * TILE_SIZE_4BPP),
|
||||
0x20);
|
||||
}
|
||||
}
|
||||
@@ -1313,11 +1341,11 @@ static void PrintSafariMonInfo(u8 healthboxSpriteId, struct Pokemon *mon)
|
||||
for (j = 1; j < var + 1; j++)
|
||||
{
|
||||
spriteTileNum = (gSprites[healthboxSpriteId].oam.tileNum + (j - (j / 8 * 8)) + (j / 8 * 64)) * TILE_SIZE_4BPP;
|
||||
CpuCopy32(barFontGfx, (void*)(OBJ_VRAM0) + (spriteTileNum), 0x20);
|
||||
CpuCopy32(barFontGfx, (void *)(OBJ_VRAM0) + (spriteTileNum), 0x20);
|
||||
barFontGfx += 0x20;
|
||||
|
||||
spriteTileNum = (8 + gSprites[healthboxSpriteId].oam.tileNum + (j - (j / 8 * 8)) + (j / 8 * 64)) * TILE_SIZE_4BPP;
|
||||
CpuCopy32(barFontGfx, (void*)(OBJ_VRAM0) + (spriteTileNum), 0x20);
|
||||
CpuCopy32(barFontGfx, (void *)(OBJ_VRAM0) + (spriteTileNum), 0x20);
|
||||
barFontGfx += 0x20;
|
||||
}
|
||||
|
||||
@@ -1334,13 +1362,13 @@ static void PrintSafariMonInfo(u8 healthboxSpriteId, struct Pokemon *mon)
|
||||
if (j <= 1)
|
||||
{
|
||||
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[0x40 * j + 0x20],
|
||||
(void*)(OBJ_VRAM0) + (gSprites[healthBarSpriteId].oam.tileNum + 2 + j) * TILE_SIZE_4BPP,
|
||||
(void *)(OBJ_VRAM0) + (gSprites[healthBarSpriteId].oam.tileNum + 2 + j) * TILE_SIZE_4BPP,
|
||||
32);
|
||||
}
|
||||
else
|
||||
{
|
||||
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[0x40 * j + 0x20],
|
||||
(void*)(OBJ_VRAM0 + 0xC0) + (j + gSprites[healthBarSpriteId].oam.tileNum) * TILE_SIZE_4BPP,
|
||||
(void *)(OBJ_VRAM0 + 0xC0) + (j + gSprites[healthBarSpriteId].oam.tileNum) * TILE_SIZE_4BPP,
|
||||
32);
|
||||
}
|
||||
}
|
||||
@@ -1372,7 +1400,7 @@ void SwapHpBarsWithHpText(void)
|
||||
{
|
||||
healthBarSpriteId = gSprites[gHealthboxSpriteIds[i]].hMain_HealthBarSpriteId;
|
||||
|
||||
CpuFill32(0, (void*)(OBJ_VRAM0 + gSprites[healthBarSpriteId].oam.tileNum * TILE_SIZE_4BPP), 0x100);
|
||||
CpuFill32(0, (void *)(OBJ_VRAM0 + gSprites[healthBarSpriteId].oam.tileNum * TILE_SIZE_4BPP), 0x100);
|
||||
UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_HP), HP_CURRENT);
|
||||
UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_MAX_HP), HP_MAX);
|
||||
}
|
||||
@@ -1380,7 +1408,7 @@ void SwapHpBarsWithHpText(void)
|
||||
{
|
||||
UpdateStatusIconInHealthbox(gHealthboxSpriteIds[i]);
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[i], &gPlayerParty[gBattlerPartyIndexes[i]], HEALTHBOX_HEALTH_BAR);
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_FRAME_END_BAR), (void*)(OBJ_VRAM0 + 0x680 + gSprites[gHealthboxSpriteIds[i]].oam.tileNum * TILE_SIZE_4BPP), 32);
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_FRAME_END_BAR), (void *)(OBJ_VRAM0 + 0x680 + gSprites[gHealthboxSpriteIds[i]].oam.tileNum * TILE_SIZE_4BPP), 32);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1420,7 +1448,7 @@ void SwapHpBarsWithHpText(void)
|
||||
#define tIsBattleStart data[10]
|
||||
#define tBlend data[15]
|
||||
|
||||
u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo, u8 arg2, bool8 isBattleStart)
|
||||
u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo, bool8 skipPlayer, bool8 isBattleStart)
|
||||
{
|
||||
bool8 isOpponent;
|
||||
s16 bar_X, bar_Y, bar_pos2_X, bar_data0;
|
||||
@@ -1429,7 +1457,7 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo,
|
||||
u8 ballIconSpritesIds[PARTY_SIZE];
|
||||
u8 taskId;
|
||||
|
||||
if (!arg2 || GetBattlerPosition(battlerId) != B_POSITION_OPPONENT_RIGHT)
|
||||
if (!skipPlayer || GetBattlerPosition(battlerId) != B_POSITION_OPPONENT_RIGHT)
|
||||
{
|
||||
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER)
|
||||
{
|
||||
@@ -1442,7 +1470,7 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo,
|
||||
{
|
||||
isOpponent = TRUE;
|
||||
|
||||
if (!arg2 || !IsDoubleBattle())
|
||||
if (!skipPlayer || !IsDoubleBattle())
|
||||
bar_X = 104, bar_Y = 40;
|
||||
else
|
||||
bar_X = 104, bar_Y = 16;
|
||||
@@ -1924,8 +1952,8 @@ static void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon)
|
||||
|
||||
if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER)
|
||||
{
|
||||
TextIntoHealthboxObject((void*)(OBJ_VRAM0 + 0x40 + spriteTileNum), windowTileData, 6);
|
||||
ptr = (void*)(OBJ_VRAM0);
|
||||
TextIntoHealthboxObject((void *)(OBJ_VRAM0 + 0x40 + spriteTileNum), windowTileData, 6);
|
||||
ptr = (void *)(OBJ_VRAM0);
|
||||
if (!IsDoubleBattle())
|
||||
ptr += spriteTileNum + 0x800;
|
||||
else
|
||||
@@ -1934,7 +1962,7 @@ static void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon)
|
||||
}
|
||||
else
|
||||
{
|
||||
TextIntoHealthboxObject((void*)(OBJ_VRAM0 + 0x20 + spriteTileNum), windowTileData, 7);
|
||||
TextIntoHealthboxObject((void *)(OBJ_VRAM0 + 0x20 + spriteTileNum), windowTileData, 7);
|
||||
}
|
||||
|
||||
RemoveWindowOnHealthbox(windowId);
|
||||
@@ -1958,9 +1986,9 @@ static void TryAddPokeballIconToHealthbox(u8 healthboxSpriteId, bool8 noStatus)
|
||||
healthBarSpriteId = gSprites[healthboxSpriteId].hMain_HealthBarSpriteId;
|
||||
|
||||
if (noStatus)
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_STATUS_BALL_CAUGHT), (void*)(OBJ_VRAM0 + (gSprites[healthBarSpriteId].oam.tileNum + 8) * TILE_SIZE_4BPP), 32);
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_STATUS_BALL_CAUGHT), (void *)(OBJ_VRAM0 + (gSprites[healthBarSpriteId].oam.tileNum + 8) * TILE_SIZE_4BPP), 32);
|
||||
else
|
||||
CpuFill32(0, (void*)(OBJ_VRAM0 + (gSprites[healthBarSpriteId].oam.tileNum + 8) * TILE_SIZE_4BPP), 32);
|
||||
CpuFill32(0, (void *)(OBJ_VRAM0 + (gSprites[healthBarSpriteId].oam.tileNum + 8) * TILE_SIZE_4BPP), 32);
|
||||
}
|
||||
|
||||
static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId)
|
||||
@@ -2018,7 +2046,7 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId)
|
||||
statusGfxPtr = GetHealthboxElementGfxPtr(HEALTHBOX_GFX_39);
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
CpuCopy32(statusGfxPtr, (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder + i) * TILE_SIZE_4BPP), 32);
|
||||
CpuCopy32(statusGfxPtr, (void *)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder + i) * TILE_SIZE_4BPP), 32);
|
||||
|
||||
if (!gBattleSpritesDataPtr->battlerData[battlerId].hpNumbersNoBars)
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_1), (void *)(OBJ_VRAM0 + gSprites[healthBarSpriteId].oam.tileNum * TILE_SIZE_4BPP), 64);
|
||||
@@ -2027,18 +2055,18 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId)
|
||||
return;
|
||||
}
|
||||
|
||||
pltAdder = gSprites[healthboxSpriteId].oam.paletteNum * 16;
|
||||
pltAdder = PLTT_ID(gSprites[healthboxSpriteId].oam.paletteNum);
|
||||
pltAdder += battlerId + 12;
|
||||
|
||||
FillPalette(sStatusIconColors[statusPalId], pltAdder + 0x100, 2);
|
||||
CpuCopy16(gPlttBufferUnfaded + 0x100 + pltAdder, (void*)(OBJ_PLTT + pltAdder * 2), 2);
|
||||
CpuCopy32(statusGfxPtr, (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder) * TILE_SIZE_4BPP), 96);
|
||||
FillPalette(sStatusIconColors[statusPalId], OBJ_PLTT_OFFSET + pltAdder, PLTT_SIZEOF(1));
|
||||
CpuCopy16(gPlttBufferUnfaded + OBJ_PLTT_OFFSET + pltAdder, (u16 *)OBJ_PLTT + pltAdder, PLTT_SIZEOF(1));
|
||||
CpuCopy32(statusGfxPtr, (void *)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder) * TILE_SIZE_4BPP), 96);
|
||||
if (IsDoubleBattle() == TRUE || GetBattlerSide(battlerId) == B_SIDE_OPPONENT)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->battlerData[battlerId].hpNumbersNoBars)
|
||||
{
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_0), (void*)(OBJ_VRAM0 + gSprites[healthBarSpriteId].oam.tileNum * TILE_SIZE_4BPP), 32);
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_65), (void*)(OBJ_VRAM0 + (gSprites[healthBarSpriteId].oam.tileNum + 1) * TILE_SIZE_4BPP), 32);
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_0), (void *)(OBJ_VRAM0 + gSprites[healthBarSpriteId].oam.tileNum * TILE_SIZE_4BPP), 32);
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_65), (void *)(OBJ_VRAM0 + (gSprites[healthBarSpriteId].oam.tileNum + 1) * TILE_SIZE_4BPP), 32);
|
||||
}
|
||||
}
|
||||
TryAddPokeballIconToHealthbox(healthboxSpriteId, FALSE);
|
||||
@@ -2111,8 +2139,8 @@ static void UpdateSafariBallsTextOnHealthbox(u8 healthboxSpriteId)
|
||||
|
||||
windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(gText_SafariBalls, 0, 3, 2, &windowId);
|
||||
spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * TILE_SIZE_4BPP;
|
||||
TextIntoHealthboxObject((void*)(OBJ_VRAM0 + 0x40) + spriteTileNum, windowTileData, 6);
|
||||
TextIntoHealthboxObject((void*)(OBJ_VRAM0 + 0x800) + spriteTileNum, windowTileData + 0xC0, 2);
|
||||
TextIntoHealthboxObject((void *)(OBJ_VRAM0 + 0x40) + spriteTileNum, windowTileData, 6);
|
||||
TextIntoHealthboxObject((void *)(OBJ_VRAM0 + 0x800) + spriteTileNum, windowTileData + 0xC0, 2);
|
||||
RemoveWindowOnHealthbox(windowId);
|
||||
}
|
||||
|
||||
@@ -2128,8 +2156,8 @@ static void UpdateLeftNoOfBallsTextOnHealthbox(u8 healthboxSpriteId)
|
||||
|
||||
windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, GetStringRightAlignXOffset(FONT_SMALL, text, 0x2F), 3, 2, &windowId);
|
||||
spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * TILE_SIZE_4BPP;
|
||||
SafariTextIntoHealthboxObject((void*)(OBJ_VRAM0 + 0x2C0) + spriteTileNum, windowTileData, 2);
|
||||
SafariTextIntoHealthboxObject((void*)(OBJ_VRAM0 + 0xA00) + spriteTileNum, windowTileData + 0x40, 4);
|
||||
SafariTextIntoHealthboxObject((void *)(OBJ_VRAM0 + 0x2C0) + spriteTileNum, windowTileData, 2);
|
||||
SafariTextIntoHealthboxObject((void *)(OBJ_VRAM0 + 0xA00) + spriteTileNum, windowTileData + 0x40, 4);
|
||||
RemoveWindowOnHealthbox(windowId);
|
||||
}
|
||||
|
||||
@@ -2171,9 +2199,9 @@ void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elem
|
||||
species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
level = GetMonData(mon, MON_DATA_LEVEL);
|
||||
exp = GetMonData(mon, MON_DATA_EXP);
|
||||
currLevelExp = gExperienceTables[gBaseStats[species].growthRate][level];
|
||||
currLevelExp = gExperienceTables[gSpeciesInfo[species].growthRate][level];
|
||||
currExpBarValue = exp - currLevelExp;
|
||||
maxExpBarValue = gExperienceTables[gBaseStats[species].growthRate][level + 1] - currLevelExp;
|
||||
maxExpBarValue = gExperienceTables[gSpeciesInfo[species].growthRate][level + 1] - currLevelExp;
|
||||
SetBattleBarStruct(battlerId, healthboxSpriteId, maxExpBarValue, currExpBarValue, isDoubles);
|
||||
MoveBattleBar(battlerId, healthboxSpriteId, EXP_BAR, 0);
|
||||
}
|
||||
@@ -2273,10 +2301,10 @@ static void MoveBattleBarGraphically(u8 battlerId, u8 whichBar)
|
||||
u8 healthbarSpriteId = gSprites[gBattleSpritesDataPtr->battleBars[battlerId].healthboxSpriteId].hMain_HealthBarSpriteId;
|
||||
if (i < 2)
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(barElementId) + array[i] * 32,
|
||||
(void*)(OBJ_VRAM0 + (gSprites[healthbarSpriteId].oam.tileNum + 2 + i) * TILE_SIZE_4BPP), 32);
|
||||
(void *)(OBJ_VRAM0 + (gSprites[healthbarSpriteId].oam.tileNum + 2 + i) * TILE_SIZE_4BPP), 32);
|
||||
else
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(barElementId) + array[i] * 32,
|
||||
(void*)(OBJ_VRAM0 + 64 + (i + gSprites[healthbarSpriteId].oam.tileNum) * TILE_SIZE_4BPP), 32);
|
||||
(void *)(OBJ_VRAM0 + 64 + (i + gSprites[healthbarSpriteId].oam.tileNum) * TILE_SIZE_4BPP), 32);
|
||||
}
|
||||
break;
|
||||
case EXP_BAR:
|
||||
@@ -2295,10 +2323,10 @@ static void MoveBattleBarGraphically(u8 battlerId, u8 whichBar)
|
||||
{
|
||||
if (i < 4)
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_12) + array[i] * 32,
|
||||
(void*)(OBJ_VRAM0 + (gSprites[gBattleSpritesDataPtr->battleBars[battlerId].healthboxSpriteId].oam.tileNum + 0x24 + i) * TILE_SIZE_4BPP), 32);
|
||||
(void *)(OBJ_VRAM0 + (gSprites[gBattleSpritesDataPtr->battleBars[battlerId].healthboxSpriteId].oam.tileNum + 0x24 + i) * TILE_SIZE_4BPP), 32);
|
||||
else
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_12) + array[i] * 32,
|
||||
(void*)(OBJ_VRAM0 + 0xB80 + (i + gSprites[gBattleSpritesDataPtr->battleBars[battlerId].healthboxSpriteId].oam.tileNum) * TILE_SIZE_4BPP), 32);
|
||||
(void *)(OBJ_VRAM0 + 0xB80 + (i + gSprites[gBattleSpritesDataPtr->battleBars[battlerId].healthboxSpriteId].oam.tileNum) * TILE_SIZE_4BPP), 32);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -2383,7 +2411,7 @@ static s32 CalcNewBarValue(s32 maxValue, s32 oldValue, s32 receivedValue, s32 *c
|
||||
return ret;
|
||||
}
|
||||
|
||||
static u8 CalcBarFilledPixels(s32 maxValue, s32 oldValue, s32 receivedValue, s32 *currValue, u8 *arg4, u8 scale)
|
||||
static u8 CalcBarFilledPixels(s32 maxValue, s32 oldValue, s32 receivedValue, s32 *currValue, u8 *pixelsArray, u8 scale)
|
||||
{
|
||||
u8 pixels, filledPixels, totalPixels;
|
||||
u8 i;
|
||||
@@ -2397,7 +2425,7 @@ static u8 CalcBarFilledPixels(s32 maxValue, s32 oldValue, s32 receivedValue, s32
|
||||
totalPixels = scale * 8;
|
||||
|
||||
for (i = 0; i < scale; i++)
|
||||
arg4[i] = 0;
|
||||
pixelsArray[i] = 0;
|
||||
|
||||
if (maxValue < totalPixels)
|
||||
pixels = (*currValue * totalPixels / maxValue) >> 8;
|
||||
@@ -2408,7 +2436,7 @@ static u8 CalcBarFilledPixels(s32 maxValue, s32 oldValue, s32 receivedValue, s32
|
||||
|
||||
if (filledPixels == 0 && newValue > 0)
|
||||
{
|
||||
arg4[0] = 1;
|
||||
pixelsArray[0] = 1;
|
||||
filledPixels = 1;
|
||||
}
|
||||
else
|
||||
@@ -2417,11 +2445,11 @@ static u8 CalcBarFilledPixels(s32 maxValue, s32 oldValue, s32 receivedValue, s32
|
||||
{
|
||||
if (pixels >= 8)
|
||||
{
|
||||
arg4[i] = 8;
|
||||
pixelsArray[i] = 8;
|
||||
}
|
||||
else
|
||||
{
|
||||
arg4[i] = pixels;
|
||||
pixelsArray[i] = pixels;
|
||||
break;
|
||||
}
|
||||
pixels -= 8;
|
||||
@@ -2433,7 +2461,7 @@ static u8 CalcBarFilledPixels(s32 maxValue, s32 oldValue, s32 receivedValue, s32
|
||||
|
||||
// Unused
|
||||
// These two functions seem as if they were made for testing the health bar.
|
||||
static s16 Debug_TestHealthBar(struct TestingBar *barInfo, s32 *currValue, u16 *arg2, s32 arg3)
|
||||
static s16 Debug_TestHealthBar(struct TestingBar *barInfo, s32 *currValue, u16 *dest, s32 unused)
|
||||
{
|
||||
s16 ret, var;
|
||||
|
||||
@@ -2441,31 +2469,31 @@ static s16 Debug_TestHealthBar(struct TestingBar *barInfo, s32 *currValue, u16 *
|
||||
barInfo->oldValue,
|
||||
barInfo->receivedValue,
|
||||
currValue, B_HEALTHBAR_PIXELS / 8, 1);
|
||||
Debug_TestHealthBar_Helper(barInfo, currValue, arg2);
|
||||
Debug_TestHealthBar_Helper(barInfo, currValue, dest);
|
||||
|
||||
if (barInfo->maxValue < B_HEALTHBAR_PIXELS)
|
||||
var = *currValue >> 8;
|
||||
else
|
||||
var = *currValue;
|
||||
|
||||
DummiedOutFunction(barInfo->maxValue, var, arg3);
|
||||
DummiedOutFunction(barInfo->maxValue, var, unused);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void Debug_TestHealthBar_Helper(struct TestingBar *barInfo, s32 *currValue, u16 *arg2)
|
||||
static void Debug_TestHealthBar_Helper(struct TestingBar *barInfo, s32 *currValue, u16 *dest)
|
||||
{
|
||||
u8 sp8[6];
|
||||
u16 sp10[6];
|
||||
u8 pixels[6];
|
||||
u16 src[6];
|
||||
u8 i;
|
||||
|
||||
CalcBarFilledPixels(barInfo->maxValue, barInfo->oldValue,
|
||||
barInfo->receivedValue, currValue, sp8, B_HEALTHBAR_PIXELS / 8);
|
||||
barInfo->receivedValue, currValue, pixels, B_HEALTHBAR_PIXELS / 8);
|
||||
|
||||
for (i = 0; i < 6; i++)
|
||||
sp10[i] = (barInfo->unkC_0 << 12) | (barInfo->unk10 + sp8[i]);
|
||||
src[i] = (barInfo->unkC_0 << 12) | (barInfo->unk10 + pixels[i]);
|
||||
|
||||
CpuCopy16(sp10, arg2, sizeof(sp10));
|
||||
CpuCopy16(src, dest, sizeof(src));
|
||||
}
|
||||
|
||||
static u8 GetScaledExpFraction(s32 oldValue, s32 receivedValue, s32 maxValue, u8 scale)
|
||||
@@ -2522,7 +2550,7 @@ u8 GetHPBarLevel(s16 hp, s16 maxhp)
|
||||
return result;
|
||||
}
|
||||
|
||||
static u8* AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y, u32 bgColor, u32 *windowId)
|
||||
static u8 *AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y, u32 bgColor, u32 *windowId)
|
||||
{
|
||||
u16 winId;
|
||||
u8 color[3];
|
||||
@@ -2538,7 +2566,7 @@ static u8* AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y,
|
||||
AddTextPrinterParameterized4(winId, FONT_SMALL, x, y, 0, 0, color, TEXT_SKIP_DRAW, str);
|
||||
|
||||
*windowId = winId;
|
||||
return (u8*)(GetWindowAttribute(winId, WINDOW_TILE_DATA));
|
||||
return (u8 *)(GetWindowAttribute(winId, WINDOW_TILE_DATA));
|
||||
}
|
||||
|
||||
static void RemoveWindowOnHealthbox(u32 windowId)
|
||||
@@ -2546,9 +2574,9 @@ static void RemoveWindowOnHealthbox(u32 windowId)
|
||||
RemoveWindow(windowId);
|
||||
}
|
||||
|
||||
static void FillHealthboxObject(void *dest, u32 arg1, u32 arg2)
|
||||
static void FillHealthboxObject(void *dest, u32 valMult, u32 numTiles)
|
||||
{
|
||||
CpuFill32(0x11111111 * arg1, dest, arg2 * TILE_SIZE_4BPP);
|
||||
CpuFill32(0x11111111 * valMult, dest, numTiles * TILE_SIZE_4BPP);
|
||||
}
|
||||
|
||||
static void HpTextIntoHealthboxObject(void *dest, u8 *windowTileData, u32 windowWidth)
|
||||
|
||||
+152
-157
@@ -78,12 +78,12 @@ static void EndLinkBattleInSteps(void);
|
||||
static void CB2_InitAskRecordBattle(void);
|
||||
static void CB2_AskRecordBattle(void);
|
||||
static void AskRecordBattle(void);
|
||||
static void SpriteCb_MoveWildMonToRight(struct Sprite *sprite);
|
||||
static void SpriteCb_WildMonShowHealthbox(struct Sprite *sprite);
|
||||
static void SpriteCb_WildMonAnimate(struct Sprite *sprite);
|
||||
static void SpriteCB_MoveWildMonToRight(struct Sprite *sprite);
|
||||
static void SpriteCB_WildMonShowHealthbox(struct Sprite *sprite);
|
||||
static void SpriteCB_WildMonAnimate(struct Sprite *sprite);
|
||||
static void SpriteCB_Flicker(struct Sprite *sprite);
|
||||
static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite);
|
||||
static void SpriteCb_BlinkVisible(struct Sprite *sprite);
|
||||
static void SpriteCB_BlinkVisible(struct Sprite *sprite);
|
||||
static void SpriteCB_Idle(struct Sprite *sprite);
|
||||
static void SpriteCB_BattleSpriteSlideLeft(struct Sprite *sprite);
|
||||
static void TurnValuesCleanUp(bool8 var0);
|
||||
@@ -118,7 +118,7 @@ static void HandleEndTurn_BattleLost(void);
|
||||
static void HandleEndTurn_RanFromBattle(void);
|
||||
static void HandleEndTurn_MonFled(void);
|
||||
static void HandleEndTurn_FinishBattle(void);
|
||||
static void SpriteCB_UnusedBattleInit(struct Sprite* sprite);
|
||||
static void SpriteCB_UnusedBattleInit(struct Sprite *sprite);
|
||||
static void SpriteCB_UnusedBattleInit_Main(struct Sprite *sprite);
|
||||
|
||||
EWRAM_DATA u16 gBattle_BG0_X = 0;
|
||||
@@ -199,8 +199,8 @@ EWRAM_DATA u32 gHitMarker = 0;
|
||||
EWRAM_DATA static u8 sUnusedBattlersArray[MAX_BATTLERS_COUNT] = {0};
|
||||
EWRAM_DATA u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT] = {0};
|
||||
EWRAM_DATA u8 gUnusedFirstBattleVar2 = 0; // Never read
|
||||
EWRAM_DATA u16 gSideStatuses[2] = {0};
|
||||
EWRAM_DATA struct SideTimer gSideTimers[2] = {0};
|
||||
EWRAM_DATA u16 gSideStatuses[NUM_BATTLE_SIDES] = {0};
|
||||
EWRAM_DATA struct SideTimer gSideTimers[NUM_BATTLE_SIDES] = {0};
|
||||
EWRAM_DATA u32 gStatuses3[MAX_BATTLERS_COUNT] = {0};
|
||||
EWRAM_DATA struct DisableStruct gDisableStructs[MAX_BATTLERS_COUNT] = {0};
|
||||
EWRAM_DATA u16 gPauseCounterBattle = 0;
|
||||
@@ -606,7 +606,7 @@ static void CB2_InitBattleInternal(void)
|
||||
SetHBlankCallback(NULL);
|
||||
SetVBlankCallback(NULL);
|
||||
|
||||
CpuFill32(0, (void*)(VRAM), VRAM_SIZE);
|
||||
CpuFill32(0, (void *)(VRAM), VRAM_SIZE);
|
||||
|
||||
SetGpuReg(REG_OFFSET_MOSAIC, 0);
|
||||
SetGpuReg(REG_OFFSET_WIN0H, DISPLAY_WIDTH);
|
||||
@@ -665,7 +665,7 @@ static void CB2_InitBattleInternal(void)
|
||||
ResetTasks();
|
||||
DrawBattleEntryBackground();
|
||||
FreeAllSpritePalettes();
|
||||
gReservedSpritePaletteCount = 4;
|
||||
gReservedSpritePaletteCount = MAX_BATTLERS_COUNT;
|
||||
SetVBlankCallback(VBlankCB_Battle);
|
||||
SetUpBattleVarsAndBirchZigzagoon();
|
||||
|
||||
@@ -772,8 +772,7 @@ static void SetPlayerBerryDataInBattleStruct(void)
|
||||
|
||||
static void SetAllPlayersBerryData(void)
|
||||
{
|
||||
s32 i;
|
||||
s32 j;
|
||||
s32 i, j;
|
||||
|
||||
if (!(gBattleTypeFlags & BATTLE_TYPE_LINK))
|
||||
{
|
||||
@@ -816,8 +815,8 @@ static void SetAllPlayersBerryData(void)
|
||||
gEnigmaBerries[2].itemEffect[i] = 0;
|
||||
}
|
||||
|
||||
gEnigmaBerries[0].holdEffect = 0;
|
||||
gEnigmaBerries[2].holdEffect = 0;
|
||||
gEnigmaBerries[0].holdEffect = HOLD_EFFECT_NONE;
|
||||
gEnigmaBerries[2].holdEffect = HOLD_EFFECT_NONE;
|
||||
gEnigmaBerries[0].holdEffectParam = 0;
|
||||
gEnigmaBerries[2].holdEffectParam = 0;
|
||||
}
|
||||
@@ -968,7 +967,7 @@ static void CB2_HandleStartBattle(void)
|
||||
case 1:
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||
{
|
||||
if (gReceivedRemoteLinkPlayers != 0)
|
||||
if (gReceivedRemoteLinkPlayers)
|
||||
{
|
||||
if (IsLinkTaskFinished())
|
||||
{
|
||||
@@ -1068,7 +1067,7 @@ static void CB2_HandleStartBattle(void)
|
||||
// Recv Pokémon 5-6
|
||||
ResetBlockReceivedFlags();
|
||||
memcpy(&gEnemyParty[4], gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon) * 2);
|
||||
|
||||
|
||||
TryCorrectShedinjaLanguage(&gEnemyParty[0]);
|
||||
TryCorrectShedinjaLanguage(&gEnemyParty[1]);
|
||||
TryCorrectShedinjaLanguage(&gEnemyParty[2]);
|
||||
@@ -1176,7 +1175,7 @@ static void CB2_HandleStartMultiPartnerBattle(void)
|
||||
case 1:
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||
{
|
||||
if (gReceivedRemoteLinkPlayers != 0)
|
||||
if (gReceivedRemoteLinkPlayers)
|
||||
{
|
||||
u8 language;
|
||||
|
||||
@@ -1443,7 +1442,7 @@ static void CB2_PreInitMultiBattle(void)
|
||||
switch (gBattleCommunication[MULTIUSE_STATE])
|
||||
{
|
||||
case 0:
|
||||
if (gReceivedRemoteLinkPlayers != 0 && IsLinkTaskFinished())
|
||||
if (gReceivedRemoteLinkPlayers && IsLinkTaskFinished())
|
||||
{
|
||||
sMultiPartnerPartyBuffer = Alloc(sizeof(gMultiPartnerParty));
|
||||
SetMultiPartnerMenuParty(0);
|
||||
@@ -1498,8 +1497,7 @@ static void CB2_PreInitMultiBattle(void)
|
||||
gBattleTypeFlags = *savedBattleTypeFlags;
|
||||
gMain.savedCallback = *savedCallback;
|
||||
SetMainCallback2(CB2_InitBattleInternal);
|
||||
Free(sMultiPartnerPartyBuffer);
|
||||
sMultiPartnerPartyBuffer = NULL;
|
||||
FREE_AND_SET_NULL(sMultiPartnerPartyBuffer);
|
||||
}
|
||||
}
|
||||
else if (gReceivedRemoteLinkPlayers == 0)
|
||||
@@ -1507,8 +1505,7 @@ static void CB2_PreInitMultiBattle(void)
|
||||
gBattleTypeFlags = *savedBattleTypeFlags;
|
||||
gMain.savedCallback = *savedCallback;
|
||||
SetMainCallback2(CB2_InitBattleInternal);
|
||||
Free(sMultiPartnerPartyBuffer);
|
||||
sMultiPartnerPartyBuffer = NULL;
|
||||
FREE_AND_SET_NULL(sMultiPartnerPartyBuffer);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -1544,8 +1541,7 @@ static void CB2_PreInitIngamePlayerPartnerBattle(void)
|
||||
gBattleTypeFlags = *savedBattleTypeFlags;
|
||||
gMain.savedCallback = *savedCallback;
|
||||
SetMainCallback2(CB2_InitBattleInternal);
|
||||
Free(sMultiPartnerPartyBuffer);
|
||||
sMultiPartnerPartyBuffer = NULL;
|
||||
FREE_AND_SET_NULL(sMultiPartnerPartyBuffer);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -1582,7 +1578,7 @@ static void CB2_HandleStartMultiBattle(void)
|
||||
case 1:
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||
{
|
||||
if (gReceivedRemoteLinkPlayers != 0)
|
||||
if (gReceivedRemoteLinkPlayers)
|
||||
{
|
||||
if (IsLinkTaskFinished())
|
||||
{
|
||||
@@ -1808,7 +1804,7 @@ static void CB2_HandleStartMultiBattle(void)
|
||||
case 8:
|
||||
if (IsLinkTaskFinished())
|
||||
{
|
||||
u32* ptr = gBattleStruct->multiBuffer.battleVideo;
|
||||
u32 *ptr = gBattleStruct->multiBuffer.battleVideo;
|
||||
ptr[0] = gBattleTypeFlags;
|
||||
ptr[1] = gRecordedBattleRngSeed; // UB: overwrites berry data
|
||||
SendBlock(BitmaskAllOtherLinkPlayers(), ptr, sizeof(gBattleStruct->multiBuffer.battleVideo));
|
||||
@@ -1894,7 +1890,7 @@ void CB2_QuitRecordedBattle(void)
|
||||
#define sState data[0]
|
||||
#define sDelay data[4]
|
||||
|
||||
static void SpriteCB_UnusedBattleInit(struct Sprite* sprite)
|
||||
static void SpriteCB_UnusedBattleInit(struct Sprite *sprite)
|
||||
{
|
||||
sprite->sState = 0;
|
||||
sprite->callback = SpriteCB_UnusedBattleInit_Main;
|
||||
@@ -1902,7 +1898,7 @@ static void SpriteCB_UnusedBattleInit(struct Sprite* sprite)
|
||||
|
||||
static void SpriteCB_UnusedBattleInit_Main(struct Sprite *sprite)
|
||||
{
|
||||
u16 *arr = (u16*)gDecompressionBuffer;
|
||||
u16 *arr = (u16 *)gDecompressionBuffer;
|
||||
|
||||
switch (sprite->sState)
|
||||
{
|
||||
@@ -2181,7 +2177,7 @@ void CB2_InitEndLinkBattle(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
CpuFill32(0, (void*)(VRAM), VRAM_SIZE);
|
||||
CpuFill32(0, (void *)(VRAM), VRAM_SIZE);
|
||||
SetGpuReg(REG_OFFSET_MOSAIC, 0);
|
||||
SetGpuReg(REG_OFFSET_WIN0H, DISPLAY_WIDTH);
|
||||
SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(DISPLAY_HEIGHT / 2, DISPLAY_HEIGHT / 2 + 1));
|
||||
@@ -2218,14 +2214,14 @@ void CB2_InitEndLinkBattle(void)
|
||||
gBattle_BG3_Y = 0;
|
||||
|
||||
InitBattleBgsVideo();
|
||||
LoadCompressedPalette(gBattleTextboxPalette, 0, 64);
|
||||
LoadCompressedPalette(gBattleTextboxPalette, BG_PLTT_ID(0), 2 * PLTT_SIZE_4BPP);
|
||||
LoadBattleMenuWindowGfx();
|
||||
ResetSpriteData();
|
||||
ResetTasks();
|
||||
DrawBattleEntryBackground();
|
||||
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR);
|
||||
FreeAllSpritePalettes();
|
||||
gReservedSpritePaletteCount = 4;
|
||||
gReservedSpritePaletteCount = MAX_BATTLERS_COUNT;
|
||||
SetVBlankCallback(VBlankCB_Battle);
|
||||
|
||||
// Show end Vs screen with battle results
|
||||
@@ -2322,7 +2318,7 @@ static void EndLinkBattleInSteps(void)
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
CpuFill32(0, (void*)VRAM, VRAM_SIZE);
|
||||
CpuFill32(0, (void *)VRAM, VRAM_SIZE);
|
||||
|
||||
for (i = 0; i < 2; i++)
|
||||
LoadChosenBattleElement(i);
|
||||
@@ -2409,7 +2405,7 @@ static void CB2_InitAskRecordBattle(void)
|
||||
|
||||
SetHBlankCallback(NULL);
|
||||
SetVBlankCallback(NULL);
|
||||
CpuFill32(0, (void*)(VRAM), VRAM_SIZE);
|
||||
CpuFill32(0, (void *)(VRAM), VRAM_SIZE);
|
||||
ResetPaletteFade();
|
||||
gBattle_BG0_X = 0;
|
||||
gBattle_BG0_Y = 0;
|
||||
@@ -2429,7 +2425,7 @@ static void CB2_InitAskRecordBattle(void)
|
||||
ResetSpriteData();
|
||||
ResetTasks();
|
||||
FreeAllSpritePalettes();
|
||||
gReservedSpritePaletteCount = 4;
|
||||
gReservedSpritePaletteCount = MAX_BATTLERS_COUNT;
|
||||
SetVBlankCallback(VBlankCB_Battle);
|
||||
SetMainCallback2(CB2_AskRecordBattle);
|
||||
BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK);
|
||||
@@ -2492,7 +2488,7 @@ static void AskRecordBattle(void)
|
||||
case STATE_PRINT_YES_NO:
|
||||
if (!IsTextPrinterActive(B_WIN_MSG))
|
||||
{
|
||||
HandleBattleWindow(0x18, 8, 0x1D, 0xD, 0);
|
||||
HandleBattleWindow(YESNOBOX_X_Y, 0);
|
||||
BattlePutTextOnWindow(gText_BattleYesNoChoice, B_WIN_YESNO);
|
||||
gBattleCommunication[CURSOR_POSITION] = 1;
|
||||
BattleCreateYesNoCursorAt(1);
|
||||
@@ -2528,7 +2524,7 @@ static void AskRecordBattle(void)
|
||||
if (gBattleCommunication[CURSOR_POSITION] == 0)
|
||||
{
|
||||
// Selected Yes
|
||||
HandleBattleWindow(0x18, 8, 0x1D, 0xD, WINDOW_CLEAR);
|
||||
HandleBattleWindow(YESNOBOX_X_Y, WINDOW_CLEAR);
|
||||
gBattleCommunication[1] = MoveRecordedBattleToSaveData();
|
||||
gBattleCommunication[MULTIUSE_STATE] = STATE_RECORD_YES;
|
||||
}
|
||||
@@ -2547,7 +2543,7 @@ static void AskRecordBattle(void)
|
||||
case STATE_RECORD_NO:
|
||||
if (IsLinkTaskFinished() == TRUE)
|
||||
{
|
||||
HandleBattleWindow(0x18, 8, 0x1D, 0xD, WINDOW_CLEAR);
|
||||
HandleBattleWindow(YESNOBOX_X_Y, WINDOW_CLEAR);
|
||||
if (gMain.anyLinkBattlerHasFrontierPass)
|
||||
{
|
||||
// Other battlers may be recording, wait for them
|
||||
@@ -2653,38 +2649,38 @@ u32 GetBattleWindowTemplatePixelWidth(u32 windowsType, u32 tableId)
|
||||
#define sBattler data[0]
|
||||
#define sSpeciesId data[2]
|
||||
|
||||
void SpriteCb_WildMon(struct Sprite *sprite)
|
||||
void SpriteCB_WildMon(struct Sprite *sprite)
|
||||
{
|
||||
sprite->callback = SpriteCb_MoveWildMonToRight;
|
||||
sprite->callback = SpriteCB_MoveWildMonToRight;
|
||||
StartSpriteAnimIfDifferent(sprite, 0);
|
||||
BeginNormalPaletteFade(0x20000, 0, 10, 10, RGB(8, 8, 8));
|
||||
}
|
||||
|
||||
static void SpriteCb_MoveWildMonToRight(struct Sprite *sprite)
|
||||
static void SpriteCB_MoveWildMonToRight(struct Sprite *sprite)
|
||||
{
|
||||
if ((gIntroSlideFlags & 1) == 0)
|
||||
{
|
||||
sprite->x2 += 2;
|
||||
if (sprite->x2 == 0)
|
||||
{
|
||||
sprite->callback = SpriteCb_WildMonShowHealthbox;
|
||||
sprite->callback = SpriteCB_WildMonShowHealthbox;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCb_WildMonShowHealthbox(struct Sprite *sprite)
|
||||
static void SpriteCB_WildMonShowHealthbox(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->animEnded)
|
||||
{
|
||||
StartHealthboxSlideIn(sprite->sBattler);
|
||||
SetHealthboxSpriteVisible(gHealthboxSpriteIds[sprite->sBattler]);
|
||||
sprite->callback = SpriteCb_WildMonAnimate;
|
||||
sprite->callback = SpriteCB_WildMonAnimate;
|
||||
StartSpriteAnimIfDifferent(sprite, 0);
|
||||
BeginNormalPaletteFade(0x20000, 0, 10, 0, RGB(8, 8, 8));
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCb_WildMonAnimate(struct Sprite *sprite)
|
||||
static void SpriteCB_WildMonAnimate(struct Sprite *sprite)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
@@ -2790,7 +2786,7 @@ static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite)
|
||||
}
|
||||
else // Erase bottom part of the sprite to create a smooth illusion of mon falling down.
|
||||
{
|
||||
u8* dst = gMonSpritesGfxPtr->sprites.byte[GetBattlerPosition(sprite->sBattler)] + (gBattleMonForms[sprite->sBattler] << 11) + (sprite->data[3] << 8);
|
||||
u8 *dst = gMonSpritesGfxPtr->sprites.byte[GetBattlerPosition(sprite->sBattler)] + (gBattleMonForms[sprite->sBattler] << 11) + (sprite->data[3] << 8);
|
||||
|
||||
for (i = 0; i < 0x100; i++)
|
||||
*(dst++) = 0;
|
||||
@@ -2801,14 +2797,14 @@ static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite)
|
||||
}
|
||||
|
||||
// Used when selecting a move, which can hit multiple targets, in double battles.
|
||||
void SpriteCb_ShowAsMoveTarget(struct Sprite *sprite)
|
||||
void SpriteCB_ShowAsMoveTarget(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[3] = 8;
|
||||
sprite->data[4] = sprite->invisible;
|
||||
sprite->callback = SpriteCb_BlinkVisible;
|
||||
sprite->callback = SpriteCB_BlinkVisible;
|
||||
}
|
||||
|
||||
static void SpriteCb_BlinkVisible(struct Sprite *sprite)
|
||||
static void SpriteCB_BlinkVisible(struct Sprite *sprite)
|
||||
{
|
||||
if (--sprite->data[3] == 0)
|
||||
{
|
||||
@@ -2817,7 +2813,7 @@ static void SpriteCb_BlinkVisible(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
void SpriteCb_HideAsMoveTarget(struct Sprite *sprite)
|
||||
void SpriteCB_HideAsMoveTarget(struct Sprite *sprite)
|
||||
{
|
||||
sprite->invisible = sprite->data[4];
|
||||
sprite->data[4] = FALSE;
|
||||
@@ -2988,7 +2984,7 @@ static void SpriteCB_TrainerThrowObject_Main(struct Sprite *sprite)
|
||||
sprite->callback = SpriteCB_Idle;
|
||||
}
|
||||
|
||||
// Sprite callback for a trainer back pic to throw an object
|
||||
// Sprite callback for a trainer back pic to throw an object
|
||||
// (Wally throwing a ball, throwing Pokéblocks/balls in the Safari Zone)
|
||||
void SpriteCB_TrainerThrowObject(struct Sprite *sprite)
|
||||
{
|
||||
@@ -3041,13 +3037,13 @@ static void BattleStartClearSetData(void)
|
||||
|
||||
gDisableStructs[i].isFirstTurn = 2;
|
||||
sUnusedBattlersArray[i] = 0;
|
||||
gLastMoves[i] = 0;
|
||||
gLastLandedMoves[i] = 0;
|
||||
gLastMoves[i] = MOVE_NONE;
|
||||
gLastLandedMoves[i] = MOVE_NONE;
|
||||
gLastHitByType[i] = 0;
|
||||
gLastResultingMoves[i] = 0;
|
||||
gLastResultingMoves[i] = MOVE_NONE;
|
||||
gLastHitBy[i] = 0xFF;
|
||||
gLockedMoves[i] = 0;
|
||||
gLastPrintedMoves[i] = 0;
|
||||
gLockedMoves[i] = MOVE_NONE;
|
||||
gLastPrintedMoves[i] = MOVE_NONE;
|
||||
gBattleResources->flags->flags[i] = 0;
|
||||
gPalaceSelectionBattleScripts[i] = 0;
|
||||
}
|
||||
@@ -3101,21 +3097,21 @@ static void BattleStartClearSetData(void)
|
||||
gBattleStruct->runTries = 0;
|
||||
gBattleStruct->safariGoNearCounter = 0;
|
||||
gBattleStruct->safariPkblThrowCounter = 0;
|
||||
*(&gBattleStruct->safariCatchFactor) = gBaseStats[GetMonData(&gEnemyParty[0], MON_DATA_SPECIES)].catchRate * 100 / 1275;
|
||||
*(&gBattleStruct->safariCatchFactor) = gSpeciesInfo[GetMonData(&gEnemyParty[0], MON_DATA_SPECIES)].catchRate * 100 / 1275;
|
||||
gBattleStruct->safariEscapeFactor = 3;
|
||||
gBattleStruct->wildVictorySong = 0;
|
||||
gBattleStruct->moneyMultiplier = 1;
|
||||
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
*((u8 *)gBattleStruct->lastTakenMove + i) = 0;
|
||||
*((u8 *)gBattleStruct->usedHeldItems + i) = 0;
|
||||
*((u8 *)gBattleStruct->choicedMove + i) = 0;
|
||||
*((u8 *)gBattleStruct->changedItems + i) = 0;
|
||||
*(i + 0 * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(i + 1 * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(i + 2 * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(i + 3 * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*((u8 *)gBattleStruct->lastTakenMove + i) = MOVE_NONE;
|
||||
*((u8 *)gBattleStruct->usedHeldItems + i) = ITEM_NONE;
|
||||
*((u8 *)gBattleStruct->choicedMove + i) = MOVE_NONE;
|
||||
*((u8 *)gBattleStruct->changedItems + i) = ITEM_NONE;
|
||||
*(i + 0 * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(i + 1 * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(i + 2 * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(i + 3 * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < MAX_BATTLERS_COUNT; i++)
|
||||
@@ -3208,23 +3204,23 @@ void SwitchInClearSetData(void)
|
||||
gMoveResultFlags = 0;
|
||||
gDisableStructs[gActiveBattler].isFirstTurn = 2;
|
||||
gDisableStructs[gActiveBattler].truantSwitchInHack = disableStructCopy.truantSwitchInHack;
|
||||
gLastMoves[gActiveBattler] = 0;
|
||||
gLastLandedMoves[gActiveBattler] = 0;
|
||||
gLastMoves[gActiveBattler] = MOVE_NONE;
|
||||
gLastLandedMoves[gActiveBattler] = MOVE_NONE;
|
||||
gLastHitByType[gActiveBattler] = 0;
|
||||
gLastResultingMoves[gActiveBattler] = 0;
|
||||
gLastPrintedMoves[gActiveBattler] = 0;
|
||||
gLastResultingMoves[gActiveBattler] = MOVE_NONE;
|
||||
gLastPrintedMoves[gActiveBattler] = MOVE_NONE;
|
||||
gLastHitBy[gActiveBattler] = 0xFF;
|
||||
|
||||
*(gBattleStruct->lastTakenMove + gActiveBattler * 2 + 0) = 0;
|
||||
*(gBattleStruct->lastTakenMove + gActiveBattler * 2 + 1) = 0;
|
||||
*(0 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(0 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
|
||||
*(1 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(1 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
|
||||
*(2 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(2 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
|
||||
*(3 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(3 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
|
||||
*(gBattleStruct->lastTakenMove + gActiveBattler * 2 + 0) = MOVE_NONE;
|
||||
*(gBattleStruct->lastTakenMove + gActiveBattler * 2 + 1) = MOVE_NONE;
|
||||
*(0 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(0 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
|
||||
*(1 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(1 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
|
||||
*(2 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(2 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
|
||||
*(3 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(3 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
|
||||
|
||||
gBattleStruct->palaceFlags &= ~(gBitTable[gActiveBattler]);
|
||||
|
||||
@@ -3232,18 +3228,18 @@ void SwitchInClearSetData(void)
|
||||
{
|
||||
if (i != gActiveBattler && GetBattlerSide(i) != GetBattlerSide(gActiveBattler))
|
||||
{
|
||||
*(gBattleStruct->lastTakenMove + i * 2 + 0) = 0;
|
||||
*(gBattleStruct->lastTakenMove + i * 2 + 1) = 0;
|
||||
*(gBattleStruct->lastTakenMove + i * 2 + 0) = MOVE_NONE;
|
||||
*(gBattleStruct->lastTakenMove + i * 2 + 1) = MOVE_NONE;
|
||||
}
|
||||
*(i * 8 + gActiveBattler * 2 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(i * 8 + gActiveBattler * 2 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
|
||||
*(i * 8 + gActiveBattler * 2 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(i * 8 + gActiveBattler * 2 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
|
||||
}
|
||||
|
||||
*(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBattler]) + 0) = 0;
|
||||
*(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBattler]) + 1) = 0;
|
||||
*(u8 *)((u8 *)(&gBattleStruct->choicedMove[gActiveBattler]) + 0) = MOVE_NONE;
|
||||
*(u8 *)((u8 *)(&gBattleStruct->choicedMove[gActiveBattler]) + 1) = MOVE_NONE;
|
||||
|
||||
gBattleResources->flags->flags[gActiveBattler] = 0;
|
||||
gCurrentMove = 0;
|
||||
gCurrentMove = MOVE_NONE;
|
||||
gBattleStruct->arenaTurnCounter = 0xFF;
|
||||
|
||||
ClearBattlerMoveHistory(gActiveBattler);
|
||||
@@ -3278,48 +3274,48 @@ void FaintClearSetData(void)
|
||||
for (i = 0; i < sizeof(struct DisableStruct); i++)
|
||||
ptr[i] = 0;
|
||||
|
||||
gProtectStructs[gActiveBattler].protected = 0;
|
||||
gProtectStructs[gActiveBattler].endured = 0;
|
||||
gProtectStructs[gActiveBattler].noValidMoves = 0;
|
||||
gProtectStructs[gActiveBattler].helpingHand = 0;
|
||||
gProtectStructs[gActiveBattler].bounceMove = 0;
|
||||
gProtectStructs[gActiveBattler].stealMove = 0;
|
||||
gProtectStructs[gActiveBattler].flag0Unknown = 0;
|
||||
gProtectStructs[gActiveBattler].prlzImmobility = 0;
|
||||
gProtectStructs[gActiveBattler].confusionSelfDmg = 0;
|
||||
gProtectStructs[gActiveBattler].targetNotAffected = 0;
|
||||
gProtectStructs[gActiveBattler].chargingTurn = 0;
|
||||
gProtectStructs[gActiveBattler].protected = FALSE;
|
||||
gProtectStructs[gActiveBattler].endured = FALSE;
|
||||
gProtectStructs[gActiveBattler].noValidMoves = FALSE;
|
||||
gProtectStructs[gActiveBattler].helpingHand = FALSE;
|
||||
gProtectStructs[gActiveBattler].bounceMove = FALSE;
|
||||
gProtectStructs[gActiveBattler].stealMove = FALSE;
|
||||
gProtectStructs[gActiveBattler].flag0Unknown = FALSE;
|
||||
gProtectStructs[gActiveBattler].prlzImmobility = FALSE;
|
||||
gProtectStructs[gActiveBattler].confusionSelfDmg = FALSE;
|
||||
gProtectStructs[gActiveBattler].targetNotAffected = FALSE;
|
||||
gProtectStructs[gActiveBattler].chargingTurn = FALSE;
|
||||
gProtectStructs[gActiveBattler].fleeType = 0;
|
||||
gProtectStructs[gActiveBattler].usedImprisonedMove = 0;
|
||||
gProtectStructs[gActiveBattler].loveImmobility = 0;
|
||||
gProtectStructs[gActiveBattler].usedDisabledMove = 0;
|
||||
gProtectStructs[gActiveBattler].usedTauntedMove = 0;
|
||||
gProtectStructs[gActiveBattler].flag2Unknown = 0;
|
||||
gProtectStructs[gActiveBattler].flinchImmobility = 0;
|
||||
gProtectStructs[gActiveBattler].notFirstStrike = 0;
|
||||
gProtectStructs[gActiveBattler].usedImprisonedMove = FALSE;
|
||||
gProtectStructs[gActiveBattler].loveImmobility = FALSE;
|
||||
gProtectStructs[gActiveBattler].usedDisabledMove = FALSE;
|
||||
gProtectStructs[gActiveBattler].usedTauntedMove = FALSE;
|
||||
gProtectStructs[gActiveBattler].flag2Unknown = FALSE;
|
||||
gProtectStructs[gActiveBattler].flinchImmobility = FALSE;
|
||||
gProtectStructs[gActiveBattler].notFirstStrike = FALSE;
|
||||
|
||||
gDisableStructs[gActiveBattler].isFirstTurn = 2;
|
||||
|
||||
gLastMoves[gActiveBattler] = 0;
|
||||
gLastLandedMoves[gActiveBattler] = 0;
|
||||
gLastMoves[gActiveBattler] = MOVE_NONE;
|
||||
gLastLandedMoves[gActiveBattler] = MOVE_NONE;
|
||||
gLastHitByType[gActiveBattler] = 0;
|
||||
gLastResultingMoves[gActiveBattler] = 0;
|
||||
gLastPrintedMoves[gActiveBattler] = 0;
|
||||
gLastResultingMoves[gActiveBattler] = MOVE_NONE;
|
||||
gLastPrintedMoves[gActiveBattler] = MOVE_NONE;
|
||||
gLastHitBy[gActiveBattler] = 0xFF;
|
||||
|
||||
*(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBattler]) + 0) = 0;
|
||||
*(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBattler]) + 1) = 0;
|
||||
*(u8 *)((u8 *)(&gBattleStruct->choicedMove[gActiveBattler]) + 0) = MOVE_NONE;
|
||||
*(u8 *)((u8 *)(&gBattleStruct->choicedMove[gActiveBattler]) + 1) = MOVE_NONE;
|
||||
|
||||
*(gBattleStruct->lastTakenMove + gActiveBattler * 2 + 0) = 0;
|
||||
*(gBattleStruct->lastTakenMove + gActiveBattler * 2 + 1) = 0;
|
||||
*(0 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(0 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
|
||||
*(1 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(1 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
|
||||
*(2 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(2 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
|
||||
*(3 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(3 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
|
||||
*(gBattleStruct->lastTakenMove + gActiveBattler * 2 + 0) = MOVE_NONE;
|
||||
*(gBattleStruct->lastTakenMove + gActiveBattler * 2 + 1) = MOVE_NONE;
|
||||
*(0 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(0 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
|
||||
*(1 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(1 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
|
||||
*(2 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(2 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
|
||||
*(3 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(3 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
|
||||
|
||||
gBattleStruct->palaceFlags &= ~(gBitTable[gActiveBattler]);
|
||||
|
||||
@@ -3327,17 +3323,17 @@ void FaintClearSetData(void)
|
||||
{
|
||||
if (i != gActiveBattler && GetBattlerSide(i) != GetBattlerSide(gActiveBattler))
|
||||
{
|
||||
*(gBattleStruct->lastTakenMove + i * 2 + 0) = 0;
|
||||
*(gBattleStruct->lastTakenMove + i * 2 + 1) = 0;
|
||||
*(gBattleStruct->lastTakenMove + i * 2 + 0) = MOVE_NONE;
|
||||
*(gBattleStruct->lastTakenMove + i * 2 + 1) = MOVE_NONE;
|
||||
}
|
||||
*(i * 8 + gActiveBattler * 2 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(i * 8 + gActiveBattler * 2 + (u8*)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
|
||||
*(i * 8 + gActiveBattler * 2 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0;
|
||||
*(i * 8 + gActiveBattler * 2 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0;
|
||||
}
|
||||
|
||||
gBattleResources->flags->flags[gActiveBattler] = 0;
|
||||
|
||||
gBattleMons[gActiveBattler].type1 = gBaseStats[gBattleMons[gActiveBattler].species].type1;
|
||||
gBattleMons[gActiveBattler].type2 = gBaseStats[gBattleMons[gActiveBattler].species].type2;
|
||||
gBattleMons[gActiveBattler].type1 = gSpeciesInfo[gBattleMons[gActiveBattler].species].types[0];
|
||||
gBattleMons[gActiveBattler].type2 = gSpeciesInfo[gBattleMons[gActiveBattler].species].types[1];
|
||||
|
||||
ClearBattlerMoveHistory(gActiveBattler);
|
||||
ClearBattlerAbilityHistory(gActiveBattler);
|
||||
@@ -3374,8 +3370,8 @@ static void BattleIntroPrepareBackgroundSlide(void)
|
||||
BtlController_EmitIntroSlide(BUFFER_A, gBattleTerrain);
|
||||
MarkBattlerForControllerExec(gActiveBattler);
|
||||
gBattleMainFunc = BattleIntroDrawTrainersOrMonsSprites;
|
||||
gBattleCommunication[0] = 0;
|
||||
gBattleCommunication[1] = 0;
|
||||
gBattleCommunication[MULTIUSE_STATE] = 0;
|
||||
gBattleCommunication[SPRITES_INIT_STATE1] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3390,7 +3386,7 @@ static void BattleIntroDrawTrainersOrMonsSprites(void)
|
||||
for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
|
||||
{
|
||||
if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI)
|
||||
&& GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
|
||||
&& GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
|
||||
{
|
||||
ptr = (u8 *)&gBattleMons[gActiveBattler];
|
||||
for (i = 0; i < sizeof(struct BattlePokemon); i++)
|
||||
@@ -3398,14 +3394,14 @@ static void BattleIntroDrawTrainersOrMonsSprites(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
u16* hpOnSwitchout;
|
||||
u16 *hpOnSwitchout;
|
||||
|
||||
ptr = (u8 *)&gBattleMons[gActiveBattler];
|
||||
for (i = 0; i < sizeof(struct BattlePokemon); i++)
|
||||
ptr[i] = gBattleBufferB[gActiveBattler][4 + i];
|
||||
|
||||
gBattleMons[gActiveBattler].type1 = gBaseStats[gBattleMons[gActiveBattler].species].type1;
|
||||
gBattleMons[gActiveBattler].type2 = gBaseStats[gBattleMons[gActiveBattler].species].type2;
|
||||
gBattleMons[gActiveBattler].type1 = gSpeciesInfo[gBattleMons[gActiveBattler].species].types[0];
|
||||
gBattleMons[gActiveBattler].type2 = gSpeciesInfo[gBattleMons[gActiveBattler].species].types[1];
|
||||
gBattleMons[gActiveBattler].ability = GetAbilityBySpecies(gBattleMons[gActiveBattler].species, gBattleMons[gActiveBattler].abilityNum);
|
||||
hpOnSwitchout = &gBattleStruct->hpOnSwitchout[GetBattlerSide(gActiveBattler)];
|
||||
*hpOnSwitchout = gBattleMons[gActiveBattler].hp;
|
||||
@@ -3548,7 +3544,6 @@ static void BattleIntroDrawPartySummaryScreens(void)
|
||||
|
||||
gBattleMainFunc = BattleIntroPrintWildMonAttacked;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static void BattleIntroPrintTrainerWantsToBattle(void)
|
||||
@@ -3842,7 +3837,7 @@ static void TryDoEventsBeforeFirstTurn(void)
|
||||
|
||||
gBattleStruct->switchInAbilitiesCounter++;
|
||||
|
||||
if (effect)
|
||||
if (effect != 0)
|
||||
return;
|
||||
}
|
||||
if (AbilityBattleEffects(ABILITYEFFECT_INTIMIDATE1, 0, 0, 0, 0) != 0)
|
||||
@@ -3857,7 +3852,7 @@ static void TryDoEventsBeforeFirstTurn(void)
|
||||
|
||||
gBattleStruct->switchInItemsCounter++;
|
||||
|
||||
if (effect)
|
||||
if (effect != 0)
|
||||
return;
|
||||
}
|
||||
for (i = 0; i < MAX_BATTLERS_COUNT; i++)
|
||||
@@ -4000,11 +3995,11 @@ u8 IsRunningFromBattleImpossible(void)
|
||||
gPotentialItemEffectBattler = gActiveBattler;
|
||||
|
||||
if (holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN)
|
||||
return 0;
|
||||
return BATTLE_RUN_SUCCESS;
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||
return 0;
|
||||
return BATTLE_RUN_SUCCESS;
|
||||
if (gBattleMons[gActiveBattler].ability == ABILITY_RUN_AWAY)
|
||||
return 0;
|
||||
return BATTLE_RUN_SUCCESS;
|
||||
|
||||
side = GetBattlerSide(gActiveBattler);
|
||||
|
||||
@@ -4016,7 +4011,7 @@ u8 IsRunningFromBattleImpossible(void)
|
||||
gBattleScripting.battler = i;
|
||||
gLastUsedAbility = gBattleMons[i].ability;
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_PREVENTS_ESCAPE;
|
||||
return 2;
|
||||
return BATTLE_RUN_FAILURE;
|
||||
}
|
||||
if (side != GetBattlerSide(i)
|
||||
&& gBattleMons[gActiveBattler].ability != ABILITY_LEVITATE
|
||||
@@ -4026,7 +4021,7 @@ u8 IsRunningFromBattleImpossible(void)
|
||||
gBattleScripting.battler = i;
|
||||
gLastUsedAbility = gBattleMons[i].ability;
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_PREVENTS_ESCAPE;
|
||||
return 2;
|
||||
return BATTLE_RUN_FAILURE;
|
||||
}
|
||||
}
|
||||
i = AbilityBattleEffects(ABILITYEFFECT_CHECK_FIELD_EXCEPT_BATTLER, gActiveBattler, ABILITY_MAGNET_PULL, 0, 0);
|
||||
@@ -4035,20 +4030,20 @@ u8 IsRunningFromBattleImpossible(void)
|
||||
gBattleScripting.battler = i - 1;
|
||||
gLastUsedAbility = gBattleMons[i - 1].ability;
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_PREVENTS_ESCAPE;
|
||||
return 2;
|
||||
return BATTLE_RUN_FAILURE;
|
||||
}
|
||||
if ((gBattleMons[gActiveBattler].status2 & (STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED))
|
||||
|| (gStatuses3[gActiveBattler] & STATUS3_ROOTED))
|
||||
{
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CANT_ESCAPE;
|
||||
return 1;
|
||||
return BATTLE_RUN_FORBIDDEN;
|
||||
}
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
|
||||
{
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DONT_LEAVE_BIRCH;
|
||||
return 1;
|
||||
return BATTLE_RUN_FORBIDDEN;
|
||||
}
|
||||
return 0;
|
||||
return BATTLE_RUN_SUCCESS;
|
||||
}
|
||||
|
||||
void SwitchPartyOrder(u8 battler)
|
||||
@@ -4058,7 +4053,7 @@ void SwitchPartyOrder(u8 battler)
|
||||
u8 partyId2;
|
||||
|
||||
for (i = 0; i < (int)ARRAY_COUNT(gBattlePartyCurrentOrder); i++)
|
||||
gBattlePartyCurrentOrder[i] = *(battler * 3 + i + (u8*)(gBattleStruct->battlerPartyOrders));
|
||||
gBattlePartyCurrentOrder[i] = *(battler * 3 + i + (u8 *)(gBattleStruct->battlerPartyOrders));
|
||||
|
||||
partyId1 = GetPartyIdFromBattlePartyId(gBattlerPartyIndexes[battler]);
|
||||
partyId2 = GetPartyIdFromBattlePartyId(*(gBattleStruct->monToSwitchIntoId + battler));
|
||||
@@ -4068,15 +4063,15 @@ void SwitchPartyOrder(u8 battler)
|
||||
{
|
||||
for (i = 0; i < (int)ARRAY_COUNT(gBattlePartyCurrentOrder); i++)
|
||||
{
|
||||
*(battler * 3 + i + (u8*)(gBattleStruct->battlerPartyOrders)) = gBattlePartyCurrentOrder[i];
|
||||
*(BATTLE_PARTNER(battler) * 3 + i + (u8*)(gBattleStruct->battlerPartyOrders)) = gBattlePartyCurrentOrder[i];
|
||||
*(battler * 3 + i + (u8 *)(gBattleStruct->battlerPartyOrders)) = gBattlePartyCurrentOrder[i];
|
||||
*(BATTLE_PARTNER(battler) * 3 + i + (u8 *)(gBattleStruct->battlerPartyOrders)) = gBattlePartyCurrentOrder[i];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = 0; i < (int)ARRAY_COUNT(gBattlePartyCurrentOrder); i++)
|
||||
{
|
||||
*(battler * 3 + i + (u8*)(gBattleStruct->battlerPartyOrders)) = gBattlePartyCurrentOrder[i];
|
||||
*(battler * 3 + i + (u8 *)(gBattleStruct->battlerPartyOrders)) = gBattlePartyCurrentOrder[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4304,7 +4299,7 @@ static void HandleTurnActionSelectionState(void)
|
||||
BattleScriptExecute(BattleScript_PrintCantRunFromTrainer);
|
||||
gBattleCommunication[gActiveBattler] = STATE_BEFORE_ACTION_CHOSEN;
|
||||
}
|
||||
else if (IsRunningFromBattleImpossible()
|
||||
else if (IsRunningFromBattleImpossible() != BATTLE_RUN_SUCCESS
|
||||
&& gBattleBufferB[gActiveBattler][1] == B_ACTION_RUN)
|
||||
{
|
||||
gSelectionBattleScripts[gActiveBattler] = BattleScript_PrintCantEscapeFromBattle;
|
||||
@@ -4437,7 +4432,7 @@ static void HandleTurnActionSelectionState(void)
|
||||
|
||||
if (((gBattleTypeFlags & BATTLE_TYPE_MULTI) || !(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
|
||||
|| (position & BIT_FLANK) != B_FLANK_LEFT
|
||||
|| (*(&gBattleStruct->absentBattlerFlags) & gBitTable[GetBattlerAtPosition(position ^ BIT_FLANK)]))
|
||||
|| (*(&gBattleStruct->absentBattlerFlags) & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(position))]))
|
||||
{
|
||||
BtlController_EmitLinkStandbyMsg(BUFFER_A, LINK_STANDBY_MSG_STOP_BOUNCE, i);
|
||||
}
|
||||
@@ -4546,13 +4541,13 @@ static void UpdateBattlerPartyOrdersOnSwitch(void)
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
||||
{
|
||||
*(gActiveBattler * 3 + (u8*)(gBattleStruct->battlerPartyOrders) + 0) &= 0xF;
|
||||
*(gActiveBattler * 3 + (u8*)(gBattleStruct->battlerPartyOrders) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0);
|
||||
*(gActiveBattler * 3 + (u8*)(gBattleStruct->battlerPartyOrders) + 1) = gBattleBufferB[gActiveBattler][3];
|
||||
*(gActiveBattler * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) &= 0xF;
|
||||
*(gActiveBattler * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0);
|
||||
*(gActiveBattler * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 1) = gBattleBufferB[gActiveBattler][3];
|
||||
|
||||
*((gActiveBattler ^ BIT_FLANK) * 3 + (u8*)(gBattleStruct->battlerPartyOrders) + 0) &= (0xF0);
|
||||
*((gActiveBattler ^ BIT_FLANK) * 3 + (u8*)(gBattleStruct->battlerPartyOrders) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0) >> 4;
|
||||
*((gActiveBattler ^ BIT_FLANK) * 3 + (u8*)(gBattleStruct->battlerPartyOrders) + 2) = gBattleBufferB[gActiveBattler][3];
|
||||
*((BATTLE_PARTNER(gActiveBattler)) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) &= (0xF0);
|
||||
*((BATTLE_PARTNER(gActiveBattler)) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0) >> 4;
|
||||
*((BATTLE_PARTNER(gActiveBattler)) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 2) = gBattleBufferB[gActiveBattler][3];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4834,7 +4829,7 @@ static void TurnValuesCleanUp(bool8 var0)
|
||||
}
|
||||
else
|
||||
{
|
||||
dataPtr = (u8*)(&gProtectStructs[gActiveBattler]);
|
||||
dataPtr = (u8 *)(&gProtectStructs[gActiveBattler]);
|
||||
for (i = 0; i < sizeof(struct ProtectStruct); i++)
|
||||
dataPtr[i] = 0;
|
||||
|
||||
@@ -4862,7 +4857,7 @@ void SpecialStatusesClear(void)
|
||||
for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
|
||||
{
|
||||
s32 i;
|
||||
u8 *dataPtr = (u8*)(&gSpecialStatuses[gActiveBattler]);
|
||||
u8 *dataPtr = (u8 *)(&gSpecialStatuses[gActiveBattler]);
|
||||
|
||||
for (i = 0; i < sizeof(struct SpecialStatus); i++)
|
||||
dataPtr[i] = 0;
|
||||
@@ -5188,7 +5183,7 @@ static void ReturnFromBattleToOverworld(void)
|
||||
PartySpreadPokerus(gPlayerParty);
|
||||
}
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK && gReceivedRemoteLinkPlayers != 0)
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK && gReceivedRemoteLinkPlayers)
|
||||
return;
|
||||
|
||||
gSpecialVar_Result = gBattleOutcome;
|
||||
|
||||
+158
-257
@@ -1010,7 +1010,7 @@ const u16 gStatUpStringIds[] =
|
||||
[B_MSG_STAT_WONT_INCREASE] = STRINGID_STATSWONTINCREASE,
|
||||
[B_MSG_STAT_ROSE_EMPTY] = STRINGID_EMPTYSTRING3,
|
||||
[B_MSG_STAT_ROSE_ITEM] = STRINGID_USINGITEMSTATOFPKMNROSE,
|
||||
[B_MSG_USED_DIRE_HIT] = STRINGID_PKMNUSEDXTOGETPUMPED,
|
||||
[B_MSG_USED_DIRE_HIT] = STRINGID_PKMNUSEDXTOGETPUMPED,
|
||||
};
|
||||
|
||||
const u16 gStatDownStringIds[] =
|
||||
@@ -1035,7 +1035,7 @@ const u16 gFirstTurnOfTwoStringIds[] =
|
||||
};
|
||||
|
||||
// Index copied from move's index in gTrappingMoves
|
||||
const u16 gWrappedStringIds[] =
|
||||
const u16 gWrappedStringIds[NUM_TRAPPING_MOVES] =
|
||||
{
|
||||
STRINGID_PKMNSQUEEZEDBYBIND, // MOVE_BIND
|
||||
STRINGID_PKMNWRAPPEDBY, // MOVE_WRAP
|
||||
@@ -1253,7 +1253,7 @@ const u16 gCaughtMonStringIds[] =
|
||||
[B_MSG_LANETTES_BOX_FULL] = STRINGID_PKMNBOXLANETTESPCFULL,
|
||||
};
|
||||
|
||||
const u16 gTrappingMoves[] =
|
||||
const u16 gTrappingMoves[NUM_TRAPPING_MOVES + 1] =
|
||||
{
|
||||
MOVE_BIND,
|
||||
MOVE_WRAP,
|
||||
@@ -1261,7 +1261,7 @@ const u16 gTrappingMoves[] =
|
||||
MOVE_CLAMP,
|
||||
MOVE_WHIRLPOOL,
|
||||
MOVE_SAND_TOMB,
|
||||
0xFFFF
|
||||
0xFFFF // Never read
|
||||
};
|
||||
|
||||
const u8 gText_PkmnIsEvolving[] = _("What?\n{STR_VAR_1} is evolving!");
|
||||
@@ -1371,7 +1371,7 @@ const u8 gText_OpponentMon1Name[] = _("{B_OPPONENT_MON1_NAME}");
|
||||
const u8 gText_Mind[] = _("Mind");
|
||||
const u8 gText_Skill[] = _("Skill");
|
||||
const u8 gText_Body[] = _("Body");
|
||||
const u8 gText_Judgement[] = _("{B_BUFF1}{CLEAR 13}Judgment{CLEAR 13}{B_BUFF2}");
|
||||
const u8 gText_Judgment[] = _("{B_BUFF1}{CLEAR 13}Judgment{CLEAR 13}{B_BUFF2}");
|
||||
static const u8 sText_TwoTrainersSentPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_OPPONENT_MON1_NAME}!\p{B_TRAINER2_CLASS} {B_TRAINER2_NAME} sent\nout {B_OPPONENT_MON2_NAME}!");
|
||||
static const u8 sText_Trainer2SentOutPkmn[] = _("{B_TRAINER2_CLASS} {B_TRAINER2_NAME} sent\nout {B_BUFF1}!");
|
||||
static const u8 sText_TwoTrainersWantToBattle[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} and\n{B_TRAINER2_CLASS} {B_TRAINER2_NAME}\lwant to battle!\p");
|
||||
@@ -1481,288 +1481,236 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] =
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 1,
|
||||
.fgColor = TEXT_COLOR_WHITE,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.shadowColor = TEXT_COLOR_GREEN,
|
||||
.fgColor = 1,
|
||||
.bgColor = 15,
|
||||
.shadowColor = 6,
|
||||
},
|
||||
[B_WIN_ACTION_PROMPT] = {
|
||||
.fillValue = PIXEL_FILL(0xF),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = 1,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_COLOR_WHITE,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.shadowColor = TEXT_COLOR_GREEN,
|
||||
.fgColor = 1,
|
||||
.bgColor = 15,
|
||||
.shadowColor = 6,
|
||||
},
|
||||
[B_WIN_ACTION_MENU] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_MOVE_NAME_1] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NARROW,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_MOVE_NAME_2] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NARROW,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_MOVE_NAME_3] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NARROW,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_MOVE_NAME_4] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NARROW,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_PP] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NARROW,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_3,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_2,
|
||||
.fgColor = 12,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 11,
|
||||
},
|
||||
[B_WIN_DUMMY] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_PP_REMAINING] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = 2,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_3,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_2,
|
||||
.fgColor = 12,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 11,
|
||||
},
|
||||
[B_WIN_MOVE_TYPE] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NARROW,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_SWITCH_PROMPT] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NARROW,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_YESNO] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_LEVEL_UP_BOX] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_LEVEL_UP_BANNER] = {
|
||||
.fillValue = PIXEL_FILL(0),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = 32,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_COLOR_WHITE,
|
||||
.bgColor = TEXT_COLOR_TRANSPARENT,
|
||||
.shadowColor = TEXT_COLOR_DARK_GRAY,
|
||||
.fgColor = 1,
|
||||
.shadowColor = 2,
|
||||
},
|
||||
[B_WIN_VS_PLAYER] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = -1,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_VS_OPPONENT] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = -1,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_VS_MULTI_PLAYER_1] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = -1,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_VS_MULTI_PLAYER_2] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = -1,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_VS_MULTI_PLAYER_3] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = -1,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_VS_MULTI_PLAYER_4] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = -1,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_VS_OUTCOME_DRAW] = {
|
||||
.fillValue = PIXEL_FILL(0),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = -1,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_COLOR_WHITE,
|
||||
.bgColor = TEXT_COLOR_TRANSPARENT,
|
||||
.shadowColor = TEXT_COLOR_GREEN,
|
||||
.fgColor = 1,
|
||||
.shadowColor = 6,
|
||||
},
|
||||
[B_WIN_VS_OUTCOME_LEFT] = {
|
||||
.fillValue = PIXEL_FILL(0),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = -1,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_COLOR_WHITE,
|
||||
.bgColor = TEXT_COLOR_TRANSPARENT,
|
||||
.shadowColor = TEXT_COLOR_GREEN,
|
||||
.fgColor = 1,
|
||||
.shadowColor = 6,
|
||||
},
|
||||
[B_WIN_VS_OUTCOME_RIGHT] = {
|
||||
.fillValue = PIXEL_FILL(0x0),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = -1,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_COLOR_WHITE,
|
||||
.bgColor = TEXT_COLOR_TRANSPARENT,
|
||||
.shadowColor = TEXT_COLOR_GREEN,
|
||||
.fgColor = 1,
|
||||
.shadowColor = 6,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1773,276 +1721,229 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] =
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 1,
|
||||
.fgColor = TEXT_COLOR_WHITE,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.shadowColor = TEXT_COLOR_GREEN,
|
||||
.fgColor = 1,
|
||||
.bgColor = 15,
|
||||
.shadowColor = 6,
|
||||
},
|
||||
[B_WIN_ACTION_PROMPT] = {
|
||||
.fillValue = PIXEL_FILL(0xF),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = 1,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_COLOR_WHITE,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.shadowColor = TEXT_COLOR_GREEN,
|
||||
.fgColor = 1,
|
||||
.bgColor = 15,
|
||||
.shadowColor = 6,
|
||||
},
|
||||
[B_WIN_ACTION_MENU] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_MOVE_NAME_1] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NARROW,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_MOVE_NAME_2] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NARROW,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_MOVE_NAME_3] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NARROW,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_MOVE_NAME_4] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NARROW,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_PP] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NARROW,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_3,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_2,
|
||||
.fgColor = 12,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 11,
|
||||
},
|
||||
[B_WIN_DUMMY] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_PP_REMAINING] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = 2,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_3,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_2,
|
||||
.fgColor = 12,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 11,
|
||||
},
|
||||
[B_WIN_MOVE_TYPE] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NARROW,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_SWITCH_PROMPT] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NARROW,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_YESNO] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_LEVEL_UP_BOX] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[B_WIN_LEVEL_UP_BANNER] = {
|
||||
.fillValue = PIXEL_FILL(0),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = 32,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_COLOR_WHITE,
|
||||
.bgColor = TEXT_COLOR_TRANSPARENT,
|
||||
.shadowColor = TEXT_COLOR_DARK_GRAY,
|
||||
.fgColor = 1,
|
||||
.shadowColor = 2,
|
||||
},
|
||||
[ARENA_WIN_PLAYER_NAME] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = -1,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_COLOR_WHITE,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 1,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[ARENA_WIN_VS] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = -1,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[ARENA_WIN_OPPONENT_NAME] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = -1,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[ARENA_WIN_MIND] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = -1,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[ARENA_WIN_SKILL] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = -1,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[ARENA_WIN_BODY] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = -1,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[ARENA_WIN_JUDGEMENT_TITLE] = {
|
||||
[ARENA_WIN_JUDGMENT_TITLE] = {
|
||||
.fillValue = PIXEL_FILL(0xE),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = -1,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 0,
|
||||
.fgColor = TEXT_DYNAMIC_COLOR_4,
|
||||
.bgColor = TEXT_DYNAMIC_COLOR_5,
|
||||
.shadowColor = TEXT_DYNAMIC_COLOR_6,
|
||||
.fgColor = 13,
|
||||
.bgColor = 14,
|
||||
.shadowColor = 15,
|
||||
},
|
||||
[ARENA_WIN_JUDGEMENT_TEXT] = {
|
||||
[ARENA_WIN_JUDGMENT_TEXT] = {
|
||||
.fillValue = PIXEL_FILL(0x1),
|
||||
.fontId = FONT_NORMAL,
|
||||
.x = 0,
|
||||
.y = 1,
|
||||
.letterSpacing = 0,
|
||||
.lineSpacing = 0,
|
||||
.speed = 1,
|
||||
.fgColor = TEXT_COLOR_DARK_GRAY,
|
||||
.bgColor = TEXT_COLOR_WHITE,
|
||||
.shadowColor = TEXT_COLOR_LIGHT_GRAY,
|
||||
.fgColor = 2,
|
||||
.bgColor = 1,
|
||||
.shadowColor = 3,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -2059,11 +1960,11 @@ void BufferStringBattle(u16 stringID)
|
||||
s32 i;
|
||||
const u8 *stringPtr = NULL;
|
||||
|
||||
gBattleMsgDataPtr = (struct BattleMsgData*)(&gBattleBufferA[gActiveBattler][4]);
|
||||
gBattleMsgDataPtr = (struct BattleMsgData *)(&gBattleBufferA[gActiveBattler][4]);
|
||||
gLastUsedItem = gBattleMsgDataPtr->lastItem;
|
||||
gLastUsedAbility = gBattleMsgDataPtr->lastAbility;
|
||||
gBattleScripting.battler = gBattleMsgDataPtr->scrActive;
|
||||
*(&gBattleStruct->field_52) = gBattleMsgDataPtr->unk1605E;
|
||||
*(&gBattleStruct->scriptPartyIdx) = gBattleMsgDataPtr->bakScriptPartyIdx;
|
||||
*(&gBattleStruct->hpScale) = gBattleMsgDataPtr->hpScale;
|
||||
gPotentialItemEffectBattler = gBattleMsgDataPtr->itemEffectBattler;
|
||||
*(&gBattleStruct->stringMoveType) = gBattleMsgDataPtr->moveType;
|
||||
@@ -2346,17 +2247,17 @@ void BufferStringBattle(u16 stringID)
|
||||
BattleStringExpandPlaceholdersToDisplayedString(stringPtr);
|
||||
}
|
||||
|
||||
u32 BattleStringExpandPlaceholdersToDisplayedString(const u8* src)
|
||||
u32 BattleStringExpandPlaceholdersToDisplayedString(const u8 *src)
|
||||
{
|
||||
BattleStringExpandPlaceholders(src, gDisplayedStringBattle);
|
||||
}
|
||||
|
||||
static const u8* TryGetStatusString(u8 *src)
|
||||
static const u8 *TryGetStatusString(u8 *src)
|
||||
{
|
||||
u32 i;
|
||||
u8 status[8];
|
||||
u32 chars1, chars2;
|
||||
u8* statusPtr;
|
||||
u8 *statusPtr;
|
||||
|
||||
memcpy(status, sDummyWeirdStatusString, 8);
|
||||
|
||||
@@ -2369,13 +2270,13 @@ static const u8* TryGetStatusString(u8 *src)
|
||||
statusPtr++;
|
||||
}
|
||||
|
||||
chars1 = *(u32*)(&status[0]);
|
||||
chars2 = *(u32*)(&status[4]);
|
||||
chars1 = *(u32 *)(&status[0]);
|
||||
chars2 = *(u32 *)(&status[4]);
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(gStatusConditionStringsTable); i++)
|
||||
{
|
||||
if (chars1 == *(u32*)(&gStatusConditionStringsTable[i][0][0])
|
||||
&& chars2 == *(u32*)(&gStatusConditionStringsTable[i][0][4]))
|
||||
if (chars1 == *(u32 *)(&gStatusConditionStringsTable[i][0][0])
|
||||
&& chars2 == *(u32 *)(&gStatusConditionStringsTable[i][0][4]))
|
||||
return gStatusConditionStringsTable[i][1];
|
||||
}
|
||||
return NULL;
|
||||
@@ -2713,7 +2614,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
|
||||
}
|
||||
break;
|
||||
case B_TXT_26: // ?
|
||||
HANDLE_NICKNAME_STRING_CASE(gBattleScripting.battler, *(&gBattleStruct->field_52))
|
||||
HANDLE_NICKNAME_STRING_CASE(gBattleScripting.battler, *(&gBattleStruct->scriptPartyIdx))
|
||||
break;
|
||||
case B_TXT_PC_CREATOR_NAME: // lanette pc
|
||||
if (FlagGet(FLAG_SYS_PC_LANETTE))
|
||||
@@ -2966,7 +2867,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst)
|
||||
// unused, since the value loaded into the buffer is not read; it loaded one of
|
||||
// two particles (either "は" or "の") which works in tandem with ChooseTypeOfMoveUsedString
|
||||
// below to effect changes in the meaning of the line.
|
||||
static void ChooseMoveUsedParticle(u8* textBuff)
|
||||
static void ChooseMoveUsedParticle(u8 *textBuff)
|
||||
{
|
||||
s32 counter = 0;
|
||||
u32 i = 0;
|
||||
@@ -3006,7 +2907,7 @@ static void ChooseMoveUsedParticle(u8* textBuff)
|
||||
//
|
||||
// sText_ExclamationMark5 was " こうげき!" This resulted in a translation of
|
||||
// "<NAME>'s <ATTACK> attack!".
|
||||
static void ChooseTypeOfMoveUsedString(u8* dst)
|
||||
static void ChooseTypeOfMoveUsedString(u8 *dst)
|
||||
{
|
||||
s32 counter = 0;
|
||||
s32 i = 0;
|
||||
@@ -3081,7 +2982,7 @@ void BattlePutTextOnWindow(const u8 *text, u8 windowId)
|
||||
printerTemplate.x = printerTemplate.currentX = alignX;
|
||||
}
|
||||
|
||||
if (windowId == ARENA_WIN_JUDGEMENT_TEXT)
|
||||
if (windowId == ARENA_WIN_JUDGMENT_TEXT)
|
||||
gTextFlags.useAlternateDownArrow = FALSE;
|
||||
else
|
||||
gTextFlags.useAlternateDownArrow = TRUE;
|
||||
@@ -3091,7 +2992,7 @@ void BattlePutTextOnWindow(const u8 *text, u8 windowId)
|
||||
else
|
||||
gTextFlags.autoScroll = FALSE;
|
||||
|
||||
if (windowId == B_WIN_MSG || windowId == ARENA_WIN_JUDGEMENT_TEXT)
|
||||
if (windowId == B_WIN_MSG || windowId == ARENA_WIN_JUDGMENT_TEXT)
|
||||
{
|
||||
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))
|
||||
speed = 1;
|
||||
@@ -3119,7 +3020,7 @@ void BattlePutTextOnWindow(const u8 *text, u8 windowId)
|
||||
|
||||
void SetPpNumbersPaletteInMoveSelection(void)
|
||||
{
|
||||
struct ChooseMoveStruct *chooseMoveStruct = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]);
|
||||
struct ChooseMoveStruct *chooseMoveStruct = (struct ChooseMoveStruct *)(&gBattleBufferA[gActiveBattler][4]);
|
||||
const u16 *palPtr = gPPTextPalette;
|
||||
u8 var = GetCurrentPpToMaxPpState(chooseMoveStruct->currentPp[gMoveSelectionCursor[gActiveBattler]],
|
||||
chooseMoveStruct->maxPp[gMoveSelectionCursor[gActiveBattler]]);
|
||||
|
||||
+27
-27
@@ -684,7 +684,7 @@ static void SetBattlePikeData(void)
|
||||
|
||||
static void IsNextRoomFinal(void)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum > 14)
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum > NUM_PIKE_ROOMS)
|
||||
gSpecialVar_Result = TRUE;
|
||||
else
|
||||
gSpecialVar_Result = FALSE;
|
||||
@@ -845,21 +845,21 @@ static bool8 DoesTypePreventStatus(u16 species, u32 status)
|
||||
switch (status)
|
||||
{
|
||||
case STATUS1_TOXIC_POISON:
|
||||
if (gBaseStats[species].type1 == TYPE_STEEL || gBaseStats[species].type1 == TYPE_POISON
|
||||
|| gBaseStats[species].type2 == TYPE_STEEL || gBaseStats[species].type2 == TYPE_POISON)
|
||||
if (gSpeciesInfo[species].types[0] == TYPE_STEEL || gSpeciesInfo[species].types[0] == TYPE_POISON
|
||||
|| gSpeciesInfo[species].types[1] == TYPE_STEEL || gSpeciesInfo[species].types[1] == TYPE_POISON)
|
||||
ret = TRUE;
|
||||
break;
|
||||
case STATUS1_FREEZE:
|
||||
if (gBaseStats[species].type1 == TYPE_ICE || gBaseStats[species].type2 == TYPE_ICE)
|
||||
if (gSpeciesInfo[species].types[0] == TYPE_ICE || gSpeciesInfo[species].types[1] == TYPE_ICE)
|
||||
ret = TRUE;
|
||||
break;
|
||||
case STATUS1_PARALYSIS:
|
||||
if (gBaseStats[species].type1 == TYPE_GROUND || gBaseStats[species].type1 == TYPE_ELECTRIC
|
||||
|| gBaseStats[species].type2 == TYPE_GROUND || gBaseStats[species].type2 == TYPE_ELECTRIC)
|
||||
if (gSpeciesInfo[species].types[0] == TYPE_GROUND || gSpeciesInfo[species].types[0] == TYPE_ELECTRIC
|
||||
|| gSpeciesInfo[species].types[1] == TYPE_GROUND || gSpeciesInfo[species].types[1] == TYPE_ELECTRIC)
|
||||
ret = TRUE;
|
||||
break;
|
||||
case STATUS1_BURN:
|
||||
if (gBaseStats[species].type1 == TYPE_FIRE || gBaseStats[species].type2 == TYPE_FIRE)
|
||||
if (gSpeciesInfo[species].types[0] == TYPE_FIRE || gSpeciesInfo[species].types[1] == TYPE_FIRE)
|
||||
ret = TRUE;
|
||||
break;
|
||||
case STATUS1_SLEEP:
|
||||
@@ -1084,7 +1084,7 @@ static u8 GetNextRoomType(void)
|
||||
}
|
||||
|
||||
nextRoomType = roomCandidates[Random() % numRoomCandidates];
|
||||
free(roomCandidates);
|
||||
Free(roomCandidates);
|
||||
if (nextRoomType == PIKE_ROOM_STATUS)
|
||||
TryInflictRandomStatus();
|
||||
|
||||
@@ -1117,20 +1117,20 @@ bool32 TryGenerateBattlePikeWildMon(bool8 checkKeenEyeIntimidate)
|
||||
if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_50)
|
||||
{
|
||||
monLevel = GetHighestLevelInPlayerParty();
|
||||
if (monLevel < 60)
|
||||
if (monLevel < FRONTIER_MIN_LEVEL_OPEN)
|
||||
{
|
||||
monLevel = 60;
|
||||
monLevel = FRONTIER_MIN_LEVEL_OPEN;
|
||||
}
|
||||
else
|
||||
{
|
||||
monLevel -= wildMons[headerId][pikeMonId].levelDelta;
|
||||
if (monLevel < 60)
|
||||
monLevel = 60;
|
||||
if (monLevel < FRONTIER_MIN_LEVEL_OPEN)
|
||||
monLevel = FRONTIER_MIN_LEVEL_OPEN;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
monLevel = 50 - wildMons[headerId][pikeMonId].levelDelta;
|
||||
monLevel = FRONTIER_MAX_LEVEL_50 - wildMons[headerId][pikeMonId].levelDelta;
|
||||
}
|
||||
|
||||
if (checkKeenEyeIntimidate == TRUE && !CanEncounterWildMon(monLevel))
|
||||
@@ -1138,9 +1138,9 @@ bool32 TryGenerateBattlePikeWildMon(bool8 checkKeenEyeIntimidate)
|
||||
|
||||
SetMonData(&gEnemyParty[0],
|
||||
MON_DATA_EXP,
|
||||
&gExperienceTables[gBaseStats[wildMons[headerId][pikeMonId].species].growthRate][monLevel]);
|
||||
&gExperienceTables[gSpeciesInfo[wildMons[headerId][pikeMonId].species].growthRate][monLevel]);
|
||||
|
||||
if (gBaseStats[wildMons[headerId][pikeMonId].species].abilities[1])
|
||||
if (gSpeciesInfo[wildMons[headerId][pikeMonId].species].abilities[1])
|
||||
abilityNum = Random() % 2;
|
||||
else
|
||||
abilityNum = 0;
|
||||
@@ -1158,11 +1158,11 @@ u8 GetBattlePikeWildMonHeaderId(void)
|
||||
u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
u16 winStreak = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode];
|
||||
|
||||
if (winStreak <= 280)
|
||||
if (winStreak <= 20 * NUM_PIKE_ROOMS)
|
||||
headerId = 0;
|
||||
else if (winStreak <= 560)
|
||||
else if (winStreak <= 40 * NUM_PIKE_ROOMS)
|
||||
headerId = 1;
|
||||
else if (winStreak <= 840)
|
||||
else if (winStreak <= 60 * NUM_PIKE_ROOMS)
|
||||
headerId = 2;
|
||||
else
|
||||
headerId = 3;
|
||||
@@ -1251,7 +1251,7 @@ static void Task_DoStatusInflictionScreenFlash(u8 taskId)
|
||||
{
|
||||
if (IsStatusInflictionScreenFlashTaskFinished())
|
||||
{
|
||||
EnableBothScriptContexts();
|
||||
ScriptContext_Enable();
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
@@ -1363,7 +1363,7 @@ static void SetHintedRoom(void)
|
||||
}
|
||||
|
||||
gSaveBlock2Ptr->frontier.pikeHintedRoomType = roomCandidates[Random() % count];
|
||||
free(roomCandidates);
|
||||
Free(roomCandidates);
|
||||
if (gSaveBlock2Ptr->frontier.pikeHintedRoomType == PIKE_ROOM_STATUS && !AtLeastOneHealthyMon())
|
||||
gSaveBlock2Ptr->frontier.pikeHintedRoomType = PIKE_ROOM_NPC;
|
||||
if (gSaveBlock2Ptr->frontier.pikeHintedRoomType == PIKE_ROOM_DOUBLE_BATTLE && !AtLeastTwoAliveMons())
|
||||
@@ -1392,10 +1392,10 @@ static void PrepareOneTrainer(bool8 difficult)
|
||||
if (!difficult)
|
||||
battleNum = 1;
|
||||
else
|
||||
battleNum = 6;
|
||||
battleNum = FRONTIER_STAGES_PER_CHALLENGE - 1;
|
||||
|
||||
lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
challengeNum = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] / 14;
|
||||
challengeNum = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] / NUM_PIKE_ROOMS;
|
||||
do
|
||||
{
|
||||
trainerId = GetRandomScaledFrontierTrainerId(challengeNum, battleNum);
|
||||
@@ -1409,7 +1409,7 @@ static void PrepareOneTrainer(bool8 difficult)
|
||||
gTrainerBattleOpponent_A = trainerId;
|
||||
gFacilityTrainers = gBattleFrontierTrainers;
|
||||
SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0);
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < 14)
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < NUM_PIKE_ROOMS)
|
||||
gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1] = gTrainerBattleOpponent_A;
|
||||
}
|
||||
|
||||
@@ -1418,7 +1418,7 @@ static void PrepareTwoTrainers(void)
|
||||
int i;
|
||||
u16 trainerId;
|
||||
u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
u16 challengeNum = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] / 14;
|
||||
u16 challengeNum = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] / NUM_PIKE_ROOMS;
|
||||
|
||||
gFacilityTrainers = gBattleFrontierTrainers;
|
||||
do
|
||||
@@ -1433,7 +1433,7 @@ static void PrepareTwoTrainers(void)
|
||||
|
||||
gTrainerBattleOpponent_A = trainerId;
|
||||
SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0);
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum <= 14)
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum <= NUM_PIKE_ROOMS)
|
||||
gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1] = gTrainerBattleOpponent_A;
|
||||
|
||||
do
|
||||
@@ -1448,7 +1448,7 @@ static void PrepareTwoTrainers(void)
|
||||
|
||||
gTrainerBattleOpponent_B = trainerId;
|
||||
SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_B, 1);
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < 14)
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < NUM_PIKE_ROOMS)
|
||||
gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum - 2] = gTrainerBattleOpponent_B;
|
||||
}
|
||||
|
||||
@@ -1456,7 +1456,7 @@ static void ClearPikeTrainerIds(void)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
for (i = 0; i < 14; i++)
|
||||
for (i = 0; i < NUM_PIKE_ROOMS; i++)
|
||||
gSaveBlock2Ptr->frontier.trainerIds[i] = 0xFFFF;
|
||||
}
|
||||
|
||||
|
||||
+52
-52
@@ -83,18 +83,18 @@ static void ClearPyramidPartyHeldItems(void);
|
||||
static void SetPyramidFloorPalette(void);
|
||||
static void BattlePyramidStartMenu(void);
|
||||
static void RestorePyramidPlayerParty(void);
|
||||
static void InitPyramidBagItems(u8 lvlMode);
|
||||
static void InitPyramidBagItems(u8);
|
||||
static u8 GetPyramidFloorTemplateId(void);
|
||||
static u8 GetPostBattleDirectionHintTextIndex(int *, u8, u8);
|
||||
static void Task_SetPyramidFloorPalette(u8 taskId);
|
||||
static void MarkPyramidTrainerAsBattled(u16 trainerId);
|
||||
static void GetPyramidFloorLayoutOffsets(u8 *layoutOffsets);
|
||||
static void Task_SetPyramidFloorPalette(u8);
|
||||
static void MarkPyramidTrainerAsBattled(u16);
|
||||
static void GetPyramidFloorLayoutOffsets(u8 *);
|
||||
static void GetPyramidEntranceAndExitSquareIds(u8 *, u8 *);
|
||||
static void SetPyramidObjectPositionsUniformly(u8);
|
||||
static bool8 SetPyramidObjectPositionsInAndNearSquare(u8, u8);
|
||||
static bool8 SetPyramidObjectPositionsNearSquare(u8, u8);
|
||||
static bool8 TrySetPyramidObjectEventPositionInSquare(u8 arg0, u8 *floorLayoutOffsets, u8 squareId, u8 objectEventId);
|
||||
static bool8 TrySetPyramidObjectEventPositionAtCoords(bool8 objType, u8 x, u8 y, u8 *floorLayoutOffsets, u8 squareId, u8 objectEventId);
|
||||
static bool8 TrySetPyramidObjectEventPositionInSquare(u8, u8 *, u8, u8);
|
||||
static bool8 TrySetPyramidObjectEventPositionAtCoords(bool8, u8, u8, u8 *, u8, u8);
|
||||
|
||||
// Const rom data.
|
||||
#define ABILITY_RANDOM 2 // For wild mons data.
|
||||
@@ -279,9 +279,9 @@ static const u8 sPyramidFloorTemplateOptions[][2] =
|
||||
{100, 15}
|
||||
};
|
||||
|
||||
static const u8 sFloorTemplateOffsets[] =
|
||||
static const u8 sFloorTemplateOffsets[FRONTIER_STAGES_PER_CHALLENGE] =
|
||||
{
|
||||
0, 4, 9, 14, 19, 24, 29, 0
|
||||
0, 4, 9, 14, 19, 24, 29
|
||||
};
|
||||
|
||||
static const u16 sPickupItemsLvl50[TOTAL_ROUNDS][PICKUP_ITEMS_PER_ROUND] =
|
||||
@@ -406,7 +406,7 @@ static const u8 sPickupItemSlots[][2] =
|
||||
{100, 9},
|
||||
};
|
||||
|
||||
static const u8 sPickupItemOffsets[] = {0, 9, 18, 27, 36, 45, 54};
|
||||
static const u8 sPickupItemOffsets[FRONTIER_STAGES_PER_CHALLENGE] = {0, 9, 18, 27, 36, 45, 54};
|
||||
|
||||
static const struct PyramidTrainerEncounterMusic sTrainerClassEncounterMusic[54] =
|
||||
{
|
||||
@@ -963,7 +963,7 @@ static void SeedPyramidFloor(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
for (i = 0; i < (int)ARRAY_COUNT(gSaveBlock2Ptr->frontier.pyramidRandoms); i++)
|
||||
gSaveBlock2Ptr->frontier.pyramidRandoms[i] = Random();
|
||||
|
||||
gSaveBlock2Ptr->frontier.pyramidTrainerFlags = 0;
|
||||
@@ -977,7 +977,7 @@ static void SetPickupItem(void)
|
||||
u8 id;
|
||||
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
u32 floor = gSaveBlock2Ptr->frontier.curChallengeBattleNum;
|
||||
u32 round = (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] / 7) % TOTAL_ROUNDS;
|
||||
u32 round = (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] / FRONTIER_STAGES_PER_CHALLENGE) % TOTAL_ROUNDS;
|
||||
|
||||
if (round >= TOTAL_ROUNDS)
|
||||
round = TOTAL_ROUNDS - 1;
|
||||
@@ -1016,8 +1016,8 @@ static void HidePyramidItem(void)
|
||||
{
|
||||
// Rather than using event flags to hide the item object event,
|
||||
// it moves them far off the map bounds.
|
||||
events[i].x = 0x7FFF;
|
||||
events[i].y = 0x7FFF;
|
||||
events[i].x = SHRT_MAX;
|
||||
events[i].y = SHRT_MAX;
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
@@ -1063,7 +1063,7 @@ static void ShowPostBattleHintText(void)
|
||||
case HINT_REMAINING_ITEMS:
|
||||
for (i = 0; i < GetNumBattlePyramidObjectEvents(); i++)
|
||||
{
|
||||
if (events[i].graphicsId == OBJ_EVENT_GFX_ITEM_BALL && events[i].x != 0x7FFF && events[i].y != 0x7FFF)
|
||||
if (events[i].graphicsId == OBJ_EVENT_GFX_ITEM_BALL && events[i].x != SHRT_MAX && events[i].y != SHRT_MAX)
|
||||
textIndex++;
|
||||
}
|
||||
i = 1;
|
||||
@@ -1071,7 +1071,7 @@ static void ShowPostBattleHintText(void)
|
||||
case HINT_REMAINING_TRAINERS:
|
||||
id = GetPyramidFloorTemplateId();
|
||||
textIndex = sPyramidFloorTemplates[id].numTrainers;
|
||||
for (i = 0; i < 8; i++)
|
||||
for (i = 0; i < MAX_PYRAMID_TRAINERS; i++)
|
||||
{
|
||||
if (gBitTable[i] & gSaveBlock2Ptr->frontier.pyramidTrainerFlags)
|
||||
textIndex--;
|
||||
@@ -1326,7 +1326,7 @@ static void MarkPyramidTrainerAsBattled(u16 trainerId)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 8; i++)
|
||||
for (i = 0; i < MAX_PYRAMID_TRAINERS; i++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
|
||||
gSaveBlock2Ptr->frontier.pyramidTrainerFlags |= gBitTable[i];
|
||||
@@ -1345,7 +1345,7 @@ void GenerateBattlePyramidWildMon(void)
|
||||
const struct PyramidWildMon *wildMons;
|
||||
u32 id;
|
||||
u32 lvl = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
u16 round = (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvl] / 7) % TOTAL_ROUNDS;
|
||||
u16 round = (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvl] / FRONTIER_STAGES_PER_CHALLENGE) % TOTAL_ROUNDS;
|
||||
|
||||
if (round >= TOTAL_ROUNDS)
|
||||
round = TOTAL_ROUNDS - 1;
|
||||
@@ -1371,7 +1371,7 @@ void GenerateBattlePyramidWildMon(void)
|
||||
}
|
||||
SetMonData(&gEnemyParty[0],
|
||||
MON_DATA_EXP,
|
||||
&gExperienceTables[gBaseStats[wildMons[id].species].growthRate][lvl]);
|
||||
&gExperienceTables[gSpeciesInfo[wildMons[id].species].growthRate][lvl]);
|
||||
|
||||
switch (wildMons[id].abilityNum)
|
||||
{
|
||||
@@ -1381,7 +1381,7 @@ void GenerateBattlePyramidWildMon(void)
|
||||
break;
|
||||
case ABILITY_RANDOM:
|
||||
default:
|
||||
if (gBaseStats[wildMons[id].species].abilities[1])
|
||||
if (gSpeciesInfo[wildMons[id].species].abilities[1])
|
||||
{
|
||||
i = GetMonData(&gEnemyParty[0], MON_DATA_PERSONALITY, NULL) % 2;
|
||||
SetMonData(&gEnemyParty[0], MON_DATA_ABILITY_NUM, &i);
|
||||
@@ -1480,7 +1480,7 @@ u8 GetTrainerEncounterMusicIdInBattlePyramid(u16 trainerId)
|
||||
// Unused
|
||||
static void BattlePyramidRetireChallenge(void)
|
||||
{
|
||||
ScriptContext1_SetupScript(BattlePyramid_Retire);
|
||||
ScriptContext_SetupScript(BattlePyramid_Retire);
|
||||
}
|
||||
|
||||
static u16 GetUniqueTrainerId(u8 objectEventId)
|
||||
@@ -1488,13 +1488,13 @@ static u16 GetUniqueTrainerId(u8 objectEventId)
|
||||
int i;
|
||||
u16 trainerId;
|
||||
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
u32 challengeNum = gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] / 7;
|
||||
u32 battleNum = gSaveBlock2Ptr->frontier.curChallengeBattleNum;
|
||||
if (battleNum == 7)
|
||||
u32 challengeNum = gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] / FRONTIER_STAGES_PER_CHALLENGE;
|
||||
u32 floor = gSaveBlock2Ptr->frontier.curChallengeBattleNum;
|
||||
if (floor == FRONTIER_STAGES_PER_CHALLENGE)
|
||||
{
|
||||
do
|
||||
{
|
||||
trainerId = GetRandomScaledFrontierTrainerId(challengeNum + 1, battleNum);
|
||||
trainerId = GetRandomScaledFrontierTrainerId(challengeNum + 1, floor);
|
||||
for (i = 0; i < objectEventId; i++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
|
||||
@@ -1506,7 +1506,7 @@ static u16 GetUniqueTrainerId(u8 objectEventId)
|
||||
{
|
||||
do
|
||||
{
|
||||
trainerId = GetRandomScaledFrontierTrainerId(challengeNum, battleNum);
|
||||
trainerId = GetRandomScaledFrontierTrainerId(challengeNum, floor);
|
||||
for (i = 0; i < objectEventId; i++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId)
|
||||
@@ -1523,11 +1523,11 @@ void GenerateBattlePyramidFloorLayout(u16 *backupMapData, bool8 setPlayerPositio
|
||||
int y, x;
|
||||
int i;
|
||||
u8 entranceSquareId, exitSquareId;
|
||||
u8 *floorLayoutOffsets = AllocZeroed(16);
|
||||
u8 *floorLayoutOffsets = AllocZeroed(NUM_PYRAMID_FLOOR_SQUARES);
|
||||
|
||||
GetPyramidFloorLayoutOffsets(floorLayoutOffsets);
|
||||
GetPyramidEntranceAndExitSquareIds(&entranceSquareId, &exitSquareId);
|
||||
for (i = 0; i < 16; i++)
|
||||
for (i = 0; i < NUM_PYRAMID_FLOOR_SQUARES; i++)
|
||||
{
|
||||
u16 *map;
|
||||
int yOffset, xOffset;
|
||||
@@ -1535,11 +1535,11 @@ void GenerateBattlePyramidFloorLayout(u16 *backupMapData, bool8 setPlayerPositio
|
||||
const u16 *layoutMap = mapLayout->map;
|
||||
|
||||
gBackupMapLayout.map = backupMapData;
|
||||
gBackupMapLayout.width = mapLayout->width * 4 + MAP_OFFSET_W;
|
||||
gBackupMapLayout.height = mapLayout->height * 4 + MAP_OFFSET_H;
|
||||
gBackupMapLayout.width = mapLayout->width * PYRAMID_FLOOR_SQUARES_WIDE + MAP_OFFSET_W;
|
||||
gBackupMapLayout.height = mapLayout->height * PYRAMID_FLOOR_SQUARES_HIGH + MAP_OFFSET_H;
|
||||
map = backupMapData;
|
||||
yOffset = ((i / 4 * mapLayout->height) + MAP_OFFSET) * gBackupMapLayout.width;
|
||||
xOffset = (i % 4 * mapLayout->width) + MAP_OFFSET;
|
||||
yOffset = ((i / PYRAMID_FLOOR_SQUARES_WIDE * mapLayout->height) + MAP_OFFSET) * gBackupMapLayout.width;
|
||||
xOffset = (i % PYRAMID_FLOOR_SQUARES_WIDE * mapLayout->width) + MAP_OFFSET;
|
||||
map += yOffset + xOffset;
|
||||
for (y = 0; y < mapLayout->height; y++)
|
||||
{
|
||||
@@ -1553,8 +1553,8 @@ void GenerateBattlePyramidFloorLayout(u16 *backupMapData, bool8 setPlayerPositio
|
||||
{
|
||||
if (i == entranceSquareId && setPlayerPosition == FALSE)
|
||||
{
|
||||
gSaveBlock1Ptr->pos.x = (mapLayout->width * (i % 4)) + x;
|
||||
gSaveBlock1Ptr->pos.y = (mapLayout->height * (i / 4)) + y;
|
||||
gSaveBlock1Ptr->pos.x = (mapLayout->width * (i % PYRAMID_FLOOR_SQUARES_WIDE)) + x;
|
||||
gSaveBlock1Ptr->pos.y = (mapLayout->height * (i / PYRAMID_FLOOR_SQUARES_WIDE)) + y;
|
||||
}
|
||||
map[x] = (layoutMap[x] & (MAPGRID_ELEVATION_MASK | MAPGRID_COLLISION_MASK)) | METATILE_BattlePyramid_Floor;
|
||||
}
|
||||
@@ -1563,12 +1563,12 @@ void GenerateBattlePyramidFloorLayout(u16 *backupMapData, bool8 setPlayerPositio
|
||||
map[x] = layoutMap[x];
|
||||
}
|
||||
}
|
||||
map += MAP_OFFSET_W + (mapLayout->width * 4);
|
||||
map += MAP_OFFSET_W + (mapLayout->width * PYRAMID_FLOOR_SQUARES_WIDE);
|
||||
layoutMap += mapLayout->width;
|
||||
}
|
||||
}
|
||||
RunOnLoadMapScript();
|
||||
free(floorLayoutOffsets);
|
||||
Free(floorLayoutOffsets);
|
||||
}
|
||||
|
||||
void LoadBattlePyramidObjectEventTemplates(void)
|
||||
@@ -1577,7 +1577,7 @@ void LoadBattlePyramidObjectEventTemplates(void)
|
||||
u8 id;
|
||||
u8 entranceSquareId, exitSquareId;
|
||||
|
||||
for (i = 0; i < 8; i++)
|
||||
for (i = 0; i < MAX_PYRAMID_TRAINERS; i++)
|
||||
gSaveBlock2Ptr->frontier.trainerIds[i] = 0xFFFF;
|
||||
|
||||
id = GetPyramidFloorTemplateId();
|
||||
@@ -1633,13 +1633,13 @@ void LoadBattlePyramidFloorObjectEventScripts(void)
|
||||
|
||||
static void GetPyramidEntranceAndExitSquareIds(u8 *entranceSquareId, u8 *exitSquareId)
|
||||
{
|
||||
*entranceSquareId = gSaveBlock2Ptr->frontier.pyramidRandoms[3] % 16;
|
||||
*exitSquareId = gSaveBlock2Ptr->frontier.pyramidRandoms[0] % 16;
|
||||
*entranceSquareId = gSaveBlock2Ptr->frontier.pyramidRandoms[3] % NUM_PYRAMID_FLOOR_SQUARES;
|
||||
*exitSquareId = gSaveBlock2Ptr->frontier.pyramidRandoms[0] % NUM_PYRAMID_FLOOR_SQUARES;
|
||||
|
||||
if (*entranceSquareId == *exitSquareId)
|
||||
{
|
||||
*entranceSquareId = (gSaveBlock2Ptr->frontier.pyramidRandoms[3] + 1 ) % 16;
|
||||
*exitSquareId = (gSaveBlock2Ptr->frontier.pyramidRandoms[0] + 15) % 16;
|
||||
*entranceSquareId = (gSaveBlock2Ptr->frontier.pyramidRandoms[3] + 1 ) % NUM_PYRAMID_FLOOR_SQUARES;
|
||||
*exitSquareId = (gSaveBlock2Ptr->frontier.pyramidRandoms[0] + NUM_PYRAMID_FLOOR_SQUARES - 1) % NUM_PYRAMID_FLOOR_SQUARES;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1651,10 +1651,10 @@ static void SetPyramidObjectPositionsUniformly(u8 objType)
|
||||
int squareId;
|
||||
u32 bits = 0;
|
||||
u8 id = GetPyramidFloorTemplateId();
|
||||
u8 *floorLayoutOffsets = AllocZeroed(16);
|
||||
u8 *floorLayoutOffsets = AllocZeroed(NUM_PYRAMID_FLOOR_SQUARES);
|
||||
|
||||
GetPyramidFloorLayoutOffsets(floorLayoutOffsets);
|
||||
squareId = gSaveBlock2Ptr->frontier.pyramidRandoms[2] % 16;
|
||||
squareId = gSaveBlock2Ptr->frontier.pyramidRandoms[2] % NUM_PYRAMID_FLOOR_SQUARES;
|
||||
if (objType == OBJ_TRAINERS)
|
||||
{
|
||||
numObjects = sPyramidFloorTemplates[id].numTrainers;
|
||||
@@ -1682,10 +1682,10 @@ static void SetPyramidObjectPositionsUniformly(u8 objType)
|
||||
if (gBitTable[squareId] & gSaveBlock2Ptr->frontier.pyramidRandoms[3])
|
||||
bits |= 2;
|
||||
}
|
||||
if (++squareId >= 16)
|
||||
if (++squareId >= NUM_PYRAMID_FLOOR_SQUARES)
|
||||
squareId = 0;
|
||||
|
||||
if (squareId == gSaveBlock2Ptr->frontier.pyramidRandoms[2] % 16)
|
||||
if (squareId == gSaveBlock2Ptr->frontier.pyramidRandoms[2] % NUM_PYRAMID_FLOOR_SQUARES)
|
||||
{
|
||||
if (bits & 1)
|
||||
bits |= 6;
|
||||
@@ -1697,7 +1697,7 @@ static void SetPyramidObjectPositionsUniformly(u8 objType)
|
||||
} while (!(bits & 4) && TrySetPyramidObjectEventPositionInSquare(objType, floorLayoutOffsets, squareId, objectStartIndex + i));
|
||||
bits &= 1;
|
||||
}
|
||||
free(floorLayoutOffsets);
|
||||
Free(floorLayoutOffsets);
|
||||
}
|
||||
|
||||
static bool8 SetPyramidObjectPositionsInAndNearSquare(u8 objType, u8 squareId)
|
||||
@@ -1709,7 +1709,7 @@ static bool8 SetPyramidObjectPositionsInAndNearSquare(u8 objType, u8 squareId)
|
||||
int numPlacedObjects = 0;
|
||||
int numObjects;
|
||||
u8 id = GetPyramidFloorTemplateId();
|
||||
u8 *floorLayoutOffsets = AllocZeroed(16);
|
||||
u8 *floorLayoutOffsets = AllocZeroed(NUM_PYRAMID_FLOOR_SQUARES);
|
||||
|
||||
GetPyramidFloorLayoutOffsets(floorLayoutOffsets);
|
||||
if (objType == OBJ_TRAINERS)
|
||||
@@ -1760,7 +1760,7 @@ static bool8 SetPyramidObjectPositionsInAndNearSquare(u8 objType, u8 squareId)
|
||||
r7 &= 1;
|
||||
}
|
||||
#ifdef BUGFIX
|
||||
free(floorLayoutOffsets);
|
||||
Free(floorLayoutOffsets);
|
||||
#endif
|
||||
|
||||
return (numObjects / 2) > numPlacedObjects;
|
||||
@@ -1775,7 +1775,7 @@ static bool8 SetPyramidObjectPositionsNearSquare(u8 objType, u8 squareId)
|
||||
int r8 = 0;
|
||||
int numObjects;
|
||||
u8 id = GetPyramidFloorTemplateId();
|
||||
u8 *floorLayoutOffsets = AllocZeroed(16);
|
||||
u8 *floorLayoutOffsets = AllocZeroed(NUM_PYRAMID_FLOOR_SQUARES);
|
||||
|
||||
GetPyramidFloorLayoutOffsets(floorLayoutOffsets);
|
||||
if (objType == OBJ_TRAINERS)
|
||||
@@ -1814,7 +1814,7 @@ static bool8 SetPyramidObjectPositionsNearSquare(u8 objType, u8 squareId)
|
||||
break;
|
||||
}
|
||||
#ifdef BUGFIX
|
||||
free(floorLayoutOffsets);
|
||||
Free(floorLayoutOffsets);
|
||||
#endif
|
||||
|
||||
return (numObjects / 2) > numPlacedObjects;
|
||||
@@ -1900,7 +1900,7 @@ static void GetPyramidFloorLayoutOffsets(u8 *layoutOffsets)
|
||||
int rand = (gSaveBlock2Ptr->frontier.pyramidRandoms[0]) | (gSaveBlock2Ptr->frontier.pyramidRandoms[1] << 16);
|
||||
u8 id = GetPyramidFloorTemplateId();
|
||||
|
||||
for (i = 0; i < 16; i++)
|
||||
for (i = 0; i < NUM_PYRAMID_FLOOR_SQUARES; i++)
|
||||
{
|
||||
layoutOffsets[i] = sPyramidFloorTemplates[id].layoutOffsets[rand & 0x7];
|
||||
rand >>= 3;
|
||||
@@ -1931,7 +1931,7 @@ u8 GetNumBattlePyramidObjectEvents(void)
|
||||
u8 i;
|
||||
struct ObjectEventTemplate *events = gSaveBlock1Ptr->objectEventTemplates;
|
||||
|
||||
for (i = 0; i < 16; i++)
|
||||
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
|
||||
{
|
||||
if (events[i].localId == 0)
|
||||
break;
|
||||
@@ -1959,7 +1959,7 @@ u16 GetBattlePyramidPickupItemId(void)
|
||||
int rand;
|
||||
u32 i;
|
||||
u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
int round = (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] / 7);
|
||||
int round = (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] / FRONTIER_STAGES_PER_CHALLENGE);
|
||||
|
||||
if (round >= TOTAL_ROUNDS)
|
||||
round = TOTAL_ROUNDS - 1;
|
||||
|
||||
+21
-23
@@ -160,7 +160,7 @@ static const struct ListMenuTemplate sListMenuTemplate =
|
||||
.itemVerticalPadding = 0,
|
||||
.scrollMultiple = LIST_NO_MULTIPLE_SCROLL,
|
||||
.fontId = FONT_NARROW,
|
||||
.cursorKind = 0
|
||||
.cursorKind = CURSOR_BLACK_ARROW
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -309,7 +309,7 @@ static const struct OamData sOamData_PyramidBag =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_NORMAL,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(64x64),
|
||||
.x = 0,
|
||||
@@ -393,7 +393,7 @@ static void OpenBattlePyramidBagInBattle(void)
|
||||
// make room.
|
||||
void ChooseItemsToTossFromPyramidBag(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
LockPlayerFieldControls();
|
||||
FadeScreen(FADE_TO_BLACK, 0);
|
||||
CreateTask(Task_ChooseItemsToTossFromPyramidBag, 10);
|
||||
}
|
||||
@@ -578,7 +578,7 @@ static bool8 LoadPyramidBagGfx(void)
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
LoadCompressedPalette(gBattlePyramidBagInterface_Pal, 0, 32);
|
||||
LoadCompressedPalette(gBattlePyramidBagInterface_Pal, BG_PLTT_ID(0), PLTT_SIZE_4BPP);
|
||||
gPyramidBagMenu->state++;
|
||||
break;
|
||||
case 3:
|
||||
@@ -645,7 +645,7 @@ static void BagCursorMoved(s32 itemIndex, bool8 onInit, struct ListMenu *list)
|
||||
if (itemIndex != LIST_CANCEL)
|
||||
ShowItemIcon(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode][itemIndex], gPyramidBagMenu->isAltIcon);
|
||||
else
|
||||
ShowItemIcon(0xFFFF, gPyramidBagMenu->isAltIcon); // Show exit arrow if on Cancel
|
||||
ShowItemIcon(ITEM_LIST_END, gPyramidBagMenu->isAltIcon); // Show exit arrow if on Cancel
|
||||
gPyramidBagMenu->isAltIcon ^= 1;
|
||||
PrintItemDescription(itemIndex);
|
||||
}
|
||||
@@ -1195,7 +1195,7 @@ static void Task_ChooseHowManyToToss(u8 taskId)
|
||||
{
|
||||
// Toss
|
||||
PlaySE(SE_SELECT);
|
||||
ClearStdWindowAndFrameToTransparent(WIN_TOSS_NUM, 0);
|
||||
ClearStdWindowAndFrameToTransparent(WIN_TOSS_NUM, FALSE);
|
||||
ClearWindowTilemap(WIN_TOSS_NUM);
|
||||
ScheduleBgCopyTilemapToVram(1);
|
||||
AskConfirmToss(taskId);
|
||||
@@ -1204,7 +1204,7 @@ static void Task_ChooseHowManyToToss(u8 taskId)
|
||||
{
|
||||
// Cancel tossing
|
||||
PlaySE(SE_SELECT);
|
||||
ClearStdWindowAndFrameToTransparent(WIN_TOSS_NUM, 0);
|
||||
ClearStdWindowAndFrameToTransparent(WIN_TOSS_NUM, FALSE);
|
||||
ClearWindowTilemap(WIN_TOSS_NUM);
|
||||
ScheduleBgCopyTilemapToVram(1);
|
||||
DontTossItem(taskId);
|
||||
@@ -1404,20 +1404,20 @@ void TryStoreHeldItemsInPyramidBag(void)
|
||||
{
|
||||
u8 i;
|
||||
struct Pokemon *party = gPlayerParty;
|
||||
u16 *newItems = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(u16));
|
||||
u8 *newQuantities = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(u8));
|
||||
u16 *newItems = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(*newItems));
|
||||
u8 *newQuantities = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(*newQuantities));
|
||||
u16 heldItem;
|
||||
|
||||
memcpy(newItems, gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode], PYRAMID_BAG_ITEMS_COUNT * sizeof(u16));
|
||||
memcpy(newQuantities, gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode], PYRAMID_BAG_ITEMS_COUNT * sizeof(u8));
|
||||
for (i = 0; i < 3; i++)
|
||||
memcpy(newItems, gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode], PYRAMID_BAG_ITEMS_COUNT * sizeof(*newItems));
|
||||
memcpy(newQuantities, gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode], PYRAMID_BAG_ITEMS_COUNT * sizeof(*newQuantities));
|
||||
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
|
||||
{
|
||||
heldItem = GetMonData(&party[i], MON_DATA_HELD_ITEM);
|
||||
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.quantity[gSaveBlock2Ptr->frontier.lvlMode], newQuantities, PYRAMID_BAG_ITEMS_COUNT * sizeof(u8));
|
||||
memcpy(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode], newItems, PYRAMID_BAG_ITEMS_COUNT * sizeof(*newItems));
|
||||
memcpy(gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode], newQuantities, PYRAMID_BAG_ITEMS_COUNT * sizeof(*newQuantities));
|
||||
Free(newItems);
|
||||
Free(newQuantities);
|
||||
gSpecialVar_Result = 1;
|
||||
@@ -1426,10 +1426,8 @@ void TryStoreHeldItemsInPyramidBag(void)
|
||||
}
|
||||
|
||||
heldItem = ITEM_NONE;
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
|
||||
SetMonData(&party[i], MON_DATA_HELD_ITEM, &heldItem);
|
||||
}
|
||||
gSpecialVar_Result = 0;
|
||||
Free(newItems);
|
||||
Free(newQuantities);
|
||||
@@ -1441,9 +1439,9 @@ static void InitPyramidBagWindows(void)
|
||||
|
||||
InitWindows(sWindowTemplates);
|
||||
DeactivateAllTextPrinters();
|
||||
LoadUserWindowBorderGfx(0, 0x1, 0xE0);
|
||||
LoadMessageBoxGfx(0, 0xA, 0xD0);
|
||||
LoadPalette(gStandardMenuPalette, 0xF0, 0x20);
|
||||
LoadUserWindowBorderGfx(0, 0x1, BG_PLTT_ID(14));
|
||||
LoadMessageBoxGfx(0, 0xA, BG_PLTT_ID(13));
|
||||
LoadPalette(gStandardMenuPalette, BG_PLTT_ID(15), PLTT_SIZE_4BPP);
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(sWindowTemplates); i++)
|
||||
FillWindowPixelBuffer(i, PIXEL_FILL(0));
|
||||
@@ -1466,7 +1464,7 @@ static void PyramidBagPrint_Quantity(u8 windowId, const u8 *src, u8 x, u8 y, u8
|
||||
|
||||
static void DrawTossNumberWindow(u8 windowId)
|
||||
{
|
||||
DrawStdFrameWithCustomTileAndPalette(windowId, 0, 1, 0xE);
|
||||
DrawStdFrameWithCustomTileAndPalette(windowId, FALSE, 1, 0xE);
|
||||
ScheduleBgCopyTilemapToVram(1);
|
||||
}
|
||||
|
||||
@@ -1539,10 +1537,10 @@ static void FreeItemIconSprite(u8 spriteArrId)
|
||||
static void LoadPyramidBagPalette(void)
|
||||
{
|
||||
struct SpritePalette spritePalette;
|
||||
u16 *palPtr = Alloc(0x40);
|
||||
u16 *palPtr = Alloc(2 * PLTT_SIZE_4BPP);
|
||||
|
||||
LZDecompressWram(gBattlePyramidBag_Pal, palPtr);
|
||||
spritePalette.data = palPtr + (gSaveBlock2Ptr->frontier.lvlMode * 16);
|
||||
spritePalette.data = palPtr + PLTT_ID(gSaveBlock2Ptr->frontier.lvlMode);
|
||||
spritePalette.tag = TAG_PYRAMID_BAG;
|
||||
LoadSpritePalette(&spritePalette);
|
||||
Free(palPtr);
|
||||
|
||||
@@ -388,7 +388,7 @@ static void RemoveTrainerHillRecordsWindow(u8 windowId)
|
||||
|
||||
static void ClearVramOamPlttRegs(void)
|
||||
{
|
||||
DmaClearLarge16(3, (void*)(VRAM), VRAM_SIZE, 0x1000);
|
||||
DmaClearLarge16(3, (void *)(VRAM), VRAM_SIZE, 0x1000);
|
||||
DmaClear32(3, OAM, OAM_SIZE);
|
||||
DmaClear16(3, PLTT, PLTT_SIZE);
|
||||
|
||||
@@ -444,7 +444,7 @@ static void LoadTrainerHillRecordsWindowGfx(u8 bgId)
|
||||
{
|
||||
LoadBgTiles(bgId, sTrainerHillWindowTileset, sizeof(sTrainerHillWindowTileset), 0);
|
||||
CopyToBgTilemapBufferRect(bgId, sTrainerHillWindowTilemap, 0, 0, 0x20, 0x20);
|
||||
LoadPalette(sTrainerHillWindowPalette, 0, 0x20);
|
||||
LoadPalette(sTrainerHillWindowPalette, BG_PLTT_ID(0), PLTT_SIZE_4BPP);
|
||||
}
|
||||
|
||||
static void VblankCB_TrainerHillRecords(void)
|
||||
@@ -491,7 +491,7 @@ static void CB2_ShowTrainerHillRecords(void)
|
||||
break;
|
||||
case 3:
|
||||
LoadTrainerHillRecordsWindowGfx(3);
|
||||
LoadPalette(GetTextWindowPalette(0), 0xF0, 0x20);
|
||||
LoadPalette(GetTextWindowPalette(0), BG_PLTT_ID(15), PLTT_SIZE_4BPP);
|
||||
gMain.state++;
|
||||
break;
|
||||
case 4:
|
||||
|
||||
+381
-351
File diff suppressed because it is too large
Load Diff
+35
-34
@@ -400,7 +400,7 @@ void BattleSetup_StartBattlePikeWildBattle(void)
|
||||
|
||||
static void DoStandardWildBattle(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
LockPlayerFieldControls();
|
||||
FreezeObjectEvents();
|
||||
StopPlayerAvatar();
|
||||
gMain.savedCallback = CB2_EndWildBattle;
|
||||
@@ -419,7 +419,7 @@ static void DoStandardWildBattle(void)
|
||||
|
||||
void BattleSetup_StartRoamerBattle(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
LockPlayerFieldControls();
|
||||
FreezeObjectEvents();
|
||||
StopPlayerAvatar();
|
||||
gMain.savedCallback = CB2_EndWildBattle;
|
||||
@@ -433,7 +433,7 @@ void BattleSetup_StartRoamerBattle(void)
|
||||
|
||||
static void DoSafariBattle(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
LockPlayerFieldControls();
|
||||
FreezeObjectEvents();
|
||||
StopPlayerAvatar();
|
||||
gMain.savedCallback = CB2_EndSafariBattle;
|
||||
@@ -443,7 +443,7 @@ static void DoSafariBattle(void)
|
||||
|
||||
static void DoBattlePikeWildBattle(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
LockPlayerFieldControls();
|
||||
FreezeObjectEvents();
|
||||
StopPlayerAvatar();
|
||||
gMain.savedCallback = CB2_EndWildBattle;
|
||||
@@ -479,7 +479,7 @@ static void DoBattlePyramidTrainerHillBattle(void)
|
||||
void StartWallyTutorialBattle(void)
|
||||
{
|
||||
CreateMaleMon(&gEnemyParty[0], SPECIES_RALTS, 5);
|
||||
ScriptContext2_Enable();
|
||||
LockPlayerFieldControls();
|
||||
gMain.savedCallback = CB2_ReturnToFieldContinueScriptPlayMapMusic;
|
||||
gBattleTypeFlags = BATTLE_TYPE_WALLY_TUTORIAL;
|
||||
CreateBattleStartTask(B_TRANSITION_SLICE, 0);
|
||||
@@ -487,7 +487,7 @@ void StartWallyTutorialBattle(void)
|
||||
|
||||
void BattleSetup_StartScriptedWildBattle(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
LockPlayerFieldControls();
|
||||
gMain.savedCallback = CB2_EndScriptedWildBattle;
|
||||
gBattleTypeFlags = 0;
|
||||
CreateBattleStartTask(GetWildBattleTransition(), 0);
|
||||
@@ -499,7 +499,7 @@ void BattleSetup_StartScriptedWildBattle(void)
|
||||
|
||||
void BattleSetup_StartLatiBattle(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
LockPlayerFieldControls();
|
||||
gMain.savedCallback = CB2_EndScriptedWildBattle;
|
||||
gBattleTypeFlags = BATTLE_TYPE_LEGENDARY;
|
||||
CreateBattleStartTask(GetWildBattleTransition(), 0);
|
||||
@@ -511,7 +511,7 @@ void BattleSetup_StartLatiBattle(void)
|
||||
|
||||
void BattleSetup_StartLegendaryBattle(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
LockPlayerFieldControls();
|
||||
gMain.savedCallback = CB2_EndScriptedWildBattle;
|
||||
gBattleTypeFlags = BATTLE_TYPE_LEGENDARY;
|
||||
|
||||
@@ -550,7 +550,7 @@ void BattleSetup_StartLegendaryBattle(void)
|
||||
|
||||
void StartGroudonKyogreBattle(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
LockPlayerFieldControls();
|
||||
gMain.savedCallback = CB2_EndScriptedWildBattle;
|
||||
gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_KYOGRE_GROUDON;
|
||||
|
||||
@@ -570,7 +570,7 @@ void StartRegiBattle(void)
|
||||
u8 transitionId;
|
||||
u16 species;
|
||||
|
||||
ScriptContext2_Enable();
|
||||
LockPlayerFieldControls();
|
||||
gMain.savedCallback = CB2_EndScriptedWildBattle;
|
||||
gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_REGI;
|
||||
|
||||
@@ -600,7 +600,7 @@ void StartRegiBattle(void)
|
||||
|
||||
static void CB2_EndWildBattle(void)
|
||||
{
|
||||
CpuFill16(0, (void*)(BG_PLTT), BG_PLTT_SIZE);
|
||||
CpuFill16(0, (void *)(BG_PLTT), BG_PLTT_SIZE);
|
||||
ResetOamRange(0, 128);
|
||||
|
||||
if (IsPlayerDefeated(gBattleOutcome) == TRUE && !InBattlePyramid() && !InBattlePike())
|
||||
@@ -616,7 +616,7 @@ static void CB2_EndWildBattle(void)
|
||||
|
||||
static void CB2_EndScriptedWildBattle(void)
|
||||
{
|
||||
CpuFill16(0, (void*)(BG_PLTT), BG_PLTT_SIZE);
|
||||
CpuFill16(0, (void *)(BG_PLTT), BG_PLTT_SIZE);
|
||||
ResetOamRange(0, 128);
|
||||
|
||||
if (IsPlayerDefeated(gBattleOutcome) == TRUE)
|
||||
@@ -699,21 +699,22 @@ static u8 GetBattleTransitionTypeByMap(void)
|
||||
|
||||
PlayerGetDestCoords(&x, &y);
|
||||
tileBehavior = MapGridGetMetatileBehaviorAt(x, y);
|
||||
|
||||
if (GetFlashLevel())
|
||||
return TRANSITION_TYPE_FLASH;
|
||||
if (!MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior))
|
||||
|
||||
if (MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior))
|
||||
return TRANSITION_TYPE_WATER;
|
||||
|
||||
switch (gMapHeader.mapType)
|
||||
{
|
||||
switch (gMapHeader.mapType)
|
||||
{
|
||||
case MAP_TYPE_UNDERGROUND:
|
||||
return TRANSITION_TYPE_CAVE;
|
||||
case MAP_TYPE_UNDERWATER:
|
||||
return TRANSITION_TYPE_WATER;
|
||||
default:
|
||||
return TRANSITION_TYPE_NORMAL;
|
||||
}
|
||||
case MAP_TYPE_UNDERGROUND:
|
||||
return TRANSITION_TYPE_CAVE;
|
||||
case MAP_TYPE_UNDERWATER:
|
||||
return TRANSITION_TYPE_WATER;
|
||||
default:
|
||||
return TRANSITION_TYPE_NORMAL;
|
||||
}
|
||||
return TRANSITION_TYPE_WATER;
|
||||
}
|
||||
|
||||
static u16 GetSumOfPlayerPartyLevel(u8 numMons)
|
||||
@@ -1036,22 +1037,22 @@ static void InitTrainerBattleVariables(void)
|
||||
|
||||
static inline void SetU8(void *ptr, u8 value)
|
||||
{
|
||||
*(u8*)(ptr) = value;
|
||||
*(u8 *)(ptr) = value;
|
||||
}
|
||||
|
||||
static inline void SetU16(void *ptr, u16 value)
|
||||
{
|
||||
*(u16*)(ptr) = value;
|
||||
*(u16 *)(ptr) = value;
|
||||
}
|
||||
|
||||
static inline void SetU32(void *ptr, u32 value)
|
||||
{
|
||||
*(u32*)(ptr) = value;
|
||||
*(u32 *)(ptr) = value;
|
||||
}
|
||||
|
||||
static inline void SetPtr(const void *ptr, const void* value)
|
||||
static inline void SetPtr(const void *ptr, const void *value)
|
||||
{
|
||||
*(const void**)(ptr) = value;
|
||||
*(const void **)(ptr) = value;
|
||||
}
|
||||
|
||||
static void TrainerBattleLoadArgs(const struct TrainerBattleParameter *specs, const u8 *data)
|
||||
@@ -1193,8 +1194,8 @@ void ConfigureAndSetUpOneTrainerBattle(u8 trainerObjEventId, const u8 *trainerSc
|
||||
gSelectedObjectEvent = trainerObjEventId;
|
||||
gSpecialVar_LastTalked = gObjectEvents[trainerObjEventId].localId;
|
||||
BattleSetup_ConfigureTrainerBattle(trainerScript + 1);
|
||||
ScriptContext1_SetupScript(EventScript_StartTrainerApproach);
|
||||
ScriptContext2_Enable();
|
||||
ScriptContext_SetupScript(EventScript_StartTrainerApproach);
|
||||
LockPlayerFieldControls();
|
||||
}
|
||||
|
||||
void ConfigureTwoTrainersBattle(u8 trainerObjEventId, const u8 *trainerScript)
|
||||
@@ -1206,8 +1207,8 @@ void ConfigureTwoTrainersBattle(u8 trainerObjEventId, const u8 *trainerScript)
|
||||
|
||||
void SetUpTwoTrainersBattle(void)
|
||||
{
|
||||
ScriptContext1_SetupScript(EventScript_StartTrainerApproach);
|
||||
ScriptContext2_Enable();
|
||||
ScriptContext_SetupScript(EventScript_StartTrainerApproach);
|
||||
LockPlayerFieldControls();
|
||||
}
|
||||
|
||||
bool32 GetTrainerFlagFromScriptPointer(const u8 *data)
|
||||
@@ -1319,7 +1320,7 @@ void BattleSetup_StartTrainerBattle(void)
|
||||
else
|
||||
DoTrainerBattle();
|
||||
|
||||
ScriptContext1_Stop();
|
||||
ScriptContext_Stop();
|
||||
}
|
||||
|
||||
static void CB2_EndTrainerBattle(void)
|
||||
@@ -1370,7 +1371,7 @@ void BattleSetup_StartRematchBattle(void)
|
||||
gBattleTypeFlags = BATTLE_TYPE_TRAINER;
|
||||
gMain.savedCallback = CB2_EndRematchBattle;
|
||||
DoTrainerBattle();
|
||||
ScriptContext1_Stop();
|
||||
ScriptContext_Stop();
|
||||
}
|
||||
|
||||
void ShowTrainerIntroSpeech(void)
|
||||
|
||||
+22
-18
@@ -56,10 +56,8 @@ static void GenerateInitialRentalMons(void);
|
||||
*
|
||||
*/
|
||||
|
||||
// IWRAM bss
|
||||
static u16 sRandMonSetId;
|
||||
static u16 sRandMonId;
|
||||
|
||||
// const rom data
|
||||
void static (*const sVerdanturfTentFuncs[])(void) =
|
||||
{
|
||||
[VERDANTURF_TENT_FUNC_INIT] = InitVerdanturfTentChallenge,
|
||||
@@ -357,7 +355,7 @@ static void GenerateOpponentMons(void)
|
||||
const u16 *monSet;
|
||||
u16 species[FRONTIER_PARTY_SIZE];
|
||||
u16 heldItems[FRONTIER_PARTY_SIZE];
|
||||
s32 monId = 0;
|
||||
s32 numMons = 0;
|
||||
|
||||
gFacilityTrainers = gSlateportBattleTentTrainers;
|
||||
gFacilityTrainerMons = gSlateportBattleTentMons;
|
||||
@@ -366,6 +364,7 @@ static void GenerateOpponentMons(void)
|
||||
{
|
||||
do
|
||||
{
|
||||
// Choose a random trainer, ensuring no repeats in this challenge
|
||||
trainerId = Random() % NUM_BATTLE_TENT_TRAINERS;
|
||||
for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++)
|
||||
{
|
||||
@@ -376,48 +375,53 @@ static void GenerateOpponentMons(void)
|
||||
|
||||
gTrainerBattleOpponent_A = trainerId;
|
||||
monSet = gFacilityTrainers[gTrainerBattleOpponent_A].monSet;
|
||||
while (monSet[monId] != 0xFFFF)
|
||||
monId++;
|
||||
if (monId > 8)
|
||||
while (monSet[numMons] != 0xFFFF)
|
||||
numMons++;
|
||||
if (numMons > 8)
|
||||
break;
|
||||
monId = 0;
|
||||
numMons = 0;
|
||||
}
|
||||
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < 2)
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < TENT_STAGES_PER_CHALLENGE - 1)
|
||||
gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = gTrainerBattleOpponent_A;
|
||||
|
||||
monSet = gFacilityTrainers[gTrainerBattleOpponent_A].monSet;
|
||||
i = 0;
|
||||
while (i != FRONTIER_PARTY_SIZE)
|
||||
{
|
||||
sRandMonSetId = monSet[Random() % monId];
|
||||
for (j = 0; j < 6; j++)
|
||||
sRandMonId = monSet[Random() % numMons];
|
||||
|
||||
// Ensure none of the opponent's pokemon are the same as the potential rental pokemon for the player
|
||||
for (j = 0; j < (int)ARRAY_COUNT(gSaveBlock2Ptr->frontier.rentalMons); j++)
|
||||
{
|
||||
if (gFacilityTrainerMons[sRandMonSetId].species == gFacilityTrainerMons[gSaveBlock2Ptr->frontier.rentalMons[j].monId].species)
|
||||
if (gFacilityTrainerMons[sRandMonId].species == gFacilityTrainerMons[gSaveBlock2Ptr->frontier.rentalMons[j].monId].species)
|
||||
break;
|
||||
}
|
||||
if (j != 6)
|
||||
if (j != (int)ARRAY_COUNT(gSaveBlock2Ptr->frontier.rentalMons))
|
||||
continue;
|
||||
|
||||
// Ensure this species hasn't already been chosen for the opponent
|
||||
for (k = 0; k < i; k++)
|
||||
{
|
||||
if (species[k] == gFacilityTrainerMons[sRandMonSetId].species)
|
||||
if (species[k] == gFacilityTrainerMons[sRandMonId].species)
|
||||
break;
|
||||
}
|
||||
if (k != i)
|
||||
continue;
|
||||
|
||||
// Ensure held items don't repeat on the opponent's team
|
||||
for (k = 0; k < i; k++)
|
||||
{
|
||||
if (heldItems[k] != 0 && heldItems[k] == gBattleFrontierHeldItems[gFacilityTrainerMons[sRandMonSetId].itemTableId])
|
||||
if (heldItems[k] != ITEM_NONE && heldItems[k] == gBattleFrontierHeldItems[gFacilityTrainerMons[sRandMonId].itemTableId])
|
||||
break;
|
||||
}
|
||||
if (k != i)
|
||||
continue;
|
||||
|
||||
species[i] = gFacilityTrainerMons[sRandMonSetId].species;
|
||||
heldItems[i] = gBattleFrontierHeldItems[gFacilityTrainerMons[sRandMonSetId].itemTableId];
|
||||
gFrontierTempParty[i] = sRandMonSetId;
|
||||
// Successful selection
|
||||
species[i] = gFacilityTrainerMons[sRandMonId].species;
|
||||
heldItems[i] = gBattleFrontierHeldItems[gFacilityTrainerMons[sRandMonId].itemTableId];
|
||||
gFrontierTempParty[i] = sRandMonId;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
+125
-120
@@ -27,6 +27,7 @@
|
||||
#include "constants/battle_dome.h"
|
||||
#include "constants/battle_frontier.h"
|
||||
#include "constants/battle_frontier_mons.h"
|
||||
#include "constants/battle_tent.h"
|
||||
#include "constants/battle_tent_mons.h"
|
||||
#include "constants/battle_tent_trainers.h"
|
||||
#include "constants/battle_tower.h"
|
||||
@@ -78,72 +79,71 @@ static void FillPartnerParty(u16 trainerId);
|
||||
static void SetEReaderTrainerChecksum(struct BattleTowerEReaderTrainer *ereaderTrainer);
|
||||
static u8 SetTentPtrsGetLevel(void);
|
||||
|
||||
// Const rom data.
|
||||
const u16 gBattleFrontierHeldItems[] =
|
||||
{
|
||||
ITEM_NONE,
|
||||
ITEM_KINGS_ROCK,
|
||||
ITEM_SITRUS_BERRY,
|
||||
ITEM_ORAN_BERRY,
|
||||
ITEM_CHESTO_BERRY,
|
||||
ITEM_HARD_STONE,
|
||||
ITEM_FOCUS_BAND,
|
||||
ITEM_PERSIM_BERRY,
|
||||
ITEM_MIRACLE_SEED,
|
||||
ITEM_BERRY_JUICE,
|
||||
ITEM_MACHO_BRACE,
|
||||
ITEM_SILVER_POWDER,
|
||||
ITEM_CHERI_BERRY,
|
||||
ITEM_BLACK_GLASSES,
|
||||
ITEM_BLACK_BELT,
|
||||
ITEM_SOUL_DEW,
|
||||
ITEM_CHOICE_BAND,
|
||||
ITEM_MAGNET,
|
||||
ITEM_SILK_SCARF,
|
||||
ITEM_WHITE_HERB,
|
||||
ITEM_DEEP_SEA_SCALE,
|
||||
ITEM_DEEP_SEA_TOOTH,
|
||||
ITEM_MYSTIC_WATER,
|
||||
ITEM_SHARP_BEAK,
|
||||
ITEM_QUICK_CLAW,
|
||||
ITEM_LEFTOVERS,
|
||||
ITEM_RAWST_BERRY,
|
||||
ITEM_LIGHT_BALL,
|
||||
ITEM_POISON_BARB,
|
||||
ITEM_NEVER_MELT_ICE,
|
||||
ITEM_ASPEAR_BERRY,
|
||||
ITEM_SPELL_TAG,
|
||||
ITEM_BRIGHT_POWDER,
|
||||
ITEM_LEPPA_BERRY,
|
||||
ITEM_SCOPE_LENS,
|
||||
ITEM_TWISTED_SPOON,
|
||||
ITEM_METAL_COAT,
|
||||
ITEM_MENTAL_HERB,
|
||||
ITEM_CHARCOAL,
|
||||
ITEM_PECHA_BERRY,
|
||||
ITEM_SOFT_SAND,
|
||||
ITEM_LUM_BERRY,
|
||||
ITEM_DRAGON_SCALE,
|
||||
ITEM_DRAGON_FANG,
|
||||
ITEM_IAPAPA_BERRY,
|
||||
ITEM_WIKI_BERRY,
|
||||
ITEM_SEA_INCENSE,
|
||||
ITEM_SHELL_BELL,
|
||||
ITEM_SALAC_BERRY,
|
||||
ITEM_LANSAT_BERRY,
|
||||
ITEM_APICOT_BERRY,
|
||||
ITEM_STARF_BERRY,
|
||||
ITEM_LIECHI_BERRY,
|
||||
ITEM_STICK,
|
||||
ITEM_LAX_INCENSE,
|
||||
ITEM_AGUAV_BERRY,
|
||||
ITEM_FIGY_BERRY,
|
||||
ITEM_THICK_CLUB,
|
||||
ITEM_MAGO_BERRY,
|
||||
ITEM_METAL_POWDER,
|
||||
ITEM_PETAYA_BERRY,
|
||||
ITEM_LUCKY_PUNCH,
|
||||
ITEM_GANLON_BERRY
|
||||
[BATTLE_FRONTIER_ITEM_NONE] = ITEM_NONE,
|
||||
[BATTLE_FRONTIER_ITEM_KINGS_ROCK] = ITEM_KINGS_ROCK,
|
||||
[BATTLE_FRONTIER_ITEM_SITRUS_BERRY] = ITEM_SITRUS_BERRY,
|
||||
[BATTLE_FRONTIER_ITEM_ORAN_BERRY] = ITEM_ORAN_BERRY,
|
||||
[BATTLE_FRONTIER_ITEM_CHESTO_BERRY] = ITEM_CHESTO_BERRY,
|
||||
[BATTLE_FRONTIER_ITEM_HARD_STONE] = ITEM_HARD_STONE,
|
||||
[BATTLE_FRONTIER_ITEM_FOCUS_BAND] = ITEM_FOCUS_BAND,
|
||||
[BATTLE_FRONTIER_ITEM_PERSIM_BERRY] = ITEM_PERSIM_BERRY,
|
||||
[BATTLE_FRONTIER_ITEM_MIRACLE_SEED] = ITEM_MIRACLE_SEED,
|
||||
[BATTLE_FRONTIER_ITEM_BERRY_JUICE] = ITEM_BERRY_JUICE,
|
||||
[BATTLE_FRONTIER_ITEM_MACHO_BRACE] = ITEM_MACHO_BRACE,
|
||||
[BATTLE_FRONTIER_ITEM_SILVER_POWDER] = ITEM_SILVER_POWDER,
|
||||
[BATTLE_FRONTIER_ITEM_CHERI_BERRY] = ITEM_CHERI_BERRY,
|
||||
[BATTLE_FRONTIER_ITEM_BLACK_GLASSES] = ITEM_BLACK_GLASSES,
|
||||
[BATTLE_FRONTIER_ITEM_BLACK_BELT] = ITEM_BLACK_BELT,
|
||||
[BATTLE_FRONTIER_ITEM_SOUL_DEW] = ITEM_SOUL_DEW,
|
||||
[BATTLE_FRONTIER_ITEM_CHOICE_BAND] = ITEM_CHOICE_BAND,
|
||||
[BATTLE_FRONTIER_ITEM_MAGNET] = ITEM_MAGNET,
|
||||
[BATTLE_FRONTIER_ITEM_SILK_SCARF] = ITEM_SILK_SCARF,
|
||||
[BATTLE_FRONTIER_ITEM_WHITE_HERB] = ITEM_WHITE_HERB,
|
||||
[BATTLE_FRONTIER_ITEM_DEEP_SEA_SCALE] = ITEM_DEEP_SEA_SCALE,
|
||||
[BATTLE_FRONTIER_ITEM_DEEP_SEA_TOOTH] = ITEM_DEEP_SEA_TOOTH,
|
||||
[BATTLE_FRONTIER_ITEM_MYSTIC_WATER] = ITEM_MYSTIC_WATER,
|
||||
[BATTLE_FRONTIER_ITEM_SHARP_BEAK] = ITEM_SHARP_BEAK,
|
||||
[BATTLE_FRONTIER_ITEM_QUICK_CLAW] = ITEM_QUICK_CLAW,
|
||||
[BATTLE_FRONTIER_ITEM_LEFTOVERS] = ITEM_LEFTOVERS,
|
||||
[BATTLE_FRONTIER_ITEM_RAWST_BERRY] = ITEM_RAWST_BERRY,
|
||||
[BATTLE_FRONTIER_ITEM_LIGHT_BALL] = ITEM_LIGHT_BALL,
|
||||
[BATTLE_FRONTIER_ITEM_POISON_BARB] = ITEM_POISON_BARB,
|
||||
[BATTLE_FRONTIER_ITEM_NEVER_MELT_ICE] = ITEM_NEVER_MELT_ICE,
|
||||
[BATTLE_FRONTIER_ITEM_ASPEAR_BERRY] = ITEM_ASPEAR_BERRY,
|
||||
[BATTLE_FRONTIER_ITEM_SPELL_TAG] = ITEM_SPELL_TAG,
|
||||
[BATTLE_FRONTIER_ITEM_BRIGHT_POWDER] = ITEM_BRIGHT_POWDER,
|
||||
[BATTLE_FRONTIER_ITEM_LEPPA_BERRY] = ITEM_LEPPA_BERRY,
|
||||
[BATTLE_FRONTIER_ITEM_SCOPE_LENS] = ITEM_SCOPE_LENS,
|
||||
[BATTLE_FRONTIER_ITEM_TWISTED_SPOON] = ITEM_TWISTED_SPOON,
|
||||
[BATTLE_FRONTIER_ITEM_METAL_COAT] = ITEM_METAL_COAT,
|
||||
[BATTLE_FRONTIER_ITEM_MENTAL_HERB] = ITEM_MENTAL_HERB,
|
||||
[BATTLE_FRONTIER_ITEM_CHARCOAL] = ITEM_CHARCOAL,
|
||||
[BATTLE_FRONTIER_ITEM_PECHA_BERRY] = ITEM_PECHA_BERRY,
|
||||
[BATTLE_FRONTIER_ITEM_SOFT_SAND] = ITEM_SOFT_SAND,
|
||||
[BATTLE_FRONTIER_ITEM_LUM_BERRY] = ITEM_LUM_BERRY,
|
||||
[BATTLE_FRONTIER_ITEM_DRAGON_SCALE] = ITEM_DRAGON_SCALE,
|
||||
[BATTLE_FRONTIER_ITEM_DRAGON_FANG] = ITEM_DRAGON_FANG,
|
||||
[BATTLE_FRONTIER_ITEM_IAPAPA_BERRY] = ITEM_IAPAPA_BERRY,
|
||||
[BATTLE_FRONTIER_ITEM_WIKI_BERRY] = ITEM_WIKI_BERRY,
|
||||
[BATTLE_FRONTIER_ITEM_SEA_INCENSE] = ITEM_SEA_INCENSE,
|
||||
[BATTLE_FRONTIER_ITEM_SHELL_BELL] = ITEM_SHELL_BELL,
|
||||
[BATTLE_FRONTIER_ITEM_SALAC_BERRY] = ITEM_SALAC_BERRY,
|
||||
[BATTLE_FRONTIER_ITEM_LANSAT_BERRY] = ITEM_LANSAT_BERRY,
|
||||
[BATTLE_FRONTIER_ITEM_APICOT_BERRY] = ITEM_APICOT_BERRY,
|
||||
[BATTLE_FRONTIER_ITEM_STARF_BERRY] = ITEM_STARF_BERRY,
|
||||
[BATTLE_FRONTIER_ITEM_LIECHI_BERRY] = ITEM_LIECHI_BERRY,
|
||||
[BATTLE_FRONTIER_ITEM_STICK] = ITEM_STICK,
|
||||
[BATTLE_FRONTIER_ITEM_LAX_INCENSE] = ITEM_LAX_INCENSE,
|
||||
[BATTLE_FRONTIER_ITEM_AGUAV_BERRY] = ITEM_AGUAV_BERRY,
|
||||
[BATTLE_FRONTIER_ITEM_FIGY_BERRY] = ITEM_FIGY_BERRY,
|
||||
[BATTLE_FRONTIER_ITEM_THICK_CLUB] = ITEM_THICK_CLUB,
|
||||
[BATTLE_FRONTIER_ITEM_MAGO_BERRY] = ITEM_MAGO_BERRY,
|
||||
[BATTLE_FRONTIER_ITEM_METAL_POWDER] = ITEM_METAL_POWDER,
|
||||
[BATTLE_FRONTIER_ITEM_PETAYA_BERRY] = ITEM_PETAYA_BERRY,
|
||||
[BATTLE_FRONTIER_ITEM_LUCKY_PUNCH] = ITEM_LUCKY_PUNCH,
|
||||
[BATTLE_FRONTIER_ITEM_GANLON_BERRY] = ITEM_GANLON_BERRY,
|
||||
};
|
||||
|
||||
#include "data/battle_frontier/battle_frontier_trainer_mons.h"
|
||||
@@ -687,7 +687,7 @@ struct
|
||||
{
|
||||
u32 facilityClass;
|
||||
const u8 *const *strings;
|
||||
} const sPartnerTrainerTextTables[] =
|
||||
} static const sPartnerTrainerTextTables[] =
|
||||
{
|
||||
{FACILITY_CLASS_LASS, sPartnerTextsLass},
|
||||
{FACILITY_CLASS_YOUNGSTER, sPartnerTextsYoungster},
|
||||
@@ -769,7 +769,7 @@ struct
|
||||
u8 nature;
|
||||
u8 evs[NUM_STATS];
|
||||
u16 moves[MAX_MON_MOVES];
|
||||
} const sStevenMons[MULTI_PARTY_SIZE] =
|
||||
} static const sStevenMons[MULTI_PARTY_SIZE] =
|
||||
{
|
||||
{
|
||||
.species = SPECIES_METANG,
|
||||
@@ -995,7 +995,7 @@ static bool8 ChooseSpecialBattleTowerTrainer(void)
|
||||
winStreak = GetCurrentBattleTowerWinStreak(lvlMode, battleMode);
|
||||
for (i = 0; i < BATTLE_TOWER_RECORD_COUNT; i++)
|
||||
{
|
||||
u32 *record = (u32*)(&gSaveBlock2Ptr->frontier.towerRecords[i]);
|
||||
u32 *record = (u32 *)(&gSaveBlock2Ptr->frontier.towerRecords[i]);
|
||||
u32 recordHasData = 0;
|
||||
u32 checksum = 0;
|
||||
for (j = 0; j < (sizeof(struct EmeraldBattleTowerRecord) - 4) / 4; j++) // - 4, because of the last field being the checksum itself.
|
||||
@@ -1060,7 +1060,7 @@ static void SetNextFacilityOpponent(void)
|
||||
u16 id;
|
||||
u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
|
||||
u16 winStreak = GetCurrentFacilityWinStreak();
|
||||
u32 challengeNum = winStreak / 7;
|
||||
u32 challengeNum = winStreak / FRONTIER_STAGES_PER_CHALLENGE;
|
||||
SetFacilityPtrsGetLevel();
|
||||
|
||||
if (battleMode == FRONTIER_MODE_MULTIS || battleMode == FRONTIER_MODE_LINK_MULTIS)
|
||||
@@ -1095,7 +1095,7 @@ static void SetNextFacilityOpponent(void)
|
||||
|
||||
gTrainerBattleOpponent_A = id;
|
||||
SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0);
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum + 1 < 7)
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum + 1 < FRONTIER_STAGES_PER_CHALLENGE)
|
||||
gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = gTrainerBattleOpponent_A;
|
||||
}
|
||||
}
|
||||
@@ -1107,7 +1107,7 @@ u16 GetRandomScaledFrontierTrainerId(u8 challengeNum, u8 battleNum)
|
||||
|
||||
if (challengeNum <= 7)
|
||||
{
|
||||
if (battleNum == 6)
|
||||
if (battleNum == FRONTIER_STAGES_PER_CHALLENGE - 1)
|
||||
{
|
||||
// The last battle in each challenge has a jump in difficulty, pulls from a table with higher ranges
|
||||
trainerId = (sFrontierTrainerIdRangesHard[challengeNum][1] - sFrontierTrainerIdRangesHard[challengeNum][0]) + 1;
|
||||
@@ -1136,7 +1136,7 @@ static void GetRandomScaledFrontierTrainerIdRange(u8 challengeNum, u8 battleNum,
|
||||
|
||||
if (challengeNum <= 7)
|
||||
{
|
||||
if (battleNum == 6)
|
||||
if (battleNum == FRONTIER_STAGES_PER_CHALLENGE - 1)
|
||||
{
|
||||
// The last battle in each challenge has a jump in difficulty, pulls from a table with higher ranges
|
||||
range = (sFrontierTrainerIdRangesHard[challengeNum][1] - sFrontierTrainerIdRangesHard[challengeNum][0]) + 1;
|
||||
@@ -1326,19 +1326,19 @@ void PutNewBattleTowerRecord(struct EmeraldBattleTowerRecord *newRecordEm)
|
||||
if (gSaveBlock2Ptr->frontier.towerRecords[i].trainerId[j] != newRecord->trainerId[j])
|
||||
break;
|
||||
}
|
||||
if (j == 4)
|
||||
if (j == TRAINER_ID_LENGTH)
|
||||
{
|
||||
for (k = 0; k < PLAYER_NAME_LENGTH; k++)
|
||||
{
|
||||
#ifdef BUGFIX
|
||||
if (gSaveBlock2Ptr->frontier.towerRecords[i].name[k] != newRecord->name[k])
|
||||
// Incorrect index being used
|
||||
#ifdef BUGFIX
|
||||
#define INDEX k
|
||||
#else
|
||||
#define INDEX j
|
||||
#endif
|
||||
if (gSaveBlock2Ptr->frontier.towerRecords[i].name[INDEX] != newRecord->name[INDEX])
|
||||
break;
|
||||
if (newRecord->name[k] == EOS)
|
||||
#else
|
||||
if (gSaveBlock2Ptr->frontier.towerRecords[i].name[j] != newRecord->name[j])
|
||||
break;
|
||||
if (newRecord->name[j] == EOS)
|
||||
#endif
|
||||
if (newRecord->name[INDEX] == EOS)
|
||||
{
|
||||
k = PLAYER_NAME_LENGTH;
|
||||
break;
|
||||
@@ -1634,7 +1634,7 @@ static void FillTentTrainerParty(u8 monsCount)
|
||||
static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
|
||||
{
|
||||
s32 i, j;
|
||||
u16 chosenMonIndices[4];
|
||||
u16 chosenMonIndices[MAX_FRONTIER_PARTY_SIZE];
|
||||
u8 friendship = MAX_FRIENDSHIP;
|
||||
u8 level = SetFacilityPtrsGetLevel();
|
||||
u8 fixedIV = 0;
|
||||
@@ -1650,7 +1650,7 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
|
||||
}
|
||||
else if (trainerId == TRAINER_EREADER)
|
||||
{
|
||||
for (i = firstMonId; i < firstMonId + 3; i++)
|
||||
for (i = firstMonId; i < firstMonId + FRONTIER_PARTY_SIZE; i++)
|
||||
CreateBattleTowerMon(&gEnemyParty[i], &gSaveBlock2Ptr->frontier.ereaderTrainer.party[i - firstMonId]);
|
||||
return;
|
||||
}
|
||||
@@ -1675,7 +1675,7 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
|
||||
else
|
||||
{
|
||||
// Apprentice.
|
||||
for (i = firstMonId; i < firstMonId + 3; i++)
|
||||
for (i = firstMonId; i < firstMonId + FRONTIER_PARTY_SIZE; i++)
|
||||
CreateApprenticeMon(&gEnemyParty[i], &gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE], i - firstMonId);
|
||||
return;
|
||||
}
|
||||
@@ -1691,7 +1691,10 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
|
||||
while (i != monCount)
|
||||
{
|
||||
u16 monId = monSet[Random() % bfMonCount];
|
||||
if ((level == 50 || level == 20) && monId > FRONTIER_MONS_HIGH_TIER)
|
||||
|
||||
// "High tier" pokemon are only allowed on open level mode
|
||||
// 20 is not a possible value for level here
|
||||
if ((level == FRONTIER_MAX_LEVEL_50 || level == 20) && monId > FRONTIER_MONS_HIGH_TIER)
|
||||
continue;
|
||||
|
||||
// Ensure this pokemon species isn't a duplicate.
|
||||
@@ -1767,11 +1770,11 @@ static void Unused_CreateApprenticeMons(u16 trainerId, u8 firstMonId)
|
||||
fixedIV = 9;
|
||||
|
||||
if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_50)
|
||||
level = 100;
|
||||
level = FRONTIER_MAX_LEVEL_OPEN;
|
||||
else
|
||||
level = 50;
|
||||
level = FRONTIER_MAX_LEVEL_50;
|
||||
|
||||
for (i = 0; i != 3; i++)
|
||||
for (i = 0; i != FRONTIER_PARTY_SIZE; i++)
|
||||
{
|
||||
CreateMonWithEVSpread(&gEnemyParty[firstMonId + i], apprentice->party[i].species, level, fixedIV, 8);
|
||||
friendship = MAX_FRIENDSHIP;
|
||||
@@ -1802,8 +1805,10 @@ u16 GetRandomFrontierMonFromSet(u16 trainerId)
|
||||
|
||||
do
|
||||
{
|
||||
// "High tier" pokemon are only allowed on open level mode
|
||||
// 20 is not a possible value for level here
|
||||
monId = monSet[Random() % numMons];
|
||||
} while((level == 50 || level == 20) && monId > FRONTIER_MONS_HIGH_TIER);
|
||||
} while((level == FRONTIER_MAX_LEVEL_50 || level == 20) && monId > FRONTIER_MONS_HIGH_TIER);
|
||||
|
||||
return monId;
|
||||
}
|
||||
@@ -1831,18 +1836,18 @@ static void FillFactoryFrontierTrainerParty(u16 trainerId, u8 firstMonId)
|
||||
u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
|
||||
// By mistake Battle Tower's Level 50 challenge number is used to determine the IVs for Battle Factory.
|
||||
#ifdef BUGFIX
|
||||
u8 challengeNum = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] / 7;
|
||||
u8 challengeNum = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] / FRONTIER_STAGES_PER_CHALLENGE;
|
||||
#else
|
||||
u8 challengeNum = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][FRONTIER_LVL_50] / 7;
|
||||
u8 challengeNum = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][FRONTIER_LVL_50] / FRONTIER_STAGES_PER_CHALLENGE;
|
||||
#endif
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < 6)
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < FRONTIER_STAGES_PER_CHALLENGE - 1)
|
||||
fixedIV = GetFactoryMonFixedIV(challengeNum, FALSE);
|
||||
else
|
||||
fixedIV = GetFactoryMonFixedIV(challengeNum, TRUE); // Last trainer in challenge uses higher IVs
|
||||
}
|
||||
else if (trainerId == TRAINER_EREADER)
|
||||
{
|
||||
for (i = firstMonId; i < firstMonId + 3; i++)
|
||||
for (i = firstMonId; i < firstMonId + FRONTIER_PARTY_SIZE; i++)
|
||||
CreateBattleTowerMon(&gEnemyParty[i], &gSaveBlock2Ptr->frontier.ereaderTrainer.party[i - firstMonId]);
|
||||
return;
|
||||
}
|
||||
@@ -1882,7 +1887,7 @@ static void FillFactoryTentTrainerParty(u16 trainerId, u8 firstMonId)
|
||||
{
|
||||
u8 i, j;
|
||||
u8 friendship;
|
||||
u8 level = 30;
|
||||
u8 level = TENT_MIN_LEVEL;
|
||||
u8 fixedIV = 0;
|
||||
u32 otID = T1_READ_32(gSaveBlock2Ptr->playerTrainerId);
|
||||
|
||||
@@ -2043,7 +2048,7 @@ void DoSpecialTrainerBattle(void)
|
||||
break;
|
||||
case SPECIAL_BATTLE_EREADER:
|
||||
ZeroEnemyPartyMons();
|
||||
for (i = 0; i < 3; i++)
|
||||
for (i = 0; i < (int)ARRAY_COUNT(gSaveBlock2Ptr->frontier.ereaderTrainer.party); i++)
|
||||
CreateBattleTowerMon(&gEnemyParty[i], &gSaveBlock2Ptr->frontier.ereaderTrainer.party[i]);
|
||||
gBattleTypeFlags = BATTLE_TYPE_TRAINER | BATTLE_TYPE_EREADER_TRAINER;
|
||||
gTrainerBattleOpponent_A = 0;
|
||||
@@ -2189,7 +2194,7 @@ static void SaveTowerChallenge(void)
|
||||
{
|
||||
u16 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
u16 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
|
||||
s32 challengeNum = (signed)(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] / 7);
|
||||
s32 challengeNum = (signed)(gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] / FRONTIER_STAGES_PER_CHALLENGE);
|
||||
|
||||
if (gSpecialVar_0x8005 == 0 && (challengeNum > 1 || gSaveBlock2Ptr->frontier.curChallengeBattleNum != 0))
|
||||
SaveBattleTowerRecord();
|
||||
@@ -2279,7 +2284,7 @@ static void LoadMultiPartnerCandidatesData(void)
|
||||
objEventTemplates = gSaveBlock1Ptr->objectEventTemplates;
|
||||
lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
|
||||
challengeNum = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] / 7;
|
||||
challengeNum = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] / FRONTIER_STAGES_PER_CHALLENGE;
|
||||
species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES, NULL);
|
||||
species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES, NULL);
|
||||
level = SetFacilityPtrsGetLevel();
|
||||
@@ -2338,7 +2343,7 @@ static void LoadMultiPartnerCandidatesData(void)
|
||||
for (i = 0; i < APPRENTICE_COUNT; i++)
|
||||
{
|
||||
if (gSaveBlock2Ptr->apprentices[i].lvlMode != 0
|
||||
&& sApprenticeChallengeThreshold[gSaveBlock2Ptr->apprentices[i].numQuestions] / 7 <= challengeNum
|
||||
&& sApprenticeChallengeThreshold[gSaveBlock2Ptr->apprentices[i].numQuestions] / FRONTIER_STAGES_PER_CHALLENGE <= challengeNum
|
||||
&& gSaveBlock2Ptr->apprentices[i].lvlMode - 1 == lvlMode)
|
||||
{
|
||||
k = 0;
|
||||
@@ -2368,7 +2373,7 @@ static void LoadMultiPartnerCandidatesData(void)
|
||||
r10 = 0;
|
||||
for (i = 0; i < BATTLE_TOWER_RECORD_COUNT; i++)
|
||||
{
|
||||
u32 *record = (u32*)(&gSaveBlock2Ptr->frontier.towerRecords[i]);
|
||||
u32 *record = (u32 *)(&gSaveBlock2Ptr->frontier.towerRecords[i]);
|
||||
u32 recordHasData = 0;
|
||||
u32 checksum = 0;
|
||||
for (j = 0; j < (sizeof(struct EmeraldBattleTowerRecord) - 4) / 4; j++) // - 4, because of the last field being the checksum itself.
|
||||
@@ -2377,7 +2382,7 @@ static void LoadMultiPartnerCandidatesData(void)
|
||||
checksum += record[j];
|
||||
}
|
||||
|
||||
if (gSaveBlock2Ptr->frontier.towerRecords[i].winStreak / 7 <= challengeNum
|
||||
if (gSaveBlock2Ptr->frontier.towerRecords[i].winStreak / FRONTIER_STAGES_PER_CHALLENGE <= challengeNum
|
||||
&& gSaveBlock2Ptr->frontier.towerRecords[i].lvlMode == lvlMode
|
||||
&& recordHasData
|
||||
&& gSaveBlock2Ptr->frontier.towerRecords[i].checksum == checksum)
|
||||
@@ -2458,7 +2463,7 @@ static void ShowPartnerCandidateMessage(void)
|
||||
s32 monId;
|
||||
s32 level = SetFacilityPtrsGetLevel();
|
||||
u16 winStreak = GetCurrentFacilityWinStreak();
|
||||
s32 challengeNum = winStreak / 7;
|
||||
s32 challengeNum = winStreak / FRONTIER_STAGES_PER_CHALLENGE;
|
||||
s32 k = gSpecialVar_LastTalked - 2;
|
||||
s32 trainerId = gSaveBlock2Ptr->frontier.trainerIds[k];
|
||||
|
||||
@@ -2517,7 +2522,7 @@ static void ShowPartnerCandidateMessage(void)
|
||||
gSaveBlock2Ptr->frontier.trainerIds[18] = gFrontierTempParty[0];
|
||||
gSaveBlock2Ptr->frontier.trainerIds[19] = gFrontierTempParty[1];
|
||||
}
|
||||
for (k = 0; k < 14; k++)
|
||||
for (k = 0; k < FRONTIER_STAGES_PER_CHALLENGE * 2; k++)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
@@ -2576,7 +2581,7 @@ static void LoadLinkMultiOpponentsData(void)
|
||||
case 0:
|
||||
if (battleMode == FRONTIER_MODE_LINK_MULTIS)
|
||||
{
|
||||
challengeNum = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] / 7;
|
||||
challengeNum = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] / FRONTIER_STAGES_PER_CHALLENGE;
|
||||
if (IsLinkTaskFinished())
|
||||
{
|
||||
SendBlock(BitmaskAllOtherLinkPlayers(), &challengeNum, sizeof(challengeNum));
|
||||
@@ -2596,7 +2601,7 @@ static void LoadLinkMultiOpponentsData(void)
|
||||
challengeNum = gBlockRecvBuffer[0][0];
|
||||
else
|
||||
challengeNum = gBlockRecvBuffer[1][0];
|
||||
for (i = 0; i < 14; i++)
|
||||
for (i = 0; i < FRONTIER_STAGES_PER_CHALLENGE * 2; i++)
|
||||
{
|
||||
do
|
||||
{
|
||||
@@ -2629,7 +2634,7 @@ static void LoadLinkMultiOpponentsData(void)
|
||||
gTrainerBattleOpponent_B = gSaveBlock2Ptr->frontier.trainerIds[battleNum * 2 + 1];
|
||||
SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0);
|
||||
SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_B, 1);
|
||||
if (gReceivedRemoteLinkPlayers != 0 && gWirelessCommType == 0)
|
||||
if (gReceivedRemoteLinkPlayers && gWirelessCommType == 0)
|
||||
gSpecialVar_Result = 4;
|
||||
else
|
||||
gSpecialVar_Result = 6;
|
||||
@@ -2684,7 +2689,7 @@ static void SetTowerInterviewData(void)
|
||||
static void ValidateBattleTowerRecordChecksums(void)
|
||||
{
|
||||
s32 i, j;
|
||||
u32 *record = (u32*)(&gSaveBlock2Ptr->frontier.towerPlayer);
|
||||
u32 *record = (u32 *)(&gSaveBlock2Ptr->frontier.towerPlayer);
|
||||
u32 checksum = 0;
|
||||
|
||||
for (j = 0; j < (sizeof(struct EmeraldBattleTowerRecord) - 4) / 4; j++) // - 4, because of the last field being the checksum itself.
|
||||
@@ -2696,7 +2701,7 @@ static void ValidateBattleTowerRecordChecksums(void)
|
||||
|
||||
for (i = 0; i < BATTLE_TOWER_RECORD_COUNT; i++)
|
||||
{
|
||||
record = (u32*)(&gSaveBlock2Ptr->frontier.towerRecords[i]);
|
||||
record = (u32 *)(&gSaveBlock2Ptr->frontier.towerRecords[i]);
|
||||
checksum = 0;
|
||||
for (j = 0; j < (sizeof(struct EmeraldBattleTowerRecord) - 4) / 4; j++) // - 4, because of the last field being the checksum itself.
|
||||
{
|
||||
@@ -2737,8 +2742,8 @@ u16 GetCurrentBattleTowerWinStreak(u8 lvlMode, u8 battleMode)
|
||||
{
|
||||
u16 winStreak = gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode];
|
||||
|
||||
if (winStreak > 9999)
|
||||
return 9999;
|
||||
if (winStreak > MAX_STREAK)
|
||||
return MAX_STREAK;
|
||||
else
|
||||
return winStreak;
|
||||
}
|
||||
@@ -2840,7 +2845,7 @@ static void FillEReaderTrainerWithPlayerData(void)
|
||||
ereaderTrainer->winStreak = 1;
|
||||
|
||||
j = 7;
|
||||
for (i = 0; i < 6; i++)
|
||||
for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++)
|
||||
{
|
||||
ereaderTrainer->greeting[i] = gSaveBlock1Ptr->easyChatBattleStart[i];
|
||||
ereaderTrainer->farewellPlayerLost[i] = j;
|
||||
@@ -2848,7 +2853,7 @@ static void FillEReaderTrainerWithPlayerData(void)
|
||||
j++;
|
||||
}
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
for (i = 0; i < (int)ARRAY_COUNT(ereaderTrainer->party); i++)
|
||||
ConvertPokemonToBattleTowerPokemon(&gPlayerParty[i], &ereaderTrainer->party[i]);
|
||||
|
||||
SetEReaderTrainerChecksum(ereaderTrainer);
|
||||
@@ -3189,7 +3194,7 @@ static void ValidateApprenticesChecksums(void)
|
||||
|
||||
for (i = 0; i < APPRENTICE_COUNT; i++)
|
||||
{
|
||||
u32 *data = (u32*) &gSaveBlock2Ptr->apprentices[i];
|
||||
u32 *data = (u32 *) &gSaveBlock2Ptr->apprentices[i];
|
||||
u32 checksum = 0;
|
||||
for (j = 0; j < (sizeof(struct Apprentice) - 4) / 4; j++)
|
||||
checksum += data[j];
|
||||
@@ -3246,12 +3251,12 @@ u8 GetFrontierEnemyMonLevel(u8 lvlMode)
|
||||
{
|
||||
default:
|
||||
case FRONTIER_LVL_50:
|
||||
level = 50;
|
||||
level = FRONTIER_MAX_LEVEL_50;
|
||||
break;
|
||||
case FRONTIER_LVL_OPEN:
|
||||
level = GetHighestLevelInPlayerParty();
|
||||
if (level < 60)
|
||||
level = 60;
|
||||
if (level < FRONTIER_MIN_LEVEL_OPEN)
|
||||
level = FRONTIER_MIN_LEVEL_OPEN;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -3321,7 +3326,7 @@ static u16 GetBattleTentTrainerId(void)
|
||||
|
||||
static u8 SetTentPtrsGetLevel(void)
|
||||
{
|
||||
u8 level = 30;
|
||||
u8 level = TENT_MIN_LEVEL;
|
||||
u32 facility = VarGet(VAR_FRONTIER_FACILITY);
|
||||
|
||||
if (facility == FRONTIER_FACILITY_FACTORY)
|
||||
@@ -3346,8 +3351,8 @@ static u8 SetTentPtrsGetLevel(void)
|
||||
}
|
||||
|
||||
level = GetHighestLevelInPlayerParty();
|
||||
if (level < 30)
|
||||
level = 30;
|
||||
if (level < TENT_MIN_LEVEL)
|
||||
level = TENT_MIN_LEVEL;
|
||||
|
||||
return level;
|
||||
}
|
||||
@@ -3369,7 +3374,7 @@ static void SetNextBattleTentOpponent(void)
|
||||
|
||||
gTrainerBattleOpponent_A = trainerId;
|
||||
SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0);
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum + 1 < 3)
|
||||
if (gSaveBlock2Ptr->frontier.curChallengeBattleNum + 1 < TENT_STAGES_PER_CHALLENGE)
|
||||
gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = gTrainerBattleOpponent_A;
|
||||
}
|
||||
|
||||
@@ -3498,7 +3503,7 @@ u8 FacilityClassToGraphicsId(u8 facilityClass)
|
||||
bool32 ValidateBattleTowerRecord(u8 recordId) // unused
|
||||
{
|
||||
s32 i;
|
||||
u32 *record = (u32*)(&gSaveBlock2Ptr->frontier.towerRecords[recordId]);
|
||||
u32 *record = (u32 *)(&gSaveBlock2Ptr->frontier.towerRecords[recordId]);
|
||||
u32 checksum = 0;
|
||||
u32 hasData = 0;
|
||||
for (i = 0; i < (sizeof(struct EmeraldBattleTowerRecord) - 4) / 4; i++) // - 4, because of the last fjeld bejng the checksum jtself.
|
||||
@@ -3534,7 +3539,7 @@ void TrySetLinkBattleTowerEnemyPartyLevel(void)
|
||||
u32 species = GetMonData(&gEnemyParty[i], MON_DATA_SPECIES, NULL);
|
||||
if (species)
|
||||
{
|
||||
SetMonData(&gEnemyParty[i], MON_DATA_EXP, &gExperienceTables[gBaseStats[species].growthRate][enemyLevel]);
|
||||
SetMonData(&gEnemyParty[i], MON_DATA_EXP, &gExperienceTables[gSpeciesInfo[species].growthRate][enemyLevel]);
|
||||
CalculateMonStats(&gEnemyParty[i]);
|
||||
}
|
||||
}
|
||||
|
||||
+50
-52
@@ -827,7 +827,7 @@ static const struct OamData sOam_UnusedBrendanLass =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(64x64),
|
||||
.x = 0,
|
||||
@@ -1406,7 +1406,7 @@ static bool8 Aqua_Init(struct Task *task)
|
||||
GetBg0TilesDst(&tilemap, &tileset);
|
||||
CpuFill16(0, tilemap, BG_SCREEN_SIZE);
|
||||
LZ77UnCompVram(sTeamAqua_Tileset, tileset);
|
||||
LoadPalette(sEvilTeam_Palette, 0xF0, sizeof(sEvilTeam_Palette));
|
||||
LoadPalette(sEvilTeam_Palette, BG_PLTT_ID(15), sizeof(sEvilTeam_Palette));
|
||||
|
||||
task->tState++;
|
||||
return FALSE;
|
||||
@@ -1421,7 +1421,7 @@ static bool8 Magma_Init(struct Task *task)
|
||||
GetBg0TilesDst(&tilemap, &tileset);
|
||||
CpuFill16(0, tilemap, BG_SCREEN_SIZE);
|
||||
LZ77UnCompVram(sTeamMagma_Tileset, tileset);
|
||||
LoadPalette(sEvilTeam_Palette, 0xF0, sizeof(sEvilTeam_Palette));
|
||||
LoadPalette(sEvilTeam_Palette, BG_PLTT_ID(15), sizeof(sEvilTeam_Palette));
|
||||
|
||||
task->tState++;
|
||||
return FALSE;
|
||||
@@ -1449,7 +1449,7 @@ static bool8 BigPokeball_Init(struct Task *task)
|
||||
GetBg0TilesDst(&tilemap, &tileset);
|
||||
CpuFill16(0, tilemap, BG_SCREEN_SIZE);
|
||||
CpuCopy16(sBigPokeball_Tileset, tileset, sizeof(sBigPokeball_Tileset));
|
||||
LoadPalette(sFieldEffectPal_Pokeball, 0xF0, sizeof(sFieldEffectPal_Pokeball));
|
||||
LoadPalette(sFieldEffectPal_Pokeball, BG_PLTT_ID(15), sizeof(sFieldEffectPal_Pokeball));
|
||||
|
||||
task->tState++;
|
||||
return FALSE;
|
||||
@@ -1504,7 +1504,7 @@ static bool8 Regice_SetGfx(struct Task *task)
|
||||
u16 *tilemap, *tileset;
|
||||
|
||||
GetBg0TilesDst(&tilemap, &tileset);
|
||||
LoadPalette(sRegice_Palette, 0xF0, sizeof(sRegice_Palette));
|
||||
LoadPalette(sRegice_Palette, BG_PLTT_ID(15), sizeof(sRegice_Palette));
|
||||
CpuCopy16(sRegice_Tilemap, tilemap, 0x500);
|
||||
SetSinWave(gScanlineEffectRegBuffers[0], 0, task->tSinIndex, 132, task->tAmplitude, DISPLAY_HEIGHT);
|
||||
|
||||
@@ -1517,7 +1517,7 @@ static bool8 Registeel_SetGfx(struct Task *task)
|
||||
u16 *tilemap, *tileset;
|
||||
|
||||
GetBg0TilesDst(&tilemap, &tileset);
|
||||
LoadPalette(sRegisteel_Palette, 0xF0, sizeof(sRegisteel_Palette));
|
||||
LoadPalette(sRegisteel_Palette, BG_PLTT_ID(15), sizeof(sRegisteel_Palette));
|
||||
CpuCopy16(sRegisteel_Tilemap, tilemap, 0x500);
|
||||
SetSinWave(gScanlineEffectRegBuffers[0], 0, task->tSinIndex, 132, task->tAmplitude, DISPLAY_HEIGHT);
|
||||
|
||||
@@ -1530,7 +1530,7 @@ static bool8 Regirock_SetGfx(struct Task *task)
|
||||
u16 *tilemap, *tileset;
|
||||
|
||||
GetBg0TilesDst(&tilemap, &tileset);
|
||||
LoadPalette(sRegirock_Palette, 0xF0, sizeof(sRegirock_Palette));
|
||||
LoadPalette(sRegirock_Palette, BG_PLTT_ID(15), sizeof(sRegirock_Palette));
|
||||
CpuCopy16(sRegirock_Tilemap, tilemap, 0x500);
|
||||
SetSinWave(gScanlineEffectRegBuffers[0], 0, task->tSinIndex, 132, task->tAmplitude, DISPLAY_HEIGHT);
|
||||
|
||||
@@ -1559,7 +1559,7 @@ static bool8 Kyogre_PaletteFlash(struct Task *task)
|
||||
{
|
||||
u16 offset = task->tTimer % 30;
|
||||
offset /= 3;
|
||||
LoadPalette(&sKyogre1_Palette[offset * 16], 0xF0, 0x20);
|
||||
LoadPalette(&sKyogre1_Palette[offset * 16], BG_PLTT_ID(15), PLTT_SIZE_4BPP);
|
||||
}
|
||||
if (++task->tTimer > 58)
|
||||
{
|
||||
@@ -1575,7 +1575,7 @@ static bool8 Kyogre_PaletteBrighten(struct Task *task)
|
||||
if (task->tTimer % 5 == 0)
|
||||
{
|
||||
s16 offset = task->tTimer / 5;
|
||||
LoadPalette(&sKyogre2_Palette[offset * 16], 0xF0, 0x20);
|
||||
LoadPalette(&sKyogre2_Palette[offset * 16], BG_PLTT_ID(15), PLTT_SIZE_4BPP);
|
||||
}
|
||||
if (++task->tTimer > 68)
|
||||
{
|
||||
@@ -1776,7 +1776,7 @@ static bool8 PokeballsTrail_Init(struct Task *task)
|
||||
GetBg0TilesDst(&tilemap, &tileset);
|
||||
CpuSet(sPokeballTrail_Tileset, tileset, 0x20);
|
||||
CpuFill32(0, tilemap, BG_SCREEN_SIZE);
|
||||
LoadPalette(sFieldEffectPal_Pokeball, 0xF0, sizeof(sFieldEffectPal_Pokeball));
|
||||
LoadPalette(sFieldEffectPal_Pokeball, BG_PLTT_ID(15), sizeof(sFieldEffectPal_Pokeball));
|
||||
|
||||
task->tState++;
|
||||
return FALSE;
|
||||
@@ -2186,7 +2186,7 @@ static bool8 Wave_Init(struct Task *task)
|
||||
static bool8 Wave_Main(struct Task *task)
|
||||
{
|
||||
u8 i, sinIndex;
|
||||
u16* toStore;
|
||||
u16 *toStore;
|
||||
bool8 finished;
|
||||
|
||||
sTransitionData->VBlank_DMA = FALSE;
|
||||
@@ -2328,8 +2328,8 @@ static bool8 Mugshot_SetGfx(struct Task *task)
|
||||
mugshotsMap = sMugshotsTilemap;
|
||||
GetBg0TilesDst(&tilemap, &tileset);
|
||||
CpuSet(sEliteFour_Tileset, tileset, 0xF0);
|
||||
LoadPalette(sOpponentMugshotsPals[task->tMugshotId], 0xF0, 0x20);
|
||||
LoadPalette(sPlayerMugshotsPals[gSaveBlock2Ptr->playerGender], 0xFA, 0xC);
|
||||
LoadPalette(sOpponentMugshotsPals[task->tMugshotId], BG_PLTT_ID(15), PLTT_SIZE_4BPP);
|
||||
LoadPalette(sPlayerMugshotsPals[gSaveBlock2Ptr->playerGender], BG_PLTT_ID(15) + 10, PLTT_SIZEOF(6));
|
||||
|
||||
for (i = 0; i < 20; i++)
|
||||
{
|
||||
@@ -2347,7 +2347,7 @@ static bool8 Mugshot_SetGfx(struct Task *task)
|
||||
static bool8 Mugshot_ShowBanner(struct Task *task)
|
||||
{
|
||||
u8 i, sinIndex;
|
||||
u16* toStore;
|
||||
u16 *toStore;
|
||||
s16 x;
|
||||
s32 mergedValue;
|
||||
|
||||
@@ -2388,7 +2388,7 @@ static bool8 Mugshot_ShowBanner(struct Task *task)
|
||||
if (task->tBottomBannerX < 0)
|
||||
task->tBottomBannerX = 0;
|
||||
|
||||
mergedValue = *(s32*)(&task->tTopBannerX);
|
||||
mergedValue = *(s32 *)(&task->tTopBannerX);
|
||||
if (mergedValue == DISPLAY_WIDTH)
|
||||
task->tState++;
|
||||
|
||||
@@ -2401,7 +2401,7 @@ static bool8 Mugshot_ShowBanner(struct Task *task)
|
||||
static bool8 Mugshot_StartOpponentSlide(struct Task *task)
|
||||
{
|
||||
u8 i;
|
||||
u16* toStore;
|
||||
u16 *toStore;
|
||||
|
||||
sTransitionData->VBlank_DMA = FALSE;
|
||||
|
||||
@@ -2434,7 +2434,7 @@ static bool8 Mugshot_WaitStartPlayerSlide(struct Task *task)
|
||||
{
|
||||
sTransitionData->BG0HOFS_Lower -= 8;
|
||||
sTransitionData->BG0HOFS_Upper += 8;
|
||||
|
||||
|
||||
// Start player's slide in once the opponent is finished
|
||||
if (IsTrainerPicSlideDone(task->tOpponentSpriteId))
|
||||
{
|
||||
@@ -2770,7 +2770,7 @@ static bool8 Slice_Main(struct Task *task)
|
||||
{
|
||||
u16 *storeLoc1 = &gScanlineEffectRegBuffers[0][i];
|
||||
u16 *storeLoc2 = &gScanlineEffectRegBuffers[0][i + DISPLAY_HEIGHT];
|
||||
|
||||
|
||||
// Alternate rows
|
||||
if (i % 2)
|
||||
{
|
||||
@@ -3193,7 +3193,7 @@ static bool8 RectangularSpiral_Init(struct Task *task)
|
||||
CpuCopy16(sShrinkingBoxTileset, tileset, 0x20);
|
||||
CpuCopy16(&sShrinkingBoxTileset[0x70], &tileset[0x20], 0x20);
|
||||
CpuFill16(0xF0 << 8, tilemap, BG_SCREEN_SIZE);
|
||||
LoadPalette(sFieldEffectPal_Pokeball, 0xF0, sizeof(sFieldEffectPal_Pokeball));
|
||||
LoadPalette(sFieldEffectPal_Pokeball, BG_PLTT_ID(15), sizeof(sFieldEffectPal_Pokeball));
|
||||
|
||||
task->data[3] = 1;
|
||||
task->tState++;
|
||||
@@ -3251,7 +3251,7 @@ static bool8 RectangularSpiral_Main(struct Task *task)
|
||||
// The line moved to a new position, draw the tile.
|
||||
done = FALSE;
|
||||
position = sRectangularSpiralLines[j].position;
|
||||
|
||||
|
||||
// Invert position for the two lines that start at the bottom.
|
||||
if ((j % 2) == 1)
|
||||
position = 637 - position;
|
||||
@@ -3281,7 +3281,7 @@ static bool8 RectangularSpiral_End(struct Task *task)
|
||||
static bool16 UpdateRectangularSpiralLine(const s16 * const *moveDataTable, struct RectangularSpiralLine *line)
|
||||
{
|
||||
const s16 *moveData = moveDataTable[line->state];
|
||||
|
||||
|
||||
// Has spiral finished?
|
||||
// Note that most move data arrays endsin SPIRAL_END but it is
|
||||
// only ever reached on the final array of spiraling outward.
|
||||
@@ -3294,9 +3294,9 @@ static bool16 UpdateRectangularSpiralLine(const s16 * const *moveDataTable, stru
|
||||
sDebug_RectangularSpiralData = moveData[2];
|
||||
sDebug_RectangularSpiralData = moveData[3];
|
||||
|
||||
// Note that for the two lines originating at the bottom the
|
||||
// Note that for the two lines originating at the bottom the
|
||||
// position is inverted, so the directions are flipped.
|
||||
// i.e. position += 1 is right for the top lines and left
|
||||
// i.e. position += 1 is right for the top lines and left
|
||||
// for their inverted partners on the bottom.
|
||||
switch (moveData[0])
|
||||
{
|
||||
@@ -3389,7 +3389,7 @@ static bool8 Groudon_PaletteFlash(struct Task *task)
|
||||
if (task->tTimer % 3 == 0)
|
||||
{
|
||||
u16 offset = (task->tTimer % 30) / 3;
|
||||
LoadPalette(&sGroudon1_Palette[offset * 16], 0xF0, 0x20);
|
||||
LoadPalette(&sGroudon1_Palette[offset * 16], BG_PLTT_ID(15), PLTT_SIZE_4BPP);
|
||||
}
|
||||
if (++task->tTimer > 58)
|
||||
{
|
||||
@@ -3405,7 +3405,7 @@ static bool8 Groudon_PaletteBrighten(struct Task *task)
|
||||
if (task->tTimer % 5 == 0)
|
||||
{
|
||||
s16 offset = task->tTimer / 5;
|
||||
LoadPalette(&sGroudon2_Palette[offset * 16], 0xF0, 0x20);
|
||||
LoadPalette(&sGroudon2_Palette[offset * 16], BG_PLTT_ID(15), PLTT_SIZE_4BPP);
|
||||
}
|
||||
if (++task->tTimer > 68)
|
||||
{
|
||||
@@ -3448,7 +3448,7 @@ static bool8 Rayquaza_Init(struct Task *task)
|
||||
|
||||
sTransitionData->counter = 0;
|
||||
task->tState++;
|
||||
LoadPalette(&sRayquaza_Palette[0x50], 0xF0, 0x20);
|
||||
LoadPalette(&sRayquaza_Palette[80], BG_PLTT_ID(15), PLTT_SIZE_4BPP);
|
||||
|
||||
for (i = 0; i < DISPLAY_HEIGHT; i++)
|
||||
{
|
||||
@@ -3476,7 +3476,7 @@ static bool8 Rayquaza_PaletteFlash(struct Task *task)
|
||||
{
|
||||
u16 value = task->tTimer / 4;
|
||||
const u16 *palPtr = &sRayquaza_Palette[(value + 5) * 16];
|
||||
LoadPalette(palPtr, 0xF0, 0x20);
|
||||
LoadPalette(palPtr, BG_PLTT_ID(15), PLTT_SIZE_4BPP);
|
||||
}
|
||||
if (++task->tTimer > 40)
|
||||
{
|
||||
@@ -3524,7 +3524,7 @@ static bool8 Rayquaza_TriRing(struct Task *task)
|
||||
{
|
||||
u16 value = task->tTimer / 3;
|
||||
const u16 *palPtr = &sRayquaza_Palette[(value + 0) * 16];
|
||||
LoadPalette(palPtr, 0xF0, 0x20);
|
||||
LoadPalette(palPtr, BG_PLTT_ID(15), PLTT_SIZE_4BPP);
|
||||
}
|
||||
if (++task->tTimer >= 40)
|
||||
{
|
||||
@@ -3716,8 +3716,8 @@ static void SpriteCB_WhiteBarFade(struct Sprite *sprite)
|
||||
else
|
||||
{
|
||||
u16 i;
|
||||
u16* ptr1 = &gScanlineEffectRegBuffers[0][sprite->y];
|
||||
u16* ptr2 = &gScanlineEffectRegBuffers[0][sprite->y + DISPLAY_HEIGHT];
|
||||
u16 *ptr1 = &gScanlineEffectRegBuffers[0][sprite->y];
|
||||
u16 *ptr2 = &gScanlineEffectRegBuffers[0][sprite->y + DISPLAY_HEIGHT];
|
||||
for (i = 0; i < DISPLAY_HEIGHT / NUM_WHITE_BARS; i++)
|
||||
{
|
||||
ptr1[i] = sprite->sFade >> 8;
|
||||
@@ -3775,7 +3775,7 @@ static bool8 GridSquares_Init(struct Task *task)
|
||||
GetBg0TilesDst(&tilemap, &tileset);
|
||||
CpuSet(sShrinkingBoxTileset, tileset, 16);
|
||||
CpuFill16(0xF0 << 8, tilemap, BG_SCREEN_SIZE);
|
||||
LoadPalette(sFieldEffectPal_Pokeball, 0xF0, sizeof(sFieldEffectPal_Pokeball));
|
||||
LoadPalette(sFieldEffectPal_Pokeball, BG_PLTT_ID(15), sizeof(sFieldEffectPal_Pokeball));
|
||||
|
||||
task->tState++;
|
||||
return FALSE;
|
||||
@@ -3783,7 +3783,7 @@ static bool8 GridSquares_Init(struct Task *task)
|
||||
|
||||
static bool8 GridSquares_Main(struct Task *task)
|
||||
{
|
||||
u16* tileset;
|
||||
u16 *tileset;
|
||||
|
||||
if (task->tDelay == 0)
|
||||
{
|
||||
@@ -4061,7 +4061,7 @@ static void GetBg0TilemapDst(u16 **tileset)
|
||||
{
|
||||
u16 charBase = REG_BG0CNT >> 2;
|
||||
charBase <<= 14;
|
||||
*tileset = (u16*)(BG_VRAM + charBase);
|
||||
*tileset = (u16 *)(BG_VRAM + charBase);
|
||||
}
|
||||
|
||||
void GetBg0TilesDst(u16 **tilemap, u16 **tileset)
|
||||
@@ -4072,8 +4072,8 @@ void GetBg0TilesDst(u16 **tilemap, u16 **tileset)
|
||||
screenBase <<= 11;
|
||||
charBase <<= 14;
|
||||
|
||||
*tilemap = (u16*)(BG_VRAM + screenBase);
|
||||
*tileset = (u16*)(BG_VRAM + charBase);
|
||||
*tilemap = (u16 *)(BG_VRAM + screenBase);
|
||||
*tileset = (u16 *)(BG_VRAM + charBase);
|
||||
}
|
||||
|
||||
static void FadeScreenBlack(void)
|
||||
@@ -4170,13 +4170,13 @@ static void InitBlackWipe(s16 *data, s16 startX, s16 startY, s16 endX, s16 endY,
|
||||
static bool8 UpdateBlackWipe(s16 *data, bool8 xExact, bool8 yExact)
|
||||
{
|
||||
u8 numFinished;
|
||||
|
||||
|
||||
if (tWipeXDist > tWipeYDist)
|
||||
{
|
||||
// X has further to move, move it first
|
||||
tWipeCurrX += tWipeXMove;
|
||||
|
||||
// If it has been far enough since Y's
|
||||
// If it has been far enough since Y's
|
||||
// last move then move it too
|
||||
tWipeTemp += tWipeYDist;
|
||||
if (tWipeTemp > tWipeXDist)
|
||||
@@ -4190,7 +4190,7 @@ static bool8 UpdateBlackWipe(s16 *data, bool8 xExact, bool8 yExact)
|
||||
// Y has further to move, move it first
|
||||
tWipeCurrY += tWipeYMove;
|
||||
|
||||
// If it has been far enough since X's
|
||||
// If it has been far enough since X's
|
||||
// last move then move it too
|
||||
tWipeTemp += tWipeXDist;
|
||||
if (tWipeTemp > tWipeYDist)
|
||||
@@ -4201,9 +4201,9 @@ static bool8 UpdateBlackWipe(s16 *data, bool8 xExact, bool8 yExact)
|
||||
}
|
||||
|
||||
numFinished = 0;
|
||||
|
||||
|
||||
// Has X coord reached end?
|
||||
if ((tWipeXMove > 0 && tWipeCurrX >= tWipeEndX)
|
||||
if ((tWipeXMove > 0 && tWipeCurrX >= tWipeEndX)
|
||||
|| (tWipeXMove < 0 && tWipeCurrX <= tWipeEndX))
|
||||
{
|
||||
numFinished++;
|
||||
@@ -4212,7 +4212,7 @@ static bool8 UpdateBlackWipe(s16 *data, bool8 xExact, bool8 yExact)
|
||||
}
|
||||
|
||||
// Has Y coord reached end?
|
||||
if ((tWipeYMove > 0 && tWipeCurrY >= tWipeEndY)
|
||||
if ((tWipeYMove > 0 && tWipeCurrY >= tWipeEndY)
|
||||
|| (tWipeYMove < 0 && tWipeCurrY <= tWipeEndY))
|
||||
{
|
||||
numFinished++;
|
||||
@@ -4242,7 +4242,7 @@ static bool8 FrontierLogoWiggle_Init(struct Task *task)
|
||||
GetBg0TilesDst(&tilemap, &tileset);
|
||||
CpuFill16(0, tilemap, BG_SCREEN_SIZE);
|
||||
LZ77UnCompVram(sFrontierLogo_Tileset, tileset);
|
||||
LoadPalette(sFrontierLogo_Palette, 0xF0, sizeof(sFrontierLogo_Palette));
|
||||
LoadPalette(sFrontierLogo_Palette, BG_PLTT_ID(15), sizeof(sFrontierLogo_Palette));
|
||||
|
||||
task->tState++;
|
||||
return FALSE;
|
||||
@@ -4304,7 +4304,7 @@ static bool8 FrontierLogoWave_Init(struct Task *task)
|
||||
GetBg0TilesDst(&tilemap, &tileset);
|
||||
CpuFill16(0, tilemap, BG_SCREEN_SIZE);
|
||||
LZ77UnCompVram(sFrontierLogo_Tileset, tileset);
|
||||
LoadPalette(sFrontierLogo_Palette, 0xF0, sizeof(sFrontierLogo_Palette));
|
||||
LoadPalette(sFrontierLogo_Palette, BG_PLTT_ID(15), sizeof(sFrontierLogo_Palette));
|
||||
sTransitionData->cameraY = 0;
|
||||
|
||||
task->tState++;
|
||||
@@ -4454,7 +4454,7 @@ static bool8 FrontierSquares_Init(struct Task *task)
|
||||
FillBgTilemapBufferRect(0, 1, 0, 0, MARGIN_SIZE, 32, 15);
|
||||
FillBgTilemapBufferRect(0, 1, 30 - MARGIN_SIZE, 0, MARGIN_SIZE, 32, 15);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
LoadPalette(sFrontierSquares_Palette, 0xF0, sizeof(sFrontierSquares_Palette));
|
||||
LoadPalette(sFrontierSquares_Palette, BG_PLTT_ID(15), sizeof(sFrontierSquares_Palette));
|
||||
|
||||
task->tPosX = MARGIN_SIZE;
|
||||
task->tPosY = 0;
|
||||
@@ -4549,9 +4549,9 @@ static bool8 FrontierSquaresSpiral_Init(struct Task *task)
|
||||
FillBgTilemapBufferRect(0, 1, 0, 0, MARGIN_SIZE, 32, 15);
|
||||
FillBgTilemapBufferRect(0, 1, 30 - MARGIN_SIZE, 0, MARGIN_SIZE, 32, 15);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
LoadPalette(sFrontierSquares_Palette, 0xE0, sizeof(sFrontierSquares_Palette));
|
||||
LoadPalette(sFrontierSquares_Palette, 0xF0, sizeof(sFrontierSquares_Palette));
|
||||
BlendPalette(0xE0, 16, 8, RGB_BLACK);
|
||||
LoadPalette(sFrontierSquares_Palette, BG_PLTT_ID(14), sizeof(sFrontierSquares_Palette));
|
||||
LoadPalette(sFrontierSquares_Palette, BG_PLTT_ID(15), sizeof(sFrontierSquares_Palette));
|
||||
BlendPalette(BG_PLTT_ID(14), 16, 8, RGB_BLACK);
|
||||
|
||||
task->tSquareNum = NUM_SQUARES - 1;
|
||||
task->tFadeFlag = 0;
|
||||
@@ -4581,7 +4581,7 @@ static bool8 FrontierSquaresSpiral_Outward(struct Task *task)
|
||||
// set it to black so it's not revealed when the squares are removed.
|
||||
static bool8 FrontierSquaresSpiral_SetBlack(struct Task *task)
|
||||
{
|
||||
BlendPalette(0xE0, 16, 3, RGB_BLACK);
|
||||
BlendPalette(BG_PLTT_ID(14), 16, 3, RGB_BLACK);
|
||||
BlendPalettes(PALETTES_ALL & ~(1 << 15 | 1 << 14), 16, RGB_BLACK);
|
||||
|
||||
task->tSquareNum = 0;
|
||||
@@ -4664,7 +4664,7 @@ static bool8 FrontierSquaresScroll_Init(struct Task *task)
|
||||
LZ77UnCompVram(sFrontierSquares_FilledBg_Tileset, tileset);
|
||||
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
LoadPalette(sFrontierSquares_Palette, 0xF0, sizeof(sFrontierSquares_Palette));
|
||||
LoadPalette(sFrontierSquares_Palette, BG_PLTT_ID(15), sizeof(sFrontierSquares_Palette));
|
||||
|
||||
gBattle_BG0_X = 0;
|
||||
gBattle_BG0_Y = 0;
|
||||
@@ -4762,10 +4762,8 @@ static bool8 FrontierSquaresScroll_End(struct Task *task)
|
||||
BlendPalettes(PALETTES_ALL, 16, RGB_BLACK);
|
||||
|
||||
DestroyTask(FindTaskIdByFunc(task->func));
|
||||
task->tState++; // Changing value of a destroyed task
|
||||
|
||||
#ifndef UBFIX
|
||||
task->tState++; // UB: changing value of a destroyed task
|
||||
#endif
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ static const struct OamData sOamData_LogoCircles =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(64x64),
|
||||
.x = 0,
|
||||
@@ -226,7 +226,7 @@ static void LoadLogoGfx(void)
|
||||
GetBg0TilesDst(&tilemap, &tileset);
|
||||
LZ77UnCompVram(sLogoCenter_Gfx, tileset);
|
||||
LZ77UnCompVram(sLogoCenter_Tilemap, tilemap);
|
||||
LoadPalette(sLogo_Pal, 0xF0, sizeof(sLogo_Pal));
|
||||
LoadPalette(sLogo_Pal, BG_PLTT_ID(15), sizeof(sLogo_Pal));
|
||||
LoadCompressedSpriteSheet(&sSpriteSheet_LogoCircles);
|
||||
LoadSpritePalette(&sSpritePalette_LogoCircles);
|
||||
}
|
||||
|
||||
+85
-84
@@ -93,7 +93,7 @@ void HandleAction_UseMove(void)
|
||||
gBattleStruct->atkCancellerTracker = 0;
|
||||
gMoveResultFlags = 0;
|
||||
gMultiHitCounter = 0;
|
||||
gBattleCommunication[6] = 0;
|
||||
gBattleCommunication[MISS_TYPE] = 0;
|
||||
gCurrMovePos = gChosenMovePos = *(gBattleStruct->chosenMovePositions + gBattlerAttacker);
|
||||
|
||||
// choose move
|
||||
@@ -146,7 +146,7 @@ void HandleAction_UseMove(void)
|
||||
}
|
||||
|
||||
// choose target
|
||||
side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
|
||||
side = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker));
|
||||
if (gSideTimers[side].followmeTimer != 0
|
||||
&& gBattleMoves[gCurrentMove].target == MOVE_TARGET_SELECTED
|
||||
&& GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gSideTimers[side].followmeTarget)
|
||||
@@ -200,13 +200,13 @@ void HandleAction_UseMove(void)
|
||||
{
|
||||
if (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget))
|
||||
{
|
||||
gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK);
|
||||
gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget)));
|
||||
}
|
||||
else
|
||||
{
|
||||
gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_SIDE);
|
||||
gBattlerTarget = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gBattlerAttacker)));
|
||||
if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
|
||||
gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK);
|
||||
gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -239,7 +239,7 @@ void HandleAction_UseMove(void)
|
||||
if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]
|
||||
&& GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget))
|
||||
{
|
||||
gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK);
|
||||
gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget)));
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -249,13 +249,13 @@ void HandleAction_UseMove(void)
|
||||
{
|
||||
if (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget))
|
||||
{
|
||||
gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK);
|
||||
gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget)));
|
||||
}
|
||||
else
|
||||
{
|
||||
gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_SIDE);
|
||||
gBattlerTarget = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gBattlerAttacker)));
|
||||
if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
|
||||
gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK);
|
||||
gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -471,7 +471,7 @@ bool8 TryRunFromBattle(u8 battler)
|
||||
gBattleStruct->runTries++;
|
||||
}
|
||||
|
||||
if (effect)
|
||||
if (effect != 0)
|
||||
{
|
||||
gCurrentTurnActionNumber = gBattlersCount;
|
||||
gBattleOutcome = B_OUTCOME_RAN;
|
||||
@@ -679,10 +679,12 @@ void HandleAction_ActionFinished(void)
|
||||
gBattleResources->battleScriptsStack->size = 0;
|
||||
}
|
||||
|
||||
#define SOUND_MOVES_END 0xFFFF
|
||||
|
||||
static const u16 sSoundMovesTable[] =
|
||||
{
|
||||
MOVE_GROWL, MOVE_ROAR, MOVE_SING, MOVE_SUPERSONIC, MOVE_SCREECH, MOVE_SNORE,
|
||||
MOVE_UPROAR, MOVE_METAL_SOUND, MOVE_GRASS_WHISTLE, MOVE_HYPER_VOICE, 0xFFFF
|
||||
MOVE_UPROAR, MOVE_METAL_SOUND, MOVE_GRASS_WHISTLE, MOVE_HYPER_VOICE, SOUND_MOVES_END
|
||||
};
|
||||
|
||||
u8 GetBattlerForBattleScript(u8 caseId)
|
||||
@@ -821,7 +823,8 @@ void PressurePPLoseOnUsingPerishSong(u8 attacker)
|
||||
}
|
||||
}
|
||||
|
||||
void MarkAllBattlersForControllerExec(void) // unused
|
||||
// Unused
|
||||
static void MarkAllBattlersForControllerExec(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -959,7 +962,7 @@ u8 TrySetCantSelectMoveBattleScript(void)
|
||||
u8 limitations = 0;
|
||||
u16 move = gBattleMons[gActiveBattler].moves[gBattleBufferB[gActiveBattler][2]];
|
||||
u8 holdEffect;
|
||||
u16* choicedMove = &gBattleStruct->choicedMove[gActiveBattler];
|
||||
u16 *choicedMove = &gBattleStruct->choicedMove[gActiveBattler];
|
||||
|
||||
if (gDisableStructs[gActiveBattler].disabledMove == move && move != MOVE_NONE)
|
||||
{
|
||||
@@ -1029,7 +1032,7 @@ u8 TrySetCantSelectMoveBattleScript(void)
|
||||
|
||||
gPotentialItemEffectBattler = gActiveBattler;
|
||||
|
||||
if (holdEffect == HOLD_EFFECT_CHOICE_BAND && *choicedMove != MOVE_NONE && *choicedMove != 0xFFFF && *choicedMove != move)
|
||||
if (holdEffect == HOLD_EFFECT_CHOICE_BAND && *choicedMove != MOVE_NONE && *choicedMove != MOVE_UNAVAILABLE && *choicedMove != move)
|
||||
{
|
||||
gCurrentMove = *choicedMove;
|
||||
gLastUsedItem = gBattleMons[gActiveBattler].item;
|
||||
@@ -1097,7 +1100,7 @@ u8 CheckMoveLimitations(u8 battlerId, u8 unusableMoves, u8 check)
|
||||
if (gDisableStructs[battlerId].encoreTimer && gDisableStructs[battlerId].encoredMove != gBattleMons[battlerId].moves[i])
|
||||
unusableMoves |= gBitTable[i];
|
||||
// Choice Band
|
||||
if (holdEffect == HOLD_EFFECT_CHOICE_BAND && *choicedMove != MOVE_NONE && *choicedMove != 0xFFFF && *choicedMove != gBattleMons[battlerId].moves[i])
|
||||
if (holdEffect == HOLD_EFFECT_CHOICE_BAND && *choicedMove != MOVE_NONE && *choicedMove != MOVE_UNAVAILABLE && *choicedMove != gBattleMons[battlerId].moves[i])
|
||||
unusableMoves |= gBitTable[i];
|
||||
}
|
||||
return unusableMoves;
|
||||
@@ -1106,8 +1109,7 @@ u8 CheckMoveLimitations(u8 battlerId, u8 unusableMoves, u8 check)
|
||||
#define ALL_MOVES_MASK ((1 << MAX_MON_MOVES) - 1)
|
||||
bool8 AreAllMovesUnusable(void)
|
||||
{
|
||||
u8 unusable;
|
||||
unusable = CheckMoveLimitations(gActiveBattler, 0, MOVE_LIMITATIONS_ALL);
|
||||
u8 unusable = CheckMoveLimitations(gActiveBattler, 0, MOVE_LIMITATIONS_ALL);
|
||||
|
||||
if (unusable == ALL_MOVES_MASK) // All moves are unusable.
|
||||
{
|
||||
@@ -1190,14 +1192,14 @@ u8 DoFieldEndTurnEffects(void)
|
||||
s32 j;
|
||||
for (j = i + 1; j < gBattlersCount; j++)
|
||||
{
|
||||
if (GetWhoStrikesFirst(gBattlerByTurnOrder[i], gBattlerByTurnOrder[j], 0))
|
||||
if (GetWhoStrikesFirst(gBattlerByTurnOrder[i], gBattlerByTurnOrder[j], FALSE))
|
||||
SwapTurnOrder(i, j);
|
||||
}
|
||||
}
|
||||
|
||||
// It's stupid, but won't match without it
|
||||
{
|
||||
u8* var = &gBattleStruct->turnCountersTracker;
|
||||
u8 *var = &gBattleStruct->turnCountersTracker;
|
||||
(*var)++;
|
||||
gBattleStruct->turnSideTracker = 0;
|
||||
}
|
||||
@@ -1218,10 +1220,10 @@ u8 DoFieldEndTurnEffects(void)
|
||||
}
|
||||
}
|
||||
gBattleStruct->turnSideTracker++;
|
||||
if (effect)
|
||||
if (effect != 0)
|
||||
break;
|
||||
}
|
||||
if (!effect)
|
||||
if (effect == 0)
|
||||
{
|
||||
gBattleStruct->turnCountersTracker++;
|
||||
gBattleStruct->turnSideTracker = 0;
|
||||
@@ -1244,10 +1246,10 @@ u8 DoFieldEndTurnEffects(void)
|
||||
}
|
||||
}
|
||||
gBattleStruct->turnSideTracker++;
|
||||
if (effect)
|
||||
if (effect != 0)
|
||||
break;
|
||||
}
|
||||
if (!effect)
|
||||
if (effect == 0)
|
||||
{
|
||||
gBattleStruct->turnCountersTracker++;
|
||||
gBattleStruct->turnSideTracker = 0;
|
||||
@@ -1258,8 +1260,7 @@ u8 DoFieldEndTurnEffects(void)
|
||||
{
|
||||
side = gBattleStruct->turnSideTracker;
|
||||
gActiveBattler = gBattlerAttacker = gSideTimers[side].mistBattlerId;
|
||||
if (gSideTimers[side].mistTimer != 0
|
||||
&& --gSideTimers[side].mistTimer == 0)
|
||||
if (gSideTimers[side].mistTimer != 0 && --gSideTimers[side].mistTimer == 0)
|
||||
{
|
||||
gSideStatuses[side] &= ~SIDE_STATUS_MIST;
|
||||
BattleScriptExecute(BattleScript_SideStatusWoreOff);
|
||||
@@ -1268,10 +1269,10 @@ u8 DoFieldEndTurnEffects(void)
|
||||
effect++;
|
||||
}
|
||||
gBattleStruct->turnSideTracker++;
|
||||
if (effect)
|
||||
if (effect != 0)
|
||||
break;
|
||||
}
|
||||
if (!effect)
|
||||
if (effect == 0)
|
||||
{
|
||||
gBattleStruct->turnCountersTracker++;
|
||||
gBattleStruct->turnSideTracker = 0;
|
||||
@@ -1292,10 +1293,10 @@ u8 DoFieldEndTurnEffects(void)
|
||||
}
|
||||
}
|
||||
gBattleStruct->turnSideTracker++;
|
||||
if (effect)
|
||||
if (effect != 0)
|
||||
break;
|
||||
}
|
||||
if (!effect)
|
||||
if (effect == 0)
|
||||
{
|
||||
gBattleStruct->turnCountersTracker++;
|
||||
gBattleStruct->turnSideTracker = 0;
|
||||
@@ -1314,10 +1315,10 @@ u8 DoFieldEndTurnEffects(void)
|
||||
effect++;
|
||||
}
|
||||
gBattleStruct->turnSideTracker++;
|
||||
if (effect)
|
||||
if (effect != 0)
|
||||
break;
|
||||
}
|
||||
if (!effect)
|
||||
if (effect == 0)
|
||||
{
|
||||
gBattleStruct->turnCountersTracker++;
|
||||
}
|
||||
@@ -1685,12 +1686,12 @@ u8 DoBattlerEndTurnEffects(void)
|
||||
}
|
||||
if (i == MAX_MON_MOVES) // pokemon does not have the disabled move anymore
|
||||
{
|
||||
gDisableStructs[gActiveBattler].disabledMove = 0;
|
||||
gDisableStructs[gActiveBattler].disabledMove = MOVE_NONE;
|
||||
gDisableStructs[gActiveBattler].disableTimer = 0;
|
||||
}
|
||||
else if (--gDisableStructs[gActiveBattler].disableTimer == 0) // disable ends
|
||||
{
|
||||
gDisableStructs[gActiveBattler].disabledMove = 0;
|
||||
gDisableStructs[gActiveBattler].disabledMove = MOVE_NONE;
|
||||
BattleScriptExecute(BattleScript_DisabledNoMore);
|
||||
effect++;
|
||||
}
|
||||
@@ -1702,13 +1703,13 @@ u8 DoBattlerEndTurnEffects(void)
|
||||
{
|
||||
if (gBattleMons[gActiveBattler].moves[gDisableStructs[gActiveBattler].encoredMovePos] != gDisableStructs[gActiveBattler].encoredMove) // pokemon does not have the encored move anymore
|
||||
{
|
||||
gDisableStructs[gActiveBattler].encoredMove = 0;
|
||||
gDisableStructs[gActiveBattler].encoredMove = MOVE_NONE;
|
||||
gDisableStructs[gActiveBattler].encoreTimer = 0;
|
||||
}
|
||||
else if (--gDisableStructs[gActiveBattler].encoreTimer == 0
|
||||
|| gBattleMons[gActiveBattler].pp[gDisableStructs[gActiveBattler].encoredMovePos] == 0)
|
||||
{
|
||||
gDisableStructs[gActiveBattler].encoredMove = 0;
|
||||
gDisableStructs[gActiveBattler].encoredMove = MOVE_NONE;
|
||||
gDisableStructs[gActiveBattler].encoreTimer = 0;
|
||||
BattleScriptExecute(BattleScript_EncoredNoMore);
|
||||
effect++;
|
||||
@@ -1798,7 +1799,7 @@ bool8 HandleWishPerishSongOnTurnEnd(void)
|
||||
BattleScriptExecute(BattleScript_MonTookFutureAttack);
|
||||
|
||||
if (gWishFutureKnock.futureSightCounter[gActiveBattler] == 0
|
||||
&& gWishFutureKnock.futureSightCounter[gActiveBattler ^ BIT_FLANK] == 0)
|
||||
&& gWishFutureKnock.futureSightCounter[BATTLE_PARTNER(gActiveBattler)] == 0)
|
||||
{
|
||||
gSideStatuses[GET_BATTLER_SIDE(gBattlerTarget)] &= ~SIDE_STATUS_FUTUREATTACK;
|
||||
}
|
||||
@@ -2101,7 +2102,7 @@ u8 AtkCanceller_UnableToUseMove(void)
|
||||
gBattleStruct->atkCancellerTracker++;
|
||||
break;
|
||||
case CANCELLER_DISABLED: // disabled move
|
||||
if (gDisableStructs[gBattlerAttacker].disabledMove == gCurrentMove && gDisableStructs[gBattlerAttacker].disabledMove != 0)
|
||||
if (gDisableStructs[gBattlerAttacker].disabledMove == gCurrentMove && gDisableStructs[gBattlerAttacker].disabledMove != MOVE_NONE)
|
||||
{
|
||||
gProtectStructs[gBattlerAttacker].usedDisabledMove = 1;
|
||||
gBattleScripting.battler = gBattlerAttacker;
|
||||
@@ -2170,7 +2171,7 @@ u8 AtkCanceller_UnableToUseMove(void)
|
||||
if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_PARALYSIS) && (Random() % 4) == 0)
|
||||
{
|
||||
gProtectStructs[gBattlerAttacker].prlzImmobility = 1;
|
||||
// This is removed in Emerald for some reason
|
||||
// This is removed in FRLG and Emerald for some reason
|
||||
//CancelMultiTurnMoves(gBattlerAttacker);
|
||||
gBattlescriptCurrInstr = BattleScript_MoveUsedIsParalyzed;
|
||||
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
|
||||
@@ -2208,7 +2209,7 @@ u8 AtkCanceller_UnableToUseMove(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
// This is removed in Emerald for some reason
|
||||
// This is removed in FRLG and Emerald for some reason
|
||||
//gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_MULTIPLETURNS;
|
||||
if (gTakenDmg[gBattlerAttacker])
|
||||
{
|
||||
@@ -2259,8 +2260,8 @@ u8 AtkCanceller_UnableToUseMove(void)
|
||||
|
||||
bool8 HasNoMonsToSwitch(u8 battler, u8 partyIdBattlerOn1, u8 partyIdBattlerOn2)
|
||||
{
|
||||
u8 playerId, flankId;
|
||||
struct Pokemon *party;
|
||||
u8 id1, id2;
|
||||
s32 i;
|
||||
|
||||
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
|
||||
@@ -2273,15 +2274,15 @@ bool8 HasNoMonsToSwitch(u8 battler, u8 partyIdBattlerOn1, u8 partyIdBattlerOn2)
|
||||
else
|
||||
party = gEnemyParty;
|
||||
|
||||
id1 = ((battler & BIT_FLANK) / 2);
|
||||
for (i = id1 * MULTI_PARTY_SIZE; i < id1 * MULTI_PARTY_SIZE + MULTI_PARTY_SIZE; i++)
|
||||
playerId = ((battler & BIT_FLANK) / 2);
|
||||
for (i = playerId * MULTI_PARTY_SIZE; i < playerId * MULTI_PARTY_SIZE + MULTI_PARTY_SIZE; i++)
|
||||
{
|
||||
if (GetMonData(&party[i], MON_DATA_HP) != 0
|
||||
&& GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE
|
||||
&& GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG)
|
||||
break;
|
||||
}
|
||||
return (i == id1 * MULTI_PARTY_SIZE + MULTI_PARTY_SIZE);
|
||||
return (i == playerId * MULTI_PARTY_SIZE + MULTI_PARTY_SIZE);
|
||||
}
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
||||
{
|
||||
@@ -2290,76 +2291,76 @@ bool8 HasNoMonsToSwitch(u8 battler, u8 partyIdBattlerOn1, u8 partyIdBattlerOn2)
|
||||
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
|
||||
{
|
||||
party = gPlayerParty;
|
||||
id2 = GetBattlerMultiplayerId(battler);
|
||||
id1 = GetLinkTrainerFlankId(id2);
|
||||
flankId = GetBattlerMultiplayerId(battler);
|
||||
playerId = GetLinkTrainerFlankId(flankId);
|
||||
}
|
||||
else
|
||||
{
|
||||
party = gEnemyParty;
|
||||
if (battler == 1)
|
||||
id1 = 0;
|
||||
playerId = 0;
|
||||
else
|
||||
id1 = 1;
|
||||
playerId = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
id2 = GetBattlerMultiplayerId(battler);
|
||||
flankId = GetBattlerMultiplayerId(battler);
|
||||
|
||||
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
|
||||
party = gPlayerParty;
|
||||
else
|
||||
party = gEnemyParty;
|
||||
|
||||
id1 = GetLinkTrainerFlankId(id2);
|
||||
playerId = GetLinkTrainerFlankId(flankId);
|
||||
}
|
||||
|
||||
for (i = id1 * MULTI_PARTY_SIZE; i < id1 * MULTI_PARTY_SIZE + MULTI_PARTY_SIZE; i++)
|
||||
for (i = playerId * MULTI_PARTY_SIZE; i < playerId * MULTI_PARTY_SIZE + MULTI_PARTY_SIZE; i++)
|
||||
{
|
||||
if (GetMonData(&party[i], MON_DATA_HP) != 0
|
||||
&& GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE
|
||||
&& GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG)
|
||||
break;
|
||||
}
|
||||
return (i == id1 * MULTI_PARTY_SIZE + MULTI_PARTY_SIZE);
|
||||
return (i == playerId * MULTI_PARTY_SIZE + MULTI_PARTY_SIZE);
|
||||
}
|
||||
else if ((gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) && GetBattlerSide(battler) == B_SIDE_OPPONENT)
|
||||
{
|
||||
party = gEnemyParty;
|
||||
|
||||
if (battler == 1)
|
||||
id1 = 0;
|
||||
playerId = 0;
|
||||
else
|
||||
id1 = MULTI_PARTY_SIZE;
|
||||
playerId = MULTI_PARTY_SIZE;
|
||||
|
||||
for (i = id1; i < id1 + MULTI_PARTY_SIZE; i++)
|
||||
for (i = playerId; i < playerId + MULTI_PARTY_SIZE; i++)
|
||||
{
|
||||
if (GetMonData(&party[i], MON_DATA_HP) != 0
|
||||
&& GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE
|
||||
&& GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG)
|
||||
break;
|
||||
}
|
||||
return (i == id1 + 3);
|
||||
return (i == playerId + 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (GetBattlerSide(battler) == B_SIDE_OPPONENT)
|
||||
{
|
||||
id2 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
|
||||
id1 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
|
||||
flankId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
|
||||
playerId = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
|
||||
party = gEnemyParty;
|
||||
}
|
||||
else
|
||||
{
|
||||
id2 = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
|
||||
id1 = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
|
||||
flankId = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
|
||||
playerId = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
|
||||
party = gPlayerParty;
|
||||
}
|
||||
|
||||
if (partyIdBattlerOn1 == PARTY_SIZE)
|
||||
partyIdBattlerOn1 = gBattlerPartyIndexes[id2];
|
||||
partyIdBattlerOn1 = gBattlerPartyIndexes[flankId];
|
||||
if (partyIdBattlerOn2 == PARTY_SIZE)
|
||||
partyIdBattlerOn2 = gBattlerPartyIndexes[id1];
|
||||
partyIdBattlerOn2 = gBattlerPartyIndexes[playerId];
|
||||
|
||||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
@@ -2367,7 +2368,7 @@ bool8 HasNoMonsToSwitch(u8 battler, u8 partyIdBattlerOn1, u8 partyIdBattlerOn2)
|
||||
&& GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE
|
||||
&& GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG
|
||||
&& i != partyIdBattlerOn1 && i != partyIdBattlerOn2
|
||||
&& i != *(gBattleStruct->monToSwitchIntoId + id2) && i != id1[gBattleStruct->monToSwitchIntoId])
|
||||
&& i != *(gBattleStruct->monToSwitchIntoId + flankId) && i != playerId[gBattleStruct->monToSwitchIntoId])
|
||||
break;
|
||||
}
|
||||
return (i == PARTY_SIZE);
|
||||
@@ -2504,7 +2505,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (effect)
|
||||
if (effect != 0)
|
||||
{
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = GetCurrentWeather();
|
||||
BattleScriptPushCursorAndCallback(BattleScript_OverworldWeatherStarts);
|
||||
@@ -2546,7 +2547,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
|
||||
break;
|
||||
case ABILITY_FORECAST:
|
||||
effect = CastformDataTypeChange(battler);
|
||||
if (effect)
|
||||
if (effect != 0)
|
||||
{
|
||||
BattleScriptPushCursorAndCallback(BattleScript_CastformChange);
|
||||
gBattleScripting.battler = battler;
|
||||
@@ -2567,7 +2568,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
|
||||
for (target1 = 0; target1 < gBattlersCount; target1++)
|
||||
{
|
||||
effect = CastformDataTypeChange(target1);
|
||||
if (effect)
|
||||
if (effect != 0)
|
||||
{
|
||||
BattleScriptPushCursorAndCallback(BattleScript_CastformChange);
|
||||
gBattleScripting.battler = target1;
|
||||
@@ -2640,12 +2641,12 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
|
||||
case ABILITYEFFECT_MOVES_BLOCK: // 2
|
||||
if (gLastUsedAbility == ABILITY_SOUNDPROOF)
|
||||
{
|
||||
for (i = 0; sSoundMovesTable[i] != 0xFFFF; i++)
|
||||
for (i = 0; sSoundMovesTable[i] != SOUND_MOVES_END; i++)
|
||||
{
|
||||
if (sSoundMovesTable[i] == move)
|
||||
break;
|
||||
}
|
||||
if (sSoundMovesTable[i] != 0xFFFF)
|
||||
if (sSoundMovesTable[i] != SOUND_MOVES_END)
|
||||
{
|
||||
if (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)
|
||||
gHitMarker |= HITMARKER_NO_PPDEDUCT;
|
||||
@@ -2907,7 +2908,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (effect)
|
||||
if (effect != 0)
|
||||
{
|
||||
switch (effect)
|
||||
{
|
||||
@@ -2938,7 +2939,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
|
||||
if (gBattleMons[battler].ability == ABILITY_FORECAST)
|
||||
{
|
||||
effect = CastformDataTypeChange(battler);
|
||||
if (effect)
|
||||
if (effect != 0)
|
||||
{
|
||||
BattleScriptPushCursorAndCallback(BattleScript_CastformChange);
|
||||
gBattleScripting.battler = battler;
|
||||
@@ -3000,27 +3001,27 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
|
||||
if (gBattleMons[i].ability == ABILITY_TRACE && (gStatuses3[i] & STATUS3_TRACE))
|
||||
{
|
||||
u8 target2;
|
||||
side = (GetBattlerPosition(i) ^ BIT_SIDE) & BIT_SIDE; // side of the opposing pokemon
|
||||
side = BATTLE_OPPOSITE(GetBattlerPosition(i)) & BIT_SIDE; // side of the opposing pokemon
|
||||
target1 = GetBattlerAtPosition(side);
|
||||
target2 = GetBattlerAtPosition(side + BIT_FLANK);
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
||||
{
|
||||
if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0
|
||||
&& gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0)
|
||||
if (gBattleMons[target1].ability != ABILITY_NONE && gBattleMons[target1].hp != 0
|
||||
&& gBattleMons[target2].ability != ABILITY_NONE && gBattleMons[target2].hp != 0)
|
||||
{
|
||||
gActiveBattler = GetBattlerAtPosition(((Random() & 1) * 2) | side);
|
||||
gBattleMons[i].ability = gBattleMons[gActiveBattler].ability;
|
||||
gLastUsedAbility = gBattleMons[gActiveBattler].ability;
|
||||
effect++;
|
||||
}
|
||||
else if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0)
|
||||
else if (gBattleMons[target1].ability != ABILITY_NONE && gBattleMons[target1].hp != 0)
|
||||
{
|
||||
gActiveBattler = target1;
|
||||
gBattleMons[i].ability = gBattleMons[gActiveBattler].ability;
|
||||
gLastUsedAbility = gBattleMons[gActiveBattler].ability;
|
||||
effect++;
|
||||
}
|
||||
else if (gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0)
|
||||
else if (gBattleMons[target2].ability != ABILITY_NONE && gBattleMons[target2].hp != 0)
|
||||
{
|
||||
gActiveBattler = target2;
|
||||
gBattleMons[i].ability = gBattleMons[gActiveBattler].ability;
|
||||
@@ -3038,7 +3039,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
|
||||
effect++;
|
||||
}
|
||||
}
|
||||
if (effect)
|
||||
if (effect != 0)
|
||||
{
|
||||
BattleScriptPushCursorAndCallback(BattleScript_TraceActivates);
|
||||
gStatuses3[i] &= ~STATUS3_TRACE;
|
||||
@@ -3298,7 +3299,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
|
||||
effect = ITEM_STATS_CHANGE;
|
||||
}
|
||||
}
|
||||
if (effect)
|
||||
if (effect != 0)
|
||||
{
|
||||
gBattleScripting.battler = battlerId;
|
||||
gPotentialItemEffectBattler = battlerId;
|
||||
@@ -3369,7 +3370,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
|
||||
effect = ITEM_STATS_CHANGE;
|
||||
}
|
||||
}
|
||||
if (effect)
|
||||
if (effect != 0)
|
||||
{
|
||||
gBattleScripting.battler = battlerId;
|
||||
gPotentialItemEffectBattler = battlerId;
|
||||
@@ -3581,7 +3582,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (effect)
|
||||
if (effect != 0)
|
||||
{
|
||||
gBattleScripting.battler = battlerId;
|
||||
gPotentialItemEffectBattler = battlerId;
|
||||
@@ -3725,7 +3726,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
|
||||
effect = ITEM_STATS_CHANGE;
|
||||
}
|
||||
}
|
||||
if (effect)
|
||||
if (effect != 0)
|
||||
{
|
||||
gBattleScripting.battler = battlerId;
|
||||
gPotentialItemEffectBattler = battlerId;
|
||||
@@ -3735,7 +3736,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn)
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (effect)
|
||||
if (effect != 0)
|
||||
{
|
||||
gBattleScripting.battler = battlerId;
|
||||
gPotentialItemEffectBattler = battlerId;
|
||||
@@ -3819,7 +3820,7 @@ u8 GetMoveTarget(u16 move, u8 setTarget)
|
||||
switch (moveTarget)
|
||||
{
|
||||
case MOVE_TARGET_SELECTED:
|
||||
side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
|
||||
side = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker));
|
||||
if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp)
|
||||
targetBattler = gSideTimers[side].followmeTarget;
|
||||
else
|
||||
@@ -3843,12 +3844,12 @@ u8 GetMoveTarget(u16 move, u8 setTarget)
|
||||
case MOVE_TARGET_BOTH:
|
||||
case MOVE_TARGET_FOES_AND_ALLY:
|
||||
case MOVE_TARGET_OPPONENTS_FIELD:
|
||||
targetBattler = GetBattlerAtPosition((GetBattlerPosition(gBattlerAttacker) & BIT_SIDE) ^ BIT_SIDE);
|
||||
targetBattler = GetBattlerAtPosition(BATTLE_OPPOSITE(GET_BATTLER_SIDE(gBattlerAttacker)));
|
||||
if (gAbsentBattlerFlags & gBitTable[targetBattler])
|
||||
targetBattler ^= BIT_FLANK;
|
||||
break;
|
||||
case MOVE_TARGET_RANDOM:
|
||||
side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
|
||||
side = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker));
|
||||
if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp)
|
||||
targetBattler = gSideTimers[side].followmeTarget;
|
||||
else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & MOVE_TARGET_RANDOM)
|
||||
@@ -3871,7 +3872,7 @@ u8 GetMoveTarget(u16 move, u8 setTarget)
|
||||
targetBattler ^= BIT_FLANK;
|
||||
}
|
||||
else
|
||||
targetBattler = GetBattlerAtPosition((GetBattlerPosition(gBattlerAttacker) & BIT_SIDE) ^ BIT_SIDE);
|
||||
targetBattler = GetBattlerAtPosition(BATTLE_OPPOSITE(GET_BATTLER_SIDE(gBattlerAttacker)));
|
||||
break;
|
||||
case MOVE_TARGET_USER_OR_SELECTED:
|
||||
case MOVE_TARGET_USER:
|
||||
|
||||
+2
-2
@@ -109,12 +109,12 @@ void SwitchPartyOrderInGameMulti(u8 battlerId, u8 arg1)
|
||||
{
|
||||
s32 i;
|
||||
for (i = 0; i < (int)ARRAY_COUNT(gBattlePartyCurrentOrder); i++)
|
||||
gBattlePartyCurrentOrder[i] = *(0 * 3 + i + (u8*)(gBattleStruct->battlerPartyOrders));
|
||||
gBattlePartyCurrentOrder[i] = *(0 * 3 + i + (u8 *)(gBattleStruct->battlerPartyOrders));
|
||||
|
||||
SwitchPartyMonSlots(GetPartyIdFromBattlePartyId(gBattlerPartyIndexes[battlerId]), GetPartyIdFromBattlePartyId(arg1));
|
||||
|
||||
for (i = 0; i < (int)ARRAY_COUNT(gBattlePartyCurrentOrder); i++)
|
||||
*(0 * 3 + i + (u8*)(gBattleStruct->battlerPartyOrders)) = gBattlePartyCurrentOrder[i];
|
||||
*(0 * 3 + i + (u8 *)(gBattleStruct->battlerPartyOrders)) = gBattlePartyCurrentOrder[i];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+5
-5
@@ -946,7 +946,7 @@ void ClearEnigmaBerries(void)
|
||||
void SetEnigmaBerry(u8 *src)
|
||||
{
|
||||
u32 i;
|
||||
u8 *dest = (u8*)&gSaveBlock1Ptr->enigmaBerry;
|
||||
u8 *dest = (u8 *)&gSaveBlock1Ptr->enigmaBerry;
|
||||
|
||||
for (i = 0; i < sizeof(gSaveBlock1Ptr->enigmaBerry); i++)
|
||||
dest[i] = src[i];
|
||||
@@ -958,7 +958,7 @@ static u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry)
|
||||
u32 checksum;
|
||||
u8 *dest;
|
||||
|
||||
dest = (u8*)enigmaBerry;
|
||||
dest = (u8 *)enigmaBerry;
|
||||
checksum = 0;
|
||||
for (i = 0; i < sizeof(gSaveBlock1Ptr->enigmaBerry) - sizeof(gSaveBlock1Ptr->enigmaBerry.checksum); i++)
|
||||
checksum += dest[i];
|
||||
@@ -980,7 +980,7 @@ bool32 IsEnigmaBerryValid(void)
|
||||
const struct Berry *GetBerryInfo(u8 berry)
|
||||
{
|
||||
if (berry == ITEM_TO_BERRY(ITEM_ENIGMA_BERRY) && IsEnigmaBerryValid())
|
||||
return (struct Berry*)(&gSaveBlock1Ptr->enigmaBerry.berry);
|
||||
return (struct Berry *)(&gSaveBlock1Ptr->enigmaBerry.berry);
|
||||
else
|
||||
{
|
||||
if (berry == BERRY_NONE || berry > ITEM_TO_BERRY(LAST_BERRY_INDEX))
|
||||
@@ -1172,7 +1172,7 @@ void GetBerryNameByBerryType(u8 berry, u8 *string)
|
||||
string[BERRY_NAME_LENGTH] = EOS;
|
||||
}
|
||||
|
||||
void GetBerryCountStringByBerryType(u8 berry, u8* dest, u32 berryCount)
|
||||
void GetBerryCountStringByBerryType(u8 berry, u8 *dest, u32 berryCount)
|
||||
{
|
||||
GetBerryCountString(dest, GetBerryInfo(berry)->name, berryCount);
|
||||
}
|
||||
@@ -1300,7 +1300,7 @@ void ObjectEventInteractionPlantBerryTree(void)
|
||||
{
|
||||
u8 berry = ItemIdToBerryType(gSpecialVar_ItemId);
|
||||
|
||||
PlantBerryTree(GetObjectEventBerryTreeId(gSelectedObjectEvent), berry, 1, TRUE);
|
||||
PlantBerryTree(GetObjectEventBerryTreeId(gSelectedObjectEvent), berry, BERRY_STAGE_PLANTED, TRUE);
|
||||
ObjectEventInteractionGetBerryTreeData();
|
||||
}
|
||||
|
||||
|
||||
+43
-43
@@ -215,7 +215,7 @@ static void SetPlayerBerryData(u8, u16);
|
||||
static void Blender_AddTextPrinter(u8, const u8 *, u8, u8, s32, s32);
|
||||
static void ResetLinkCmds(void);
|
||||
static void CreateParticleSprites(void);
|
||||
static void ShakeBgCoordForHit(s16*, u16);
|
||||
static void ShakeBgCoordForHit(s16 *, u16);
|
||||
static void TryUpdateProgressBar(u16, u16);
|
||||
static void UpdateRPM(u16);
|
||||
static void RestoreBgCoords(void);
|
||||
@@ -265,7 +265,7 @@ static const u8 sText_Master[] = _("MASTER");
|
||||
static const u8 sText_Dude[] = _("DUDE");
|
||||
static const u8 sText_Miss[] = _("MISS");
|
||||
|
||||
static const u8* const sBlenderOpponentsNames[] =
|
||||
static const u8 *const sBlenderOpponentsNames[] =
|
||||
{
|
||||
[BLENDER_MISTER] = sText_Mister,
|
||||
[BLENDER_LADDIE] = sText_Laddie,
|
||||
@@ -456,7 +456,7 @@ static const struct OamData sOam_PlayerArrow =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(32x32),
|
||||
.x = 0,
|
||||
@@ -599,7 +599,7 @@ static const struct OamData sOam_ScoreSymbols =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(16x16),
|
||||
.x = 0,
|
||||
@@ -668,7 +668,7 @@ static const struct OamData sOam_Particles =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(8x8),
|
||||
.x = 0,
|
||||
@@ -755,7 +755,7 @@ static const struct OamData sOam_CountdownNumbers =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(32x32),
|
||||
.x = 0,
|
||||
@@ -813,7 +813,7 @@ static const struct OamData sOam_Start =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(64x32),
|
||||
.x = 0,
|
||||
@@ -959,7 +959,7 @@ static bool8 LoadBerryBlenderGfx(void)
|
||||
case 1:
|
||||
CopyToBgTilemapBuffer(2, sBlenderCenter_Tilemap, 0x400, 0);
|
||||
CopyBgTilemapBufferToVram(2);
|
||||
LoadPalette(sBlenderCenter_Pal, 0, 0x100);
|
||||
LoadPalette(sBlenderCenter_Pal, BG_PLTT_ID(0), 8 * PLTT_SIZE_4BPP);
|
||||
sBerryBlender->loadGfxState++;
|
||||
break;
|
||||
case 2:
|
||||
@@ -984,7 +984,7 @@ static bool8 LoadBerryBlenderGfx(void)
|
||||
sBerryBlender->loadGfxState++;
|
||||
break;
|
||||
case 7:
|
||||
LoadPalette(sBlenderOuter_Pal, 0x80, 0x20);
|
||||
LoadPalette(sBlenderOuter_Pal, BG_PLTT_ID(8), PLTT_SIZE_4BPP);
|
||||
sBerryBlender->loadGfxState++;
|
||||
break;
|
||||
case 8:
|
||||
@@ -1008,7 +1008,7 @@ static bool8 LoadBerryBlenderGfx(void)
|
||||
|
||||
static void DrawBlenderBg(void)
|
||||
{
|
||||
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14);
|
||||
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, DISPLAY_TILE_WIDTH, DISPLAY_TILE_HEIGHT);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
ShowBg(0);
|
||||
ShowBg(1);
|
||||
@@ -1029,7 +1029,7 @@ static void InitBerryBlenderWindows(void)
|
||||
for (i = 0; i < 5; i++)
|
||||
FillWindowPixelBuffer(i, PIXEL_FILL(0));
|
||||
|
||||
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14);
|
||||
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, DISPLAY_TILE_WIDTH, DISPLAY_TILE_HEIGHT);
|
||||
Menu_LoadStdPalAt(0xE0);
|
||||
}
|
||||
}
|
||||
@@ -1065,8 +1065,8 @@ static void CB2_LoadBerryBlender(void)
|
||||
InitBgsFromTemplates(1, sBgTemplates, ARRAY_COUNT(sBgTemplates));
|
||||
SetBgTilemapBuffer(1, sBerryBlender->tilemapBuffers[0]);
|
||||
SetBgTilemapBuffer(2, sBerryBlender->tilemapBuffers[1]);
|
||||
LoadUserWindowBorderGfx(0, 1, 0xD0);
|
||||
LoadMessageBoxGfx(0, 0x14, 0xF0);
|
||||
LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(13));
|
||||
LoadMessageBoxGfx(0, 0x14, BG_PLTT_ID(15));
|
||||
InitBerryBlenderWindows();
|
||||
|
||||
sBerryBlender->mainState++;
|
||||
@@ -1145,7 +1145,7 @@ static void CB2_LoadBerryBlender(void)
|
||||
#define sYDownSpeed data[7]
|
||||
|
||||
// For throwing berries into the machine
|
||||
static void SpriteCB_Berry(struct Sprite* sprite)
|
||||
static void SpriteCB_Berry(struct Sprite *sprite)
|
||||
{
|
||||
sprite->sX += sprite->sXSpeed;
|
||||
sprite->sY -= sprite->sYUpSpeed;
|
||||
@@ -1166,7 +1166,7 @@ static void SpriteCB_Berry(struct Sprite* sprite)
|
||||
sprite->y = sprite->sY;
|
||||
}
|
||||
|
||||
static void SetBerrySpriteData(struct Sprite* sprite, s16 x, s16 y, s16 bounceSpeed, s16 xSpeed, s16 ySpeed)
|
||||
static void SetBerrySpriteData(struct Sprite *sprite, s16 x, s16 y, s16 bounceSpeed, s16 xSpeed, s16 ySpeed)
|
||||
{
|
||||
sprite->sTargetY = y;
|
||||
sprite->sX = x;
|
||||
@@ -1188,9 +1188,9 @@ static void SetBerrySpriteData(struct Sprite* sprite, s16 x, s16 y, s16 bounceSp
|
||||
#undef sXSpeed
|
||||
#undef sYDownSpeed
|
||||
|
||||
static void CreateBerrySprite(u16 a0, u8 playerId)
|
||||
static void CreateBerrySprite(u16 itemId, u8 playerId)
|
||||
{
|
||||
u8 spriteId = CreateSpinningBerrySprite(a0 + FIRST_BERRY_INDEX - 10, 0, 80, playerId & 1);
|
||||
u8 spriteId = CreateSpinningBerrySprite(ITEM_TO_BERRY(itemId) - 1, 0, 80, playerId & 1);
|
||||
SetBerrySpriteData(&gSprites[spriteId],
|
||||
sBerrySpriteData[playerId][0],
|
||||
sBerrySpriteData[playerId][1],
|
||||
@@ -1502,8 +1502,8 @@ static void InitBlenderBgs(void)
|
||||
|
||||
SetBgTilemapBuffer(1, sBerryBlender->tilemapBuffers[0]);
|
||||
SetBgTilemapBuffer(2, sBerryBlender->tilemapBuffers[1]);
|
||||
LoadUserWindowBorderGfx(0, 1, 0xD0);
|
||||
LoadMessageBoxGfx(0, 0x14, 0xF0);
|
||||
LoadUserWindowBorderGfx(0, 1, BG_PLTT_ID(13));
|
||||
LoadMessageBoxGfx(0, 0x14, BG_PLTT_ID(15));
|
||||
InitBerryBlenderWindows();
|
||||
|
||||
sBerryBlender->unk0 = 0;
|
||||
@@ -2238,7 +2238,7 @@ static void CB2_PlayBlender(void)
|
||||
UpdatePaletteFade();
|
||||
}
|
||||
|
||||
static void Blender_DummiedOutFunc(s16 a0, s16 a1)
|
||||
static void Blender_DummiedOutFunc(s16 bgX, s16 bgY)
|
||||
{
|
||||
|
||||
}
|
||||
@@ -2260,7 +2260,7 @@ static bool8 AreBlenderBerriesSame(struct BlenderBerry* berries, u8 a, u8 b)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static u32 CalculatePokeblockColor(struct BlenderBerry* berries, s16* _flavors, u8 numPlayers, u8 negativeFlavors)
|
||||
static u32 CalculatePokeblockColor(struct BlenderBerry* berries, s16 *_flavors, u8 numPlayers, u8 negativeFlavors)
|
||||
{
|
||||
s16 flavors[FLAVOR_COUNT + 1];
|
||||
s32 i, j;
|
||||
@@ -2494,7 +2494,7 @@ static void CalculatePokeblock(struct BlenderBerry *berries, struct Pokeblock *p
|
||||
}
|
||||
|
||||
// Unused
|
||||
static void Debug_CalculatePokeblock(struct BlenderBerry* berries, struct Pokeblock* pokeblock, u8 numPlayers, u8* flavors, u16 maxRPM)
|
||||
static void Debug_CalculatePokeblock(struct BlenderBerry* berries, struct Pokeblock* pokeblock, u8 numPlayers, u8 *flavors, u16 maxRPM)
|
||||
{
|
||||
CalculatePokeblock(berries, pokeblock, numPlayers, flavors, maxRPM);
|
||||
}
|
||||
@@ -2628,7 +2628,7 @@ static void CB2_EndBlenderGame(void)
|
||||
|
||||
if (gReceivedRemoteLinkPlayers && gWirelessCommType)
|
||||
{
|
||||
struct BlenderGameBlock *receivedBlock = (struct BlenderGameBlock*)(&gBlockRecvBuffer);
|
||||
struct BlenderGameBlock *receivedBlock = (struct BlenderGameBlock *)(&gBlockRecvBuffer);
|
||||
|
||||
sBerryBlender->maxRPM = receivedBlock->timeRPM.maxRPM;
|
||||
sBerryBlender->gameFrameTime = receivedBlock->timeRPM.time;
|
||||
@@ -2641,7 +2641,7 @@ static void CB2_EndBlenderGame(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
struct TimeAndRPM *receivedBlock = (struct TimeAndRPM*)(&gBlockRecvBuffer);
|
||||
struct TimeAndRPM *receivedBlock = (struct TimeAndRPM *)(&gBlockRecvBuffer);
|
||||
|
||||
sBerryBlender->maxRPM = receivedBlock->maxRPM;
|
||||
sBerryBlender->gameFrameTime = receivedBlock->time;
|
||||
@@ -2676,7 +2676,7 @@ static void CB2_EndBlenderGame(void)
|
||||
switch (Menu_ProcessInputNoWrapClearOnChoose())
|
||||
{
|
||||
case 1:
|
||||
case -1:
|
||||
case MENU_B_PRESSED:
|
||||
sBerryBlender->yesNoAnswer = 1;
|
||||
sBerryBlender->gameEndState++;
|
||||
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
|
||||
@@ -3159,7 +3159,7 @@ static void SetBgPos(void)
|
||||
SetGpuReg(REG_OFFSET_BG0VOFS, sBerryBlender->bg_Y);
|
||||
}
|
||||
|
||||
static void SpriteCB_Particle(struct Sprite* sprite)
|
||||
static void SpriteCB_Particle(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[2] += sprite->data[0];
|
||||
sprite->data[3] += sprite->data[1];
|
||||
@@ -3194,7 +3194,7 @@ static void CreateParticleSprites(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_ScoreSymbol(struct Sprite* sprite)
|
||||
static void SpriteCB_ScoreSymbol(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0]++;
|
||||
sprite->y2 = -(sprite->data[0] / 3);
|
||||
@@ -3203,7 +3203,7 @@ static void SpriteCB_ScoreSymbol(struct Sprite* sprite)
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
|
||||
static void SpriteCB_ScoreSymbolBest(struct Sprite* sprite)
|
||||
static void SpriteCB_ScoreSymbolBest(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0]++;
|
||||
sprite->y2 = -(sprite->data[0] * 2);
|
||||
@@ -3225,7 +3225,7 @@ static void SetPlayerBerryData(u8 playerId, u16 itemId)
|
||||
#define sDelay data[2]
|
||||
#define sAnimId data[3]
|
||||
|
||||
static void SpriteCB_CountdownNumber(struct Sprite* sprite)
|
||||
static void SpriteCB_CountdownNumber(struct Sprite *sprite)
|
||||
{
|
||||
switch (sprite->sState)
|
||||
{
|
||||
@@ -3272,7 +3272,7 @@ static void SpriteCB_CountdownNumber(struct Sprite* sprite)
|
||||
#undef sDelay
|
||||
#undef sAnimId
|
||||
|
||||
static void SpriteCB_Start(struct Sprite* sprite)
|
||||
static void SpriteCB_Start(struct Sprite *sprite)
|
||||
{
|
||||
switch (sprite->data[0])
|
||||
{
|
||||
@@ -3318,7 +3318,7 @@ static void UpdateProgressBar(u16 value, u16 limit)
|
||||
s32 amountFilled, maxFilledSegment, subSegmentsFilled, i;
|
||||
u16 *vram;
|
||||
|
||||
vram = (u16*)(BG_SCREEN_ADDR(12));
|
||||
vram = (u16 *)(BG_SCREEN_ADDR(12));
|
||||
amountFilled = (value * 64) / limit;
|
||||
maxFilledSegment = amountFilled / 8;
|
||||
|
||||
@@ -3368,22 +3368,22 @@ static void UpdateRPM(u16 speed)
|
||||
digits[i] = currentRPM % 10;
|
||||
currentRPM /= 10;
|
||||
}
|
||||
*((u16*)(BG_SCREEN_ADDR(12) + 0x458)) = digits[4] + RPM_DIGIT;
|
||||
*((u16*)(BG_SCREEN_ADDR(12) + 0x45A)) = digits[3] + RPM_DIGIT;
|
||||
*((u16*)(BG_SCREEN_ADDR(12) + 0x45C)) = digits[2] + RPM_DIGIT;
|
||||
*((u16*)(BG_SCREEN_ADDR(12) + 0x460)) = digits[1] + RPM_DIGIT;
|
||||
*((u16*)(BG_SCREEN_ADDR(12) + 0x462)) = digits[0] + RPM_DIGIT;
|
||||
*((u16 *)(BG_SCREEN_ADDR(12) + 0x458)) = digits[4] + RPM_DIGIT;
|
||||
*((u16 *)(BG_SCREEN_ADDR(12) + 0x45A)) = digits[3] + RPM_DIGIT;
|
||||
*((u16 *)(BG_SCREEN_ADDR(12) + 0x45C)) = digits[2] + RPM_DIGIT;
|
||||
*((u16 *)(BG_SCREEN_ADDR(12) + 0x460)) = digits[1] + RPM_DIGIT;
|
||||
*((u16 *)(BG_SCREEN_ADDR(12) + 0x462)) = digits[0] + RPM_DIGIT;
|
||||
}
|
||||
|
||||
// Passed a pointer to the bg x/y
|
||||
// Used when hitting a Best at high RPM
|
||||
static void ShakeBgCoordForHit(s16* coord, u16 speed)
|
||||
static void ShakeBgCoordForHit(s16 *coord, u16 speed)
|
||||
{
|
||||
if (*coord == 0)
|
||||
*coord = (Random() % speed) - (speed / 2);
|
||||
}
|
||||
|
||||
static void RestoreBgCoord(s16* coord)
|
||||
static void RestoreBgCoord(s16 *coord)
|
||||
{
|
||||
if (*coord < 0)
|
||||
(*coord)++;
|
||||
@@ -3398,7 +3398,7 @@ static void RestoreBgCoords(void)
|
||||
RestoreBgCoord(&sBerryBlender->bg_Y);
|
||||
}
|
||||
|
||||
static void BlenderLandShakeBgCoord(s16* coord, u16 timer)
|
||||
static void BlenderLandShakeBgCoord(s16 *coord, u16 timer)
|
||||
{
|
||||
s32 strength;
|
||||
|
||||
@@ -3443,7 +3443,7 @@ static bool8 UpdateBlenderLandScreenShake(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void SpriteCB_PlayerArrow(struct Sprite* sprite)
|
||||
static void SpriteCB_PlayerArrow(struct Sprite *sprite)
|
||||
{
|
||||
sprite->x2 = -(sBerryBlender->bg_X);
|
||||
sprite->y2 = -(sBerryBlender->bg_Y);
|
||||
@@ -3553,7 +3553,7 @@ static bool8 PrintBlendingResults(void)
|
||||
sBerryBlender->mainState++;
|
||||
break;
|
||||
case 5:
|
||||
ClearStdWindowAndFrameToTransparent(5, 1);
|
||||
ClearStdWindowAndFrameToTransparent(5, TRUE);
|
||||
|
||||
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
|
||||
{
|
||||
@@ -3692,7 +3692,7 @@ static bool8 PrintBlendingRanking(void)
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
DrawStdFrameWithCustomTileAndPalette(5, 0, 1, 0xD);
|
||||
DrawStdFrameWithCustomTileAndPalette(5, FALSE, 1, 0xD);
|
||||
xPos = GetStringCenterAlignXOffset(FONT_NORMAL, sText_Ranking, 168);
|
||||
Blender_AddTextPrinter(5, sText_Ranking, xPos, 1, TEXT_SKIP_DRAW, 0);
|
||||
|
||||
@@ -3764,7 +3764,7 @@ void ShowBerryBlenderRecordWindow(void)
|
||||
|
||||
winTemplate = sBlenderRecordWindowTemplate;
|
||||
gRecordsWindowId = AddWindow(&winTemplate);
|
||||
DrawStdWindowFrame(gRecordsWindowId, 0);
|
||||
DrawStdWindowFrame(gRecordsWindowId, FALSE);
|
||||
FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1));
|
||||
|
||||
xPos = GetStringCenterAlignXOffset(FONT_NORMAL, gText_BlenderMaxSpeedRecord, 144);
|
||||
|
||||
+29
-29
@@ -874,7 +874,7 @@ static const struct DigitObjUtilTemplate sDigitObjTemplates[] =
|
||||
.xDelta = 8,
|
||||
.x = 156,
|
||||
.y = 0,
|
||||
.spriteSheet = (void*) &sSpriteSheets[3],
|
||||
.spriteSheet = (void *) &sSpriteSheets[3],
|
||||
.spritePal = &sSpritePals[2],
|
||||
},
|
||||
{ // Seconds
|
||||
@@ -886,7 +886,7 @@ static const struct DigitObjUtilTemplate sDigitObjTemplates[] =
|
||||
.xDelta = 8,
|
||||
.x = 180,
|
||||
.y = 0,
|
||||
.spriteSheet = (void*) &sSpriteSheets[3],
|
||||
.spriteSheet = (void *) &sSpriteSheets[3],
|
||||
.spritePal = &sSpritePals[2],
|
||||
},
|
||||
{ // 1/60ths of a second
|
||||
@@ -898,7 +898,7 @@ static const struct DigitObjUtilTemplate sDigitObjTemplates[] =
|
||||
.xDelta = 8,
|
||||
.x = 204,
|
||||
.y = 0,
|
||||
.spriteSheet = (void*) &sSpriteSheets[3],
|
||||
.spriteSheet = (void *) &sSpriteSheets[3],
|
||||
.spritePal = &sSpritePals[2],
|
||||
}
|
||||
};
|
||||
@@ -1235,7 +1235,7 @@ static s32 ShowGameDisplay(void)
|
||||
gPaletteFade.bufferTransferDisabled = TRUE;
|
||||
break;
|
||||
case 7:
|
||||
LoadPalette(gBerryCrush_Crusher_Pal, 0, 0x180);
|
||||
LoadPalette(gBerryCrush_Crusher_Pal, BG_PLTT_ID(0), 12 * PLTT_SIZE_4BPP);
|
||||
CopyToBgTilemapBuffer(1, sCrusherTop_Tilemap, 0, 0);
|
||||
CopyToBgTilemapBuffer(2, sContainerCap_Tilemap, 0, 0);
|
||||
CopyToBgTilemapBuffer(3, sBg_Tilemap, 0, 0);
|
||||
@@ -1751,8 +1751,8 @@ static bool32 OpenResultsWindow(struct BerryCrushGame *game, struct BerryCrushGa
|
||||
FillWindowPixelBuffer(gfx->resultsWindowId, PIXEL_FILL(0));
|
||||
break;
|
||||
case 2:
|
||||
LoadUserWindowBorderGfx_(gfx->resultsWindowId, 541, 208);
|
||||
DrawStdFrameWithCustomTileAndPalette(gfx->resultsWindowId, 0, 541, 13);
|
||||
LoadUserWindowBorderGfx_(gfx->resultsWindowId, 541, BG_PLTT_ID(13));
|
||||
DrawStdFrameWithCustomTileAndPalette(gfx->resultsWindowId, FALSE, 541, 13);
|
||||
break;
|
||||
case 3:
|
||||
playerCountIdx = game->playerCount - 2;
|
||||
@@ -1788,7 +1788,7 @@ static bool32 OpenResultsWindow(struct BerryCrushGame *game, struct BerryCrushGa
|
||||
|
||||
static void CloseResultsWindow(struct BerryCrushGame *game)
|
||||
{
|
||||
ClearStdWindowAndFrameToTransparent(game->gfx.resultsWindowId, 1);
|
||||
ClearStdWindowAndFrameToTransparent(game->gfx.resultsWindowId, TRUE);
|
||||
RemoveWindow(game->gfx.resultsWindowId);
|
||||
DrawPlayerNameWindows(game);
|
||||
}
|
||||
@@ -1809,8 +1809,8 @@ static void Task_ShowRankings(u8 taskId)
|
||||
tWindowId = AddWindow(&sWindowTemplate_Rankings);
|
||||
PutWindowTilemap(tWindowId);
|
||||
FillWindowPixelBuffer(tWindowId, PIXEL_FILL(0));
|
||||
LoadUserWindowBorderGfx_(tWindowId, 541, 208);
|
||||
DrawStdFrameWithCustomTileAndPalette(tWindowId, 0, 541, 13);
|
||||
LoadUserWindowBorderGfx_(tWindowId, 541, BG_PLTT_ID(13));
|
||||
DrawStdFrameWithCustomTileAndPalette(tWindowId, FALSE, 541, 13);
|
||||
break;
|
||||
case 1:
|
||||
// Print header text
|
||||
@@ -1849,12 +1849,12 @@ static void Task_ShowRankings(u8 taskId)
|
||||
else
|
||||
return;
|
||||
case 3:
|
||||
ClearStdWindowAndFrameToTransparent(tWindowId, 1);
|
||||
ClearStdWindowAndFrameToTransparent(tWindowId, TRUE);
|
||||
ClearWindowTilemap(tWindowId);
|
||||
RemoveWindow(tWindowId);
|
||||
DestroyTask(taskId);
|
||||
EnableBothScriptContexts();
|
||||
ScriptContext2_Disable();
|
||||
ScriptContext_Enable();
|
||||
UnlockPlayerFieldControls();
|
||||
tState = 0;
|
||||
return;
|
||||
}
|
||||
@@ -1865,7 +1865,7 @@ void ShowBerryCrushRankings(void)
|
||||
{
|
||||
u8 taskId;
|
||||
|
||||
ScriptContext2_Enable();
|
||||
LockPlayerFieldControls();
|
||||
taskId = CreateTask(Task_ShowRankings, 0);
|
||||
gTasks[taskId].tPressingSpeeds(0) = gSaveBlock2Ptr->berryCrush.pressingSpeeds[0];
|
||||
gTasks[taskId].tPressingSpeeds(1) = gSaveBlock2Ptr->berryCrush.pressingSpeeds[1];
|
||||
@@ -1885,9 +1885,9 @@ static void HideTimer(struct BerryCrushGame_Gfx *gfx)
|
||||
{
|
||||
gfx->timerSprites[0]->invisible = TRUE;
|
||||
gfx->timerSprites[1]->invisible = TRUE;
|
||||
DigitObjUtil_HideOrShow(2, 1);
|
||||
DigitObjUtil_HideOrShow(1, 1);
|
||||
DigitObjUtil_HideOrShow(0, 1);
|
||||
DigitObjUtil_HideOrShow(2, TRUE);
|
||||
DigitObjUtil_HideOrShow(1, TRUE);
|
||||
DigitObjUtil_HideOrShow(0, TRUE);
|
||||
}
|
||||
|
||||
static void CreatePlayerNameWindows(struct BerryCrushGame *game)
|
||||
@@ -2254,15 +2254,15 @@ static u32 Cmd_PrintMessage(struct BerryCrushGame *game, u8 *args)
|
||||
switch (game->cmdState)
|
||||
{
|
||||
case 0:
|
||||
DrawDialogueFrame(0, 0);
|
||||
DrawDialogueFrame(0, FALSE);
|
||||
if (args[1] & F_MSG_EXPAND)
|
||||
{
|
||||
StringExpandPlaceholders(gStringVar4, sMessages[args[0]]);
|
||||
AddTextPrinterParameterized2(0, FONT_NORMAL, gStringVar4, game->textSpeed, 0, 2, 1, 3);
|
||||
AddTextPrinterParameterized2(0, FONT_NORMAL, gStringVar4, game->textSpeed, 0, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddTextPrinterParameterized2(0, FONT_NORMAL, sMessages[args[0]], game->textSpeed, 0, 2, 1, 3);
|
||||
AddTextPrinterParameterized2(0, FONT_NORMAL, sMessages[args[0]], game->textSpeed, 0, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
|
||||
}
|
||||
CopyWindowToVram(0, COPYWIN_FULL);
|
||||
break;
|
||||
@@ -2282,7 +2282,7 @@ static u32 Cmd_PrintMessage(struct BerryCrushGame *game, u8 *args)
|
||||
break;
|
||||
case 3:
|
||||
if (args[1] & F_MSG_CLEAR)
|
||||
ClearDialogWindowAndFrame(0, 1);
|
||||
ClearDialogWindowAndFrame(0, TRUE);
|
||||
RunOrScheduleCommand(game->nextCmd, SCHEDULE_CMD, NULL);
|
||||
game->cmdState = args[4];
|
||||
return 0;
|
||||
@@ -2402,7 +2402,7 @@ static u32 Cmd_WaitForOthersToPickBerries(struct BerryCrushGame *game, u8 *args)
|
||||
game->targetDepth = MathUtil_Div32(Q_24_8(game->targetAPresses), Q_24_8(32));
|
||||
break;
|
||||
case 5:
|
||||
ClearDialogWindowAndFrame(0, 1);
|
||||
ClearDialogWindowAndFrame(0, TRUE);
|
||||
RunOrScheduleCommand(CMD_DROP_BERRIES, SCHEDULE_CMD, NULL);
|
||||
game->gameState = STATE_DROP_BERRIES;
|
||||
game->cmdState = 0;
|
||||
@@ -3241,8 +3241,8 @@ static u32 Cmd_SaveGame(struct BerryCrushGame *game, u8 *args)
|
||||
case 2:
|
||||
if (!IsLinkTaskFinished())
|
||||
return 0;
|
||||
DrawDialogueFrame(0, 0);
|
||||
AddTextPrinterParameterized2(0, FONT_NORMAL, gText_SavingDontTurnOffPower, 0, 0, 2, 1, 3);
|
||||
DrawDialogueFrame(0, FALSE);
|
||||
AddTextPrinterParameterized2(0, FONT_NORMAL, gText_SavingDontTurnOffPower, 0, 0, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
|
||||
CopyWindowToVram(0, COPYWIN_FULL);
|
||||
CreateTask(Task_LinkFullSave, 0);
|
||||
break;
|
||||
@@ -3295,7 +3295,7 @@ static u32 Cmd_AskPlayAgain(struct BerryCrushGame *game, u8 *args)
|
||||
}
|
||||
|
||||
// Close Yes/No and start communication
|
||||
ClearDialogWindowAndFrame(0, 1);
|
||||
ClearDialogWindowAndFrame(0, TRUE);
|
||||
SetPrintMessageArgs(args, MSG_COMM_STANDBY, 0, 0, 0);
|
||||
game->nextCmd = CMD_COMM_PLAY_AGAIN;
|
||||
RunOrScheduleCommand(CMD_PRINT_MSG, SCHEDULE_CMD, NULL);
|
||||
@@ -3367,7 +3367,7 @@ static u32 Cmd_PlayAgain(struct BerryCrushGame *game, u8 *args)
|
||||
return 0;
|
||||
break;
|
||||
case 2:
|
||||
ClearDialogWindowAndFrame(0, 1);
|
||||
ClearDialogWindowAndFrame(0, TRUE);
|
||||
ResetCrusherPos(game);
|
||||
BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK);
|
||||
UpdatePaletteFade();
|
||||
@@ -3389,11 +3389,11 @@ static u32 Cmd_StopGame(struct BerryCrushGame *game, u8 *args)
|
||||
switch (game->cmdState)
|
||||
{
|
||||
case 0:
|
||||
DrawDialogueFrame(0, 0);
|
||||
DrawDialogueFrame(0, FALSE);
|
||||
if (game->playAgainState == PLAY_AGAIN_NO_BERRIES)
|
||||
AddTextPrinterParameterized2(0, FONT_NORMAL, sMessages[MSG_NO_BERRIES], game->textSpeed, 0, 2, 1, 3);
|
||||
AddTextPrinterParameterized2(0, FONT_NORMAL, sMessages[MSG_NO_BERRIES], game->textSpeed, 0, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
|
||||
else
|
||||
AddTextPrinterParameterized2(0, FONT_NORMAL, sMessages[MSG_DROPPED], game->textSpeed, 0, 2, 1, 3);
|
||||
AddTextPrinterParameterized2(0, FONT_NORMAL, sMessages[MSG_DROPPED], game->textSpeed, 0, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
|
||||
CopyWindowToVram(0, COPYWIN_FULL);
|
||||
break;
|
||||
case 1:
|
||||
@@ -3428,7 +3428,7 @@ static u32 Cmd_CloseLink(struct BerryCrushGame *game, u8 *args)
|
||||
SetCloseLinkCallback();
|
||||
break;
|
||||
case 2:
|
||||
if (gReceivedRemoteLinkPlayers != 0)
|
||||
if (gReceivedRemoteLinkPlayers)
|
||||
return 0;
|
||||
game->nextCmd = CMD_QUIT;
|
||||
RunOrScheduleCommand(CMD_HIDE_GAME, SCHEDULE_CMD, NULL);
|
||||
|
||||
+2
-1
@@ -4,6 +4,7 @@
|
||||
#include "event_data.h"
|
||||
#include "load_save.h"
|
||||
#include "menu.h"
|
||||
#include "palette.h"
|
||||
#include "string_util.h"
|
||||
#include "strings.h"
|
||||
#include "text.h"
|
||||
@@ -228,7 +229,7 @@ void DisplayBerryPowderVendorMenu(void)
|
||||
sBerryPowderVendorWindowId = AddWindow(&template);
|
||||
FillWindowPixelBuffer(sBerryPowderVendorWindowId, PIXEL_FILL(0));
|
||||
PutWindowTilemap(sBerryPowderVendorWindowId);
|
||||
LoadUserWindowBorderGfx_(sBerryPowderVendorWindowId, 0x21D, 0xD0);
|
||||
LoadUserWindowBorderGfx_(sBerryPowderVendorWindowId, 0x21D, BG_PLTT_ID(13));
|
||||
DrawPlayerPowderAmount(sBerryPowderVendorWindowId, 0x21D, 13, GetBerryPowder());
|
||||
}
|
||||
|
||||
|
||||
@@ -276,7 +276,7 @@ static bool8 InitBerryTagScreen(void)
|
||||
gMain.state++;
|
||||
break;
|
||||
case 14:
|
||||
BlendPalettes(PALETTES_ALL, 0x10, 0);
|
||||
BlendPalettes(PALETTES_ALL, 0x10, RGB_BLACK);
|
||||
gMain.state++;
|
||||
break;
|
||||
case 15:
|
||||
@@ -346,7 +346,7 @@ static bool8 LoadBerryTagGfx(void)
|
||||
sBerryTag->gfxState++;
|
||||
break;
|
||||
case 4:
|
||||
LoadCompressedPalette(gBerryCheck_Pal, 0, 0xC0);
|
||||
LoadCompressedPalette(gBerryCheck_Pal, BG_PLTT_ID(0), 6 * PLTT_SIZE_4BPP);
|
||||
sBerryTag->gfxState++;
|
||||
break;
|
||||
case 5:
|
||||
@@ -367,7 +367,7 @@ static void HandleInitWindows(void)
|
||||
|
||||
InitWindows(sWindowTemplates);
|
||||
DeactivateAllTextPrinters();
|
||||
LoadPalette(sFontPalette, 0xF0, 0x20);
|
||||
LoadPalette(sFontPalette, BG_PLTT_ID(15), PLTT_SIZE_4BPP);
|
||||
for (i = 0; i < ARRAY_COUNT(sWindowTemplates) - 1; i++)
|
||||
PutWindowTilemap(i);
|
||||
ScheduleBgCopyTilemapToVram(0);
|
||||
|
||||
+2
-2
@@ -88,7 +88,7 @@ u16 FontFunc_Braille(struct TextPrinter *textPrinter)
|
||||
subStruct->fontId = *textPrinter->printerTemplate.currentChar;
|
||||
textPrinter->printerTemplate.currentChar++;
|
||||
return RENDER_REPEAT;
|
||||
case EXT_CTRL_CODE_RESET_SIZE:
|
||||
case EXT_CTRL_CODE_RESET_FONT:
|
||||
return RENDER_REPEAT;
|
||||
case EXT_CTRL_CODE_PAUSE:
|
||||
textPrinter->delayCounter = *textPrinter->printerTemplate.currentChar++;
|
||||
@@ -109,7 +109,7 @@ u16 FontFunc_Braille(struct TextPrinter *textPrinter)
|
||||
case EXT_CTRL_CODE_ESCAPE:
|
||||
char_ = *++textPrinter->printerTemplate.currentChar;
|
||||
break;
|
||||
case EXT_CTRL_CODE_SHIFT_TEXT:
|
||||
case EXT_CTRL_CODE_SHIFT_RIGHT:
|
||||
textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x + *textPrinter->printerTemplate.currentChar++;
|
||||
return RENDER_REPEAT;
|
||||
case EXT_CTRL_CODE_SHIFT_DOWN:
|
||||
|
||||
@@ -86,7 +86,7 @@ void DoBrailleDigEffect(void)
|
||||
DrawWholeMapView();
|
||||
PlaySE(SE_BANG);
|
||||
FlagSet(FLAG_SYS_BRAILLE_DIG);
|
||||
ScriptContext2_Disable();
|
||||
UnlockPlayerFieldControls();
|
||||
}
|
||||
|
||||
bool8 CheckRelicanthWailord(void)
|
||||
@@ -152,7 +152,7 @@ static void Task_SealedChamberShakingEffect(u8 taskId)
|
||||
if (task->tShakeCounter == task->tNumShakes)
|
||||
{
|
||||
DestroyTask(taskId);
|
||||
EnableBothScriptContexts();
|
||||
ScriptContext_Enable();
|
||||
InstallCameraPanAheadCallback();
|
||||
}
|
||||
}
|
||||
@@ -213,7 +213,7 @@ static void DoBrailleRegirockEffect(void)
|
||||
DrawWholeMapView();
|
||||
PlaySE(SE_BANG);
|
||||
FlagSet(FLAG_SYS_REGIROCK_PUZZLE_COMPLETED);
|
||||
ScriptContext2_Disable();
|
||||
UnlockPlayerFieldControls();
|
||||
}
|
||||
|
||||
bool8 ShouldDoBrailleRegisteelEffect(void)
|
||||
@@ -252,7 +252,7 @@ static void DoBrailleRegisteelEffect(void)
|
||||
DrawWholeMapView();
|
||||
PlaySE(SE_BANG);
|
||||
FlagSet(FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED);
|
||||
ScriptContext2_Disable();
|
||||
UnlockPlayerFieldControls();
|
||||
}
|
||||
|
||||
// theory: another commented out DoBrailleWait and Task_BrailleWait.
|
||||
|
||||
+9
-8
@@ -202,7 +202,7 @@ static const struct OamData sOam_Cable =
|
||||
.paletteNum = 0,
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate sSpriteTemplate_CableCar[] =
|
||||
static const struct SpriteTemplate sSpriteTemplates_CableCar[] =
|
||||
{
|
||||
{
|
||||
.tileTag = TAG_CABLE_CAR,
|
||||
@@ -224,7 +224,8 @@ static const struct SpriteTemplate sSpriteTemplate_CableCar[] =
|
||||
},
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate sSpriteTemplate_Cable = {
|
||||
static const struct SpriteTemplate sSpriteTemplate_Cable =
|
||||
{
|
||||
.tileTag = TAG_CABLE,
|
||||
.paletteTag = TAG_CABLE_CAR,
|
||||
.oam = &sOam_Cable,
|
||||
@@ -245,7 +246,7 @@ static void Task_LoadCableCar(u8 taskId)
|
||||
|
||||
void CableCar(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
LockPlayerFieldControls();
|
||||
CreateTask(Task_LoadCableCar, 1);
|
||||
BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB(0, 0, 0));
|
||||
}
|
||||
@@ -306,7 +307,7 @@ static void CB2_LoadCableCar(void)
|
||||
case 3:
|
||||
if (!FreeTempTileDataBuffersIfPossible())
|
||||
{
|
||||
LoadPalette(gCableCarBg_Pal, 0, 0x80);
|
||||
LoadPalette(gCableCarBg_Pal, BG_PLTT_ID(0), 4 * PLTT_SIZE_4BPP);
|
||||
gMain.state++;
|
||||
}
|
||||
break;
|
||||
@@ -836,12 +837,12 @@ static void CreateCableCarSprites(void)
|
||||
gSprites[spriteId].sYPos = 73;
|
||||
}
|
||||
// Create car sprite
|
||||
spriteId = CreateSprite(&sSpriteTemplate_CableCar[0], 176, 43, 0x67);
|
||||
spriteId = CreateSprite(&sSpriteTemplates_CableCar[0], 176, 43, 0x67);
|
||||
gSprites[spriteId].x2 = gSprites[spriteId].y2 = 32;
|
||||
gSprites[spriteId].sXPos = 176;
|
||||
gSprites[spriteId].sYPos = 43;
|
||||
// Create door sprite
|
||||
spriteId = CreateSprite(&sSpriteTemplate_CableCar[1], 200, 99, 0x65);
|
||||
spriteId = CreateSprite(&sSpriteTemplates_CableCar[1], 200, 99, 0x65);
|
||||
gSprites[spriteId].x2 = 8;
|
||||
gSprites[spriteId].y2 = 4;
|
||||
gSprites[spriteId].sXPos = 200;
|
||||
@@ -864,12 +865,12 @@ static void CreateCableCarSprites(void)
|
||||
gSprites[spriteId].sYPos = 39;
|
||||
}
|
||||
// Create car sprite
|
||||
spriteId = CreateSprite(&sSpriteTemplate_CableCar[0], 104, 9, 0x67);
|
||||
spriteId = CreateSprite(&sSpriteTemplates_CableCar[0], 104, 9, 0x67);
|
||||
gSprites[spriteId].x2 = gSprites[spriteId].y2 = 32;
|
||||
gSprites[spriteId].sXPos = 104;
|
||||
gSprites[spriteId].sYPos = 9;
|
||||
// Create door sprite
|
||||
spriteId = CreateSprite(&sSpriteTemplate_CableCar[1], 128, 65, 0x65);
|
||||
spriteId = CreateSprite(&sSpriteTemplates_CableCar[1], 128, 65, 0x65);
|
||||
gSprites[spriteId].x2 = 8;
|
||||
gSprites[spriteId].y2 = 4;
|
||||
gSprites[spriteId].sXPos = 128;
|
||||
|
||||
+18
-18
@@ -97,7 +97,7 @@ static void PrintNumPlayersInLink(u16 windowId, u32 numPlayers)
|
||||
u8 xPos;
|
||||
|
||||
ConvertIntToDecimalStringN(gStringVar1, numPlayers, STR_CONV_MODE_LEFT_ALIGN, 1);
|
||||
SetStandardWindowBorderStyle(windowId, 0);
|
||||
SetStandardWindowBorderStyle(windowId, FALSE);
|
||||
StringExpandPlaceholders(gStringVar4, gText_NumPlayerLink);
|
||||
xPos = GetStringCenterAlignXOffset(FONT_NORMAL, gStringVar4, 88);
|
||||
AddTextPrinterParameterized(windowId, FONT_NORMAL, gStringVar4, xPos, 1, TEXT_SKIP_DRAW, NULL);
|
||||
@@ -486,7 +486,7 @@ static void FinishLinkup(u16 *linkupStatus, u32 taskId)
|
||||
{
|
||||
// Successful battle tower linkup
|
||||
ClearLinkPlayerCountWindow(gTasks[taskId].tWindowId);
|
||||
EnableBothScriptContexts();
|
||||
ScriptContext_Enable();
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
@@ -494,7 +494,7 @@ static void FinishLinkup(u16 *linkupStatus, u32 taskId)
|
||||
{
|
||||
// Successful linkup
|
||||
ClearLinkPlayerCountWindow(gTasks[taskId].tWindowId);
|
||||
EnableBothScriptContexts();
|
||||
ScriptContext_Enable();
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
@@ -531,7 +531,7 @@ static void Task_StopLinkup(u8 taskId)
|
||||
if (!gReceivedRemoteLinkPlayers)
|
||||
{
|
||||
ClearLinkPlayerCountWindow(gTasks[taskId].tWindowId);
|
||||
EnableBothScriptContexts();
|
||||
ScriptContext_Enable();
|
||||
RemoveWindow(gTasks[taskId].tWindowId);
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
@@ -543,7 +543,7 @@ static void Task_LinkupFailed(u8 taskId)
|
||||
ClearLinkPlayerCountWindow(gTasks[taskId].tWindowId);
|
||||
StopFieldMessage();
|
||||
RemoveWindow(gTasks[taskId].tWindowId);
|
||||
EnableBothScriptContexts();
|
||||
ScriptContext_Enable();
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
|
||||
@@ -553,7 +553,7 @@ static void Task_LinkupConnectionError(u8 taskId)
|
||||
ClearLinkPlayerCountWindow(gTasks[taskId].tWindowId);
|
||||
RemoveWindow(gTasks[taskId].tWindowId);
|
||||
HideFieldMessageBox();
|
||||
EnableBothScriptContexts();
|
||||
ScriptContext_Enable();
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
|
||||
@@ -688,13 +688,13 @@ static void Task_ValidateMixingGameLanguage(u8 taskId)
|
||||
return;
|
||||
}
|
||||
}
|
||||
EnableBothScriptContexts();
|
||||
ScriptContext_Enable();
|
||||
DestroyTask(taskId);
|
||||
break;
|
||||
case 1:
|
||||
if (!gReceivedRemoteLinkPlayers)
|
||||
{
|
||||
EnableBothScriptContexts();
|
||||
ScriptContext_Enable();
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
break;
|
||||
@@ -833,7 +833,7 @@ static void SetLinkBattleTypeFlags(int linkService)
|
||||
|
||||
static void Task_StartWiredCableClubBattle(u8 taskId)
|
||||
{
|
||||
struct Task* task = &gTasks[taskId];
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
switch (task->tState)
|
||||
{
|
||||
@@ -879,7 +879,7 @@ static void Task_StartWiredCableClubBattle(u8 taskId)
|
||||
static void Task_StartWirelessCableClubBattle(u8 taskId)
|
||||
{
|
||||
int i;
|
||||
s16* data = gTasks[taskId].data;
|
||||
s16 *data = gTasks[taskId].data;
|
||||
|
||||
switch (tState)
|
||||
{
|
||||
@@ -1042,7 +1042,7 @@ void ExitLinkRoom(void)
|
||||
// Note: gSpecialVar_0x8005 contains the id of the seat the player entered
|
||||
static void Task_EnterCableClubSeat(u8 taskId)
|
||||
{
|
||||
struct Task* task = &gTasks[taskId];
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
switch (task->tState)
|
||||
{
|
||||
@@ -1080,7 +1080,7 @@ static void Task_EnterCableClubSeat(u8 taskId)
|
||||
SetLinkWaitingForScript();
|
||||
EraseFieldMessageBox(TRUE);
|
||||
DestroyTask(taskId);
|
||||
EnableBothScriptContexts();
|
||||
ScriptContext_Enable();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1089,7 +1089,7 @@ void CreateTask_EnterCableClubSeat(TaskFunc followupFunc)
|
||||
{
|
||||
u8 taskId = CreateTask(Task_EnterCableClubSeat, 80);
|
||||
SetTaskFuncWithFollowupFunc(taskId, Task_EnterCableClubSeat, followupFunc);
|
||||
ScriptContext1_Stop();
|
||||
ScriptContext_Stop();
|
||||
}
|
||||
|
||||
static void Task_StartWiredTrade(u8 taskId)
|
||||
@@ -1099,7 +1099,7 @@ static void Task_StartWiredTrade(u8 taskId)
|
||||
switch (task->tState)
|
||||
{
|
||||
case 0:
|
||||
ScriptContext2_Enable();
|
||||
LockPlayerFieldControls();
|
||||
FadeScreen(FADE_TO_BLACK, 0);
|
||||
ClearLinkCallback_2();
|
||||
task->tState++;
|
||||
@@ -1132,7 +1132,7 @@ static void Task_StartWirelessTrade(u8 taskId)
|
||||
switch (tState)
|
||||
{
|
||||
case 0:
|
||||
ScriptContext2_Enable();
|
||||
LockPlayerFieldControls();
|
||||
FadeScreen(FADE_TO_BLACK, 0);
|
||||
ClearLinkRfuCallback();
|
||||
tState++;
|
||||
@@ -1176,7 +1176,7 @@ static void CreateTask_StartWiredTrade(void)
|
||||
void Script_StartWiredTrade(void)
|
||||
{
|
||||
// CreateTask_StartWiredTrade();
|
||||
// ScriptContext1_Stop();
|
||||
// ScriptContext_Stop();
|
||||
}
|
||||
|
||||
void ColosseumPlayerSpotTriggered(void)
|
||||
@@ -1193,7 +1193,7 @@ void ColosseumPlayerSpotTriggered(void)
|
||||
static void CreateTask_EnterCableClubSeatNoFollowup(void)
|
||||
{
|
||||
u8 taskId = CreateTask(Task_EnterCableClubSeat, 80);
|
||||
ScriptContext1_Stop();
|
||||
ScriptContext_Stop();
|
||||
}
|
||||
|
||||
void Script_ShowLinkTrainerCard(void)
|
||||
@@ -1257,7 +1257,7 @@ static void Task_WaitExitToScript(u8 taskId)
|
||||
{
|
||||
if (!gReceivedRemoteLinkPlayers)
|
||||
{
|
||||
EnableBothScriptContexts();
|
||||
ScriptContext_Enable();
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ void CB2_InitClearSaveDataScreen(void)
|
||||
|
||||
static void Task_DoClearSaveDataScreenYesNo(u8 taskId)
|
||||
{
|
||||
DrawStdFrameWithCustomTileAndPalette(0, 0, 2, 14);
|
||||
DrawStdFrameWithCustomTileAndPalette(0, FALSE, 2, 14);
|
||||
AddTextPrinterParameterized(0, FONT_NORMAL, gText_ClearAllSaveData, 0, 1, 0, 0);
|
||||
CreateYesNoMenu(sClearSaveYesNo, 2, 14, 1);
|
||||
gTasks[taskId].func = Task_ClearSaveDataScreenYesNoChoice;
|
||||
@@ -95,7 +95,7 @@ static void Task_ClearSaveDataScreenYesNoChoice(u8 taskId)
|
||||
gTasks[taskId].func = Task_ClearSaveData;
|
||||
break;
|
||||
case 1:
|
||||
case -1:
|
||||
case MENU_B_PRESSED:
|
||||
PlaySE(SE_SELECT);
|
||||
DestroyTask(taskId);
|
||||
SetMainCallback2(CB2_FadeAndDoReset);
|
||||
@@ -204,6 +204,6 @@ static void InitClearSaveDataScreenWindows(void)
|
||||
InitWindows(sClearSaveTextWindow);
|
||||
DeactivateAllTextPrinters();
|
||||
FillWindowPixelBuffer(0, PIXEL_FILL(0));
|
||||
LoadWindowGfx(0, 0, 2, 224);
|
||||
LoadPalette(gStandardMenuPalette, 0xF0, 0x20);
|
||||
LoadWindowGfx(0, 0, 2, BG_PLTT_ID(14));
|
||||
LoadPalette(gStandardMenuPalette, BG_PLTT_ID(15), PLTT_SIZE_4BPP);
|
||||
}
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@
|
||||
#include "international_string_util.h"
|
||||
#include "constants/coins.h"
|
||||
|
||||
EWRAM_DATA u8 sCoinsWindowId = 0;
|
||||
static EWRAM_DATA u8 sCoinsWindowId = 0;
|
||||
|
||||
void PrintCoinsString(u32 coinAmount)
|
||||
{
|
||||
|
||||
+82
-77
@@ -93,7 +93,7 @@ static void Task_ContestReturnToField(u8);
|
||||
static void FieldCB_ContestReturnToField(void);
|
||||
static bool8 IsPlayerLinkLeader(void);
|
||||
static void PrintContestantTrainerName(u8);
|
||||
static void PrintContestantTrainerNameWithColor(u8 a0, u8 a1);
|
||||
static void PrintContestantTrainerNameWithColor(u8, u8);
|
||||
static void PrintContestantMonName(u8);
|
||||
static void PrintContestantMonNameWithColor(u8, u8);
|
||||
static u8 CreateJudgeSprite(void);
|
||||
@@ -352,7 +352,7 @@ EWRAM_DATA u16 gSpecialVar_ContestRank = 0;
|
||||
EWRAM_DATA u8 gNumLinkContestPlayers = 0;
|
||||
EWRAM_DATA u8 gHighestRibbonRank = 0;
|
||||
EWRAM_DATA struct ContestResources *gContestResources = NULL;
|
||||
EWRAM_DATA u8 sContestBgCopyFlags = 0;
|
||||
static EWRAM_DATA u8 sContestBgCopyFlags = 0;
|
||||
EWRAM_DATA struct ContestWinner gCurContestWinner = {0};
|
||||
EWRAM_DATA bool8 gCurContestWinnerIsForArtist = 0;
|
||||
EWRAM_DATA u8 gCurContestWinnerSaveIdx = 0;
|
||||
@@ -388,7 +388,7 @@ static const struct OamData sOam_SliderHeart =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(8x8),
|
||||
.x = 0,
|
||||
@@ -473,7 +473,7 @@ static const struct OamData sOam_NextTurn =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(32x8),
|
||||
.x = 0,
|
||||
@@ -525,6 +525,9 @@ static const struct SpriteTemplate sSpriteTemplates_NextTurn[CONTESTANT_COUNT] =
|
||||
}
|
||||
};
|
||||
|
||||
/* v-- Origin
|
||||
[0 +][1 ] 64x8
|
||||
*/
|
||||
static const struct Subsprite sSubsprites_NextTurn[] =
|
||||
{
|
||||
{
|
||||
@@ -625,7 +628,7 @@ static const struct SpriteTemplate sSpriteTemplate_ApplauseMeter =
|
||||
.callback = SpriteCallbackDummy
|
||||
};
|
||||
|
||||
const struct OamData sOam_Judge =
|
||||
static const struct OamData sOam_Judge =
|
||||
{
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
@@ -639,7 +642,7 @@ const struct OamData sOam_Judge =
|
||||
.paletteNum = 2,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate sSpriteTemplate_Judge =
|
||||
static const struct SpriteTemplate sSpriteTemplate_Judge =
|
||||
{
|
||||
.tileTag = TAG_JUDGE,
|
||||
.paletteTag = TAG_JUDGE,
|
||||
@@ -650,7 +653,7 @@ const struct SpriteTemplate sSpriteTemplate_Judge =
|
||||
.callback = SpriteCallbackDummy
|
||||
};
|
||||
|
||||
const struct CompressedSpriteSheet sSpriteSheet_Judge =
|
||||
static const struct CompressedSpriteSheet sSpriteSheet_Judge =
|
||||
{
|
||||
.data = gContestJudgeGfx,
|
||||
.size = 0x800,
|
||||
@@ -664,13 +667,13 @@ static const struct CompressedSpriteSheet sSpriteSheet_JudgeSymbols =
|
||||
.tag = TAG_JUDGE_SYMBOLS_GFX
|
||||
};
|
||||
|
||||
const struct CompressedSpritePalette sSpritePalette_JudgeSymbols =
|
||||
static const struct CompressedSpritePalette sSpritePalette_JudgeSymbols =
|
||||
{
|
||||
.data = gContestJudgeSymbolsPal,
|
||||
.tag = TAG_CONTEST_SYMBOLS_PAL
|
||||
};
|
||||
|
||||
const struct SpriteTemplate sSpriteTemplate_JudgeSpeechBubble =
|
||||
static const struct SpriteTemplate sSpriteTemplate_JudgeSpeechBubble =
|
||||
{
|
||||
.tileTag = TAG_JUDGE_SYMBOLS_GFX,
|
||||
.paletteTag = TAG_CONTEST_SYMBOLS_PAL,
|
||||
@@ -733,7 +736,7 @@ static const struct WindowTemplate sContestWindowTemplates[] =
|
||||
.tilemapTop = 0,
|
||||
.width = 12,
|
||||
.height = 2,
|
||||
.paletteNum = 0xF,
|
||||
.paletteNum = 15,
|
||||
.baseBlock = 0x200
|
||||
},
|
||||
[WIN_CONTESTANT1_NAME] = {
|
||||
@@ -742,7 +745,7 @@ static const struct WindowTemplate sContestWindowTemplates[] =
|
||||
.tilemapTop = 5,
|
||||
.width = 12,
|
||||
.height = 2,
|
||||
.paletteNum = 0xF,
|
||||
.paletteNum = 15,
|
||||
.baseBlock = 0x218
|
||||
},
|
||||
[WIN_CONTESTANT2_NAME] = {
|
||||
@@ -751,7 +754,7 @@ static const struct WindowTemplate sContestWindowTemplates[] =
|
||||
.tilemapTop = 10,
|
||||
.width = 12,
|
||||
.height = 2,
|
||||
.paletteNum = 0xF,
|
||||
.paletteNum = 15,
|
||||
.baseBlock = 0x230
|
||||
},
|
||||
[WIN_CONTESTANT3_NAME] = {
|
||||
@@ -760,7 +763,7 @@ static const struct WindowTemplate sContestWindowTemplates[] =
|
||||
.tilemapTop = 15,
|
||||
.width = 12,
|
||||
.height = 2,
|
||||
.paletteNum = 0xF,
|
||||
.paletteNum = 15,
|
||||
.baseBlock = 0x248
|
||||
},
|
||||
[WIN_GENERAL_TEXT] = {
|
||||
@@ -769,7 +772,7 @@ static const struct WindowTemplate sContestWindowTemplates[] =
|
||||
.tilemapTop = 15,
|
||||
.width = 17,
|
||||
.height = 4,
|
||||
.paletteNum = 0xF,
|
||||
.paletteNum = 15,
|
||||
.baseBlock = 0x260
|
||||
},
|
||||
[WIN_MOVE0] = {
|
||||
@@ -778,7 +781,7 @@ static const struct WindowTemplate sContestWindowTemplates[] =
|
||||
.tilemapTop = 31,
|
||||
.width = 9,
|
||||
.height = 2,
|
||||
.paletteNum = 0xF,
|
||||
.paletteNum = 15,
|
||||
.baseBlock = 0x2A4
|
||||
},
|
||||
[WIN_MOVE1] = {
|
||||
@@ -787,7 +790,7 @@ static const struct WindowTemplate sContestWindowTemplates[] =
|
||||
.tilemapTop = 33,
|
||||
.width = 9,
|
||||
.height = 2,
|
||||
.paletteNum = 0xF,
|
||||
.paletteNum = 15,
|
||||
.baseBlock = 0x2B6
|
||||
},
|
||||
[WIN_MOVE2] = {
|
||||
@@ -796,7 +799,7 @@ static const struct WindowTemplate sContestWindowTemplates[] =
|
||||
.tilemapTop = 35,
|
||||
.width = 9,
|
||||
.height = 2,
|
||||
.paletteNum = 0xF,
|
||||
.paletteNum = 15,
|
||||
.baseBlock = 0x2C8
|
||||
},
|
||||
[WIN_MOVE3] = {
|
||||
@@ -805,7 +808,7 @@ static const struct WindowTemplate sContestWindowTemplates[] =
|
||||
.tilemapTop = 37,
|
||||
.width = 9,
|
||||
.height = 2,
|
||||
.paletteNum = 0xF,
|
||||
.paletteNum = 15,
|
||||
.baseBlock = 0x2DA
|
||||
},
|
||||
[WIN_SLASH] = {
|
||||
@@ -814,7 +817,7 @@ static const struct WindowTemplate sContestWindowTemplates[] =
|
||||
.tilemapTop = 31,
|
||||
.width = 1,
|
||||
.height = 2,
|
||||
.paletteNum = 0xF,
|
||||
.paletteNum = 15,
|
||||
.baseBlock = 0x2EC
|
||||
},
|
||||
[WIN_MOVE_DESCRIPTION] = {
|
||||
@@ -823,7 +826,7 @@ static const struct WindowTemplate sContestWindowTemplates[] =
|
||||
.tilemapTop = 35,
|
||||
.width = 18,
|
||||
.height = 4,
|
||||
.paletteNum = 0xF,
|
||||
.paletteNum = 15,
|
||||
.baseBlock = 0x2EE
|
||||
},
|
||||
DUMMY_WIN_TEMPLATE
|
||||
@@ -859,24 +862,24 @@ static const struct CompressedSpriteSheet sSpriteSheets_ContestantsTurnBlinkEffe
|
||||
static const struct SpritePalette sSpritePalettes_ContestantsTurnBlinkEffect[CONTESTANT_COUNT] =
|
||||
{
|
||||
{
|
||||
.data = (u16*)(gHeap + 0x1A0A4),
|
||||
.data = (u16 *)(gHeap + 0x1A0A4),
|
||||
.tag = TAG_BLINK_EFFECT_CONTESTANT0
|
||||
},
|
||||
{
|
||||
.data = (u16*)(gHeap + 0x1A0C4),
|
||||
.data = (u16 *)(gHeap + 0x1A0C4),
|
||||
.tag = TAG_BLINK_EFFECT_CONTESTANT1
|
||||
},
|
||||
{
|
||||
.data = (u16*)(gHeap + 0x1A0E4),
|
||||
.data = (u16 *)(gHeap + 0x1A0E4),
|
||||
.tag = TAG_BLINK_EFFECT_CONTESTANT2
|
||||
},
|
||||
{
|
||||
.data = (u16*)(gHeap + 0x1A104),
|
||||
.data = (u16 *)(gHeap + 0x1A104),
|
||||
.tag = TAG_BLINK_EFFECT_CONTESTANT3
|
||||
}
|
||||
};
|
||||
|
||||
const struct OamData sOam_ContestantsTurnBlinkEffect =
|
||||
static const struct OamData sOam_ContestantsTurnBlinkEffect =
|
||||
{
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_DOUBLE,
|
||||
@@ -891,13 +894,13 @@ const struct OamData sOam_ContestantsTurnBlinkEffect =
|
||||
.affineParam = 0,
|
||||
};
|
||||
|
||||
const union AffineAnimCmd sAffineAnim_ContestantsTurnBlinkEffect_0[] =
|
||||
static const union AffineAnimCmd sAffineAnim_ContestantsTurnBlinkEffect_0[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
|
||||
AFFINEANIMCMD_END
|
||||
};
|
||||
|
||||
const union AffineAnimCmd sAffineAnim_ContestantsTurnBlinkEffect_1[] =
|
||||
static const union AffineAnimCmd sAffineAnim_ContestantsTurnBlinkEffect_1[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(3, 3, 0, 15),
|
||||
AFFINEANIMCMD_FRAME(-3, -3, 0, 15),
|
||||
@@ -906,13 +909,13 @@ const union AffineAnimCmd sAffineAnim_ContestantsTurnBlinkEffect_1[] =
|
||||
AFFINEANIMCMD_END
|
||||
};
|
||||
|
||||
const union AffineAnimCmd *const sAffineAnims_ContestantsTurnBlinkEffect[] =
|
||||
static const union AffineAnimCmd *const sAffineAnims_ContestantsTurnBlinkEffect[] =
|
||||
{
|
||||
sAffineAnim_ContestantsTurnBlinkEffect_0,
|
||||
sAffineAnim_ContestantsTurnBlinkEffect_1
|
||||
};
|
||||
|
||||
const struct SpriteTemplate sSpriteTemplates_ContestantsTurnBlinkEffect[CONTESTANT_COUNT] =
|
||||
static const struct SpriteTemplate sSpriteTemplates_ContestantsTurnBlinkEffect[CONTESTANT_COUNT] =
|
||||
{
|
||||
{
|
||||
.tileTag = TAG_BLINK_EFFECT_CONTESTANT0,
|
||||
@@ -952,7 +955,7 @@ const struct SpriteTemplate sSpriteTemplates_ContestantsTurnBlinkEffect[CONTESTA
|
||||
}
|
||||
};
|
||||
|
||||
static const s8 gContestExcitementTable[CONTEST_CATEGORIES_COUNT][CONTEST_CATEGORIES_COUNT] =
|
||||
static const s8 sContestExcitementTable[CONTEST_CATEGORIES_COUNT][CONTEST_CATEGORIES_COUNT] =
|
||||
{
|
||||
[CONTEST_CATEGORY_COOL] = {
|
||||
[CONTEST_CATEGORY_COOL] = +1,
|
||||
@@ -1032,13 +1035,13 @@ void LoadContestBgAfterMoveAnim(void)
|
||||
LZDecompressVram(gContestAudienceGfx, (void *)(BG_SCREEN_ADDR(4)));
|
||||
CopyToBgTilemapBuffer(3, gContestAudienceTilemap, 0, 0);
|
||||
CopyBgTilemapBufferToVram(3);
|
||||
LoadCompressedPalette(gContestInterfaceAudiencePalette, 0, 0x200);
|
||||
LoadCompressedPalette(gContestInterfaceAudiencePalette, BG_PLTT_OFFSET, BG_PLTT_SIZE);
|
||||
LoadContestPalettes();
|
||||
for (i = 0; i < CONTESTANT_COUNT; i++)
|
||||
{
|
||||
u32 contestantWindowId = 5 + i;
|
||||
|
||||
LoadPalette(eContestTempSave.cachedWindowPalettes[contestantWindowId], 16 * (5 + gContestantTurnOrder[i]), sizeof((eContestTempSave.cachedWindowPalettes[contestantWindowId])));
|
||||
LoadPalette(eContestTempSave.cachedWindowPalettes[contestantWindowId], BG_PLTT_ID(5 + gContestantTurnOrder[i]), sizeof((eContestTempSave.cachedWindowPalettes[contestantWindowId])));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1073,11 +1076,11 @@ static void LoadContestPalettes(void)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
LoadPalette(sText_Pal, 0xf0, 0x20);
|
||||
FillPalette(RGB_BLACK, 0, 2);
|
||||
LoadPalette(sText_Pal, BG_PLTT_ID(15), PLTT_SIZE_4BPP);
|
||||
SetBackdropFromColor(RGB_BLACK);
|
||||
for (i = 10; i < 14; i++)
|
||||
LoadPalette(gPlttBufferUnfaded + 241, 240 + i, 2);
|
||||
FillPalette(RGB(31, 17, 31), 0xF3, 2);
|
||||
LoadPalette(gPlttBufferUnfaded + BG_PLTT_ID(15) + 1, BG_PLTT_ID(15) + i, PLTT_SIZEOF(1));
|
||||
FillPalette(RGB(31, 17, 31), BG_PLTT_ID(15) + 3, PLTT_SIZEOF(1));
|
||||
}
|
||||
|
||||
static void InitContestResources(void)
|
||||
@@ -1327,11 +1330,11 @@ static bool8 SetupContestGraphics(u8 *stateVar)
|
||||
DmaCopy32Defvars(3, gContestResources->contestBgTilemaps[2], eContestTempSave.savedJunk, sizeof(eContestTempSave.savedJunk));
|
||||
break;
|
||||
case 5:
|
||||
LoadCompressedPalette(gContestInterfaceAudiencePalette, 0, 0x200);
|
||||
CpuCopy32(gPlttBufferUnfaded + 128, tempPalette1, 16 * sizeof(u16));
|
||||
CpuCopy32(gPlttBufferUnfaded + (5 + gContestPlayerMonIndex) * 16, tempPalette2, 16 * sizeof(u16));
|
||||
CpuCopy32(tempPalette2, gPlttBufferUnfaded + 128, 16 * sizeof(u16));
|
||||
CpuCopy32(tempPalette1, gPlttBufferUnfaded + (5 + gContestPlayerMonIndex) * 16, 16 * sizeof(u16));
|
||||
LoadCompressedPalette(gContestInterfaceAudiencePalette, BG_PLTT_OFFSET, BG_PLTT_SIZE);
|
||||
CpuCopy32(gPlttBufferUnfaded + BG_PLTT_ID(8), tempPalette1, PLTT_SIZE_4BPP);
|
||||
CpuCopy32(gPlttBufferUnfaded + BG_PLTT_ID(5 + gContestPlayerMonIndex), tempPalette2, PLTT_SIZE_4BPP);
|
||||
CpuCopy32(tempPalette2, gPlttBufferUnfaded + BG_PLTT_ID(8), PLTT_SIZE_4BPP);
|
||||
CpuCopy32(tempPalette1, gPlttBufferUnfaded + BG_PLTT_ID(5 + gContestPlayerMonIndex), PLTT_SIZE_4BPP);
|
||||
DmaCopy32Defvars(3, gPlttBufferUnfaded, eContestTempSave.cachedWindowPalettes, sizeof(eContestTempSave.cachedWindowPalettes));
|
||||
LoadContestPalettes();
|
||||
break;
|
||||
@@ -1396,7 +1399,7 @@ static void Task_RaiseCurtainAtStart(u8 taskId)
|
||||
gTasks[taskId].data[0]++;
|
||||
break;
|
||||
case 1:
|
||||
*(s16*)&gBattle_BG1_Y += 7;
|
||||
*(s16 *)&gBattle_BG1_Y += 7;
|
||||
if ((s16)gBattle_BG1_Y <= DISPLAY_HEIGHT)
|
||||
break;
|
||||
gTasks[taskId].data[0]++;
|
||||
@@ -1582,7 +1585,7 @@ static void Task_HandleMoveSelectInput(u8 taskId)
|
||||
StringCopy(gDisplayedStringBattle, gText_AppealNumButItCantParticipate);
|
||||
ContestClearGeneralTextWindow();
|
||||
StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle);
|
||||
Contest_StartTextPrinter(gStringVar4, 0);
|
||||
Contest_StartTextPrinter(gStringVar4, FALSE);
|
||||
gBattle_BG0_Y = 0;
|
||||
gBattle_BG2_Y = 0;
|
||||
gTasks[taskId].func = Task_TryShowMoveSelectScreen;
|
||||
@@ -1814,7 +1817,7 @@ static void Task_DoAppeals(u8 taskId)
|
||||
else
|
||||
StringCopy(gStringVar2, sInvalidContestMoveNames[eContestantStatus[contestant].moveCategory]);
|
||||
StringExpandPlaceholders(gStringVar4, gText_MonAppealedWithMove);
|
||||
Contest_StartTextPrinter(gStringVar4, 1);
|
||||
Contest_StartTextPrinter(gStringVar4, TRUE);
|
||||
gTasks[taskId].tState = APPEALSTATE_WAIT_USED_MOVE_MSG;
|
||||
}
|
||||
return;
|
||||
@@ -2076,7 +2079,7 @@ static void Task_DoAppeals(u8 taskId)
|
||||
ContestClearGeneralTextWindow();
|
||||
StringCopy(gStringVar1, gContestMons[contestant].nickname);
|
||||
StringExpandPlaceholders(gStringVar4, gText_MonCantAppealNextTurn);
|
||||
Contest_StartTextPrinter(gStringVar4, 1);
|
||||
Contest_StartTextPrinter(gStringVar4, TRUE);
|
||||
}
|
||||
gTasks[taskId].tState = APPEALSTATE_WAIT_SKIP_NEXT_TURN_MSG;
|
||||
}
|
||||
@@ -2118,7 +2121,7 @@ static void Task_DoAppeals(u8 taskId)
|
||||
ContestClearGeneralTextWindow();
|
||||
StringCopy(gStringVar1, gContestMons[contestant].nickname);
|
||||
StringExpandPlaceholders(gStringVar4, gText_JudgeLookedAtMonExpectantly);
|
||||
Contest_StartTextPrinter(gStringVar4, 1);
|
||||
Contest_StartTextPrinter(gStringVar4, TRUE);
|
||||
DoJudgeSpeechBubble(JUDGE_SYMBOL_ONE_EXCLAMATION);
|
||||
gTasks[taskId].tCounter = 0;
|
||||
gTasks[taskId].tState = APPEALSTATE_WAIT_JUDGE_COMBO;
|
||||
@@ -2231,7 +2234,7 @@ static void Task_DoAppeals(u8 taskId)
|
||||
StringExpandPlaceholders(gStringVar4, gText_MonsXWentOverGreat);
|
||||
else
|
||||
StringExpandPlaceholders(gStringVar4, gText_MonsXGotTheCrowdGoing);
|
||||
Contest_StartTextPrinter(gStringVar4, 1);
|
||||
Contest_StartTextPrinter(gStringVar4, TRUE);
|
||||
gTasks[taskId].tCounter = 0;
|
||||
gTasks[taskId].data[11] = 0;
|
||||
if (r3 < 0)
|
||||
@@ -2753,8 +2756,8 @@ static void Task_ContestReturnToField(u8 taskId)
|
||||
|
||||
static void FieldCB_ContestReturnToField(void)
|
||||
{
|
||||
ScriptContext2_Disable();
|
||||
EnableBothScriptContexts();
|
||||
UnlockPlayerFieldControls();
|
||||
ScriptContext_Enable();
|
||||
}
|
||||
|
||||
static void TryPutPlayerLast(void)
|
||||
@@ -3097,7 +3100,7 @@ static u8 CreateJudgeSprite(void)
|
||||
u8 spriteId;
|
||||
|
||||
LoadCompressedSpriteSheet(&sSpriteSheet_Judge);
|
||||
LoadCompressedPalette(gContest2Pal, 0x110, 32);
|
||||
LoadCompressedPalette(gContest2Pal, OBJ_PLTT_ID(1), PLTT_SIZE_4BPP);
|
||||
spriteId = CreateSprite(&sSpriteTemplate_Judge, 112, 36, 30);
|
||||
gSprites[spriteId].oam.paletteNum = 1;
|
||||
gSprites[spriteId].callback = SpriteCallbackDummy;
|
||||
@@ -3126,7 +3129,7 @@ static u8 CreateContestantSprite(u16 species, u32 otId, u32 personality, u32 ind
|
||||
else
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[B_POSITION_PLAYER_LEFT], species, personality);
|
||||
|
||||
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x120, 0x20);
|
||||
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality), OBJ_PLTT_ID(2), PLTT_SIZE_4BPP);
|
||||
SetMultiuseSpriteTemplateToPokemon(species, B_POSITION_PLAYER_LEFT);
|
||||
|
||||
spriteId = CreateSprite(&gMultiuseSpriteTemplate, 0x70, GetBattlerSpriteFinal_Y(2, species, FALSE), 30);
|
||||
@@ -3186,14 +3189,14 @@ static u16 GetMoveEffectSymbolTileOffset(u16 move, u8 contestant)
|
||||
return offset;
|
||||
}
|
||||
|
||||
static void PrintContestMoveDescription(u16 a)
|
||||
static void PrintContestMoveDescription(u16 move)
|
||||
{
|
||||
u8 category;
|
||||
u16 categoryTile;
|
||||
u8 numHearts;
|
||||
|
||||
// The contest category icon is implemented as a 5x2 group of tiles.
|
||||
category = gContestMoves[a].contestCategory;
|
||||
category = gContestMoves[move].contestCategory;
|
||||
if (category == CONTEST_CATEGORY_COOL)
|
||||
categoryTile = 0x4040;
|
||||
else if (category == CONTEST_CATEGORY_BEAUTY)
|
||||
@@ -3209,27 +3212,27 @@ static void PrintContestMoveDescription(u16 a)
|
||||
ContestBG_FillBoxWithIncrementingTile(0, categoryTile + 0x10, 0x0b, 0x20, 0x05, 0x01, 0x11, 0x01);
|
||||
|
||||
// Appeal hearts
|
||||
if (gContestEffects[gContestMoves[a].effect].appeal == 0xFF)
|
||||
if (gContestEffects[gContestMoves[move].effect].appeal == 0xFF)
|
||||
numHearts = 0;
|
||||
else
|
||||
numHearts = gContestEffects[gContestMoves[a].effect].appeal / 10;
|
||||
numHearts = gContestEffects[gContestMoves[move].effect].appeal / 10;
|
||||
if (numHearts > MAX_CONTEST_MOVE_HEARTS)
|
||||
numHearts = MAX_CONTEST_MOVE_HEARTS;
|
||||
ContestBG_FillBoxWithTile(0, TILE_EMPTY_APPEAL_HEART, 0x15, 0x1f, MAX_CONTEST_MOVE_HEARTS, 0x01, 0x11);
|
||||
ContestBG_FillBoxWithTile(0, TILE_FILLED_APPEAL_HEART, 0x15, 0x1f, numHearts, 0x01, 0x11);
|
||||
|
||||
// Jam hearts
|
||||
if (gContestEffects[gContestMoves[a].effect].jam == 0xFF)
|
||||
if (gContestEffects[gContestMoves[move].effect].jam == 0xFF)
|
||||
numHearts = 0;
|
||||
else
|
||||
numHearts = gContestEffects[gContestMoves[a].effect].jam / 10;
|
||||
numHearts = gContestEffects[gContestMoves[move].effect].jam / 10;
|
||||
if (numHearts > MAX_CONTEST_MOVE_HEARTS)
|
||||
numHearts = MAX_CONTEST_MOVE_HEARTS;
|
||||
ContestBG_FillBoxWithTile(0, TILE_EMPTY_JAM_HEART, 0x15, 0x20, MAX_CONTEST_MOVE_HEARTS, 0x01, 0x11);
|
||||
ContestBG_FillBoxWithTile(0, TILE_FILLED_JAM_HEART, 0x15, 0x20, numHearts, 0x01, 0x11);
|
||||
|
||||
FillWindowPixelBuffer(WIN_MOVE_DESCRIPTION, PIXEL_FILL(0));
|
||||
Contest_PrintTextToBg0WindowStd(WIN_MOVE_DESCRIPTION, gContestEffectDescriptionPointers[gContestMoves[a].effect]);
|
||||
Contest_PrintTextToBg0WindowStd(WIN_MOVE_DESCRIPTION, gContestEffectDescriptionPointers[gContestMoves[move].effect]);
|
||||
Contest_PrintTextToBg0WindowStd(WIN_SLASH, gText_Slash);
|
||||
}
|
||||
|
||||
@@ -3666,7 +3669,7 @@ static void ContestPrintLinkStandby(void)
|
||||
gBattle_BG0_Y = 0;
|
||||
gBattle_BG2_Y = 0;
|
||||
ContestClearGeneralTextWindow();
|
||||
Contest_StartTextPrinter(gText_LinkStandby4, 0);
|
||||
Contest_StartTextPrinter(gText_LinkStandby4, FALSE);
|
||||
}
|
||||
|
||||
static void FillContestantWindowBgs(void)
|
||||
@@ -3997,7 +4000,7 @@ static void Task_StopFlashJudgeAttentionEye(u8 taskId)
|
||||
{
|
||||
gTasks[eContest.judgeAttentionTaskId].data[contestant * 4 + 0] = 0xFF;
|
||||
gTasks[eContest.judgeAttentionTaskId].data[contestant * 4 + 1] = 0;
|
||||
BlendPalette((eContest.prevTurnOrder[contestant] + 5) * 16 + 6, 2, 0, RGB(31, 31, 18));
|
||||
BlendPalette(BG_PLTT_ID(5 + eContest.prevTurnOrder[contestant]) + 6, 2, 0, RGB(31, 31, 18));
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
@@ -4021,7 +4024,7 @@ static void Task_FlashJudgeAttentionEye(u8 taskId)
|
||||
|| gTasks[taskId].data[offset + 0] == 0)
|
||||
gTasks[taskId].data[offset + 1] ^= 1;
|
||||
|
||||
BlendPalette((eContest.prevTurnOrder[i] + 5) * 16 + 6, 2, gTasks[taskId].data[offset + 0], RGB(31, 31, 18));
|
||||
BlendPalette(BG_PLTT_ID(5 + eContest.prevTurnOrder[i]) + 6, 2, gTasks[taskId].data[offset + 0], RGB(31, 31, 18));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4100,8 +4103,8 @@ static void Task_UnusedBlend(u8 taskId)
|
||||
|| gTasks[taskId].data[idx] == 0)
|
||||
gTasks[taskId].data[idx + 1] ^= 1;
|
||||
|
||||
BlendPalette((i + 5) * 16 + 10, 1, gTasks[taskId].data[idx + 0], RGB(31, 31, 18));
|
||||
BlendPalette((i + 5) * 16 + 12 + i, 1, gTasks[taskId].data[idx + 0], RGB(31, 31, 18));
|
||||
BlendPalette(BG_PLTT_ID(5 + i) + 10, 1, gTasks[taskId].data[idx + 0], RGB(31, 31, 18));
|
||||
BlendPalette(BG_PLTT_ID(5 + i) + 12 + i, 1, gTasks[taskId].data[idx + 0], RGB(31, 31, 18));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4414,7 +4417,7 @@ static void DrawContestantWindows(void)
|
||||
for (i = 0; i < CONTESTANT_COUNT; i++)
|
||||
{
|
||||
s32 windowId = i + 5;
|
||||
LoadPalette(eContestTempSave.cachedWindowPalettes[windowId], (gContestantTurnOrder[i] + 5) * 16, sizeof(eContestTempSave.cachedWindowPalettes[0]));
|
||||
LoadPalette(eContestTempSave.cachedWindowPalettes[windowId], BG_PLTT_ID(5 + gContestantTurnOrder[i]), sizeof(eContestTempSave.cachedWindowPalettes[0]));
|
||||
}
|
||||
DrawContestantWindowText();
|
||||
}
|
||||
@@ -4537,14 +4540,14 @@ static void CalculateAppealMoveImpact(u8 contestant)
|
||||
eContestantStatus[contestant].contestantAnimTarget = i;
|
||||
}
|
||||
|
||||
void SetContestantEffectStringID(u8 a, u8 b)
|
||||
void SetContestantEffectStringID(u8 contestant, u8 effectStringId)
|
||||
{
|
||||
eContestantStatus[a].effectStringId = b;
|
||||
eContestantStatus[contestant].effectStringId = effectStringId;
|
||||
}
|
||||
|
||||
void SetContestantEffectStringID2(u8 a, u8 b)
|
||||
void SetContestantEffectStringID2(u8 contestant, u8 effectStringId)
|
||||
{
|
||||
eContestantStatus[a].effectStringId2 = b;
|
||||
eContestantStatus[contestant].effectStringId2 = effectStringId;
|
||||
}
|
||||
|
||||
void SetStartledString(u8 contestant, u8 jam)
|
||||
@@ -4577,7 +4580,7 @@ static void PrintAppealMoveResultText(u8 contestant, u8 stringId)
|
||||
StringCopy(gStringVar3, gText_Contest_Fear);
|
||||
StringExpandPlaceholders(gStringVar4, sAppealResultTexts[stringId]);
|
||||
ContestClearGeneralTextWindow();
|
||||
Contest_StartTextPrinter(gStringVar4, 1);
|
||||
Contest_StartTextPrinter(gStringVar4, TRUE);
|
||||
}
|
||||
|
||||
void MakeContestantNervous(u8 p)
|
||||
@@ -4744,7 +4747,7 @@ static void UpdateApplauseMeter(void)
|
||||
|
||||
s8 Contest_GetMoveExcitement(u16 move)
|
||||
{
|
||||
return gContestExcitementTable[gSpecialVar_ContestCategory][gContestMoves[move].contestCategory];
|
||||
return sContestExcitementTable[gSpecialVar_ContestCategory][gContestMoves[move].contestCategory];
|
||||
}
|
||||
|
||||
static u8 StartApplauseOverflowAnimation(void)
|
||||
@@ -4769,7 +4772,7 @@ static void Task_ApplauseOverflowAnimation(u8 taskId)
|
||||
else
|
||||
gTasks[taskId].data[4]--;
|
||||
|
||||
BlendPalette(264 + gTasks[taskId].data[2] * 16, 1, gTasks[taskId].data[4], RGB_WHITE);
|
||||
BlendPalette(OBJ_PLTT_ID(gTasks[taskId].data[2]) + 8, 1, gTasks[taskId].data[4], RGB_WHITE);
|
||||
|
||||
// At the maximum or minimum blending, switch directions.
|
||||
if (gTasks[taskId].data[4] == 0 || gTasks[taskId].data[4] == 16)
|
||||
@@ -4779,7 +4782,7 @@ static void Task_ApplauseOverflowAnimation(u8 taskId)
|
||||
// Continue the animation until the applause meter is cleared.
|
||||
if (eContest.applauseLevel < 5)
|
||||
{
|
||||
BlendPalette(264 + gTasks[taskId].data[2] * 16, 1, 0, RGB_RED);
|
||||
BlendPalette(OBJ_PLTT_ID(gTasks[taskId].data[2]) + 8, 1, 0, RGB_RED);
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
@@ -4992,8 +4995,8 @@ static void Task_BlendAudienceBackground(u8 taskId)
|
||||
else
|
||||
gTasks[taskId].tBlendCoeff--;
|
||||
|
||||
BlendPalette(17, 1, gTasks[taskId].tBlendCoeff, gTasks[taskId].tBlendColor);
|
||||
BlendPalette(26, 1, gTasks[taskId].tBlendCoeff, gTasks[taskId].tBlendColor);
|
||||
BlendPalette(BG_PLTT_ID(1) + 1, 1, gTasks[taskId].tBlendCoeff, gTasks[taskId].tBlendColor);
|
||||
BlendPalette(BG_PLTT_ID(1) + 10, 1, gTasks[taskId].tBlendCoeff, gTasks[taskId].tBlendColor);
|
||||
|
||||
if (gTasks[taskId].tBlendCoeff == gTasks[taskId].tTargetBlendCoeff)
|
||||
{
|
||||
@@ -5317,7 +5320,7 @@ static void SetMoveSpecificAnimData(u8 contestant)
|
||||
switch (move)
|
||||
{
|
||||
case MOVE_CURSE:
|
||||
if (gBaseStats[species].type1 == TYPE_GHOST || gBaseStats[species].type2 == TYPE_GHOST)
|
||||
if (gSpeciesInfo[species].types[0] == TYPE_GHOST || gSpeciesInfo[species].types[1] == TYPE_GHOST)
|
||||
gAnimMoveTurn = 0;
|
||||
else
|
||||
gAnimMoveTurn = 1;
|
||||
@@ -5694,6 +5697,8 @@ static void SetContestLiveUpdateFlags(u8 contestant)
|
||||
}
|
||||
}
|
||||
|
||||
#define APPEAL_MOVES_END 0xFFFF
|
||||
|
||||
static void CalculateContestLiveUpdateData(void)
|
||||
{
|
||||
u8 loser;
|
||||
@@ -5758,7 +5763,7 @@ static void CalculateContestLiveUpdateData(void)
|
||||
appealMoves[i] = MOVE_NONE;
|
||||
numMoveUses[i] = 0;
|
||||
}
|
||||
appealMoves[CONTEST_NUM_APPEALS] = 0xFFFF;
|
||||
appealMoves[CONTEST_NUM_APPEALS] = APPEAL_MOVES_END;
|
||||
numMoveUses[CONTEST_NUM_APPEALS] = 0;
|
||||
|
||||
for (i = 0; i < CONTEST_NUM_APPEALS; i++)
|
||||
@@ -5787,7 +5792,7 @@ static void CalculateContestLiveUpdateData(void)
|
||||
moveCandidates[0] = appealMoves[0];
|
||||
mostUses = numMoveUses[0];
|
||||
numMoveCandidates = 0;
|
||||
for (i = 1; appealMoves[i] != 0xFFFF; i++)
|
||||
for (i = 1; appealMoves[i] != APPEAL_MOVES_END; i++)
|
||||
{
|
||||
if (mostUses < numMoveUses[i])
|
||||
{
|
||||
|
||||
@@ -223,7 +223,7 @@ static void ShowContestPainting(void)
|
||||
break;
|
||||
case 4:
|
||||
PrintContestPaintingCaption(gCurContestWinnerSaveIdx, gCurContestWinnerIsForArtist);
|
||||
LoadPalette(sBgPalette, 0, 1 * 2);
|
||||
SetBackdropFromPalette(sBgPalette);
|
||||
DmaClear32(3, PLTT, PLTT_SIZE);
|
||||
BeginFastPaletteFade(2);
|
||||
SetVBlankCallback(VBlankCB_ContestPainting);
|
||||
@@ -420,7 +420,7 @@ static void LoadContestPaintingFrame(u8 contestWinnerId, bool8 isForArtist)
|
||||
{
|
||||
u8 x, y;
|
||||
|
||||
LoadPalette(sPictureFramePalettes, 0, 0x100);
|
||||
LoadPalette(sPictureFramePalettes, BG_PLTT_ID(0), 8 * PLTT_SIZE_4BPP);
|
||||
if (isForArtist == TRUE)
|
||||
{
|
||||
// Load Artist's frame
|
||||
@@ -586,7 +586,7 @@ static void DoContestPaintingImageProcessing(u8 imageEffect)
|
||||
ApplyImageProcessingEffects(&gImageProcessingContext);
|
||||
ApplyImageProcessingQuantization(&gImageProcessingContext);
|
||||
ConvertImageProcessingToGBA(&gImageProcessingContext);
|
||||
LoadPalette(gContestPaintingMonPalette, 0x100, 0x200);
|
||||
LoadPalette(gContestPaintingMonPalette, OBJ_PLTT_ID(0), 16 * PLTT_SIZE_4BPP);
|
||||
}
|
||||
|
||||
static void CreateContestPaintingPicture(u8 contestWinnerId, bool8 isForArtist)
|
||||
|
||||
+33
-33
@@ -196,7 +196,7 @@ static const struct OamData sOamData_ResultsTextWindow =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(64x32),
|
||||
.x = 0,
|
||||
@@ -242,7 +242,7 @@ static const struct OamData sOamData_Confetti =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(8x8),
|
||||
.x = 0,
|
||||
@@ -365,7 +365,7 @@ static const struct OamData sOamData_WirelessIndicatorWindow =
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(16x16),
|
||||
.x = 0,
|
||||
@@ -455,8 +455,8 @@ static void LoadContestResultsBgGfx(void)
|
||||
CopyToBgTilemapBuffer(2, gContestResults_Interface_Tilemap, 0, 0);
|
||||
CopyToBgTilemapBuffer(0, gContestResults_WinnerBanner_Tilemap, 0, 0);
|
||||
LoadContestResultsTitleBarTilemaps();
|
||||
LoadCompressedPalette(gContestResults_Pal, 0, 0x200);
|
||||
LoadPalette(sResultsTextWindow_Pal, 0xF0, sizeof(sResultsTextWindow_Pal));
|
||||
LoadCompressedPalette(gContestResults_Pal, BG_PLTT_ID(0), 16 * PLTT_SIZE_4BPP);
|
||||
LoadPalette(sResultsTextWindow_Pal, BG_PLTT_ID(15), sizeof(sResultsTextWindow_Pal));
|
||||
|
||||
for (i = 0; i < CONTESTANT_COUNT; i++)
|
||||
{
|
||||
@@ -1092,9 +1092,9 @@ static void Task_FlashStarsAndHearts(u8 taskId)
|
||||
else if (gTasks[taskId].tCoeff == 0)
|
||||
gTasks[taskId].tDecreasing = FALSE;
|
||||
|
||||
BlendPalette(0x6B, 1, gTasks[taskId].tCoeff, RGB(30, 22, 11));
|
||||
BlendPalette(0x68, 1, gTasks[taskId].tCoeff, RGB_WHITE);
|
||||
BlendPalette(0x6E, 1, gTasks[taskId].tCoeff, RGB(30, 29, 29));
|
||||
BlendPalette(BG_PLTT_ID(6) + 11, 1, gTasks[taskId].tCoeff, RGB(30, 22, 11));
|
||||
BlendPalette(BG_PLTT_ID(6) + 8, 1, gTasks[taskId].tCoeff, RGB_WHITE);
|
||||
BlendPalette(BG_PLTT_ID(6) + 14, 1, gTasks[taskId].tCoeff, RGB(30, 29, 29));
|
||||
}
|
||||
|
||||
if (gTasks[taskId].tCoeff == 0)
|
||||
@@ -1143,7 +1143,7 @@ static void LoadAllContestMonIconPalettes(void)
|
||||
for (i = 0; i < CONTESTANT_COUNT; i++)
|
||||
{
|
||||
species = gContestMons[i].species;
|
||||
LoadPalette(gMonIconPalettes[gMonIconPaletteIndices[GetIconSpecies(species, 0)]], i * 0x10 + 0xA0, 0x20);
|
||||
LoadPalette(gMonIconPalettes[gMonIconPaletteIndices[GetIconSpecies(species, 0)]], BG_PLTT_ID(10 + i), PLTT_SIZE_4BPP);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1167,24 +1167,24 @@ static void TryCreateWirelessSprites(void)
|
||||
static s32 DrawResultsTextWindow(const u8 *text, u8 spriteId)
|
||||
{
|
||||
u16 windowId;
|
||||
int origWidth;
|
||||
int tileWidth;
|
||||
int strWidth;
|
||||
u8 *spriteTilePtrs[4];
|
||||
u8 *dst;
|
||||
|
||||
struct WindowTemplate windowTemplate;
|
||||
memset(&windowTemplate, 0, sizeof(windowTemplate));
|
||||
windowTemplate.width = 30;
|
||||
windowTemplate.width = DISPLAY_TILE_WIDTH;
|
||||
windowTemplate.height = 2;
|
||||
windowId = AddWindow(&windowTemplate);
|
||||
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
|
||||
|
||||
origWidth = GetStringWidth(FONT_NORMAL, text, 0);
|
||||
strWidth = (origWidth + 9) / 8;
|
||||
if (strWidth > 30)
|
||||
strWidth = 30;
|
||||
strWidth = GetStringWidth(FONT_NORMAL, text, 0);
|
||||
tileWidth = (strWidth + 9) / 8;
|
||||
if (tileWidth > DISPLAY_TILE_WIDTH)
|
||||
tileWidth = DISPLAY_TILE_WIDTH;
|
||||
|
||||
AddTextPrinterParameterized3(windowId, FONT_NORMAL, (strWidth * 8 - origWidth) / 2, 1, sContestLinkTextColors, TEXT_SKIP_DRAW, text);
|
||||
AddTextPrinterParameterized3(windowId, FONT_NORMAL, (tileWidth * 8 - strWidth) / 2, 1, sContestLinkTextColors, TEXT_SKIP_DRAW, text);
|
||||
{
|
||||
s32 i;
|
||||
struct Sprite *sprite;
|
||||
@@ -1196,7 +1196,7 @@ static s32 DrawResultsTextWindow(const u8 *text, u8 spriteId)
|
||||
spriteTilePtrs[0] = (u8 *)(sprite->oam.tileNum * 32 + OBJ_VRAM0);
|
||||
|
||||
for (i = 1; i < (int)ARRAY_COUNT(spriteTilePtrs); i++)
|
||||
spriteTilePtrs[i] = (void*)(gSprites[sprite->data[i - 1]].oam.tileNum * 32 + OBJ_VRAM0);
|
||||
spriteTilePtrs[i] = (void *)(gSprites[sprite->data[i - 1]].oam.tileNum * 32 + OBJ_VRAM0);
|
||||
|
||||
for (i = 0; i < (int)ARRAY_COUNT(spriteTilePtrs); i++)
|
||||
CpuFill32(0, spriteTilePtrs[i], 0x400);
|
||||
@@ -1207,7 +1207,7 @@ static s32 DrawResultsTextWindow(const u8 *text, u8 spriteId)
|
||||
CpuCopy32(src + 128, dst + 0x200, 0x20);
|
||||
CpuCopy32(src + 64, dst + 0x300, 0x20);
|
||||
|
||||
for (i = 0; i < strWidth; i++)
|
||||
for (i = 0; i < tileWidth; i++)
|
||||
{
|
||||
dst = &spriteTilePtrs[(i + 1) / 8][((i + 1) % 8) * 32];
|
||||
CpuCopy32(src + 192, dst, 0x20);
|
||||
@@ -1225,7 +1225,7 @@ static s32 DrawResultsTextWindow(const u8 *text, u8 spriteId)
|
||||
}
|
||||
RemoveWindow(windowId);
|
||||
|
||||
return (DISPLAY_WIDTH - (strWidth + 2) * 8) / 2;
|
||||
return (DISPLAY_WIDTH - (tileWidth + 2) * 8) / 2;
|
||||
}
|
||||
|
||||
static void CreateResultsTextWindowSprites(void)
|
||||
@@ -1561,7 +1561,7 @@ static void Task_HighlightWinnersBox(u8 taskId)
|
||||
if (++gTasks[taskId].data[11] == 1)
|
||||
{
|
||||
gTasks[taskId].data[11] = 0;
|
||||
BlendPalette(0x91, 1, gTasks[taskId].data[12], RGB(13, 28, 27));
|
||||
BlendPalette(BG_PLTT_ID(9) + 1, 1, gTasks[taskId].data[12], RGB(13, 28, 27));
|
||||
if (gTasks[taskId].data[13] == 0)
|
||||
{
|
||||
if (++gTasks[taskId].data[12] == 16)
|
||||
@@ -2129,7 +2129,7 @@ static void Task_StartContest(u8 taskId)
|
||||
|
||||
void StartContest(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
LockPlayerFieldControls();
|
||||
CreateTask(Task_StartContest, 10);
|
||||
BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK);
|
||||
}
|
||||
@@ -2150,7 +2150,7 @@ static void Task_StartShowContestResults(u8 taskId)
|
||||
|
||||
void ShowContestResults(void)
|
||||
{
|
||||
ScriptContext2_Enable();
|
||||
LockPlayerFieldControls();
|
||||
CreateTask(Task_StartShowContestResults, 10);
|
||||
BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK);
|
||||
}
|
||||
@@ -2163,7 +2163,7 @@ void GetContestPlayerId(void)
|
||||
void ContestLinkTransfer(u8 category)
|
||||
{
|
||||
u8 newTaskId;
|
||||
ScriptContext2_Enable();
|
||||
LockPlayerFieldControls();
|
||||
newTaskId = CreateTask(Task_LinkContest_Init, 0);
|
||||
SetTaskFuncWithFollowupFunc(newTaskId, Task_LinkContest_Init, Task_StartCommunication);
|
||||
gTasks[newTaskId].data[9] = category;
|
||||
@@ -2265,8 +2265,8 @@ void Task_LinkContest_FinalizeConnection(u8 taskId)
|
||||
|
||||
DestroyTask(taskId);
|
||||
SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, WARP_ID_NONE);
|
||||
ScriptContext2_Disable();
|
||||
EnableBothScriptContexts();
|
||||
UnlockPlayerFieldControls();
|
||||
ScriptContext_Enable();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2281,8 +2281,8 @@ static void Task_LinkContest_WaitDisconnect(u8 taskId)
|
||||
if (!gReceivedRemoteLinkPlayers)
|
||||
{
|
||||
DestroyTask(taskId);
|
||||
ScriptContext2_Disable();
|
||||
EnableBothScriptContexts();
|
||||
UnlockPlayerFieldControls();
|
||||
ScriptContext_Enable();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2525,16 +2525,16 @@ void LoadLinkContestPlayerPalettes(void)
|
||||
if (version == VERSION_RUBY || version == VERSION_SAPPHIRE)
|
||||
{
|
||||
if (gLinkPlayers[i].gender == MALE)
|
||||
LoadPalette(gObjectEventPal_RubySapphireBrendan, 0x160 + i * 0x10, 0x20);
|
||||
LoadPalette(gObjectEventPal_RubySapphireBrendan, OBJ_PLTT_ID(6 + i), PLTT_SIZE_4BPP);
|
||||
else
|
||||
LoadPalette(gObjectEventPal_RubySapphireMay, 0x160 + i * 0x10, 0x20);
|
||||
LoadPalette(gObjectEventPal_RubySapphireMay, OBJ_PLTT_ID(6 + i), PLTT_SIZE_4BPP);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gLinkPlayers[i].gender == MALE)
|
||||
LoadPalette(gObjectEventPal_Brendan, 0x160 + i * 0x10, 0x20);
|
||||
LoadPalette(gObjectEventPal_Brendan, OBJ_PLTT_ID(6 + i), PLTT_SIZE_4BPP);
|
||||
else
|
||||
LoadPalette(gObjectEventPal_May, 0x160 + i * 0x10, 0x20);
|
||||
LoadPalette(gObjectEventPal_May, OBJ_PLTT_ID(6 + i), PLTT_SIZE_4BPP);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2639,7 +2639,7 @@ static void Task_ShowContestEntryMonPic(u8 taskId)
|
||||
break;
|
||||
case 1:
|
||||
task->data[5] = CreateWindowFromRect(10, 3, 8, 8);
|
||||
SetStandardWindowBorderStyle(task->data[5], 1);
|
||||
SetStandardWindowBorderStyle(task->data[5], TRUE);
|
||||
task->data[0]++;
|
||||
break;
|
||||
case 2:
|
||||
@@ -2726,7 +2726,7 @@ static void Task_LinkContestWaitForConnection(u8 taskId)
|
||||
default:
|
||||
if (IsLinkTaskFinished() == 1)
|
||||
{
|
||||
EnableBothScriptContexts();
|
||||
ScriptContext_Enable();
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
break;
|
||||
|
||||
+9
-9
@@ -183,7 +183,7 @@ static const struct WindowTemplate sWindowTemplates[] =
|
||||
.bg = 0,
|
||||
.tilemapLeft = 0,
|
||||
.tilemapTop = 9,
|
||||
.width = 30,
|
||||
.width = DISPLAY_TILE_WIDTH,
|
||||
.height = 12,
|
||||
.paletteNum = 8,
|
||||
.baseBlock = 1
|
||||
@@ -286,7 +286,7 @@ static const struct OamData sOamData_MonBg =
|
||||
.y = DISPLAY_HEIGHT,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = 0,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(64x64),
|
||||
.x = 0,
|
||||
@@ -365,7 +365,7 @@ static void InitCreditsBgsAndWindows(void)
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
InitBgsFromTemplates(0, sBackgroundTemplates, ARRAY_COUNT(sBackgroundTemplates));
|
||||
SetBgTilemapBuffer(0, AllocZeroed(BG_SCREEN_SIZE));
|
||||
LoadPalette(sCredits_Pal, 0x80, 64);
|
||||
LoadPalette(sCredits_Pal, BG_PLTT_ID(8), 2 * PLTT_SIZE_4BPP);
|
||||
InitWindows(sWindowTemplates);
|
||||
DeactivateAllTextPrinters();
|
||||
PutWindowTilemap(0);
|
||||
@@ -547,9 +547,9 @@ static void Task_LoadShowMons(u8 taskId)
|
||||
ResetAllPicSprites();
|
||||
FreeAllSpritePalettes();
|
||||
gReservedSpritePaletteCount = 8;
|
||||
LZ77UnCompVram(gBirchHelpGfx, (void *)VRAM);
|
||||
LZ77UnCompVram(gBirchBagGrass_Gfx, (void *)VRAM);
|
||||
LZ77UnCompVram(gBirchGrassTilemap, (void *)(BG_SCREEN_ADDR(7)));
|
||||
LoadPalette(gBirchBagGrassPal[0] + 1, 1, 31 * 2);
|
||||
LoadPalette(gBirchBagGrass_Pal + 1, BG_PLTT_ID(0) + 1, PLTT_SIZEOF(2 * 16 - 1));
|
||||
|
||||
for (i = 0; i < MON_PIC_SIZE; i++)
|
||||
gDecompressionBuffer[i] = 0x11;
|
||||
@@ -624,7 +624,7 @@ static void Task_CreditsTheEnd3(u8 taskId)
|
||||
{
|
||||
ResetGpuAndVram();
|
||||
ResetPaletteFade();
|
||||
LoadTheEndScreen(0, 0x3800, 0);
|
||||
LoadTheEndScreen(0, 0x3800, BG_PLTT_ID(0));
|
||||
ResetSpriteData();
|
||||
FreeAllSpritePalettes();
|
||||
BeginNormalPaletteFade(PALETTES_ALL, 8, 16, 0, RGB_BLACK);
|
||||
@@ -1285,18 +1285,18 @@ static void ResetCreditsTasks(u8 taskId)
|
||||
gIntroCredits_MovingSceneryState = INTROCRED_SCENERY_DESTROY;
|
||||
}
|
||||
|
||||
static void LoadTheEndScreen(u16 arg0, u16 arg1, u16 palOffset)
|
||||
static void LoadTheEndScreen(u16 tileOffsetLoad, u16 tileOffsetWrite, u16 palOffset)
|
||||
{
|
||||
u16 baseTile;
|
||||
u16 i;
|
||||
|
||||
LZ77UnCompVram(sCreditsCopyrightEnd_Gfx, (void *)(VRAM + arg0));
|
||||
LZ77UnCompVram(sCreditsCopyrightEnd_Gfx, (void *)(VRAM + tileOffsetLoad));
|
||||
LoadPalette(gIntroCopyright_Pal, palOffset, sizeof(gIntroCopyright_Pal));
|
||||
|
||||
baseTile = (palOffset / 16) << 12;
|
||||
|
||||
for (i = 0; i < 32 * 32; i++)
|
||||
((u16 *) (VRAM + arg1))[i] = baseTile + 1;
|
||||
((u16 *) (VRAM + tileOffsetWrite))[i] = baseTile + 1;
|
||||
}
|
||||
|
||||
static u16 GetLetterMapTile(u8 baseTiles)
|
||||
|
||||
+2
-4
@@ -5,8 +5,7 @@
|
||||
.arm
|
||||
|
||||
.align 2, 0
|
||||
.global Init
|
||||
Init:
|
||||
Init::
|
||||
mov r0, #PSR_IRQ_MODE
|
||||
msr cpsr_cf, r0
|
||||
ldr sp, sp_irq
|
||||
@@ -33,8 +32,7 @@ sp_irq: .word IWRAM_END - 0x60
|
||||
|
||||
.arm
|
||||
.align 2, 0
|
||||
.global IntrMain
|
||||
IntrMain:
|
||||
IntrMain::
|
||||
mov r3, #REG_BASE
|
||||
add r3, r3, #OFFSET_REG_IE
|
||||
ldr r2, [r3]
|
||||
|
||||
+1
-1
@@ -302,7 +302,7 @@ const union AnimCmd *const gAnims_MonPic[] =
|
||||
#define SPECIES_PAL(species, pal) [SPECIES_##species] = {pal, SPECIES_##species}
|
||||
#define SPECIES_SHINY_PAL(species, pal) [SPECIES_##species] = {pal, SPECIES_##species + SPECIES_SHINY_TAG}
|
||||
|
||||
#include "data/pokemon_graphics/unknown_anims.h"
|
||||
#include "data/pokemon_graphics/unused_anims.h"
|
||||
#include "data/pokemon_graphics/front_pic_coordinates.h"
|
||||
#include "data/pokemon_graphics/still_front_pic_table.h"
|
||||
#include "data/pokemon_graphics/back_pic_coordinates.h"
|
||||
|
||||
@@ -1 +1,3 @@
|
||||
wild_encounters.h
|
||||
region_map/region_map_entries.h
|
||||
region_map/porymap_config.json
|
||||
|
||||
+310
-310
@@ -2,628 +2,628 @@
|
||||
#define GUARD_DATA_BARD_MUSIC_ACTIONS_H
|
||||
const struct BardSound gBardSounds_Actions[][6] = {
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x10, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 16 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x10, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 16 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x4, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 4 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x6, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 6 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x8, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 8 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xd, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 13 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xd, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 13 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 1 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 29 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2f, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 47 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 2 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2f, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 47 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2f, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xa, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 47 },
|
||||
{ .songLengthId = 10 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2f, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 47 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 26 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xd, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 13 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 27 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 27 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 1 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x29, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 41 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x23, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 35 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xa, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 10 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xd, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 13 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xa, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 10 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+150
-150
@@ -2,292 +2,292 @@
|
||||
#define GUARD_DATA_BARD_MUSIC_ADJECTIVES_H
|
||||
const struct BardSound gBardSounds_Adjectives[][6] = {
|
||||
{
|
||||
{ 0x1d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 29 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 12 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 14 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 27 },
|
||||
{ .songLengthId = 27 },
|
||||
{ .songLengthId = 17 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 14 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x24, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 36 },
|
||||
{ .songLengthId = 17 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x8, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 8 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 45 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 12 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 27 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 29 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 12 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1e, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 30 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 14 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 14 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 14 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 }
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 29 },
|
||||
{ .songLengthId = 51 }
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#ifndef GUARD_BARD_SOUNDS_TABLE_H
|
||||
#define GUARD_BARD_SOUNDS_TABLE_H
|
||||
|
||||
#define NULL_BARD_SOUND { 0xff }
|
||||
#define NULL_BARD_SOUND { .songLengthId = 0xff }
|
||||
|
||||
#include "pokemon.h"
|
||||
#include "moves.h"
|
||||
|
||||
+255
-255
@@ -2,508 +2,508 @@
|
||||
#define GUARD_DATA_BARD_MUSIC_BATTLE_H
|
||||
const struct BardSound gBardSounds_Battle[][6] = {
|
||||
{
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 44 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 15 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x17, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 23 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 15 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 15 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 11 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x8, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 8 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 1 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x17, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 23 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 48 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 1 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 12 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 14 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x15, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 21 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x23, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 35 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xa, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 1 },
|
||||
{ .songLengthId = 10 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 27 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x29, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 41 },
|
||||
{ .songLengthId = 29 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 14 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 44 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 5 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1e, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 30 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 44 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x17, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 23 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 39 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x16, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 22 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x8, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 8 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x15, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 21 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x24, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 36 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x29, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 41 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 48 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x29, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 41 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+286
-286
@@ -2,556 +2,556 @@
|
||||
#define GUARD_DATA_BARD_MUSIC_CONDITIONS_H
|
||||
const struct BardSound gBardSounds_Conditions[][6] = {
|
||||
{
|
||||
{ 0x15, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 21 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x6, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x29, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 6 },
|
||||
{ .songLengthId = 41 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 1 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x29, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xa, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 41 },
|
||||
{ .songLengthId = 10 },
|
||||
{ .songLengthId = 50 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x20, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 32 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x19, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 25 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x17, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 23 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 17 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
NULL_BARD_SOUND
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
},
|
||||
{
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xa, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 10 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 11 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x23, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 35 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xa, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 10 },
|
||||
{ .songLengthId = 17 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1e, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
NULL_BARD_SOUND
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 30 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 38 },
|
||||
NULL_BARD_SOUND,
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
NULL_BARD_SOUND
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 44 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xa, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 10 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xa, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 10 },
|
||||
{ .songLengthId = 17 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 29 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 38 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 29 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 11 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x17, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 23 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x17, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x16, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 23 },
|
||||
{ .songLengthId = 22 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x16, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
NULL_BARD_SOUND
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 22 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 38 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x29, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 41 },
|
||||
{ .songLengthId = 28 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x8, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 8 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 14 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x21, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 33 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 11 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xd, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 13 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+268
-268
@@ -2,556 +2,556 @@
|
||||
#define GUARD_DATA_BARD_MUSIC_ENDINGS_H
|
||||
const struct BardSound gBardSounds_Endings[][6] = {
|
||||
{
|
||||
{ 0x10, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 16 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x10, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 16 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 48 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x10, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 16 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 17 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 28 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x17, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 23 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x4, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 4 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x23, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 35 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x6, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 6 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 28 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 29 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 1 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x21, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 33 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x23, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 35 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+118
-118
@@ -2,236 +2,236 @@
|
||||
#define GUARD_DATA_BARD_MUSIC_EVENTS_H
|
||||
const struct BardSound gBardSounds_Events[][6] = {
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
NULL_BARD_SOUND
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 29 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 43 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x15, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x4, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 21 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 4 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x21, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 33 },
|
||||
{ .songLengthId = 48 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 39 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x4, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 4 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xa, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 10 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 29 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 42 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 9 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 48 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 42 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 48 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+279
-279
@@ -2,556 +2,556 @@
|
||||
#define GUARD_DATA_BARD_MUSIC_FEELINGS_H
|
||||
const struct BardSound gBardSounds_Feelings[][6] = {
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x4, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 4 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x19, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 25 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 11 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 0 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x17, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 23 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1e, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 30 },
|
||||
{ .songLengthId = 11 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x20, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 32 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x31, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 49 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xd, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 13 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x31, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 49 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x8, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 8 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x20, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 32 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x20, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 32 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x8, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 8 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x21, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 33 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 38 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x31, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 49 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x31, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 49 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x6, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 6 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 50 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x20, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 32 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x20, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 32 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 29 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 26 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x29, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 41 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 17 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 11 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x4, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 4 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 17 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 2 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+173
-173
@@ -2,340 +2,340 @@
|
||||
#define GUARD_DATA_BARD_MUSIC_GREETINGS_H
|
||||
const struct BardSound gBardSounds_Greetings[][6] = {
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x17, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 23 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 17 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x17, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 23 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1e, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 30 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x21, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 33 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 27 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x6, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x17, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
NULL_BARD_SOUND
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 6 },
|
||||
{ .songLengthId = 23 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x10, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 16 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x4, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 4 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x6, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 6 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 29 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x28, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xd, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 40 },
|
||||
{ .songLengthId = 13 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 11 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 5 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x4, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 4 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 43 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xa, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xa, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 10 },
|
||||
{ .songLengthId = 10 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xd, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 13 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 17 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 1 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 50 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x23, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x17, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 35 },
|
||||
{ .songLengthId = 23 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+224
-224
@@ -2,436 +2,436 @@
|
||||
#define GUARD_DATA_BARD_MUSIC_HOBBIES_H
|
||||
const struct BardSound gBardSounds_Hobbies[][6] = {
|
||||
{
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 5 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x17, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 23 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 1 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x4, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 4 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1e, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 30 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2f, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 47 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x17, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 23 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x15, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 21 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 44 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2f, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 47 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 48 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 27 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 12 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
NULL_BARD_SOUND
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 27 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 27 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x15, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 21 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x17, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 23 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x17, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 23 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xa, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 10 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 17 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 29 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x21, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 33 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 1 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 50 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 27 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x8, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 8 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 27 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 29 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 5 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 29 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -2,19 +2,19 @@
|
||||
#define GUARD_LENGTH_TABLE_H
|
||||
|
||||
const int gBardSoundLengthTable[] = {
|
||||
0x09, 0x16, 0x0f, 0x10,
|
||||
0x27, 0x15, 0x09, 0x1e,
|
||||
0x18, 0x0f, 0x19, 0x0c,
|
||||
0x16, 0x2d, 0x18, 0x0f,
|
||||
0x28, 0x09, 0x15, 0x2a,
|
||||
0x12, 0x09, 0x16, 0x0f,
|
||||
0x1b, 0x30, 0x12, 0x1b,
|
||||
0x21, 0x18, 0x19, 0x27,
|
||||
0x13, 0x10, 0x36, 0x12,
|
||||
0x09, 0x2d, 0x0f, 0x0c,
|
||||
0x27, 0x17, 0x05, 0x2d,
|
||||
0x0c, 0x15, 0x30, 0x0c,
|
||||
0x15, 0x45, 0x12, 0x0f
|
||||
9, 22, 15, 16,
|
||||
39, 21, 9, 30,
|
||||
24, 15, 25, 12,
|
||||
22, 45, 24, 15,
|
||||
40, 9, 21, 42,
|
||||
18, 9, 22, 15,
|
||||
27, 48, 18, 27,
|
||||
33, 24, 25, 39,
|
||||
19, 16, 54, 18,
|
||||
9, 45, 15, 12,
|
||||
39, 23, 5, 45,
|
||||
12, 21, 48, 12,
|
||||
21, 69, 18, 15
|
||||
};
|
||||
|
||||
|
||||
|
||||
+190
-190
@@ -2,364 +2,364 @@
|
||||
#define GUARD_DATA_BARD_MUSIC_LIFESTYLE_H
|
||||
const struct BardSound gBardSounds_Lifestyle[][6] = {
|
||||
{
|
||||
{ 0x31, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 49 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x23, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 35 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
NULL_BARD_SOUND
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
},
|
||||
{
|
||||
{ 0x29, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 41 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 5 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 29 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
NULL_BARD_SOUND
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 11 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 44 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 27 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 26 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
NULL_BARD_SOUND
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 27 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 29 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 50 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 28 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x24, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 36 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 29 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x17, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
NULL_BARD_SOUND
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 23 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 24 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x24, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 36 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+167
-167
@@ -2,340 +2,340 @@
|
||||
#define GUARD_DATA_BARD_MUSIC_MISC_H
|
||||
const struct BardSound gBardSounds_Misc[][6] = {
|
||||
{
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 43 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x21, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 33 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 17 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 14 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x21, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 33 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 27 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 1 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x10, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 16 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 43 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 27 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x4, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 4 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x10, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 16 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 1 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2e, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 46 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 29 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 17 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+1546
-1546
File diff suppressed because it is too large
Load Diff
+302
-302
@@ -2,604 +2,604 @@
|
||||
#define GUARD_DATA_BARD_MUSIC_PEOPLE_H
|
||||
const struct BardSound gBardSounds_People[][6] = {
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 11 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x13, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 19 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 45 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, -0x9, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26, .songLengthOffset = -0x9 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 45 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x8, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 1 },
|
||||
{ .songLengthId = 8 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x8, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 8 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1e, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 30 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x24, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 36 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x15, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 21 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 1 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x7, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 7 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xd, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 13 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x4, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 4 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 14 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x10, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 16 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 28 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xa, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 10 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xd, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 13 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x29, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 41 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x29, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 41 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x10, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 16 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x10, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 16 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 29 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x28, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 40 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x31, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 49 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x31, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 49 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x21, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 33 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x24, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 36 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 43 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x10, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 16 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 1 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+1669
-1669
File diff suppressed because it is too large
Load Diff
+239
-239
@@ -2,484 +2,484 @@
|
||||
#define GUARD_DATA_BARD_MUSIC_SPEECH_H
|
||||
const struct BardSound gBardSounds_Speech[][6] = {
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x10, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 16 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x15, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 21 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 12 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xa, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 10 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 43 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x21, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 33 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 48 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 43 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x21, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 33 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x17, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 23 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x3, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 3 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
NULL_BARD_SOUND
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 45 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xa, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 10 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x15, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 21 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xa, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 10 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 17 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 11 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x6, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
NULL_BARD_SOUND
|
||||
{ .songLengthId = 1 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 6 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x23, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 35 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 39 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 27 },
|
||||
{ .songLengthId = 14 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x23, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 27 },
|
||||
{ .songLengthId = 35 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x6, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 6 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x6, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 6 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 1 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 1 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xa, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 10 },
|
||||
{ .songLengthId = 14 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
NULL_BARD_SOUND
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x7, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 7 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x10, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 16 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 1 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x28, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 40 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x6, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x26, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 6 },
|
||||
{ .songLengthId = 38 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x6, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 6 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x8, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 8 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 43 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+464
-464
File diff suppressed because it is too large
Load Diff
+181
-181
@@ -2,364 +2,364 @@
|
||||
#define GUARD_DATA_BARD_MUSIC_TIME_H
|
||||
const struct BardSound gBardSounds_Time[][6] = {
|
||||
{
|
||||
{ 0x1b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 27 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 28 },
|
||||
{ .songLengthId = 26 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 2 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 27 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x18, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 24 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 44 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xb, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 11 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 5 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x27, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 39 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 50 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 50 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x11, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 17 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xa, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 10 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x28, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 40 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x17, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x2a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 23 },
|
||||
{ .songLengthId = 42 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1d, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 29 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x21, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 33 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x24, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 36 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x9, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 9 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x0, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 0 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 5 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x2c, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 44 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xc, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 12 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xf, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x32, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 15 },
|
||||
{ .songLengthId = 50 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xa, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 10 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x1b, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x1a, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 27 },
|
||||
{ .songLengthId = 26 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x30, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x5, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 48 },
|
||||
{ .songLengthId = 5 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x12, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 18 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0x14, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 20 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
},
|
||||
{
|
||||
{ 0xe, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ 0x33, 0x0, 0x0, 0x0, 0x0 },
|
||||
{ .songLengthId = 14 },
|
||||
{ .songLengthId = 51 },
|
||||
{ .songLengthId = 51 },
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND,
|
||||
NULL_BARD_SOUND
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user