mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-05-09 04:11:55 -05:00
src/battle/healthbox.c - assigning proper names (#1134)
Some checks are pending
build / build (push) Waiting to run
Some checks are pending
build / build (push) Waiting to run
This commit is contained in:
parent
3d698e0f19
commit
54fb94654a
|
|
@ -247,7 +247,7 @@ void *BattleSystem_GetHealthBox(BattleSystem *battleSys, int battler);
|
|||
void ov16_0223F36C(BattleSystem *battleSys);
|
||||
void ov16_0223F3BC(BattleSystem *battleSys);
|
||||
void ov16_0223F3EC(BattleSystem *battleSys);
|
||||
void ov16_0223F414(BattleSystem *battleSys);
|
||||
void BattleSystem_DestroyHealthboxes(BattleSystem *battleSys);
|
||||
u8 BattleSystem_GetResultMask(BattleSystem *battleSys);
|
||||
void BattleSystem_SetResultMask(BattleSystem *battleSys, u8 value);
|
||||
u8 BattleSystem_GetRedHPSoundFlag(BattleSystem *battleSys);
|
||||
|
|
@ -273,7 +273,7 @@ u8 BattleSystem_GetRecordedChatter(BattleSystem *battleSys, int battler);
|
|||
void ov16_0223F858(BattleSystem *battleSys, u8 *param1);
|
||||
void BattleSystem_SetBattlerTypes(BattleSystem *battleSys, u8 *battlerTypes);
|
||||
void ov16_0223F8AC(BattleSystem *battleSys, PokemonSprite **monSprites);
|
||||
void BattleSystem_SetGaugePriority(BattleSystem *battleSys, int param1);
|
||||
void BattleSystem_SetHealthboxPriority(BattleSystem *battleSys, int param1);
|
||||
|
||||
/**
|
||||
* @brief Calculate the money penalty for losing a battle.
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ typedef struct HealthBox {
|
|||
u8 unused_4F_2 : 1;
|
||||
u8 numberMode : 1;
|
||||
u8 padding : 4;
|
||||
SysTask *task_50;
|
||||
SysTask *bobbingAnimTask;
|
||||
u16 degrees;
|
||||
} HealthBox;
|
||||
|
||||
|
|
@ -112,11 +112,11 @@ ManagedSprite *HealthBox_DrawSprite(SpriteSystem *spriteSys, SpriteManager *spri
|
|||
* @param flags The components to be drawn, as a bitmask.
|
||||
*/
|
||||
void HealthBox_DrawInfo(HealthBox *healthbox, u32 hp, u32 flags);
|
||||
void ov16_02267220(HealthBox *healthbox);
|
||||
void ov16_02267258(HealthBox *healthbox);
|
||||
void ov16_022672C4(HealthBox *healthbox);
|
||||
void ov16_02267360(HealthBox *healthbox);
|
||||
void ov16_0226737C(HealthBox *healthbox);
|
||||
void Healthbox_DeleteMainSprite(HealthBox *healthbox);
|
||||
void Healthbox_UnloadMainSpriteObjects(HealthBox *healthbox);
|
||||
void Healthbox_CreateMainSprite(HealthBox *healthbox);
|
||||
void Healthbox_DestroySprites(HealthBox *healthbox);
|
||||
void Healthbox_ToggleHPDisplayMode(HealthBox *healthbox);
|
||||
|
||||
/**
|
||||
* @brief Compute the battler's new HP after taking a given amount of
|
||||
|
|
@ -129,12 +129,12 @@ void ov16_0226737C(HealthBox *healthbox);
|
|||
* values are damage, positive values are recovery.
|
||||
*/
|
||||
void HealthBox_CalcHP(HealthBox *healthbox, int damage);
|
||||
s32 ov16_022674F8(HealthBox *healthbox);
|
||||
s32 Healthbox_DrawHPBar(HealthBox *healthbox);
|
||||
void HealthBox_CalcExp(HealthBox *healthbox, int expReward);
|
||||
s32 ov16_02267560(HealthBox *healthbox);
|
||||
void ov16_0226757C(HealthBox *healthbox);
|
||||
void ov16_022675AC(HealthBox *healthbox);
|
||||
void ov16_022675D8(HealthBox *healthbox, int priority);
|
||||
s32 Healthbox_DrawExpBar(HealthBox *healthbox);
|
||||
void Healthbox_Activate(HealthBox *healthbox);
|
||||
void Healthbox_Deactivate(HealthBox *healthbox);
|
||||
void Healthbox_SetExplicitPriority(HealthBox *healthbox, int priority);
|
||||
|
||||
/**
|
||||
* @brief Enable (or disable) the healthbox.
|
||||
|
|
@ -172,10 +172,10 @@ void HealthBox_Scroll(HealthBox *healthbox, enum HealthBoxScrollDirection direct
|
|||
* @return The resulting healthbox type; see enum HealthBoxType.
|
||||
*/
|
||||
u8 HealthBox_Type(int battlerType, u32 battleType);
|
||||
void ov16_0226834C(HealthBox *healthbox, u8 *param1);
|
||||
void Healthbox_StartLevelUpFlash(HealthBox *healthbox, u8 *param1);
|
||||
void ov16_02268468(HealthBox *healthbox);
|
||||
void ov16_0226846C(HealthBox *healthbox);
|
||||
void ov16_02268470(HealthBox *healthbox);
|
||||
void ov16_02268498(HealthBox *healthbox);
|
||||
void Healthbox_StartBobAnimation(HealthBox *healthbox);
|
||||
void Healthbox_StopBobAnimation(HealthBox *healthbox);
|
||||
|
||||
#endif // POKEPLATINUM_HEALTHBOX_H
|
||||
|
|
|
|||
|
|
@ -3253,7 +3253,7 @@ static void Task_PlayerSetCommandSelection(SysTask *task, void *data)
|
|||
}
|
||||
break;
|
||||
case 3:
|
||||
ov16_0226757C(commandSetData->healthbox);
|
||||
Healthbox_Activate(commandSetData->healthbox);
|
||||
ov16_02264798(battlerData, commandSetData->battleSys);
|
||||
commandSetData->state = 4;
|
||||
case 4:
|
||||
|
|
@ -3324,7 +3324,7 @@ static void Task_PlayerSetCommandSelection(SysTask *task, void *data)
|
|||
|
||||
for (int i = 0; i < BattleSystem_GetMaxBattlers(commandSetData->battleSys); i++) {
|
||||
battlerData = BattleSystem_GetBattlerData(commandSetData->battleSys, i);
|
||||
ov16_0226737C(&battlerData->healthbox);
|
||||
Healthbox_ToggleHPDisplayMode(&battlerData->healthbox);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3351,7 +3351,7 @@ static void Task_PlayerSetCommandSelection(SysTask *task, void *data)
|
|||
ov16_02268C04(bgNarc, objNarc, v2, 0, 0, NULL);
|
||||
ov16_0226BCCC(v2, 0);
|
||||
ov16_0226846C(healthbox);
|
||||
ov16_022675AC(commandSetData->healthbox);
|
||||
Healthbox_Deactivate(commandSetData->healthbox);
|
||||
ov16_022647D8(battlerData);
|
||||
NARC_dtor(bgNarc);
|
||||
NARC_dtor(objNarc);
|
||||
|
|
@ -3363,7 +3363,7 @@ static void Task_PlayerSetCommandSelection(SysTask *task, void *data)
|
|||
ov16_02268C04(bgNarc, objNarc, v2, 0, 0, NULL);
|
||||
ov16_0226BCCC(v2, 0);
|
||||
ov16_0226846C(healthbox);
|
||||
ov16_022675AC(commandSetData->healthbox);
|
||||
Healthbox_Deactivate(commandSetData->healthbox);
|
||||
ov16_022647D8(battlerData);
|
||||
NARC_dtor(bgNarc);
|
||||
NARC_dtor(objNarc);
|
||||
|
|
@ -3398,7 +3398,7 @@ static void Task_PlayerSetCommandSelection(SysTask *task, void *data)
|
|||
ov16_02268C04(bgNarc, objNarc, v2, 0, 0, NULL);
|
||||
ov16_0226BCCC(v2, 0);
|
||||
ov16_0226846C(healthbox);
|
||||
ov16_022675AC(commandSetData->healthbox);
|
||||
Healthbox_Deactivate(commandSetData->healthbox);
|
||||
ov16_022647D8(battlerData);
|
||||
ov16_02269218(v2);
|
||||
|
||||
|
|
@ -3570,7 +3570,7 @@ static void Task_PlayerShowMoveSelectMenu(SysTask *task, void *data)
|
|||
if ((BattleSystem_GetBattleType(moveSelectMenuData->battleSys) & BATTLE_TYPE_DOUBLES) == FALSE) {
|
||||
ov16_0226BCCC(v2, 0);
|
||||
ov16_0226846C(healthbox);
|
||||
ov16_022675AC(moveSelectMenuData->healthbox);
|
||||
Healthbox_Deactivate(moveSelectMenuData->healthbox);
|
||||
ov16_022647D8(battlerData);
|
||||
}
|
||||
}
|
||||
|
|
@ -3717,7 +3717,7 @@ static void Task_PlayerShowTargetSelectMenu(SysTask *task, void *data)
|
|||
break;
|
||||
case 2:
|
||||
if (targetSelectMenuData->input != 0xFF) {
|
||||
ov16_022675AC(targetSelectMenuData->healthbox);
|
||||
Healthbox_Deactivate(targetSelectMenuData->healthbox);
|
||||
ov16_022647D8(battlerData);
|
||||
ov16_0226846C(healthbox);
|
||||
|
||||
|
|
@ -4185,7 +4185,7 @@ static void Task_PlayerShowBagMenu(SysTask *task, void *data)
|
|||
int battler = bagMenuData->partyMenuData->battlePartyCtx->selectedPartyIndex * 2;
|
||||
HealthBox *healthbox = BattleSystem_GetHealthBox(bagMenuData->battleSys, battler);
|
||||
|
||||
if (ov16_022674F8(healthbox) == -1) {
|
||||
if (Healthbox_DrawHPBar(healthbox) == -1) {
|
||||
HealthBox_DrawInfo(healthbox, NULL, HEALTHBOX_INFO_STATUS);
|
||||
bagMenuData->state++;
|
||||
}
|
||||
|
|
@ -4720,7 +4720,7 @@ static void Task_PlayerShowYesNoMenu(SysTask *task, void *data)
|
|||
NARC *bgNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, HEAP_ID_BATTLE);
|
||||
NARC *objNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE);
|
||||
|
||||
ov16_022675AC(yesNoMenuData->healthbox);
|
||||
Healthbox_Deactivate(yesNoMenuData->healthbox);
|
||||
ov16_022647D8(battlerData);
|
||||
ov16_0226846C(healthbox);
|
||||
ov16_02269218(v2);
|
||||
|
|
@ -4917,7 +4917,7 @@ static void Task_UpdateHPGauge(SysTask *task, void *data)
|
|||
HealthBox_CalcHP(healthbox, healthbox->damage);
|
||||
healthbox->state++;
|
||||
case 1:
|
||||
result = ov16_022674F8(healthbox);
|
||||
result = Healthbox_DrawHPBar(healthbox);
|
||||
|
||||
if (result == -1) {
|
||||
healthbox->state++;
|
||||
|
|
@ -4947,7 +4947,7 @@ static void Task_UpdateExpGauge(SysTask *task, void *data)
|
|||
healthbox->unk_4E++;
|
||||
}
|
||||
|
||||
result = ov16_02267560(healthbox);
|
||||
result = Healthbox_DrawExpBar(healthbox);
|
||||
|
||||
if (result == -1) {
|
||||
if (healthbox->unk_4E >= 8) {
|
||||
|
|
@ -5190,7 +5190,7 @@ static void Task_PlayLevelUpAnimation(SysTask *task, void *data)
|
|||
|
||||
switch (playLevelUpAnimationData->state) {
|
||||
case 0:
|
||||
ov16_0226834C(playLevelUpAnimationData->healthbox, &playLevelUpAnimationData->unk_0B);
|
||||
Healthbox_StartLevelUpFlash(playLevelUpAnimationData->healthbox, &playLevelUpAnimationData->unk_0B);
|
||||
Sound_PlayEffect(SEQ_SE_DP_EXPMAX);
|
||||
playLevelUpAnimationData->state++;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -238,7 +238,7 @@ void BattleSystem_ExecuteBattlerCommand(BattleSystem *battleSys, BattlerData *ba
|
|||
void ov16_0225C104(BattleSystem *battleSys, BattlerData *battlerData, int param2)
|
||||
{
|
||||
if (param2 != 2) {
|
||||
ov16_02267360(&battlerData->healthbox);
|
||||
Healthbox_DestroySprites(&battlerData->healthbox);
|
||||
}
|
||||
|
||||
if (battlerData->managedSprite) {
|
||||
|
|
@ -626,7 +626,7 @@ static void ov16_0225C558(BattleSystem *battleSys, BattlerData *battlerData)
|
|||
|
||||
static void BtlIOCmd_StopGaugeAnimation(BattleSystem *battleSys, BattlerData *battlerData)
|
||||
{
|
||||
ov16_022675AC(&battlerData->healthbox);
|
||||
Healthbox_Deactivate(&battlerData->healthbox);
|
||||
ov16_022647D8(battlerData);
|
||||
BattleController_EmitClearCommand(battleSys, battlerData->battler, battlerData->data[0]);
|
||||
ZeroDataBuffer(battlerData);
|
||||
|
|
@ -739,7 +739,7 @@ static void BtlIOCmd_ClearTouchScreen(BattleSystem *battleSys, BattlerData *batt
|
|||
ov16_0226846C(healthbox);
|
||||
}
|
||||
|
||||
ov16_022675AC(&battlerData->healthbox);
|
||||
Healthbox_Deactivate(&battlerData->healthbox);
|
||||
ov16_02269218(v0);
|
||||
ov16_022647D8(battlerData);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9902,7 +9902,7 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData)
|
|||
Bg_SetPriority(BG_LAYER_MAIN_1, 1);
|
||||
Bg_SetPriority(BG_LAYER_MAIN_2, 0);
|
||||
|
||||
BattleSystem_SetGaugePriority(data->battleSys, 0 + 2); // gauge's default is 0
|
||||
BattleSystem_SetHealthboxPriority(data->battleSys, 0 + 2); // gauge's default is 0
|
||||
|
||||
LoadStandardWindowTiles(bgl, 2, 1, 0, HEAP_ID_BATTLE);
|
||||
PaletteData_LoadBufferFromFileStart(paletteSys, NARC_INDEX_GRAPHIC__PL_WINFRAME, GetStandardWindowPaletteNARCMember(), HEAP_ID_BATTLE, 0, 0x20, 8 * 0x10);
|
||||
|
|
@ -9990,7 +9990,7 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData)
|
|||
Bg_SetPriority(BG_LAYER_MAIN_1, 0);
|
||||
Bg_SetPriority(BG_LAYER_MAIN_2, 1);
|
||||
|
||||
BattleSystem_SetGaugePriority(data->battleSys, 0);
|
||||
BattleSystem_SetHealthboxPriority(data->battleSys, 0);
|
||||
|
||||
if (data->battleCtx->selectedPartySlot[expBattler] != slot) {
|
||||
BattleScript_FreePartyLevelUpIcon(data->battleSys, data);
|
||||
|
|
@ -10672,7 +10672,7 @@ static void BattleScript_CatchMonTask(SysTask *task, void *inData)
|
|||
data->tmpPtr[0] = ApplicationManager_New(&gNamingScreenAppTemplate, namingScreenArgs, HEAP_ID_BATTLE);
|
||||
data->seqNum = SEQ_CATCH_MON_FREE_NAMING_SCREEN;
|
||||
|
||||
ov16_0223F414(data->battleSys);
|
||||
BattleSystem_DestroyHealthboxes(data->battleSys);
|
||||
|
||||
int i;
|
||||
BattlerData *battlerData;
|
||||
|
|
|
|||
|
|
@ -1234,7 +1234,7 @@ void ov16_0223F36C(BattleSystem *battleSys)
|
|||
healthbox->battleSys = battleSys;
|
||||
healthbox->type = HealthBox_Type(BattlerData_GetBattlerType(battleSys->battlers[i]), BattleSystem_GetBattleType(battleSys));
|
||||
|
||||
ov16_022672C4(healthbox);
|
||||
Healthbox_CreateMainSprite(healthbox);
|
||||
HealthBox_Enable(healthbox, FALSE);
|
||||
}
|
||||
}
|
||||
|
|
@ -1264,14 +1264,13 @@ void ov16_0223F3EC(BattleSystem *battleSys)
|
|||
}
|
||||
}
|
||||
|
||||
void ov16_0223F414(BattleSystem *battleSys)
|
||||
void BattleSystem_DestroyHealthboxes(BattleSystem *battleSys)
|
||||
{
|
||||
int i;
|
||||
HealthBox *healthbox;
|
||||
|
||||
for (i = 0; i < battleSys->maxBattlers; i++) {
|
||||
healthbox = BattlerData_GetHealthBox(battleSys->battlers[i]);
|
||||
ov16_02267360(healthbox);
|
||||
Healthbox_DestroySprites(BattlerData_GetHealthBox(battleSys->battlers[i]));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1515,14 +1514,13 @@ void ov16_0223F8AC(BattleSystem *battleSys, PokemonSprite **monSprites)
|
|||
}
|
||||
}
|
||||
|
||||
void BattleSystem_SetGaugePriority(BattleSystem *battleSys, int param1)
|
||||
void BattleSystem_SetHealthboxPriority(BattleSystem *battleSys, int param1)
|
||||
{
|
||||
int battler;
|
||||
HealthBox *healthbox;
|
||||
|
||||
for (battler = 0; battler < battleSys->maxBattlers; battler++) {
|
||||
healthbox = BattlerData_GetHealthBox(battleSys->battlers[battler]);
|
||||
ov16_022675D8(healthbox, param1);
|
||||
Healthbox_SetExplicitPriority(BattlerData_GetHealthBox(battleSys->battlers[battler]), param1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -71,13 +71,13 @@ typedef struct VRAMTransfer {
|
|||
u16 size;
|
||||
} VRAMTransfer;
|
||||
|
||||
typedef struct {
|
||||
typedef struct HealthboxLevelUpFlashState {
|
||||
HealthBox *healthbox;
|
||||
u8 *unk_04;
|
||||
u8 *done;
|
||||
u8 state;
|
||||
u8 unk_09;
|
||||
s8 unk_0A;
|
||||
} UnkStruct_ov16_0226834C;
|
||||
u8 paletteOffset;
|
||||
s8 blendIntensity;
|
||||
} HealthboxLevelUpFlashState;
|
||||
|
||||
enum HealthBoxPart {
|
||||
HEALTHBOX_PART_HP_H = 0,
|
||||
|
|
@ -176,15 +176,15 @@ static void HealthBox_DrawStatusIcon(HealthBox *healthbox, enum HealthBoxPart pa
|
|||
static void HealthBox_DrawBallCount(HealthBox *healthbox, u32 flags);
|
||||
static void HealthBox_DrawBallsLeftMessage(HealthBox *healthbox, u32 flags);
|
||||
static void HealthBox_LoadMainPalette(SpriteSystem *spriteSys, SpriteManager *handler, NARC *narc, PaletteData *palette, int type);
|
||||
static void ov16_02267244(HealthBox *healthbox);
|
||||
static void ov16_0226728C(HealthBox *healthbox);
|
||||
static const SpriteTemplate *HealthBox_SpriteTemplate(u8 type);
|
||||
static const SpriteTemplate *ov16_02268314(u8 type);
|
||||
static void ScrollHealthBoxTask(SysTask *task, void *data);
|
||||
static void ov16_02268380(SysTask *task, void *param1);
|
||||
void ov16_02268470(HealthBox *healthbox);
|
||||
void ov16_02268498(HealthBox *healthbox);
|
||||
static void ov16_022684BC(SysTask *task, void *data);
|
||||
static void Healthbox_DeleteArrowSprite(HealthBox *healthbox);
|
||||
static void Healthbox_UnloadArrowSpriteObjects(HealthBox *healthbox);
|
||||
static const SpriteTemplate *HealthBox_MainSpriteTemplate(u8 type);
|
||||
static const SpriteTemplate *HealthBox_ArrowSpriteTemplate(u8 type);
|
||||
static void Healthbox_Task_Scroll(SysTask *task, void *data);
|
||||
static void Healthbox_Task_LevelUpFlashAnimation(SysTask *task, void *param1);
|
||||
static void Healthbox_StartBobAnimation(HealthBox *healthbox);
|
||||
static void Healthbox_StopBobAnimation(HealthBox *healthbox);
|
||||
static void Healthbox_Task_Bob(SysTask *task, void *data);
|
||||
static void HealthBox_EnableArrow(HealthBox *healthbox, BOOL enable);
|
||||
|
||||
ALIGN_4 static const s8 sArrowOffsetX[] = {
|
||||
|
|
@ -235,7 +235,7 @@ static const VRAMTransfer sBattlerNameVRAMTransfer[][4] = {
|
|||
},
|
||||
};
|
||||
|
||||
static const VRAMTransfer Unk_ov16_0226F47C[][2] = {
|
||||
static const VRAMTransfer sLevelIconVRAMTransfer[][2] = {
|
||||
{
|
||||
{ 0xA60, 0x40 },
|
||||
{ 0xB60, 0x40 },
|
||||
|
|
@ -262,7 +262,7 @@ static const VRAMTransfer Unk_ov16_0226F47C[][2] = {
|
|||
},
|
||||
};
|
||||
|
||||
static const VRAMTransfer Unk_ov16_0226F3EC[][2] = {
|
||||
static const VRAMTransfer sLevelNumberVRAMTransfer[][2] = {
|
||||
{
|
||||
{ 0xAA0, 0x60 },
|
||||
{ 0xBA0, 0x60 },
|
||||
|
|
@ -289,7 +289,7 @@ static const VRAMTransfer Unk_ov16_0226F3EC[][2] = {
|
|||
},
|
||||
};
|
||||
|
||||
static const VRAMTransfer Unk_ov16_0226F41C[][2] = {
|
||||
static const VRAMTransfer sCurrentHPNumberVRAMTransfer[][2] = {
|
||||
{
|
||||
{ 0x0, 0x0 },
|
||||
{ 0xD00, 0x60 },
|
||||
|
|
@ -316,7 +316,7 @@ static const VRAMTransfer Unk_ov16_0226F41C[][2] = {
|
|||
},
|
||||
};
|
||||
|
||||
static const VRAMTransfer Unk_ov16_0226F3BC[] = {
|
||||
static const VRAMTransfer sMaxHPNumberVRAMTransfer[] = {
|
||||
{ 0xD80, 0x60 },
|
||||
{ 0x6A0, 0x60 },
|
||||
{ 0xC80, 0x60 },
|
||||
|
|
@ -325,7 +325,7 @@ static const VRAMTransfer Unk_ov16_0226F3BC[] = {
|
|||
{ 0x6A0, 0x60 },
|
||||
};
|
||||
|
||||
static const VRAMTransfer Unk_ov16_0226F44C[][2] = {
|
||||
static const VRAMTransfer sHPGaugeVRAMTransfer[][2] = {
|
||||
{
|
||||
{ 0x4E0, 0x0 },
|
||||
{ 0xC20, 0xC0 },
|
||||
|
|
@ -352,7 +352,7 @@ static const VRAMTransfer Unk_ov16_0226F44C[][2] = {
|
|||
},
|
||||
};
|
||||
|
||||
static const VRAMTransfer Unk_ov16_0226F38C[] = {
|
||||
static const VRAMTransfer sCaughtIconVRAMTransfer[] = {
|
||||
{ 0x460, HEALTHBOX_WINDOW_BLOCK_SIZE },
|
||||
{ 0x420, HEALTHBOX_WINDOW_BLOCK_SIZE },
|
||||
{ 0x440, HEALTHBOX_WINDOW_BLOCK_SIZE },
|
||||
|
|
@ -361,7 +361,7 @@ static const VRAMTransfer Unk_ov16_0226F38C[] = {
|
|||
{ 0x420, HEALTHBOX_WINDOW_BLOCK_SIZE },
|
||||
};
|
||||
|
||||
static const VRAMTransfer Unk_ov16_0226F35C[] = {
|
||||
static const VRAMTransfer sStatusIconVRAMTransfer[] = {
|
||||
{ 0x480, 0x60 },
|
||||
{ 0x440, 0x60 },
|
||||
{ 0x460, 0x60 },
|
||||
|
|
@ -370,21 +370,21 @@ static const VRAMTransfer Unk_ov16_0226F35C[] = {
|
|||
{ 0x440, 0x60 },
|
||||
};
|
||||
|
||||
static const VRAMTransfer Unk_ov16_0226F33C[4] = {
|
||||
static const VRAMTransfer sBallCountVRAMTransfer[4] = {
|
||||
{ 0x240, 0xC0 },
|
||||
{ 0x340, 0xC0 },
|
||||
{ 0xA00, 0xE0 },
|
||||
{ 0xB00, 0xE0 },
|
||||
};
|
||||
|
||||
static const VRAMTransfer Unk_ov16_0226F34C[4] = {
|
||||
static const VRAMTransfer sBallsLeftVRAMTransfer[4] = {
|
||||
{ 0x440, 0xC0 },
|
||||
{ 0x540, 0xC0 },
|
||||
{ 0xC00, 0xE0 },
|
||||
{ 0xD00, 0xE0 },
|
||||
};
|
||||
|
||||
static const VRAMTransfer Unk_ov16_0226F374[] = {
|
||||
static const VRAMTransfer sHPDisplayLeftVRAMTransfer[] = {
|
||||
{ 0x0, 0x0 },
|
||||
{ 0x0, 0x0 },
|
||||
{ 0x4C0, 0x40 },
|
||||
|
|
@ -393,7 +393,7 @@ static const VRAMTransfer Unk_ov16_0226F374[] = {
|
|||
{ 0x0, 0x0 },
|
||||
};
|
||||
|
||||
static const VRAMTransfer Unk_ov16_0226F3A4[] = {
|
||||
static const VRAMTransfer sHPDisplayRightVRAMTransfer[] = {
|
||||
{ 0x0, 0x0 },
|
||||
{ 0x0, 0x0 },
|
||||
{ 0xCC0, HEALTHBOX_WINDOW_BLOCK_SIZE },
|
||||
|
|
@ -402,7 +402,7 @@ static const VRAMTransfer Unk_ov16_0226F3A4[] = {
|
|||
{ 0x0, 0x0 },
|
||||
};
|
||||
|
||||
static const VRAMTransfer Unk_ov16_0226F3D4[] = {
|
||||
static const VRAMTransfer sHPDisplaySlashVRAMTransfer[] = {
|
||||
{ 0x0, 0x0 },
|
||||
{ 0x0, 0x0 },
|
||||
{ 0xC60, HEALTHBOX_WINDOW_BLOCK_SIZE },
|
||||
|
|
@ -535,7 +535,7 @@ static const SpriteTemplate sHealthBoxTemplate_EnemySlot2 = {
|
|||
.vramTransfer = FALSE,
|
||||
};
|
||||
|
||||
static const SpriteTemplate sHealthBoxTemplate_Unk_ov16_0226F514 = {
|
||||
static const SpriteTemplate sHealthBoxTemplate_Arrow = {
|
||||
.x = 0,
|
||||
.y = 0,
|
||||
.z = 0,
|
||||
|
|
@ -579,7 +579,7 @@ static const SpriteTemplate sHealthBoxTemplate_NoPlayerMon = {
|
|||
|
||||
void HealthBox_LoadResources(SpriteSystem *spriteSys, SpriteManager *spriteMan, NARC *narc, PaletteData *palette, enum HealthBoxType healthboxType)
|
||||
{
|
||||
const SpriteTemplate *template = HealthBox_SpriteTemplate(healthboxType);
|
||||
const SpriteTemplate *template = HealthBox_MainSpriteTemplate(healthboxType);
|
||||
|
||||
SpriteSystem_LoadCharResObjFromOpenNarc(spriteSys, spriteMan, narc, template->resources[SPRITE_RESOURCE_CHAR], TRUE, NNS_G2D_VRAM_TYPE_2DMAIN, template->resources[SPRITE_RESOURCE_CHAR]);
|
||||
SpriteSystem_LoadPaletteBufferFromOpenNarc(palette, PLTTBUF_MAIN_OBJ, spriteSys, spriteMan, narc, healthbox_primary_NCLR, FALSE, 1, NNS_G2D_VRAM_TYPE_2DMAIN, HEALTHBOX_MAIN_PALETTE_RESID);
|
||||
|
|
@ -594,7 +594,7 @@ void HealthBox_LoadResources(SpriteSystem *spriteSys, SpriteManager *spriteMan,
|
|||
|
||||
static void HealthBox_LoadMainPalette(SpriteSystem *spriteSys, SpriteManager *handler, NARC *narc, PaletteData *palette, int type)
|
||||
{
|
||||
const SpriteTemplate *template = ov16_02268314(type);
|
||||
const SpriteTemplate *template = HealthBox_ArrowSpriteTemplate(type);
|
||||
|
||||
if (template != NULL) {
|
||||
SpriteSystem_LoadCharResObjFromOpenNarc(spriteSys, handler, narc, template->resources[SPRITE_RESOURCE_CHAR], TRUE, NNS_G2D_VRAM_TYPE_2DMAIN, template->resources[SPRITE_RESOURCE_CHAR]);
|
||||
|
|
@ -606,7 +606,7 @@ static void HealthBox_LoadMainPalette(SpriteSystem *spriteSys, SpriteManager *ha
|
|||
|
||||
ManagedSprite *HealthBox_DrawSprite(SpriteSystem *spriteSys, SpriteManager *handler, int type)
|
||||
{
|
||||
const SpriteTemplate *template = HealthBox_SpriteTemplate(type);
|
||||
const SpriteTemplate *template = HealthBox_MainSpriteTemplate(type);
|
||||
ManagedSprite *managedSprite = SpriteSystem_NewSprite(spriteSys, handler, template);
|
||||
|
||||
Sprite_TickFrame(managedSprite->sprite);
|
||||
|
|
@ -733,11 +733,11 @@ void HealthBox_DrawInfo(HealthBox *healthbox, u32 hp, u32 flags)
|
|||
}
|
||||
}
|
||||
|
||||
void ov16_02267220(HealthBox *healthbox)
|
||||
void Healthbox_DeleteMainSprite(HealthBox *healthbox)
|
||||
{
|
||||
if (healthbox->task_50 != NULL) {
|
||||
SysTask_Done(healthbox->task_50);
|
||||
healthbox->task_50 = NULL;
|
||||
if (healthbox->bobbingAnimTask != NULL) {
|
||||
SysTask_Done(healthbox->bobbingAnimTask);
|
||||
healthbox->bobbingAnimTask = NULL;
|
||||
}
|
||||
|
||||
if (healthbox->mainSprite == NULL) {
|
||||
|
|
@ -748,7 +748,7 @@ void ov16_02267220(HealthBox *healthbox)
|
|||
healthbox->mainSprite = NULL;
|
||||
}
|
||||
|
||||
static void ov16_02267244(HealthBox *healthbox)
|
||||
static void Healthbox_DeleteArrowSprite(HealthBox *healthbox)
|
||||
{
|
||||
if (healthbox->arrowSprite == NULL) {
|
||||
return;
|
||||
|
|
@ -758,11 +758,11 @@ static void ov16_02267244(HealthBox *healthbox)
|
|||
healthbox->arrowSprite = NULL;
|
||||
}
|
||||
|
||||
void ov16_02267258(HealthBox *healthbox)
|
||||
void Healthbox_UnloadMainSpriteObjects(HealthBox *healthbox)
|
||||
{
|
||||
SpriteSystem *spriteSystem;
|
||||
SpriteManager *spriteManager;
|
||||
const SpriteTemplate *spriteTemplate = HealthBox_SpriteTemplate(healthbox->type);
|
||||
const SpriteTemplate *spriteTemplate = HealthBox_MainSpriteTemplate(healthbox->type);
|
||||
spriteSystem = BattleSystem_GetSpriteSystem(healthbox->battleSys);
|
||||
spriteManager = BattleSystem_GetSpriteManager(healthbox->battleSys);
|
||||
|
||||
|
|
@ -771,11 +771,11 @@ void ov16_02267258(HealthBox *healthbox)
|
|||
SpriteManager_UnloadAnimObjById(spriteManager, spriteTemplate->resources[3]);
|
||||
}
|
||||
|
||||
static void ov16_0226728C(HealthBox *healthbox)
|
||||
static void Healthbox_UnloadArrowSpriteObjects(HealthBox *healthbox)
|
||||
{
|
||||
SpriteSystem *spriteSystem;
|
||||
SpriteManager *spriteManager;
|
||||
const SpriteTemplate *spriteTemplate = ov16_02268314(healthbox->type);
|
||||
const SpriteTemplate *spriteTemplate = HealthBox_ArrowSpriteTemplate(healthbox->type);
|
||||
|
||||
if (spriteTemplate == NULL) {
|
||||
return;
|
||||
|
|
@ -789,13 +789,13 @@ static void ov16_0226728C(HealthBox *healthbox)
|
|||
SpriteManager_UnloadAnimObjById(spriteManager, spriteTemplate->resources[3]);
|
||||
}
|
||||
|
||||
void ov16_022672C4(HealthBox *healthbox)
|
||||
void Healthbox_CreateMainSprite(HealthBox *healthbox)
|
||||
{
|
||||
NARC *narc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE);
|
||||
SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(healthbox->battleSys);
|
||||
SpriteManager *spriteManager = BattleSystem_GetSpriteManager(healthbox->battleSys);
|
||||
PaletteData *paletteData = BattleSystem_GetPaletteData(healthbox->battleSys);
|
||||
const SpriteTemplate *spriteTemplate = HealthBox_SpriteTemplate(healthbox->type);
|
||||
const SpriteTemplate *spriteTemplate = HealthBox_MainSpriteTemplate(healthbox->type);
|
||||
|
||||
HealthBox_LoadResources(spriteSystem, spriteManager, narc, paletteData, healthbox->type);
|
||||
healthbox->mainSprite = HealthBox_DrawSprite(spriteSystem, spriteManager, healthbox->type);
|
||||
|
|
@ -809,19 +809,19 @@ void ov16_022672C4(HealthBox *healthbox)
|
|||
NARC_dtor(narc);
|
||||
}
|
||||
|
||||
void ov16_02267360(HealthBox *healthbox)
|
||||
void Healthbox_DestroySprites(HealthBox *healthbox)
|
||||
{
|
||||
ov16_02267220(healthbox);
|
||||
ov16_02267258(healthbox);
|
||||
ov16_02267244(healthbox);
|
||||
ov16_0226728C(healthbox);
|
||||
Healthbox_DeleteMainSprite(healthbox);
|
||||
Healthbox_UnloadMainSpriteObjects(healthbox);
|
||||
Healthbox_DeleteArrowSprite(healthbox);
|
||||
Healthbox_UnloadArrowSpriteObjects(healthbox);
|
||||
}
|
||||
|
||||
void ov16_0226737C(HealthBox *healthbox)
|
||||
void Healthbox_ToggleHPDisplayMode(HealthBox *healthbox)
|
||||
{
|
||||
const u8 *tileNum;
|
||||
NNSG2dImageProxy *imgProxy;
|
||||
void *v2;
|
||||
void *objCharPtr;
|
||||
|
||||
switch (healthbox->type) {
|
||||
case HEALTHBOX_TYPE_PLAYER_SLOT_1:
|
||||
|
|
@ -833,34 +833,34 @@ void ov16_0226737C(HealthBox *healthbox)
|
|||
|
||||
healthbox->numberMode ^= 1;
|
||||
|
||||
v2 = G2_GetOBJCharPtr();
|
||||
objCharPtr = G2_GetOBJCharPtr();
|
||||
imgProxy = Sprite_GetImageProxy(healthbox->mainSprite->sprite);
|
||||
|
||||
if (healthbox->numberMode == 1) {
|
||||
tileNum = GetHealthBoxPartsTile(HEALTHBOX_PART_NUMBERS_LEFT);
|
||||
MI_CpuCopy16(tileNum, (void *)((u32)v2 + Unk_ov16_0226F374[healthbox->type].pos + HEALTHBOX_WINDOW_BLOCK_SIZE + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), HEALTHBOX_WINDOW_BLOCK_SIZE);
|
||||
MI_CpuCopy16(tileNum, (void *)((u32)objCharPtr + sHPDisplayLeftVRAMTransfer[healthbox->type].pos + HEALTHBOX_WINDOW_BLOCK_SIZE + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), HEALTHBOX_WINDOW_BLOCK_SIZE);
|
||||
tileNum = GetHealthBoxPartsTile(HEALTHBOX_PART_NUMBERS_RIGHT);
|
||||
MI_CpuCopy16(tileNum, (void *)((u32)v2 + Unk_ov16_0226F3A4[healthbox->type].pos + HEALTHBOX_WINDOW_BLOCK_SIZE + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), HEALTHBOX_WINDOW_BLOCK_SIZE);
|
||||
MI_CpuCopy16(tileNum, (void *)((u32)objCharPtr + sHPDisplayRightVRAMTransfer[healthbox->type].pos + HEALTHBOX_WINDOW_BLOCK_SIZE + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), HEALTHBOX_WINDOW_BLOCK_SIZE);
|
||||
|
||||
tileNum = GetHealthBoxPartsTile(HEALTHBOX_PART_SLASH);
|
||||
MI_CpuCopy16(tileNum, (void *)((u32)v2 + Unk_ov16_0226F3D4[healthbox->type].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), Unk_ov16_0226F3D4[healthbox->type].size);
|
||||
MI_CpuCopy16(tileNum, (void *)((u32)objCharPtr + sHPDisplaySlashVRAMTransfer[healthbox->type].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), sHPDisplaySlashVRAMTransfer[healthbox->type].size);
|
||||
|
||||
HealthBox_DrawInfo(healthbox, healthbox->curHP, HEALTHBOX_INFO_CURRENT_HP | HEALTHBOX_INFO_MAX_HP);
|
||||
} else {
|
||||
tileNum = GetHealthBoxPartsTile(HEALTHBOX_PART_HP_H_2);
|
||||
MI_CpuCopy16(tileNum, (void *)((u32)v2 + Unk_ov16_0226F374[healthbox->type].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), Unk_ov16_0226F374[healthbox->type].size);
|
||||
MI_CpuCopy16(tileNum, (void *)((u32)objCharPtr + sHPDisplayLeftVRAMTransfer[healthbox->type].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), sHPDisplayLeftVRAMTransfer[healthbox->type].size);
|
||||
|
||||
tileNum = GetHealthBoxPartsTile(HEALTHBOX_PART_BAR_END);
|
||||
MI_CpuCopy16(tileNum, (void *)((u32)v2 + Unk_ov16_0226F3A4[healthbox->type].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), Unk_ov16_0226F3A4[healthbox->type].size);
|
||||
MI_CpuCopy16(tileNum, (void *)((u32)objCharPtr + sHPDisplayRightVRAMTransfer[healthbox->type].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), sHPDisplayRightVRAMTransfer[healthbox->type].size);
|
||||
|
||||
tileNum = GetHealthBoxPartsTile(HEALTHBOX_PART_STATUS_HEALTHY_0);
|
||||
MI_CpuCopy16(tileNum, (void *)((u32)v2 + Unk_ov16_0226F3A4[healthbox->type].pos + HEALTHBOX_WINDOW_BLOCK_SIZE + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), HEALTHBOX_WINDOW_BLOCK_SIZE);
|
||||
MI_CpuCopy16(tileNum, (void *)((u32)objCharPtr + sHPDisplayRightVRAMTransfer[healthbox->type].pos + HEALTHBOX_WINDOW_BLOCK_SIZE + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), HEALTHBOX_WINDOW_BLOCK_SIZE);
|
||||
|
||||
HealthBox_DrawInfo(healthbox, healthbox->curHP, HEALTHBOX_INFO_HP_GAUGE);
|
||||
}
|
||||
}
|
||||
|
||||
void HealthBox_CalcHP(HealthBox *healthbox, int damage) // TODO: all calls pass in damage from healthbox, pls fix.
|
||||
void HealthBox_CalcHP(HealthBox *healthbox, int damage) // CLEANUP: all calls pass in damage from healthbox, pls fix.
|
||||
{
|
||||
healthbox->hpTemp = S32_MIN;
|
||||
|
||||
|
|
@ -884,7 +884,7 @@ void HealthBox_CalcHP(HealthBox *healthbox, int damage) // TODO: all calls pass
|
|||
}
|
||||
}
|
||||
|
||||
s32 ov16_022674F8(HealthBox *healthbox)
|
||||
s32 Healthbox_DrawHPBar(HealthBox *healthbox)
|
||||
{
|
||||
s32 result = HealthBox_DrawGauge(healthbox, HEALTHBOX_GAUGE_HP);
|
||||
|
||||
|
|
@ -921,7 +921,7 @@ void HealthBox_CalcExp(HealthBox *healthbox, int expReward)
|
|||
}
|
||||
}
|
||||
|
||||
s32 ov16_02267560(HealthBox *healthbox)
|
||||
s32 Healthbox_DrawExpBar(HealthBox *healthbox)
|
||||
{
|
||||
s32 result = HealthBox_DrawGauge(healthbox, HEALTHBOX_GAUGE_EXP);
|
||||
|
||||
|
|
@ -932,7 +932,7 @@ s32 ov16_02267560(HealthBox *healthbox)
|
|||
return result;
|
||||
}
|
||||
|
||||
void ov16_0226757C(HealthBox *healthbox)
|
||||
void Healthbox_Activate(HealthBox *healthbox)
|
||||
{
|
||||
if (healthbox->arrowSprite != NULL) {
|
||||
Sprite_SetAnimateFlag(healthbox->arrowSprite->sprite, TRUE);
|
||||
|
|
@ -940,11 +940,11 @@ void ov16_0226757C(HealthBox *healthbox)
|
|||
}
|
||||
|
||||
if ((BattleSystem_GetBattleType(healthbox->battleSys) & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) == FALSE) {
|
||||
ov16_02268470(healthbox);
|
||||
Healthbox_StartBobAnimation(healthbox);
|
||||
}
|
||||
}
|
||||
|
||||
void ov16_022675AC(HealthBox *healthbox)
|
||||
void Healthbox_Deactivate(HealthBox *healthbox)
|
||||
{
|
||||
if (healthbox->arrowSprite != NULL) {
|
||||
Sprite_SetAnimateFlag(healthbox->arrowSprite->sprite, FALSE);
|
||||
|
|
@ -952,10 +952,10 @@ void ov16_022675AC(HealthBox *healthbox)
|
|||
HealthBox_EnableArrow(healthbox, FALSE);
|
||||
}
|
||||
|
||||
ov16_02268498(healthbox);
|
||||
Healthbox_StopBobAnimation(healthbox);
|
||||
}
|
||||
|
||||
void ov16_022675D8(HealthBox *healthbox, int priority)
|
||||
void Healthbox_SetExplicitPriority(HealthBox *healthbox, int priority)
|
||||
{
|
||||
if (healthbox->mainSprite == NULL) {
|
||||
return;
|
||||
|
|
@ -1002,7 +1002,7 @@ void HealthBox_Enable(HealthBox *battleSys, BOOL enable)
|
|||
void HealthBox_OffsetPositionXY(HealthBox *healthbox, int x, int y)
|
||||
{
|
||||
GF_ASSERT(healthbox->mainSprite != NULL);
|
||||
const SpriteTemplate *template = HealthBox_SpriteTemplate(healthbox->type);
|
||||
const SpriteTemplate *template = HealthBox_MainSpriteTemplate(healthbox->type);
|
||||
|
||||
Sprite_SetPositionXY(healthbox->mainSprite->sprite, template->x + x, template->y + y);
|
||||
if (healthbox->arrowSprite != NULL) {
|
||||
|
|
@ -1040,7 +1040,7 @@ void HealthBox_Scroll(HealthBox *healthbox, enum HealthBoxScrollDirection direct
|
|||
HealthBox_OffsetPositionXY(healthbox, 0, 0);
|
||||
}
|
||||
|
||||
SysTask_Start(ScrollHealthBoxTask, healthbox, 990);
|
||||
SysTask_Start(Healthbox_Task_Scroll, healthbox, 990);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -1049,11 +1049,11 @@ void HealthBox_Scroll(HealthBox *healthbox, enum HealthBoxScrollDirection direct
|
|||
* @param task
|
||||
* @param data
|
||||
*/
|
||||
static void ScrollHealthBoxTask(SysTask *task, void *data)
|
||||
static void Healthbox_Task_Scroll(SysTask *task, void *data)
|
||||
{
|
||||
HealthBox *healthbox = data;
|
||||
int done = 0;
|
||||
const SpriteTemplate *template = HealthBox_SpriteTemplate(healthbox->type);
|
||||
const SpriteTemplate *template = HealthBox_MainSpriteTemplate(healthbox->type);
|
||||
|
||||
s16 x, y;
|
||||
ManagedSprite_GetPositionXY(healthbox->mainSprite, &x, &y);
|
||||
|
|
@ -1188,88 +1188,85 @@ static void HealthBox_DrawLevelText(HealthBox *healthbox)
|
|||
tileNum1 = GetHealthBoxPartsTile(part1);
|
||||
tileNum2 = GetHealthBoxPartsTile(part2);
|
||||
|
||||
void *v5 = G2_GetOBJCharPtr();
|
||||
void *objCharPtr = G2_GetOBJCharPtr();
|
||||
imgProxy = Sprite_GetImageProxy(healthbox->mainSprite->sprite);
|
||||
|
||||
MI_CpuCopy16(tileNum2, (void *)((u32)v5 + Unk_ov16_0226F47C[healthbox->type][0].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), Unk_ov16_0226F47C[healthbox->type][0].size);
|
||||
MI_CpuCopy16(tileNum1, (void *)((u32)v5 + Unk_ov16_0226F47C[healthbox->type][1].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), Unk_ov16_0226F47C[healthbox->type][1].size);
|
||||
MI_CpuCopy16(tileNum2, (void *)((u32)objCharPtr + sLevelIconVRAMTransfer[healthbox->type][0].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), sLevelIconVRAMTransfer[healthbox->type][0].size);
|
||||
MI_CpuCopy16(tileNum1, (void *)((u32)objCharPtr + sLevelIconVRAMTransfer[healthbox->type][1].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), sLevelIconVRAMTransfer[healthbox->type][1].size);
|
||||
}
|
||||
|
||||
static void HealthBox_DrawLevelNumber(HealthBox *healthbox)
|
||||
{
|
||||
NNSG2dImageProxy *imgProxy;
|
||||
int v4, v5, v6;
|
||||
int byteIdx, tileOffset, srcOffset;
|
||||
|
||||
int size = 3 * HEALTHBOX_WINDOW_BLOCK_SIZE;
|
||||
u8 *v0 = Heap_Alloc(HEAP_ID_BATTLE, size);
|
||||
u8 *v1 = Heap_Alloc(HEAP_ID_BATTLE, size * 2);
|
||||
u8 *levelTextBuf = Heap_Alloc(HEAP_ID_BATTLE, size);
|
||||
u8 *tileWorkBuf = Heap_Alloc(HEAP_ID_BATTLE, size * 2);
|
||||
|
||||
MI_CpuFill8(v0, 0xf | (0xf << 4), size);
|
||||
FontSpecialChars_DrawBattleScreenText(BattleSystem_GetSpecialCharsLevel(healthbox->battleSys), healthbox->level, 3, PADDING_MODE_NONE, v0);
|
||||
MI_CpuFill8(levelTextBuf, 0xf | (0xf << 4), size);
|
||||
FontSpecialChars_DrawBattleScreenText(BattleSystem_GetSpecialCharsLevel(healthbox->battleSys), healthbox->level, 3, PADDING_MODE_NONE, levelTextBuf);
|
||||
|
||||
void *v7 = G2_GetOBJCharPtr();
|
||||
u8 *v8, *v9;
|
||||
void *objCharPtr = G2_GetOBJCharPtr();
|
||||
u8 *bottomBlock;
|
||||
|
||||
imgProxy = Sprite_GetImageProxy(healthbox->mainSprite->sprite);
|
||||
|
||||
MI_CpuCopy16((void *)((u32)v7 + Unk_ov16_0226F3EC[healthbox->type][0].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), v1, Unk_ov16_0226F3EC[healthbox->type][0].size);
|
||||
MI_CpuCopy16((void *)((u32)v7 + Unk_ov16_0226F3EC[healthbox->type][1].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), &v1[size], Unk_ov16_0226F3EC[healthbox->type][1].size);
|
||||
MI_CpuCopy16((void *)((u32)objCharPtr + sLevelNumberVRAMTransfer[healthbox->type][0].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), tileWorkBuf, sLevelNumberVRAMTransfer[healthbox->type][0].size);
|
||||
MI_CpuCopy16((void *)((u32)objCharPtr + sLevelNumberVRAMTransfer[healthbox->type][1].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), &tileWorkBuf[size], sLevelNumberVRAMTransfer[healthbox->type][1].size);
|
||||
|
||||
v6 = 0;
|
||||
srcOffset = 0;
|
||||
|
||||
for (v5 = 0; v5 < size; v5 += 32) {
|
||||
for (v4 = 0; v4 < 16; v4++) {
|
||||
v1[v5 + 16 + v4] = v0[v6];
|
||||
v1[v5 + v4 + size] = v0[v6 + 16];
|
||||
v6++;
|
||||
for (tileOffset = 0; tileOffset < size; tileOffset += 32) {
|
||||
for (byteIdx = 0; byteIdx < 16; byteIdx++) {
|
||||
tileWorkBuf[tileOffset + 16 + byteIdx] = levelTextBuf[srcOffset];
|
||||
tileWorkBuf[tileOffset + byteIdx + size] = levelTextBuf[srcOffset + 16];
|
||||
srcOffset++;
|
||||
}
|
||||
|
||||
v6 += 16;
|
||||
srcOffset += 16;
|
||||
}
|
||||
|
||||
v8 = v1;
|
||||
v9 = &v1[size];
|
||||
bottomBlock = &tileWorkBuf[size];
|
||||
|
||||
MI_CpuCopy16(v8, (void *)((u32)v7 + Unk_ov16_0226F3EC[healthbox->type][0].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), Unk_ov16_0226F3EC[healthbox->type][0].size);
|
||||
MI_CpuCopy16(v9, (void *)((u32)v7 + Unk_ov16_0226F3EC[healthbox->type][1].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), Unk_ov16_0226F3EC[healthbox->type][1].size);
|
||||
MI_CpuCopy16(tileWorkBuf, (void *)((u32)objCharPtr + sLevelNumberVRAMTransfer[healthbox->type][0].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), sLevelNumberVRAMTransfer[healthbox->type][0].size);
|
||||
MI_CpuCopy16(bottomBlock, (void *)((u32)objCharPtr + sLevelNumberVRAMTransfer[healthbox->type][1].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), sLevelNumberVRAMTransfer[healthbox->type][1].size);
|
||||
|
||||
Heap_Free(v0);
|
||||
Heap_Free(v1);
|
||||
Heap_Free(levelTextBuf);
|
||||
Heap_Free(tileWorkBuf);
|
||||
}
|
||||
|
||||
static void HealthBox_DrawCurrentHP(HealthBox *healthbox, u32 hp)
|
||||
{
|
||||
u8 *v0 = Heap_Alloc(HEAP_ID_BATTLE, 3 * HEALTHBOX_WINDOW_BLOCK_SIZE);
|
||||
u8 *currHPTextBuf = Heap_Alloc(HEAP_ID_BATTLE, 3 * HEALTHBOX_WINDOW_BLOCK_SIZE);
|
||||
NNSG2dImageProxy *imgProxy;
|
||||
|
||||
MI_CpuFill8(v0, 0xf | (0xf << 4), 3 * HEALTHBOX_WINDOW_BLOCK_SIZE);
|
||||
FontSpecialChars_DrawBattleScreenText(BattleSystem_GetSpecialCharsHP(healthbox->battleSys), hp, 3, PADDING_MODE_SPACES, v0);
|
||||
MI_CpuFill8(currHPTextBuf, 0xf | (0xf << 4), 3 * HEALTHBOX_WINDOW_BLOCK_SIZE);
|
||||
FontSpecialChars_DrawBattleScreenText(BattleSystem_GetSpecialCharsHP(healthbox->battleSys), hp, 3, PADDING_MODE_SPACES, currHPTextBuf);
|
||||
|
||||
void *v2 = G2_GetOBJCharPtr();
|
||||
void *objCharPtr = G2_GetOBJCharPtr();
|
||||
imgProxy = Sprite_GetImageProxy(healthbox->mainSprite->sprite);
|
||||
u8 *v3 = v0;
|
||||
|
||||
MI_CpuCopy16(v3, (void *)((u32)v2 + Unk_ov16_0226F41C[healthbox->type][0].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), Unk_ov16_0226F41C[healthbox->type][0].size);
|
||||
MI_CpuCopy16(&v3[Unk_ov16_0226F41C[healthbox->type][0].size], (void *)((u32)v2 + Unk_ov16_0226F41C[healthbox->type][1].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), Unk_ov16_0226F41C[healthbox->type][1].size);
|
||||
MI_CpuCopy16(currHPTextBuf, (void *)((u32)objCharPtr + sCurrentHPNumberVRAMTransfer[healthbox->type][0].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), sCurrentHPNumberVRAMTransfer[healthbox->type][0].size);
|
||||
MI_CpuCopy16(&currHPTextBuf[sCurrentHPNumberVRAMTransfer[healthbox->type][0].size], (void *)((u32)objCharPtr + sCurrentHPNumberVRAMTransfer[healthbox->type][1].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), sCurrentHPNumberVRAMTransfer[healthbox->type][1].size);
|
||||
|
||||
Heap_Free(v0);
|
||||
Heap_Free(currHPTextBuf);
|
||||
}
|
||||
|
||||
static void HealthBox_DrawMaxHP(HealthBox *healthbox)
|
||||
{
|
||||
u8 *v0 = Heap_Alloc(HEAP_ID_BATTLE, 3 * HEALTHBOX_WINDOW_BLOCK_SIZE);
|
||||
u8 *maxHPTextBuf = Heap_Alloc(HEAP_ID_BATTLE, 3 * HEALTHBOX_WINDOW_BLOCK_SIZE);
|
||||
NNSG2dImageProxy *imgProxy;
|
||||
|
||||
MI_CpuFill8(v0, 0xf | (0xf << 4), 3 * HEALTHBOX_WINDOW_BLOCK_SIZE);
|
||||
FontSpecialChars_DrawBattleScreenText(BattleSystem_GetSpecialCharsHP(healthbox->battleSys), healthbox->maxHP, 3, PADDING_MODE_NONE, v0);
|
||||
MI_CpuFill8(maxHPTextBuf, 0xf | (0xf << 4), 3 * HEALTHBOX_WINDOW_BLOCK_SIZE);
|
||||
FontSpecialChars_DrawBattleScreenText(BattleSystem_GetSpecialCharsHP(healthbox->battleSys), healthbox->maxHP, 3, PADDING_MODE_NONE, maxHPTextBuf);
|
||||
|
||||
void *v2 = G2_GetOBJCharPtr();
|
||||
void *objCharPtr = G2_GetOBJCharPtr();
|
||||
imgProxy = Sprite_GetImageProxy(healthbox->mainSprite->sprite);
|
||||
u8 *v3 = v0;
|
||||
|
||||
MI_CpuCopy16(v3, (void *)((u32)v2 + Unk_ov16_0226F3BC[healthbox->type].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), Unk_ov16_0226F3BC[healthbox->type].size);
|
||||
MI_CpuCopy16(maxHPTextBuf, (void *)((u32)objCharPtr + sMaxHPNumberVRAMTransfer[healthbox->type].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), sMaxHPNumberVRAMTransfer[healthbox->type].size);
|
||||
|
||||
Heap_Free(v0);
|
||||
Heap_Free(maxHPTextBuf);
|
||||
}
|
||||
|
||||
static void HealthBox_DrawCaughtIcon(HealthBox *healthbox)
|
||||
|
|
@ -1283,10 +1280,10 @@ static void HealthBox_DrawCaughtIcon(HealthBox *healthbox)
|
|||
tileNum = GetHealthBoxPartsTile(HEALTHBOX_PART_STATUS_HEALTHY_0);
|
||||
}
|
||||
|
||||
void *v2 = G2_GetOBJCharPtr();
|
||||
void *objCharPtr = G2_GetOBJCharPtr();
|
||||
imgProxy = Sprite_GetImageProxy(healthbox->mainSprite->sprite);
|
||||
|
||||
MI_CpuCopy16(tileNum, (void *)((u32)v2 + Unk_ov16_0226F38C[healthbox->type].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), Unk_ov16_0226F38C[healthbox->type].size);
|
||||
MI_CpuCopy16(tileNum, (void *)((u32)objCharPtr + sCaughtIconVRAMTransfer[healthbox->type].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), sCaughtIconVRAMTransfer[healthbox->type].size);
|
||||
}
|
||||
|
||||
static void HealthBox_DrawStatusIcon(HealthBox *healthbox, enum HealthBoxPart part)
|
||||
|
|
@ -1294,16 +1291,16 @@ static void HealthBox_DrawStatusIcon(HealthBox *healthbox, enum HealthBoxPart pa
|
|||
NNSG2dImageProxy *imgProxy;
|
||||
const u8 *tileNum = GetHealthBoxPartsTile(part);
|
||||
|
||||
void *v2 = G2_GetOBJCharPtr();
|
||||
void *objCharPtr = G2_GetOBJCharPtr();
|
||||
imgProxy = Sprite_GetImageProxy(healthbox->mainSprite->sprite);
|
||||
|
||||
MI_CpuCopy16(tileNum, (void *)((u32)v2 + Unk_ov16_0226F35C[healthbox->type].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), Unk_ov16_0226F35C[healthbox->type].size);
|
||||
MI_CpuCopy16(tileNum, (void *)((u32)objCharPtr + sStatusIconVRAMTransfer[healthbox->type].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), sStatusIconVRAMTransfer[healthbox->type].size);
|
||||
}
|
||||
|
||||
static void HealthBox_DrawBallCount(HealthBox *healthbox, u32 flags)
|
||||
{
|
||||
BgConfig *bgConfig = BattleSystem_GetBgConfig(healthbox->battleSys);
|
||||
u8 *v1;
|
||||
u8 *topRow;
|
||||
NNSG2dImageProxy *imgProxy;
|
||||
Window window;
|
||||
MessageLoader *msgLoader = BattleSystem_GetMessageLoader(healthbox->battleSys);
|
||||
|
|
@ -1318,18 +1315,17 @@ static void HealthBox_DrawBallCount(HealthBox *healthbox, u32 flags)
|
|||
Window_AddToTopLeftCorner(bgConfig, &window, 13, 2, 0, 0xf);
|
||||
Text_AddPrinterWithParamsColorAndSpacing(&window, FONT_SYSTEM, string, 0, 0, TEXT_SPEED_NO_TRANSFER, HEALTHBOX_NAME_TEXT_COLOR, 0, 0, NULL);
|
||||
|
||||
v1 = window.pixels;
|
||||
topRow = window.pixels;
|
||||
|
||||
void *v6 = G2_GetOBJCharPtr();
|
||||
void *objCharPtr = G2_GetOBJCharPtr();
|
||||
imgProxy = Sprite_GetImageProxy(healthbox->mainSprite->sprite);
|
||||
u8 *v7 = v1;
|
||||
u8 *v8 = &v1[13 * HEALTHBOX_WINDOW_BLOCK_SIZE];
|
||||
u8 *bottomRow = &topRow[13 * HEALTHBOX_WINDOW_BLOCK_SIZE];
|
||||
|
||||
MI_CpuCopy16(v7, (void *)((u32)v6 + Unk_ov16_0226F33C[0].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), Unk_ov16_0226F33C[0].size);
|
||||
MI_CpuCopy16(v8, (void *)((u32)v6 + Unk_ov16_0226F33C[1].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), Unk_ov16_0226F33C[1].size);
|
||||
MI_CpuCopy16(topRow, (void *)((u32)objCharPtr + sBallCountVRAMTransfer[0].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), sBallCountVRAMTransfer[0].size);
|
||||
MI_CpuCopy16(bottomRow, (void *)((u32)objCharPtr + sBallCountVRAMTransfer[1].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), sBallCountVRAMTransfer[1].size);
|
||||
|
||||
MI_CpuCopy16(&v7[Unk_ov16_0226F33C[0].size], (void *)((u32)v6 + Unk_ov16_0226F33C[2].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), Unk_ov16_0226F33C[2].size);
|
||||
MI_CpuCopy16(&v8[Unk_ov16_0226F33C[1].size], (void *)((u32)v6 + Unk_ov16_0226F33C[3].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), Unk_ov16_0226F33C[3].size);
|
||||
MI_CpuCopy16(&topRow[sBallCountVRAMTransfer[0].size], (void *)((u32)objCharPtr + sBallCountVRAMTransfer[2].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), sBallCountVRAMTransfer[2].size);
|
||||
MI_CpuCopy16(&bottomRow[sBallCountVRAMTransfer[1].size], (void *)((u32)objCharPtr + sBallCountVRAMTransfer[3].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), sBallCountVRAMTransfer[3].size);
|
||||
|
||||
Window_Remove(&window);
|
||||
String_Free(string);
|
||||
|
|
@ -1338,7 +1334,7 @@ static void HealthBox_DrawBallCount(HealthBox *healthbox, u32 flags)
|
|||
static void HealthBox_DrawBallsLeftMessage(HealthBox *healthbox, u32 flags)
|
||||
{
|
||||
BgConfig *bgConfig = BattleSystem_GetBgConfig(healthbox->battleSys);
|
||||
u8 *v1;
|
||||
u8 *topRow;
|
||||
NNSG2dImageProxy *imgProxy;
|
||||
Window window;
|
||||
MessageLoader *msgLoader = BattleSystem_GetMessageLoader(healthbox->battleSys);
|
||||
|
|
@ -1358,17 +1354,16 @@ static void HealthBox_DrawBallsLeftMessage(HealthBox *healthbox, u32 flags)
|
|||
Window_AddToTopLeftCorner(bgConfig, &window, 13, 2, 0, 0xf);
|
||||
Text_AddPrinterWithParamsColorAndSpacing(&window, FONT_SYSTEM, string, 0, 0, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(14, 2, 15), 0, 0, NULL);
|
||||
|
||||
v1 = window.pixels;
|
||||
topRow = window.pixels;
|
||||
|
||||
void *v8 = G2_GetOBJCharPtr();
|
||||
void *objCharPtr = G2_GetOBJCharPtr();
|
||||
imgProxy = Sprite_GetImageProxy(healthbox->mainSprite->sprite);
|
||||
u8 *v9 = v1;
|
||||
u8 *v10 = &v1[13 * HEALTHBOX_WINDOW_BLOCK_SIZE];
|
||||
u8 *bottomRow = &topRow[13 * HEALTHBOX_WINDOW_BLOCK_SIZE];
|
||||
|
||||
MI_CpuCopy16(v9, (void *)((u32)v8 + Unk_ov16_0226F34C[0].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), Unk_ov16_0226F34C[0].size);
|
||||
MI_CpuCopy16(v10, (void *)((u32)v8 + Unk_ov16_0226F34C[1].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), Unk_ov16_0226F34C[1].size);
|
||||
MI_CpuCopy16(&v9[Unk_ov16_0226F34C[0].size], (void *)((u32)v8 + Unk_ov16_0226F34C[2].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), Unk_ov16_0226F34C[2].size);
|
||||
MI_CpuCopy16(&v10[Unk_ov16_0226F34C[1].size], (void *)((u32)v8 + Unk_ov16_0226F34C[3].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), Unk_ov16_0226F34C[3].size);
|
||||
MI_CpuCopy16(topRow, (void *)((u32)objCharPtr + sBallsLeftVRAMTransfer[0].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), sBallsLeftVRAMTransfer[0].size);
|
||||
MI_CpuCopy16(bottomRow, (void *)((u32)objCharPtr + sBallsLeftVRAMTransfer[1].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), sBallsLeftVRAMTransfer[1].size);
|
||||
MI_CpuCopy16(&topRow[sBallsLeftVRAMTransfer[0].size], (void *)((u32)objCharPtr + sBallsLeftVRAMTransfer[2].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), sBallsLeftVRAMTransfer[2].size);
|
||||
MI_CpuCopy16(&bottomRow[sBallsLeftVRAMTransfer[1].size], (void *)((u32)objCharPtr + sBallsLeftVRAMTransfer[3].pos + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), sBallsLeftVRAMTransfer[3].size);
|
||||
|
||||
Window_Remove(&window);
|
||||
String_Free(string);
|
||||
|
|
@ -1416,7 +1411,7 @@ static void DrawGauge(HealthBox *healthbox, u8 gaugeType)
|
|||
u8 pixels;
|
||||
u8 level;
|
||||
const u8 *tileNum;
|
||||
void *v7 = G2_GetOBJCharPtr();
|
||||
void *objCharPtr = G2_GetOBJCharPtr();
|
||||
NNSG2dImageProxy *imgProxy = Sprite_GetImageProxy(healthbox->mainSprite->sprite);
|
||||
int numBlocks;
|
||||
|
||||
|
|
@ -1440,13 +1435,13 @@ static void DrawGauge(HealthBox *healthbox, u8 gaugeType)
|
|||
}
|
||||
|
||||
tileNum = GetHealthBoxPartsTile(part);
|
||||
numBlocks = Unk_ov16_0226F44C[healthbox->type][0].size / HEALTHBOX_WINDOW_BLOCK_SIZE;
|
||||
numBlocks = sHPGaugeVRAMTransfer[healthbox->type][0].size / HEALTHBOX_WINDOW_BLOCK_SIZE;
|
||||
|
||||
for (i = 0; i < HEALTHBOX_HP_CELL_COUNT; i++) {
|
||||
if (i < numBlocks) {
|
||||
MI_CpuCopy16(tileNum + (cells[i] << 5), (void *)((u32)v7 + Unk_ov16_0226F44C[healthbox->type][0].pos + (i * HEALTHBOX_WINDOW_BLOCK_SIZE) + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), HEALTHBOX_WINDOW_BLOCK_SIZE);
|
||||
MI_CpuCopy16(tileNum + (cells[i] << 5), (void *)((u32)objCharPtr + sHPGaugeVRAMTransfer[healthbox->type][0].pos + (i * HEALTHBOX_WINDOW_BLOCK_SIZE) + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), HEALTHBOX_WINDOW_BLOCK_SIZE);
|
||||
} else {
|
||||
MI_CpuCopy16(tileNum + (cells[i] << 5), (void *)((u32)v7 + Unk_ov16_0226F44C[healthbox->type][1].pos + ((i - numBlocks) * HEALTHBOX_WINDOW_BLOCK_SIZE) + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), HEALTHBOX_WINDOW_BLOCK_SIZE);
|
||||
MI_CpuCopy16(tileNum + (cells[i] << 5), (void *)((u32)objCharPtr + sHPGaugeVRAMTransfer[healthbox->type][1].pos + ((i - numBlocks) * HEALTHBOX_WINDOW_BLOCK_SIZE) + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), HEALTHBOX_WINDOW_BLOCK_SIZE);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -1464,9 +1459,9 @@ static void DrawGauge(HealthBox *healthbox, u8 gaugeType)
|
|||
|
||||
for (i = 0; i < HEALTHBOX_EXP_CELL_COUNT; i++) {
|
||||
if (i < 5) {
|
||||
MI_CpuCopy16(tileNum + (cells[i] << 5), (void *)((u32)v7 + 1632 + (i * HEALTHBOX_WINDOW_BLOCK_SIZE) + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), HEALTHBOX_WINDOW_BLOCK_SIZE);
|
||||
MI_CpuCopy16(tileNum + (cells[i] << 5), (void *)((u32)objCharPtr + 1632 + (i * HEALTHBOX_WINDOW_BLOCK_SIZE) + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), HEALTHBOX_WINDOW_BLOCK_SIZE);
|
||||
} else {
|
||||
MI_CpuCopy16(tileNum + (cells[i] << 5), (void *)((u32)v7 + 3584 + ((i - 5) * HEALTHBOX_WINDOW_BLOCK_SIZE) + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), HEALTHBOX_WINDOW_BLOCK_SIZE);
|
||||
MI_CpuCopy16(tileNum + (cells[i] << 5), (void *)((u32)objCharPtr + 3584 + ((i - 5) * HEALTHBOX_WINDOW_BLOCK_SIZE) + imgProxy->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]), HEALTHBOX_WINDOW_BLOCK_SIZE);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -1679,7 +1674,7 @@ u8 HealthBox_Type(int battlerType, u32 battleType)
|
|||
* @return Address of the SpriteTemplate struct which applies to this
|
||||
* healthbox type.
|
||||
*/
|
||||
static const SpriteTemplate *HealthBox_SpriteTemplate(u8 type)
|
||||
static const SpriteTemplate *HealthBox_MainSpriteTemplate(u8 type)
|
||||
{
|
||||
switch (type) {
|
||||
case HEALTHBOX_TYPE_PLAYER_SOLO:
|
||||
|
|
@ -1710,7 +1705,7 @@ static const SpriteTemplate *HealthBox_SpriteTemplate(u8 type)
|
|||
}
|
||||
}
|
||||
|
||||
static const SpriteTemplate *ov16_02268314(u8 type)
|
||||
static const SpriteTemplate *HealthBox_ArrowSpriteTemplate(u8 type)
|
||||
{
|
||||
const SpriteTemplate *spriteTemplate;
|
||||
|
||||
|
|
@ -1720,7 +1715,7 @@ static const SpriteTemplate *ov16_02268314(u8 type)
|
|||
case HEALTHBOX_TYPE_PLAYER_SLOT_2:
|
||||
case HEALTHBOX_TYPE_SAFARI_ZONE:
|
||||
case HEALTHBOX_TYPE_PAL_PARK:
|
||||
spriteTemplate = &sHealthBoxTemplate_Unk_ov16_0226F514;
|
||||
spriteTemplate = &sHealthBoxTemplate_Arrow;
|
||||
break;
|
||||
case HEALTHBOX_TYPE_ENEMY_SOLO:
|
||||
case HEALTHBOX_TYPE_ENEMY_SLOT_1:
|
||||
|
|
@ -1734,59 +1729,59 @@ static const SpriteTemplate *ov16_02268314(u8 type)
|
|||
return spriteTemplate;
|
||||
}
|
||||
|
||||
void ov16_0226834C(HealthBox *healthbox, u8 *param1)
|
||||
void Healthbox_StartLevelUpFlash(HealthBox *healthbox, u8 *doneFlag)
|
||||
{
|
||||
UnkStruct_ov16_0226834C *v0;
|
||||
HealthboxLevelUpFlashState *flashState;
|
||||
|
||||
*param1 = 0;
|
||||
*doneFlag = 0;
|
||||
|
||||
v0 = Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0226834C));
|
||||
MI_CpuClear8(v0, sizeof(UnkStruct_ov16_0226834C));
|
||||
flashState = Heap_Alloc(HEAP_ID_BATTLE, sizeof(HealthboxLevelUpFlashState));
|
||||
MI_CpuClear8(flashState, sizeof(HealthboxLevelUpFlashState));
|
||||
|
||||
v0->healthbox = healthbox;
|
||||
v0->unk_04 = param1;
|
||||
flashState->healthbox = healthbox;
|
||||
flashState->done = doneFlag;
|
||||
|
||||
SysTask_Start(ov16_02268380, v0, 1000);
|
||||
SysTask_Start(Healthbox_Task_LevelUpFlashAnimation, flashState, 1000);
|
||||
}
|
||||
|
||||
static void ov16_02268380(SysTask *task, void *param1)
|
||||
static void Healthbox_Task_LevelUpFlashAnimation(SysTask *task, void *param1)
|
||||
{
|
||||
UnkStruct_ov16_0226834C *v0 = param1;
|
||||
SpriteManager *spriteManager = BattleSystem_GetSpriteManager(v0->healthbox->battleSys);
|
||||
int v2;
|
||||
PaletteData *paletteData = BattleSystem_GetPaletteData(v0->healthbox->battleSys);
|
||||
HealthboxLevelUpFlashState *flashState = param1;
|
||||
SpriteManager *spriteManager = BattleSystem_GetSpriteManager(flashState->healthbox->battleSys);
|
||||
int plttOffset;
|
||||
PaletteData *paletteData = BattleSystem_GetPaletteData(flashState->healthbox->battleSys);
|
||||
|
||||
switch (v0->state) {
|
||||
switch (flashState->state) {
|
||||
case 0:
|
||||
v2 = SpriteManager_FindPlttResourceOffset(spriteManager, 20007, NNS_G2D_VRAM_TYPE_2DMAIN);
|
||||
ManagedSprite_SetExplicitPalette(v0->healthbox->mainSprite, v2);
|
||||
v0->unk_09 = v2;
|
||||
v0->state++;
|
||||
plttOffset = SpriteManager_FindPlttResourceOffset(spriteManager, 20007, NNS_G2D_VRAM_TYPE_2DMAIN);
|
||||
ManagedSprite_SetExplicitPalette(flashState->healthbox->mainSprite, plttOffset);
|
||||
flashState->paletteOffset = plttOffset;
|
||||
flashState->state++;
|
||||
case 1:
|
||||
v0->unk_0A += 2;
|
||||
flashState->blendIntensity += 2;
|
||||
|
||||
if (v0->unk_0A >= 10) {
|
||||
v0->unk_0A = 10;
|
||||
v0->state++;
|
||||
if (flashState->blendIntensity >= 10) {
|
||||
flashState->blendIntensity = 10;
|
||||
flashState->state++;
|
||||
}
|
||||
|
||||
PaletteData_Blend(paletteData, 2, v0->unk_09 * 16 + 0, 16, v0->unk_0A, 0x73a5);
|
||||
PaletteData_Blend(paletteData, 2, flashState->paletteOffset * 16 + 0, 16, flashState->blendIntensity, 0x73a5);
|
||||
break;
|
||||
case 2:
|
||||
v0->unk_0A -= 2;
|
||||
flashState->blendIntensity -= 2;
|
||||
|
||||
if (v0->unk_0A <= 0) {
|
||||
v0->unk_0A = 0;
|
||||
v0->state++;
|
||||
if (flashState->blendIntensity <= 0) {
|
||||
flashState->blendIntensity = 0;
|
||||
flashState->state++;
|
||||
}
|
||||
|
||||
PaletteData_Blend(paletteData, 2, v0->unk_09 * 16 + 0, 16, v0->unk_0A, 0x73a5);
|
||||
PaletteData_Blend(paletteData, 2, flashState->paletteOffset * 16 + 0, 16, flashState->blendIntensity, 0x73a5);
|
||||
break;
|
||||
default:
|
||||
v2 = SpriteManager_FindPlttResourceOffset(spriteManager, HEALTHBOX_MAIN_PALETTE_RESID, NNS_G2D_VRAM_TYPE_2DMAIN);
|
||||
ManagedSprite_SetExplicitPalette(v0->healthbox->mainSprite, v2);
|
||||
plttOffset = SpriteManager_FindPlttResourceOffset(spriteManager, HEALTHBOX_MAIN_PALETTE_RESID, NNS_G2D_VRAM_TYPE_2DMAIN);
|
||||
ManagedSprite_SetExplicitPalette(flashState->healthbox->mainSprite, plttOffset);
|
||||
|
||||
*(v0->unk_04) = 1;
|
||||
*(flashState->done) = 1;
|
||||
|
||||
Heap_Free(param1);
|
||||
SysTask_Done(task);
|
||||
|
|
@ -1795,38 +1790,38 @@ static void ov16_02268380(SysTask *task, void *param1)
|
|||
}
|
||||
}
|
||||
|
||||
void ov16_02268468(HealthBox *healthbox)
|
||||
void ov16_02268468(HealthBox *healthbox) // CLEANUP: does nothing. Remove.
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
void ov16_0226846C(HealthBox *healthbox)
|
||||
void ov16_0226846C(HealthBox *healthbox) // CLEANUP: does nothing. Remove.
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
void ov16_02268470(HealthBox *healthbox)
|
||||
void Healthbox_StartBobAnimation(HealthBox *healthbox)
|
||||
{
|
||||
if (healthbox->task_50 != NULL) {
|
||||
if (healthbox->bobbingAnimTask != NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
healthbox->degrees = 0;
|
||||
healthbox->task_50 = SysTask_Start(ov16_022684BC, healthbox, 1010);
|
||||
healthbox->bobbingAnimTask = SysTask_Start(Healthbox_Task_Bob, healthbox, 1010);
|
||||
}
|
||||
|
||||
void ov16_02268498(HealthBox *healthbox)
|
||||
void Healthbox_StopBobAnimation(HealthBox *healthbox)
|
||||
{
|
||||
if (healthbox->task_50 != NULL) {
|
||||
SysTask_Done(healthbox->task_50);
|
||||
healthbox->task_50 = NULL;
|
||||
if (healthbox->bobbingAnimTask != NULL) {
|
||||
SysTask_Done(healthbox->bobbingAnimTask);
|
||||
healthbox->bobbingAnimTask = NULL;
|
||||
}
|
||||
|
||||
healthbox->degrees = 0;
|
||||
HealthBox_OffsetPositionXY(healthbox, 0, 0);
|
||||
}
|
||||
|
||||
static void ov16_022684BC(SysTask *task, void *data)
|
||||
static void Healthbox_Task_Bob(SysTask *task, void *data)
|
||||
{
|
||||
HealthBox *healthbox = data;
|
||||
int y;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user