diff --git a/README.md b/README.md index a87c669f94..052f81a837 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Welcome to the Vortex Engine firmware repository! This open-source project is de The firmware enables users to create mesmerizing light shows by allowing any flashing patterns, colorsets, or effects to be programmed onto their devices. -It uses a standardized format for savefiles and transferring data which allows all devices running vortex to share colorsets, patterns and modes. +It uses a standardized format for savefiles and transferring data which allows all devices running vortex to share colorsets, patterns and modes. Menus and user interface is standardized with color schemes so users only need to learn how to program one device and they will know how to program all devices running Vortex. You can find here the core Vortex Engine codebase along with branches for all devices from StoneOrbits including: Orbit, Gloves, Handle, and Duo chip. diff --git a/VortexEngine/src/Menus/MenuList/Randomizer.cpp b/VortexEngine/src/Menus/MenuList/Randomizer.cpp index 50e77116af..d741d3eb71 100644 --- a/VortexEngine/src/Menus/MenuList/Randomizer.cpp +++ b/VortexEngine/src/Menus/MenuList/Randomizer.cpp @@ -222,6 +222,8 @@ bool Randomizer::rollPattern(Random &ctx, Mode *pMode, LedPos pos) newPat = PATTERN_BLEND; // 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; } return pMode->setPattern(newPat, pos, &args); } diff --git a/VortexEngine/src/Patterns/Pattern.cpp b/VortexEngine/src/Patterns/Pattern.cpp index 7b2ea29b88..311ee3d0af 100644 --- a/VortexEngine/src/Patterns/Pattern.cpp +++ b/VortexEngine/src/Patterns/Pattern.cpp @@ -63,7 +63,7 @@ void Pattern::serialize(ByteStream &buffer) const PatternArgs defaults = PatternBuilder::getDefaultArgs(m_patternID); // generate a bitmap of which args are defaulted uint8_t argmap = ARG_NONE; - for (uint32_t i = 0; i < args.numArgs; ++i) { + for (uint32_t i = 0; i < MAX_ARGS; ++i) { if (args.args[i] != defaults.args[i]) { ARGMAP_SET(argmap, i); } diff --git a/VortexEngine/src/Patterns/PatternArgs.cpp b/VortexEngine/src/Patterns/PatternArgs.cpp index 9c70218b45..a26389dff8 100644 --- a/VortexEngine/src/Patterns/PatternArgs.cpp +++ b/VortexEngine/src/Patterns/PatternArgs.cpp @@ -174,7 +174,7 @@ uint8_t PatternArgs::operator[](int index) const void PatternArgs::serialize(ByteStream &buffer, ArgMap argmap) const { buffer.serialize(argmap); - for (uint8_t i = 0; i < numArgs; ++i) { + for (uint8_t i = 0; i < MAX_ARGS; ++i) { if (ARGMAP_ISSET(argmap, i)) { buffer.serialize(args[i]); } diff --git a/VortexEngine/src/VortexConfig.h b/VortexEngine/src/VortexConfig.h index 96655a7896..6dc584cb6a 100644 --- a/VortexEngine/src/VortexConfig.h +++ b/VortexEngine/src/VortexConfig.h @@ -14,7 +14,7 @@ // a savefile produced by 1.1 should be loadable by an engine on 1.2 // and vice versa. But an engine on 2.0 cannot share savefiles with // either of the engines on version 1.1 or 1.2 -#define VORTEX_VERSION_MINOR 0 +#define VORTEX_VERSION_MINOR 1 // produces a number like 1.0 #define VORTEX_VERSION_NUMBER VORTEX_VERSION_MAJOR.VORTEX_VERSION_MINOR