Turn battle string ids into enums (#6594)

This commit is contained in:
Bassoonian 2025-04-13 16:12:30 +02:00 committed by GitHub
parent d62205f2fc
commit 6a70f4f390
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 1142 additions and 995 deletions

View File

@ -8,7 +8,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state);
void BattleArena_InitPoints(void);
void BattleArena_AddMindPoints(u8 battler);
void BattleArena_AddSkillPoints(u8 battler);
void BattleArena_DeductSkillPoints(u8 battler, u16 stringId);
void BattleArena_DeductSkillPoints(u8 battler, enum StringID stringId);
void DrawArenaRefereeTextBox(void);
void EraseArenaRefereeTextBox(void);

View File

@ -214,8 +214,8 @@ void BtlController_EmitTrainerSlideBack(u32 battler, u32 bufferId);
void BtlController_EmitFaintAnimation(u32 battler, u32 bufferId);
void BtlController_EmitBallThrowAnim(u32 battler, u32 bufferId, u8 caseId);
void BtlController_EmitMoveAnimation(u32 battler, u32 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit);
void BtlController_EmitPrintString(u32 battler, u32 bufferId, u16 stringId);
void BtlController_EmitPrintSelectionString(u32 battler, u32 bufferId, u16 stringId);
void BtlController_EmitPrintString(u32 battler, u32 bufferId, enum StringID stringId);
void BtlController_EmitPrintSelectionString(u32 battler, u32 bufferId, enum StringID stringId);
void BtlController_EmitChooseAction(u32 battler, u32 bufferId, u8 action, u16 itemId);
void BtlController_EmitYesNoBox(u32 battler, u32 bufferId);
void BtlController_EmitChooseMove(u32 battler, u32 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);

View File

@ -2,6 +2,7 @@
#define GUARD_BATTLE_MESSAGE_H
#include "constants/battle.h"
#include "constants/battle_string_ids.h"
// This buffer can hold many different things. Some of the things it can hold
// that have explicit sizes are listed below to ensure it can contain them.
@ -247,7 +248,7 @@ struct BattleMsgData
u8 textBuffs[3][TEXT_BUFF_ARRAY_COUNT];
};
void BufferStringBattle(u16 stringID, u32 battler);
void BufferStringBattle(enum StringID stringID, u32 battler);
u32 BattleStringExpandPlaceholdersToDisplayedString(const u8 *src);
u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst, u32 dstSize);
void BattlePutTextOnWindow(const u8 *text, u8 windowId);

View File

@ -1,7 +1,7 @@
#ifndef GUARD_BATTLE_TV_H
#define GUARD_BATTLE_TV_H
void BattleTv_SetDataBasedOnString(u16 stringId);
void BattleTv_SetDataBasedOnString(enum StringID stringId);
void BattleTv_SetDataBasedOnMove(u16 move, u16 weatherFlags, struct DisableStruct *disableStructPtr);
void BattleTv_SetDataBasedOnAnimation(u8 animationId);
void TryPutLinkBattleTvShowOnAir(void);

View File

@ -2,6 +2,7 @@
#define GUARD_BATTLE_UTIL_H
#include "move.h"
#include "constants/battle_string_ids.h"
#define MOVE_LIMITATION_ZEROMOVE (1 << 0)
#define MOVE_LIMITATION_PP (1 << 1)
@ -193,7 +194,7 @@ void MarkBattlerForControllerExec(u32 battler);
void MarkBattlerReceivedLinkData(u32 battler);
const u8* CancelMultiTurnMoves(u32 battler);
bool32 WasUnableToUseMove(u32 battler);
void PrepareStringBattle(u16 stringId, u32 battler);
void PrepareStringBattle(enum StringID stringId, u32 battler);
void ResetSentPokesToOpponentValue(void);
void OpponentSwitchInResetSentPokesToOpponentValue(u32 battler);
void UpdateSentPokesToOpponentValue(u32 battler);
@ -296,7 +297,7 @@ bool32 IsBattlerAffectedByHazards(u32 battler, bool32 toxicSpikes);
void SortBattlersBySpeed(u8 *battlers, bool32 slowToFast);
bool32 CompareStat(u32 battler, u8 statId, u8 cmpTo, u8 cmpKind);
bool32 TryRoomService(u32 battler);
void BufferStatChange(u32 battler, u8 statId, u8 stringId);
void BufferStatChange(u32 battler, u8 statId, enum StringID stringId);
bool32 BlocksPrankster(u16 move, u32 battlerPrankster, u32 battlerDef, bool32 checkTarget);
u16 GetUsedHeldItem(u32 battler);
bool32 PickupHasValidTarget(u32 battler);

