Adds configable nature colors (#3582)
* Colored stats depending on nature * Fix bug * Update colors and add config --------- Co-authored-by: DizzyEggg <jajkodizzy@wp.pl>
This commit is contained in:
parent
4cb03d4add
commit
9311911413
2 changed files with 34 additions and 21 deletions
|
@ -74,7 +74,8 @@
|
||||||
#define GEN_LATEST GEN_9
|
#define GEN_LATEST GEN_9
|
||||||
|
|
||||||
// General settings
|
// General settings
|
||||||
#define EXPANSION_INTRO TRUE // If TRUE, a custom RHH intro will play after the vanilla copyright screen.
|
#define EXPANSION_INTRO TRUE // If TRUE, a custom RHH intro will play after the vanilla copyright screen.
|
||||||
#define POKEDEX_PLUS_HGSS FALSE // If TRUE, enables the custom HGSS style Pokedex.
|
#define POKEDEX_PLUS_HGSS FALSE // If TRUE, enables the custom HGSS style Pokedex.
|
||||||
|
#define SUMMARY_SCREEN_NATURE_COLORS TRUE // If TRUE, nature-based stat boosts and reductions will be red and blue in the summary screen.
|
||||||
|
|
||||||
#endif // GUARD_CONFIG_H
|
#endif // GUARD_CONFIG_H
|
||||||
|
|
|
@ -3471,23 +3471,37 @@ static void PrintRibbonCount(void)
|
||||||
PrintTextOnWindow(AddWindowFromTemplateList(sPageSkillsTemplate, PSS_DATA_WINDOW_SKILLS_RIBBON_COUNT), text, x, 1, 0, 0);
|
PrintTextOnWindow(AddWindowFromTemplateList(sPageSkillsTemplate, PSS_DATA_WINDOW_SKILLS_RIBBON_COUNT), text, x, 1, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void BufferStat(u8 *dst, s8 natureMod, u32 stat, u32 strId, u32 n)
|
||||||
|
{
|
||||||
|
static const u8 sTextNatureDown[] = _("{COLOR}{08}");
|
||||||
|
static const u8 sTextNatureUp[] = _("{COLOR}{05}");
|
||||||
|
static const u8 sTextNatureNeutral[] = _("{COLOR}{01}");
|
||||||
|
u8 *txtPtr;
|
||||||
|
|
||||||
|
if (natureMod == 0 || !SUMMARY_SCREEN_NATURE_COLORS)
|
||||||
|
txtPtr = StringCopy(dst, sTextNatureNeutral);
|
||||||
|
else if (natureMod > 0)
|
||||||
|
txtPtr = StringCopy(dst, sTextNatureUp);
|
||||||
|
else
|
||||||
|
txtPtr = StringCopy(dst, sTextNatureDown);
|
||||||
|
|
||||||
|
ConvertIntToDecimalStringN(txtPtr, stat, STR_CONV_MODE_RIGHT_ALIGN, n);
|
||||||
|
DynamicPlaceholderTextUtil_SetPlaceholderPtr(strId, dst);
|
||||||
|
}
|
||||||
|
|
||||||
static void BufferLeftColumnStats(void)
|
static void BufferLeftColumnStats(void)
|
||||||
{
|
{
|
||||||
u8 *currentHPString = Alloc(8);
|
u8 *currentHPString = Alloc(20);
|
||||||
u8 *maxHPString = Alloc(8);
|
u8 *maxHPString = Alloc(20);
|
||||||
u8 *attackString = Alloc(8);
|
u8 *attackString = Alloc(20);
|
||||||
u8 *defenseString = Alloc(8);
|
u8 *defenseString = Alloc(20);
|
||||||
|
const s8 *natureMod = gNatureStatTable[sMonSummaryScreen->summary.nature];
|
||||||
ConvertIntToDecimalStringN(currentHPString, sMonSummaryScreen->summary.currentHP, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
|
||||||
ConvertIntToDecimalStringN(maxHPString, sMonSummaryScreen->summary.maxHP, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
|
||||||
ConvertIntToDecimalStringN(attackString, sMonSummaryScreen->summary.atk, STR_CONV_MODE_RIGHT_ALIGN, 7);
|
|
||||||
ConvertIntToDecimalStringN(defenseString, sMonSummaryScreen->summary.def, STR_CONV_MODE_RIGHT_ALIGN, 7);
|
|
||||||
|
|
||||||
DynamicPlaceholderTextUtil_Reset();
|
DynamicPlaceholderTextUtil_Reset();
|
||||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, currentHPString);
|
BufferStat(currentHPString, 0, sMonSummaryScreen->summary.currentHP, 0, 3);
|
||||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, maxHPString);
|
BufferStat(maxHPString, 0, sMonSummaryScreen->summary.maxHP, 1, 3);
|
||||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, attackString);
|
BufferStat(attackString, natureMod[STAT_ATK - 1], sMonSummaryScreen->summary.atk, 2, 7);
|
||||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, defenseString);
|
BufferStat(defenseString, natureMod[STAT_DEF - 1], sMonSummaryScreen->summary.def, 3, 7);
|
||||||
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, sStatsLeftColumnLayout);
|
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, sStatsLeftColumnLayout);
|
||||||
|
|
||||||
Free(currentHPString);
|
Free(currentHPString);
|
||||||
|
@ -3503,14 +3517,12 @@ static void PrintLeftColumnStats(void)
|
||||||
|
|
||||||
static void BufferRightColumnStats(void)
|
static void BufferRightColumnStats(void)
|
||||||
{
|
{
|
||||||
ConvertIntToDecimalStringN(gStringVar1, sMonSummaryScreen->summary.spatk, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
const s8 *natureMod = gNatureStatTable[sMonSummaryScreen->summary.nature];
|
||||||
ConvertIntToDecimalStringN(gStringVar2, sMonSummaryScreen->summary.spdef, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
|
||||||
ConvertIntToDecimalStringN(gStringVar3, sMonSummaryScreen->summary.speed, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
|
||||||
|
|
||||||
DynamicPlaceholderTextUtil_Reset();
|
DynamicPlaceholderTextUtil_Reset();
|
||||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
|
BufferStat(gStringVar1, natureMod[STAT_SPATK - 1], sMonSummaryScreen->summary.spatk, 0, 3);
|
||||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar2);
|
BufferStat(gStringVar2, natureMod[STAT_SPDEF - 1], sMonSummaryScreen->summary.spdef, 1, 3);
|
||||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gStringVar3);
|
BufferStat(gStringVar3, natureMod[STAT_SPEED - 1], sMonSummaryScreen->summary.speed, 2, 3);
|
||||||
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, sStatsRightColumnLayout);
|
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, sStatsRightColumnLayout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue