forum

[Archived] Storyboard vector scaling shorthand bug

posted
Total Posts
6
Topic Starter
ekgame
There are multiple problems while using a vector scaling with a shorthand in storyboards:
  1. The required number of arguments (when a beatmap doesn't fail to load correctly) is inconsistent and nonsensical: 2, 4, 8, 10, 11, 13, 14, etc...
    Any multiplies of 2 should be allowed.
  2. It doesn't work as expected.
It's a little hard to explain, so I've cobbled together a visual aid:

This graph shows the expected and actual results when I try to use this syntax:
Sprite,Background,Centre,"assets/sprite.png",320, 240
M, 0, 0, 2147483647, 320, 240
V, 0, 0, 1000, 1, 0, 1, 1, 2, 1, 2, 1
The dashed lines are meant to represent transition.
Let's try to break this down:
  1. Transition from scale (1) to scale (2) is as expected
  2. There is no transition between (2) and (3) but when the scale changes the X and Y values are switched.
  3. Yet again, no transition between (3) and (4), but the X and Y values are as expected.
This is present in both stable and cutting-edge releases.
Damnae
I hoped no one would use these shorthands so I could someday change the syntax by adding times for the next values :x
(Something like V, 0, 0, 1000, 1, 0, 1, 1, 2500, 2, 1, 3000, 2, 2)

I can confirm this doesn't work, use 2 or 4 parameters for now.
Topic Starter
ekgame
These shorthands are very useful for programmatically creating complicated visualizations and minimizing the file size. If they worked correctly, my file sizes would be cut down in half, if not more.

I do like your suggested syntax, though.
ExCellRaD

Damnae wrote:

I can confirm this doesn't work, use 2 or 4 parameters for now.
Just hit this issue as well, how come Move (X and Y together) shorthand works correctly though? They are written and should be parsed the same way.

Also tested this and this issue persits on all release streams.

To further elaborate on the issue itself:
These are the indices that get used of the array of values provided with the shorthand. 0 being the first actual value (first X scale).
Note that these come in pairs because Vector scale uses X and Y.
0,1 -> 2,3 // works correctly
3,4 -> 5,6 // should be: 2,3 -> 4,5
6,7 -> 8,9 // should be: 4,5 -> 6,7
...

What is happening: every extra pair of values, there is one value that gets skipped. This now makes it so that X and Y get flipped every other pair.

This bug also forces you to use the invalid amount of parameters, because it skips some indices. You get an error otherwise and cant load the editor or play the map.

:idea: Solution @ osu! developers: look at the parser, compare the code that parses Vector Scale (V) and Move (M) there should be a +1, -1 or similar missing somewhere.
Bara-
Please don't bump old marked threads unless you started the thread. Since this seems like a confirmable issue, try contacting a GMT (Green name) and ask on whether or not this should be moved back.
Pawsu
I'm moving this back because it does seem confirmable. I'll forward this on and get it investigated further before I confirm it.
Please sign in to reply.

New reply