Debug menu and createmon additions/cleanup (#5994)
This commit is contained in:
parent
c33c38e020
commit
21bc5cfd30
@ -1007,7 +1007,7 @@
|
||||
|
||||
@ Gives the player a Pokémon of the specified species and level, and allows to customize extra parameters.
|
||||
@ VAR_RESULT will be set to MON_GIVEN_TO_PARTY, MON_GIVEN_TO_PC, or MON_CANT_GIVE depending on the outcome.
|
||||
.macro givemon species:req, level:req, item, ball, nature, abilityNum, gender, hpEv, atkEv, defEv, speedEv, spAtkEv, spDefEv, hpIv, atkIv, defIv, speedIv, spAtkIv, spDefIv, move1, move2, move3, move4, isShiny, ggMaxFactor, teraType
|
||||
.macro givemon species:req, level:req, item, ball, nature, abilityNum, gender, hpEv, atkEv, defEv, speedEv, spAtkEv, spDefEv, hpIv, atkIv, defIv, speedIv, spAtkIv, spDefIv, move1, move2, move3, move4, isShiny, gmaxFactor, teraType, dmaxLevel
|
||||
callnative ScrCmd_createmon, requests_effects=1
|
||||
.byte 0
|
||||
.byte PARTY_SIZE @ assign to first empty slot
|
||||
@ -1036,8 +1036,9 @@
|
||||
.ifnb \move3; .set givemon_flags, givemon_flags | (1 << 19); .endif
|
||||
.ifnb \move4; .set givemon_flags, givemon_flags | (1 << 20); .endif
|
||||
.ifnb \isShiny; .set givemon_flags, givemon_flags | (1 << 21); .endif
|
||||
.ifnb \ggMaxFactor; .set givemon_flags, givemon_flags | (1 << 22); .endif
|
||||
.ifnb \gmaxFactor; .set givemon_flags, givemon_flags | (1 << 22); .endif
|
||||
.ifnb \teraType; .set givemon_flags, givemon_flags | (1 << 23); .endif
|
||||
.ifnb \dmaxLevel; .set givemon_flags, givemon_flags | (1 << 24); .endif
|
||||
.4byte givemon_flags
|
||||
.ifnb \item; .2byte \item; .endif
|
||||
.ifnb \ball; .2byte \ball; .endif
|
||||
@ -1061,13 +1062,14 @@
|
||||
.ifnb \move3; .2byte \move3; .endif
|
||||
.ifnb \move4; .2byte \move4; .endif
|
||||
.ifnb \isShiny; .2byte \isShiny; .endif
|
||||
.ifnb \ggMaxFactor; .2byte \ggMaxFactor; .endif
|
||||
.ifnb \gmaxFactor; .2byte \gmaxFactor; .endif
|
||||
.ifnb \teraType; .2byte \teraType; .endif
|
||||
.ifnb \dmaxLevel; .2byte \dmaxLevel; .endif
|
||||
.endm
|
||||
|
||||
@ creates a mon for a given party and slot
|
||||
@ otherwise
|
||||
.macro createmon side:req, slot:req, species:req, level:req, item, ball, nature, abilityNum, gender, hpEv, atkEv, defEv, speedEv, spAtkEv, spDefEv, hpIv, atkIv, defIv, speedIv, spAtkIv, spDefIv, move1, move2, move3, move4, isShiny, ggMaxFactor, teraType
|
||||
.macro createmon side:req, slot:req, species:req, level:req, item, ball, nature, abilityNum, gender, hpEv, atkEv, defEv, speedEv, spAtkEv, spDefEv, hpIv, atkIv, defIv, speedIv, spAtkIv, spDefIv, move1, move2, move3, move4, isShiny, gmaxFactor, teraType, dmaxLevel
|
||||
callnative ScrCmd_createmon, requests_effects=1
|
||||
.byte \side @ 0 - player, 1 - opponent
|
||||
.byte \slot @ 0-5
|
||||
@ -1096,8 +1098,9 @@
|
||||
.ifnb \move3; .set givemon_flags, givemon_flags | (1 << 19); .endif
|
||||
.ifnb \move4; .set givemon_flags, givemon_flags | (1 << 20); .endif
|
||||
.ifnb \isShiny; .set givemon_flags, givemon_flags | (1 << 21); .endif
|
||||
.ifnb \ggMaxFactor; .set givemon_flags, givemon_flags | (1 << 22); .endif
|
||||
.ifnb \gmaxFactor; .set givemon_flags, givemon_flags | (1 << 22); .endif
|
||||
.ifnb \teraType; .set givemon_flags, givemon_flags | (1 << 23); .endif
|
||||
.ifnb \dmaxLevel; .set givemon_flags, givemon_flags | (1 << 24); .endif
|
||||
.4byte givemon_flags
|
||||
.ifnb \item; .2byte \item; .endif
|
||||
.ifnb \ball; .2byte \ball; .endif
|
||||
@ -1121,8 +1124,9 @@
|
||||
.ifnb \move3; .2byte \move3; .endif
|
||||
.ifnb \move4; .2byte \move4; .endif
|
||||
.ifnb \isShiny; .2byte \isShiny; .endif
|
||||
.ifnb \ggMaxFactor; .2byte \ggMaxFactor; .endif
|
||||
.ifnb \gmaxFactor; .2byte \gmaxFactor; .endif
|
||||
.ifnb \teraType; .2byte \teraType; .endif
|
||||
.ifnb \dmaxLevel; .2byte \dmaxLevel; .endif
|
||||
.endm
|
||||
|
||||
@ Gives the player an Egg of the specified species.
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
#define WEATHER_ABNORMAL 15 // The alternating weather during Groudon/Kyogre conflict
|
||||
#define WEATHER_ROUTE119_CYCLE 20
|
||||
#define WEATHER_ROUTE123_CYCLE 21
|
||||
#define WEATHER_COUNT 22
|
||||
|
||||
// These are used in maps' coord_weather_event entries.
|
||||
// They are not a one-to-one mapping with the engine's
|
||||
|
||||
539
src/debug.c
539
src/debug.c
@ -293,6 +293,9 @@ struct DebugMonData
|
||||
u8 mon_ev_speed;
|
||||
u8 mon_ev_satk;
|
||||
u8 mon_ev_sdef;
|
||||
u8 teraType;
|
||||
u8 dynamaxLevel:7;
|
||||
u8 gmaxFactor:1;
|
||||
};
|
||||
|
||||
struct DebugMenuListData
|
||||
@ -434,6 +437,9 @@ static void DebugAction_Give_Pokemon_SelectLevel(u8 taskId);
|
||||
static void DebugAction_Give_Pokemon_SelectShiny(u8 taskId);
|
||||
static void DebugAction_Give_Pokemon_SelectNature(u8 taskId);
|
||||
static void DebugAction_Give_Pokemon_SelectAbility(u8 taskId);
|
||||
static void DebugAction_Give_Pokemon_SelectTeraType(u8 taskId);
|
||||
static void DebugAction_Give_Pokemon_SelectDynamaxLevel(u8 taskId);
|
||||
static void DebugAction_Give_Pokemon_SelectGigantamaxFactor(u8 taskId);
|
||||
static void DebugAction_Give_Pokemon_SelectIVs(u8 taskId);
|
||||
static void DebugAction_Give_Pokemon_SelectEVs(u8 taskId);
|
||||
static void DebugAction_Give_Pokemon_ComplexCreateMon(u8 taskId);
|
||||
@ -631,6 +637,9 @@ static const u8 sDebugText_PokemonLevel[] = _("Level:{CLEAR_TO 90}\n
|
||||
static const u8 sDebugText_PokemonShiny[] = _("Shiny:{CLEAR_TO 90}\n {STR_VAR_2}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{CLEAR_TO 90}");
|
||||
static const u8 sDebugText_PokemonNature[] = _("Nature ID: {STR_VAR_3}{CLEAR_TO 90}\n{STR_VAR_1}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}");
|
||||
static const u8 sDebugText_PokemonAbility[] = _("Ability Num: {STR_VAR_3}{CLEAR_TO 90}\n{STR_VAR_1}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}");
|
||||
static const u8 sDebugText_PokemonTeraType[] = _("Tera Type: {STR_VAR_3}{CLEAR_TO 90}\n{STR_VAR_1}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}");
|
||||
static const u8 sDebugText_PokemonDynamaxLevel[] = _("Dmax Lvl:{CLEAR_TO 90}\n{STR_VAR_1}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}");
|
||||
static const u8 sDebugText_PokemonGmaxFactor[] = _("Gmax Factor:{CLEAR_TO 90}\n {STR_VAR_2}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{CLEAR_TO 90}");
|
||||
static const u8 sDebugText_PokemonIVs[] = _("All IVs:{CLEAR_TO 90}\n {STR_VAR_3}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}");
|
||||
static const u8 sDebugText_PokemonEVs[] = _("All EVs:{CLEAR_TO 90}\n {STR_VAR_3}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}");
|
||||
static const u8 sDebugText_IV_HP[] = _("IV HP:{CLEAR_TO 90}\n {STR_VAR_3}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}");
|
||||
@ -1242,6 +1251,32 @@ static void Debug_DestroyMenu_Full_Script(u8 taskId, const u8 *script)
|
||||
ScriptContext_SetupScript(script);
|
||||
}
|
||||
|
||||
static void Debug_HandleInput_Numeric(u8 taskId, s32 min, s32 max, u32 digits)
|
||||
{
|
||||
if (JOY_NEW(DPAD_UP))
|
||||
{
|
||||
gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput > max)
|
||||
gTasks[taskId].tInput = max;
|
||||
}
|
||||
if (JOY_NEW(DPAD_DOWN))
|
||||
{
|
||||
gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput < min)
|
||||
gTasks[taskId].tInput = min;
|
||||
}
|
||||
if (JOY_NEW(DPAD_LEFT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit > 0)
|
||||
gTasks[taskId].tDigit -= 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_RIGHT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit < digits - 1)
|
||||
gTasks[taskId].tDigit += 1;
|
||||
}
|
||||
}
|
||||
|
||||
static void DebugAction_Cancel(u8 taskId)
|
||||
{
|
||||
Debug_DestroyMenu_Full(taskId);
|
||||
@ -1951,28 +1986,7 @@ static void DebugAction_Util_Warp_SelectMapGroup(u8 taskId)
|
||||
if (JOY_NEW(DPAD_ANY))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
if (JOY_NEW(DPAD_UP))
|
||||
{
|
||||
gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput > LAST_MAP_GROUP)
|
||||
gTasks[taskId].tInput = LAST_MAP_GROUP;
|
||||
}
|
||||
if (JOY_NEW(DPAD_DOWN))
|
||||
{
|
||||
gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput < 0)
|
||||
gTasks[taskId].tInput = 0;
|
||||
}
|
||||
if (JOY_NEW(DPAD_LEFT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit > 0)
|
||||
gTasks[taskId].tDigit -= 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_RIGHT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit < 2)
|
||||
gTasks[taskId].tDigit += 1;
|
||||
}
|
||||
Debug_HandleInput_Numeric(taskId, 0, LAST_MAP_GROUP, 3);
|
||||
|
||||
ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 3);
|
||||
ConvertIntToDecimalStringN(gStringVar2, LAST_MAP_GROUP, STR_CONV_MODE_LEADING_ZEROS, 3);
|
||||
@ -2012,28 +2026,7 @@ static void DebugAction_Util_Warp_SelectMap(u8 taskId)
|
||||
if (JOY_NEW(DPAD_ANY))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
if (JOY_NEW(DPAD_UP))
|
||||
{
|
||||
gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput > max_value - 1)
|
||||
gTasks[taskId].tInput = max_value - 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_DOWN))
|
||||
{
|
||||
gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput < 0)
|
||||
gTasks[taskId].tInput = 0;
|
||||
}
|
||||
if (JOY_NEW(DPAD_LEFT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit > 0)
|
||||
gTasks[taskId].tDigit -= 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_RIGHT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit < 2)
|
||||
gTasks[taskId].tDigit += 1;
|
||||
}
|
||||
Debug_HandleInput_Numeric(taskId, 0, max_value - 1, 3);
|
||||
|
||||
ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, (max_value >= 100) ? 3 : 2);
|
||||
ConvertIntToDecimalStringN(gStringVar2, MAP_GROUP_COUNT[gTasks[taskId].tMapGroup] - 1, STR_CONV_MODE_LEADING_ZEROS, (max_value >= 100) ? 3 : 2);
|
||||
@ -2257,29 +2250,7 @@ static void DebugAction_Util_Weather_SelectId(u8 taskId)
|
||||
if (JOY_NEW(DPAD_ANY))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
|
||||
if (JOY_NEW(DPAD_UP))
|
||||
{
|
||||
gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput > WEATHER_ROUTE123_CYCLE)
|
||||
gTasks[taskId].tInput = WEATHER_ROUTE123_CYCLE;
|
||||
}
|
||||
if (JOY_NEW(DPAD_DOWN))
|
||||
{
|
||||
gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput < WEATHER_NONE)
|
||||
gTasks[taskId].tInput = WEATHER_NONE;
|
||||
}
|
||||
if (JOY_NEW(DPAD_LEFT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit > 0)
|
||||
gTasks[taskId].tDigit -= 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_RIGHT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit < 2)
|
||||
gTasks[taskId].tDigit += 1;
|
||||
}
|
||||
Debug_HandleInput_Numeric(taskId, WEATHER_NONE, WEATHER_COUNT - 1, 3);
|
||||
|
||||
StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]);
|
||||
ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 2);
|
||||
@ -2474,34 +2445,8 @@ static void DebugAction_FlagsVars_FlagsSelect(u8 taskId)
|
||||
return;
|
||||
}
|
||||
|
||||
if (JOY_NEW(DPAD_UP))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput >= FLAGS_COUNT)
|
||||
gTasks[taskId].tInput = FLAGS_COUNT - 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_DOWN))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput < 1)
|
||||
gTasks[taskId].tInput = 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_LEFT))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
gTasks[taskId].tDigit -= 1;
|
||||
if (gTasks[taskId].tDigit < 0)
|
||||
gTasks[taskId].tDigit = 0;
|
||||
}
|
||||
if (JOY_NEW(DPAD_RIGHT))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
gTasks[taskId].tDigit += 1;
|
||||
if (gTasks[taskId].tDigit > DEBUG_NUMBER_DIGITS_FLAGS - 1)
|
||||
gTasks[taskId].tDigit = DEBUG_NUMBER_DIGITS_FLAGS - 1;
|
||||
}
|
||||
PlaySE(SE_SELECT);
|
||||
Debug_HandleInput_Numeric(taskId, 1, FLAGS_COUNT - 1, DEBUG_NUMBER_DIGITS_FLAGS);
|
||||
|
||||
if (JOY_NEW(DPAD_ANY) || JOY_NEW(A_BUTTON))
|
||||
{
|
||||
@ -2553,30 +2498,7 @@ static void DebugAction_FlagsVars_Vars(u8 taskId)
|
||||
|
||||
static void DebugAction_FlagsVars_Select(u8 taskId)
|
||||
{
|
||||
if (JOY_NEW(DPAD_UP))
|
||||
{
|
||||
gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput > VARS_END)
|
||||
gTasks[taskId].tInput = VARS_END;
|
||||
}
|
||||
if (JOY_NEW(DPAD_DOWN))
|
||||
{
|
||||
gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput < VARS_START)
|
||||
gTasks[taskId].tInput = VARS_START;
|
||||
}
|
||||
if (JOY_NEW(DPAD_LEFT))
|
||||
{
|
||||
gTasks[taskId].tDigit -= 1;
|
||||
if (gTasks[taskId].tDigit < 0)
|
||||
gTasks[taskId].tDigit = 0;
|
||||
}
|
||||
if (JOY_NEW(DPAD_RIGHT))
|
||||
{
|
||||
gTasks[taskId].tDigit += 1;
|
||||
if (gTasks[taskId].tDigit > DEBUG_NUMBER_DIGITS_VARIABLES - 1)
|
||||
gTasks[taskId].tDigit = DEBUG_NUMBER_DIGITS_VARIABLES - 1;
|
||||
}
|
||||
Debug_HandleInput_Numeric(taskId, VARS_START, VARS_END, DEBUG_NUMBER_DIGITS_VARIABLES);
|
||||
|
||||
if (JOY_NEW(DPAD_ANY))
|
||||
{
|
||||
@ -2999,29 +2921,7 @@ static void DebugAction_Give_Item_SelectId(u8 taskId)
|
||||
if (JOY_NEW(DPAD_ANY))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
|
||||
if (JOY_NEW(DPAD_UP))
|
||||
{
|
||||
gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput >= ITEMS_COUNT)
|
||||
gTasks[taskId].tInput = ITEMS_COUNT - 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_DOWN))
|
||||
{
|
||||
gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput < 1)
|
||||
gTasks[taskId].tInput = 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_LEFT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit > 0)
|
||||
gTasks[taskId].tDigit -= 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_RIGHT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit < DEBUG_NUMBER_DIGITS_ITEMS - 1)
|
||||
gTasks[taskId].tDigit += 1;
|
||||
}
|
||||
Debug_HandleInput_Numeric(taskId, 1, ITEMS_COUNT - 1, DEBUG_NUMBER_DIGITS_ITEMS);
|
||||
|
||||
StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]);
|
||||
u8* end = CopyItemName(gTasks[taskId].tInput, gStringVar1);
|
||||
@ -3074,29 +2974,7 @@ static void DebugAction_Give_Item_SelectQuantity(u8 taskId)
|
||||
if (JOY_NEW(DPAD_ANY))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
|
||||
if (JOY_NEW(DPAD_UP))
|
||||
{
|
||||
gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput > MAX_BAG_ITEM_CAPACITY)
|
||||
gTasks[taskId].tInput = MAX_BAG_ITEM_CAPACITY;
|
||||
}
|
||||
if (JOY_NEW(DPAD_DOWN))
|
||||
{
|
||||
gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput < 1)
|
||||
gTasks[taskId].tInput = 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_LEFT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit > 0)
|
||||
gTasks[taskId].tDigit -= 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_RIGHT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit < MAX_ITEM_DIGITS)
|
||||
gTasks[taskId].tDigit += 1;
|
||||
}
|
||||
Debug_HandleInput_Numeric(taskId, 1, MAX_BAG_ITEM_CAPACITY, MAX_ITEM_DIGITS);
|
||||
|
||||
StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]);
|
||||
ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_ITEM_QUANTITY);
|
||||
@ -3139,6 +3017,9 @@ static void ResetMonDataStruct(struct DebugMonData *sDebugMonData)
|
||||
sDebugMonData->isShiny = FALSE;
|
||||
sDebugMonData->nature = 0;
|
||||
sDebugMonData->abilityNum = 0;
|
||||
sDebugMonData->teraType = TYPE_NONE;
|
||||
sDebugMonData->dynamaxLevel = 0;
|
||||
sDebugMonData->gmaxFactor = FALSE;
|
||||
sDebugMonData->mon_iv_hp = 0;
|
||||
sDebugMonData->mon_iv_atk = 0;
|
||||
sDebugMonData->mon_iv_def = 0;
|
||||
@ -3244,29 +3125,7 @@ static void DebugAction_Give_Pokemon_SelectId(u8 taskId)
|
||||
if (JOY_NEW(DPAD_ANY))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
|
||||
if (JOY_NEW(DPAD_UP))
|
||||
{
|
||||
gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput >= NUM_SPECIES)
|
||||
gTasks[taskId].tInput = NUM_SPECIES - 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_DOWN))
|
||||
{
|
||||
gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput < 1)
|
||||
gTasks[taskId].tInput = 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_LEFT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit > 0)
|
||||
gTasks[taskId].tDigit -= 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_RIGHT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit < DEBUG_NUMBER_DIGITS_ITEMS - 1)
|
||||
gTasks[taskId].tDigit += 1;
|
||||
}
|
||||
Debug_HandleInput_Numeric(taskId, 1, NUM_SPECIES - 1, DEBUG_NUMBER_DIGITS_ITEMS);
|
||||
|
||||
StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]);
|
||||
u8 *end = StringCopy(gStringVar1, GetSpeciesName(gTasks[taskId].tInput)); //CopyItemName(gTasks[taskId].tInput, gStringVar1);
|
||||
@ -3312,29 +3171,7 @@ static void DebugAction_Give_Pokemon_SelectLevel(u8 taskId)
|
||||
if (JOY_NEW(DPAD_ANY))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
|
||||
if (JOY_NEW(DPAD_UP))
|
||||
{
|
||||
gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput > MAX_LEVEL)
|
||||
gTasks[taskId].tInput = MAX_LEVEL;
|
||||
}
|
||||
if (JOY_NEW(DPAD_DOWN))
|
||||
{
|
||||
gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput < 1)
|
||||
gTasks[taskId].tInput = 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_LEFT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit > 0)
|
||||
gTasks[taskId].tDigit -= 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_RIGHT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit < 2)
|
||||
gTasks[taskId].tDigit += 1;
|
||||
}
|
||||
Debug_HandleInput_Numeric(taskId, 1, MAX_LEVEL, 3);
|
||||
|
||||
StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]);
|
||||
ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 3);
|
||||
@ -3429,8 +3266,8 @@ static void DebugAction_Give_Pokemon_SelectNature(u8 taskId)
|
||||
if (JOY_NEW(DPAD_UP))
|
||||
{
|
||||
gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput > NUM_NATURES-1)
|
||||
gTasks[taskId].tInput = NUM_NATURES-1;
|
||||
if (gTasks[taskId].tInput > NUM_NATURES - 1)
|
||||
gTasks[taskId].tInput = NUM_NATURES - 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_DOWN))
|
||||
{
|
||||
@ -3516,6 +3353,132 @@ static void DebugAction_Give_Pokemon_SelectAbility(u8 taskId)
|
||||
gTasks[taskId].tInput = 0;
|
||||
gTasks[taskId].tDigit = 0;
|
||||
|
||||
StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]);
|
||||
ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 2);
|
||||
StringCopyPadded(gStringVar3, gStringVar3, CHAR_SPACE, 15);
|
||||
StringCopy(gStringVar1, gTypesInfo[0].name);
|
||||
StringExpandPlaceholders(gStringVar4, sDebugText_PokemonTeraType);
|
||||
AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 0, 0, 0, NULL);
|
||||
|
||||
gTasks[taskId].func = DebugAction_Give_Pokemon_SelectTeraType;
|
||||
}
|
||||
else if (JOY_NEW(B_BUTTON))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
Free(sDebugMonData);
|
||||
DebugAction_DestroyExtraWindow(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
static void DebugAction_Give_Pokemon_SelectTeraType(u8 taskId)
|
||||
{
|
||||
if (JOY_NEW(DPAD_ANY))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
|
||||
if (JOY_NEW(DPAD_UP))
|
||||
{
|
||||
gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput > NUMBER_OF_MON_TYPES - 1)
|
||||
gTasks[taskId].tInput = NUMBER_OF_MON_TYPES - 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_DOWN))
|
||||
{
|
||||
gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput < 0)
|
||||
gTasks[taskId].tInput = 0;
|
||||
}
|
||||
|
||||
StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]);
|
||||
ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 2);
|
||||
StringCopyPadded(gStringVar3, gStringVar3, CHAR_SPACE, 15);
|
||||
StringCopy(gStringVar1, gTypesInfo[gTasks[taskId].tInput].name);
|
||||
StringExpandPlaceholders(gStringVar4, sDebugText_PokemonTeraType);
|
||||
AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 0, 0, 0, NULL);
|
||||
}
|
||||
|
||||
if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
sDebugMonData->teraType = gTasks[taskId].tInput;
|
||||
gTasks[taskId].tInput = 0;
|
||||
gTasks[taskId].tDigit = 0;
|
||||
|
||||
StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]);
|
||||
ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 2);
|
||||
StringCopyPadded(gStringVar1, gStringVar1, CHAR_SPACE, 15);
|
||||
StringExpandPlaceholders(gStringVar4, sDebugText_PokemonDynamaxLevel);
|
||||
AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 0, 0, 0, NULL);
|
||||
|
||||
gTasks[taskId].func = DebugAction_Give_Pokemon_SelectDynamaxLevel;
|
||||
}
|
||||
else if (JOY_NEW(B_BUTTON))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
Free(sDebugMonData);
|
||||
DebugAction_DestroyExtraWindow(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
static void DebugAction_Give_Pokemon_SelectDynamaxLevel(u8 taskId)
|
||||
{
|
||||
if (JOY_NEW(DPAD_ANY))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
Debug_HandleInput_Numeric(taskId, 0, MAX_DYNAMAX_LEVEL, 2);
|
||||
|
||||
StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]);
|
||||
ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 2);
|
||||
StringCopyPadded(gStringVar1, gStringVar1, CHAR_SPACE, 15);
|
||||
StringExpandPlaceholders(gStringVar4, sDebugText_PokemonDynamaxLevel);
|
||||
AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 0, 0, 0, NULL);
|
||||
}
|
||||
|
||||
if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
sDebugMonData->dynamaxLevel = gTasks[taskId].tInput;
|
||||
gTasks[taskId].tInput = 0;
|
||||
gTasks[taskId].tDigit = 0;
|
||||
|
||||
ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 0);
|
||||
StringCopyPadded(gStringVar3, gStringVar3, CHAR_SPACE, 15);
|
||||
StringCopyPadded(gStringVar2, sDebugText_False, CHAR_SPACE, 15);
|
||||
StringExpandPlaceholders(gStringVar4, sDebugText_PokemonGmaxFactor);
|
||||
AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 0, 0, 0, NULL);
|
||||
|
||||
gTasks[taskId].func = DebugAction_Give_Pokemon_SelectGigantamaxFactor;
|
||||
}
|
||||
else if (JOY_NEW(B_BUTTON))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
Free(sDebugMonData);
|
||||
FreeMonIconPalettes();
|
||||
FreeAndDestroyMonIconSprite(&gSprites[gTasks[taskId].tSpriteId]);
|
||||
DebugAction_DestroyExtraWindow(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
static void DebugAction_Give_Pokemon_SelectGigantamaxFactor(u8 taskId)
|
||||
{
|
||||
static const u8 *txtStr;
|
||||
|
||||
if (JOY_NEW(DPAD_ANY))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
gTasks[taskId].tInput ^= JOY_NEW(DPAD_UP | DPAD_DOWN) > 0;
|
||||
txtStr = (gTasks[taskId].tInput == TRUE) ? sDebugText_True : sDebugText_False;
|
||||
StringCopyPadded(gStringVar2, txtStr, CHAR_SPACE, 15);
|
||||
ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 0);
|
||||
StringCopyPadded(gStringVar3, gStringVar3, CHAR_SPACE, 15);
|
||||
StringExpandPlaceholders(gStringVar4, sDebugText_PokemonGmaxFactor);
|
||||
AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 0, 0, 0, NULL);
|
||||
}
|
||||
|
||||
if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
sDebugMonData->gmaxFactor = gTasks[taskId].tInput;
|
||||
gTasks[taskId].tInput = 0;
|
||||
gTasks[taskId].tDigit = 0;
|
||||
|
||||
StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]);
|
||||
ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 2);
|
||||
StringCopyPadded(gStringVar3, gStringVar3, CHAR_SPACE, 15);
|
||||
@ -3537,29 +3500,7 @@ static void DebugAction_Give_Pokemon_SelectIVs(u8 taskId)
|
||||
if (JOY_NEW(DPAD_ANY))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
|
||||
if (JOY_NEW(DPAD_UP))
|
||||
{
|
||||
gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput > MAX_PER_STAT_IVS)
|
||||
gTasks[taskId].tInput = MAX_PER_STAT_IVS;
|
||||
}
|
||||
if (JOY_NEW(DPAD_DOWN))
|
||||
{
|
||||
gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput < 0)
|
||||
gTasks[taskId].tInput = 0;
|
||||
}
|
||||
if (JOY_NEW(DPAD_LEFT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit > 0)
|
||||
gTasks[taskId].tDigit -= 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_RIGHT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit < 2)
|
||||
gTasks[taskId].tDigit += 1;
|
||||
}
|
||||
Debug_HandleInput_Numeric(taskId, 0, MAX_PER_STAT_IVS, 3);
|
||||
|
||||
StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]);
|
||||
ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 2);
|
||||
@ -3687,29 +3628,7 @@ static void DebugAction_Give_Pokemon_SelectEVs(u8 taskId)
|
||||
if (JOY_NEW(DPAD_ANY))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
|
||||
if (JOY_NEW(DPAD_UP))
|
||||
{
|
||||
gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput > MAX_PER_STAT_EVS)
|
||||
gTasks[taskId].tInput = MAX_PER_STAT_EVS;
|
||||
}
|
||||
if (JOY_NEW(DPAD_DOWN))
|
||||
{
|
||||
gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput < 0)
|
||||
gTasks[taskId].tInput = 0;
|
||||
}
|
||||
if (JOY_NEW(DPAD_LEFT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit > 0)
|
||||
gTasks[taskId].tDigit -= 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_RIGHT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit < 3)
|
||||
gTasks[taskId].tDigit += 1;
|
||||
}
|
||||
Debug_HandleInput_Numeric(taskId, 0, MAX_PER_STAT_EVS, 4);
|
||||
|
||||
StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]);
|
||||
ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 3);
|
||||
@ -3849,29 +3768,7 @@ static void DebugAction_Give_Pokemon_Move(u8 taskId)
|
||||
if (JOY_NEW(DPAD_ANY))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
|
||||
if (JOY_NEW(DPAD_UP))
|
||||
{
|
||||
gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput >= MOVES_COUNT)
|
||||
gTasks[taskId].tInput = MOVES_COUNT - 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_DOWN))
|
||||
{
|
||||
gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput < 0)
|
||||
gTasks[taskId].tInput = 0;
|
||||
}
|
||||
if (JOY_NEW(DPAD_LEFT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit > 0)
|
||||
gTasks[taskId].tDigit -= 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_RIGHT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit < 3)
|
||||
gTasks[taskId].tDigit += 1;
|
||||
}
|
||||
Debug_HandleInput_Numeric(taskId, 0, MOVES_COUNT - 1, 4);
|
||||
|
||||
StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]);
|
||||
u8 *end = StringCopy(gStringVar1, GetMoveName(gTasks[taskId].tInput));
|
||||
@ -3983,6 +3880,9 @@ static void DebugAction_Give_Pokemon_ComplexCreateMon(u8 taskId) //https://githu
|
||||
bool8 isShiny = sDebugMonData->isShiny;
|
||||
u8 nature = sDebugMonData->nature;
|
||||
u8 abilityNum = sDebugMonData->abilityNum;
|
||||
u32 teraType = sDebugMonData->teraType;
|
||||
u32 dmaxLevel = sDebugMonData->dynamaxLevel;
|
||||
u32 gmaxFactor = sDebugMonData->gmaxFactor;
|
||||
moves[0] = sDebugMonData->mon_move_0;
|
||||
moves[1] = sDebugMonData->mon_move_1;
|
||||
moves[2] = sDebugMonData->mon_move_2;
|
||||
@ -4003,16 +3903,27 @@ static void DebugAction_Give_Pokemon_ComplexCreateMon(u8 taskId) //https://githu
|
||||
//Nature
|
||||
if (nature == NUM_NATURES || nature == 0xFF)
|
||||
nature = Random() % NUM_NATURES;
|
||||
CreateMonWithNature(&mon, species, level, 32, nature);
|
||||
CreateMonWithNature(&mon, species, level, USE_RANDOM_IVS, nature);
|
||||
|
||||
//Shininess
|
||||
SetMonData(&mon, MON_DATA_IS_SHINY, &isShiny);
|
||||
|
||||
// Gigantamax factor
|
||||
SetMonData(&mon, MON_DATA_GIGANTAMAX_FACTOR, &gmaxFactor);
|
||||
|
||||
// Dynamax Level
|
||||
SetMonData(&mon, MON_DATA_DYNAMAX_LEVEL, &dmaxLevel);
|
||||
|
||||
// tera type
|
||||
if (teraType >= NUMBER_OF_MON_TYPES)
|
||||
teraType = TYPE_NONE;
|
||||
SetMonData(&mon, MON_DATA_TERA_TYPE, &teraType);
|
||||
|
||||
//IVs
|
||||
for (i = 0; i < NUM_STATS; i++)
|
||||
{
|
||||
iv_val = IVs[i];
|
||||
if (iv_val != 32 && iv_val != 0xFF)
|
||||
if (iv_val != USE_RANDOM_IVS && iv_val != 0xFF)
|
||||
SetMonData(&mon, MON_DATA_HP_IV + i, &iv_val);
|
||||
}
|
||||
|
||||
@ -4027,18 +3938,18 @@ static void DebugAction_Give_Pokemon_ComplexCreateMon(u8 taskId) //https://githu
|
||||
//Moves
|
||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||
{
|
||||
if (moves[i] == 0 || moves[i] == 0xFF || moves[i] >= MOVES_COUNT)
|
||||
if (moves[i] == MOVE_NONE || moves[i] == 0xFF || moves[i] >= MOVES_COUNT)
|
||||
continue;
|
||||
|
||||
SetMonMoveSlot(&mon, moves[i], i);
|
||||
}
|
||||
|
||||
//Ability
|
||||
if (abilityNum == 0xFF || GetAbilityBySpecies(species, abilityNum) == 0)
|
||||
if (abilityNum == 0xFF || GetAbilityBySpecies(species, abilityNum) == ABILITY_NONE)
|
||||
{
|
||||
do {
|
||||
abilityNum = Random() % 3; // includes hidden abilities
|
||||
} while (GetAbilityBySpecies(species, abilityNum) == 0);
|
||||
abilityNum = Random() % NUM_ABILITY_SLOTS; // includes hidden abilities
|
||||
} while (GetAbilityBySpecies(species, abilityNum) == ABILITY_NONE);
|
||||
}
|
||||
|
||||
SetMonData(&mon, MON_DATA_ABILITY_NUM, &abilityNum);
|
||||
@ -4056,7 +3967,9 @@ static void DebugAction_Give_Pokemon_ComplexCreateMon(u8 taskId) //https://githu
|
||||
}
|
||||
|
||||
if (i >= PARTY_SIZE)
|
||||
{
|
||||
sentToPc = CopyMonToPC(&mon);
|
||||
}
|
||||
else
|
||||
{
|
||||
sentToPc = MON_GIVEN_TO_PARTY;
|
||||
@ -4314,31 +4227,10 @@ static void DebugAction_Sound_SE_SelectId(u8 taskId)
|
||||
{
|
||||
if (JOY_NEW(DPAD_ANY))
|
||||
{
|
||||
if (JOY_NEW(DPAD_UP))
|
||||
{
|
||||
gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput > END_SE)
|
||||
gTasks[taskId].tInput = END_SE;
|
||||
}
|
||||
if (JOY_NEW(DPAD_DOWN))
|
||||
{
|
||||
gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput < 1)
|
||||
gTasks[taskId].tInput = 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_LEFT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit > 0)
|
||||
gTasks[taskId].tDigit -= 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_RIGHT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit < DEBUG_NUMBER_DIGITS_ITEMS - 1)
|
||||
gTasks[taskId].tDigit += 1;
|
||||
}
|
||||
Debug_HandleInput_Numeric(taskId, 1, END_SE, DEBUG_NUMBER_DIGITS_ITEMS);
|
||||
|
||||
StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]);
|
||||
StringCopyPadded(gStringVar1, sSENames[gTasks[taskId].tInput-1], CHAR_SPACE, 35);
|
||||
StringCopyPadded(gStringVar1, sSENames[gTasks[taskId].tInput - 1], CHAR_SPACE, 35);
|
||||
ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_ITEMS);
|
||||
StringExpandPlaceholders(gStringVar4, sDebugText_Sound_SFX_ID);
|
||||
AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 0, 0, 0, NULL);
|
||||
@ -4396,31 +4288,10 @@ static void DebugAction_Sound_MUS_SelectId(u8 taskId)
|
||||
{
|
||||
if (JOY_NEW(DPAD_ANY))
|
||||
{
|
||||
if (JOY_NEW(DPAD_UP))
|
||||
{
|
||||
gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput > END_MUS)
|
||||
gTasks[taskId].tInput = END_MUS;
|
||||
}
|
||||
if (JOY_NEW(DPAD_DOWN))
|
||||
{
|
||||
gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit];
|
||||
if (gTasks[taskId].tInput < START_MUS)
|
||||
gTasks[taskId].tInput = START_MUS;
|
||||
}
|
||||
if (JOY_NEW(DPAD_LEFT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit > 0)
|
||||
gTasks[taskId].tDigit -= 1;
|
||||
}
|
||||
if (JOY_NEW(DPAD_RIGHT))
|
||||
{
|
||||
if (gTasks[taskId].tDigit < DEBUG_NUMBER_DIGITS_ITEMS - 1)
|
||||
gTasks[taskId].tDigit += 1;
|
||||
}
|
||||
Debug_HandleInput_Numeric(taskId, START_MUS, END_MUS, DEBUG_NUMBER_DIGITS_ITEMS);
|
||||
|
||||
StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]);
|
||||
StringCopyPadded(gStringVar1, sBGMNames[gTasks[taskId].tInput-START_MUS], CHAR_SPACE, 35);
|
||||
StringCopyPadded(gStringVar1, sBGMNames[gTasks[taskId].tInput - START_MUS], CHAR_SPACE, 35);
|
||||
ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_ITEMS);
|
||||
StringExpandPlaceholders(gStringVar4, sDebugText_Sound_Music_ID);
|
||||
AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 0, 0, 0, NULL);
|
||||
|
||||
@ -332,7 +332,7 @@ void SetTeraType(struct ScriptContext *ctx)
|
||||
* if side/slot are assigned, it will create the mon at the assigned party location
|
||||
* if slot == PARTY_SIZE, it will give the mon to first available party or storage slot
|
||||
*/
|
||||
static u32 ScriptGiveMonParameterized(u8 side, u8 slot, u16 species, u8 level, u16 item, enum PokeBall ball, u8 nature, u8 abilityNum, u8 gender, u8 *evs, u8 *ivs, u16 *moves, bool8 isShiny, bool8 ggMaxFactor, u8 teraType)
|
||||
static u32 ScriptGiveMonParameterized(u8 side, u8 slot, u16 species, u8 level, u16 item, enum PokeBall ball, u8 nature, u8 abilityNum, u8 gender, u8 *evs, u8 *ivs, u16 *moves, bool8 isShiny, bool8 gmaxFactor, u8 teraType, u8 dmaxLevel)
|
||||
{
|
||||
u16 nationalDexNum;
|
||||
int sentToPc;
|
||||
@ -367,7 +367,10 @@ static u32 ScriptGiveMonParameterized(u8 side, u8 slot, u16 species, u8 level, u
|
||||
SetMonData(&mon, MON_DATA_IS_SHINY, &isShiny);
|
||||
|
||||
// gigantamax factor
|
||||
SetMonData(&mon, MON_DATA_GIGANTAMAX_FACTOR, &ggMaxFactor);
|
||||
SetMonData(&mon, MON_DATA_GIGANTAMAX_FACTOR, &gmaxFactor);
|
||||
|
||||
// Dynamax Level
|
||||
SetMonData(&mon, MON_DATA_DYNAMAX_LEVEL, &dmaxLevel);
|
||||
|
||||
// tera type
|
||||
if (teraType >= NUMBER_OF_MON_TYPES)
|
||||
@ -476,7 +479,7 @@ u32 ScriptGiveMon(u16 species, u8 level, u16 item)
|
||||
MAX_PER_STAT_IVS + 1, MAX_PER_STAT_IVS + 1, MAX_PER_STAT_IVS + 1}; // ScriptGiveMonParameterized won't touch the stats' IV.
|
||||
u16 moves[MAX_MON_MOVES] = {MOVE_NONE, MOVE_NONE, MOVE_NONE, MOVE_NONE};
|
||||
|
||||
return ScriptGiveMonParameterized(0, PARTY_SIZE, species, level, item, ITEM_POKE_BALL, NUM_NATURES, NUM_ABILITY_PERSONALITY, MON_GENDERLESS, evs, ivs, moves, FALSE, FALSE, NUMBER_OF_MON_TYPES);
|
||||
return ScriptGiveMonParameterized(0, PARTY_SIZE, species, level, item, ITEM_POKE_BALL, NUM_NATURES, NUM_ABILITY_PERSONALITY, MON_GENDERLESS, evs, ivs, moves, FALSE, FALSE, NUMBER_OF_MON_TYPES, 0);
|
||||
}
|
||||
|
||||
#define PARSE_FLAG(n, default_) (flags & (1 << (n))) ? VarGet(ScriptReadHalfword(ctx)) : (default_)
|
||||
@ -550,8 +553,9 @@ void ScrCmd_createmon(struct ScriptContext *ctx)
|
||||
u16 move3 = PARSE_FLAG(19, MOVE_NONE);
|
||||
u16 move4 = PARSE_FLAG(20, MOVE_NONE);
|
||||
bool8 isShiny = PARSE_FLAG(21, FALSE);
|
||||
bool8 ggMaxFactor = PARSE_FLAG(22, FALSE);
|
||||
bool8 gmaxFactor = PARSE_FLAG(22, FALSE);
|
||||
u8 teraType = PARSE_FLAG(23, NUMBER_OF_MON_TYPES);
|
||||
u8 dmaxLevel = PARSE_FLAG(24, 0);
|
||||
|
||||
u8 evs[NUM_STATS] = {hpEv, atkEv, defEv, speedEv, spAtkEv, spDefEv};
|
||||
u8 ivs[NUM_STATS] = {hpIv, atkIv, defIv, speedIv, spAtkIv, spDefIv};
|
||||
@ -562,7 +566,7 @@ void ScrCmd_createmon(struct ScriptContext *ctx)
|
||||
else
|
||||
Script_RequestEffects(SCREFF_V1);
|
||||
|
||||
gSpecialVar_Result = ScriptGiveMonParameterized(side, slot, species, level, item, ball, nature, abilityNum, gender, evs, ivs, moves, isShiny, ggMaxFactor, teraType);
|
||||
gSpecialVar_Result = ScriptGiveMonParameterized(side, slot, species, level, item, ball, nature, abilityNum, gender, evs, ivs, moves, isShiny, gmaxFactor, teraType, dmaxLevel);
|
||||
}
|
||||
|
||||
#undef PARSE_FLAG
|
||||
|
||||
@ -275,7 +275,7 @@ TEST("givemon [all]")
|
||||
ZeroPlayerPartyMons();
|
||||
|
||||
RUN_OVERWORLD_SCRIPT(
|
||||
givemon SPECIES_WOBBUFFET, 100, item=ITEM_LEFTOVERS, ball=ITEM_MASTER_BALL, nature=NATURE_BOLD, abilityNum=2, gender=MON_MALE, hpEv=1, atkEv=2, defEv=3, speedEv=4, spAtkEv=5, spDefEv=6, hpIv=7, atkIv=8, defIv=9, speedIv=10, spAtkIv=11, spDefIv=12, move1=MOVE_TACKLE, move2=MOVE_SPLASH, move3=MOVE_CELEBRATE, move4=MOVE_EXPLOSION, isShiny=TRUE, ggMaxFactor=TRUE, teraType=TYPE_FIRE;
|
||||
givemon SPECIES_WOBBUFFET, 100, item=ITEM_LEFTOVERS, ball=ITEM_MASTER_BALL, nature=NATURE_BOLD, abilityNum=2, gender=MON_MALE, hpEv=1, atkEv=2, defEv=3, speedEv=4, spAtkEv=5, spDefEv=6, hpIv=7, atkIv=8, defIv=9, speedIv=10, spAtkIv=11, spDefIv=12, move1=MOVE_TACKLE, move2=MOVE_SPLASH, move3=MOVE_CELEBRATE, move4=MOVE_EXPLOSION, isShiny=TRUE, gmaxFactor=TRUE, teraType=TYPE_FIRE, dmaxLevel=7;
|
||||
);
|
||||
|
||||
EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_SPECIES), SPECIES_WOBBUFFET);
|
||||
@ -304,6 +304,7 @@ TEST("givemon [all]")
|
||||
EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_IS_SHINY), TRUE);
|
||||
EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_GIGANTAMAX_FACTOR), TRUE);
|
||||
EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_TERA_TYPE), TYPE_FIRE);
|
||||
EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_DYNAMAX_LEVEL), 7);
|
||||
}
|
||||
|
||||
TEST("givemon [vars]")
|
||||
@ -336,9 +337,10 @@ TEST("givemon [vars]")
|
||||
VarSet(VAR_TEMP_9, TRUE);
|
||||
VarSet(VAR_TEMP_A, TRUE);
|
||||
VarSet(VAR_TEMP_B, TYPE_FIRE);
|
||||
VarSet(VAR_TEMP_E, 7);
|
||||
|
||||
RUN_OVERWORLD_SCRIPT(
|
||||
givemon VAR_TEMP_C, VAR_TEMP_D, item=VAR_0x8000, ball=VAR_0x8001, nature=VAR_0x8002, abilityNum=VAR_0x8003, gender=VAR_0x8004, hpEv=VAR_0x8005, atkEv=VAR_0x8006, defEv=VAR_0x8007, speedEv=VAR_0x8008, spAtkEv=VAR_0x8009, spDefEv=VAR_0x800A, hpIv=VAR_0x800B, atkIv=VAR_TEMP_0, defIv=VAR_TEMP_1, speedIv=VAR_TEMP_2, spAtkIv=VAR_TEMP_3, spDefIv=VAR_TEMP_4, move1=VAR_TEMP_5, move2=VAR_TEMP_6, move3=VAR_TEMP_7, move4=VAR_TEMP_8, isShiny=VAR_TEMP_9, ggMaxFactor=VAR_TEMP_A, teraType=VAR_TEMP_B;
|
||||
givemon VAR_TEMP_C, VAR_TEMP_D, item=VAR_0x8000, ball=VAR_0x8001, nature=VAR_0x8002, abilityNum=VAR_0x8003, gender=VAR_0x8004, hpEv=VAR_0x8005, atkEv=VAR_0x8006, defEv=VAR_0x8007, speedEv=VAR_0x8008, spAtkEv=VAR_0x8009, spDefEv=VAR_0x800A, hpIv=VAR_0x800B, atkIv=VAR_TEMP_0, defIv=VAR_TEMP_1, speedIv=VAR_TEMP_2, spAtkIv=VAR_TEMP_3, spDefIv=VAR_TEMP_4, move1=VAR_TEMP_5, move2=VAR_TEMP_6, move3=VAR_TEMP_7, move4=VAR_TEMP_8, isShiny=VAR_TEMP_9, gmaxFactor=VAR_TEMP_A, teraType=VAR_TEMP_B, dmaxLevel=VAR_TEMP_E;
|
||||
);
|
||||
|
||||
EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_SPECIES), SPECIES_WOBBUFFET);
|
||||
@ -367,6 +369,7 @@ TEST("givemon [vars]")
|
||||
EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_IS_SHINY), TRUE);
|
||||
EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_GIGANTAMAX_FACTOR), TRUE);
|
||||
EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_TERA_TYPE), TYPE_FIRE);
|
||||
EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_DYNAMAX_LEVEL), 7);
|
||||
}
|
||||
|
||||
TEST("checkteratype/setteratype work")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user