New Style, new error

I frankensteined a new blade style and effects and added it to a working config, but I’m getting an error when trying to confirm it in Arduino.

“cannot resolve overloaded function ‘StylePtr’ based on conversion to type 'StyleFactory*”
and
“Compilation error: parse error in template argument list”

I’m sure the issue is with this section of the config:

  { "Luke", "tracks/Luke.wav",
    StylePtr<Layers<AudioFlicker<RotateColorsX<Variation,Green>,RotateColorsX<Variation,Rgb<0,128,0>>>,AlphaL<AudioFlickerL<RotateColorsX<Variation,Green>>,Scale<IsLessThan<SwingSpeed<600>,Int<13600>>,Scale<SwingSpeed<600>,Int<-19300>,Int<32768>>,Int<0>>>,LockupTrL<Layers<
    AlphaL<AudioFlickerL<White>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>>,
    AlphaL<White,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Int<10000>,Int<30000>>,Int<10000>>,Int<10000>>>>,TrConcat<TrInstant,White,TrFade<400>>,TrConcat<TrInstant,White,TrFade<400>>,SaberBase::LOCKUP_NORMAL>,ResponsiveLightningBlockL<Strobe<White,AudioFlicker<White,Blue>,50,1>,TrConcat<TrInstant,AlphaL<White,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,TrConcat<TrInstant,HumpFlickerL<AlphaL<White,Int<16000>>,30>,TrSmoothFade<600>>>,ResponsiveStabL<Red>,ResponsiveBlastL<White,Int<400>,Scale<SwingSpeed<200>,Int<100>,Int<400>>>,TransitionEffectL<TrConcat<TrJoin<TrDelay<30>,TrInstant>,RgbArg<BLAST_COLOR_ARG,Red>,TrFade<20>>,EFFECT_BLAST>,
  SimpleClashL<White>,LockupTrL<AlphaL<Stripes<2000,3000,RgbArg<DRAG_COLOR_ARG,Orange>,Mix<Sin<Int<30>>,Black,RgbArg<DRAG_COLOR_ARG,Orange>>,Mix<Int<8192>,Black,RgbArg<DRAG_COLOR_ARG,Orange>>>,SmoothStep<IntArg<DRAG_SIZE_ARG,28000>,Int<3000>>>,TrWipeIn<200>,TrFade<300>,SaberBase::LOCKUP_DRAG>,LockupTrL<AlphaL<Remap<Scale<RampF,Int<65536>,Int<0>>,StaticFire<Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,24,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,24,0>>>>,Mix<TwistAngle<>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,24,0>>>,RotateColorsX<Int<3000>,Mix<Int<12000>,Black,RgbArg<STAB_COLOR_ARG,Rgb<255,24,0>>>>>,0,3,5,3000,10>>,SmoothStep<IntArg<MELT_SIZE_ARG,23777>,Int<4000>>>,TrConcat<TrWipeIn<100>,AlphaL<RgbArg<STAB_COLOR_ARG,Rgb<255,24,0>>,SmoothStep<IntArg<MELT_SIZE_ARG,23777>,Int<4000>>>,TrJoin<TrDelay<4000>,TrFade<300>>,AlphaL<Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,24,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,24,0>>>>,SmoothStep<IntArg<MELT_SIZE_ARG,23777>,Int<4000>>>,TrFade<4000>>,TrWipe<200>,SaberBase::LOCKUP_MELT>,InOutTrL<TrWipe<450>,TrWipeIn<500>>>()
},

You’re missing a closing bracket at the end. Should be

  InOutTrL<TrWipe<450>,TrWipeIn<500>>>>()

Config works great now. Thanks so much.

I’m very ignorant, that worked, but for future style creation, why was the extra > needed? Is it that way due to the extra added layers/effects?

The other styles in my config only have three >.

The number of closing chevrons > at the end is based on the number of open, unclosed chevrons in the style.

Ultimately the complete style is wrapped in StylePtr<...>(), so that’s 1 at the end, and then any other things which get put into the style add to that. In your case, InOutTrL is a “layer,” so it’s probably wrapped in Layers<...> (EDIT: I just glanced at it, it is), so that’s 2 then at the end. Then there’s the InOutTrL<...> itself, so that’s three, and then you can see at the end, inside the InOutTrL there is TrWipeIn<...>, so that’s 4.

It completely depends on the style itself and what is there, it’s not a fixed number.

Removing everything else in play, it looks something like this:

StylePtr<Layers<...InOutTrL<...TrWipeIn<...>>>>(). Notice how the number of opening < is equal to the number of closing >. Now you can also imagine that (as is the case) there are other arguments earlier on:

StylePtr<Layers<SomeOtherStyleElement<...>, InOutTrL<...TrWipeIn<...>>>>(), at the end there are still 4, and overall the number of < and > is still balanced, but because the made-up “SomeOtherStyleElement” is earlier in the style, both its opening and closing chevron come before the end, so they don’t add to the number you see at the end.

I’m not sure if that’s helpful at all, but basically:

1 Like