Remove goto in ItemUseCB_MedicineStep

Leak-informed
This commit is contained in:
cbt6
2022-09-17 16:21:42 +08:00
parent 61ad87a314
commit 500a488442
+11 -10
View File
@@ -4471,8 +4471,11 @@ void ItemUseCB_MedicineStep(u8 taskId, TaskFunc func)
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
u16 item = gSpecialVar_ItemId; u16 item = gSpecialVar_ItemId;
bool8 canHeal; bool8 canHeal;
bool8 cannotHeal;
if (NotUsingHPEVItemOnShedinja(mon, item)) if (NotUsingHPEVItemOnShedinja(mon, item) == FALSE)
cannotHeal = TRUE;
else
{ {
canHeal = IsHPRecoveryItem(item); canHeal = IsHPRecoveryItem(item);
if (canHeal == TRUE) if (canHeal == TRUE)
@@ -4482,20 +4485,19 @@ void ItemUseCB_MedicineStep(u8 taskId, TaskFunc func)
canHeal = FALSE; canHeal = FALSE;
} }
if (ExecuteTableBasedItemEffect_(gPartyMenu.slotId, item, 0)) cannotHeal = ExecuteTableBasedItemEffect_(gPartyMenu.slotId, item, 0);
}
if (cannotHeal != FALSE)
{ {
WONT_HAVE_EFFECT:
gPartyMenuUseExitCallback = FALSE; gPartyMenuUseExitCallback = FALSE;
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
DisplayPartyMenuMessage(gText_WontHaveEffect, TRUE); DisplayPartyMenuMessage(gText_WontHaveEffect, TRUE);
ScheduleBgCopyTilemapToVram(2); ScheduleBgCopyTilemapToVram(2);
gTasks[taskId].func = func; gTasks[taskId].func = func;
return;
}
} }
else else
goto WONT_HAVE_EFFECT; // even loop wrap won't work {
gPartyMenuUseExitCallback = TRUE; gPartyMenuUseExitCallback = TRUE;
if (!IsItemFlute(item)) if (!IsItemFlute(item))
{ {
@@ -4508,15 +4510,13 @@ void ItemUseCB_MedicineStep(u8 taskId, TaskFunc func)
SetPartyMonAilmentGfx(mon, &sPartyMenuBoxes[gPartyMenu.slotId]); SetPartyMonAilmentGfx(mon, &sPartyMenuBoxes[gPartyMenu.slotId]);
if (gSprites[sPartyMenuBoxes[gPartyMenu.slotId].statusSpriteId].invisible) if (gSprites[sPartyMenuBoxes[gPartyMenu.slotId].statusSpriteId].invisible)
DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[gPartyMenu.slotId], DRAW_MENU_BOX_AND_TEXT); DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[gPartyMenu.slotId], 1);
if (canHeal == TRUE) if (canHeal == TRUE)
{ {
if (hp == 0) if (hp == 0)
AnimatePartySlot(gPartyMenu.slotId, 1); AnimatePartySlot(gPartyMenu.slotId, 1);
PartyMenuModifyHP(taskId, gPartyMenu.slotId, 1, GetMonData(mon, MON_DATA_HP) - hp, Task_DisplayHPRestoredMessage); PartyMenuModifyHP(taskId, gPartyMenu.slotId, 1, GetMonData(mon, MON_DATA_HP) - hp, Task_DisplayHPRestoredMessage);
ResetHPTaskData(taskId, 0, hp); ResetHPTaskData(taskId, 0, hp);
return;
} }
else else
{ {
@@ -4526,6 +4526,7 @@ void ItemUseCB_MedicineStep(u8 taskId, TaskFunc func)
ScheduleBgCopyTilemapToVram(2); ScheduleBgCopyTilemapToVram(2);
gTasks[taskId].func = func; gTasks[taskId].func = func;
} }
}
} }
static void Task_DisplayHPRestoredMessage(u8 taskId) static void Task_DisplayHPRestoredMessage(u8 taskId)