diff options
Diffstat (limited to 'src/battle_interface.c')
-rw-r--r-- | src/battle_interface.c | 350 |
1 files changed, 171 insertions, 179 deletions
diff --git a/src/battle_interface.c b/src/battle_interface.c index 5f582a366..bc6ff1122 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -8,18 +8,19 @@ #include "string_util.h" #include "text.h" #include "sound.h" -#include "songs.h" +#include "constants/songs.h" #include "decompress.h" #include "task.h" #include "util.h" #include "gpu_regs.h" #include "battle_message.h" -#include "species.h" +#include "constants/species.h" #include "pokedex.h" #include "palette.h" #include "international_string_util.h" #include "safari_zone.h" #include "battle_anim.h" +#include "constants/rgb.h" struct TestingBar { @@ -152,11 +153,6 @@ enum HEALTHBOX_GFX_117, }; -extern u8 gBanksByIdentity[BATTLE_BANKS_COUNT]; -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u8 gNoOfAllBanks; -extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT]; - extern const u8 * const gNatureNamePointers[]; extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; @@ -176,10 +172,6 @@ extern const u16 gBattleInterface_BallStatusBarPal[]; extern const u16 gBattleInterface_BallDisplayPal[]; extern const u8 gHealthboxElementsGfxTable[][32]; -// functions -extern void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor *color, s8 speed, const u8 *str); // menu.h -extern void LoadBattleBarGfx(u8 arg0); - // this file's functions static const u8 *GetHealthboxElementGfxPtr(u8 elementId); @@ -556,13 +548,13 @@ enum PAL_STATUS_BRN }; -static const u16 sStatusIconPalettes[] = +static const u16 sStatusIconColors[] = { - 0x6198, // PAL_STATUS_PSN - 0xEF7, // PAL_STATUS_PAR - 0x4694, // PAL_STATUS_SLP - 0x72D1, // PAL_STATUS_FRZ - 0x29DC // PAL_STATUS_BRN + RGB(24, 12, 24), // PAL_STATUS_PSN + RGB(23, 23, 3), // PAL_STATUS_PAR + RGB(20, 20, 17), // PAL_STATUS_SLP + RGB(17, 22, 28), // PAL_STATUS_FRZ + RGB(28, 14, 10) // PAL_STATUS_BRN }; static const struct WindowTemplate sHealthboxWindowTemplate = {0, 0, 0, 8, 2, 0, 0}; // width = 8, height = 2 @@ -898,7 +890,7 @@ void sub_80724A8(s16 arg0, s16 arg1, u16 *arg2) // healthboxSpriteId_2 refers to the other part // there's also one other sprite that appears to be a black square? dont fully understand its role -u8 CreateBankHealthboxSprites(u8 bank) +u8 CreateBattlerHealthboxSprites(u8 battler) { s16 data6 = 0; u8 healthboxSpriteId_1, healthboxSpriteId_2; @@ -907,7 +899,7 @@ u8 CreateBankHealthboxSprites(u8 bank) if (!IsDoubleBattle()) { - if (GetBankSide(bank) == SIDE_PLAYER) + if (GetBattlerSide(battler) == B_SIDE_PLAYER) { healthboxSpriteId_1 = CreateSprite(&sHealthboxPlayerSpriteTemplates[0], 240, 160, 1); healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[0], 240, 160, 1); @@ -927,19 +919,19 @@ u8 CreateBankHealthboxSprites(u8 bank) data6 = 2; } gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2; - gSprites[healthboxSpriteId_2].data5 = healthboxSpriteId_1; + gSprites[healthboxSpriteId_2].data[5] = healthboxSpriteId_1; gSprites[healthboxSpriteId_2].callback = sub_8072924; } else { - if (GetBankSide(bank) == SIDE_PLAYER) + if (GetBattlerSide(battler) == B_SIDE_PLAYER) { - healthboxSpriteId_1 = CreateSprite(&sHealthboxPlayerSpriteTemplates[GetBankIdentity(bank) / 2], 240, 160, 1); - healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[GetBankIdentity(bank) / 2], 240, 160, 1); + healthboxSpriteId_1 = CreateSprite(&sHealthboxPlayerSpriteTemplates[GetBattlerPosition(battler) / 2], 240, 160, 1); + healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[GetBattlerPosition(battler) / 2], 240, 160, 1); gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2; - gSprites[healthboxSpriteId_2].data5 = healthboxSpriteId_1; + gSprites[healthboxSpriteId_2].data[5] = healthboxSpriteId_1; gSprites[healthboxSpriteId_2].oam.tileNum += 32; gSprites[healthboxSpriteId_2].callback = sub_8072924; @@ -947,12 +939,12 @@ u8 CreateBankHealthboxSprites(u8 bank) } else { - healthboxSpriteId_1 = CreateSprite(&sHealthboxOpponentSpriteTemplates[GetBankIdentity(bank) / 2], 240, 160, 1); - healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxOpponentSpriteTemplates[GetBankIdentity(bank) / 2], 240, 160, 1); + healthboxSpriteId_1 = CreateSprite(&sHealthboxOpponentSpriteTemplates[GetBattlerPosition(battler) / 2], 240, 160, 1); + healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxOpponentSpriteTemplates[GetBattlerPosition(battler) / 2], 240, 160, 1); gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2; - gSprites[healthboxSpriteId_2].data5 = healthboxSpriteId_1; + gSprites[healthboxSpriteId_2].data[5] = healthboxSpriteId_1; gSprites[healthboxSpriteId_2].oam.tileNum += 32; gSprites[healthboxSpriteId_2].callback = sub_8072924; @@ -960,22 +952,22 @@ u8 CreateBankHealthboxSprites(u8 bank) } } - unkSpriteId = CreateSpriteAtEnd(&sUnknown_0832C1C0[gBanksByIdentity[bank]], 140, 60, 0); + unkSpriteId = CreateSpriteAtEnd(&sUnknown_0832C1C0[gBattlerPositions[battler]], 140, 60, 0); unkSpritePtr = &gSprites[unkSpriteId]; - SetSubspriteTables(unkSpritePtr, &sUnknown_0832C28C[GetBankSide(bank)]); + SetSubspriteTables(unkSpritePtr, &sUnknown_0832C28C[GetBattlerSide(battler)]); unkSpritePtr->subspriteMode = 2; unkSpritePtr->oam.priority = 1; CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_1), (void*)(OBJ_VRAM0 + unkSpritePtr->oam.tileNum * 32), 64); - gSprites[healthboxSpriteId_1].data5 = unkSpriteId; - gSprites[healthboxSpriteId_1].data6 = bank; + gSprites[healthboxSpriteId_1].data[5] = unkSpriteId; + gSprites[healthboxSpriteId_1].data[6] = battler; gSprites[healthboxSpriteId_1].invisible = 1; gSprites[healthboxSpriteId_2].invisible = 1; - unkSpritePtr->data5 = healthboxSpriteId_1; - unkSpritePtr->data6 = data6; + unkSpritePtr->data[5] = healthboxSpriteId_1; + unkSpritePtr->data[6] = data6; unkSpritePtr->invisible = 1; return healthboxSpriteId_1; @@ -994,7 +986,7 @@ u8 CreateSafariPlayerHealthboxSprites(void) gSprites[healthboxSpriteId_2].oam.tileNum += 64; gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2; - gSprites[healthboxSpriteId_2].data5 = healthboxSpriteId_1; + gSprites[healthboxSpriteId_2].data[5] = healthboxSpriteId_1; gSprites[healthboxSpriteId_2].callback = sub_8072924; @@ -1008,9 +1000,9 @@ static const u8 *GetHealthboxElementGfxPtr(u8 elementId) static void sub_80728B4(struct Sprite *sprite) { - u8 var = sprite->data5; + u8 var = sprite->data[5]; - switch (sprite->data6) + switch (sprite->data[6]) { case 0: sprite->pos1.x = gSprites[var].pos1.x + 16; @@ -1033,7 +1025,7 @@ static void sub_80728B4(struct Sprite *sprite) static void sub_8072924(struct Sprite *sprite) { - u8 otherSpriteId = sprite->data5; + u8 otherSpriteId = sprite->data[5]; sprite->pos1.x = gSprites[otherSpriteId].pos1.x + 64; sprite->pos1.y = gSprites[otherSpriteId].pos1.y; @@ -1054,14 +1046,14 @@ void SetBattleBarStruct(u8 bank, u8 healthboxSpriteId, s32 maxVal, s32 currVal, void SetHealthboxSpriteInvisible(u8 healthboxSpriteId) { gSprites[healthboxSpriteId].invisible = 1; - gSprites[gSprites[healthboxSpriteId].data5].invisible = 1; + gSprites[gSprites[healthboxSpriteId].data[5]].invisible = 1; gSprites[gSprites[healthboxSpriteId].oam.affineParam].invisible = 1; } void SetHealthboxSpriteVisible(u8 healthboxSpriteId) { gSprites[healthboxSpriteId].invisible = 0; - gSprites[gSprites[healthboxSpriteId].data5].invisible = 0; + gSprites[gSprites[healthboxSpriteId].data[5]].invisible = 0; gSprites[gSprites[healthboxSpriteId].oam.affineParam].invisible = 0; } @@ -1074,7 +1066,7 @@ static void UpdateSpritePos(u8 spriteId, s16 x, s16 y) void DestoryHealthboxSprite(u8 healthboxSpriteId) { DestroySprite(&gSprites[gSprites[healthboxSpriteId].oam.affineParam]); - DestroySprite(&gSprites[gSprites[healthboxSpriteId].data5]); + DestroySprite(&gSprites[gSprites[healthboxSpriteId].data[5]]); DestroySprite(&gSprites[healthboxSpriteId]); } @@ -1087,11 +1079,11 @@ void UpdateOamPriorityInAllHealthboxes(u8 priority) { s32 i; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { - u8 healthboxSpriteId_1 = gHealthBoxesIds[i]; - u8 healthboxSpriteId_2 = gSprites[gHealthBoxesIds[i]].oam.affineParam; - u8 healthboxSpriteId_3 = gSprites[gHealthBoxesIds[i]].data5; + u8 healthboxSpriteId_1 = gHealthboxSpriteIds[i]; + u8 healthboxSpriteId_2 = gSprites[gHealthboxSpriteIds[i]].oam.affineParam; + u8 healthboxSpriteId_3 = gSprites[gHealthboxSpriteIds[i]].data[5]; gSprites[healthboxSpriteId_1].oam.priority = priority; gSprites[healthboxSpriteId_2].oam.priority = priority; @@ -1099,37 +1091,37 @@ void UpdateOamPriorityInAllHealthboxes(u8 priority) } } -void SetBankHealthboxSpritePos(u8 bank) +void InitBattlerHealthboxCoords(u8 battler) { s16 x = 0, y = 0; if (!IsDoubleBattle()) { - if (GetBankSide(bank) != SIDE_PLAYER) + if (GetBattlerSide(battler) != B_SIDE_PLAYER) x = 44, y = 30; else x = 158, y = 88; } else { - switch (GetBankIdentity(bank)) + switch (GetBattlerPosition(battler)) { - case IDENTITY_PLAYER_MON1: + case B_POSITION_PLAYER_LEFT: x = 159, y = 76; break; - case IDENTITY_PLAYER_MON2: + case B_POSITION_PLAYER_RIGHT: x = 171, y = 101; break; - case IDENTITY_OPPONENT_MON1: + case B_POSITION_OPPONENT_LEFT: x = 44, y = 19; break; - case IDENTITY_OPPONENT_MON2: + case B_POSITION_OPPONENT_RIGHT: x = 32, y = 44; break; } } - UpdateSpritePos(gHealthBoxesIds[bank], x, y); + UpdateSpritePos(gHealthboxSpriteIds[battler], x, y); } static void UpdateLvlInHealthbox(u8 healthboxSpriteId, u8 lvl) @@ -1156,7 +1148,7 @@ static void UpdateLvlInHealthbox(u8 healthboxSpriteId, u8 lvl) windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, xPos, 3, 2, &windowId); spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * 32; - if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER) + if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER) { objVram = (void*)(OBJ_VRAM0); if (!IsDoubleBattle()) @@ -1180,7 +1172,7 @@ void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent) u8 text[32]; void *objVram; - if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER && !IsDoubleBattle()) + if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER && !IsDoubleBattle()) { spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * 32; if (maxOrCurrent != HP_CURRENT) // singles, max @@ -1210,11 +1202,11 @@ void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent) } else { - u8 bank; + u8 battler; memcpy(text, sUnknown_0832C3C4, sizeof(sUnknown_0832C3C4)); - bank = gSprites[healthboxSpriteId].data6; - if (IsDoubleBattle() == TRUE || GetBankSide(bank) == SIDE_OPPONENT) + battler = gSprites[healthboxSpriteId].data[6]; + if (IsDoubleBattle() == TRUE || GetBattlerSide(battler) == B_SIDE_OPPONENT) { UpdateHpTextInHealthboxInDoubles(healthboxSpriteId, value, maxOrCurrent); } @@ -1223,7 +1215,7 @@ void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent) u32 var; u8 i; - if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER) + if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER) { if (maxOrCurrent == HP_CURRENT) var = 29; @@ -1239,11 +1231,11 @@ void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent) } ConvertIntToDecimalStringN(text + 6, value, STR_CONV_MODE_RIGHT_ALIGN, 3); - RenderTextFont9(gMonSpritesGfxPtr->fontPixels, 9, text); + RenderTextFont9(gMonSpritesGfxPtr->barFontGfx, 9, text); for (i = 0; i < 3; i++) { - CpuCopy32(&gMonSpritesGfxPtr->fontPixels[i * 64 + 32], + CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[i * 64 + 32], (void*)((OBJ_VRAM0) + 32 * (gSprites[healthboxSpriteId].oam.tileNum + var + i)), 0x20); } @@ -1258,11 +1250,11 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8 u8 text[32]; void *objVram; - if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER) + if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER) { - if (gBattleSpritesDataPtr->bankData[gSprites[healthboxSpriteId].data6].hpNumbersNoBars) // don't print text if only bars are visible + if (gBattleSpritesDataPtr->battlerData[gSprites[healthboxSpriteId].data[6]].hpNumbersNoBars) // don't print text if only bars are visible { - spriteTileNum = gSprites[gSprites[healthboxSpriteId].data5].oam.tileNum * 32; + spriteTileNum = gSprites[gSprites[healthboxSpriteId].data[5]].oam.tileNum * 32; objVram = (void*)(OBJ_VRAM0) + spriteTileNum; if (maxOrCurrent != HP_CURRENT) // doubles, max hp @@ -1292,9 +1284,9 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8 u8 bank; memcpy(text, sUnknown_0832C3D8, sizeof(sUnknown_0832C3D8)); - bank = gSprites[healthboxSpriteId].data6; + bank = gSprites[healthboxSpriteId].data[6]; - if (gBattleSpritesDataPtr->bankData[bank].hpNumbersNoBars) // don't print text if only bars are visible + if (gBattleSpritesDataPtr->battlerData[bank].hpNumbersNoBars) // don't print text if only bars are visible { u8 var = 4; u8 r7; @@ -1304,23 +1296,23 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8 if (maxOrCurrent == HP_CURRENT) var = 0; - r7 = gSprites[healthboxSpriteId].data5; + r7 = gSprites[healthboxSpriteId].data[5]; txtPtr = ConvertIntToDecimalStringN(text + 6, value, STR_CONV_MODE_RIGHT_ALIGN, 3); if (!maxOrCurrent) StringCopy(txtPtr, gText_Slash); - RenderTextFont9(gMonSpritesGfxPtr->fontPixels, 9, text); + RenderTextFont9(gMonSpritesGfxPtr->barFontGfx, 9, text); for (i = var; i < var + 3; i++) { if (i < 3) { - CpuCopy32(&gMonSpritesGfxPtr->fontPixels[((i - var) * 64) + 32], + CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[((i - var) * 64) + 32], (void*)((OBJ_VRAM0) + 32 * (1 + gSprites[r7].oam.tileNum + i)), 0x20); } else { - CpuCopy32(&gMonSpritesGfxPtr->fontPixels[((i - var) * 64) + 32], + CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[((i - var) * 64) + 32], (void*)((OBJ_VRAM0 + 0x20) + 32 * (i + gSprites[r7].oam.tileNum)), 0x20); } @@ -1328,14 +1320,14 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8 if (maxOrCurrent == HP_CURRENT) { - CpuCopy32(&gMonSpritesGfxPtr->fontPixels[224], + CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[224], (void*)((OBJ_VRAM0) + ((gSprites[r7].oam.tileNum + 4) * 32)), 0x20); CpuFill32(0, (void*)((OBJ_VRAM0) + (gSprites[r7].oam.tileNum * 32)), 0x20); } else { - if (GetBankSide(bank) == SIDE_PLAYER) // impossible to reach part, because the bank is from the opponent's side + if (GetBattlerSide(bank) == B_SIDE_PLAYER) // impossible to reach part, because the bank is from the opponent's side { CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_116), (void*)(OBJ_VRAM0) + ((gSprites[healthboxSpriteId].oam.tileNum + 52) * 32), @@ -1350,15 +1342,15 @@ static void sub_80730D4(u8 healthboxSpriteId, struct Pokemon *mon) { u8 text[20]; s32 j, var2; - u8 *fontPixels; + u8 *barFontGfx; u8 i, var, nature, healthboxSpriteId_2; memcpy(text, sUnknown_0832C3C4, sizeof(sUnknown_0832C3C4)); - fontPixels = &gMonSpritesGfxPtr->fontPixels[0x520 + (GetBankIdentity(gSprites[healthboxSpriteId].data6) * 384)]; + barFontGfx = &gMonSpritesGfxPtr->barFontGfx[0x520 + (GetBattlerPosition(gSprites[healthboxSpriteId].data[6]) * 384)]; var = 5; nature = GetNature(mon); StringCopy(text + 6, gNatureNamePointers[nature]); - RenderTextFont9(fontPixels, 9, text); + RenderTextFont9(barFontGfx, 9, text); for (j = 6, i = 0; i < var; i++, j++) { @@ -1371,39 +1363,39 @@ static void sub_80730D4(u8 healthboxSpriteId, struct Pokemon *mon) else elementId = 43; - CpuCopy32(GetHealthboxElementGfxPtr(elementId), fontPixels + (i * 64), 0x20); + CpuCopy32(GetHealthboxElementGfxPtr(elementId), barFontGfx + (i * 64), 0x20); } for (j = 1; j < var + 1; j++) { var2 = (gSprites[healthboxSpriteId].oam.tileNum + (j - (j / 8 * 8)) + (j / 8 * 64)) * 32; - CpuCopy32(fontPixels, (void*)(OBJ_VRAM0) + (var2), 0x20); - fontPixels += 0x20; + CpuCopy32(barFontGfx, (void*)(OBJ_VRAM0) + (var2), 0x20); + barFontGfx += 0x20; var2 = (8 + gSprites[healthboxSpriteId].oam.tileNum + (j - (j / 8 * 8)) + (j / 8 * 64)) * 32; - CpuCopy32(fontPixels, (void*)(OBJ_VRAM0) + (var2), 0x20); - fontPixels += 0x20; + CpuCopy32(barFontGfx, (void*)(OBJ_VRAM0) + (var2), 0x20); + barFontGfx += 0x20; } - healthboxSpriteId_2 = gSprites[healthboxSpriteId].data5; + healthboxSpriteId_2 = gSprites[healthboxSpriteId].data[5]; ConvertIntToDecimalStringN(text + 6, gBattleStruct->field_7C, STR_CONV_MODE_RIGHT_ALIGN, 2); ConvertIntToDecimalStringN(text + 9, gBattleStruct->field_7B, STR_CONV_MODE_RIGHT_ALIGN, 2); text[5] = CHAR_SPACE; text[8] = CHAR_SLASH; - RenderTextFont9(gMonSpritesGfxPtr->fontPixels, 9, text); + RenderTextFont9(gMonSpritesGfxPtr->barFontGfx, 9, text); j = healthboxSpriteId_2; // needed to match for some reason for (j = 0; j < 5; j++) { if (j <= 1) { - CpuCopy32(&gMonSpritesGfxPtr->fontPixels[0x40 * j + 0x20], + CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[0x40 * j + 0x20], (void*)(OBJ_VRAM0) + (gSprites[healthboxSpriteId_2].oam.tileNum + 2 + j) * 32, 32); } else { - CpuCopy32(&gMonSpritesGfxPtr->fontPixels[0x40 * j + 0x20], + CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[0x40 * j + 0x20], (void*)(OBJ_VRAM0 + 0xC0) + (j + gSprites[healthboxSpriteId_2].oam.tileNum) * 32, 32); } @@ -1415,17 +1407,17 @@ void SwapHpBarsWithHpText(void) s32 i; u8 spriteId; - for (i = 0; i < gNoOfAllBanks; i++) + for (i = 0; i < gBattlersCount; i++) { - if (gSprites[gHealthBoxesIds[i]].callback == SpriteCallbackDummy - && GetBankSide(i) != SIDE_OPPONENT - && (IsDoubleBattle() || GetBankSide(i) != SIDE_PLAYER)) + if (gSprites[gHealthboxSpriteIds[i]].callback == SpriteCallbackDummy + && GetBattlerSide(i) != B_SIDE_OPPONENT + && (IsDoubleBattle() || GetBattlerSide(i) != B_SIDE_PLAYER)) { bool8 noBars; - gBattleSpritesDataPtr->bankData[i].hpNumbersNoBars ^= 1; - noBars = gBattleSpritesDataPtr->bankData[i].hpNumbersNoBars; - if (GetBankSide(i) == SIDE_PLAYER) + gBattleSpritesDataPtr->battlerData[i].hpNumbersNoBars ^= 1; + noBars = gBattleSpritesDataPtr->battlerData[i].hpNumbersNoBars; + if (GetBattlerSide(i) == B_SIDE_PLAYER) { if (!IsDoubleBattle()) continue; @@ -1434,17 +1426,17 @@ void SwapHpBarsWithHpText(void) if (noBars == TRUE) // bars to text { - spriteId = gSprites[gHealthBoxesIds[i]].data5; + spriteId = gSprites[gHealthboxSpriteIds[i]].data[5]; CpuFill32(0, (void*)(OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32), 0x100); - UpdateHpTextInHealthboxInDoubles(gHealthBoxesIds[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_HP), HP_CURRENT); - UpdateHpTextInHealthboxInDoubles(gHealthBoxesIds[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_MAX_HP), HP_MAX); + UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_HP), HP_CURRENT); + UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_MAX_HP), HP_MAX); } else // text to bars { - UpdateStatusIconInHealthbox(gHealthBoxesIds[i]); - UpdateHealthboxAttribute(gHealthBoxesIds[i], &gPlayerParty[gBattlePartyID[i]], HEALTHBOX_HEALTH_BAR); - CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_117), (void*)(OBJ_VRAM0 + 0x680 + gSprites[gHealthBoxesIds[i]].oam.tileNum * 32), 32); + UpdateStatusIconInHealthbox(gHealthboxSpriteIds[i]); + UpdateHealthboxAttribute(gHealthboxSpriteIds[i], &gPlayerParty[gBattlerPartyIndexes[i]], HEALTHBOX_HEALTH_BAR); + CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_117), (void*)(OBJ_VRAM0 + 0x680 + gSprites[gHealthboxSpriteIds[i]].oam.tileNum * 32), 32); } } else @@ -1453,26 +1445,26 @@ void SwapHpBarsWithHpText(void) { if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) { - sub_80730D4(gHealthBoxesIds[i], &gEnemyParty[gBattlePartyID[i]]); + sub_80730D4(gHealthboxSpriteIds[i], &gEnemyParty[gBattlerPartyIndexes[i]]); } else { - spriteId = gSprites[gHealthBoxesIds[i]].data5; + spriteId = gSprites[gHealthboxSpriteIds[i]].data[5]; CpuFill32(0, (void *)(OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32), 0x100); - UpdateHpTextInHealthboxInDoubles(gHealthBoxesIds[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_HP), HP_CURRENT); - UpdateHpTextInHealthboxInDoubles(gHealthBoxesIds[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_MAX_HP), HP_MAX); + UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_HP), HP_CURRENT); + UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_MAX_HP), HP_MAX); } } else // text to bars { - UpdateStatusIconInHealthbox(gHealthBoxesIds[i]); - UpdateHealthboxAttribute(gHealthBoxesIds[i], &gEnemyParty[gBattlePartyID[i]], HEALTHBOX_HEALTH_BAR); + UpdateStatusIconInHealthbox(gHealthboxSpriteIds[i]); + UpdateHealthboxAttribute(gHealthboxSpriteIds[i], &gEnemyParty[gBattlerPartyIndexes[i]], HEALTHBOX_HEALTH_BAR); if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) - UpdateHealthboxAttribute(gHealthBoxesIds[i], &gEnemyParty[gBattlePartyID[i]], HEALTHBOX_NICK); + UpdateHealthboxAttribute(gHealthboxSpriteIds[i], &gEnemyParty[gBattlerPartyIndexes[i]], HEALTHBOX_NICK); } } - gSprites[gHealthBoxesIds[i]].data7 ^= 1; + gSprites[gHealthboxSpriteIds[i]].data[7] ^= 1; } } } @@ -1486,9 +1478,9 @@ u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 ar u8 ballIconSpritesIds[6]; u8 taskId; - if (!arg2 || GetBankIdentity(bank) != IDENTITY_OPPONENT_MON2) + if (!arg2 || GetBattlerPosition(bank) != B_POSITION_OPPONENT_RIGHT) { - if (GetBankSide(bank) == SIDE_PLAYER) + if (GetBattlerSide(bank) == B_SIDE_PLAYER) { isOpponent = FALSE; bar_X = 136, bar_Y = 96; @@ -1524,7 +1516,7 @@ u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 ar barSpriteId = CreateSprite(&sStatusSummaryBarSpriteTemplates[isOpponent], bar_X, bar_Y, 10); SetSubspriteTables(&gSprites[barSpriteId], sStatusSummaryBar_SubspriteTable); gSprites[barSpriteId].pos2.x = bar_pos2_X; - gSprites[barSpriteId].data0 = bar_data0; + gSprites[barSpriteId].data[0] = bar_data0; if (isOpponent) { @@ -1536,7 +1528,7 @@ u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 ar gSprites[barSpriteId].pos1.x += 96; } - for (i = 0; i < 6; i++) + for (i = 0; i < PARTY_SIZE; i++) { ballIconSpritesIds[i] = CreateSpriteAtEnd(&sStatusSummaryBallsSpriteTemplates[isOpponent], bar_X, bar_Y - 4, 9); @@ -1549,25 +1541,25 @@ u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 ar gSprites[ballIconSpritesIds[i]].pos2.y = 0; } - gSprites[ballIconSpritesIds[i]].data0 = barSpriteId; + gSprites[ballIconSpritesIds[i]].data[0] = barSpriteId; if (!isOpponent) { gSprites[ballIconSpritesIds[i]].pos1.x += 10 * i + 24; - gSprites[ballIconSpritesIds[i]].data1 = i * 7 + 10; + gSprites[ballIconSpritesIds[i]].data[1] = i * 7 + 10; gSprites[ballIconSpritesIds[i]].pos2.x = 120; } else { gSprites[ballIconSpritesIds[i]].pos1.x -= 10 * (5 - i) + 24; - gSprites[ballIconSpritesIds[i]].data1 = (6 - i) * 7 + 10; + gSprites[ballIconSpritesIds[i]].data[1] = (6 - i) * 7 + 10; gSprites[ballIconSpritesIds[i]].pos2.x = -120; } - gSprites[ballIconSpritesIds[i]].data2 = isOpponent; + gSprites[ballIconSpritesIds[i]].data[2] = isOpponent; } - if (GetBankSide(bank) == SIDE_PLAYER) + if (GetBattlerSide(bank) == B_SIDE_PLAYER) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { @@ -1576,7 +1568,7 @@ u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 ar if (partyInfo[i].hp == 0xFFFF) // empty slot or an egg { gSprites[ballIconSpritesIds[i]].oam.tileNum += 1; - gSprites[ballIconSpritesIds[i]].data7 = 1; + gSprites[ballIconSpritesIds[i]].data[7] = 1; } else if (partyInfo[i].hp == 0) // fainted mon { @@ -1595,7 +1587,7 @@ u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 ar if (partyInfo[j].hp == 0xFFFF) // empty slot or an egg { gSprites[ballIconSpritesIds[var]].oam.tileNum += 1; - gSprites[ballIconSpritesIds[var]].data7 = 1; + gSprites[ballIconSpritesIds[var]].data[7] = 1; var--; continue; } @@ -1624,7 +1616,7 @@ u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 ar if (partyInfo[i].hp == 0xFFFF) // empty slot or an egg { gSprites[ballIconSpritesIds[var]].oam.tileNum += 1; - gSprites[ballIconSpritesIds[var]].data7 = 1; + gSprites[ballIconSpritesIds[var]].data[7] = 1; } else if (partyInfo[i].hp == 0) // fainted mon { @@ -1644,7 +1636,7 @@ u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 ar if (partyInfo[j].hp == 0xFFFF) // empty slot or an egg { gSprites[ballIconSpritesIds[i]].oam.tileNum += 1; - gSprites[ballIconSpritesIds[i]].data7 = 1; + gSprites[ballIconSpritesIds[i]].data[7] = 1; i++; continue; } @@ -1712,23 +1704,23 @@ void sub_8073C30(u8 taskId) { for (i = 0; i < 6; i++) { - if (GetBankSide(bank) != SIDE_PLAYER) + if (GetBattlerSide(bank) != B_SIDE_PLAYER) { - gSprites[sp[5 - i]].data1 = 7 * i; - gSprites[sp[5 - i]].data3 = 0; - gSprites[sp[5 - i]].data4 = 0; + gSprites[sp[5 - i]].data[1] = 7 * i; + gSprites[sp[5 - i]].data[3] = 0; + gSprites[sp[5 - i]].data[4] = 0; gSprites[sp[5 - i]].callback = sub_8074158; } else { - gSprites[sp[i]].data1 = 7 * i; - gSprites[sp[i]].data3 = 0; - gSprites[sp[i]].data4 = 0; + gSprites[sp[i]].data[1] = 7 * i; + gSprites[sp[i]].data[3] = 0; + gSprites[sp[i]].data[4] = 0; gSprites[sp[i]].callback = sub_8074158; } } - gSprites[r10].data0 /= 2; - gSprites[r10].data1 = 0; + gSprites[r10].data[0] /= 2; + gSprites[r10].data[1] = 0; gSprites[r10].callback = sub_8074090; SetSubspriteTables(&gSprites[r10], sUnknown_0832C2CC); gTasks[taskId].func = sub_8073E08; @@ -1831,17 +1823,17 @@ static void sub_8073F98(u8 taskId) static void SpriteCB_StatusSummaryBar(struct Sprite *sprite) { if (sprite->pos2.x != 0) - sprite->pos2.x += sprite->data0; + sprite->pos2.x += sprite->data[0]; } static void sub_8074090(struct Sprite *sprite) { - sprite->data1 += 32; - if (sprite->data0 > 0) - sprite->pos2.x += sprite->data1 >> 4; + sprite->data[1] += 32; + if (sprite->data[0] > 0) + sprite->pos2.x += sprite->data[1] >> 4; else - sprite->pos2.x -= sprite->data1 >> 4; - sprite->data1 &= 0xF; + sprite->pos2.x -= sprite->data[1] >> 4; + sprite->data[1] &= 0xF; } static void SpriteCB_StatusSummaryBallsOnBattleStart(struct Sprite *sprite) @@ -1850,16 +1842,16 @@ static void SpriteCB_StatusSummaryBallsOnBattleStart(struct Sprite *sprite) u16 var2; s8 pan; - if (sprite->data1 > 0) + if (sprite->data[1] > 0) { - sprite->data1--; + sprite->data[1]--; return; } - var1 = sprite->data2; - var2 = sprite->data3; + var1 = sprite->data[2]; + var2 = sprite->data[3]; var2 += 56; - sprite->data3 = var2 & 0xFFF0; + sprite->data[3] = var2 & 0xFFF0; if (var1 != 0) { @@ -1880,7 +1872,7 @@ static void SpriteCB_StatusSummaryBallsOnBattleStart(struct Sprite *sprite) if (var1 != 0) pan = PAN_SIDE_PLAYER; - if (sprite->data7 != 0) + if (sprite->data[7] != 0) PlaySE2WithPanning(SE_TB_KARA, pan); else PlaySE1WithPanning(SE_TB_KON, pan); @@ -1894,15 +1886,15 @@ static void sub_8074158(struct Sprite *sprite) u8 var1; u16 var2; - if (sprite->data1 > 0) + if (sprite->data[1] > 0) { - sprite->data1--; + sprite->data[1]--; return; } - var1 = sprite->data2; - var2 = sprite->data3; + var1 = sprite->data[2]; + var2 = sprite->data[3]; var2 += 56; - sprite->data3 = var2 & 0xFFF0; + sprite->data[3] = var2 & 0xFFF0; if (var1 != 0) sprite->pos2.x += var2 >> 4; else @@ -1917,7 +1909,7 @@ static void sub_8074158(struct Sprite *sprite) static void SpriteCB_StatusSummaryBallsOnSwitchout(struct Sprite *sprite) { - u8 barSpriteId = sprite->data0; + u8 barSpriteId = sprite->data[0]; sprite->pos2.x = gSprites[barSpriteId].pos2.x; sprite->pos2.y = gSprites[barSpriteId].pos2.y; @@ -1964,7 +1956,7 @@ static void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon) spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * 32; - if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER) + if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER) { sub_8075198((void*)(0x6010040 + spriteTileNum), windowTileData, 6); ptr = (void*)(OBJ_VRAM0); @@ -1991,13 +1983,13 @@ static void TryAddPokeballIconToHealthbox(u8 healthboxSpriteId, bool8 noStatus) if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) return; - bank = gSprites[healthboxSpriteId].data6; - if (GetBankSide(bank) == SIDE_PLAYER) + bank = gSprites[healthboxSpriteId].data[6]; + if (GetBattlerSide(bank) == B_SIDE_PLAYER) return; - if (!GetSetPokedexFlag(SpeciesToNationalPokedexNum(GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES)), FLAG_GET_CAUGHT)) + if (!GetSetPokedexFlag(SpeciesToNationalPokedexNum(GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES)), FLAG_GET_CAUGHT)) return; - healthboxSpriteId_2 = gSprites[healthboxSpriteId].data5; + healthboxSpriteId_2 = gSprites[healthboxSpriteId].data[5]; if (noStatus) CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_70), (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId_2].oam.tileNum + 8) * 32), 32); @@ -2014,11 +2006,11 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId) s16 tileNumAdder; u8 statusPalId; - bank = gSprites[healthboxSpriteId].data6; - healthboxSpriteId_2 = gSprites[healthboxSpriteId].data5; - if (GetBankSide(bank) == SIDE_PLAYER) + bank = gSprites[healthboxSpriteId].data[6]; + healthboxSpriteId_2 = gSprites[healthboxSpriteId].data[5]; + if (GetBattlerSide(bank) == B_SIDE_PLAYER) { - status = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_STATUS); + status = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_STATUS); if (!IsDoubleBattle()) tileNumAdder = 0x1A; else @@ -2026,31 +2018,31 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId) } else { - status = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_STATUS); + status = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_STATUS); tileNumAdder = 0x11; } - if (status & STATUS_SLEEP) + if (status & STATUS1_SLEEP) { statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_SLP_BANK0, bank)); statusPalId = PAL_STATUS_SLP; } - else if (status & STATUS_PSN_ANY) + else if (status & STATUS1_PSN_ANY) { statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_PSN_BANK0, bank)); statusPalId = PAL_STATUS_PSN; } - else if (status & STATUS_BURN) + else if (status & STATUS1_BURN) { statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_BRN_BANK0, bank)); statusPalId = PAL_STATUS_BRN; } - else if (status & STATUS_FREEZE) + else if (status & STATUS1_FREEZE) { statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_FRZ_BANK0, bank)); statusPalId = PAL_STATUS_FRZ; } - else if (status & STATUS_PARALYSIS) + else if (status & STATUS1_PARALYSIS) { statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_PRZ_BANK0, bank)); statusPalId = PAL_STATUS_PAR; @@ -2062,7 +2054,7 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId) for (i = 0; i < 3; i++) CpuCopy32(statusGfxPtr, (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder + i) * 32), 32); - if (!gBattleSpritesDataPtr->bankData[bank].hpNumbersNoBars) + if (!gBattleSpritesDataPtr->battlerData[bank].hpNumbersNoBars) CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_1), (void *)(OBJ_VRAM0 + gSprites[healthboxSpriteId_2].oam.tileNum * 32), 64); TryAddPokeballIconToHealthbox(healthboxSpriteId, TRUE); @@ -2072,12 +2064,12 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId) pltAdder = gSprites[healthboxSpriteId].oam.paletteNum * 16; pltAdder += bank + 12; - FillPalette(sStatusIconPalettes[statusPalId], pltAdder + 0x100, 2); + FillPalette(sStatusIconColors[statusPalId], pltAdder + 0x100, 2); CpuCopy16(gPlttBufferUnfaded + 0x100 + pltAdder, (void*)(OBJ_PLTT + pltAdder * 2), 2); CpuCopy32(statusGfxPtr, (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder) * 32), 96); - if (IsDoubleBattle() == TRUE || GetBankSide(bank) == SIDE_OPPONENT) + if (IsDoubleBattle() == TRUE || GetBattlerSide(bank) == B_SIDE_OPPONENT) { - if (!gBattleSpritesDataPtr->bankData[bank].hpNumbersNoBars) + if (!gBattleSpritesDataPtr->battlerData[bank].hpNumbersNoBars) { CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_0), (void*)(OBJ_VRAM0 + gSprites[healthboxSpriteId_2].oam.tileNum * 32), 32); CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_65), (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId_2].oam.tileNum + 1) * 32), 32); @@ -2178,12 +2170,12 @@ static void UpdateLeftNoOfBallsTextOnHealthbox(u8 healthboxSpriteId) void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elementId) { s32 maxHp, currHp; - u8 bank = gSprites[healthboxSpriteId].data6; + u8 bank = gSprites[healthboxSpriteId].data[6]; if (elementId == HEALTHBOX_ALL && !IsDoubleBattle()) - GetBankSide(bank); // pointless function call + GetBattlerSide(bank); // pointless function call - if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER) + if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER) { u8 isDoubles; @@ -2275,7 +2267,7 @@ s32 sub_8074AA0(u8 bank, u8 healthboxSpriteId, u8 whichBar, u8 arg3) 8, expFraction); } - if (whichBar == EXP_BAR || (whichBar == HEALTH_BAR && !gBattleSpritesDataPtr->bankData[bank].hpNumbersNoBars)) + if (whichBar == EXP_BAR || (whichBar == HEALTH_BAR && !gBattleSpritesDataPtr->battlerData[bank].hpNumbersNoBars)) sub_8074B9C(bank, whichBar); if (var == -1) @@ -2308,7 +2300,7 @@ static void sub_8074B9C(u8 bank, u8 whichBar) } for (i = 0; i < 6; i++) { - u8 healthboxSpriteId_2 = gSprites[gBattleSpritesDataPtr->battleBars[bank].healthboxSpriteId].data5; + u8 healthboxSpriteId_2 = gSprites[gBattleSpritesDataPtr->battleBars[bank].healthboxSpriteId].data[5]; if (i < 2) CpuCopy32(GetHealthboxElementGfxPtr(barElementId) + array[i] * 32, (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId_2].oam.tileNum + 2 + i) * 32), 32); @@ -2323,7 +2315,7 @@ static void sub_8074B9C(u8 bank, u8 whichBar) gBattleSpritesDataPtr->battleBars[bank].receivedValue, &gBattleSpritesDataPtr->battleBars[bank].field_10, array, 8); - level = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_LEVEL); + level = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_LEVEL); if (level == MAX_MON_LEVEL) { for (i = 0; i < 8; i++) @@ -2545,19 +2537,19 @@ u8 GetHPBarLevel(s16 hp, s16 maxhp) if (hp == maxhp) { - result = 4; + result = HP_BAR_FULL; } else { u8 fraction = GetScaledHPFraction(hp, maxhp, 48); if (fraction > 24) - result = 3; + result = HP_BAR_GREEN; else if (fraction > 9) - result = 2; + result = HP_BAR_YELLOW; else if (fraction > 0) - result = 1; + result = HP_BAR_RED; else - result = 0; + result = HP_BAR_EMPTY; } return result; @@ -2566,17 +2558,17 @@ u8 GetHPBarLevel(s16 hp, s16 maxhp) static u8* AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y, u32 arg3, u32 *windowId) { u16 winId; - struct TextColor color; + u8 color[3]; struct WindowTemplate winTemplate = sHealthboxWindowTemplate; winId = AddWindow(&winTemplate); FillWindowPixelBuffer(winId, (arg3 << 4) | (arg3)); - color.fgColor = arg3; - color.bgColor = 1; - color.shadowColor = 3; + color[0] = arg3; + color[1] = 1; + color[2] = 3; - AddTextPrinterParametrized2(winId, 0, x, y, 0, 0, &color, -1, str); + AddTextPrinterParameterized2(winId, 0, x, y, 0, 0, color, -1, str); *windowId = winId; return (u8*)(GetWindowAttribute(winId, WINDOW_TILE_DATA)); |