Add P_ASK_MOVE_CONFIRMATION (#7132)
This commit is contained in:
parent
206d2503d8
commit
b60c897b4a
@ -5434,10 +5434,12 @@ BattleScript_AskToLearnMove::
|
||||
waitstate
|
||||
setbyte sLEARNMOVE_STATE, 0
|
||||
yesnoboxlearnmove BattleScript_ForgotAndLearnedNewMove
|
||||
.if P_ASK_MOVE_CONFIRMATION == TRUE
|
||||
printstring STRINGID_STOPLEARNINGMOVE
|
||||
waitstate
|
||||
setbyte sLEARNMOVE_STATE, 0
|
||||
yesnoboxstoplearningmove BattleScript_AskToLearnMove
|
||||
.endif
|
||||
printstring STRINGID_DIDNOTLEARNMOVE
|
||||
goto BattleScript_TryLearnMoveLoop
|
||||
BattleScript_ForgotAndLearnedNewMove::
|
||||
|
||||
@ -56,6 +56,7 @@
|
||||
#define P_SHOW_TERA_TYPE GEN_8 // Since Gen 9, the Tera Type is shown on the summary screen.
|
||||
#define P_TM_LITERACY GEN_LATEST // Since Gen 6, TM illiterate Pokémon can learn TMs that teach moves that are in their level-up learnsets.
|
||||
#define P_CAN_FORGET_HIDDEN_MOVE FALSE // If TRUE, Pokémon can forget any move, even if it is a Hidden Move.
|
||||
#define P_ASK_MOVE_CONFIRMATION FALSE // If FALSE, when a player decides not to learn a Move, the game does not ask the player for confirmation.
|
||||
#define P_EGG_CYCLE_LENGTH GEN_LATEST // Since Gen 8, egg cycles take half as many steps as before. Previous Gens have some varied step counts around 255.
|
||||
#define P_ONLY_OBTAINABLE_SHINIES FALSE // If TRUE, Pokémon encountered in the Battle Pyramid won't be shiny.
|
||||
#define P_NO_SHINIES_WITHOUT_POKEBALLS FALSE // If TRUE, Pokémon encountered when the player is out of Poké Balls won't be shiny
|
||||
|
||||
@ -910,7 +910,7 @@ static void Task_EvolutionScene(u8 taskId)
|
||||
BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE3]);
|
||||
BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG);
|
||||
gTasks[taskId].tLearnMoveYesState = MVSTATE_SHOW_MOVE_SELECT;
|
||||
gTasks[taskId].tLearnMoveNoState = MVSTATE_ASK_CANCEL;
|
||||
gTasks[taskId].tLearnMoveNoState = (P_ASK_MOVE_CONFIRMATION) ? MVSTATE_ASK_CANCEL : MVSTATE_CANCEL;
|
||||
gTasks[taskId].tLearnMoveState++;
|
||||
}
|
||||
case MVSTATE_PRINT_YES_NO:
|
||||
@ -986,7 +986,7 @@ static void Task_EvolutionScene(u8 taskId)
|
||||
if (var == MAX_MON_MOVES)
|
||||
{
|
||||
// Didn't select move slot
|
||||
gTasks[taskId].tLearnMoveState = MVSTATE_ASK_CANCEL;
|
||||
gTasks[taskId].tLearnMoveNoState = (P_ASK_MOVE_CONFIRMATION) ? MVSTATE_ASK_CANCEL : MVSTATE_CANCEL;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1313,7 +1313,7 @@ static void Task_TradeEvolutionScene(u8 taskId)
|
||||
BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE3]);
|
||||
DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1);
|
||||
gTasks[taskId].tLearnMoveYesState = T_MVSTATE_SHOW_MOVE_SELECT;
|
||||
gTasks[taskId].tLearnMoveNoState = T_MVSTATE_ASK_CANCEL;
|
||||
gTasks[taskId].tLearnMoveNoState = (P_ASK_MOVE_CONFIRMATION) ? T_MVSTATE_ASK_CANCEL : T_MVSTATE_CANCEL;
|
||||
gTasks[taskId].tLearnMoveState++;
|
||||
}
|
||||
case T_MVSTATE_PRINT_YES_NO:
|
||||
@ -1370,7 +1370,7 @@ static void Task_TradeEvolutionScene(u8 taskId)
|
||||
if (var == MAX_MON_MOVES)
|
||||
{
|
||||
// Didn't select move slot
|
||||
gTasks[taskId].tLearnMoveState = T_MVSTATE_ASK_CANCEL;
|
||||
gTasks[taskId].tLearnMoveNoState = (P_ASK_MOVE_CONFIRMATION) ? T_MVSTATE_ASK_CANCEL : T_MVSTATE_CANCEL;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -603,7 +603,21 @@ static void DoMoveRelearnerMain(void)
|
||||
}
|
||||
else if (selection == MENU_B_PRESSED || selection == 1)
|
||||
{
|
||||
sMoveRelearnerStruct->state = MENU_STATE_PRINT_STOP_TEACHING;
|
||||
if (P_ASK_MOVE_CONFIRMATION)
|
||||
{
|
||||
sMoveRelearnerStruct->state = MENU_STATE_PRINT_STOP_TEACHING;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (sMoveRelearnerMenuState.showContestInfo == FALSE)
|
||||
{
|
||||
sMoveRelearnerStruct->state = MENU_STATE_SETUP_BATTLE_MODE;
|
||||
}
|
||||
else if (sMoveRelearnerMenuState.showContestInfo == TRUE)
|
||||
{
|
||||
sMoveRelearnerStruct->state = MENU_STATE_SETUP_CONTEST_MODE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@ -414,6 +414,7 @@ static void CB2_ReturnToPartyMenuWhileLearningMove(void);
|
||||
static void Task_ReturnToPartyMenuWhileLearningMove(u8);
|
||||
static void DisplayPartyMenuForgotMoveMessage(u8);
|
||||
static void Task_PartyMenuReplaceMove(u8);
|
||||
static void Task_HandleStopLearningMove(u8 taskId);
|
||||
static void Task_StopLearningMoveYesNo(u8);
|
||||
static void Task_HandleStopLearningMoveYesNoInput(u8);
|
||||
static void Task_TryLearningNextMoveAfterText(u8);
|
||||
@ -5567,11 +5568,28 @@ static void Task_PartyMenuReplaceMove(u8 taskId)
|
||||
|
||||
static void StopLearningMovePrompt(u8 taskId)
|
||||
{
|
||||
if (P_ASK_MOVE_CONFIRMATION == FALSE)
|
||||
{
|
||||
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
|
||||
GetMonNickname(mon, gStringVar1);
|
||||
}
|
||||
|
||||
StringCopy(gStringVar2, GetMoveName(gPartyMenu.data1));
|
||||
StringExpandPlaceholders(gStringVar4, gText_StopLearningMove2);
|
||||
StringExpandPlaceholders(gStringVar4, (P_ASK_MOVE_CONFIRMATION) ? gText_StopLearningMove2 : gText_MoveNotLearned);
|
||||
DisplayPartyMenuMessage(gStringVar4, TRUE);
|
||||
ScheduleBgCopyTilemapToVram(2);
|
||||
gTasks[taskId].func = Task_StopLearningMoveYesNo;
|
||||
gTasks[taskId].func = (P_ASK_MOVE_CONFIRMATION) ? Task_StopLearningMoveYesNo : Task_HandleStopLearningMove;
|
||||
}
|
||||
|
||||
static void Task_HandleStopLearningMove(u8 taskId)
|
||||
{
|
||||
if (IsPartyMenuTextPrinterActive() != TRUE)
|
||||
{
|
||||
if (gPartyMenu.learnMoveState == 1)
|
||||
gTasks[taskId].func = Task_TryLearningNextMoveAfterText;
|
||||
else
|
||||
gTasks[taskId].func = Task_ClosePartyMenuAfterText;
|
||||
}
|
||||
}
|
||||
|
||||
static void Task_StopLearningMoveYesNo(u8 taskId)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user