mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-03-08 08:27:52 +01:00
Debug option to show opponents hp
This commit is contained in:
parent
2f6cc2be80
commit
cc764d8b77
@ -85,6 +85,7 @@ enum
|
|||||||
LIST_ITEM_STATUS3,
|
LIST_ITEM_STATUS3,
|
||||||
LIST_ITEM_SIDE_STATUS,
|
LIST_ITEM_SIDE_STATUS,
|
||||||
LIST_ITEM_AI,
|
LIST_ITEM_AI,
|
||||||
|
LIST_ITEM_VARIOUS,
|
||||||
LIST_ITEM_COUNT
|
LIST_ITEM_COUNT
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -103,7 +104,8 @@ enum
|
|||||||
VAL_BITFIELD_8,
|
VAL_BITFIELD_8,
|
||||||
VAL_BITFIELD_16,
|
VAL_BITFIELD_16,
|
||||||
VAL_BITFIELD_32,
|
VAL_BITFIELD_32,
|
||||||
VAR_SIDE_STATUS
|
VAR_SIDE_STATUS,
|
||||||
|
VAR_SHOW_HP,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum
|
enum
|
||||||
@ -121,6 +123,11 @@ enum
|
|||||||
LIST_SIDE_STICKY_WEB,
|
LIST_SIDE_STICKY_WEB,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
VARIOUS_SHOW_HP,
|
||||||
|
};
|
||||||
|
|
||||||
// const rom data
|
// const rom data
|
||||||
static const u8 sText_Ability[] = _("Ability");
|
static const u8 sText_Ability[] = _("Ability");
|
||||||
static const u8 sText_Moves[] = _("Moves");
|
static const u8 sText_Moves[] = _("Moves");
|
||||||
@ -186,6 +193,8 @@ static const u8 sText_TryFaint[] = _("Try Faint");
|
|||||||
static const u8 sText_SetUpFirstTurn[] = _("Setup 1 turn");
|
static const u8 sText_SetUpFirstTurn[] = _("Setup 1 turn");
|
||||||
static const u8 sText_Risky[] = _("Risky");
|
static const u8 sText_Risky[] = _("Risky");
|
||||||
static const u8 sText_StrongestMove[] = _("Most dmg move");
|
static const u8 sText_StrongestMove[] = _("Most dmg move");
|
||||||
|
static const u8 sText_Various[] = _("Various");
|
||||||
|
static const u8 sText_ShowHP[] = _("Show HP");
|
||||||
|
|
||||||
static const u8 sText_EmptyString[] = _("");
|
static const u8 sText_EmptyString[] = _("");
|
||||||
|
|
||||||
@ -277,6 +286,12 @@ static const struct ListMenuItem sMainListItems[] =
|
|||||||
{sText_Status3, LIST_ITEM_STATUS3},
|
{sText_Status3, LIST_ITEM_STATUS3},
|
||||||
{sText_SideStatus, LIST_ITEM_SIDE_STATUS},
|
{sText_SideStatus, LIST_ITEM_SIDE_STATUS},
|
||||||
{sText_AI, LIST_ITEM_AI},
|
{sText_AI, LIST_ITEM_AI},
|
||||||
|
{sText_Various, LIST_ITEM_VARIOUS},
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct ListMenuItem sVariousListItems[] =
|
||||||
|
{
|
||||||
|
{sText_ShowHP, VARIOUS_SHOW_HP},
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct ListMenuItem sAIListItems[] =
|
static const struct ListMenuItem sAIListItems[] =
|
||||||
@ -852,6 +867,10 @@ static void CreateSecondaryListMenu(struct BattleDebugMenu *data)
|
|||||||
itemsCount = ARRAY_COUNT(sAIListItems);
|
itemsCount = ARRAY_COUNT(sAIListItems);
|
||||||
data->bitfield = sAIBitfield;
|
data->bitfield = sAIBitfield;
|
||||||
break;
|
break;
|
||||||
|
case LIST_ITEM_VARIOUS:
|
||||||
|
listTemplate.items = sVariousListItems;
|
||||||
|
itemsCount = ARRAY_COUNT(sVariousListItems);
|
||||||
|
break;
|
||||||
case LIST_ITEM_SIDE_STATUS:
|
case LIST_ITEM_SIDE_STATUS:
|
||||||
listTemplate.items = sSideStatusListItems;
|
listTemplate.items = sSideStatusListItems;
|
||||||
itemsCount = ARRAY_COUNT(sSideStatusListItems);
|
itemsCount = ARRAY_COUNT(sSideStatusListItems);
|
||||||
@ -1024,6 +1043,9 @@ static void UpdateBattlerValue(struct BattleDebugMenu *data)
|
|||||||
case VAR_SIDE_STATUS:
|
case VAR_SIDE_STATUS:
|
||||||
*GetSideStatusValue(data, TRUE, data->modifyArrows.currValue != 0) = data->modifyArrows.currValue;
|
*GetSideStatusValue(data, TRUE, data->modifyArrows.currValue != 0) = data->modifyArrows.currValue;
|
||||||
break;
|
break;
|
||||||
|
case VAR_SHOW_HP:
|
||||||
|
(*(struct BattleSpriteInfo*)(data->modifyArrows.modifiedValPtr)).hpNumbersNoBars = data->modifyArrows.currValue;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
data->battlerWasChanged[data->battlerId] = TRUE;
|
data->battlerWasChanged[data->battlerId] = TRUE;
|
||||||
}
|
}
|
||||||
@ -1264,6 +1286,17 @@ static void SetUpModifyArrows(struct BattleDebugMenu *data)
|
|||||||
data->modifyArrows.typeOfVal = VAL_U8;
|
data->modifyArrows.typeOfVal = VAL_U8;
|
||||||
data->modifyArrows.currValue = gBattleMons[data->battlerId].statStages[data->currentSecondaryListItemId + STAT_ATK];
|
data->modifyArrows.currValue = gBattleMons[data->battlerId].statStages[data->currentSecondaryListItemId + STAT_ATK];
|
||||||
break;
|
break;
|
||||||
|
case LIST_ITEM_VARIOUS:
|
||||||
|
if (data->currentSecondaryListItemId == VARIOUS_SHOW_HP)
|
||||||
|
{
|
||||||
|
data->modifyArrows.minValue = 0;
|
||||||
|
data->modifyArrows.maxValue = 1;
|
||||||
|
data->modifyArrows.maxDigits = 1;
|
||||||
|
data->modifyArrows.modifiedValPtr = &gBattleSpritesDataPtr->battlerData[data->battlerId];
|
||||||
|
data->modifyArrows.typeOfVal = VAR_SHOW_HP;
|
||||||
|
data->modifyArrows.currValue = gBattleSpritesDataPtr->battlerData[data->battlerId].hpNumbersNoBars;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case LIST_ITEM_STATUS1:
|
case LIST_ITEM_STATUS1:
|
||||||
data->modifyArrows.modifiedValPtr = &gBattleMons[data->battlerId].status1;
|
data->modifyArrows.modifiedValPtr = &gBattleMons[data->battlerId].status1;
|
||||||
data->modifyArrows.currValue = GetBitfieldValue(gBattleMons[data->battlerId].status1, data->bitfield[data->currentSecondaryListItemId].currBit, data->bitfield[data->currentSecondaryListItemId].bitsCount);
|
data->modifyArrows.currValue = GetBitfieldValue(gBattleMons[data->battlerId].status1, data->bitfield[data->currentSecondaryListItemId].currBit, data->bitfield[data->currentSecondaryListItemId].bitsCount);
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include "battle_anim.h"
|
#include "battle_anim.h"
|
||||||
#include "constants/rgb.h"
|
#include "constants/rgb.h"
|
||||||
#include "data2.h"
|
#include "data2.h"
|
||||||
|
#include "battle_debug.h"
|
||||||
|
|
||||||
struct TestingBar
|
struct TestingBar
|
||||||
{
|
{
|
||||||
@ -1218,7 +1219,7 @@ void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent)
|
|||||||
|
|
||||||
memcpy(text, sUnknown_0832C3C4, sizeof(sUnknown_0832C3C4));
|
memcpy(text, sUnknown_0832C3C4, sizeof(sUnknown_0832C3C4));
|
||||||
battler = gSprites[healthboxSpriteId].hMain_Battler;
|
battler = gSprites[healthboxSpriteId].hMain_Battler;
|
||||||
if (IsDoubleBattle() == TRUE || GetBattlerSide(battler) == B_SIDE_OPPONENT)
|
if (IsDoubleBattle() == TRUE)
|
||||||
{
|
{
|
||||||
UpdateHpTextInHealthboxInDoubles(healthboxSpriteId, value, maxOrCurrent);
|
UpdateHpTextInHealthboxInDoubles(healthboxSpriteId, value, maxOrCurrent);
|
||||||
}
|
}
|
||||||
@ -1237,12 +1238,12 @@ void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (maxOrCurrent == HP_CURRENT)
|
if (maxOrCurrent == HP_CURRENT)
|
||||||
var = 20;
|
var = 21;
|
||||||
else
|
else
|
||||||
var = 48;
|
var = 49;
|
||||||
}
|
}
|
||||||
|
|
||||||
ConvertIntToDecimalStringN(text + 6, value, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
ConvertIntToDecimalStringN(text + 6, value, STR_CONV_MODE_LEADING_ZEROS, 3);
|
||||||
RenderTextFont9(gMonSpritesGfxPtr->barFontGfx, 9, text);
|
RenderTextFont9(gMonSpritesGfxPtr->barFontGfx, 9, text);
|
||||||
|
|
||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < 3; i++)
|
||||||
@ -2193,9 +2194,6 @@ void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elem
|
|||||||
s32 maxHp, currHp;
|
s32 maxHp, currHp;
|
||||||
u8 battlerId = gSprites[healthboxSpriteId].hMain_Battler;
|
u8 battlerId = gSprites[healthboxSpriteId].hMain_Battler;
|
||||||
|
|
||||||
if (elementId == HEALTHBOX_ALL && !IsDoubleBattle())
|
|
||||||
GetBattlerSide(battlerId); // Pointless function call.
|
|
||||||
|
|
||||||
if (GetBattlerSide(gSprites[healthboxSpriteId].hMain_Battler) == B_SIDE_PLAYER)
|
if (GetBattlerSide(gSprites[healthboxSpriteId].hMain_Battler) == B_SIDE_PLAYER)
|
||||||
{
|
{
|
||||||
u8 isDoubles;
|
u8 isDoubles;
|
||||||
@ -2245,6 +2243,10 @@ void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elem
|
|||||||
{
|
{
|
||||||
if (elementId == HEALTHBOX_LEVEL || elementId == HEALTHBOX_ALL)
|
if (elementId == HEALTHBOX_LEVEL || elementId == HEALTHBOX_ALL)
|
||||||
UpdateLvlInHealthbox(healthboxSpriteId, GetMonData(mon, MON_DATA_LEVEL));
|
UpdateLvlInHealthbox(healthboxSpriteId, GetMonData(mon, MON_DATA_LEVEL));
|
||||||
|
if (gBattleSpritesDataPtr->battlerData[battlerId].hpNumbersNoBars && (elementId == HEALTHBOX_CURRENT_HP || elementId == HEALTHBOX_ALL))
|
||||||
|
UpdateHpTextInHealthbox(healthboxSpriteId, GetMonData(mon, MON_DATA_HP), HP_CURRENT);
|
||||||
|
if (gBattleSpritesDataPtr->battlerData[battlerId].hpNumbersNoBars && (elementId == HEALTHBOX_MAX_HP || elementId == HEALTHBOX_ALL))
|
||||||
|
UpdateHpTextInHealthbox(healthboxSpriteId, GetMonData(mon, MON_DATA_MAX_HP), HP_MAX);
|
||||||
if (elementId == HEALTHBOX_HEALTH_BAR || elementId == HEALTHBOX_ALL)
|
if (elementId == HEALTHBOX_HEALTH_BAR || elementId == HEALTHBOX_ALL)
|
||||||
{
|
{
|
||||||
LoadBattleBarGfx(0);
|
LoadBattleBarGfx(0);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user