diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/battle_bg.c | 26 | ||||
-rw-r--r-- | src/battle_controller_player.c | 6 | ||||
-rw-r--r-- | src/battle_gfx_sfx_util.c | 4 | ||||
-rw-r--r-- | src/battle_intro.c | 8 | ||||
-rw-r--r-- | src/battle_main.c | 4 | ||||
-rw-r--r-- | src/battle_script_commands.c | 28 | ||||
-rw-r--r-- | src/battle_util.c | 50 | ||||
-rw-r--r-- | src/field_weather.c | 20 | ||||
-rw-r--r-- | src/pokemon.c | 16 | ||||
-rw-r--r-- | src/recorded_battle.c | 6 | ||||
-rw-r--r-- | src/sound.c | 22 | ||||
-rw-r--r-- | src/tv.c | 16 |
12 files changed, 117 insertions, 89 deletions
diff --git a/src/battle_bg.c b/src/battle_bg.c index a072a2cda..61a914fc9 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -1037,10 +1037,10 @@ void sub_8035D74(u8 taskId) case 1: palId = AllocSpritePalette(0x2710); gPlttBufferUnfaded[palId * 16 + 0x10F] = gPlttBufferFaded[palId * 16 + 0x10F] = 0x7FFF; - gBattleStruct->field_7D = CreateSprite(&gUnknown_0831A9D0, 111, 80, 0); - gBattleStruct->field_7E = CreateSprite(&gUnknown_0831A9E8, 129, 80, 0); - gSprites[gBattleStruct->field_7D].invisible = TRUE; - gSprites[gBattleStruct->field_7E].invisible = TRUE; + gBattleStruct->linkBattleVsSpriteId_V = CreateSprite(&gUnknown_0831A9D0, 111, 80, 0); + gBattleStruct->linkBattleVsSpriteId_S = CreateSprite(&gUnknown_0831A9E8, 129, 80, 0); + gSprites[gBattleStruct->linkBattleVsSpriteId_V].invisible = TRUE; + gSprites[gBattleStruct->linkBattleVsSpriteId_S].invisible = TRUE; gTasks[taskId].data[0]++; break; case 2: @@ -1071,15 +1071,15 @@ void sub_8035D74(u8 taskId) PlaySE(SE_W231); DestroyTask(taskId); - gSprites[gBattleStruct->field_7D].invisible = FALSE; - gSprites[gBattleStruct->field_7E].invisible = FALSE; - gSprites[gBattleStruct->field_7E].oam.tileNum += 0x40; - gSprites[gBattleStruct->field_7D].data[0] = 0; - gSprites[gBattleStruct->field_7E].data[0] = 1; - gSprites[gBattleStruct->field_7D].data[1] = gSprites[gBattleStruct->field_7D].pos1.x; - gSprites[gBattleStruct->field_7E].data[1] = gSprites[gBattleStruct->field_7E].pos1.x; - gSprites[gBattleStruct->field_7D].data[2] = 0; - gSprites[gBattleStruct->field_7E].data[2] = 0; + gSprites[gBattleStruct->linkBattleVsSpriteId_V].invisible = FALSE; + gSprites[gBattleStruct->linkBattleVsSpriteId_S].invisible = FALSE; + gSprites[gBattleStruct->linkBattleVsSpriteId_S].oam.tileNum += 0x40; + gSprites[gBattleStruct->linkBattleVsSpriteId_V].data[0] = 0; + gSprites[gBattleStruct->linkBattleVsSpriteId_S].data[0] = 1; + gSprites[gBattleStruct->linkBattleVsSpriteId_V].data[1] = gSprites[gBattleStruct->linkBattleVsSpriteId_V].pos1.x; + gSprites[gBattleStruct->linkBattleVsSpriteId_S].data[1] = gSprites[gBattleStruct->linkBattleVsSpriteId_S].pos1.x; + gSprites[gBattleStruct->linkBattleVsSpriteId_V].data[2] = 0; + gSprites[gBattleStruct->linkBattleVsSpriteId_S].data[2] = 0; } break; } diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index a6a6ac0f3..70b0a6160 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -696,10 +696,10 @@ static void HandleMoveSwitching(void) moveInfo->maxPp[gMoveSelectionCursor[gActiveBattler]] = moveInfo->maxPp[gMultiUsePlayerCursor]; moveInfo->maxPp[gMultiUsePlayerCursor] = i; - if (gDisableStructs[gActiveBattler].unk18_b & gBitTable[gMoveSelectionCursor[gActiveBattler]]) + if (gDisableStructs[gActiveBattler].mimickedMoves & gBitTable[gMoveSelectionCursor[gActiveBattler]]) { - gDisableStructs[gActiveBattler].unk18_b &= (~gBitTable[gMoveSelectionCursor[gActiveBattler]]); - gDisableStructs[gActiveBattler].unk18_b |= gBitTable[gMultiUsePlayerCursor]; + gDisableStructs[gActiveBattler].mimickedMoves &= (~gBitTable[gMoveSelectionCursor[gActiveBattler]]); + gDisableStructs[gActiveBattler].mimickedMoves |= gBitTable[gMultiUsePlayerCursor]; } MoveSelectionDisplayMoveNames(); diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 3ceaef983..089d09558 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -205,13 +205,13 @@ u16 ChooseMoveAndTargetInBattlePalace(void) if (Random() % 100 > 49) { - gProtectStructs[gActiveBattler].flag_x10 = 1; + gProtectStructs[gActiveBattler].palaceAbleToUseMove = 1; return 0; } } else { - gProtectStructs[gActiveBattler].flag_x10 = 1; + gProtectStructs[gActiveBattler].palaceAbleToUseMove = 1; return 0; } } diff --git a/src/battle_intro.c b/src/battle_intro.c index 21e83ed29..043cf855a 100644 --- a/src/battle_intro.c +++ b/src/battle_intro.c @@ -463,10 +463,10 @@ static void BattleIntroSlideLink(u8 taskId) if (--gTasks[taskId].data[2] == 0) { gTasks[taskId].data[0]++; - gSprites[gBattleStruct->field_7D].oam.objMode = ST_OAM_OBJ_WINDOW; - gSprites[gBattleStruct->field_7D].callback = sub_8038B74; - gSprites[gBattleStruct->field_7E].oam.objMode = ST_OAM_OBJ_WINDOW; - gSprites[gBattleStruct->field_7E].callback = sub_8038B74; + gSprites[gBattleStruct->linkBattleVsSpriteId_V].oam.objMode = ST_OAM_OBJ_WINDOW; + gSprites[gBattleStruct->linkBattleVsSpriteId_V].callback = sub_8038B74; + gSprites[gBattleStruct->linkBattleVsSpriteId_S].oam.objMode = ST_OAM_OBJ_WINDOW; + gSprites[gBattleStruct->linkBattleVsSpriteId_S].callback = sub_8038B74; SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2); } diff --git a/src/battle_main.c b/src/battle_main.c index 1aeaa25ca..6d04103e5 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -3196,7 +3196,7 @@ void SwitchInClearSetData(void) gMoveResultFlags = 0; gDisableStructs[gActiveBattler].isFirstTurn = 2; - gDisableStructs[gActiveBattler].truantUnknownBit = disableStructCopy.truantUnknownBit; + gDisableStructs[gActiveBattler].truantSwitchInHack = disableStructCopy.truantSwitchInHack; gLastMoves[gActiveBattler] = 0; gLastLandedMoves[gActiveBattler] = 0; gLastHitByType[gActiveBattler] = 0; @@ -5492,7 +5492,7 @@ static void HandleAction_UseMove(void) // choose battlescript if (gBattleTypeFlags & BATTLE_TYPE_PALACE - && gProtectStructs[gBattlerAttacker].flag_x10) + && gProtectStructs[gBattlerAttacker].palaceAbleToUseMove) { if (gBattleMons[gBattlerAttacker].hp == 0) { diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 0995eec45..6bbee842e 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -1243,7 +1243,7 @@ static void atk03_ppreduce(void) gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = 0; if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED) - && !((gDisableStructs[gBattlerAttacker].unk18_b) & gBitTable[gCurrMovePos])) + && !((gDisableStructs[gBattlerAttacker].mimickedMoves) & gBitTable[gCurrMovePos])) { gActiveBattler = gBattlerAttacker; BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBattlerAttacker].pp[gCurrMovePos]); @@ -5550,10 +5550,12 @@ static void atk52_switchineffects(void) } else { - if (gBattleMons[gActiveBattler].ability == ABILITY_TRUANT && !gDisableStructs[gActiveBattler].truantUnknownBit) + // There is a hack here to ensure the truant counter will be 0 when the battler's next turn starts. + // The truant counter is not updated in the case where a mon switches in after a lost judgement in the battle arena. + if (gBattleMons[gActiveBattler].ability == ABILITY_TRUANT && !gDisableStructs[gActiveBattler].truantSwitchInHack) gDisableStructs[gActiveBattler].truantCounter = 1; - gDisableStructs[gActiveBattler].truantUnknownBit = 0; + gDisableStructs[gActiveBattler].truantSwitchInHack = 0; if (!AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gActiveBattler, 0, 0, 0) && !ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gActiveBattler, FALSE)) @@ -5774,7 +5776,7 @@ static void atk5A_yesnoboxlearnmove(void) if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterMonId && !(gBattleMons[0].status2 & STATUS2_TRANSFORMED) - && !(gDisableStructs[0].unk18_b & gBitTable[movePosition])) + && !(gDisableStructs[0].mimickedMoves & gBitTable[movePosition])) { RemoveBattleMonPPBonus(&gBattleMons[0], movePosition); SetBattleMonMoveSlot(&gBattleMons[0], gMoveToLearn, movePosition); @@ -5782,7 +5784,7 @@ static void atk5A_yesnoboxlearnmove(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlerPartyIndexes[2] == gBattleStruct->expGetterMonId && !(gBattleMons[2].status2 & STATUS2_TRANSFORMED) - && !(gDisableStructs[2].unk18_b & gBitTable[movePosition])) + && !(gDisableStructs[2].mimickedMoves & gBitTable[movePosition])) { RemoveBattleMonPPBonus(&gBattleMons[2], movePosition); SetBattleMonMoveSlot(&gBattleMons[2], gMoveToLearn, movePosition); @@ -6694,14 +6696,14 @@ static void atk76_various(void) gBattleMons[1].hp = 0; gHitMarker |= HITMARKER_FAINTED(1); gBattleStruct->arenaLostOpponentMons |= gBitTable[gBattlerPartyIndexes[1]]; - gDisableStructs[1].truantUnknownBit = 1; + gDisableStructs[1].truantSwitchInHack = 1; break; case VARIOUS_ARENA_PLAYER_MON_LOST: gBattleMons[0].hp = 0; gHitMarker |= HITMARKER_FAINTED(0); gHitMarker |= HITMARKER_x400000; gBattleStruct->arenaLostPlayerMons |= gBitTable[gBattlerPartyIndexes[0]]; - gDisableStructs[0].truantUnknownBit = 1; + gDisableStructs[0].truantSwitchInHack = 1; break; case VARIOUS_ARENA_BOTH_MONS_LOST: gBattleMons[0].hp = 0; @@ -6711,8 +6713,8 @@ static void atk76_various(void) gHitMarker |= HITMARKER_x400000; gBattleStruct->arenaLostPlayerMons |= gBitTable[gBattlerPartyIndexes[0]]; gBattleStruct->arenaLostOpponentMons |= gBitTable[gBattlerPartyIndexes[1]]; - gDisableStructs[0].truantUnknownBit = 1; - gDisableStructs[1].truantUnknownBit = 1; + gDisableStructs[0].truantSwitchInHack = 1; + gDisableStructs[1].truantSwitchInHack = 1; break; case VARIOUS_EMIT_YESNOBOX: BtlController_EmitUnknownYesNoBox(0); @@ -8021,7 +8023,7 @@ static void atk9B_transformdataexecution(void) gDisableStructs[gBattlerAttacker].disabledMove = 0; gDisableStructs[gBattlerAttacker].disableTimer = 0; gDisableStructs[gBattlerAttacker].transformedMonPersonality = gBattleMons[gBattlerTarget].personality; - gDisableStructs[gBattlerAttacker].unk18_b = 0; + gDisableStructs[gBattlerAttacker].mimickedMoves = 0; PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBattlerTarget].species) @@ -8095,7 +8097,7 @@ static void atk9D_mimicattackcopy(void) } else { - s32 i; + int i; for (i = 0; i < MAX_MON_MOVES; i++) { @@ -8114,7 +8116,7 @@ static void atk9D_mimicattackcopy(void) PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBattlerTarget]) - gDisableStructs[gBattlerAttacker].unk18_b |= gBitTable[gCurrMovePos]; + gDisableStructs[gBattlerAttacker].mimickedMoves |= gBitTable[gCurrMovePos]; gBattlescriptCurrInstr += 5; } else @@ -8571,7 +8573,7 @@ static void atkAD_tryspiteppreduce(void) gBattleMons[gBattlerTarget].pp[i] -= ppToDeduct; gActiveBattler = gBattlerTarget; - if (!(gDisableStructs[gActiveBattler].unk18_b & gBitTable[i]) + if (!(gDisableStructs[gActiveBattler].mimickedMoves & gBitTable[i]) && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED)) { BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBattler].pp[i]); diff --git a/src/battle_util.c b/src/battle_util.c index 5d8e42482..04659571e 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -78,38 +78,38 @@ u8 GetBattlerForBattleScript(u8 caseId) return ret; } -void PressurePPLose(u8 defender, u8 attacker, u16 move) +void PressurePPLose(u8 target, u8 attacker, u16 move) { - s32 i; + int moveIndex; - if (gBattleMons[defender].ability != ABILITY_PRESSURE) + if (gBattleMons[target].ability != ABILITY_PRESSURE) return; - for (i = 0; i < MAX_MON_MOVES; i++) + for (moveIndex = 0; moveIndex < MAX_MON_MOVES; moveIndex++) { - if (gBattleMons[attacker].moves[i] == move) + if (gBattleMons[attacker].moves[moveIndex] == move) break; } - if (i == MAX_MON_MOVES) // mons don't share any moves + if (moveIndex == MAX_MON_MOVES) return; - if (gBattleMons[attacker].pp[i] != 0) - gBattleMons[attacker].pp[i]--; + if (gBattleMons[attacker].pp[moveIndex] != 0) + gBattleMons[attacker].pp[moveIndex]--; if (!(gBattleMons[attacker].status2 & STATUS2_TRANSFORMED) - && !(gDisableStructs[attacker].unk18_b & gBitTable[i])) + && !(gDisableStructs[attacker].mimickedMoves & gBitTable[moveIndex])) { gActiveBattler = attacker; - BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBattler].pp[i]); + BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + moveIndex, 0, 1, &gBattleMons[gActiveBattler].pp[moveIndex]); MarkBattlerForControllerExec(gActiveBattler); } } void PressurePPLoseOnUsingImprision(u8 attacker) { - s32 i, j; - s32 imprisionPos = 4; + int i, j; + int imprisionPos = 4; u8 atkSide = GetBattlerSide(attacker); for (i = 0; i < gBattlersCount; i++) @@ -132,7 +132,7 @@ void PressurePPLoseOnUsingImprision(u8 attacker) if (imprisionPos != 4 && !(gBattleMons[attacker].status2 & STATUS2_TRANSFORMED) - && !(gDisableStructs[attacker].unk18_b & gBitTable[imprisionPos])) + && !(gDisableStructs[attacker].mimickedMoves & gBitTable[imprisionPos])) { gActiveBattler = attacker; BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + imprisionPos, 0, 1, &gBattleMons[gActiveBattler].pp[imprisionPos]); @@ -142,8 +142,8 @@ void PressurePPLoseOnUsingImprision(u8 attacker) void PressurePPLoseOnUsingPerishSong(u8 attacker) { - s32 i, j; - s32 perishSongPos = 4; + int i, j; + int perishSongPos = 4; for (i = 0; i < gBattlersCount; i++) { @@ -165,7 +165,7 @@ void PressurePPLoseOnUsingPerishSong(u8 attacker) if (perishSongPos != MAX_MON_MOVES && !(gBattleMons[attacker].status2 & STATUS2_TRANSFORMED) - && !(gDisableStructs[attacker].unk18_b & gBitTable[perishSongPos])) + && !(gDisableStructs[attacker].mimickedMoves & gBitTable[perishSongPos])) { gActiveBattler = attacker; BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + perishSongPos, 0, 1, &gBattleMons[gActiveBattler].pp[perishSongPos]); @@ -175,7 +175,7 @@ void PressurePPLoseOnUsingPerishSong(u8 attacker) void MarkAllBattlersForControllerExec(void) // unused { - s32 i; + int i; if (gBattleTypeFlags & BATTLE_TYPE_LINK) { @@ -314,14 +314,14 @@ u8 TrySetCantSelectMoveBattleScript(void) u8 holdEffect; u16* choicedMove = &gBattleStruct->choicedMove[gActiveBattler]; - if (gDisableStructs[gActiveBattler].disabledMove == move && move != 0) + if (gDisableStructs[gActiveBattler].disabledMove == move && move != MOVE_NONE) { gBattleScripting.battler = gActiveBattler; gCurrentMove = move; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { gPalaceSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingDisabledMoveInPalace; - gProtectStructs[gActiveBattler].flag_x10 = 1; + gProtectStructs[gActiveBattler].palaceAbleToUseMove = 1; } else { @@ -336,7 +336,7 @@ u8 TrySetCantSelectMoveBattleScript(void) if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { gPalaceSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingTormentedMoveInPalace; - gProtectStructs[gActiveBattler].flag_x10 = 1; + gProtectStructs[gActiveBattler].palaceAbleToUseMove = 1; } else { @@ -351,7 +351,7 @@ u8 TrySetCantSelectMoveBattleScript(void) if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { gPalaceSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingNotAllowedMoveTauntInPalace; - gProtectStructs[gActiveBattler].flag_x10 = 1; + gProtectStructs[gActiveBattler].palaceAbleToUseMove = 1; } else { @@ -366,7 +366,7 @@ u8 TrySetCantSelectMoveBattleScript(void) if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { gPalaceSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingImprisionedMoveInPalace; - gProtectStructs[gActiveBattler].flag_x10 = 1; + gProtectStructs[gActiveBattler].palaceAbleToUseMove = 1; } else { @@ -388,7 +388,7 @@ u8 TrySetCantSelectMoveBattleScript(void) gLastUsedItem = gBattleMons[gActiveBattler].item; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gProtectStructs[gActiveBattler].flag_x10 = 1; + gProtectStructs[gActiveBattler].palaceAbleToUseMove = 1; } else { @@ -401,7 +401,7 @@ u8 TrySetCantSelectMoveBattleScript(void) { if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gProtectStructs[gActiveBattler].flag_x10 = 1; + gProtectStructs[gActiveBattler].palaceAbleToUseMove = 1; } else { @@ -3035,7 +3035,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) MarkBattlerForControllerExec(gActiveBattler); break; case ITEM_PP_CHANGE: - if (!(gBattleMons[battlerId].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[battlerId].unk18_b & gBitTable[i])) + if (!(gBattleMons[battlerId].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[battlerId].mimickedMoves & gBitTable[i])) gBattleMons[battlerId].pp[i] = changedPP; break; } diff --git a/src/field_weather.c b/src/field_weather.c index f0615dabf..21168426c 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -17,7 +17,7 @@ #include "trig.h" #include "gpu_regs.h" -#define MACRO1(color) ((((color) >> 1) & 0xF) | (((color) >> 2) & 0xF0) | (((color) >> 3) & 0xF00)) +#define DROUGHT_COLOR_INDEX(color) ((((color) >> 1) & 0xF) | (((color) >> 2) & 0xF0) | (((color) >> 3) & 0xF00)) enum { @@ -65,15 +65,21 @@ static void None_Init(void); static void None_Main(void); static u8 None_Finish(void); -// EWRAM EWRAM_DATA struct Weather gWeather = {0}; EWRAM_DATA static u8 sFieldEffectPaletteGammaTypes[32] = {0}; -// IWRAM bss IWRAM_DATA static const u8 *sPaletteGammaTypes; -// CONST -extern const u16 gUnknown_0854014C[][4096]; +// The drought weather effect uses a precalculated color lookup table. Presumably this +// is because the underlying color shift calculation is slow. +const u16 sDroughtWeatherColors[][0x1000] = { + INCBIN_U16("graphics/weather/drought/0.gbapal"), + INCBIN_U16("graphics/weather/drought/1.gbapal"), + INCBIN_U16("graphics/weather/drought/2.gbapal"), + INCBIN_U16("graphics/weather/drought/3.gbapal"), + INCBIN_U16("graphics/weather/drought/4.gbapal"), + INCBIN_U16("graphics/weather/drought/5.gbapal"), +}; // This is a pointer to gWeather. All code in this file accesses gWeather directly, // while code in other field weather files accesses gWeather through this pointer. @@ -513,7 +519,7 @@ static void ApplyGammaShift(u8 startPalIndex, u8 numPalettes, s8 gammaIndex) { for (i = 0; i < 16; i++) { - gPlttBufferFaded[palOffset] = gUnknown_0854014C[gammaIndex][MACRO1(gPlttBufferUnfaded[palOffset])]; + gPlttBufferFaded[palOffset] = sDroughtWeatherColors[gammaIndex][DROUGHT_COLOR_INDEX(gPlttBufferUnfaded[palOffset])]; palOffset++; } } @@ -619,7 +625,7 @@ static void ApplyDroughtGammaShiftWithBlend(s8 gammaIndex, u8 blendCoeff, u16 bl b1 = color1.b; offset = ((b1 & 0x1E) << 7) | ((g1 & 0x1E) << 3) | ((r1 & 0x1E) >> 1); - color2 = *(struct RGBColor *)&gUnknown_0854014C[gammaIndex][offset]; + color2 = *(struct RGBColor *)&sDroughtWeatherColors[gammaIndex][offset]; r2 = color2.r; g2 = color2.g; b2 = color2.b; diff --git a/src/pokemon.c b/src/pokemon.c index 174f7ae66..cdb87f464 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -5242,14 +5242,14 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov { gAbsentBattlerFlags &= ~gBitTable[battlerId]; CopyPlayerPartyMonToBattleData(battlerId, pokemon_order_func(gBattlerPartyIndexes[battlerId])); - if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER && gBattleResults.unk4 < 255) - gBattleResults.unk4++; + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER && gBattleResults.numRevivesUsed < 255) + gBattleResults.numRevivesUsed++; } else { gAbsentBattlerFlags &= ~gBitTable[gActiveBattler ^ 2]; - if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER && gBattleResults.unk4 < 255) - gBattleResults.unk4++; + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER && gBattleResults.numRevivesUsed < 255) + gBattleResults.numRevivesUsed++; } } } @@ -5289,8 +5289,8 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov gBattleMons[battlerId].hp = dataUnsigned; if (!(r10 & 0x10) && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { - if (gBattleResults.unk3 < 255) - gBattleResults.unk3++; + if (gBattleResults.numHealingItemsUsed < 255) + gBattleResults.numHealingItemsUsed++; // I have to re-use this variable to match. r5 = gActiveBattler; gActiveBattler = battlerId; @@ -5329,7 +5329,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov SetMonData(mon, MON_DATA_PP1 + r5, &dataUnsigned); if (gMain.inBattle && battlerId != 4 && !(gBattleMons[battlerId].status2 & STATUS2_TRANSFORMED) - && !(gDisableStructs[battlerId].unk18_b & gBitTable[r5])) + && !(gDisableStructs[battlerId].mimickedMoves & gBitTable[r5])) gBattleMons[battlerId].pp[r5] = dataUnsigned; retVal = FALSE; } @@ -5354,7 +5354,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov SetMonData(mon, MON_DATA_PP1 + moveIndex, &dataUnsigned); if (gMain.inBattle && battlerId != 4 && !(gBattleMons[battlerId].status2 & STATUS2_TRANSFORMED) - && !(gDisableStructs[battlerId].unk18_b & gBitTable[moveIndex])) + && !(gDisableStructs[battlerId].mimickedMoves & gBitTable[moveIndex])) gBattleMons[battlerId].pp[moveIndex] = dataUnsigned; retVal = FALSE; } diff --git a/src/recorded_battle.c b/src/recorded_battle.c index 0dae76f02..c11dc55e7 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -782,7 +782,7 @@ void sub_818603C(u8 arg0) movePp.moves[j] = gBattleMons[battlerId].moves[array1[j]]; movePp.pp[j] = gBattleMons[battlerId].pp[array1[j]]; array3[j] = ppBonuses[array1[j]]; - array2[j] = (gDisableStructs[battlerId].unk18_b & gBitTable[j]) >> j; + array2[j] = (gDisableStructs[battlerId].mimickedMoves & gBitTable[j]) >> j; } for (j = 0; j < MAX_MON_MOVES; j++) { @@ -790,11 +790,11 @@ void sub_818603C(u8 arg0) gBattleMons[battlerId].pp[j] = movePp.pp[j]; } gBattleMons[battlerId].ppBonuses = 0; - gDisableStructs[battlerId].unk18_b = 0; + gDisableStructs[battlerId].mimickedMoves = 0; for (j = 0; j < MAX_MON_MOVES; j++) { gBattleMons[battlerId].ppBonuses |= (array3[j]) << (j << 1); - gDisableStructs[battlerId].unk18_b |= (array2[j]) << (j); + gDisableStructs[battlerId].mimickedMoves |= (array2[j]) << (j); } if (!(gBattleMons[battlerId].status2 & STATUS2_TRANSFORMED)) diff --git a/src/sound.c b/src/sound.c index c63183bdc..ebb4fad75 100644 --- a/src/sound.c +++ b/src/sound.c @@ -34,13 +34,33 @@ extern struct MusicPlayerInfo gMPlayInfo_SE2; extern struct MusicPlayerInfo gMPlayInfo_SE3; extern struct ToneData gCryTable[]; extern struct ToneData gCryTable2[]; -extern const struct Fanfare sFanfares[]; static void Task_Fanfare(u8 taskId); static void CreateFanfareTask(void); static void Task_DuckBGMForPokemonCry(u8 taskId); static void RestoreBGMVolumeAfterPokemonCry(void); +static const struct Fanfare sFanfares[] = { + { MUS_FANFA1, 80 }, + { MUS_FANFA4, 160 }, + { MUS_FANFA5, 220 }, + { MUS_ME_WAZA, 220 }, + { MUS_ME_ASA, 160 }, + { MUS_ME_BACHI, 340 }, + { MUS_ME_WASURE, 180 }, + { MUS_ME_KINOMI, 120 }, + { MUS_ME_TAMA, 710 }, + { MUS_ME_B_BIG, 250 }, + { MUS_ME_B_SMALL, 150 }, + { MUS_ME_ZANNEN, 160 }, + { MUS_RG_POKEFUE, 450 }, + { MUS_RG_FAN5, 170 }, + { MUS_RG_FAN2, 196 }, + { MUS_ME_POINTGET, 313 }, + { MUS_ME_SYMBOLGET, 318 }, + { MUS_ME_TORE_EYE, 135 }, +}; + #define CRY_VOLUME 120 // was 125 in R/S void InitMapMusic(void) @@ -913,13 +913,13 @@ void ResetGabbyAndTy(void) gSaveBlock1Ptr->gabbyAndTyData.quote[0] = -1; gSaveBlock1Ptr->gabbyAndTyData.battleTookMoreThanOneTurn = FALSE; gSaveBlock1Ptr->gabbyAndTyData.playerLostAMon = FALSE; - gSaveBlock1Ptr->gabbyAndTyData.playerUsedAnItem = FALSE; + gSaveBlock1Ptr->gabbyAndTyData.playerUsedHealingItem = FALSE; gSaveBlock1Ptr->gabbyAndTyData.playerThrewABall = FALSE; gSaveBlock1Ptr->gabbyAndTyData.onAir = FALSE; gSaveBlock1Ptr->gabbyAndTyData.valA_5 = 0; gSaveBlock1Ptr->gabbyAndTyData.battleTookMoreThanOneTurn2 = FALSE; gSaveBlock1Ptr->gabbyAndTyData.playerLostAMon2 = FALSE; - gSaveBlock1Ptr->gabbyAndTyData.playerUsedAnItem2 = FALSE; + gSaveBlock1Ptr->gabbyAndTyData.playerUsedHealingItem2 = FALSE; gSaveBlock1Ptr->gabbyAndTyData.playerThrewABall2 = FALSE; gSaveBlock1Ptr->gabbyAndTyData.valB_4 = 0; gSaveBlock1Ptr->gabbyAndTyData.mapnum = 0; @@ -946,13 +946,13 @@ void GabbyAndTyBeforeInterview(void) { gSaveBlock1Ptr->gabbyAndTyData.playerLostAMon = FALSE; } - if (gBattleResults.unk3 != 0) + if (gBattleResults.numHealingItemsUsed != 0) { - gSaveBlock1Ptr->gabbyAndTyData.playerUsedAnItem = TRUE; + gSaveBlock1Ptr->gabbyAndTyData.playerUsedHealingItem = TRUE; } else { - gSaveBlock1Ptr->gabbyAndTyData.playerUsedAnItem = FALSE; + gSaveBlock1Ptr->gabbyAndTyData.playerUsedHealingItem = FALSE; } if (!gBattleResults.usedMasterBall) { @@ -980,7 +980,7 @@ void GabbyAndTyAfterInterview(void) { gSaveBlock1Ptr->gabbyAndTyData.battleTookMoreThanOneTurn2 = gSaveBlock1Ptr->gabbyAndTyData.battleTookMoreThanOneTurn; gSaveBlock1Ptr->gabbyAndTyData.playerLostAMon2 = gSaveBlock1Ptr->gabbyAndTyData.playerLostAMon; - gSaveBlock1Ptr->gabbyAndTyData.playerUsedAnItem2 = gSaveBlock1Ptr->gabbyAndTyData.playerUsedAnItem; + gSaveBlock1Ptr->gabbyAndTyData.playerUsedHealingItem2 = gSaveBlock1Ptr->gabbyAndTyData.playerUsedHealingItem; gSaveBlock1Ptr->gabbyAndTyData.playerThrewABall2 = gSaveBlock1Ptr->gabbyAndTyData.playerThrewABall; gSaveBlock1Ptr->gabbyAndTyData.onAir = TRUE; gSaveBlock1Ptr->gabbyAndTyData.mapnum = gMapHeader.regionMapSectionId; @@ -1027,7 +1027,7 @@ u8 GabbyAndTyGetLastBattleTrivia(void) { return 2; } - if (gSaveBlock1Ptr->gabbyAndTyData.playerUsedAnItem2) + if (gSaveBlock1Ptr->gabbyAndTyData.playerUsedHealingItem2) { return 3; } @@ -6141,7 +6141,7 @@ void DoTVShowInSearchOfTrainers(void) { sTVShowState = 5; } - else if (gSaveBlock1Ptr->gabbyAndTyData.playerUsedAnItem) + else if (gSaveBlock1Ptr->gabbyAndTyData.playerUsedHealingItem) { sTVShowState = 6; } |