Fixed deleting PC mon by placing another one on top with B (#3360)

This commit is contained in:
Eduardo Quezada D'Ottone 2023-09-30 15:31:11 -03:00 committed by GitHub
parent 7b3f72f5ff
commit 977860f834
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -678,6 +678,7 @@ static void InitSummaryScreenData(void);
static void SetSelectionAfterSummaryScreen(void); static void SetSelectionAfterSummaryScreen(void);
static void SetMonMarkings(u8); static void SetMonMarkings(u8);
static bool8 IsRemovingLastPartyMon(void); static bool8 IsRemovingLastPartyMon(void);
static bool8 CanPlaceMon(void);
static bool8 CanShiftMon(void); static bool8 CanShiftMon(void);
static bool8 IsMonBeingMoved(void); static bool8 IsMonBeingMoved(void);
static void TryRefreshDisplayMon(void); static void TryRefreshDisplayMon(void);
@ -3690,8 +3691,15 @@ static void Task_OnBPressed(u8 taskId)
PrintMessage(MSG_HOLDING_POKE); PrintMessage(MSG_HOLDING_POKE);
sStorage->state = 1; sStorage->state = 1;
#else #else
PlaySE(SE_SELECT); if (CanPlaceMon())
SetPokeStorageTask(Task_PlaceMon); {
PlaySE(SE_SELECT);
SetPokeStorageTask(Task_PlaceMon);
}
else
{
SetPokeStorageTask(Task_PokeStorageMain);
}
#endif #endif
} }
else if (IsMovingItem()) else if (IsMovingItem())
@ -6826,6 +6834,20 @@ static bool8 IsRemovingLastPartyMon(void)
return FALSE; return FALSE;
} }
static bool8 CanPlaceMon(void)
{
if (sIsMonBeingMoved)
{
if (sCursorArea == CURSOR_AREA_IN_PARTY && GetMonData(&gPlayerParty[sCursorPosition], MON_DATA_SPECIES) == SPECIES_NONE)
return TRUE;
else if (sCursorArea == CURSOR_AREA_IN_BOX && GetBoxMonDataAt(StorageGetCurrentBox(), sCursorPosition, MON_DATA_SPECIES_OR_EGG) == SPECIES_NONE)
return TRUE;
else
return FALSE;
}
return FALSE;
}
static bool8 CanShiftMon(void) static bool8 CanShiftMon(void)
{ {
if (sIsMonBeingMoved) if (sIsMonBeingMoved)