Add Frostbite status
Before Width: | Height: | Size: 531 B After Width: | Height: | Size: 559 B |
Before Width: | Height: | Size: 531 B After Width: | Height: | Size: 559 B |
Before Width: | Height: | Size: 530 B After Width: | Height: | Size: 559 B |
Before Width: | Height: | Size: 530 B After Width: | Height: | Size: 559 B |
Before Width: | Height: | Size: 455 B After Width: | Height: | Size: 458 B |
@ -115,8 +115,9 @@
|
|||||||
#define STATUS1_TOXIC_POISON (1 << 7)
|
#define STATUS1_TOXIC_POISON (1 << 7)
|
||||||
#define STATUS1_TOXIC_COUNTER (1 << 8 | 1 << 9 | 1 << 10 | 1 << 11)
|
#define STATUS1_TOXIC_COUNTER (1 << 8 | 1 << 9 | 1 << 10 | 1 << 11)
|
||||||
#define STATUS1_TOXIC_TURN(num) ((num) << 8)
|
#define STATUS1_TOXIC_TURN(num) ((num) << 8)
|
||||||
|
#define STATUS1_FROSTBITE (1 << 12)
|
||||||
#define STATUS1_PSN_ANY (STATUS1_POISON | STATUS1_TOXIC_POISON)
|
#define STATUS1_PSN_ANY (STATUS1_POISON | STATUS1_TOXIC_POISON)
|
||||||
#define STATUS1_ANY (STATUS1_SLEEP | STATUS1_POISON | STATUS1_BURN | STATUS1_FREEZE | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)
|
#define STATUS1_ANY (STATUS1_SLEEP | STATUS1_POISON | STATUS1_BURN | STATUS1_FREEZE | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON | STATUS1_FROSTBITE)
|
||||||
|
|
||||||
// Volatile status ailments
|
// Volatile status ailments
|
||||||
// These are removed after exiting the battle or switching out
|
// These are removed after exiting the battle or switching out
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
#define AILMENT_BRN 5
|
#define AILMENT_BRN 5
|
||||||
#define AILMENT_PKRS 6
|
#define AILMENT_PKRS 6
|
||||||
#define AILMENT_FNT 7
|
#define AILMENT_FNT 7
|
||||||
|
#define AILMENT_FSB 8
|
||||||
|
|
||||||
#define PARTY_LAYOUT_SINGLE 0
|
#define PARTY_LAYOUT_SINGLE 0
|
||||||
#define PARTY_LAYOUT_DOUBLE 1
|
#define PARTY_LAYOUT_DOUBLE 1
|
||||||
|
@ -181,6 +181,7 @@ static const u8 sText_SideStatus[] = _("Side Status");
|
|||||||
static const u8 sText_MaxHp[] = _("HP Max");
|
static const u8 sText_MaxHp[] = _("HP Max");
|
||||||
static const u8 sText_CurrHp[] = _("HP Current");
|
static const u8 sText_CurrHp[] = _("HP Current");
|
||||||
static const u8 sText_Freeze[] = _("Freeze");
|
static const u8 sText_Freeze[] = _("Freeze");
|
||||||
|
static const u8 sText_Frostbite[] = _("Frostbite");
|
||||||
static const u8 sText_ToxicPoison[] = _("Toxic Poison");
|
static const u8 sText_ToxicPoison[] = _("Toxic Poison");
|
||||||
static const u8 sText_ToxicCounter[] = _("Toxic Counter");
|
static const u8 sText_ToxicCounter[] = _("Toxic Counter");
|
||||||
static const u8 sText_Flinch[] = _("Flinch");
|
static const u8 sText_Flinch[] = _("Flinch");
|
||||||
@ -258,6 +259,7 @@ static const struct BitfieldInfo sStatus1Bitfield[] =
|
|||||||
{/*Paralysis*/1, 6},
|
{/*Paralysis*/1, 6},
|
||||||
{/*Toxic Poison*/ 1, 7},
|
{/*Toxic Poison*/ 1, 7},
|
||||||
{/*Toxic Counter*/ 4, 8},
|
{/*Toxic Counter*/ 4, 8},
|
||||||
|
{/*Frostbite*/ 1, 12},
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct BitfieldInfo sStatus2Bitfield[] =
|
static const struct BitfieldInfo sStatus2Bitfield[] =
|
||||||
@ -397,6 +399,7 @@ static const struct ListMenuItem sStatus1ListItems[] =
|
|||||||
{gText_Paralysis, 4},
|
{gText_Paralysis, 4},
|
||||||
{sText_ToxicPoison, 5},
|
{sText_ToxicPoison, 5},
|
||||||
{sText_ToxicCounter, 6},
|
{sText_ToxicCounter, 6},
|
||||||
|
{sText_Frostbite, 7},
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct ListMenuItem sStatus2ListItems[] =
|
static const struct ListMenuItem sStatus2ListItems[] =
|
||||||
|
@ -73,6 +73,9 @@ enum
|
|||||||
HEALTHBOX_GFX_STATUS_BRN_BATTLER0, //status brn
|
HEALTHBOX_GFX_STATUS_BRN_BATTLER0, //status brn
|
||||||
HEALTHBOX_GFX_34,
|
HEALTHBOX_GFX_34,
|
||||||
HEALTHBOX_GFX_35,
|
HEALTHBOX_GFX_35,
|
||||||
|
HEALTHBOX_GFX_STATUS_FSB_BATTLER0, //status fsb
|
||||||
|
HEALTHBOX_GFX_116,
|
||||||
|
HEALTHBOX_GFX_117,
|
||||||
HEALTHBOX_GFX_36, //misc [Black section]
|
HEALTHBOX_GFX_36, //misc [Black section]
|
||||||
HEALTHBOX_GFX_37, //misc [Black section]
|
HEALTHBOX_GFX_37, //misc [Black section]
|
||||||
HEALTHBOX_GFX_38, //misc [Black section]
|
HEALTHBOX_GFX_38, //misc [Black section]
|
||||||
@ -123,6 +126,9 @@ enum
|
|||||||
HEALTHBOX_GFX_STATUS_BRN_BATTLER1, //status2 "BRN"
|
HEALTHBOX_GFX_STATUS_BRN_BATTLER1, //status2 "BRN"
|
||||||
HEALTHBOX_GFX_84,
|
HEALTHBOX_GFX_84,
|
||||||
HEALTHBOX_GFX_85,
|
HEALTHBOX_GFX_85,
|
||||||
|
HEALTHBOX_GFX_STATUS_FSB_BATTLER1, //status2 "FSB"
|
||||||
|
HEALTHBOX_GFX_118,
|
||||||
|
HEALTHBOX_GFX_119,
|
||||||
HEALTHBOX_GFX_STATUS_PSN_BATTLER2, //status3 "PSN"
|
HEALTHBOX_GFX_STATUS_PSN_BATTLER2, //status3 "PSN"
|
||||||
HEALTHBOX_GFX_87,
|
HEALTHBOX_GFX_87,
|
||||||
HEALTHBOX_GFX_88,
|
HEALTHBOX_GFX_88,
|
||||||
@ -138,6 +144,9 @@ enum
|
|||||||
HEALTHBOX_GFX_STATUS_BRN_BATTLER2, //status3 "BRN"
|
HEALTHBOX_GFX_STATUS_BRN_BATTLER2, //status3 "BRN"
|
||||||
HEALTHBOX_GFX_99,
|
HEALTHBOX_GFX_99,
|
||||||
HEALTHBOX_GFX_100,
|
HEALTHBOX_GFX_100,
|
||||||
|
HEALTHBOX_GFX_STATUS_FSB_BATTLER2, //status3 "FSB"
|
||||||
|
HEALTHBOX_GFX_120,
|
||||||
|
HEALTHBOX_GFX_121,
|
||||||
HEALTHBOX_GFX_STATUS_PSN_BATTLER3, //status4 "PSN"
|
HEALTHBOX_GFX_STATUS_PSN_BATTLER3, //status4 "PSN"
|
||||||
HEALTHBOX_GFX_102,
|
HEALTHBOX_GFX_102,
|
||||||
HEALTHBOX_GFX_103,
|
HEALTHBOX_GFX_103,
|
||||||
@ -153,6 +162,9 @@ enum
|
|||||||
HEALTHBOX_GFX_STATUS_BRN_BATTLER3, //status4 "BRN"
|
HEALTHBOX_GFX_STATUS_BRN_BATTLER3, //status4 "BRN"
|
||||||
HEALTHBOX_GFX_114,
|
HEALTHBOX_GFX_114,
|
||||||
HEALTHBOX_GFX_115,
|
HEALTHBOX_GFX_115,
|
||||||
|
HEALTHBOX_GFX_STATUS_FSB_BATTLER3, //status4 "FSB"
|
||||||
|
HEALTHBOX_GFX_122,
|
||||||
|
HEALTHBOX_GFX_123,
|
||||||
HEALTHBOX_GFX_FRAME_END,
|
HEALTHBOX_GFX_FRAME_END,
|
||||||
HEALTHBOX_GFX_FRAME_END_BAR,
|
HEALTHBOX_GFX_FRAME_END_BAR,
|
||||||
};
|
};
|
||||||
@ -2208,6 +2220,11 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId)
|
|||||||
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBattlerId(HEALTHBOX_GFX_STATUS_FRZ_BATTLER0, battlerId));
|
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBattlerId(HEALTHBOX_GFX_STATUS_FRZ_BATTLER0, battlerId));
|
||||||
statusPalId = PAL_STATUS_FRZ;
|
statusPalId = PAL_STATUS_FRZ;
|
||||||
}
|
}
|
||||||
|
else if (status & STATUS1_FROSTBITE)
|
||||||
|
{
|
||||||
|
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBattlerId(HEALTHBOX_GFX_STATUS_FSB_BATTLER0, battlerId));
|
||||||
|
statusPalId = PAL_STATUS_FRZ;
|
||||||
|
}
|
||||||
else if (status & STATUS1_PARALYSIS)
|
else if (status & STATUS1_PARALYSIS)
|
||||||
{
|
{
|
||||||
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBattlerId(HEALTHBOX_GFX_STATUS_PRZ_BATTLER0, battlerId));
|
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBattlerId(HEALTHBOX_GFX_STATUS_PRZ_BATTLER0, battlerId));
|
||||||
@ -2290,6 +2307,16 @@ static u8 GetStatusIconForBattlerId(u8 statusElementId, u8 battlerId)
|
|||||||
else
|
else
|
||||||
ret = HEALTHBOX_GFX_STATUS_FRZ_BATTLER3;
|
ret = HEALTHBOX_GFX_STATUS_FRZ_BATTLER3;
|
||||||
break;
|
break;
|
||||||
|
case HEALTHBOX_GFX_STATUS_FSB_BATTLER0:
|
||||||
|
if (battlerId == 0)
|
||||||
|
ret = HEALTHBOX_GFX_STATUS_FSB_BATTLER0;
|
||||||
|
else if (battlerId == 1)
|
||||||
|
ret = HEALTHBOX_GFX_STATUS_FSB_BATTLER1;
|
||||||
|
else if (battlerId == 2)
|
||||||
|
ret = HEALTHBOX_GFX_STATUS_FSB_BATTLER2;
|
||||||
|
else
|
||||||
|
ret = HEALTHBOX_GFX_STATUS_FSB_BATTLER3;
|
||||||
|
break;
|
||||||
case HEALTHBOX_GFX_STATUS_BRN_BATTLER0:
|
case HEALTHBOX_GFX_STATUS_BRN_BATTLER0:
|
||||||
if (battlerId == 0)
|
if (battlerId == 0)
|
||||||
ret = HEALTHBOX_GFX_STATUS_BRN_BATTLER0;
|
ret = HEALTHBOX_GFX_STATUS_BRN_BATTLER0;
|
||||||
|
@ -1054,7 +1054,7 @@ static const union AnimCmd sSpriteAnim_StatusFaint[] =
|
|||||||
ANIMCMD_END
|
ANIMCMD_END
|
||||||
};
|
};
|
||||||
|
|
||||||
static const union AnimCmd sSpriteAnim_Blank[] =
|
static const union AnimCmd sSpriteAnim_StatusFrostbite[] =
|
||||||
{
|
{
|
||||||
ANIMCMD_FRAME(28, 0),
|
ANIMCMD_FRAME(28, 0),
|
||||||
ANIMCMD_END
|
ANIMCMD_END
|
||||||
@ -1069,7 +1069,7 @@ static const union AnimCmd *const sSpriteTemplate_StatusCondition[] =
|
|||||||
sSpriteAnim_StatusBurn,
|
sSpriteAnim_StatusBurn,
|
||||||
sSpriteAnim_StatusPokerus,
|
sSpriteAnim_StatusPokerus,
|
||||||
sSpriteAnim_StatusFaint,
|
sSpriteAnim_StatusFaint,
|
||||||
sSpriteAnim_Blank
|
sSpriteAnim_StatusFrostbite
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct CompressedSpriteSheet sSpriteSheet_StatusIcons =
|
static const struct CompressedSpriteSheet sSpriteSheet_StatusIcons =
|
||||||
|
@ -1941,6 +1941,8 @@ u8 GetAilmentFromStatus(u32 status)
|
|||||||
return AILMENT_FRZ;
|
return AILMENT_FRZ;
|
||||||
if (status & STATUS1_BURN)
|
if (status & STATUS1_BURN)
|
||||||
return AILMENT_BRN;
|
return AILMENT_BRN;
|
||||||
|
if (status & STATUS1_FROSTBITE)
|
||||||
|
return AILMENT_FSB;
|
||||||
return AILMENT_NONE;
|
return AILMENT_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1112,6 +1112,10 @@ static const union AnimCmd sSpriteAnim_StatusFaint[] = {
|
|||||||
ANIMCMD_FRAME(24, 0, FALSE, FALSE),
|
ANIMCMD_FRAME(24, 0, FALSE, FALSE),
|
||||||
ANIMCMD_END
|
ANIMCMD_END
|
||||||
};
|
};
|
||||||
|
static const union AnimCmd sSpriteAnim_StatusFrostbite[] = {
|
||||||
|
ANIMCMD_FRAME(28, 0, FALSE, FALSE),
|
||||||
|
ANIMCMD_END
|
||||||
|
};
|
||||||
static const union AnimCmd *const sSpriteAnimTable_StatusCondition[] = {
|
static const union AnimCmd *const sSpriteAnimTable_StatusCondition[] = {
|
||||||
sSpriteAnim_StatusPoison,
|
sSpriteAnim_StatusPoison,
|
||||||
sSpriteAnim_StatusParalyzed,
|
sSpriteAnim_StatusParalyzed,
|
||||||
@ -1120,11 +1124,12 @@ static const union AnimCmd *const sSpriteAnimTable_StatusCondition[] = {
|
|||||||
sSpriteAnim_StatusBurn,
|
sSpriteAnim_StatusBurn,
|
||||||
sSpriteAnim_StatusPokerus,
|
sSpriteAnim_StatusPokerus,
|
||||||
sSpriteAnim_StatusFaint,
|
sSpriteAnim_StatusFaint,
|
||||||
|
sSpriteAnim_StatusFrostbite,
|
||||||
};
|
};
|
||||||
static const struct CompressedSpriteSheet sStatusIconsSpriteSheet =
|
static const struct CompressedSpriteSheet sStatusIconsSpriteSheet =
|
||||||
{
|
{
|
||||||
.data = gStatusGfx_Icons,
|
.data = gStatusGfx_Icons,
|
||||||
.size = 0x380,
|
.size = 0x400,
|
||||||
.tag = TAG_MON_STATUS
|
.tag = TAG_MON_STATUS
|
||||||
};
|
};
|
||||||
static const struct CompressedSpritePalette sStatusIconsSpritePalette =
|
static const struct CompressedSpritePalette sStatusIconsSpritePalette =
|
||||||
|