OutFox icon indicating copy to clipboard operation
OutFox copied to clipboard

[Nitpick] Negative GainSeconds aren't being applied

Open DarkBahamut162 opened this issue 4 years ago • 3 comments

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.

DarkBahamut162 avatar Jul 11 '21 21:07 DarkBahamut162

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.

DarkBahamut162 avatar Jul 12 '21 07:07 DarkBahamut162

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

DarkBahamut162 avatar Jul 27 '21 19:07 DarkBahamut162

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)

JoseVarelaP avatar Aug 13 '21 21:08 JoseVarelaP