diff options
| author | Jameriquiah <42100286+Jameriquiah@users.noreply.github.com> | 2026-04-26 11:27:45 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-04-26 11:27:45 -0400 |
| commit | 661dc37b664d1f087ee8ebdfeee467a4fe02f4e9 (patch) | |
| tree | 6bce7e4730822f3588326b22335b795f35e8dea4 /mm/src/code | |
| parent | 5c35f92ef9eea31449224ecf0e09fe08ca420f5b (diff) | |
Port SoH Cosmetics Editor UI (#1633)
* port soh cosmetics editor ui
* fix wrong hearts color
* fix rainbow
* cosmetics editor refactor
* formatting
Diffstat (limited to 'mm/src/code')
| -rw-r--r-- | mm/src/code/z_eff_blure.c | 32 | ||||
| -rw-r--r-- | mm/src/code/z_lifemeter.c | 18 | ||||
| -rw-r--r-- | mm/src/code/z_map_disp.c | 2 | ||||
| -rw-r--r-- | mm/src/code/z_parameter.c | 35 |
4 files changed, 43 insertions, 44 deletions
diff --git a/mm/src/code/z_eff_blure.c b/mm/src/code/z_eff_blure.c index f3a920737..63cdb354e 100644 --- a/mm/src/code/z_eff_blure.c +++ b/mm/src/code/z_eff_blure.c @@ -321,40 +321,40 @@ void EffectBlure_GetComputedValues(EffectBlure* this, s32 index, f32 ratio, Vec3 if (gPlayState != NULL) { Player* player = GET_PLAYER(gPlayState); if (player != NULL) { - u8 elementId = 255; + const char* cosmeticId = NULL; for (int i = 0; i < 3; i++) { if (player->meleeWeaponEffectIndex[i] != -1 && this == (EffectBlure*)Effect_GetByIndex(player->meleeWeaponEffectIndex[i])) { if (player->transformation == PLAYER_FORM_FIERCE_DEITY) - elementId = COSMETIC_ELEMENT_TRAIL_SWORD_FIERCE_DEITY; + cosmeticId = COSMETIC_ID("Trails.FierceDeitySwordTrail"); else if (player->transformation == PLAYER_FORM_ZORA) - elementId = (player->meleeWeaponAnimation == PLAYER_MWA_ZORA_PUNCH_KICK || - player->meleeWeaponAnimation == PLAYER_MWA_ZORA_JUMPKICK_START || - player->meleeWeaponAnimation == PLAYER_MWA_ZORA_JUMPKICK_FINISH) - ? COSMETIC_ELEMENT_TRAIL_ZORA_KICK - : COSMETIC_ELEMENT_TRAIL_ZORA_PUNCH; + cosmeticId = (player->meleeWeaponAnimation == PLAYER_MWA_ZORA_PUNCH_KICK || + player->meleeWeaponAnimation == PLAYER_MWA_ZORA_JUMPKICK_START || + player->meleeWeaponAnimation == PLAYER_MWA_ZORA_JUMPKICK_FINISH) + ? COSMETIC_ID("Trails.ZoraKickTrail") + : COSMETIC_ID("Trails.ZoraPunchTrail"); else if (player->transformation == PLAYER_FORM_DEKU) - elementId = COSMETIC_ELEMENT_TRAIL_DEKU_SPIN; + cosmeticId = COSMETIC_ID("Trails.DekuSpinTrail"); else if (player->heldItemAction == PLAYER_IA_SWORD_KOKIRI) - elementId = COSMETIC_ELEMENT_TRAIL_SWORD_KOKIRI; + cosmeticId = COSMETIC_ID("Trails.KokiriSwordTrail"); else if (player->heldItemAction == PLAYER_IA_SWORD_RAZOR) - elementId = COSMETIC_ELEMENT_TRAIL_SWORD_RAZOR; + cosmeticId = COSMETIC_ID("Trails.RazorSwordTrail"); else if (player->heldItemAction == PLAYER_IA_SWORD_GILDED) - elementId = COSMETIC_ELEMENT_TRAIL_SWORD_GILDED; + cosmeticId = COSMETIC_ID("Trails.GildedSwordTrail"); else if (player->heldItemAction == PLAYER_IA_SWORD_TWO_HANDED) - elementId = COSMETIC_ELEMENT_TRAIL_SWORD_GREAT_FAIRY; + cosmeticId = COSMETIC_ID("Trails.GreatFairySwordTrail"); else if (player->heldItemAction == PLAYER_IA_DEKU_STICK) - elementId = COSMETIC_ELEMENT_TRAIL_DEKU_STICK; + cosmeticId = COSMETIC_ID("Trails.DekuStickTrail"); break; } } - if (elementId != 255) { + if (cosmeticId != NULL) { Color_RGBA8 newP1Start = - CosmeticEditor_GetChangedColor(p1Start.r, p1Start.g, p1Start.b, p1Start.a, elementId); + CosmeticEditor_GetChangedColor(p1Start.r, p1Start.g, p1Start.b, p1Start.a, cosmeticId); if (*(u32*)&newP1Start != *(u32*)&p1Start) { p1Start = newP1Start; - p2Start = CosmeticEditor_GetChangedColor(p2Start.r, p2Start.g, p2Start.b, p2Start.a, elementId); + p2Start = CosmeticEditor_GetChangedColor(p2Start.r, p2Start.g, p2Start.b, p2Start.a, cosmeticId); p1End.r = p1Start.r; p1End.g = p1Start.g; p1End.b = p1Start.b; diff --git a/mm/src/code/z_lifemeter.c b/mm/src/code/z_lifemeter.c index 45406350a..d10922a28 100644 --- a/mm/src/code/z_lifemeter.c +++ b/mm/src/code/z_lifemeter.c @@ -253,10 +253,10 @@ void LifeMeter_Draw(PlayState* play) { // Normal Heart gDPSetPrimColorOverride(OVERLAY_DISP++, 0, 0, interfaceCtx->heartsPrimR[0], interfaceCtx->heartsPrimG[0], interfaceCtx->heartsPrimB[0], - interfaceCtx->healthAlpha, COSMETIC_ELEMENT_HEARTS); + interfaceCtx->healthAlpha, COSMETIC_ID("HUD.Hearts")); // Normal Heart Border gDPSetEnvColorOverrideEx(OVERLAY_DISP++, interfaceCtx->heartsEnvR[0], interfaceCtx->heartsEnvG[0], - interfaceCtx->heartsEnvB[0], 255, COSMETIC_ELEMENT_HEARTS, + interfaceCtx->heartsEnvB[0], 255, COSMETIC_ID("HUD.Hearts"), COSMETIC_COLOR_MODE_DIVIDE, 4.0f); } } else if (i == fullHeartCount) { @@ -266,11 +266,11 @@ void LifeMeter_Draw(PlayState* play) { // Normal Beating Heart gDPSetPrimColorOverride(OVERLAY_DISP++, 0, 0, interfaceCtx->beatingHeartPrim[0], interfaceCtx->beatingHeartPrim[1], interfaceCtx->beatingHeartPrim[2], - interfaceCtx->healthAlpha, COSMETIC_ELEMENT_HEARTS); + interfaceCtx->healthAlpha, COSMETIC_ID("HUD.Hearts")); // Normal Beating Heart Border gDPSetEnvColorOverrideEx(OVERLAY_DISP++, interfaceCtx->beatingHeartEnv[0], interfaceCtx->beatingHeartEnv[1], interfaceCtx->beatingHeartEnv[2], 255, - COSMETIC_ELEMENT_HEARTS, COSMETIC_COLOR_MODE_DIVIDE, 4.0f); + COSMETIC_ID("HUD.Hearts"), COSMETIC_COLOR_MODE_DIVIDE, 4.0f); } } else if (fullHeartCount < i) { if (curColorSet != 2) { @@ -278,9 +278,9 @@ void LifeMeter_Draw(PlayState* play) { gDPPipeSync(OVERLAY_DISP++); gDPSetPrimColorOverride(OVERLAY_DISP++, 0, 0, interfaceCtx->heartsPrimR[0], interfaceCtx->heartsPrimG[0], interfaceCtx->heartsPrimB[0], - interfaceCtx->healthAlpha, COSMETIC_ELEMENT_HEARTS); + interfaceCtx->healthAlpha, COSMETIC_ID("HUD.Hearts")); gDPSetEnvColorOverrideEx(OVERLAY_DISP++, interfaceCtx->heartsEnvR[0], interfaceCtx->heartsEnvG[0], - interfaceCtx->heartsEnvB[0], 255, COSMETIC_ELEMENT_HEARTS, + interfaceCtx->heartsEnvB[0], 255, COSMETIC_ID("HUD.Hearts"), COSMETIC_COLOR_MODE_DIVIDE, 4.0f); } } else { @@ -311,7 +311,7 @@ void LifeMeter_Draw(PlayState* play) { interfaceCtx->healthAlpha); // Double Defense Non Active Heart gDPSetEnvColorOverrideEx(OVERLAY_DISP++, sHeartsDDEnv[0][0], sHeartsDDEnv[0][1], sHeartsDDEnv[0][2], - 255, COSMETIC_ELEMENT_HEARTS, COSMETIC_COLOR_MODE_SUBTRACT, 55.0f); + 255, COSMETIC_ID("HUD.Hearts"), COSMETIC_COLOR_MODE_SUBTRACT, 55.0f); } } else if (i == fullHeartCount) { if (curColorSet != 5) { @@ -322,7 +322,7 @@ void LifeMeter_Draw(PlayState* play) { sBeatingHeartsDDPrim[2], interfaceCtx->healthAlpha); // Double Defense Beating Heart gDPSetEnvColorOverrideEx(OVERLAY_DISP++, sBeatingHeartsDDEnv[0], sBeatingHeartsDDEnv[1], - sBeatingHeartsDDEnv[2], 255, COSMETIC_ELEMENT_HEARTS, + sBeatingHeartsDDEnv[2], 255, COSMETIC_ID("HUD.Hearts"), COSMETIC_COLOR_MODE_SUBTRACT, 55.0f); } } else if (i > fullHeartCount) { @@ -334,7 +334,7 @@ void LifeMeter_Draw(PlayState* play) { interfaceCtx->healthAlpha); // Double Defense Empty Heart gDPSetEnvColorOverrideEx(OVERLAY_DISP++, sHeartsDDEnv[0][0], sHeartsDDEnv[0][1], sHeartsDDEnv[0][2], - 255, COSMETIC_ELEMENT_HEARTS, COSMETIC_COLOR_MODE_SUBTRACT, 55.0f); + 255, COSMETIC_ID("HUD.Hearts"), COSMETIC_COLOR_MODE_SUBTRACT, 55.0f); } } else if (curColorSet != 7) { curColorSet = 7; diff --git a/mm/src/code/z_map_disp.c b/mm/src/code/z_map_disp.c index ed51b27da..9da95c745 100644 --- a/mm/src/code/z_map_disp.c +++ b/mm/src/code/z_map_disp.c @@ -296,7 +296,7 @@ void MapDisp_DrawMinimapRoom(PlayState* play, TexturePtr texture, s32 x, s32 y, MapData_GetMapColor(MapData_GetMapColorIndex(mapDataRoom->mapId), &color); gDPSetPrimColorOverride(OVERLAY_DISP++, 0, 0, color.r, color.g, color.b, (s32)(play->interfaceCtx.minimapAlpha * intensity * color.a / 255.0f), - COSMETIC_ELEMENT_MINIMAP); + COSMETIC_ID("HUD.Minimap")); MapData_GetDrawType(mapDataRoom->mapId, &drawType); switch (drawType) { diff --git a/mm/src/code/z_parameter.c b/mm/src/code/z_parameter.c index 6b924c6cd..dbfa4273c 100644 --- a/mm/src/code/z_parameter.c +++ b/mm/src/code/z_parameter.c @@ -5676,7 +5676,7 @@ void Magic_DrawMeter(PlayState* play) { if (gSaveContext.magicState == MAGIC_STATE_METER_FLASH_2) { // Yellow part of the meter indicating the amount of magic to be subtracted gDPSetPrimColorOverrideEx(OVERLAY_DISP++, 0, 0, 250, 250, 0, interfaceCtx->magicAlpha, - COSMETIC_ELEMENT_MAGIC, COSMETIC_COLOR_MODE_ROTATE, -60.0f); + COSMETIC_ID("HUD.Magic"), COSMETIC_COLOR_MODE_ROTATE, -60.0f); gDPLoadTextureBlock_4b(OVERLAY_DISP++, gMagicMeterFillTex, G_IM_FMT_I, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); @@ -5714,11 +5714,11 @@ void Magic_DrawMeter(PlayState* play) { if (CHECK_WEEKEVENTREG(WEEKEVENTREG_DRANK_CHATEAU_ROMANI)) { // Blue magic gDPSetPrimColorOverrideEx(OVERLAY_DISP++, 0, 0, 0, 0, 200, interfaceCtx->magicAlpha, - COSMETIC_ELEMENT_MAGIC, COSMETIC_COLOR_MODE_ROTATE, 120.0f); + COSMETIC_ID("HUD.Magic"), COSMETIC_COLOR_MODE_ROTATE, 120.0f); } else { // Green magic (default) gDPSetPrimColorOverride(OVERLAY_DISP++, 0, 0, 0, 200, 0, interfaceCtx->magicAlpha, - COSMETIC_ELEMENT_MAGIC); + COSMETIC_ID("HUD.Magic")); } // #region 2S2H [Cosmetic] Hud Editor @@ -5756,11 +5756,11 @@ void Magic_DrawMeter(PlayState* play) { if (CHECK_WEEKEVENTREG(WEEKEVENTREG_DRANK_CHATEAU_ROMANI)) { // Blue magic gDPSetPrimColorOverrideEx(OVERLAY_DISP++, 0, 0, 0, 0, 200, interfaceCtx->magicAlpha, - COSMETIC_ELEMENT_MAGIC, COSMETIC_COLOR_MODE_ROTATE, 120.0f); + COSMETIC_ID("HUD.Magic"), COSMETIC_COLOR_MODE_ROTATE, 120.0f); } else { // Green magic (default) gDPSetPrimColorOverride(OVERLAY_DISP++, 0, 0, 0, 200, 0, interfaceCtx->magicAlpha, - COSMETIC_ELEMENT_MAGIC); + COSMETIC_ID("HUD.Magic")); } gDPLoadTextureBlock_4b(OVERLAY_DISP++, gMagicMeterFillTex, G_IM_FMT_I, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP, @@ -5917,7 +5917,7 @@ void Interface_DrawItemButtons(PlayState* play) { HudEditor_SetActiveElement(HUD_EDITOR_ELEMENT_D_PAD); OVERLAY_DISP = Gfx_DrawTexRectIA16_DropShadowOverride(OVERLAY_DISP, gDPadTex, 32, 32, 271, 55, 32, 32, 1024, 1024, 255, - 255, 255, dpadAlpha, COSMETIC_ELEMENT_D_PAD_BUTTON); + 255, 255, dpadAlpha, COSMETIC_ID("Buttons.DPad")); gDPPipeSync(OVERLAY_DISP++); } // #endregion @@ -5928,7 +5928,7 @@ void Interface_DrawItemButtons(PlayState* play) { OVERLAY_DISP, gButtonBackgroundTex, 32, 32, sBCButtonXPositions[EQUIP_SLOT_B], sBCButtonYPositions[EQUIP_SLOT_B], sBCButtonSizes[EQUIP_SLOT_B], sBCButtonSizes[EQUIP_SLOT_B], sBCButtonScales[EQUIP_SLOT_B] * 2, sBCButtonScales[EQUIP_SLOT_B] * 2, 100, 255, 120, interfaceCtx->bAlpha, - COSMETIC_ELEMENT_B_BUTTON); + COSMETIC_ID("Buttons.B")); gDPPipeSync(OVERLAY_DISP++); // C-Left Button Color & Texture @@ -5936,27 +5936,26 @@ void Interface_DrawItemButtons(PlayState* play) { OVERLAY_DISP = Gfx_DrawRect_DropShadowOverride( OVERLAY_DISP, sBCButtonXPositions[EQUIP_SLOT_C_LEFT], sBCButtonYPositions[EQUIP_SLOT_C_LEFT], sBCButtonSizes[EQUIP_SLOT_C_LEFT], sBCButtonSizes[EQUIP_SLOT_C_LEFT], sBCButtonScales[EQUIP_SLOT_C_LEFT] * 2, - sBCButtonScales[EQUIP_SLOT_C_LEFT] * 2, 255, 240, 0, interfaceCtx->cLeftAlpha, COSMETIC_ELEMENT_C_LEFT_BUTTON); + sBCButtonScales[EQUIP_SLOT_C_LEFT] * 2, 255, 240, 0, interfaceCtx->cLeftAlpha, COSMETIC_ID("Buttons.CLeft")); // C-Down Button Color & Texture HudEditor_SetActiveElement(HUD_EDITOR_ELEMENT_C_DOWN); OVERLAY_DISP = Gfx_DrawRect_DropShadowOverride( OVERLAY_DISP, sBCButtonXPositions[EQUIP_SLOT_C_DOWN], sBCButtonYPositions[EQUIP_SLOT_C_DOWN], sBCButtonSizes[EQUIP_SLOT_C_DOWN], sBCButtonSizes[EQUIP_SLOT_C_DOWN], sBCButtonScales[EQUIP_SLOT_C_DOWN] * 2, - sBCButtonScales[EQUIP_SLOT_C_DOWN] * 2, 255, 240, 0, interfaceCtx->cDownAlpha, COSMETIC_ELEMENT_C_DOWN_BUTTON); + sBCButtonScales[EQUIP_SLOT_C_DOWN] * 2, 255, 240, 0, interfaceCtx->cDownAlpha, COSMETIC_ID("Buttons.CDown")); // C-Right Button Color & Texture HudEditor_SetActiveElement(HUD_EDITOR_ELEMENT_C_RIGHT); OVERLAY_DISP = Gfx_DrawRect_DropShadowOverride( OVERLAY_DISP, sBCButtonXPositions[EQUIP_SLOT_C_RIGHT], sBCButtonYPositions[EQUIP_SLOT_C_RIGHT], sBCButtonSizes[EQUIP_SLOT_C_RIGHT], sBCButtonSizes[EQUIP_SLOT_C_RIGHT], sBCButtonScales[EQUIP_SLOT_C_RIGHT] * 2, - sBCButtonScales[EQUIP_SLOT_C_RIGHT] * 2, 255, 240, 0, interfaceCtx->cRightAlpha, - COSMETIC_ELEMENT_C_RIGHT_BUTTON); + sBCButtonScales[EQUIP_SLOT_C_RIGHT] * 2, 255, 240, 0, interfaceCtx->cRightAlpha, COSMETIC_ID("Buttons.CRight")); if (!IS_PAUSE_STATE_GAMEOVER(pauseCtx)) { if (IS_PAUSED(&play->pauseCtx)) { HudEditor_SetActiveElement(HUD_EDITOR_ELEMENT_START); OVERLAY_DISP = Gfx_DrawRect_DropShadowOverride(OVERLAY_DISP, 136, 17, 22, 22, (s32)(1.4277344f * (1 << 10)), (s32)(1.4277344f * (1 << 10)), 255, 130, 60, - interfaceCtx->startAlpha, COSMETIC_ELEMENT_START_BUTTON); + interfaceCtx->startAlpha, COSMETIC_ID("Buttons.Start")); // Start Button Texture, Color & Label gDPPipeSync(OVERLAY_DISP++); gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, interfaceCtx->startAlpha); @@ -6068,13 +6067,13 @@ void Interface_DrawItemButtons(PlayState* play) { if (GET_CUR_FORM_BTN_ITEM(temp) > 0xF0) { if (temp == EQUIP_SLOT_C_LEFT) { gDPSetPrimColorOverride(OVERLAY_DISP++, 0, 0, 255, 240, 0, interfaceCtx->cLeftAlpha, - COSMETIC_ELEMENT_C_LEFT_BUTTON); + COSMETIC_ID("Buttons.CLeft")); } else if (temp == EQUIP_SLOT_C_DOWN) { gDPSetPrimColorOverride(OVERLAY_DISP++, 0, 0, 255, 240, 0, interfaceCtx->cDownAlpha, - COSMETIC_ELEMENT_C_DOWN_BUTTON); + COSMETIC_ID("Buttons.CDown")); } else { // EQUIP_SLOT_C_RIGHT gDPSetPrimColorOverride(OVERLAY_DISP++, 0, 0, 255, 240, 0, interfaceCtx->cRightAlpha, - COSMETIC_ELEMENT_C_RIGHT_BUTTON); + COSMETIC_ID("Buttons.CRight")); } HudEditor_SetActiveElement(temp); OVERLAY_DISP = @@ -6641,7 +6640,7 @@ void Interface_DrawAButton(PlayState* play) { gDPPipeSync(OVERLAY_DISP++); Interface_SetPerspectiveView(play, 23 + R_A_BTN_Y_OFFSET, 68 + R_A_BTN_Y_OFFSET, 190, 235); gSPVertex(OVERLAY_DISP++, &interfaceCtx->actionVtx[0], 4, 0); - gDPSetPrimColorOverride(OVERLAY_DISP++, 0, 0, 100, 200, 255, interfaceCtx->aAlpha, COSMETIC_ELEMENT_A_BUTTON); + gDPSetPrimColorOverride(OVERLAY_DISP++, 0, 0, 100, 200, 255, interfaceCtx->aAlpha, COSMETIC_ID("Buttons.A")); gSP1Quadrangle(OVERLAY_DISP++, 0, 2, 3, 1, 0); // Draw A Button Do-Action @@ -8977,7 +8976,7 @@ void Interface_Draw(PlayState* play) { gDPSetPrimColorOverride(OVERLAY_DISP++, 0, 0, sRupeeCounterIconPrimColors[CUR_UPG_VALUE(UPG_WALLET)].r, sRupeeCounterIconPrimColors[CUR_UPG_VALUE(UPG_WALLET)].g, sRupeeCounterIconPrimColors[CUR_UPG_VALUE(UPG_WALLET)].b, interfaceCtx->magicAlpha, - COSMETIC_ELEMENT_RUPEE_ICON); + COSMETIC_ID("HUD.RupeeIcon")); gDPSetEnvColor(OVERLAY_DISP++, sRupeeCounterIconEnvColors[CUR_UPG_VALUE(UPG_WALLET)].r, sRupeeCounterIconEnvColors[CUR_UPG_VALUE(UPG_WALLET)].g, sRupeeCounterIconEnvColors[CUR_UPG_VALUE(4)].b, 255); @@ -8996,7 +8995,7 @@ void Interface_Draw(PlayState* play) { // Small Key Icon gDPPipeSync(OVERLAY_DISP++); gDPSetPrimColorOverride(OVERLAY_DISP++, 0, 0, 200, 230, 255, interfaceCtx->magicAlpha, - COSMETIC_ELEMENT_SMALL_KEY); + COSMETIC_ID("HUD.SmallKey")); gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 20, 255); HudEditor_SetActiveElement(HUD_EDITOR_ELEMENT_KEY_COUNTER); |
