Added nITG's various sub-modifiers (#1419)
* Added nITG's Bumpy sub-mods and ... reorganized PlayerOptions::FromOneModString's Confusion checks This is to help avoid the nesting level of 128 under Windows * Added nITG's Tipsy sub-mods Modifiers added: TipsySpeed TipsyOffset * Add nITG's Drunk sub-mods Modifiers added: DrunkSpeed DrunkOffset DrunkPeriod * Added nITG's Wave & Expand sub-mods Modifiers added: WavePeriod ExpandPeriod * Added nITG's Tornado sub-mods Modifiers Added: TornadoPeriod TornadoOffset * Added nITG's Beat sub-mods Modifiers added: BeatOffset BeatPeriod BeatMult * Documented the new sub-mods
This commit is contained in:
@@ -1114,6 +1114,9 @@
|
||||
<Function name='Backwards'/>
|
||||
<Function name='BatteryLives'/>
|
||||
<Function name='Beat'/>
|
||||
<Function name='BeatOffset'/>
|
||||
<Function name='BeatMult'/>
|
||||
<Function name='BeatPeriod'/>
|
||||
<Function name='Big'/>
|
||||
<Function name='Blind'/>
|
||||
<Function name='Blink'/>
|
||||
@@ -1122,6 +1125,8 @@
|
||||
<Function name='BMRize'/>
|
||||
<Function name='Brake'/>
|
||||
<Function name='Bumpy'/>
|
||||
<Function name='BumpyOffset'/>
|
||||
<Function name='BumpyPeriod'/>
|
||||
<Function name='Centered'/>
|
||||
<Function name='CMod'/>
|
||||
<Function name='Confusion'/>
|
||||
@@ -1137,8 +1142,12 @@
|
||||
<Function name='Distant'/>
|
||||
<Function name='DrainSetting'/>
|
||||
<Function name='Drunk'/>
|
||||
<Function name='DrunkOffset'/>
|
||||
<Function name='DrunkPeriod'/>
|
||||
<Function name='DrunkSpeed'/>
|
||||
<Function name='Echo'/>
|
||||
<Function name='Expand'/>
|
||||
<Function name='ExpandPeriod'/>
|
||||
<Function name='FailSetting'/>
|
||||
<Function name='Flip'/>
|
||||
<Function name='Floored'/>
|
||||
@@ -1204,12 +1213,17 @@
|
||||
<Function name='Tilt'/>
|
||||
<Function name='Tiny'/>
|
||||
<Function name='Tipsy'/>
|
||||
<Function name='TipsyOffset'/>
|
||||
<Function name='TipsySpeed'/>
|
||||
<Function name='Tornado'/>
|
||||
<Function name='TornadoOffset'/>
|
||||
<Function name='TornadoPeriod'/>
|
||||
<Function name='TurnNone'/>
|
||||
<Function name='Twirl'/>
|
||||
<Function name='Twister'/>
|
||||
<Function name='UsingReverse'/>
|
||||
<Function name='Wave'/>
|
||||
<Function name='WavePeriod'/>
|
||||
<Function name='Wide'/>
|
||||
<Function name='XMod'/>
|
||||
<Function name='Xmode'/>
|
||||
|
||||
@@ -3432,6 +3432,9 @@ save yourself some time, copy this for undocumented things:
|
||||
<Function name='BatteryLives' return='int' arguments='int num'> </Function>
|
||||
<Function name='Backwards' return='bool' arguments='bool value'> </Function>
|
||||
<Function name='Beat' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='BeatOffset' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='BeatMult' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='BeatPeriod' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='Big' return='bool' arguments='bool value'> </Function>
|
||||
<Function name='Blink' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='Blind' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
@@ -3440,6 +3443,8 @@ save yourself some time, copy this for undocumented things:
|
||||
<Function name='Boost' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='Brake' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='Bumpy' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='BumpyOffset' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='BumpyPeriod' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='Centered' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='CMod' return='float, float' arguments='float value, float approach_speed'>
|
||||
If the player has a CMod set, returns the value of that CMod and its associated approach speed. Returns nil otherwise.<br />
|
||||
@@ -3464,8 +3469,12 @@ save yourself some time, copy this for undocumented things:
|
||||
</Function>
|
||||
<Function name='DrainSetting' return= 'DrainType' arguments='DrainType type'> </Function>
|
||||
<Function name='Drunk' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='DrunkOffset' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='DrunkPeriod' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='DrunkSpeed' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='Echo' return='bool' arguments='bool value'> </Function>
|
||||
<Function name='Expand' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='ExpandPeriod' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='FailSetting' return='FailType' arguments='FailType'>
|
||||
Sets the <Link class='ENUM' function='FailType' /> for the player, if the optional argument is provided. Returns the <Link class='ENUM' function='FailType' /> that was previously set.
|
||||
</Function>
|
||||
@@ -3600,7 +3609,11 @@ save yourself some time, copy this for undocumented things:
|
||||
</Function>
|
||||
<Function name='Tiny' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='Tipsy' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='TipsyOffset' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='TipsySpeed' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='Tornado' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='TornadoOffset' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='TornadoPeriod' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='TurnNone' return='bool' arguments='bool value'> </Function>
|
||||
<Function name='Twirl' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='Twister' return='bool' arguments='bool value'> </Function>
|
||||
@@ -3608,6 +3621,7 @@ save yourself some time, copy this for undocumented things:
|
||||
Returns <code>true</code> if the player is using reverse. (equivalent to <code>GetReverse() == 1.0</code>)
|
||||
</Function>
|
||||
<Function name='Wave' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='WavePeriod' return='float, float' arguments='float value, float approach_speed'> </Function>
|
||||
<Function name='Wide' return='bool' arguments='bool value'> </Function>
|
||||
<Function name='XMod' return='float, float' arguments='float value, float approach_speed'>
|
||||
If the player has a XMod set, returns the value of that XMod and its associated approach speed. Returns nil otherwise.<br />
|
||||
|
||||
+12
-11
@@ -97,13 +97,14 @@ void ArrowEffects::Update()
|
||||
? GAMESTATE->m_pPlayerState[pn]->m_Position : GAMESTATE->m_Position;
|
||||
const float field_zoom= GAMESTATE->m_pPlayerState[pn]->m_NotefieldZoom;
|
||||
const float* effects= GAMESTATE->m_pPlayerState[pn]->m_PlayerOptions.GetCurrent().m_fEffects;
|
||||
const float* accels= GAMESTATE->m_pPlayerState[pn]->m_PlayerOptions.GetCurrent().m_fAccels;
|
||||
|
||||
PerPlayerData &data = g_EffectData[pn];
|
||||
|
||||
if( !position.m_bFreeze || !position.m_bDelay )
|
||||
{
|
||||
data.m_fExpandSeconds += fTime - fLastTime;
|
||||
data.m_fExpandSeconds = fmodf( data.m_fExpandSeconds, PI*2 );
|
||||
data.m_fExpandSeconds = fmodf( data.m_fExpandSeconds, (PI*2)/(accels[PlayerOptions::ACCEL_EXPAND_PERIOD]+1) );
|
||||
}
|
||||
|
||||
// Update Tornado
|
||||
@@ -185,7 +186,7 @@ void ArrowEffects::Update()
|
||||
if(effects[PlayerOptions::EFFECT_TIPSY] != 0)
|
||||
{
|
||||
const float time= RageTimer::GetTimeSinceStartFast();
|
||||
const float time_times_timer= time * TIPSY_TIMER_FREQUENCY;
|
||||
const float time_times_timer= time * ((effects[PlayerOptions::EFFECT_TIPSY_SPEED] * TIPSY_TIMER_FREQUENCY) + TIPSY_TIMER_FREQUENCY);
|
||||
const float arrow_times_mag= ARROW_SIZE * TIPSY_ARROW_MAGNITUDE;
|
||||
const float time_times_offset_timer= time *
|
||||
TIPSY_OFFSET_TIMER_FREQUENCY;
|
||||
@@ -194,7 +195,7 @@ void ArrowEffects::Update()
|
||||
for(int col= 0; col < MAX_COLS_PER_PLAYER; ++col)
|
||||
{
|
||||
data.m_tipsy_result[col]= RageFastCos(
|
||||
time_times_timer + (col * TIPSY_COLUMN_FREQUENCY)) *
|
||||
time_times_timer + (col * ((effects[PlayerOptions::EFFECT_TIPSY_OFFSET] * TIPSY_COLUMN_FREQUENCY) + TIPSY_COLUMN_FREQUENCY))) *
|
||||
arrow_times_mag;
|
||||
data.m_tipsy_offset_result[col]= RageFastCos(
|
||||
time_times_offset_timer + (col * TIPSY_OFFSET_COLUMN_FREQUENCY)) *
|
||||
@@ -212,7 +213,7 @@ void ArrowEffects::Update()
|
||||
// Update Beat
|
||||
do {
|
||||
float fAccelTime = 0.2f, fTotalTime = 0.5f;
|
||||
float fBeat = position.m_fSongBeatVisible + fAccelTime;
|
||||
float fBeat = ((position.m_fSongBeatVisible + fAccelTime + effects[PlayerOptions::EFFECT_BEAT_OFFSET]) * (effects[PlayerOptions::EFFECT_BEAT_MULT]+1));
|
||||
|
||||
const bool bEvenBeat = ( int(fBeat) % 2 ) != 0;
|
||||
|
||||
@@ -360,7 +361,7 @@ float ArrowEffects::GetYOffset( const PlayerState* pPlayerState, int iCol, float
|
||||
fYAdjust += fBrakeYAdjust;
|
||||
}
|
||||
if( fAccels[PlayerOptions::ACCEL_WAVE] != 0 )
|
||||
fYAdjust += fAccels[PlayerOptions::ACCEL_WAVE] * WAVE_MOD_MAGNITUDE *RageFastSin( fYOffset/WAVE_MOD_HEIGHT );
|
||||
fYAdjust += fAccels[PlayerOptions::ACCEL_WAVE] * WAVE_MOD_MAGNITUDE *RageFastSin( fYOffset/((fAccels[PlayerOptions::ACCEL_WAVE_PERIOD]*WAVE_MOD_HEIGHT)+WAVE_MOD_HEIGHT) );
|
||||
|
||||
fYOffset += fYAdjust;
|
||||
|
||||
@@ -396,7 +397,7 @@ float ArrowEffects::GetYOffset( const PlayerState* pPlayerState, int iCol, float
|
||||
// TODO: Don't index by PlayerNumber.
|
||||
PerPlayerData &data = g_EffectData[pPlayerState->m_PlayerNumber];
|
||||
|
||||
float fExpandMultiplier = SCALE( RageFastCos(data.m_fExpandSeconds*EXPAND_MULTIPLIER_FREQUENCY),
|
||||
float fExpandMultiplier = SCALE( RageFastCos(data.m_fExpandSeconds*EXPAND_MULTIPLIER_FREQUENCY*(fAccels[PlayerOptions::ACCEL_EXPAND_PERIOD]+1)),
|
||||
EXPAND_MULTIPLIER_SCALE_FROM_LOW, EXPAND_MULTIPLIER_SCALE_FROM_HIGH,
|
||||
EXPAND_MULTIPLIER_SCALE_TO_LOW, EXPAND_MULTIPLIER_SCALE_TO_HIGH );
|
||||
fScrollSpeed *= SCALE( fAccels[PlayerOptions::ACCEL_EXPAND],
|
||||
@@ -493,7 +494,7 @@ float ArrowEffects::GetXPos( const PlayerState* pPlayerState, int iColNum, float
|
||||
const float fPositionBetween = SCALE( fRealPixelOffset, data.m_fMinTornadoX[iColNum], data.m_fMaxTornadoX[iColNum],
|
||||
TORNADO_POSITION_SCALE_TO_LOW, TORNADO_POSITION_SCALE_TO_HIGH );
|
||||
float fRads = acosf( fPositionBetween );
|
||||
fRads += fYOffset * TORNADO_OFFSET_FREQUENCY / SCREEN_HEIGHT;
|
||||
fRads += (fYOffset + fEffects[PlayerOptions::EFFECT_TORNADO_OFFSET]) * ((fEffects[PlayerOptions::EFFECT_TORNADO_PERIOD] * TORNADO_OFFSET_FREQUENCY) + TORNADO_OFFSET_FREQUENCY) / SCREEN_HEIGHT;
|
||||
|
||||
const float fAdjustedPixelOffset = SCALE( RageFastCos(fRads), TORNADO_OFFSET_SCALE_FROM_LOW, TORNADO_OFFSET_SCALE_FROM_HIGH,
|
||||
data.m_fMinTornadoX[iColNum], data.m_fMaxTornadoX[iColNum] );
|
||||
@@ -503,8 +504,8 @@ float ArrowEffects::GetXPos( const PlayerState* pPlayerState, int iColNum, float
|
||||
|
||||
if( fEffects[PlayerOptions::EFFECT_DRUNK] != 0 )
|
||||
fPixelOffsetFromCenter += fEffects[PlayerOptions::EFFECT_DRUNK] *
|
||||
( RageFastCos( RageTimer::GetTimeSinceStartFast() + iColNum*DRUNK_COLUMN_FREQUENCY
|
||||
+ fYOffset*DRUNK_OFFSET_FREQUENCY/SCREEN_HEIGHT) * ARROW_SIZE*DRUNK_ARROW_MAGNITUDE );
|
||||
( RageFastCos( RageTimer::GetTimeSinceStartFast()*(1+fEffects[PlayerOptions::EFFECT_DRUNK_SPEED]) + iColNum*((fEffects[PlayerOptions::EFFECT_DRUNK_OFFSET]*DRUNK_COLUMN_FREQUENCY)+DRUNK_COLUMN_FREQUENCY)
|
||||
+ fYOffset*((fEffects[PlayerOptions::EFFECT_DRUNK_PERIOD]*DRUNK_OFFSET_FREQUENCY)+DRUNK_OFFSET_FREQUENCY)/SCREEN_HEIGHT) * ARROW_SIZE*DRUNK_ARROW_MAGNITUDE );
|
||||
if( fEffects[PlayerOptions::EFFECT_FLIP] != 0 )
|
||||
{
|
||||
const int iFirstCol = 0;
|
||||
@@ -520,7 +521,7 @@ float ArrowEffects::GetXPos( const PlayerState* pPlayerState, int iColNum, float
|
||||
|
||||
if( fEffects[PlayerOptions::EFFECT_BEAT] != 0 )
|
||||
{
|
||||
const float fShift = data.m_fBeatFactor*RageFastSin( fYOffset / BEAT_OFFSET_HEIGHT + PI/BEAT_PI_HEIGHT );
|
||||
const float fShift = data.m_fBeatFactor*RageFastSin( fYOffset / ((fEffects[PlayerOptions::EFFECT_BEAT_PERIOD]*BEAT_OFFSET_HEIGHT)+BEAT_OFFSET_HEIGHT) + PI/BEAT_PI_HEIGHT );
|
||||
fPixelOffsetFromCenter += fEffects[PlayerOptions::EFFECT_BEAT] * fShift;
|
||||
}
|
||||
|
||||
@@ -858,7 +859,7 @@ float ArrowEffects::GetZPos(int iCol, float fYOffset)
|
||||
const float* fEffects = curr_options->m_fEffects;
|
||||
|
||||
if( fEffects[PlayerOptions::EFFECT_BUMPY] != 0 )
|
||||
fZPos += fEffects[PlayerOptions::EFFECT_BUMPY] * 40*RageFastSin( fYOffset/16.0f );
|
||||
fZPos += fEffects[PlayerOptions::EFFECT_BUMPY] * 40*RageFastSin( (fYOffset+(100.0f*fEffects[PlayerOptions::EFFECT_BUMPY_OFFSET]) )/((fEffects[PlayerOptions::EFFECT_BUMPY_PERIOD]*16.0f)+16.0f) );
|
||||
|
||||
return fZPos;
|
||||
}
|
||||
|
||||
+93
-13
@@ -214,10 +214,15 @@ void PlayerOptions::GetMods( vector<RString> &AddTo, bool bForceNoteSkin ) const
|
||||
AddPart( AddTo, m_fAccels[ACCEL_BOOST], "Boost" );
|
||||
AddPart( AddTo, m_fAccels[ACCEL_BRAKE], "Brake" );
|
||||
AddPart( AddTo, m_fAccels[ACCEL_WAVE], "Wave" );
|
||||
AddPart( AddTo, m_fAccels[ACCEL_WAVE_PERIOD], "WavePeriod" );
|
||||
AddPart( AddTo, m_fAccels[ACCEL_EXPAND], "Expand" );
|
||||
AddPart( AddTo, m_fAccels[ACCEL_EXPAND_PERIOD], "ExpandPeriod" );
|
||||
AddPart( AddTo, m_fAccels[ACCEL_BOOMERANG], "Boomerang" );
|
||||
|
||||
AddPart( AddTo, m_fEffects[EFFECT_DRUNK], "Drunk" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_DRUNK_SPEED], "DrunkSpeed" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_DRUNK_OFFSET], "DrunkOffset" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_DRUNK_PERIOD], "DrunkPeriod" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_DIZZY], "Dizzy" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_CONFUSION], "Confusion" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_CONFUSION_OFFSET], "ConfusionOffset" );
|
||||
@@ -230,9 +235,18 @@ void PlayerOptions::GetMods( vector<RString> &AddTo, bool bForceNoteSkin ) const
|
||||
AddPart( AddTo, m_fEffects[EFFECT_FLIP], "Flip" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_INVERT], "Invert" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_TORNADO], "Tornado" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_TORNADO_PERIOD], "TornadoPeriod" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_TORNADO_OFFSET], "TornadoOffset" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_TIPSY], "Tipsy" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_TIPSY_SPEED], "TipsySpeed" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_TIPSY_OFFSET], "TipsyOffset" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_BUMPY], "Bumpy" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_BUMPY_OFFSET], "BumpyOffset" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_BUMPY_PERIOD], "BumpyPeriod" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_BEAT], "Beat" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_BEAT_OFFSET], "BeatOffset" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_BEAT_PERIOD], "BeatPeriod" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_BEAT_MULT], "BeatMult" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_XMODE], "XMode" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_TWIRL], "Twirl" );
|
||||
AddPart( AddTo, m_fEffects[EFFECT_ROLL], "Roll" );
|
||||
@@ -484,25 +498,63 @@ bool PlayerOptions::FromOneModString( const RString &sOneMod, RString &sErrorOut
|
||||
else if( sBit == "normal-drain" ) { m_DrainType= DrainType_Normal; }
|
||||
else if( sBit == "boost" ) SET_FLOAT( fAccels[ACCEL_BOOST] )
|
||||
else if( sBit == "brake" || sBit == "land" ) SET_FLOAT( fAccels[ACCEL_BRAKE] )
|
||||
else if( sBit == "wave" ) SET_FLOAT( fAccels[ACCEL_WAVE] )
|
||||
else if( sBit == "expand" || sBit == "dwiwave" ) SET_FLOAT( fAccels[ACCEL_EXPAND] )
|
||||
else if( sBit.find("wave") != sBit.npos)
|
||||
{
|
||||
if( sBit == "wave" ) SET_FLOAT( fAccels[ACCEL_WAVE] )
|
||||
else if( sBit == "waveperiod" ) SET_FLOAT( fAccels[ACCEL_WAVE_PERIOD] )
|
||||
}
|
||||
else if( (sBit.find("expand") != sBit.npos) || (sBit.find("dwiwave") != sBit.npos) )
|
||||
{
|
||||
if( sBit == "expand" || sBit == "dwiwave" ) SET_FLOAT( fAccels[ACCEL_EXPAND] )
|
||||
else if( sBit == "expandperiod" ) SET_FLOAT( fAccels[ACCEL_EXPAND_PERIOD] )
|
||||
}
|
||||
else if( sBit == "boomerang" ) SET_FLOAT( fAccels[ACCEL_BOOMERANG] )
|
||||
else if( sBit == "drunk" ) SET_FLOAT( fEffects[EFFECT_DRUNK] )
|
||||
else if( sBit.find("drunk") != sBit.npos)
|
||||
{
|
||||
if( sBit == "drunk" ) SET_FLOAT( fEffects[EFFECT_DRUNK] )
|
||||
else if( sBit == "drunkspeed" ) SET_FLOAT( fEffects[EFFECT_DRUNK_SPEED] )
|
||||
else if( sBit == "drunkoffset" ) SET_FLOAT( fEffects[EFFECT_DRUNK_OFFSET] )
|
||||
else if( sBit == "drunkperiod" ) SET_FLOAT( fEffects[EFFECT_DRUNK_PERIOD] )
|
||||
}
|
||||
else if( sBit == "dizzy" ) SET_FLOAT( fEffects[EFFECT_DIZZY] )
|
||||
else if( sBit == "confusion" ) SET_FLOAT( fEffects[EFFECT_CONFUSION] )
|
||||
else if( sBit == "confusionoffset" ) SET_FLOAT( fEffects[EFFECT_CONFUSION_OFFSET] )
|
||||
else if( sBit == "confusionx" ) SET_FLOAT( fEffects[EFFECT_CONFUSION_X] )
|
||||
else if( sBit == "confusionxoffset" ) SET_FLOAT( fEffects[EFFECT_CONFUSION_X_OFFSET] )
|
||||
else if( sBit == "confusiony" ) SET_FLOAT( fEffects[EFFECT_CONFUSION_Y] )
|
||||
else if( sBit == "confusionyoffset" ) SET_FLOAT( fEffects[EFFECT_CONFUSION_Y_OFFSET] )
|
||||
else if( sBit.find("confusion") != sBit.npos)
|
||||
{
|
||||
if( sBit == "confusion" ) SET_FLOAT( fEffects[EFFECT_CONFUSION] )
|
||||
else if( sBit == "confusionoffset" ) SET_FLOAT( fEffects[EFFECT_CONFUSION_OFFSET] )
|
||||
else if( sBit == "confusionx" ) SET_FLOAT( fEffects[EFFECT_CONFUSION_X] )
|
||||
else if( sBit == "confusionxoffset" ) SET_FLOAT( fEffects[EFFECT_CONFUSION_X_OFFSET] )
|
||||
else if( sBit == "confusiony" ) SET_FLOAT( fEffects[EFFECT_CONFUSION_Y] )
|
||||
else if( sBit == "confusionyoffset" ) SET_FLOAT( fEffects[EFFECT_CONFUSION_Y_OFFSET] )
|
||||
}
|
||||
else if( sBit == "mini" ) SET_FLOAT( fEffects[EFFECT_MINI] )
|
||||
else if( sBit == "tiny" ) SET_FLOAT( fEffects[EFFECT_TINY] )
|
||||
else if( sBit == "flip" ) SET_FLOAT( fEffects[EFFECT_FLIP] )
|
||||
else if( sBit == "invert" ) SET_FLOAT( fEffects[EFFECT_INVERT] )
|
||||
else if( sBit == "tornado" ) SET_FLOAT( fEffects[EFFECT_TORNADO] )
|
||||
else if( sBit == "tipsy" ) SET_FLOAT( fEffects[EFFECT_TIPSY] )
|
||||
else if( sBit == "bumpy" ) SET_FLOAT( fEffects[EFFECT_BUMPY] )
|
||||
else if( sBit == "beat" ) SET_FLOAT( fEffects[EFFECT_BEAT] )
|
||||
else if( sBit.find("tornado") != sBit.npos)
|
||||
{
|
||||
if( sBit == "tornado" ) SET_FLOAT( fEffects[EFFECT_TORNADO] )
|
||||
else if( sBit == "tornadoperiod" ) SET_FLOAT( fEffects[EFFECT_TORNADO_PERIOD] )
|
||||
else if( sBit == "tornadooffset" ) SET_FLOAT( fEffects[EFFECT_TORNADO_OFFSET] )
|
||||
}
|
||||
else if( sBit.find("tipsy") != sBit.npos)
|
||||
{
|
||||
if( sBit == "tipsy" ) SET_FLOAT( fEffects[EFFECT_TIPSY] )
|
||||
else if( sBit == "tipsyspeed" ) SET_FLOAT( fEffects[EFFECT_TIPSY_SPEED] )
|
||||
else if( sBit == "tipsyoffset" ) SET_FLOAT( fEffects[EFFECT_TIPSY_OFFSET] )
|
||||
}
|
||||
else if( sBit.find("bumpy") != sBit.npos)
|
||||
{
|
||||
if( sBit == "bumpy" ) SET_FLOAT( fEffects[EFFECT_BUMPY] )
|
||||
else if( sBit == "bumpyoffset" ) SET_FLOAT( fEffects[EFFECT_BUMPY_OFFSET] )
|
||||
else if( sBit == "bumpyperiod" ) SET_FLOAT( fEffects[EFFECT_BUMPY_PERIOD] )
|
||||
}
|
||||
else if( sBit.find("beat") != sBit.npos)
|
||||
{
|
||||
if( sBit == "beat" ) SET_FLOAT( fEffects[EFFECT_BEAT] )
|
||||
else if( sBit == "beatoffset" ) SET_FLOAT( fEffects[EFFECT_BEAT_OFFSET] )
|
||||
else if( sBit == "beatperiod" ) SET_FLOAT( fEffects[EFFECT_BEAT_PERIOD] )
|
||||
else if( sBit == "beatmult" ) SET_FLOAT( fEffects[EFFECT_BEAT_MULT] )
|
||||
}
|
||||
else if( sBit == "xmode" ) SET_FLOAT( fEffects[EFFECT_XMODE] )
|
||||
else if( sBit == "twirl" ) SET_FLOAT( fEffects[EFFECT_TWIRL] )
|
||||
else if( sBit == "roll" ) SET_FLOAT( fEffects[EFFECT_ROLL] )
|
||||
@@ -1154,9 +1206,14 @@ public:
|
||||
FLOAT_INTERFACE(Boost, Accels[PlayerOptions::ACCEL_BOOST], true);
|
||||
FLOAT_INTERFACE(Brake, Accels[PlayerOptions::ACCEL_BRAKE], true);
|
||||
FLOAT_INTERFACE(Wave, Accels[PlayerOptions::ACCEL_WAVE], true);
|
||||
FLOAT_INTERFACE(WavePeriod, Accels[PlayerOptions::ACCEL_WAVE_PERIOD], true);
|
||||
FLOAT_INTERFACE(Expand, Accels[PlayerOptions::ACCEL_EXPAND], true);
|
||||
FLOAT_INTERFACE(ExpandPeriod, Accels[PlayerOptions::ACCEL_EXPAND_PERIOD], true);
|
||||
FLOAT_INTERFACE(Boomerang, Accels[PlayerOptions::ACCEL_BOOMERANG], true);
|
||||
FLOAT_INTERFACE(Drunk, Effects[PlayerOptions::EFFECT_DRUNK], true);
|
||||
FLOAT_INTERFACE(DrunkSpeed, Effects[PlayerOptions::EFFECT_DRUNK_SPEED], true);
|
||||
FLOAT_INTERFACE(DrunkOffset, Effects[PlayerOptions::EFFECT_DRUNK_OFFSET], true);
|
||||
FLOAT_INTERFACE(DrunkPeriod, Effects[PlayerOptions::EFFECT_DRUNK_PERIOD], true);
|
||||
FLOAT_INTERFACE(Dizzy, Effects[PlayerOptions::EFFECT_DIZZY], true);
|
||||
FLOAT_INTERFACE(Confusion, Effects[PlayerOptions::EFFECT_CONFUSION], true);
|
||||
FLOAT_INTERFACE(ConfusionOffset, Effects[PlayerOptions::EFFECT_CONFUSION_OFFSET], true);
|
||||
@@ -1169,9 +1226,18 @@ public:
|
||||
FLOAT_INTERFACE(Flip, Effects[PlayerOptions::EFFECT_FLIP], true);
|
||||
FLOAT_INTERFACE(Invert, Effects[PlayerOptions::EFFECT_INVERT], true);
|
||||
FLOAT_INTERFACE(Tornado, Effects[PlayerOptions::EFFECT_TORNADO], true);
|
||||
FLOAT_INTERFACE(TornadoPeriod, Effects[PlayerOptions::EFFECT_TORNADO_PERIOD], true);
|
||||
FLOAT_INTERFACE(TornadoOffset, Effects[PlayerOptions::EFFECT_TORNADO_OFFSET], true);
|
||||
FLOAT_INTERFACE(Tipsy, Effects[PlayerOptions::EFFECT_TIPSY], true);
|
||||
FLOAT_INTERFACE(TipsySpeed, Effects[PlayerOptions::EFFECT_TIPSY_SPEED], true);
|
||||
FLOAT_INTERFACE(TipsyOffset, Effects[PlayerOptions::EFFECT_TIPSY_OFFSET], true);
|
||||
FLOAT_INTERFACE(Bumpy, Effects[PlayerOptions::EFFECT_BUMPY], true);
|
||||
FLOAT_INTERFACE(BumpyOffset, Effects[PlayerOptions::EFFECT_BUMPY_OFFSET], true);
|
||||
FLOAT_INTERFACE(BumpyPeriod, Effects[PlayerOptions::EFFECT_BUMPY_PERIOD], true);
|
||||
FLOAT_INTERFACE(Beat, Effects[PlayerOptions::EFFECT_BEAT], true);
|
||||
FLOAT_INTERFACE(BeatOffset, Effects[PlayerOptions::EFFECT_BEAT_OFFSET], true);
|
||||
FLOAT_INTERFACE(BeatPeriod, Effects[PlayerOptions::EFFECT_BEAT_PERIOD], true);
|
||||
FLOAT_INTERFACE(BeatMult, Effects[PlayerOptions::EFFECT_BEAT_MULT], true);
|
||||
FLOAT_INTERFACE(Xmode, Effects[PlayerOptions::EFFECT_XMODE], true);
|
||||
FLOAT_INTERFACE(Twirl, Effects[PlayerOptions::EFFECT_TWIRL], true);
|
||||
FLOAT_INTERFACE(Roll, Effects[PlayerOptions::EFFECT_ROLL], true);
|
||||
@@ -1550,9 +1616,14 @@ public:
|
||||
ADD_METHOD(Boost);
|
||||
ADD_METHOD(Brake);
|
||||
ADD_METHOD(Wave);
|
||||
ADD_METHOD(WavePeriod);
|
||||
ADD_METHOD(Expand);
|
||||
ADD_METHOD(ExpandPeriod);
|
||||
ADD_METHOD(Boomerang);
|
||||
ADD_METHOD(Drunk);
|
||||
ADD_METHOD(DrunkSpeed);
|
||||
ADD_METHOD(DrunkOffset);
|
||||
ADD_METHOD(DrunkPeriod);
|
||||
ADD_METHOD(Dizzy);
|
||||
ADD_METHOD(Confusion);
|
||||
ADD_METHOD(ConfusionOffset);
|
||||
@@ -1565,9 +1636,18 @@ public:
|
||||
ADD_METHOD(Flip);
|
||||
ADD_METHOD(Invert);
|
||||
ADD_METHOD(Tornado);
|
||||
ADD_METHOD(TornadoPeriod);
|
||||
ADD_METHOD(TornadoOffset);
|
||||
ADD_METHOD(Tipsy);
|
||||
ADD_METHOD(TipsySpeed);
|
||||
ADD_METHOD(TipsyOffset);
|
||||
ADD_METHOD(Bumpy);
|
||||
ADD_METHOD(BumpyOffset);
|
||||
ADD_METHOD(BumpyPeriod);
|
||||
ADD_METHOD(Beat);
|
||||
ADD_METHOD(BeatOffset);
|
||||
ADD_METHOD(BeatPeriod);
|
||||
ADD_METHOD(BeatMult);
|
||||
ADD_METHOD(Xmode);
|
||||
ADD_METHOD(Twirl);
|
||||
ADD_METHOD(Roll);
|
||||
|
||||
@@ -106,12 +106,17 @@ public:
|
||||
ACCEL_BOOST, /**< The arrows start slow, then zoom towards the targets. */
|
||||
ACCEL_BRAKE, /**< The arrows start fast, then slow down as they approach the targets. */
|
||||
ACCEL_WAVE,
|
||||
ACCEL_WAVE_PERIOD,
|
||||
ACCEL_EXPAND,
|
||||
ACCEL_EXPAND_PERIOD,
|
||||
ACCEL_BOOMERANG, /**< The arrows start from above the targets, go down, then come back up. */
|
||||
NUM_ACCELS
|
||||
};
|
||||
enum Effect {
|
||||
EFFECT_DRUNK,
|
||||
EFFECT_DRUNK_SPEED,
|
||||
EFFECT_DRUNK_OFFSET,
|
||||
EFFECT_DRUNK_PERIOD,
|
||||
EFFECT_DIZZY,
|
||||
EFFECT_CONFUSION,
|
||||
EFFECT_CONFUSION_OFFSET,
|
||||
@@ -124,9 +129,18 @@ public:
|
||||
EFFECT_FLIP,
|
||||
EFFECT_INVERT,
|
||||
EFFECT_TORNADO,
|
||||
EFFECT_TORNADO_PERIOD,
|
||||
EFFECT_TORNADO_OFFSET,
|
||||
EFFECT_TIPSY,
|
||||
EFFECT_TIPSY_SPEED,
|
||||
EFFECT_TIPSY_OFFSET,
|
||||
EFFECT_BUMPY,
|
||||
EFFECT_BUMPY_OFFSET,
|
||||
EFFECT_BUMPY_PERIOD,
|
||||
EFFECT_BEAT,
|
||||
EFFECT_BEAT_OFFSET,
|
||||
EFFECT_BEAT_PERIOD,
|
||||
EFFECT_BEAT_MULT,
|
||||
EFFECT_XMODE,
|
||||
EFFECT_TWIRL,
|
||||
EFFECT_ROLL,
|
||||
|
||||
Reference in New Issue
Block a user