summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle.h17
-rw-r--r--include/battle_controllers.h4
-rw-r--r--include/battle_message.h12
-rw-r--r--include/battle_move_effects.h4
-rw-r--r--include/battle_script_commands.h6
-rw-r--r--include/battle_scripts.h640
-rw-r--r--include/berry.h10
-rw-r--r--include/berry_blender.h8
-rw-r--r--include/decompress.h2
-rw-r--r--include/flags.h1
-rw-r--r--include/gba/m4a_internal.h2
-rw-r--r--include/item_menu_icons.h6
-rw-r--r--include/items.h4
-rw-r--r--include/link.h3
-rw-r--r--include/menu.h3
-rw-r--r--include/new_menu_helpers.h1
-rw-r--r--include/pokeblock.h22
-rw-r--r--include/pokemon.h4
-rw-r--r--include/text.h3
-rw-r--r--include/tv.h1
-rw-r--r--include/unk_text_util.h9
21 files changed, 723 insertions, 39 deletions
diff --git a/include/battle.h b/include/battle.h
index 0939c92b6..c172cb0f6 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -272,6 +272,8 @@
#define BS_GET_TARGET 0
#define BS_GET_ATTACKER 1
#define BS_GET_EFFECT_BANK 2
+#define BS_GET_gBank1 3
+#define BS_GET_BANK_0 7
#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update
#define BS_GET_ATTACKER_SIDE 8 // for atk1E_jumpifability
#define BS_GET_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability
@@ -704,13 +706,6 @@ struct BattleStruct
extern struct BattleStruct* gBattleStruct;
-#define MEME_ACCESS_U8(structName, structPtr, arrayId, offsetField, value) \
-{ \
- u8* var2 = (u8*)((u32)(arrayId)); \
- var2 = (u32)(structPtr) + var2; \
- var2[offsetof(struct structName, offsetField)] = value; \
-}
-
#define GET_MOVE_TYPE(move, typeArg) \
{ \
if (gBattleStruct->dynamicMoveType) \
@@ -835,20 +830,20 @@ extern struct BattleStruct* gBattleStruct;
#define GET_STAT_BUFF_VALUE(n)(((n >> 4) & 7)) // 0x10, 0x20, 0x40
#define STAT_BUFF_NEGATIVE 0x80 // 0x80, the sign bit
-#define SET_STAT_BUFF_ID(n)((n & 0xF))
#define SET_STAT_BUFF_VALUE(n)(((s8)(((s8)(n) << 4)) & 0xF0))
+#define SET_STATCHANGER(statId, stage, goesDown)(gBattleScripting.statChanger = (statId) + (stage << 4) + (goesDown << 7))
+
struct BattleScripting
{
s32 painSplitHp;
s32 bideDmg;
u8 multihitString[6];
u8 dmgMultiplier;
- u8 field_F;
+ u8 twoTurnsMoveStringId;
u8 animArg1;
u8 animArg2;
- u8 field_12;
- u8 field_13;
+ u16 tripleKickPower;
u8 atk49_state;
u8 field_15;
u8 field_16;
diff --git a/include/battle_controllers.h b/include/battle_controllers.h
index 973a723e0..c69cb1017 100644
--- a/include/battle_controllers.h
+++ b/include/battle_controllers.h
@@ -198,7 +198,7 @@ void EmitBallThrowAnim(u8 bufferId, u8 caseId);
void EmitPause(u8 bufferId, u8 toWait, void *data); // unused
void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit);
void EmitPrintString(u8 bufferId, u16 stringId);
-void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringId);
+void EmitPrintSelectionString(u8 bufferId, u16 stringId);
void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2);
void EmitUnknownYesNoBox(u8 bufferId);
void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);
@@ -224,7 +224,7 @@ void EmitCmd39(u8 bufferId); // unused
void EmitCmd40(u8 bufferId); // unused
void EmitHitAnimation(u8 bufferId);
void EmitCmd42(u8 bufferId);
-void EmitEffectivenessSound(u8 bufferId, u16 songId);
+void EmitPlaySE(u8 bufferId, u16 songId);
void EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM);
void EmitFaintingCry(u8 bufferId);
void EmitIntroSlide(u8 bufferId, u8 terrainId);
diff --git a/include/battle_message.h b/include/battle_message.h
index 3f9b38cad..30ddca469 100644
--- a/include/battle_message.h
+++ b/include/battle_message.h
@@ -67,13 +67,21 @@
#define B_BUFF_STAT 5
#define B_BUFF_SPECIES 6
#define B_BUFF_MON_NICK 7
-#define B_BUFF_NEGATIVE_FLAVOUR 8
+#define B_BUFF_NEGATIVE_FLAVOR 8
#define B_BUFF_ABILITY 9
#define B_BUFF_ITEM 10
#define B_BUFF_PLACEHOLDER_BEGIN 0xFD
#define B_BUFF_EOS 0xFF
+#define PREPARE_FLAVOR_BUFFER(textVar, flavorId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_NEGATIVE_FLAVOR; \
+ textVar[2] = flavorId; \
+ textVar[3] = B_BUFF_EOS; \
+}
+
#define PREPARE_STAT_BUFFER(textVar, statId) \
{ \
textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
@@ -189,7 +197,7 @@
struct StringInfoBattle
{
u16 currentMove;
- u16 lastMove;
+ u16 originallyUsedMove;
u16 lastItem;
u8 lastAbility;
u8 scrActive;
diff --git a/include/battle_move_effects.h b/include/battle_move_effects.h
index 4a9415379..23c19ded7 100644
--- a/include/battle_move_effects.h
+++ b/include/battle_move_effects.h
@@ -153,12 +153,12 @@ enum
EFFECT_EARTHQUAKE,
EFFECT_FUTURE_SIGHT,
EFFECT_GUST,
- EFFECT_FLINCH_HIT_2, // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
+ EFFECT_STOMP, // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
EFFECT_SOLARBEAM,
EFFECT_THUNDER,
EFFECT_TELEPORT,
EFFECT_BEAT_UP,
- EFFECT_FLY,
+ EFFECT_SEMI_INVULNERABLE,
EFFECT_DEFENSE_CURL,
EFFECT_SOFTBOILED,
EFFECT_FAKE_OUT,
diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h
index ebfeabccc..80fabaa64 100644
--- a/include/battle_script_commands.h
+++ b/include/battle_script_commands.h
@@ -1,6 +1,10 @@
#ifndef GUARD_BATTLE_SCRIPT_COMMANDS_H
#define GUARD_BATTLE_SCRIPT_COMMANDS_H
+#define NO_ACC_CALC 0xFFFE
+#define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF
+#define ACC_CURR_MOVE 0
+
#define CMP_EQUAL 0x0
#define CMP_NOT_EQUAL 0x1
#define CMP_GREATER_THAN 0x2
@@ -21,7 +25,7 @@
#define VARIOUS_CANCEL_MULTI_TURN_MOVES 0
#define VARIOUS_SET_MAGIC_COAT_TARGET 1
-#define VARIOUS_CAN_RUN_FROM_BATTLE 2
+#define VARIOUS_IS_RUNNING_IMPOSSIBLE 2
#define VARIOUS_GET_MOVE_TARGET 3
#define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5
#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6
diff --git a/include/battle_scripts.h b/include/battle_scripts.h
new file mode 100644
index 000000000..5131778a8
--- /dev/null
+++ b/include/battle_scripts.h
@@ -0,0 +1,640 @@
+#ifndef GUARD_BATTLE_SCRIPTS_H
+#define GUARD_BATTLE_SCRIPTS_H
+
+extern const u8 BattleScript_EffectHit[];
+extern const u8 BattleScript_HitFromAtkCanceler[];
+extern const u8 BattleScript_HitFromAccCheck[];
+extern const u8 BattleScript_HitFromAtkString[];
+extern const u8 BattleScript_HitFromCritCalc[];
+extern const u8 BattleScript_HitFromAtkAnimation[];
+extern const u8 BattleScript_MoveEnd[];
+extern const u8 BattleScript_MakeMoveMissed[];
+extern const u8 BattleScript_PrintMoveMissed[];
+extern const u8 BattleScript_MoveMissedPause[];
+extern const u8 BattleScript_MoveMissed[];
+extern const u8 BattleScript_EffectSleep[];
+extern const u8 BattleScript_AlreadyAsleep[];
+extern const u8 BattleScript_WasntAffected[];
+extern const u8 BattleScript_CantMakeAsleep[];
+extern const u8 BattleScript_EffectPoisonHit[];
+extern const u8 BattleScript_EffectAbsorb[];
+extern const u8 BattleScript_82D8B26[];
+extern const u8 BattleScript_82D8B2E[];
+extern const u8 BattleScript_82D8B45[];
+extern const u8 BattleScript_EffectBurnHit[];
+extern const u8 BattleScript_EffectFreezeHit[];
+extern const u8 BattleScript_EffectParalyzeHit[];
+extern const u8 BattleScript_EffectExplosion[];
+extern const u8 BattleScript_82D8B94[];
+extern const u8 BattleScript_82D8B96[];
+extern const u8 BattleScript_82D8BCF[];
+extern const u8 BattleScript_82D8BEA[];
+extern const u8 BattleScript_EffectDreamEater[];
+extern const u8 BattleScript_82D8C0E[];
+extern const u8 BattleScript_82D8C18[];
+extern const u8 BattleScript_82D8C56[];
+extern const u8 BattleScript_EffectMirrorMove[];
+extern const u8 BattleScript_EffectAttackUp[];
+extern const u8 BattleScript_EffectDefenseUp[];
+extern const u8 BattleScript_EffectSpecialAttackUp[];
+extern const u8 BattleScript_EffectEvasionUp[];
+extern const u8 BattleScript_EffectStatUp[];
+extern const u8 BattleScript_EffectStatUpAfterAtkCanceler[];
+extern const u8 BattleScript_StatUpAttackAnim[];
+extern const u8 BattleScript_StatUpDoAnim[];
+extern const u8 BattleScript_StatUpPrintString[];
+extern const u8 BattleScript_StatUpEnd[];
+extern const u8 BattleScript_StatUp[];
+extern const u8 BattleScript_EffectAttackDown[];
+extern const u8 BattleScript_EffectDefenseDown[];
+extern const u8 BattleScript_EffectSpeedDown[];
+extern const u8 BattleScript_EffectAccuracyDown[];
+extern const u8 BattleScript_EffectEvasionDown[];
+extern const u8 BattleScript_EffectStatDown[];
+extern const u8 BattleScript_StatDownDoAnim[];
+extern const u8 BattleScript_StatDownPrintString[];
+extern const u8 BattleScript_82D8D60[];
+extern const u8 BattleScript_StatDown[];
+extern const u8 BattleScript_EffectHaze[];
+extern const u8 BattleScript_EffectBide[];
+extern const u8 BattleScript_EffectRampage[];
+extern const u8 BattleScript_82D8DAE[];
+extern const u8 BattleScript_EffectRoar[];
+extern const u8 BattleScript_EffectMultiHit[];
+extern const u8 BattleScript_82D8DFD[];
+extern const u8 BattleScript_82D8E1F[];
+extern const u8 BattleScript_82D8E71[];
+extern const u8 BattleScript_82D8E74[];
+extern const u8 BattleScript_82D8E93[];
+extern const u8 BattleScript_EffectConversion[];
+extern const u8 BattleScript_EffectFlinchHit[];
+extern const u8 BattleScript_EffectRestoreHp[];
+extern const u8 BattleScript_EffectToxic[];
+extern const u8 BattleScript_AlreadyPoisoned[];
+extern const u8 BattleScript_ImmunityProtected[];
+extern const u8 BattleScript_EffectPayDay[];
+extern const u8 BattleScript_EffectLightScreen[];
+extern const u8 BattleScript_EffectTriAttack[];
+extern const u8 BattleScript_EffectRest[];
+extern const u8 BattleScript_RestCantSleep[];
+extern const u8 BattleScript_RestIsAlreadyAsleep[];
+extern const u8 BattleScript_EffectOHKO[];
+extern const u8 BattleScript_KOFail[];
+extern const u8 BattleScript_EffectRazorWind[];
+extern const u8 BattleScript_TwoTurnMovesSecondTurn[];
+extern const u8 BattleScriptFirstChargingTurn[];
+extern const u8 BattleScript_EffectSuperFang[];
+extern const u8 BattleScript_EffectDragonRage[];
+extern const u8 BattleScript_EffectTrap[];
+extern const u8 BattleScript_DoWrapEffect[];
+extern const u8 BattleScript_EffectDoubleHit[];
+extern const u8 BattleScript_EffectRecoilIfMiss[];
+extern const u8 BattleScript_82D9135[];
+extern const u8 BattleScript_EffectMist[];
+extern const u8 BattleScript_EffectFocusEnergy[];
+extern const u8 BattleScript_EffectRecoil[];
+extern const u8 BattleScript_EffectConfuse[];
+extern const u8 BattleScript_AlreadyConfused[];
+extern const u8 BattleScript_EffectAttackUp2[];
+extern const u8 BattleScript_EffectDefenseUp2[];
+extern const u8 BattleScript_EffectSpeedUp2[];
+extern const u8 BattleScript_EffectSpecialAttackUp2[];
+extern const u8 BattleScript_EffectSpecialDefenseUp2[];
+extern const u8 BattleScript_EffectTransform[];
+extern const u8 BattleScript_EffectAttackDown2[];
+extern const u8 BattleScript_EffectDefenseDown2[];
+extern const u8 BattleScript_EffectSpeedDown2[];
+extern const u8 BattleScript_EffectSpecialDefenseDown2[];
+extern const u8 BattleScript_EffectReflect[];
+extern const u8 BattleScript_PrintReflectLightScreenSafeguardString[];
+extern const u8 BattleScript_EffectPoison[];
+extern const u8 BattleScript_EffectParalyze[];
+extern const u8 BattleScript_AlreadyParalyzed[];
+extern const u8 BattleScript_LimberProtected[];
+extern const u8 BattleScript_EffectAttackDownHit[];
+extern const u8 BattleScript_EffectDefenseDownHit[];
+extern const u8 BattleScript_EffectSpeedDownHit[];
+extern const u8 BattleScript_EffectSpecialAttackDownHit[];
+extern const u8 BattleScript_EffectSpecialDefenseDownHit[];
+extern const u8 BattleScript_EffectAccuracyDownHit[];
+extern const u8 BattleScript_EffectSkyAttack[];
+extern const u8 BattleScript_EffectConfuseHit[];
+extern const u8 BattleScript_EffectTwineedle[];
+extern const u8 BattleScript_EffectSubstitute[];
+extern const u8 BattleScript_SubstituteAnim[];
+extern const u8 BattleScript_SubstituteString[];
+extern const u8 BattleScript_AlreadyHasSubstitute[];
+extern const u8 BattleScript_EffectRecharge[];
+extern const u8 BattleScript_MoveUsedMustRecharge[];
+extern const u8 BattleScript_EffectRage[];
+extern const u8 BattleScript_RageMiss[];
+extern const u8 BattleScript_EffectMimic[];
+extern const u8 BattleScript_EffectMetronome[];
+extern const u8 BattleScript_EffectLeechSeed[];
+extern const u8 BattleScript_DoLeechSeed[];
+extern const u8 BattleScript_EffectSplash[];
+extern const u8 BattleScript_EffectDisable[];
+extern const u8 BattleScript_EffectLevelDamage[];
+extern const u8 BattleScript_EffectPsywave[];
+extern const u8 BattleScript_EffectCounter[];
+extern const u8 BattleScript_EffectEncore[];
+extern const u8 BattleScript_EffectPainSplit[];
+extern const u8 BattleScript_EffectSnore[];
+extern const u8 BattleScript_SnoreIsAsleep[];
+extern const u8 BattleScript_DoSnore[];
+extern const u8 BattleScript_EffectConversion2[];
+extern const u8 BattleScript_EffectLockOn[];
+extern const u8 BattleScript_EffectSketch[];
+extern const u8 BattleScript_EffectSleepTalk[];
+extern const u8 BattleScript_SleepTalkIsAsleep[];
+extern const u8 BattleScript_SleepTalkUsingMove[];
+extern const u8 BattleScript_EffectDestinyBond[];
+extern const u8 BattleScript_EffectFlail[];
+extern const u8 BattleScript_EffectSpite[];
+extern const u8 BattleScript_EffectHealBell[];
+extern const u8 BattleScript_CheckHealBellMon2Unaffected[];
+extern const u8 BattleScript_PartyHealEnd[];
+extern const u8 BattleScript_EffectTripleKick[];
+extern const u8 BattleScript_TripleKickLoop[];
+extern const u8 BattleScript_DoTripleKickAttack[];
+extern const u8 BattleScript_TripleKickNoMoreHits[];
+extern const u8 BattleScript_TripleKickPrintStrings[];
+extern const u8 BattleScript_TripleKickEnd[];
+extern const u8 BattleScript_EffectThief[];
+extern const u8 BattleScript_EffectMeanLook[];
+extern const u8 BattleScript_EffectNightmare[];
+extern const u8 BattleScript_NightmareWorked[];
+extern const u8 BattleScript_EffectMinimize[];
+extern const u8 BattleScript_EffectCurse[];
+extern const u8 BattleScript_CurseTrySpeed[];
+extern const u8 BattleScript_CurseTryAttack[];
+extern const u8 BattleScript_CurseTryDefence[];
+extern const u8 BattleScript_CurseEnd[];
+extern const u8 BattleScript_GhostCurse[];
+extern const u8 BattleScript_DoGhostCurse[];
+extern const u8 BattleScript_EffectProtect[];
+extern const u8 BattleScript_EffectSpikes[];
+extern const u8 BattleScript_EffectForesight[];
+extern const u8 BattleScript_EffectPerishSong[];
+extern const u8 BattleScript_PerishSongLoop[];
+extern const u8 BattleScript_PerishSongLoopIncrement[];
+extern const u8 BattleScript_PerishSongNotAffected[];
+extern const u8 BattleScript_EffectSandstorm[];
+extern const u8 BattleScript_EffectRollout[];
+extern const u8 BattleScript_RolloutCheckAccuracy[];
+extern const u8 BattleScript_RolloutHit[];
+extern const u8 BattleScript_EffectSwagger[];
+extern const u8 BattleScript_SwaggerTryConfuse[];
+extern const u8 BattleScript_EffectFuryCutter[];
+extern const u8 BattleScript_FuryCutterHit[];
+extern const u8 BattleScript_EffectAttract[];
+extern const u8 BattleScript_EffectReturn[];
+extern const u8 BattleScript_EffectPresent[];
+extern const u8 BattleScript_EffectSafeguard[];
+extern const u8 BattleScript_EffectThawHit[];
+extern const u8 BattleScript_EffectMagnitude[];
+extern const u8 BattleScript_EffectBatonPass[];
+extern const u8 BattleScript_EffectRapidSpin[];
+extern const u8 BattleScript_EffectSonicboom[];
+extern const u8 BattleScript_EffectMorningSun[];
+extern const u8 BattleScript_EffectHiddenPower[];
+extern const u8 BattleScript_EffectRainDance[];
+extern const u8 BattleScript_MoveWeatherChange[];
+extern const u8 BattleScript_EffectSunnyDay[];
+extern const u8 BattleScript_EffectDefenseUpHit[];
+extern const u8 BattleScript_EffectAttackUpHit[];
+extern const u8 BattleScript_EffectAllStatsUpHit[];
+extern const u8 BattleScript_EffectBellyDrum[];
+extern const u8 BattleScript_EffectPsychUp[];
+extern const u8 BattleScript_EffectMirrorCoat[];
+extern const u8 BattleScript_EffectSkullBash[];
+extern const u8 BattleScript_SkullBashEnd[];
+extern const u8 BattleScript_EffectTwister[];
+extern const u8 BattleScript_FlinchEffect[];
+extern const u8 BattleScript_EffectEarthquake[];
+extern const u8 BattleScript_82D9C44[];
+extern const u8 BattleScript_82D9C64[];
+extern const u8 BattleScript_82D9C73[];
+extern const u8 BattleScript_82D9CAC[];
+extern const u8 BattleScript_EffectFutureSight[];
+extern const u8 BattleScript_EffectGust[];
+extern const u8 BattleScript_EffectStomp[];
+extern const u8 BattleScript_EffectSolarbeam[];
+extern const u8 BattleScript_SolarbeamDecideTurn[];
+extern const u8 BattleScript_SolarbeamOnFirstTurn[];
+extern const u8 BattleScript_EffectThunder[];
+extern const u8 BattleScript_EffectTeleport[];
+extern const u8 BattleScript_EffectBeatUp[];
+extern const u8 BattleScript_BeatUpLoop[];
+extern const u8 BattleScript_BeatUpAttack[];
+extern const u8 BattleScript_BeatUpEnd[];
+extern const u8 BattleScript_EffectSemiInvulnerable[];
+extern const u8 BattleScript_FirstTurnBounce[];
+extern const u8 BattleScript_FirstTurnDive[];
+extern const u8 BattleScript_FirstTurnFly[];
+extern const u8 BattleScript_FirstTurnSemiInvulnerable[];
+extern const u8 BattleScript_SecondTurnSemiInvulnerable[];
+extern const u8 BattleScript_SemiInvulnerableTryHit[];
+extern const u8 BattleScript_SemiInvulnerableMiss[];
+extern const u8 BattleScript_EffectDefenseCurl[];
+extern const u8 BattleScript_DefenseCurlDoStatUpAnim[];
+extern const u8 BattleScript_EffectSoftboiled[];
+extern const u8 BattleScript_PresentHealTarget[];
+extern const u8 BattleScript_AlreadyAtFullHp[];
+extern const u8 BattleScript_EffectFakeOut[];
+extern const u8 BattleScript_ButItFailedAtkStringPpReduce[];
+extern const u8 BattleScript_ButItFailedPpReduce[];
+extern const u8 BattleScript_ButItFailed[];
+extern const u8 BattleScript_NotAffected[];
+extern const u8 BattleScript_EffectUproar[];
+extern const u8 BattleScript_UproarHit[];
+extern const u8 BattleScript_EffectStockpile[];
+extern const u8 BattleScript_EffectSpitUp[];
+extern const u8 BattleScript_SpitUpFail[];
+extern const u8 BattleScript_82D9FA2[];
+extern const u8 BattleScript_EffectSwallow[];
+extern const u8 BattleScript_SwallowFail[];
+extern const u8 BattleScript_EffectHail[];
+extern const u8 BattleScript_EffectTorment[];
+extern const u8 BattleScript_EffectFlatter[];
+extern const u8 BattleScript_FlatterTryConfuse[];
+extern const u8 BattleScript_EffectWillOWisp[];
+extern const u8 BattleScript_WaterVeilPrevents[];
+extern const u8 BattleScript_AlreadyBurned[];
+extern const u8 BattleScript_EffectMemento[];
+extern const u8 BattleScript_82DA119[];
+extern const u8 BattleScript_82DA13C[];
+extern const u8 BattleScript_82DA148[];
+extern const u8 BattleScript_82DA153[];
+extern const u8 BattleScript_82DA15A[];
+extern const u8 BattleScript_EffectFacade[];
+extern const u8 BattleScript_FacadeDoubleDmg[];
+extern const u8 BattleScript_EffectFocusPunch[];
+extern const u8 BattleScript_EffectSmellingsalt[];
+extern const u8 BattleScript_82DA1BA[];
+extern const u8 BattleScript_EffectFollowMe[];
+extern const u8 BattleScript_EffectNaturePower[];
+extern const u8 BattleScript_EffectCharge[];
+extern const u8 BattleScript_EffectTaunt[];
+extern const u8 BattleScript_EffectHelpingHand[];
+extern const u8 BattleScript_EffectTrick[];
+extern const u8 BattleScript_EffectRolePlay[];
+extern const u8 BattleScript_EffectWish[];
+extern const u8 BattleScript_EffectAssist[];
+extern const u8 BattleScript_EffectIngrain[];
+extern const u8 BattleScript_EffectSuperpower[];
+extern const u8 BattleScript_EffectMagicCoat[];
+extern const u8 BattleScript_EffectRecycle[];
+extern const u8 BattleScript_EffectRevenge[];
+extern const u8 BattleScript_EffectBrickBreak[];
+extern const u8 BattleScript_82DA306[];
+extern const u8 BattleScript_82DA319[];
+extern const u8 BattleScript_EffectYawn[];
+extern const u8 BattleScript_82DA378[];
+extern const u8 BattleScript_82DA382[];
+extern const u8 BattleScript_EffectKnockOff[];
+extern const u8 BattleScript_EffectEndeavor[];
+extern const u8 BattleScript_EffectEruption[];
+extern const u8 BattleScript_EffectSkillSwap[];
+extern const u8 BattleScript_EffectImprison[];
+extern const u8 BattleScript_EffectRefresh[];
+extern const u8 BattleScript_EffectGrudge[];
+extern const u8 BattleScript_EffectSnatch[];
+extern const u8 BattleScript_EffectLowKick[];
+extern const u8 BattleScript_EffectSecretPower[];
+extern const u8 BattleScript_EffectDoubleEdge[];
+extern const u8 BattleScript_EffectTeeterDance[];
+extern const u8 BattleScript_82DA47B[];
+extern const u8 BattleScript_82DA4C7[];
+extern const u8 BattleScript_82DA4D0[];
+extern const u8 BattleScript_82DA4E5[];
+extern const u8 BattleScript_82DA4F3[];
+extern const u8 BattleScript_82DA501[];
+extern const u8 BattleScript_82DA50F[];
+extern const u8 BattleScript_82DA520[];
+extern const u8 BattleScript_EffectMudSport[];
+extern const u8 BattleScript_EffectPoisonFang[];
+extern const u8 BattleScript_EffectWeatherBall[];
+extern const u8 BattleScript_EffectOverheat[];
+extern const u8 BattleScript_EffectTickle[];
+extern const u8 BattleScript_TickleDoMoveAnim[];
+extern const u8 BattleScript_TickleTryLowerDef[];
+extern const u8 BattleScript_TickleEnd[];
+extern const u8 BattleScript_CantLowerMultipleStats[];
+extern const u8 BattleScript_EffectCosmicPower[];
+extern const u8 BattleScript_CosmicPowerDoMoveAnim[];
+extern const u8 BattleScript_CosmicPowerTrySpDef[];
+extern const u8 BattleScript_CosmicPowerEnd[];
+extern const u8 BattleScript_EffectSkyUppercut[];
+extern const u8 BattleScript_EffectBulkUp[];
+extern const u8 BattleScript_BulkUpDoMoveAnim[];
+extern const u8 BattleScript_BulkUpTryDef[];
+extern const u8 BattleScript_BulkUpEnd[];
+extern const u8 BattleScript_EffectCalmMind[];
+extern const u8 BattleScript_CalmMindDoMoveAnim[];
+extern const u8 BattleScript_CalmMindTrySpDef[];
+extern const u8 BattleScript_CalmMindEnd[];
+extern const u8 BattleScript_CantRaiseMultipleStats[];
+extern const u8 BattleScript_EffectDragonDance[];
+extern const u8 BattleScript_DragonDanceDoMoveAnim[];
+extern const u8 BattleScript_DragonDanceTrySpeed[];
+extern const u8 BattleScript_DragonDanceEnd[];
+extern const u8 BattleScript_EffectCamouflage[];
+extern const u8 BattleScript_FaintAttacker[];
+extern const u8 BattleScript_FaintTarget[];
+extern const u8 BattleScript_82DA7C4[];
+extern const u8 BattleScript_82DA7CD[];
+extern const u8 BattleScript_82DA816[];
+extern const u8 BattleScript_82DA8D0[];
+extern const u8 BattleScript_82DA8F5[];
+extern const u8 BattleScript_82DA8F6[];
+extern const u8 BattleScript_82DA8FC[];
+extern const u8 BattleScript_82DA908[];
+extern const u8 BattleScript_82DA92C[];
+extern const u8 BattleScript_LocalTrainerBattleWon[];
+extern const u8 BattleScript_LocalTwoTrainersDefeated[];
+extern const u8 BattleScript_LocalBattleWonLoseTexts[];
+extern const u8 BattleScript_LocalBattleWonReward[];
+extern const u8 BattleScript_PayDayMoneyAndPickUpItems[];
+extern const u8 BattleScript_LocalBattleLost[];
+extern const u8 BattleScript_LocalBattleLostPrintWhiteOut[];
+extern const u8 BattleScript_LocalBattleLostEnd[];
+extern const u8 BattleScript_CheckDomeDrew[];
+extern const u8 BattleScript_LocalBattleLostPrintTrainersWinText[];
+extern const u8 BattleScript_LocalBattleLostDoTrainer2WinText[];
+extern const u8 BattleScript_LocalBattleLostEnd_[];
+extern const u8 BattleScript_82DAA0B[];
+extern const u8 BattleScript_82DAA31[];
+extern const u8 BattleScript_LinkBattleWonOrLost[];
+extern const u8 BattleScript_LinkBattleWonOrLostWaitEnd[];
+extern const u8 BattleScript_82DAA5C[];
+extern const u8 BattleScript_82DAA83[];
+extern const u8 BattleScript_FrontierTrainerBattleWon[];
+extern const u8 BattleScript_82DAAAB[];
+extern const u8 BattleScript_82DAAAE[];
+extern const u8 BattleScript_82DAACB[];
+extern const u8 BattleScript_82DAADA[];
+extern const u8 BattleScript_SmokeBallEscape[];
+extern const u8 BattleScript_RanAwayUsingMonAbility[];
+extern const u8 BattleScript_GotAwaySafely[];
+extern const u8 BattleScript_WildMonFled[];
+extern const u8 BattleScript_PrintCantRunFromTrainer[];
+extern const u8 BattleScript_PrintFailedToRunString[];
+extern const u8 BattleScript_PrintCantEscapeFromBattle[];
+extern const u8 BattleScript_PrintFullBox[];
+extern const u8 BattleScript_ActionSwitch[];
+extern const u8 BattleScript_82DAB35[];
+extern const u8 BattleScript_82DAB37[];
+extern const u8 BattleScript_82DAB44[];
+extern const u8 BattleScript_82DAB77[];
+extern const u8 BattleScript_82DABB8[];
+extern const u8 BattleScript_Pausex20[];
+extern const u8 BattleScript_LevelUp[];
+extern const u8 BattleScript_TryLearnMoveLoop[];
+extern const u8 BattleScript_AskToLearnMove[];
+extern const u8 BattleScript_ForgotAndLearnedNewMove[];
+extern const u8 BattleScript_LearnedNewMove[];
+extern const u8 BattleScript_LearnMoveReturn[];
+extern const u8 BattleScript_RainContinuesOrEnds[];
+extern const u8 BattleScript_RainContinuesOrEndsEnd[];
+extern const u8 BattleScript_DamagingWeatherContinues[];
+extern const u8 BattleScript_DamagingWeatherLoop[];
+extern const u8 BattleScript_DamagingWeatherLoopIncrement[];
+extern const u8 BattleScript_DamagingWeatherContinuesEnd[];
+extern const u8 BattleScript_SandStormHailEnds[];
+extern const u8 BattleScript_SunlightContinues[];
+extern const u8 BattleScript_SunlightFaded[];
+extern const u8 BattleScript_OverworldWeatherStarts[];
+extern const u8 BattleScript_SideStatusWoreOff[];
+extern const u8 BattleScript_SafeguardProtected[];
+extern const u8 BattleScript_SafeguardEnds[];
+extern const u8 BattleScript_LeechSeedTurnDrain[];
+extern const u8 BattleScript_82DAD47[];
+extern const u8 BattleScript_82DAD4D[];
+extern const u8 BattleScript_BideStoringEnergy[];
+extern const u8 BattleScript_BideAttack[];
+extern const u8 BattleScript_BideNoEnergyToAttack[];
+extern const u8 BattleScript_82DADD8[];
+extern const u8 BattleScript_82DADF1[];
+extern const u8 BattleScript_MistProtected[];
+extern const u8 BattleScript_RageIsBuilding[];
+extern const u8 BattleScript_MoveUsedIsDisabled[];
+extern const u8 BattleScript_SelectingDisabledMove[];
+extern const u8 BattleScript_DisabledNoMore[];
+extern const u8 BattleScript_82DAE2A[];
+extern const u8 BattleScript_82DAE2D[];
+extern const u8 BattleScript_EncoredNoMore[];
+extern const u8 BattleScript_DestinyBondTakesLife[];
+extern const u8 BattleScript_SpikesOnAttacker[];
+extern const u8 BattleScript_82DAE7A[];
+extern const u8 BattleScript_SpikesOnTarget[];
+extern const u8 BattleScript_82DAEB1[];
+extern const u8 BattleScript_SpikesOngBank1[];
+extern const u8 BattleScript_82DAEE8[];
+extern const u8 BattleScript_82DAEFE[];
+extern const u8 BattleScript_PerishSongTakesLife[];
+extern const u8 BattleScript_PerishSongCountGoesDown[];
+extern const u8 BattleScript_AllStatsUp[];
+extern const u8 BattleScript_82DAF54[];
+extern const u8 BattleScript_82DAF72[];
+extern const u8 BattleScript_82DAF86[];
+extern const u8 BattleScript_82DAF9A[];
+extern const u8 BattleScript_82DAFAE[];
+extern const u8 BattleScript_82DAFC2[];
+extern const u8 BattleScript_RapidSpinAway[];
+extern const u8 BattleScript_WrapFree[];
+extern const u8 BattleScript_LeechSeedFree[];
+extern const u8 BattleScript_SpikesFree[];
+extern const u8 BattleScript_MonTookFutureAttack[];
+extern const u8 BattleScript_82DB001[];
+extern const u8 BattleScript_82DB008[];
+extern const u8 BattleScript_82DB020[];
+extern const u8 BattleScript_82DB027[];
+extern const u8 BattleScript_82DB03F[];
+extern const u8 BattleScript_82DB058[];
+extern const u8 BattleScript_NoMovesLeft[];
+extern const u8 BattleScript_SelectingMoveWithNoPP[];
+extern const u8 BattleScript_NoPPForMove[];
+extern const u8 BattleScript_SelectingTormentedMove[];
+extern const u8 BattleScript_82DB08D[];
+extern const u8 BattleScript_82DB098[];
+extern const u8 BattleScript_SelectingNotAllowedMoveTaunt[];
+extern const u8 BattleScript_MoveUsedIsTaunted[];
+extern const u8 BattleScript_82DB0AF[];
+extern const u8 BattleScript_WishComesTrue[];
+extern const u8 BattleScript_82DB0DE[];
+extern const u8 BattleScript_IngrainTurnHeal[];
+extern const u8 BattleScript_82DB109[];
+extern const u8 BattleScript_AtkDefDown[];
+extern const u8 BattleScript_82DB144[];
+extern const u8 BattleScript_82DB167[];
+extern const u8 BattleScript_KnockedOff[];
+extern const u8 BattleScript_MoveUsedIsImprisoned[];
+extern const u8 BattleScript_SelectingImprisionedMove[];
+extern const u8 BattleScript_82DB185[];
+extern const u8 BattleScript_GrudgeTakesPp[];
+extern const u8 BattleScript_MagicCoatBounce[];
+extern const u8 BattleScript_SnatchedMove[];
+extern const u8 BattleScript_EnduredMsg[];
+extern const u8 BattleScript_OneHitKOMsg[];
+extern const u8 BattleScript_SAtkDown2[];
+extern const u8 BattleScript_82DB1FE[];
+extern const u8 BattleScript_FocusPunchSetUp[];
+extern const u8 BattleScript_MoveUsedIsAsleep[];
+extern const u8 BattleScript_MoveUsedWokeUp[];
+extern const u8 BattleScript_MonWokeUpInUproar[];
+extern const u8 BattleScript_PoisonTurnDmg[];
+extern const u8 BattleScript_82DB243[];
+extern const u8 BattleScript_82DB245[];
+extern const u8 BattleScript_82DB25E[];
+extern const u8 BattleScript_BurnTurnDmg[];
+extern const u8 BattleScript_MoveUsedIsFrozen[];
+extern const u8 BattleScript_MoveUsedUnfroze[];
+extern const u8 BattleScript_DefrostedViaFireMove[];
+extern const u8 BattleScript_MoveUsedIsParalyzed[];
+extern const u8 BattleScript_MoveUsedFlinched[];
+extern const u8 BattleScript_PrintUproarOverTurns[];
+extern const u8 BattleScript_ThrashConfuses[];
+extern const u8 BattleScript_MoveUsedIsConfused[];
+extern const u8 BattleScript_82DB2D4[];
+extern const u8 BattleScript_82DB2FF[];
+extern const u8 BattleScript_MoveUsedIsConfusedNoMore[];
+extern const u8 BattleScript_PrintPayDayMoneyString[];
+extern const u8 BattleScript_WrapTurnDmg[];
+extern const u8 BattleScript_WrapEnds[];
+extern const u8 BattleScript_MoveUsedIsInLove[];
+extern const u8 BattleScript_MoveUsedIsParalyzedCantAttack[];
+extern const u8 BattleScript_NightmareTurnDmg[];
+extern const u8 BattleScript_CurseTurnDmg[];
+extern const u8 BattleScript_TargetPRLZHeal[];
+extern const u8 BattleScript_MoveEffectSleep[];
+extern const u8 BattleScript_82DB374[];
+extern const u8 BattleScript_YawnMakesAsleep[];
+extern const u8 BattleScript_MoveEffectPoison[];
+extern const u8 BattleScript_MoveEffectBurn[];
+extern const u8 BattleScript_MoveEffectFreeze[];
+extern const u8 BattleScript_MoveEffectParalysis[];
+extern const u8 BattleScript_MoveEffectUproar[];
+extern const u8 BattleScript_MoveEffectToxic[];
+extern const u8 BattleScript_MoveEffectPayDay[];
+extern const u8 BattleScript_MoveEffectWrap[];
+extern const u8 BattleScript_MoveEffectConfusion[];
+extern const u8 BattleScript_MoveEffectRecoil33[];
+extern const u8 BattleScript_DoRecoil33[];
+extern const u8 BattleScript_Recoil33End[];
+extern const u8 BattleScript_ItemSteal[];
+extern const u8 BattleScript_DrizzleActivates[];
+extern const u8 BattleScript_SpeedBoostActivates[];
+extern const u8 BattleScript_TraceActivates[];
+extern const u8 BattleScript_RainDishActivates[];
+extern const u8 BattleScript_SandstreamActivates[];
+extern const u8 BattleScript_ShedSkinActivates[];
+extern const u8 BattleScript_WeatherFormChanges[];
+extern const u8 BattleScript_WeatherFormChangesLoop[];
+extern const u8 BattleScript_CastformChange[];
+extern const u8 BattleScript_82DB4AF[];
+extern const u8 BattleScript_82DB4B8[];
+extern const u8 BattleScript_82DB4BE[];
+extern const u8 BattleScript_82DB4C1[];
+extern const u8 BattleScript_82DB4CD[];
+extern const u8 BattleScript_82DB510[];
+extern const u8 BattleScript_82DB51B[];
+extern const u8 BattleScript_82DB51C[];
+extern const u8 BattleScript_DroughtActivates[];
+extern const u8 BattleScript_TookAttack[];
+extern const u8 BattleScript_SturdyPreventsOHKO[];
+extern const u8 BattleScript_DampStopsExplosion[];
+extern const u8 BattleScript_MoveHPDrain_PPLoss[];
+extern const u8 BattleScript_MoveHPDrain[];
+extern const u8 BattleScript_MonMadeMoveUseless_PPLoss[];
+extern const u8 BattleScript_MonMadeMoveUseless[];
+extern const u8 BattleScript_FlashFireBoost_PPLoss[];
+extern const u8 BattleScript_FlashFireBoost[];
+extern const u8 BattleScript_82DB5B9[];
+extern const u8 BattleScript_AbilityNoStatLoss[];
+extern const u8 BattleScript_BRNPrevention[];
+extern const u8 BattleScript_PRLZPrevention[];
+extern const u8 BattleScript_PSNPrevention[];
+extern const u8 BattleScript_ObliviousPreventsAttraction[];
+extern const u8 BattleScript_FlinchPrevention[];
+extern const u8 BattleScript_OwnTempoPrevents[];
+extern const u8 BattleScript_SoundproofProtected[];
+extern const u8 BattleScript_AbilityNoSpecificStatLoss[];
+extern const u8 BattleScript_StickyHoldActivates[];
+extern const u8 BattleScript_ColorChangeActivates[];
+extern const u8 BattleScript_RoughSkinActivates[];
+extern const u8 BattleScript_CuteCharmActivates[];
+extern const u8 BattleScript_ApplySecondaryEffect[];
+extern const u8 BattleScript_SynchronizeActivates[];
+extern const u8 BattleScript_NoItemSteal[];
+extern const u8 BattleScript_AbilityCuredStatus[];
+extern const u8 BattleScript_82DB695[];
+extern const u8 BattleScript_IgnoresAndUsesRandomMove[];
+extern const u8 BattleScript_MoveUsedLoafingAround[];
+extern const u8 BattleScript_82DB6C7[];
+extern const u8 BattleScript_IgnoresAndFallsAsleep[];
+extern const u8 BattleScript_82DB6F0[];
+extern const u8 BattleScript_SubstituteFade[];
+extern const u8 BattleScript_BerryCurePrlzEnd2[];
+extern const u8 BattleScript_BerryCureParRet[];
+extern const u8 BattleScript_BerryCurePsnEnd2[];
+extern const u8 BattleScript_BerryCurePsnRet[];
+extern const u8 BattleScript_BerryCureBrnEnd2[];
+extern const u8 BattleScript_BerryCureBrnRet[];
+extern const u8 BattleScript_BerryCureFrzEnd2[];
+extern const u8 BattleScript_BerryCureFrzRet[];
+extern const u8 BattleScript_BerryCureSlpEnd2[];
+extern const u8 BattleScript_BerryCureSlpRet[];
+extern const u8 BattleScript_BerryCureConfusionEnd2[];
+extern const u8 BattleScript_BerryCureConfusionRet[];
+extern const u8 BattleScript_BerryCureChosenStatusEnd2[];
+extern const u8 BattleScript_BerryCureChosenStatusRet[];
+extern const u8 BattleScript_WhiteHerbEnd2[];
+extern const u8 BattleScript_WhiteHerbRet[];
+extern const u8 BattleScript_ItemHealHP_RemoveItem[];
+extern const u8 BattleScript_BerryPPHealEnd2[];
+extern const u8 BattleScript_ItemHealHP_End2[];
+extern const u8 BattleScript_ItemHealHP_Ret[];
+extern const u8 BattleScript_SelectingNotAllowedMoveChoiceItem[];
+extern const u8 BattleScript_HangedOnMsg[];
+extern const u8 BattleScript_BerryConfuseHealEnd2[];
+extern const u8 BattleScript_BerryStatRaiseEnd2[];
+extern const u8 BattleScript_82DB85B[];
+extern const u8 BattleScript_BerryFocusEnergyEnd2[];
+extern const u8 BattleScript_ActionSelectionItemsCantBeUsed[];
+extern const u8 BattleScript_82DB87D[];
+extern const u8 BattleScript_82DB881[];
+extern const u8 BattleScript_82DB887[];
+extern const u8 BattleScript_82DB89D[];
+extern const u8 BattleScript_82DB8BE[];
+extern const u8 BattleScript_82DB8E0[];
+extern const u8 BattleScript_82DB8F3[];
+extern const u8 BattleScript_82DB973[];
+extern const u8 BattleScript_82DB992[];
+extern const u8 BattleScript_AskIfWantsToForfeitMatch[];
+extern const u8 BattleScript_82DB9C1[];
+extern const u8 BattleScript_82DB9C8[];
+extern const u8 BattleScript_BallThrow[];
+extern const u8 BattleScript_BallThrowByWally[];
+extern const u8 BattleScript_SafariBallThrow[];
+extern const u8 BattleScript_SuccessBallThrow[];
+extern const u8 BattleScript_82DBD92[];
+extern const u8 BattleScript_82DBDA5[];
+extern const u8 BattleScript_82DBDC2[];
+extern const u8 BattleScript_82DBDC3[];
+extern const u8 BattleScript_WallyBallThrow[];
+extern const u8 BattleScript_ShakeBallThrow[];
+extern const u8 BattleScript_82DBE01[];
+extern const u8 BattleScript_TrainerBallBlock[];
+extern const u8 BattleScript_82DBE12[];
+extern const u8 BattleScript_82DBE1C[];
+extern const u8 BattleScript_82DBE4B[];
+extern const u8 BattleScript_82DBE6F[];
+extern const u8 BattleScript_82DBE91[];
+extern const u8 BattleScript_RunByUsingItem[];
+extern const u8 BattleScript_ActionWatchesCarefully[];
+extern const u8 BattleScript_ActionGetNear[];
+extern const u8 BattleScript_ActionThrowPokeblock[];
+extern const u8 BattleScript_82DBEE3[];
+
+#endif // GUARD_BATTLE_SCRIPTS_H
diff --git a/include/berry.h b/include/berry.h
index f51503d41..425a664c9 100644
--- a/include/berry.h
+++ b/include/berry.h
@@ -11,6 +11,16 @@ enum
BERRY_FIRMNESS_SUPER_HARD,
};
+enum
+{
+ FLAVOR_SPICY,
+ FLAVOR_DRY,
+ FLAVOR_SWEET,
+ FLAVOR_BITTER,
+ FLAVOR_SOUR,
+ FLAVOR_COUNT
+};
+
#define NUM_BERRIES 44
extern const u8 *const gBerryTreeFieldObjectGraphicsIdTablePointers[NUM_BERRIES];
diff --git a/include/berry_blender.h b/include/berry_blender.h
new file mode 100644
index 000000000..fb62e3fa3
--- /dev/null
+++ b/include/berry_blender.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_BERRY_BLENDER_H
+#define GUARD_BERRY_BLENDER_H
+
+void DoBerryBlending(void);
+u16 GetBlenderArrowPosition(void);
+void ShowBerryBlenderRecordWindow(void);
+
+#endif // GUARD_BERRY_BLENDER_H
diff --git a/include/decompress.h b/include/decompress.h
index 36be803e0..34a678cda 100644
--- a/include/decompress.h
+++ b/include/decompress.h
@@ -28,4 +28,6 @@ void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32
void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
+u32 sub_8034974(const u8 *ptr);
+
#endif // GUARD_DECOMPRESS_H
diff --git a/include/flags.h b/include/flags.h
index 30c28c0c2..31d634c59 100644
--- a/include/flags.h
+++ b/include/flags.h
@@ -1,6 +1,7 @@
#ifndef GUARD_FLAGS_H
#define GUARD_FLAGS_H
+#define FLAG_340 0x340
#define FLAG_LEGENDARIES_IN_SOOTOPOLIS 0x53
#define FLAG_PENDING_DAYCARE_EGG 0x86
diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h
index 6cdfd13e1..659302fd5 100644
--- a/include/gba/m4a_internal.h
+++ b/include/gba/m4a_internal.h
@@ -406,7 +406,7 @@ void m4aSoundVSyncOff(void);
void m4aMPlayTempoControl(struct MusicPlayerInfo *mplayInfo, u16 tempo);
void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume);
-void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 pitch);
+void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s16 pitch);
void m4aMPlayPanpotControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s8 pan);
void ClearModM(struct MusicPlayerTrack *track);
void m4aMPlayModDepthSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 modDepth);
diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h
new file mode 100644
index 000000000..553e7c262
--- /dev/null
+++ b/include/item_menu_icons.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_ITEM_MENU_ICONS
+#define GUARD_ITEM_MENU_ICONS
+
+u8 sub_80D511C(u8 a0, u8 a1, u8 a2, u8 a3);
+
+#endif // GUARD_ITEM_MENU_ICONS
diff --git a/include/items.h b/include/items.h
index 1f6c288c5..1a6df42db 100644
--- a/include/items.h
+++ b/include/items.h
@@ -386,6 +386,10 @@ enum
ITEM_OLD_SEA_MAP, // 0x178
};
+#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY
+#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY
+#define ITEM_TO_BERRY(itemId)(((itemId - FIRST_BERRY_INDEX) + 1))
+
#define NUM_TECHNICAL_MACHINES 50
#define NUM_HIDDEN_MACHINES 8
diff --git a/include/link.h b/include/link.h
index ccde9818c..fe5429497 100644
--- a/include/link.h
+++ b/include/link.h
@@ -2,6 +2,7 @@
#define GUARD_LINK_H
#define MAX_LINK_PLAYERS 4
+#define MAX_RFU_PLAYERS 5
#define CMD_LENGTH 8
#define QUEUE_CAPACITY 50
#define BLOCK_BUFFER_SIZE 0x100
@@ -131,7 +132,7 @@ struct BlockRequest
extern const struct BlockRequest sBlockRequestLookupTable[5];
extern struct Link gLink;
-extern u16 gRecvCmds[CMD_LENGTH][MAX_LINK_PLAYERS];
+extern u16 gRecvCmds[MAX_RFU_PLAYERS][CMD_LENGTH];
extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE];
extern u16 gLinkType;
extern u32 gLinkStatus;
diff --git a/include/menu.h b/include/menu.h
index e93d688e4..2052a8dad 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -1,6 +1,7 @@
#ifndef GUARD_MENU_H
#define GUARD_MENU_H
+#include "text.h"
#include "window.h"
struct MenuAction
@@ -31,5 +32,7 @@ void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirs
s8 sub_8198C58(void);
void do_scheduled_bg_tilemap_copies_to_vram(void);
void clear_scheduled_bg_copies_to_vram(void);
+void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor *color, s8 speed, const u8 *str);
+void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3);
#endif // GUARD_MENU_H
diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h
index 42b8c60b1..c52184972 100644
--- a/include/new_menu_helpers.h
+++ b/include/new_menu_helpers.h
@@ -13,5 +13,6 @@ void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback);
void sub_8197434(u8 a0, u8 a1);
void SetStandardWindowBorderStyle(u8 a0, u8 a1);
void sub_8197930(void);
+u8 GetPlayerTextSpeed(void);
#endif // GUARD_NEW_MENU_HELPERS_H
diff --git a/include/pokeblock.h b/include/pokeblock.h
index b0e93f0e5..a145cbada 100644
--- a/include/pokeblock.h
+++ b/include/pokeblock.h
@@ -23,23 +23,11 @@ enum
};
void ClearPokeblocks(void);
+s8 GetFirstFreePokeblockSlot(void);
+bool32 AddPokeblock(struct Pokeblock *pokeblock);
+u8 GetHighestPokeblocksFlavorLevel(const struct Pokeblock *pokeblock);
+u8 GetPokeblocksFeel(const struct Pokeblock *pokeblock);
+u8 GetPokeblocksFlavor(const struct Pokeblock *pokeblock);
s16 PokeblockGetGain(u8, const struct Pokeblock *);
-/*
-void sub_810B96C(void);
-u8 sub_810BA50(s16, s16, u8);
-u8 sub_810C9B0(struct Pokeblock *);
-s16 GetPokeblockData(const struct Pokeblock *, u8);
-u8 sub_810C9E8(struct Pokeblock *);
-void sub_810BA7C(u8);
-bool8 PokeblockClearIfExists(u8);
-u8 sub_810CB68(u8, u8*);
-void PokeblockCopyName(struct Pokeblock *pokeblock, u8 *dest);
-void CB2_PreparePokeblockFeedScene(void);
-
-#include "main.h"
-
-void sub_8136130(struct Pokeblock *, MainCallback);
-*/
-
#endif // GUARD_POKEBLOCK_H
diff --git a/include/pokemon.h b/include/pokemon.h
index 1eb052f4e..480c8d9b9 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -642,8 +642,8 @@ u8 CheckPartyPokerus(struct Pokemon *party, u8 selection);
u8 CheckPartyHasHadPokerus(struct Pokemon *party, u8 selection);
void UpdatePartyPokerusTime(u16 days);
void PartySpreadPokerus(struct Pokemon *party);
-s8 GetMonFlavourRelation(struct Pokemon *mon, u8 a2);
-s8 GetFlavourRelationByPersonality(u32 personality, u8 a2);
+s8 GetMonFlavorRelation(struct Pokemon *mon, u8 a2);
+s8 GetFlavorRelationByPersonality(u32 personality, u8 a2);
u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit);
u8 GetDefaultMoveTarget(u8 atkBank);
u16 PlayerGenderToFrontTrainerPicId(u8 playerGender);
diff --git a/include/text.h b/include/text.h
index 594661717..289c7d2b5 100644
--- a/include/text.h
+++ b/include/text.h
@@ -65,6 +65,7 @@
#define CHAR_x 0xEC
#define CHAR_y 0xED
#define CHAR_z 0xEE
+#define CHAR_SPECIAL_F7 0xF7
#define CHAR_SPECIAL_F9 0xF9
#define CHAR_COLON 0xF0
#define CHAR_PROMPT_SCROLL 0xFA // waits for button press and scrolls dialog
@@ -85,6 +86,8 @@
#define NUM_TEXT_PRINTERS 32
+#define TEXT_SPEED_FF 0xFF
+
struct TextPrinterSubStruct
{
u8 font_type:4; // 0x14
diff --git a/include/tv.h b/include/tv.h
index 80828faf1..afa0ae930 100644
--- a/include/tv.h
+++ b/include/tv.h
@@ -13,6 +13,7 @@ void sub_80EE184(void);
void sub_80EEA70(void);
void sub_80F14F8(TVShow *shows);
size_t sub_80EF370(int value);
+bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 unused, u8 sheen, u8 language);
void SetPokemonAnglerSpecies(u16 species);
void sub_80ED888(u16 days);
diff --git a/include/unk_text_util.h b/include/unk_text_util.h
new file mode 100644
index 000000000..72243a90e
--- /dev/null
+++ b/include/unk_text_util.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_UNK_TEXT_UTIL_H
+#define GUARD_UNK_TEXT_UTIL_H
+
+void UnkTextUtil_Reset(void);
+void UnkTextUtil_SetPtrI(u8 idx, const u8 *ptr);
+u8 *UnkTextUtil_StringExpandPlaceholders(u8 *dest, const u8 *src);
+const u8 *UnkTextUtil_GetPtrI(u8 idx);
+
+#endif //GUARD_UNK_TEXT_UTIL_H