From 637bada23acfcd6c2b77b15a22172cbff6151318 Mon Sep 17 00:00:00 2001 From: HylianFreddy <82058772+HylianFreddy@users.noreply.github.com> Date: Fri, 8 Dec 2023 21:22:34 +0100 Subject: [PATCH 1/2] Rainbow Tunic settings --- code/src/actors/player.c | 42 +++++++++++++++++++++++++++++++++ code/src/actors/player.h | 1 + code/src/colors.c | 50 +++++++++++++++++++++++++++++---------- code/src/colors.h | 5 +++- code/src/common.h | 2 ++ code/src/effects.c | 51 ++++++++++++++-------------------------- code/src/fairy.c | 49 ++++++++++++++++++++++++-------------- code/src/fairy.h | 2 -- code/src/main.c | 2 ++ code/src/settings.h | 4 ++++ source/cosmetics.cpp | 3 ++- source/cosmetics.hpp | 2 +- source/patch.cpp | 26 +++++--------------- source/settings.cpp | 7 ++++++ 14 files changed, 157 insertions(+), 89 deletions(-) diff --git a/code/src/actors/player.c b/code/src/actors/player.c index e0a4e4a90..6ce7958a7 100644 --- a/code/src/actors/player.c +++ b/code/src/actors/player.c @@ -9,6 +9,8 @@ #include "arrow.h" #include "grotto.h" #include "item_override.h" +#include "colors.h" +#include "common.h" #define PlayerActor_Init_addr 0x191844 #define PlayerActor_Init ((ActorFunc)PlayerActor_Init_addr) @@ -167,6 +169,9 @@ void PlayerActor_rDraw(Actor* thisx, GlobalContext* globalCtx) { PLAYER->sheathDLists = PlayerDListGroup_EmptySheathChildWithHylianShield; } } + + Player_UpdateRainbowTunic(); + PlayerActor_Draw(thisx, globalCtx); } @@ -211,3 +216,40 @@ s32 Player_CanPickUpThisActor(Actor* interactedActor) { return 1; } } + +#define TUNIC_CYCLE_FRAMES 30 +void Player_UpdateRainbowTunic(void) { + u8 currentTunic = (gSaveContext.equips.equipment >> 8) & 3; + s16 exObjectBankIdx = Object_GetIndex(&rExtendedObjectCtx, OBJECT_CUSTOM_GENERAL_ASSETS); + void* cmabManager; + char* cmabChunk; + u8 redOffset, greenOffset, blueOffset; + + if (gSaveContext.linkAge == AGE_CHILD) { + if (gSettingsContext.rainbowChildTunic == OFF) { + return; + } + cmabManager = ZAR_GetCMABByIndex(&rExtendedObjectCtx.status[exObjectBankIdx].zarInfo, TEXANIM_CHILD_LINK_BODY); + redOffset = 0x70; + greenOffset = 0x88; + blueOffset = 0xA0; + } else { // AGE_ADULT + if ((currentTunic == 1 && gSettingsContext.rainbowKokiriTunic == OFF) || + (currentTunic == 2 && gSettingsContext.rainbowGoronTunic == OFF) || + (currentTunic == 3 && gSettingsContext.rainbowZoraTunic == OFF)) { + return; + } + cmabManager = ZAR_GetCMABByIndex(&rExtendedObjectCtx.status[exObjectBankIdx].zarInfo, TEXANIM_LINK_BODY); + redOffset = 0x70 + 8 * (currentTunic - 1); + greenOffset = 0x98 + 8 * (currentTunic - 1); + blueOffset = 0xC0 + 8 * (currentTunic - 1); + } + + cmabChunk = *((char**)cmabManager); + + Color_RGBA8 color = Colors_GetRainbowColor(rGameplayFrames, TUNIC_CYCLE_FRAMES); + + *(f32*)(cmabChunk + redOffset) = color.r / 255.0f; + *(f32*)(cmabChunk + greenOffset) = color.g / 255.0f; + *(f32*)(cmabChunk + blueOffset) = color.b / 255.0f; +} diff --git a/code/src/actors/player.h b/code/src/actors/player.h index c432cd802..281457df4 100644 --- a/code/src/actors/player.h +++ b/code/src/actors/player.h @@ -9,5 +9,6 @@ void PlayerActor_rInit(Actor* thisx, GlobalContext* globalCtx); void PlayerActor_rUpdate(Actor* thisx, GlobalContext* globalCtx); void PlayerActor_rDestroy(Actor* thisx, GlobalContext* globalCtx); void PlayerActor_rDraw(Actor* thisx, GlobalContext* globalCtx); +void Player_UpdateRainbowTunic(void); #endif //_PLAYER_H_ diff --git a/code/src/colors.c b/code/src/colors.c index d236017bc..f571d35fa 100644 --- a/code/src/colors.c +++ b/code/src/colors.c @@ -1,17 +1,41 @@ #include "z3D/z3D.h" #include "colors.h" +#include "common.h" -void Colors_ChangeRainbowColorRGBAf(Color_RGBAf* color, float speed, float max) { - if (color->r >= max && color->g < max && color->b <= 0) - color->g += speed; - else if (color->r > 0 && color->g >= max && color->b <= 0) - color->r -= speed; - else if (color->r <= 0 && color->g >= max && color->b < max) - color->b += speed; - else if (color->r <= 0 && color->g > 0 && color->b >= max) - color->g -= speed; - else if (color->r < max && color->g <= 0 && color->b >= max) - color->r += speed; - else if (color->r >= max && color->g <= 0 && color->b > 0) - color->b -= speed; +// This function is taken from OoTR: https://github.com/OoTRandomizer/OoT-Randomizer/blob/1827fbb8089d3fe3e816a297a5f3ce2c99a6e0c5/ASM/c/rainbow.c +Color_RGBA8 Colors_GetRainbowColor(u32 curFrame, u32 stepFrames) { + static Color_RGBA8 cycleColors[] = { + { 0xE0, 0x10, 0x10, 0x00 }, // red + { 0xE0, 0xE0, 0x10, 0x00 }, // yellow + { 0x10, 0xE0, 0x10, 0x00 }, // green + { 0x10, 0xE0, 0xE0, 0x00 }, // cyan + { 0x10, 0x10, 0xE0, 0x00 }, // blue + { 0xE0, 0x10, 0xE0, 0x00 }, // purple + { 0xE0, 0x10, 0x10, 0x00 }, // red + }; + + int index; + float tweenA, tweenB; + + index = (curFrame / stepFrames) % 6; + + tweenB = ((f32)(curFrame % stepFrames) / stepFrames); + tweenA = 1 - tweenB; + + Color_RGBA8 cA = cycleColors[index]; + Color_RGBA8 cB = cycleColors[index + 1]; + + Color_RGBA8 ret; + ret.r = (u8)((cA.r * tweenA) + (cB.r * tweenB)); + ret.g = (u8)((cA.g * tweenA) + (cB.g * tweenB)); + ret.b = (u8)((cA.b * tweenA) + (cB.b * tweenB)); + ret.a = 0xFF; + return ret; +} + +void Colors_ChangeRainbowColorRGBA8(Color_RGBA8* color, u32 stepFrames, u8 stepOffset) { + Color_RGBA8 newColor = Colors_GetRainbowColor(rGameplayFrames + stepOffset * stepFrames, stepFrames); + color->r = newColor.r; + color->g = newColor.g; + color->b = newColor.b; } diff --git a/code/src/colors.h b/code/src/colors.h index bea4482e0..aa3a6e89c 100644 --- a/code/src/colors.h +++ b/code/src/colors.h @@ -9,6 +9,9 @@ typedef struct { f32 r, g, b, a; } Color_RGBAf; -void Colors_ChangeRainbowColorRGBAf(Color_RGBAf* color, float speed, float max); +Color_RGBA8 Colors_GetRainbowColor(u32 curFrame, u32 stepFrames); + +// Function to change rainbow color without affecting alpha component. +void Colors_ChangeRainbowColorRGBA8(Color_RGBA8* color, u32 stepFrames, u8 stepOffset); #endif //_COLORS_H_ diff --git a/code/src/common.h b/code/src/common.h index b8176f75e..512bbab1c 100644 --- a/code/src/common.h +++ b/code/src/common.h @@ -11,6 +11,8 @@ #define TICKS_PER_SEC 268123480 #define SEQ_AUDIO_BLANK 0x1000142 +extern u32 rGameplayFrames; // globalCtx->gameplayFrames is not accurate, it doesn't increment on file 3 + /// Returns 1 if the bit is set in value1 but not in value2, -1 if vice versa, and 0 if they're the same s8 BitCompare(u32 value1, u32 value2, u8 bit); diff --git a/code/src/effects.c b/code/src/effects.c index 39cd72c66..d9e293fb7 100644 --- a/code/src/effects.c +++ b/code/src/effects.c @@ -45,35 +45,16 @@ s32 forceTrailEffectUpdate(EffectBlure* effect) { return effect->numElements; } -void changeRainbowColorRGBA8(Color_RGBA8* color) { -#define COLOR_SPEED 17 // 255 = 3*17*5 - if (color->r == 0xFF && color->g != 0xFF && color->b == 0) - color->g += COLOR_SPEED; - else if (color->r != 0 && color->g == 0xFF && color->b == 0) - color->r -= COLOR_SPEED; - else if (color->r == 0 && color->g == 0xFF && color->b != 0xFF) - color->b += COLOR_SPEED; - else if (color->r == 0 && color->g != 0 && color->b == 0xFF) - color->g -= COLOR_SPEED; - else if (color->r != 0xFF && color->g == 0 && color->b == 0xFF) - color->r += COLOR_SPEED; - else if (color->r == 0xFF && color->g == 0 && color->b != 0) - color->b -= COLOR_SPEED; - else { - color->r = 0xFF; - color->g = 0; - color->b = 0; - } -} - +#define SWORD_CYCLE_FRAMES_INNER 18 +#define SWORD_CYCLE_FRAMES_OUTER 15 void updateSwordTrailColors(EffectBlure* effect) { if (gSettingsContext.rainbowSwordTrailInnerColor) { - changeRainbowColorRGBA8(&effect->p2StartColor); - changeRainbowColorRGBA8(&effect->p2EndColor); + Colors_ChangeRainbowColorRGBA8(&effect->p2StartColor, SWORD_CYCLE_FRAMES_INNER, 0); + Colors_ChangeRainbowColorRGBA8(&effect->p2EndColor, SWORD_CYCLE_FRAMES_INNER, 0); } if (gSettingsContext.rainbowSwordTrailOuterColor) { - changeRainbowColorRGBA8(&effect->p1StartColor); - changeRainbowColorRGBA8(&effect->p1EndColor); + Colors_ChangeRainbowColorRGBA8(&effect->p1StartColor, SWORD_CYCLE_FRAMES_OUTER, 0); + Colors_ChangeRainbowColorRGBA8(&effect->p1EndColor, SWORD_CYCLE_FRAMES_OUTER, 0); } } @@ -101,6 +82,8 @@ s32 handleLongTrails(u8 durationSetting, EffectBlure* effect, Vec3f* p1, Vec3f* return 0; } +#define BOOM_CYCLE_FRAMES_INNER 9 +#define BOOM_CYCLE_FRAMES_OUTER 7 u32 updateBoomerangTrailEffect(EffectBlure* effect, Vec3f* p1, Vec3f* p2) { u8 isRainbow = gSettingsContext.boomerangTrailColorMode == TRAILCOLOR_RAINBOW || gSettingsContext.boomerangTrailColorMode == TRAILCOLOR_RAINBOW_SIMPLEMODE; @@ -154,24 +137,26 @@ u32 updateBoomerangTrailEffect(EffectBlure* effect, Vec3f* p1, Vec3f* p2) { } if (isRainbow) { - changeRainbowColorRGBA8(&effect->p2StartColor); - changeRainbowColorRGBA8(&effect->p2EndColor); - changeRainbowColorRGBA8(&effect->p1StartColor); - changeRainbowColorRGBA8(&effect->p1EndColor); + Colors_ChangeRainbowColorRGBA8(&effect->p2StartColor, BOOM_CYCLE_FRAMES_INNER, 0); + Colors_ChangeRainbowColorRGBA8(&effect->p2EndColor, BOOM_CYCLE_FRAMES_INNER, 2); + Colors_ChangeRainbowColorRGBA8(&effect->p1StartColor, BOOM_CYCLE_FRAMES_OUTER, 0); + Colors_ChangeRainbowColorRGBA8(&effect->p1EndColor, BOOM_CYCLE_FRAMES_OUTER, 2); } return handleLongTrails(gSettingsContext.boomerangTrailDuration, effect, p1, p2); } +#define BOMBCHU_CYCLE_FRAMES_INNER 12 +#define BOMBCHU_CYCLE_FRAMES_OUTER 9 u32 updateChuTrailColors(EffectBlure* effect, Vec3f* p1, Vec3f* p2) { if (gSettingsContext.rainbowChuTrailInnerColor) { - changeRainbowColorRGBA8(&effect->p2StartColor); - changeRainbowColorRGBA8(&effect->p2EndColor); + Colors_ChangeRainbowColorRGBA8(&effect->p2StartColor, BOMBCHU_CYCLE_FRAMES_INNER, 0); + Colors_ChangeRainbowColorRGBA8(&effect->p2EndColor, BOMBCHU_CYCLE_FRAMES_INNER, 2); } if (gSettingsContext.rainbowChuTrailOuterColor) { - changeRainbowColorRGBA8(&effect->p1StartColor); - changeRainbowColorRGBA8(&effect->p1EndColor); + Colors_ChangeRainbowColorRGBA8(&effect->p1StartColor, BOMBCHU_CYCLE_FRAMES_OUTER, 0); + Colors_ChangeRainbowColorRGBA8(&effect->p1EndColor, BOMBCHU_CYCLE_FRAMES_OUTER, 2); } switch (gSettingsContext.bombchuTrailDuration) { diff --git a/code/src/fairy.c b/code/src/fairy.c index 6f7fd7087..e32c6d5b6 100644 --- a/code/src/fairy.c +++ b/code/src/fairy.c @@ -2,10 +2,12 @@ #include "fairy.h" #include "settings.h" #include "objects.h" +#include "common.h" #define NAVI_COLORS_ARRAY ((Color_RGBA8*)0x50C998) -#define FAIRY_COLOR_SPEED 17 // 255 = 3*17*5 -#define FAIRY_COLOR_MAX 255.0f // max value for RGB components + +#define NAVI_CYCLE_FRAMES_OUTER 18 +#define NAVI_CYCLE_FRAMES_INNER 21 static u8 lastTargetActorType = 0; // Data to manage the rainbow colors @@ -45,31 +47,42 @@ u8 Fairy_IsNaviOuterRainbowForActorType(u8 type) { } } -void Fairy_ApplyColorToTargetCMAB(void* cmab, Color_RGBA8 color) { +void Fairy_ApplyColorToTargetCMAB(void* cmab, Color_RGBA8 color8) { + Color_RGBAf colorF = { + .r = color8.r / 255.0f, + .g = color8.g / 255.0f, + .b = color8.b / 255.0f, + .a = color8.a / 255.0f, + }; + // keyframe 1 - *(f32*)(cmab + 0x6C) = color.r / 255.0f; - *(f32*)(cmab + 0xAC) = color.g / 255.0f; - *(f32*)(cmab + 0xEC) = color.b / 255.0f; + *(f32*)(cmab + 0x6C) = colorF.r; + *(f32*)(cmab + 0xAC) = colorF.g; + *(f32*)(cmab + 0xEC) = colorF.b; // keyframe 2 - *(f32*)(cmab + 0x7C) = color.r / 255.0f; - *(f32*)(cmab + 0xBC) = color.g / 255.0f; - *(f32*)(cmab + 0xFC) = color.b / 255.0f; + *(f32*)(cmab + 0x7C) = colorF.r; + *(f32*)(cmab + 0xBC) = colorF.g; + *(f32*)(cmab + 0xFC) = colorF.b; // keyframe 3 - *(f32*)(cmab + 0x8C) = color.r / 255.0f; - *(f32*)(cmab + 0xCC) = color.g / 255.0f; - *(f32*)(cmab + 0x10C) = color.b / 255.0f; + *(f32*)(cmab + 0x8C) = colorF.r; + *(f32*)(cmab + 0xCC) = colorF.g; + *(f32*)(cmab + 0x10C) = colorF.b; } void Fairy_UpdateRainbowNaviColors(EnElf* navi) { if (Fairy_IsNaviInnerRainbowForActorType(lastTargetActorType)) { - Colors_ChangeRainbowColorRGBAf(&(navi->innerColor), FAIRY_COLOR_SPEED, FAIRY_COLOR_MAX); - staticRainbowColor.r = navi->innerColor.r; - staticRainbowColor.g = navi->innerColor.g; - staticRainbowColor.b = navi->innerColor.b; - staticRainbowColor.a = 0xFF; + Color_RGBA8 newColor = Colors_GetRainbowColor(rGameplayFrames, NAVI_CYCLE_FRAMES_INNER); + staticRainbowColor = newColor; + // Navi color components go up to 255.0f instead of 1.0f + navi->innerColor.r = newColor.r / 1.0f; + navi->innerColor.g = newColor.g / 1.0f; + navi->innerColor.b = newColor.b / 1.0f; } if (Fairy_IsNaviOuterRainbowForActorType(lastTargetActorType)) { - Colors_ChangeRainbowColorRGBAf(&(navi->outerColor), FAIRY_COLOR_SPEED, FAIRY_COLOR_MAX); + Color_RGBA8 newColor = Colors_GetRainbowColor(rGameplayFrames, NAVI_CYCLE_FRAMES_OUTER); + navi->outerColor.r = newColor.r / 1.0f; + navi->outerColor.g = newColor.g / 1.0f; + navi->outerColor.b = newColor.b / 1.0f; } // Handle target pointer color diff --git a/code/src/fairy.h b/code/src/fairy.h index 226c2d5a1..df9be96c2 100644 --- a/code/src/fairy.h +++ b/code/src/fairy.h @@ -11,8 +11,6 @@ typedef struct EnElf { /* 0x938 */ Color_RGBAf outerColor; } EnElf; -#define gNaviColorList ((NaviColor*)0x50C998) - void Fairy_UpdateRainbowNaviColors(EnElf* navi); void Fairy_ResetRainbowCMABs(void); diff --git a/code/src/main.c b/code/src/main.c index aa87e0d2d..92ada6459 100644 --- a/code/src/main.c +++ b/code/src/main.c @@ -19,6 +19,7 @@ GlobalContext* gGlobalContext = NULL; static u8 rRandomizerInit = 0; +u32 rGameplayFrames = 0; void set_GlobalContext(GlobalContext* globalCtx) { gGlobalContext = globalCtx; @@ -39,6 +40,7 @@ void before_GlobalContext_Update(GlobalContext* globalCtx) { set_GlobalContext(globalCtx); rRandomizerInit = 1; } + rGameplayFrames++; ItemOverride_Update(); ActorSetup_Extra(); Model_UpdateAll(globalCtx); diff --git a/code/src/settings.h b/code/src/settings.h index fb96bc3ca..eab0182a8 100644 --- a/code/src/settings.h +++ b/code/src/settings.h @@ -627,6 +627,10 @@ typedef struct { u8 freeCamControl; u8 customTunicColors; + u8 rainbowChildTunic; + u8 rainbowKokiriTunic; + u8 rainbowGoronTunic; + u8 rainbowZoraTunic; u8 customNaviColors; u8 rainbowIdleNaviInnerColor; u8 rainbowNPCNaviInnerColor; diff --git a/source/cosmetics.cpp b/source/cosmetics.cpp index 443b91343..631e00c0f 100644 --- a/source/cosmetics.cpp +++ b/source/cosmetics.cpp @@ -54,7 +54,7 @@ const std::array gauntletColors = { "5B8A06", // Lime "800080", // Purple }; -const std::array tunicColors = { +const std::array tunicColors = { "168A0E", // Kokiri Green "96000E", // Goron Red "002A8E", // Zora Blue @@ -83,6 +83,7 @@ const std::array tunicColors = { "52314F", // Mauve "505A59", // Silver "F16F16", // Gold + "FF0000", // Rainbow (placeholder) }; const std::array naviInnerColors = { "FFFFFF", // White diff --git a/source/cosmetics.hpp b/source/cosmetics.hpp index c3034ebf0..c25e33ffd 100644 --- a/source/cosmetics.hpp +++ b/source/cosmetics.hpp @@ -36,7 +36,7 @@ struct Color_RGBA8 { }; extern const std::array gauntletColors; -extern const std::array tunicColors; +extern const std::array tunicColors; extern const std::array naviInnerColors; extern const std::array naviOuterColors; extern const std::array weaponTrailColors; diff --git a/source/patch.cpp b/source/patch.cpp index 7a6b8456c..4c7c28317 100644 --- a/source/patch.cpp +++ b/source/patch.cpp @@ -520,13 +520,6 @@ bool WriteAllPatches() { p1StartColor.a = 0xC0; p2StartColor.a = 0xC0; } - // Make rainbow colors start at different points - if (ctx.rainbowSwordTrailOuterColor) { - p1EndColor.g = 0xFF; - } - if (ctx.rainbowSwordTrailInnerColor) { - p2StartColor.b = 0xFF; - } const std::array rSwordTrailColors{ p1StartColor, p2StartColor, p1EndColor, p2EndColor }; @@ -541,22 +534,22 @@ bool WriteAllPatches() { const u32 SWORDTRAILDURATION_ADDR = 0x0053C146; char rSwordTrailDuration = 6; switch (Settings::SwordTrailDuration.Value()) { - case 0: + case TRAILDURATION_DISABLED: rSwordTrailDuration = 0; break; - case 1: + case TRAILDURATION_VERYSHORT: rSwordTrailDuration = 3; break; - case 2: + case TRAILDURATION_VANILLA: rSwordTrailDuration = 6; break; - case 3: + case TRAILDURATION_LONG: rSwordTrailDuration = 16; break; - case 4: + case TRAILDURATION_VERYLONG: rSwordTrailDuration = 24; break; - case 5: + case TRAILDURATION_LIGHTSABER: rSwordTrailDuration = 32; break; } @@ -593,13 +586,6 @@ bool WriteAllPatches() { p2StartColor.a = 0x82; p1EndColor.a = 0x34; p2EndColor.a = 0x62; - // Make rainbow colors start at different points - if (ctx.rainbowChuTrailOuterColor) { - p1EndColor.g = 0xFF; - } - if (ctx.rainbowChuTrailInnerColor) { - p2StartColor.b = 0xFF; - } const std::array rBombchuTrailColors{ p1StartColor, p2StartColor, p1EndColor, p2EndColor }; diff --git a/source/settings.cpp b/source/settings.cpp index ad7baceb5..754e07c06 100644 --- a/source/settings.cpp +++ b/source/settings.cpp @@ -1083,8 +1083,10 @@ static std::vector childTunicOptions = { "Mauve", "Silver", "Gold", + "Rainbow", "Same as Kokiri", }; +#define RAINBOW_TUNIC (childTunicOptions.size() - 2) #define SAME_AS_KOKIRI (childTunicOptions.size() - 1) static std::vector tunicOptions = VectorCopyExceptLastElement(childTunicOptions); @@ -1537,6 +1539,10 @@ SettingsContext FillContext() { ctx.freeCamControl = FreeCamControl.Value(); ctx.customTunicColors = (CustomTunicColors) ? 1 : 0; + ctx.rainbowChildTunic = (ChildTunicColor.Value() == RAINBOW_TUNIC) ? 1 : 0; + ctx.rainbowKokiriTunic = (KokiriTunicColor.Value() == RAINBOW_TUNIC) ? 1 : 0; + ctx.rainbowGoronTunic = (GoronTunicColor.Value() == RAINBOW_TUNIC) ? 1 : 0; + ctx.rainbowZoraTunic = (ZoraTunicColor.Value() == RAINBOW_TUNIC) ? 1 : 0; ctx.customNaviColors = (CustomNaviColors) ? 1 : 0; ctx.rainbowIdleNaviInnerColor = (IdleNaviInnerColor.Value() == RAINBOW_NAVI) ? 1 : 0; ctx.rainbowNPCNaviInnerColor = (NPCNaviInnerColor.Value() == RAINBOW_NAVI) ? 1 : 0; @@ -2794,6 +2800,7 @@ static void UpdateCosmetics() { ChooseFinalColor(ZoraTunicColor, finalZoraTunicColor, tunicColors); if (ChildTunicColor.Is(SAME_AS_KOKIRI)) { finalChildTunicColor = finalKokiriTunicColor; + ChildTunicColor.SetSelectedIndex(KokiriTunicColor.Value()); } else { ChooseFinalColor(ChildTunicColor, finalChildTunicColor, tunicColors); } From 4ba7383b22f702e087427d1c9560241e1b1d9c2b Mon Sep 17 00:00:00 2001 From: HylianFreddy <82058772+HylianFreddy@users.noreply.github.com> Date: Sat, 30 Dec 2023 22:25:59 +0100 Subject: [PATCH 2/2] formatting --- code/src/colors.c | 9 +++++---- code/src/fairy.c | 8 ++++---- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/code/src/colors.c b/code/src/colors.c index f571d35fa..032f31acb 100644 --- a/code/src/colors.c +++ b/code/src/colors.c @@ -2,7 +2,8 @@ #include "colors.h" #include "common.h" -// This function is taken from OoTR: https://github.com/OoTRandomizer/OoT-Randomizer/blob/1827fbb8089d3fe3e816a297a5f3ce2c99a6e0c5/ASM/c/rainbow.c +// This function is taken from OoTR: +// https://github.com/OoTRandomizer/OoT-Randomizer/blob/1827fbb8089d3fe3e816a297a5f3ce2c99a6e0c5/ASM/c/rainbow.c Color_RGBA8 Colors_GetRainbowColor(u32 curFrame, u32 stepFrames) { static Color_RGBA8 cycleColors[] = { { 0xE0, 0x10, 0x10, 0x00 }, // red @@ -35,7 +36,7 @@ Color_RGBA8 Colors_GetRainbowColor(u32 curFrame, u32 stepFrames) { void Colors_ChangeRainbowColorRGBA8(Color_RGBA8* color, u32 stepFrames, u8 stepOffset) { Color_RGBA8 newColor = Colors_GetRainbowColor(rGameplayFrames + stepOffset * stepFrames, stepFrames); - color->r = newColor.r; - color->g = newColor.g; - color->b = newColor.b; + color->r = newColor.r; + color->g = newColor.g; + color->b = newColor.b; } diff --git a/code/src/fairy.c b/code/src/fairy.c index e32c6d5b6..0c5ec07ff 100644 --- a/code/src/fairy.c +++ b/code/src/fairy.c @@ -72,7 +72,7 @@ void Fairy_ApplyColorToTargetCMAB(void* cmab, Color_RGBA8 color8) { void Fairy_UpdateRainbowNaviColors(EnElf* navi) { if (Fairy_IsNaviInnerRainbowForActorType(lastTargetActorType)) { Color_RGBA8 newColor = Colors_GetRainbowColor(rGameplayFrames, NAVI_CYCLE_FRAMES_INNER); - staticRainbowColor = newColor; + staticRainbowColor = newColor; // Navi color components go up to 255.0f instead of 1.0f navi->innerColor.r = newColor.r / 1.0f; navi->innerColor.g = newColor.g / 1.0f; @@ -80,9 +80,9 @@ void Fairy_UpdateRainbowNaviColors(EnElf* navi) { } if (Fairy_IsNaviOuterRainbowForActorType(lastTargetActorType)) { Color_RGBA8 newColor = Colors_GetRainbowColor(rGameplayFrames, NAVI_CYCLE_FRAMES_OUTER); - navi->outerColor.r = newColor.r / 1.0f; - navi->outerColor.g = newColor.g / 1.0f; - navi->outerColor.b = newColor.b / 1.0f; + navi->outerColor.r = newColor.r / 1.0f; + navi->outerColor.g = newColor.g / 1.0f; + navi->outerColor.b = newColor.b / 1.0f; } // Handle target pointer color