diff --git a/VortexEngine/src/Menus/MenuList/Randomizer.cpp b/VortexEngine/src/Menus/MenuList/Randomizer.cpp index 07eae31bd1..ab098254ec 100644 --- a/VortexEngine/src/Menus/MenuList/Randomizer.cpp +++ b/VortexEngine/src/Menus/MenuList/Randomizer.cpp @@ -372,8 +372,13 @@ bool Randomizer::rollCustomPattern(Random &ctx, Mode *pMode, LedPos pos) // colors instead of blinking each color in the set if (!ctx.next8(0, 3)) { newPat = PATTERN_BLEND; - // this is the number of blinks to a complementary color - args.arg7 = ctx.next8(0, 3); + // set the blend speed + args.arg6 = ctx.next8(1, 10); + // 1/2 chance to make the blend a flipping blend of some kind + if (!ctx.next8(0, 2)) { + // this is the number of blinks to a complementary color + args.arg7 = ctx.next8(0, 3); + } // up to arg7 is filled now args.numArgs = 7; } diff --git a/VortexEngine/src/Patterns/Single/BlendPattern.cpp b/VortexEngine/src/Patterns/Single/BlendPattern.cpp index cf3f9cb144..bb9d95f138 100644 --- a/VortexEngine/src/Patterns/Single/BlendPattern.cpp +++ b/VortexEngine/src/Patterns/Single/BlendPattern.cpp @@ -42,7 +42,10 @@ void BlendPattern::onBlinkOn() interpolate(m_cur.green, m_next.green); interpolate(m_cur.blue, m_next.blue); RGBColor col = m_cur; - if (m_flip) { + // it should be impossible for m_numFlips to be 0 and m_flip to be 1 + // unless the pattern arg is changed mid-play which could happen with + // and editor or something, so check both for 0 + if (m_flip && m_numFlips) { // convert to hsv HSVColor hsvCol = m_cur; // shift the hue by a flip size