[Nitpick] Negative GainSeconds aren't being applied
not sure if "bug" or "unexpected behavior" since it had to be set like this on purpose
Give an example of what is wrong
The MinGainSeconds for oni/survival mode seems to be set too high (15s) and isn't being set to what is in the .crs file (see below). Example seen in video below (left side, Project OutFox, using fixed and recreated ITG3Encore theme in functional oni/survival mode for increased visibility)
Given an example of what it should look like
The GainSeconds should not only be applied but also being displayed like how the .crs file states it should be. It is being displayed correctly the first time (2s), but not the second (should be -5s, got 2s instead, seemed to be ignored because of it being a negative value) while both are being ignored by the MinGainSeconds (15s). Example seen in video below (right side, OpenITG, using ITG3Encore theme in oni/survival mode)
Video: http://y2u.be/tPDrRIOXStk Course used in video ("official" ITG3 course file):
#COURSE:ZiGZaG #METER:REGULAR:13; #METER:DIFFICULT:*; #GAINSECONDS:2; #SONG:In The Groove/VerTex:Challenge:Overhead, 1.5x, nodifficult; #GAINSECONDS:-5; #SONG:In The Groove 2/Energizer:Challenge:Overhead, 1.5x, nodifficult;
#GAINSECONDS:-5; #SONG:In The Groove/Pandemonium:Challenge:Overhead, 1.5x, nodifficult; #GAINSECONDS:20; #SONG:In The Groove 2/VerTex^2:Challenge:Overhead, 1.5x, nodifficult; #GAINSECONDS:20; #SONG:In The Groove 3/VerTex^3:Challenge:Overhead, 1.5x, nodifficult;
Possible Workaround
Have the MinGainSeconds set to 15s only if there isn't anything set for it in said .crs file.
Upon further investigation I found out that inside the metrics of "LifeMeterTime" such a value indeed has been set and can be configured from there. I haven't seen it as it has only been set within _fallback and WAIEI2 My apologies for this unneeded issue, it was late at night at the time of "issueing" all of this.
Actually, I'll reopen this one as there is still an issue I think has been hard coded. It's true that there is a metric that sets this: "MinLifeTime". The only problem: Negative values are being ignored and the last valid one is being used instead. So: Getting seconds subtracted is currently impossible (and I've already set the "MinLifeTime" value to -999 just in case.
So here is the updated issue:
Give an example of what is wrong
Negative GainSeconds aren't being applied and only the latest possible value is being used instead. Example seen in video below (left side, Project OutFox, using fixed and recreated ITG3Encore theme in functional oni/survival mode for increased visibility)
Given an example of what it should look like
The GainSeconds are being applied from the .crs file itself, so it should be taken at face value. If the course isn't playable in that state, it's not OutFox's fault but that of the Scripter. Example seen in video below (right side, OpenITG, using ITG3Encore theme in oni/survival mode)
Video: http://y2u.be/tPDrRIOXStk
Yes, negative GainSeconds are not applied as it has a harcoded check for seeing if the current time to set is lower than MinLifeTime, such thing is not present on OpenITG's code. Seems to have been added right at SM5 Preview 1's timeframe.
if( MIN_LIFE_TIME > fGainSeconds )
fGainSeconds = MIN_LIFE_TIME;
Otherwise, it'll default to just applying the time back to whatever it has on MinLifetime.
(So if you have MinLifeTime to 2, and then do -3, then it will reset back to 2)