File diff suppressed because it is too large Load Diff

View File

@ -415,7 +415,7 @@ void BattleArena_AddSkillPoints(u8 battler)
}
}
void BattleArena_DeductSkillPoints(u8 battler, u16 stringId)
void BattleArena_DeductSkillPoints(u8 battler, enum StringID stringId)
{
s8 *skillPoints = gBattleStruct->arenaSkillPoints;
@ -442,6 +442,8 @@ void BattleArena_DeductSkillPoints(u8 battler, u16 stringId)
case STRINGID_PKMNSTAYEDAWAKEUSING:
skillPoints[battler] -= 3;
break;
default:
break;
}
}

View File

@ -1097,7 +1097,7 @@ void BtlController_EmitMoveAnimation(u32 battler, u32 bufferId, u16 move, u8 tur
PrepareBufferDataTransfer(battler, bufferId, gBattleResources->transferBuffer, 16 + sizeof(struct DisableStruct));
}
void BtlController_EmitPrintString(u32 battler, u32 bufferId, u16 stringID)
void BtlController_EmitPrintString(u32 battler, u32 bufferId, enum StringID stringID)
{
s32 i;
struct BattleMsgData *stringInfo;
@ -1129,7 +1129,7 @@ void BtlController_EmitPrintString(u32 battler, u32 bufferId, u16 stringID)
PrepareBufferDataTransfer(battler, bufferId, gBattleResources->transferBuffer, sizeof(struct BattleMsgData) + 4);
}
void BtlController_EmitPrintSelectionString(u32 battler, u32 bufferId, u16 stringID)
void BtlController_EmitPrintSelectionString(u32 battler, u32 bufferId, enum StringID stringID)
{
s32 i;
struct BattleMsgData *stringInfo;

View File

@ -169,7 +169,7 @@ const u8 gText_drastically[] = _("drastically ");
const u8 gText_severely[] = _("severely ");
static const u8 sText_TerrainReturnedToNormal[] = _("The terrain returned to normal!"); // Unused
const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] =
const u8 *const gBattleStringsTable[STRINGID_COUNT] =
{
[STRINGID_TRAINER1LOSETEXT] = COMPOUND_STRING("{B_TRAINER1_LOSE_TEXT}"),
[STRINGID_PKMNGAINEDEXP] = COMPOUND_STRING("{B_BUFF1} gained{B_BUFF2} {B_BUFF3} Exp. Points!\p"),
@ -2062,7 +2062,7 @@ static const struct BattleWindowText *const sBattleTextOnWindowsInfo[] =
static const u8 sRecordedBattleTextSpeeds[] = {8, 4, 1, 0};
void BufferStringBattle(u16 stringID, u32 battler)
void BufferStringBattle(enum StringID stringID, u32 battler)
{
s32 i;
const u8 *stringPtr = NULL;
@ -2344,7 +2344,7 @@ void BufferStringBattle(u16 stringID, u32 battler)
stringPtr = gBattleStruct->trainerSlideMsg;
break;
default: // load a string from the table
if (stringID >= BATTLESTRINGS_COUNT)
if (stringID >= STRINGID_COUNT)
{
gDisplayedStringBattle[0] = EOS;
return;

View File

@ -2848,7 +2848,7 @@ static void Cmd_resultmessage(void)
{
CMD_ARGS();
u32 stringId = 0;
enum StringID stringId = 0;
u16 *moveResultFlags = &gBattleStruct->moveResultFlags[gBattlerTarget];
if (gBattleControllerExecFlags)
@ -4424,10 +4424,13 @@ void SetMoveEffect(bool32 primary, bool32 certain)
msg = B_MSG_STARTED_SANDSTORM;
break;
case MOVE_EFFECT_HAIL:
if (B_PREFERRED_ICE_WEATHER == B_ICE_WEATHER_SNOW) {
if (B_PREFERRED_ICE_WEATHER == B_ICE_WEATHER_SNOW)
{
weather = BATTLE_WEATHER_SNOW;
msg = B_MSG_STARTED_SNOW;
} else {
}
else
{
weather = BATTLE_WEATHER_HAIL;
msg = B_MSG_STARTED_HAIL;
}

View File

@ -11,7 +11,7 @@
#include "constants/battle_move_effects.h"
// this file's functions
static bool8 IsNotSpecialBattleString(u16 stringId);
static bool8 IsNotSpecialBattleString(enum StringID stringId);
static void AddMovePoints(u8 caseId, u16 arg1, u8 arg2, u8 arg3);
static void TrySetBattleSeminarShow(void);
static void AddPointsOnFainting(bool8 targetFainted);
@ -319,7 +319,7 @@ static const u16 sSpecialBattleStrings[] =
};
// code
void BattleTv_SetDataBasedOnString(u16 stringId)
void BattleTv_SetDataBasedOnString(enum StringID stringId)
{
struct BattleTv *tvPtr;
u32 atkSide, defSide, effSide, scriptingSide;
@ -342,7 +342,7 @@ void BattleTv_SetDataBasedOnString(u16 stringId)
defMon = GetPartyBattlerData(gBattlerTarget);
moveSlot = GetBattlerMoveSlotId(gBattlerAttacker, gBattleMsgDataPtr->currentMove);
if (moveSlot >= MAX_MON_MOVES && IsNotSpecialBattleString(stringId) && stringId > BATTLESTRINGS_TABLE_START)
if (moveSlot >= MAX_MON_MOVES && IsNotSpecialBattleString(stringId) && stringId > STRINGID_TABLE_START)
{
tvPtr->side[atkSide].faintCause = FNT_OTHER;
return;
@ -720,10 +720,12 @@ void BattleTv_SetDataBasedOnString(u16 stringId)
case STRINGID_PKMNHITWITHRECOIL:
tvPtr->side[atkSide].faintCause = FNT_RECOIL;
break;
default:
break;
}
}
static bool8 IsNotSpecialBattleString(u16 stringId)
static bool8 IsNotSpecialBattleString(enum StringID stringId)
{
s32 i = 0;

View File

@ -1092,7 +1092,7 @@ bool32 WasUnableToUseMove(u32 battler)
return FALSE;
}
void PrepareStringBattle(u16 stringId, u32 battler)
void PrepareStringBattle(enum StringID stringId, u32 battler)
{
u32 targetSide = GetBattlerSide(gBattlerTarget);
u16 battlerAbility = GetBattlerAbility(battler);
@ -6993,7 +6993,7 @@ static enum ItemEffect StatRaiseBerry(u32 battler, u32 itemId, u32 statId, enum
static enum ItemEffect RandomStatRaiseBerry(u32 battler, u32 itemId, enum ItemCaseId caseID)
{
s32 i;
u16 stringId;
enum StringID stringId;
for (i = 0; i < NUM_STATS - 1; i++)
{
@ -11768,7 +11768,7 @@ bool32 CompareStat(u32 battler, u8 statId, u8 cmpTo, u8 cmpKind)
return ret;
}
void BufferStatChange(u32 battler, u8 statId, u8 stringId)
void BufferStatChange(u32 battler, u8 statId, enum StringID stringId)
{
bool32 hasContrary = (GetBattlerAbility(battler) == ABILITY_CONTRARY);

View File

@ -561,10 +561,10 @@ extern u16 sBattlerAbilities[MAX_BATTLERS_COUNT];
TEST("Battle strings fit on the battle message window")
{
u32 i, j, strWidth;
u32 start = BATTLESTRINGS_TABLE_START;
u32 end = BATTLESTRINGS_COUNT - 1;
u32 start = STRINGID_TABLE_START + 1;
u32 end = STRINGID_COUNT - 1;
const u32 fontId = FONT_NORMAL;
u32 battleStringId = 0;
enum StringID battleStringId = 0;
u8 *battleString = Alloc(BATTLE_STRING_BUFFER_SIZE);
s32 sixDigitNines = 999999; // 36 pixels.