From 3fca2dbb6dc187793100b567d31f85bef16a88c3 Mon Sep 17 00:00:00 2001 From: FosterProgramming Date: Tue, 17 Feb 2026 10:50:02 +0100 Subject: [PATCH] Show ability num instead of ability id whn picking ability with debug givemon (#9225) --- src/debug.c | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/src/debug.c b/src/debug.c index dd1b853ddc..f84429d435 100644 --- a/src/debug.c +++ b/src/debug.c @@ -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;