mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-02-04 18:30:07 +01:00
add ai info debug option
This commit is contained in:
parent
455899acf7
commit
6b59a9ac01
@ -263,7 +263,7 @@ struct AiLogicData
|
||||
|
||||
struct AI_ThinkingStruct
|
||||
{
|
||||
struct AiLogicData *data;
|
||||
struct AiLogicData data;
|
||||
u8 aiState;
|
||||
u8 movesetIndex;
|
||||
u16 moveConsidered;
|
||||
@ -321,7 +321,7 @@ struct BattleResources
|
||||
};
|
||||
|
||||
#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(gBattleResources->ai))
|
||||
#define AI_DATA ((struct AiLogicData *)(gBattleResources->ai->data))
|
||||
#define AI_DATA ((struct AiLogicData *)(&gBattleResources->ai->data))
|
||||
#define BATTLE_HISTORY ((struct BattleHistory *)(gBattleResources->battleHistory))
|
||||
|
||||
struct BattleResults
|
||||
|
@ -1076,6 +1076,8 @@ u16 AI_GetHoldEffect(u32 battlerId)
|
||||
return HOLD_EFFECT_NONE;
|
||||
if (AI_GetAbility(battlerId) == ABILITY_KLUTZ && !(gStatuses3[battlerId] & STATUS3_GASTRO_ACID))
|
||||
return HOLD_EFFECT_NONE;
|
||||
|
||||
return holdEffect;
|
||||
}
|
||||
|
||||
// different from IsBattlerGrounded in that we don't always know battler's hold effect or ability
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include "constants/moves.h"
|
||||
#include "constants/items.h"
|
||||
#include "constants/rgb.h"
|
||||
#include "constants/hold_effects.h"
|
||||
|
||||
#define MAX_MODIFY_DIGITS 4
|
||||
|
||||
@ -99,6 +100,7 @@ enum
|
||||
LIST_ITEM_SIDE_STATUS,
|
||||
LIST_ITEM_AI,
|
||||
LIST_ITEM_AI_MOVES_PTS,
|
||||
LIST_ITEM_AI_INFO,
|
||||
LIST_ITEM_VARIOUS,
|
||||
LIST_ITEM_COUNT
|
||||
};
|
||||
@ -150,7 +152,11 @@ enum
|
||||
VARIOUS_IN_LOVE,
|
||||
};
|
||||
|
||||
// Static Declarations
|
||||
static const u8 *GetHoldEffectName(u16 holdEffect);
|
||||
|
||||
// const rom data
|
||||
static const u8 sText_HoldEffect[] = _("Hold Effect");
|
||||
static const u8 sText_Ability[] = _("Ability");
|
||||
static const u8 sText_Moves[] = _("Moves");
|
||||
static const u8 sText_Stats[] = _("Stats");
|
||||
@ -223,6 +229,7 @@ static const u8 sText_HpAware[] = _("HP aware");
|
||||
static const u8 sText_Unknown[] = _("Unknown");
|
||||
static const u8 sText_InLove[] = _("In Love");
|
||||
static const u8 sText_AIMovePts[] = _("AI Move Pts");
|
||||
static const u8 sText_AiKnowledge[] = _("AI Info");
|
||||
static const u8 sText_EffectOverride[] = _("Effect Override");
|
||||
|
||||
static const u8 sText_EmptyString[] = _("");
|
||||
@ -320,6 +327,7 @@ static const struct ListMenuItem sMainListItems[] =
|
||||
{sText_SideStatus, LIST_ITEM_SIDE_STATUS},
|
||||
{sText_AI, LIST_ITEM_AI},
|
||||
{sText_AIMovePts, LIST_ITEM_AI_MOVES_PTS},
|
||||
{sText_AiKnowledge, LIST_ITEM_AI_INFO},
|
||||
{sText_Various, LIST_ITEM_VARIOUS},
|
||||
};
|
||||
|
||||
@ -784,6 +792,114 @@ static void SwitchToAiPointsView(u8 taskId)
|
||||
GetStructPtr(taskId)->aiViewState = 0;
|
||||
}
|
||||
|
||||
static const u8 *const sAiInfoItemNames[] =
|
||||
{
|
||||
sText_Ability,
|
||||
sText_HeldItem,
|
||||
sText_HoldEffect,
|
||||
};
|
||||
static void PutAiInfoText(struct BattleDebugMenu *data)
|
||||
{
|
||||
u32 i, j, count;
|
||||
u8 *text = malloc(0x50);
|
||||
|
||||
FillWindowPixelBuffer(data->aiMovesWindowId, 0x11);
|
||||
|
||||
// item names
|
||||
for (i = 0; i < ARRAY_COUNT(sAiInfoItemNames); i++)
|
||||
{
|
||||
AddTextPrinterParameterized(data->aiMovesWindowId, 1, sAiInfoItemNames[i], 3, i * 15, 0, NULL);
|
||||
}
|
||||
|
||||
// items info
|
||||
for (i = 0; i < gBattlersCount; i++)
|
||||
{
|
||||
if (GET_BATTLER_SIDE(i) == B_SIDE_PLAYER && IsBattlerAlive(i))
|
||||
{
|
||||
u16 ability = AI_GetAbility(i);
|
||||
u16 holdEffect = AI_GetHoldEffect(i);
|
||||
u16 item = gBattleMons[i].item;
|
||||
u8 x = (i == B_POSITION_PLAYER_LEFT) ? 83 + (i) * 75 : 83 + (i-1) * 75;
|
||||
AddTextPrinterParameterized(data->aiMovesWindowId, 0, gAbilityNames[ability], x, 0, 0, NULL);
|
||||
AddTextPrinterParameterized(data->aiMovesWindowId, 0, ItemId_GetName(item), x, 15, 0, NULL);
|
||||
AddTextPrinterParameterized(data->aiMovesWindowId, 0, GetHoldEffectName(holdEffect), x, 30, 0, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
CopyWindowToVram(data->aiMovesWindowId, 3);
|
||||
free(text);
|
||||
}
|
||||
|
||||
static void Task_ShowAiKnowledge(u8 taskId)
|
||||
{
|
||||
u32 i, count;
|
||||
struct WindowTemplate winTemplate;
|
||||
struct BattleDebugMenu *data = GetStructPtr(taskId);
|
||||
|
||||
switch (data->aiViewState)
|
||||
{
|
||||
case 0:
|
||||
HideBg(0);
|
||||
ShowBg(1);
|
||||
|
||||
// Swap battler if it's player mon
|
||||
data->aiBattlerId = data->battlerId;
|
||||
while (!IsBattlerAIControlled(data->aiBattlerId))
|
||||
{
|
||||
if (++data->aiBattlerId >= gBattlersCount)
|
||||
data->aiBattlerId = 0;
|
||||
}
|
||||
|
||||
LoadMonIconPalettes();
|
||||
for (count = 0, i = 0; i < MAX_BATTLERS_COUNT; i++)
|
||||
{
|
||||
if (GET_BATTLER_SIDE(i) == B_SIDE_PLAYER && IsBattlerAlive(i))
|
||||
{
|
||||
data->aiIconSpriteIds[i] = CreateMonIcon(gBattleMons[i].species,
|
||||
SpriteCallbackDummy,
|
||||
95 + (count * 80), 17, 0, 0, FALSE);
|
||||
gSprites[data->aiIconSpriteIds[i]].data[0] = i; // battler id
|
||||
count++;
|
||||
}
|
||||
else
|
||||
{
|
||||
data->aiIconSpriteIds[i] = 0xFF;
|
||||
}
|
||||
}
|
||||
data->aiMonSpriteId = CreateMonPicSprite_HandleDeoxys(gBattleMons[data->aiBattlerId].species,
|
||||
gBattleMons[data->aiBattlerId].otId,
|
||||
gBattleMons[data->aiBattlerId].personality,
|
||||
TRUE,
|
||||
39, 130, 15, 0xFFFF);
|
||||
data->aiViewState++;
|
||||
break;
|
||||
// Put text
|
||||
case 1:
|
||||
winTemplate = CreateWindowTemplate(1, 0, 4, 27, 14, 15, 0x200);
|
||||
data->aiMovesWindowId = AddWindow(&winTemplate);
|
||||
PutWindowTilemap(data->aiMovesWindowId);
|
||||
PutAiInfoText(data);
|
||||
data->aiViewState++;
|
||||
break;
|
||||
// Input
|
||||
case 2:
|
||||
if (gMain.newKeys & (SELECT_BUTTON | B_BUTTON))
|
||||
{
|
||||
SwitchToDebugView(taskId);
|
||||
HideBg(1);
|
||||
ShowBg(0);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void SwitchToAiInfoView(u8 taskId)
|
||||
{
|
||||
gTasks[taskId].func = Task_ShowAiKnowledge;
|
||||
GetStructPtr(taskId)->aiViewState = 0;
|
||||
}
|
||||
|
||||
static void SwitchToDebugView(u8 taskId)
|
||||
{
|
||||
u32 i;
|
||||
@ -845,6 +961,11 @@ static void Task_DebugMenuProcessInput(u8 taskId)
|
||||
SwitchToAiPointsView(taskId);
|
||||
return;
|
||||
}
|
||||
else if (listItemId == LIST_ITEM_AI_INFO && gMain.newKeys & A_BUTTON)
|
||||
{
|
||||
SwitchToAiInfoView(taskId);
|
||||
return;
|
||||
}
|
||||
data->currentMainListItemId = listItemId;
|
||||
|
||||
// Create the secondary menu list.
|
||||
@ -1041,6 +1162,7 @@ static void CreateSecondaryListMenu(struct BattleDebugMenu *data)
|
||||
itemsCount = ARRAY_COUNT(sSideStatusListItems);
|
||||
break;
|
||||
case LIST_ITEM_AI_MOVES_PTS:
|
||||
case LIST_ITEM_AI_INFO:
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1678,3 +1800,289 @@ static void UpdateMonData(struct BattleDebugMenu *data)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static const u8 sText_HoldEffectNone[] = _("????????");
|
||||
static const u8 sText_HoldEffectRestoreHp[] = _("Restore Hp");
|
||||
static const u8 sText_HoldEffectCurePar[] = _("Cure Par");
|
||||
static const u8 sText_HoldEffectCureSlp[] = _("Cure Slp");
|
||||
static const u8 sText_HoldEffectCurePsn[] = _("Cure Psn");
|
||||
static const u8 sText_HoldEffectCureBrn[] = _("Cure Brn");
|
||||
static const u8 sText_HoldEffectCureFrz[] = _("Cure Frz");
|
||||
static const u8 sText_HoldEffectRestorePp[] = _("Restore Pp");
|
||||
static const u8 sText_HoldEffectCureConfusion[] = _("Cure Confusion");
|
||||
static const u8 sText_HoldEffectCureStatus[] = _("Cure Status");
|
||||
static const u8 sText_HoldEffectConfuseSpicy[] = _("Confuse Spicy");
|
||||
static const u8 sText_HoldEffectConfuseDry[] = _("Confuse Dry");
|
||||
static const u8 sText_HoldEffectConfuseSweet[] = _("Confuse Sweet");
|
||||
static const u8 sText_HoldEffectConfuseBitter[] = _("Confuse Bitter");
|
||||
static const u8 sText_HoldEffectConfuseSour[] = _("Confuse Sour");
|
||||
static const u8 sText_HoldEffectAttackUp[] = _("Attack Up");
|
||||
static const u8 sText_HoldEffectDefenseUp[] = _("Defense Up");
|
||||
static const u8 sText_HoldEffectSpeedUp[] = _("Speed Up");
|
||||
static const u8 sText_HoldEffectSpAttackUp[] = _("Sp Attack Up");
|
||||
static const u8 sText_HoldEffectSpDefenseUp[] = _("Sp Defense Up");
|
||||
static const u8 sText_HoldEffectCriticalUp[] = _("Critical Up");
|
||||
static const u8 sText_HoldEffectRandomStatUp[] = _("Random Stat Up");
|
||||
static const u8 sText_HoldEffectEvasionUp[] = _("Evasion Up");
|
||||
static const u8 sText_HoldEffectRestoreStats[] = _("Restore Stats");
|
||||
static const u8 sText_HoldEffectMachoBrace[] = _("Macho Brace");
|
||||
static const u8 sText_HoldEffectExpShare[] = _("Exp Share");
|
||||
static const u8 sText_HoldEffectQuickClaw[] = _("Quick Claw");
|
||||
static const u8 sText_HoldEffectHappinessUp[] = _("Happiness Up");
|
||||
static const u8 sText_HoldEffectMentalHerb[] = _("Mental Herb");
|
||||
static const u8 sText_HoldEffectChoiceBand[] = _("Choice Band");
|
||||
static const u8 sText_HoldEffectFlinch[] = _("Flinch");
|
||||
static const u8 sText_HoldEffectBugPower[] = _("Bug Power");
|
||||
static const u8 sText_HoldEffectDoublePrize[] = _("Double Prize");
|
||||
static const u8 sText_HoldEffectRepel[] = _("Repel");
|
||||
static const u8 sText_HoldEffectSoulDew[] = _("Soul Dew");
|
||||
static const u8 sText_HoldEffectDeepSeaTooth[] = _("Deep Sea Tooth");
|
||||
static const u8 sText_HoldEffectDeepSeaScale[] = _("Deep Sea Scale");
|
||||
static const u8 sText_HoldEffectCanAlwaysRun[] = _("Can Always Run");
|
||||
static const u8 sText_HoldEffectPreventEvolve[] = _("Prevent Evolve");
|
||||
static const u8 sText_HoldEffectFocusBand[] = _("Focus Band");
|
||||
static const u8 sText_HoldEffectLuckyEgg[] = _("Lucky Egg");
|
||||
static const u8 sText_HoldEffectScopeLens[] = _("Scope Lens");
|
||||
static const u8 sText_HoldEffectSteelPower[] = _("Steel Power");
|
||||
static const u8 sText_HoldEffectLeftovers[] = _("Leftovers");
|
||||
static const u8 sText_HoldEffectDragonScale[] = _("Dragon Scale");
|
||||
static const u8 sText_HoldEffectLightBall[] = _("Light Ball");
|
||||
static const u8 sText_HoldEffectGroundPower[] = _("Ground Power");
|
||||
static const u8 sText_HoldEffectRockPower[] = _("Rock Power");
|
||||
static const u8 sText_HoldEffectGrassPower[] = _("Grass Power");
|
||||
static const u8 sText_HoldEffectDarkPower[] = _("Dark Power");
|
||||
static const u8 sText_HoldEffectFightingPower[] = _("Fighting Power");
|
||||
static const u8 sText_HoldEffectElectricPower[] = _("Electric Power");
|
||||
static const u8 sText_HoldEffectWaterPower[] = _("Water Power");
|
||||
static const u8 sText_HoldEffectFlyingPower[] = _("Flying Power");
|
||||
static const u8 sText_HoldEffectPoisonPower[] = _("Poison Power");
|
||||
static const u8 sText_HoldEffectIcePower[] = _("Ice Power");
|
||||
static const u8 sText_HoldEffectGhostPower[] = _("Ghost Power");
|
||||
static const u8 sText_HoldEffectPsychicPower[] = _("Psychic Power");
|
||||
static const u8 sText_HoldEffectFirePower[] = _("Fire Power");
|
||||
static const u8 sText_HoldEffectDragonPower[] = _("Dragon Power");
|
||||
static const u8 sText_HoldEffectNormalPower[] = _("Normal Power");
|
||||
static const u8 sText_HoldEffectUpGrade[] = _("Up Grade");
|
||||
static const u8 sText_HoldEffectShellBell[] = _("Shell Bell");
|
||||
static const u8 sText_HoldEffectLuckyPunch[] = _("Lucky Punch");
|
||||
static const u8 sText_HoldEffectMetalPowder[] = _("Metal Powder");
|
||||
static const u8 sText_HoldEffectThickClub[] = _("Thick Club");
|
||||
static const u8 sText_HoldEffectStick[] = _("Stick");
|
||||
static const u8 sText_HoldEffectChoiceScarf[] = _("Choice Scarf");
|
||||
static const u8 sText_HoldEffectChoiceSpecs[] = _("Choice Specs");
|
||||
static const u8 sText_HoldEffectDampRock[] = _("Damp Rock");
|
||||
static const u8 sText_HoldEffectGripClaw[] = _("Grip Claw");
|
||||
static const u8 sText_HoldEffectHeatRock[] = _("Heat Rock");
|
||||
static const u8 sText_HoldEffectIcyRock[] = _("Icy Rock");
|
||||
static const u8 sText_HoldEffectLightClay[] = _("Light Clay");
|
||||
static const u8 sText_HoldEffectSmoothRock[] = _("Smooth Rock");
|
||||
static const u8 sText_HoldEffectPowerHerb[] = _("Power Herb");
|
||||
static const u8 sText_HoldEffectBigRoot[] = _("Big Root");
|
||||
static const u8 sText_HoldEffectExpertBelt[] = _("Expert Belt");
|
||||
static const u8 sText_HoldEffectLifeOrb[] = _("Life Orb");
|
||||
static const u8 sText_HoldEffectMetronome[] = _("Metronome");
|
||||
static const u8 sText_HoldEffectMuscleBand[] = _("Muscle Band");
|
||||
static const u8 sText_HoldEffectWideLens[] = _("Wide Lens");
|
||||
static const u8 sText_HoldEffectWiseGlasses[] = _("Wise Glasses");
|
||||
static const u8 sText_HoldEffectZoomLens[] = _("Zoom Lens");
|
||||
static const u8 sText_HoldEffectLaggingTail[] = _("Lagging Tail");
|
||||
static const u8 sText_HoldEffectFocusSash[] = _("Focus Sash");
|
||||
static const u8 sText_HoldEffectFlameOrb[] = _("Flame Orb");
|
||||
static const u8 sText_HoldEffectToxicOrb[] = _("Toxic Orb");
|
||||
static const u8 sText_HoldEffectStickyBarb[] = _("Sticky Barb");
|
||||
static const u8 sText_HoldEffectIronBall[] = _("Iron Ball");
|
||||
static const u8 sText_HoldEffectBlackSludge[] = _("Black Sludge");
|
||||
static const u8 sText_HoldEffectDestinyKnot[] = _("Destiny Knot");
|
||||
static const u8 sText_HoldEffectShedShell[] = _("Shed Shell");
|
||||
static const u8 sText_HoldEffectQuickPowder[] = _("Quick Powder");
|
||||
static const u8 sText_HoldEffectAdamantOrb[] = _("Adamant Orb");
|
||||
static const u8 sText_HoldEffectLustrousOrb[] = _("Lustrous Orb");
|
||||
static const u8 sText_HoldEffectGriseousOrb[] = _("Griseous Orb");
|
||||
static const u8 sText_HoldEffectGracidea[] = _("Gracidea");
|
||||
static const u8 sText_HoldEffectResistBerry[] = _("Resist Berry");
|
||||
static const u8 sText_HoldEffectPowerItem[] = _("Power Item");
|
||||
static const u8 sText_HoldEffectRestorePctHp[] = _("Restore Pct Hp");
|
||||
static const u8 sText_HoldEffectMicleBerry[] = _("Micle Berry");
|
||||
static const u8 sText_HoldEffectCustapBerry[] = _("Custap Berry");
|
||||
static const u8 sText_HoldEffectJabocaBerry[] = _("Jaboca Berry");
|
||||
static const u8 sText_HoldEffectRowapBerry[] = _("Rowap Berry");
|
||||
static const u8 sText_HoldEffectKeeBerry[] = _("Kee Berry");
|
||||
static const u8 sText_HoldEffectMarangaBerry[] = _("Maranga Berry");
|
||||
static const u8 sText_HoldEffectFloatStone[] = _("Float Stone");
|
||||
static const u8 sText_HoldEffectEviolite[] = _("Eviolite");
|
||||
static const u8 sText_HoldEffectAssaultVest[] = _("Assault Vest");
|
||||
static const u8 sText_HoldEffectDrive[] = _("Drive");
|
||||
static const u8 sText_HoldEffectGems[] = _("Gems");
|
||||
static const u8 sText_HoldEffectRockyHelmet[] = _("Rocky Helmet");
|
||||
static const u8 sText_HoldEffectAirBalloon[] = _("Air Balloon");
|
||||
static const u8 sText_HoldEffectRedCard[] = _("Red Card");
|
||||
static const u8 sText_HoldEffectRingTarget[] = _("Ring Target");
|
||||
static const u8 sText_HoldEffectBindingBand[] = _("Binding Band");
|
||||
static const u8 sText_HoldEffectEjectButton[] = _("Eject Button");
|
||||
static const u8 sText_HoldEffectAbsorbBulb[] = _("Absorb Bulb");
|
||||
static const u8 sText_HoldEffectCellBattery[] = _("Cell Battery");
|
||||
static const u8 sText_HoldEffectFairyPower[] = _("Fairy Power");
|
||||
static const u8 sText_HoldEffectMegaStone[] = _("Mega Stone");
|
||||
static const u8 sText_HoldEffectSafetyGoogles[] = _("Safety Googles");
|
||||
static const u8 sText_HoldEffectLuminousMoss[] = _("Luminous Moss");
|
||||
static const u8 sText_HoldEffectSnowball[] = _("Snowball");
|
||||
static const u8 sText_HoldEffectWeaknessPolicy[] = _("Weakness Policy");
|
||||
static const u8 sText_HoldEffectProtectivePads[] = _("Protective Pads");
|
||||
static const u8 sText_HoldEffectTerrainExtender[] = _("Terrain Extender");
|
||||
static const u8 sText_HoldEffectSeeds[] = _("Seeds");
|
||||
static const u8 sText_HoldEffectAdrenalineOrb[] = _("Adrenaline Orb");
|
||||
static const u8 sText_HoldEffectMemory[] = _("Memory");
|
||||
static const u8 sText_HoldEffectPlate[] = _("Plate");
|
||||
static const u8 sText_HoldEffectUtilityUmbrella[] = _("Utility Umbrella");
|
||||
static const u8 sText_HoldEffectEjectPack[] = _("Eject Pack");
|
||||
static const u8 sText_HoldEffectRoomService[] = _("Room Service");
|
||||
static const u8 sText_HoldEffectBlunderPolicy[] = _("Blunder Policy");
|
||||
static const u8 sText_HoldEffectHeavyDutyBoots[] = _("Heavy Duty Boots");
|
||||
static const u8 sText_HoldEffectThroatSpray[] = _("Throat Spray");
|
||||
static const u8 *const sHoldEffectNames[] =
|
||||
{
|
||||
[HOLD_EFFECT_NONE] = sText_HoldEffectNone,
|
||||
[HOLD_EFFECT_RESTORE_HP] = sText_HoldEffectRestoreHp,
|
||||
[HOLD_EFFECT_CURE_PAR] = sText_HoldEffectCurePar,
|
||||
[HOLD_EFFECT_CURE_SLP] = sText_HoldEffectCureSlp,
|
||||
[HOLD_EFFECT_CURE_PSN] = sText_HoldEffectCurePsn,
|
||||
[HOLD_EFFECT_CURE_BRN] = sText_HoldEffectCureBrn,
|
||||
[HOLD_EFFECT_CURE_FRZ] = sText_HoldEffectCureFrz,
|
||||
[HOLD_EFFECT_RESTORE_PP] = sText_HoldEffectRestorePp,
|
||||
[HOLD_EFFECT_CURE_CONFUSION] = sText_HoldEffectCureConfusion,
|
||||
[HOLD_EFFECT_CURE_STATUS] = sText_HoldEffectCureStatus,
|
||||
[HOLD_EFFECT_CONFUSE_SPICY] = sText_HoldEffectConfuseSpicy,
|
||||
[HOLD_EFFECT_CONFUSE_DRY] = sText_HoldEffectConfuseDry,
|
||||
[HOLD_EFFECT_CONFUSE_SWEET] = sText_HoldEffectConfuseSweet,
|
||||
[HOLD_EFFECT_CONFUSE_BITTER] = sText_HoldEffectConfuseBitter,
|
||||
[HOLD_EFFECT_CONFUSE_SOUR] = sText_HoldEffectConfuseSour,
|
||||
[HOLD_EFFECT_ATTACK_UP] = sText_HoldEffectAttackUp,
|
||||
[HOLD_EFFECT_DEFENSE_UP] = sText_HoldEffectDefenseUp,
|
||||
[HOLD_EFFECT_SPEED_UP] = sText_HoldEffectSpeedUp,
|
||||
[HOLD_EFFECT_SP_ATTACK_UP] = sText_HoldEffectSpAttackUp,
|
||||
[HOLD_EFFECT_SP_DEFENSE_UP] = sText_HoldEffectSpDefenseUp,
|
||||
[HOLD_EFFECT_CRITICAL_UP] = sText_HoldEffectCriticalUp,
|
||||
[HOLD_EFFECT_RANDOM_STAT_UP] = sText_HoldEffectRandomStatUp,
|
||||
[HOLD_EFFECT_EVASION_UP] = sText_HoldEffectEvasionUp,
|
||||
[HOLD_EFFECT_RESTORE_STATS] = sText_HoldEffectRestoreStats,
|
||||
[HOLD_EFFECT_MACHO_BRACE] = sText_HoldEffectMachoBrace,
|
||||
[HOLD_EFFECT_EXP_SHARE] = sText_HoldEffectExpShare,
|
||||
[HOLD_EFFECT_QUICK_CLAW] = sText_HoldEffectQuickClaw,
|
||||
[HOLD_EFFECT_HAPPINESS_UP] = sText_HoldEffectHappinessUp,
|
||||
//[HOLD_EFFECT_MENTAL_HERB] = sText_HoldEffectMentalHerb,
|
||||
[HOLD_EFFECT_CHOICE_BAND] = sText_HoldEffectChoiceBand,
|
||||
[HOLD_EFFECT_FLINCH] = sText_HoldEffectFlinch,
|
||||
[HOLD_EFFECT_BUG_POWER] = sText_HoldEffectBugPower,
|
||||
[HOLD_EFFECT_DOUBLE_PRIZE] = sText_HoldEffectDoublePrize,
|
||||
[HOLD_EFFECT_REPEL] = sText_HoldEffectRepel,
|
||||
[HOLD_EFFECT_SOUL_DEW] = sText_HoldEffectSoulDew,
|
||||
[HOLD_EFFECT_DEEP_SEA_TOOTH] = sText_HoldEffectDeepSeaTooth,
|
||||
[HOLD_EFFECT_DEEP_SEA_SCALE] = sText_HoldEffectDeepSeaScale,
|
||||
[HOLD_EFFECT_CAN_ALWAYS_RUN] = sText_HoldEffectCanAlwaysRun,
|
||||
[HOLD_EFFECT_PREVENT_EVOLVE] = sText_HoldEffectPreventEvolve,
|
||||
[HOLD_EFFECT_FOCUS_BAND] = sText_HoldEffectFocusBand,
|
||||
[HOLD_EFFECT_LUCKY_EGG] = sText_HoldEffectLuckyEgg,
|
||||
[HOLD_EFFECT_SCOPE_LENS] = sText_HoldEffectScopeLens,
|
||||
[HOLD_EFFECT_STEEL_POWER] = sText_HoldEffectSteelPower,
|
||||
[HOLD_EFFECT_LEFTOVERS] = sText_HoldEffectLeftovers,
|
||||
[HOLD_EFFECT_DRAGON_SCALE] = sText_HoldEffectDragonScale,
|
||||
[HOLD_EFFECT_LIGHT_BALL] = sText_HoldEffectLightBall,
|
||||
[HOLD_EFFECT_GROUND_POWER] = sText_HoldEffectGroundPower,
|
||||
[HOLD_EFFECT_ROCK_POWER] = sText_HoldEffectRockPower,
|
||||
[HOLD_EFFECT_GRASS_POWER] = sText_HoldEffectGrassPower,
|
||||
[HOLD_EFFECT_DARK_POWER] = sText_HoldEffectDarkPower,
|
||||
[HOLD_EFFECT_FIGHTING_POWER] = sText_HoldEffectFightingPower,
|
||||
[HOLD_EFFECT_ELECTRIC_POWER] = sText_HoldEffectElectricPower,
|
||||
[HOLD_EFFECT_WATER_POWER] = sText_HoldEffectWaterPower,
|
||||
[HOLD_EFFECT_FLYING_POWER] = sText_HoldEffectFlyingPower,
|
||||
[HOLD_EFFECT_POISON_POWER] = sText_HoldEffectPoisonPower,
|
||||
[HOLD_EFFECT_ICE_POWER] = sText_HoldEffectIcePower,
|
||||
[HOLD_EFFECT_GHOST_POWER] = sText_HoldEffectGhostPower,
|
||||
[HOLD_EFFECT_PSYCHIC_POWER] = sText_HoldEffectPsychicPower,
|
||||
[HOLD_EFFECT_FIRE_POWER] = sText_HoldEffectFirePower,
|
||||
[HOLD_EFFECT_DRAGON_POWER] = sText_HoldEffectDragonPower,
|
||||
[HOLD_EFFECT_NORMAL_POWER] = sText_HoldEffectNormalPower,
|
||||
[HOLD_EFFECT_UP_GRADE] = sText_HoldEffectUpGrade,
|
||||
[HOLD_EFFECT_SHELL_BELL] = sText_HoldEffectShellBell,
|
||||
[HOLD_EFFECT_LUCKY_PUNCH] = sText_HoldEffectLuckyPunch,
|
||||
[HOLD_EFFECT_METAL_POWDER] = sText_HoldEffectMetalPowder,
|
||||
[HOLD_EFFECT_THICK_CLUB] = sText_HoldEffectThickClub,
|
||||
[HOLD_EFFECT_STICK] = sText_HoldEffectStick,
|
||||
[HOLD_EFFECT_CHOICE_SCARF] = sText_HoldEffectChoiceScarf,
|
||||
[HOLD_EFFECT_CHOICE_SPECS] = sText_HoldEffectChoiceSpecs,
|
||||
[HOLD_EFFECT_DAMP_ROCK] = sText_HoldEffectDampRock,
|
||||
[HOLD_EFFECT_GRIP_CLAW] = sText_HoldEffectGripClaw,
|
||||
[HOLD_EFFECT_HEAT_ROCK] = sText_HoldEffectHeatRock,
|
||||
[HOLD_EFFECT_ICY_ROCK] = sText_HoldEffectIcyRock,
|
||||
[HOLD_EFFECT_LIGHT_CLAY] = sText_HoldEffectLightClay,
|
||||
[HOLD_EFFECT_SMOOTH_ROCK] = sText_HoldEffectSmoothRock,
|
||||
[HOLD_EFFECT_POWER_HERB] = sText_HoldEffectPowerHerb,
|
||||
[HOLD_EFFECT_BIG_ROOT] = sText_HoldEffectBigRoot,
|
||||
[HOLD_EFFECT_EXPERT_BELT] = sText_HoldEffectExpertBelt,
|
||||
[HOLD_EFFECT_LIFE_ORB] = sText_HoldEffectLifeOrb,
|
||||
[HOLD_EFFECT_METRONOME] = sText_HoldEffectMetronome,
|
||||
[HOLD_EFFECT_MUSCLE_BAND] = sText_HoldEffectMuscleBand,
|
||||
[HOLD_EFFECT_WIDE_LENS] = sText_HoldEffectWideLens,
|
||||
[HOLD_EFFECT_WISE_GLASSES] = sText_HoldEffectWiseGlasses,
|
||||
[HOLD_EFFECT_ZOOM_LENS] = sText_HoldEffectZoomLens,
|
||||
[HOLD_EFFECT_LAGGING_TAIL] = sText_HoldEffectLaggingTail,
|
||||
[HOLD_EFFECT_FOCUS_SASH] = sText_HoldEffectFocusSash,
|
||||
[HOLD_EFFECT_FLAME_ORB] = sText_HoldEffectFlameOrb,
|
||||
[HOLD_EFFECT_TOXIC_ORB] = sText_HoldEffectToxicOrb,
|
||||
[HOLD_EFFECT_STICKY_BARB] = sText_HoldEffectStickyBarb,
|
||||
[HOLD_EFFECT_IRON_BALL] = sText_HoldEffectIronBall,
|
||||
[HOLD_EFFECT_BLACK_SLUDGE] = sText_HoldEffectBlackSludge,
|
||||
[HOLD_EFFECT_DESTINY_KNOT] = sText_HoldEffectDestinyKnot,
|
||||
[HOLD_EFFECT_SHED_SHELL] = sText_HoldEffectShedShell,
|
||||
[HOLD_EFFECT_QUICK_POWDER] = sText_HoldEffectQuickPowder,
|
||||
[HOLD_EFFECT_ADAMANT_ORB] = sText_HoldEffectAdamantOrb,
|
||||
[HOLD_EFFECT_LUSTROUS_ORB] = sText_HoldEffectLustrousOrb,
|
||||
[HOLD_EFFECT_GRISEOUS_ORB] = sText_HoldEffectGriseousOrb,
|
||||
[HOLD_EFFECT_GRACIDEA] = sText_HoldEffectGracidea,
|
||||
[HOLD_EFFECT_RESIST_BERRY] = sText_HoldEffectResistBerry,
|
||||
[HOLD_EFFECT_POWER_ITEM] = sText_HoldEffectPowerItem,
|
||||
[HOLD_EFFECT_RESTORE_PCT_HP] = sText_HoldEffectRestorePctHp,
|
||||
//[HOLD_EFFECT_MICLE_BERRY] = sText_HoldEffectMicleBerry,
|
||||
//[HOLD_EFFECT_CUSTAP_BERRY] = sText_HoldEffectCustapBerry,
|
||||
//[HOLD_EFFECT_JABOCA_BERRY] = sText_HoldEffectJabocaBerry,
|
||||
//[HOLD_EFFECT_ROWAP_BERRY] = sText_HoldEffectRowapBerry,
|
||||
//[HOLD_EFFECT_KEE_BERRY] = sText_HoldEffectKeeBerry,
|
||||
//[HOLD_EFFECT_MARANGA_BERRY] = sText_HoldEffectMarangaBerry,
|
||||
[HOLD_EFFECT_FLOAT_STONE] = sText_HoldEffectFloatStone,
|
||||
[HOLD_EFFECT_EVIOLITE] = sText_HoldEffectEviolite,
|
||||
[HOLD_EFFECT_ASSAULT_VEST] = sText_HoldEffectAssaultVest,
|
||||
[HOLD_EFFECT_DRIVE] = sText_HoldEffectDrive,
|
||||
[HOLD_EFFECT_GEMS] = sText_HoldEffectGems,
|
||||
[HOLD_EFFECT_ROCKY_HELMET] = sText_HoldEffectRockyHelmet,
|
||||
[HOLD_EFFECT_AIR_BALLOON] = sText_HoldEffectAirBalloon,
|
||||
[HOLD_EFFECT_RED_CARD] = sText_HoldEffectRedCard,
|
||||
[HOLD_EFFECT_RING_TARGET] = sText_HoldEffectRingTarget,
|
||||
[HOLD_EFFECT_BINDING_BAND] = sText_HoldEffectBindingBand,
|
||||
[HOLD_EFFECT_EJECT_BUTTON] = sText_HoldEffectEjectButton,
|
||||
[HOLD_EFFECT_ABSORB_BULB] = sText_HoldEffectAbsorbBulb,
|
||||
[HOLD_EFFECT_CELL_BATTERY] = sText_HoldEffectCellBattery,
|
||||
[HOLD_EFFECT_FAIRY_POWER] = sText_HoldEffectFairyPower,
|
||||
[HOLD_EFFECT_MEGA_STONE] = sText_HoldEffectMegaStone,
|
||||
[HOLD_EFFECT_SAFETY_GOOGLES] = sText_HoldEffectSafetyGoogles,
|
||||
[HOLD_EFFECT_LUMINOUS_MOSS] = sText_HoldEffectLuminousMoss,
|
||||
[HOLD_EFFECT_SNOWBALL] = sText_HoldEffectSnowball,
|
||||
[HOLD_EFFECT_WEAKNESS_POLICY] = sText_HoldEffectWeaknessPolicy,
|
||||
[HOLD_EFFECT_PROTECTIVE_PADS] = sText_HoldEffectProtectivePads,
|
||||
[HOLD_EFFECT_TERRAIN_EXTENDER] = sText_HoldEffectTerrainExtender,
|
||||
[HOLD_EFFECT_SEEDS] = sText_HoldEffectSeeds,
|
||||
[HOLD_EFFECT_ADRENALINE_ORB] = sText_HoldEffectAdrenalineOrb,
|
||||
[HOLD_EFFECT_MEMORY] = sText_HoldEffectMemory,
|
||||
[HOLD_EFFECT_PLATE] = sText_HoldEffectPlate,
|
||||
[HOLD_EFFECT_UTILITY_UMBRELLA] = sText_HoldEffectUtilityUmbrella,
|
||||
[HOLD_EFFECT_EJECT_PACK] = sText_HoldEffectEjectPack,
|
||||
[HOLD_EFFECT_ROOM_SERVICE] = sText_HoldEffectRoomService,
|
||||
[HOLD_EFFECT_BLUNDER_POLICY] = sText_HoldEffectBlunderPolicy,
|
||||
[HOLD_EFFECT_HEAVY_DUTY_BOOTS] = sText_HoldEffectHeavyDutyBoots,
|
||||
[HOLD_EFFECT_THROAT_SPRAY] = sText_HoldEffectThroatSpray,
|
||||
};
|
||||
static const u8 *GetHoldEffectName(u16 holdEffect)
|
||||
{
|
||||
if (holdEffect > ARRAY_COUNT(sHoldEffectNames))
|
||||
return sHoldEffectNames[0];
|
||||
return sHoldEffectNames[holdEffect];
|
||||
}
|
||||
|
@ -3051,6 +3051,7 @@ void SwitchInClearSetData(void)
|
||||
|
||||
ClearBattlerMoveHistory(gActiveBattler);
|
||||
ClearBattlerAbilityHistory(gActiveBattler);
|
||||
ClearBattlerItemEffectHistory(gActiveBattler);
|
||||
}
|
||||
|
||||
void FaintClearSetData(void)
|
||||
@ -3139,6 +3140,7 @@ void FaintClearSetData(void)
|
||||
|
||||
ClearBattlerMoveHistory(gActiveBattler);
|
||||
ClearBattlerAbilityHistory(gActiveBattler);
|
||||
ClearBattlerItemEffectHistory(gActiveBattler);
|
||||
UndoFormChange(gBattlerPartyIndexes[gActiveBattler], GET_BATTLER_SIDE(gActiveBattler));
|
||||
if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
|
||||
UndoMegaEvolution(gBattlerPartyIndexes[gActiveBattler]);
|
||||
|
Loading…
x
Reference in New Issue
Block a user