Show ability num instead of ability id whn picking ability with debug givemon (#9225)

This commit is contained in:
FosterProgramming 2026-02-17 10:50:02 +01:00 committed by GitHub
parent fa52f33ffa
commit 3fca2dbb6d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -2425,10 +2425,11 @@ static void DebugAction_Give_Pokemon_SelectShiny(u8 taskId)
}
}
static void Debug_Display_Ability(enum Ability abilityId, u32 digit, u8 windowId)//(u32 natureId, u32 digit, u8 windowId)
static void Debug_Display_Ability(u32 abilityNum, u32 digit, u8 windowId)//(u32 natureId, u32 digit, u8 windowId)
{
enum Ability abilityId = GetAbilityBySpecies(sDebugMonData->species, abilityNum);
StringCopy(gStringVar2, gText_DigitIndicator[digit]);
ConvertIntToDecimalStringN(gStringVar3, abilityId, STR_CONV_MODE_LEADING_ZEROS, 2);
ConvertIntToDecimalStringN(gStringVar3, abilityNum, STR_CONV_MODE_LEFT_ALIGN, 2);
StringCopyPadded(gStringVar3, gStringVar3, CHAR_SPACE, 15);
u8 *end = StringCopy(gStringVar1, gAbilitiesInfo[abilityId].name);
WrapFontIdToFit(gStringVar1, end, DEBUG_MENU_FONT, WindowWidthPx(windowId));
@ -2464,8 +2465,7 @@ static void DebugAction_Give_Pokemon_SelectNature(u8 taskId)
gTasks[taskId].tInput = 0;
gTasks[taskId].tDigit = 0;
enum Ability abilityId = GetAbilityBySpecies(sDebugMonData->species, 0);
Debug_Display_Ability(abilityId, gTasks[taskId].tDigit, gTasks[taskId].tSubWindowId);
Debug_Display_Ability(0, gTasks[taskId].tDigit, gTasks[taskId].tSubWindowId);
gTasks[taskId].func = DebugAction_Give_Pokemon_SelectAbility;
}
@ -2489,8 +2489,7 @@ static void Debug_Display_TeraType(u32 typeId, u32 digit, u8 windowId)
static void DebugAction_Give_Pokemon_SelectAbility(u8 taskId)
{
u8 abilityCount = NUM_ABILITY_SLOTS - 1; //-1 for proper iteration
u8 i = 0;
s32 abilityNum = -1;
if (JOY_NEW(DPAD_ANY))
{
@ -2498,28 +2497,31 @@ static void DebugAction_Give_Pokemon_SelectAbility(u8 taskId)
if (JOY_NEW(DPAD_UP))
{
gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit];
if (gTasks[taskId].tInput > abilityCount)
gTasks[taskId].tInput = abilityCount;
abilityNum = gTasks[taskId].tInput + 1;
while (GetSpeciesAbility(sDebugMonData->species, abilityNum) == ABILITY_NONE && abilityNum < NUM_ABILITY_SLOTS)
{
abilityNum++;
}
}
if (JOY_NEW(DPAD_DOWN))
{
gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit];
if (gTasks[taskId].tInput < 0)
gTasks[taskId].tInput = 0;
abilityNum = gTasks[taskId].tInput - 1;
while (GetSpeciesAbility(sDebugMonData->species, abilityNum) == ABILITY_NONE && abilityNum >= 0)
{
abilityNum--;
}
}
while (GetAbilityBySpecies(sDebugMonData->species, gTasks[taskId].tInput - i) == ABILITY_NONE && gTasks[taskId].tInput - i < NUM_ABILITY_SLOTS)
if (abilityNum >= 0 && abilityNum < NUM_ABILITY_SLOTS)
{
i++;
gTasks[taskId].tInput = abilityNum;
Debug_Display_Ability(abilityNum, gTasks[taskId].tDigit, gTasks[taskId].tSubWindowId);
}
enum Ability abilityId = GetAbilityBySpecies(sDebugMonData->species, gTasks[taskId].tInput - i);
Debug_Display_Ability(abilityId, gTasks[taskId].tDigit, gTasks[taskId].tSubWindowId);
}
if (JOY_NEW(A_BUTTON))
{
sDebugMonData->abilityNum = gTasks[taskId].tInput - i;
sDebugMonData->abilityNum = gTasks[taskId].tInput;
gTasks[taskId].tInput = 0;
gTasks[taskId].tDigit = 0;