Fixed boost & other effects
moving boost out of the effects line had caused an off-by-one in the effects, plus flip & tornado weren't setting their flags. Also, there was some b0rkage with the menus not properly treating po.m_EffectType as a bitmask. If more & more options get moved out of the effects line, care needs to be taken to prevent special case implosion...
This commit is contained in:
@@ -86,15 +86,18 @@ void ScreenPlayerOptions::ImportOptions()
|
||||
else if( po.m_fArrowScrollSpeed == 8.0f ) m_iSelectedOption[p][PO_SPEED] = 8;
|
||||
else m_iSelectedOption[p][PO_SPEED] = 2;
|
||||
|
||||
switch(po.m_EffectType)
|
||||
m_iSelectedOption[p][PO_BOOST] = po.m_EffectType & PlayerOptions::EFFECT_BOOST;
|
||||
|
||||
switch(po.m_EffectType & ~PlayerOptions::EFFECT_BOOST)
|
||||
{
|
||||
case PlayerOptions::EFFECT_NONE: m_iSelectedOption[p][PO_EFFECT]=0; break;
|
||||
case PlayerOptions::EFFECT_BOOST: m_iSelectedOption[p][PO_EFFECT]=1; break;
|
||||
case PlayerOptions::EFFECT_WAVE: m_iSelectedOption[p][PO_EFFECT]=2; break;
|
||||
case PlayerOptions::EFFECT_DRUNK: m_iSelectedOption[p][PO_EFFECT]=3; break;
|
||||
case PlayerOptions::EFFECT_DIZZY: m_iSelectedOption[p][PO_EFFECT]=4; break;
|
||||
case PlayerOptions::EFFECT_SPACE: m_iSelectedOption[p][PO_EFFECT]=5; break;
|
||||
case PlayerOptions::EFFECT_MINI: m_iSelectedOption[p][PO_EFFECT]=6; break;
|
||||
case PlayerOptions::EFFECT_WAVE: m_iSelectedOption[p][PO_EFFECT]=1; break;
|
||||
case PlayerOptions::EFFECT_DRUNK: m_iSelectedOption[p][PO_EFFECT]=2; break;
|
||||
case PlayerOptions::EFFECT_DIZZY: m_iSelectedOption[p][PO_EFFECT]=3; break;
|
||||
case PlayerOptions::EFFECT_SPACE: m_iSelectedOption[p][PO_EFFECT]=4; break;
|
||||
case PlayerOptions::EFFECT_MINI: m_iSelectedOption[p][PO_EFFECT]=5; break;
|
||||
case PlayerOptions::EFFECT_FLIP: m_iSelectedOption[p][PO_EFFECT]=6; break;
|
||||
case PlayerOptions::EFFECT_TORNADO: m_iSelectedOption[p][PO_EFFECT]=7; break;
|
||||
default: ; break;
|
||||
}
|
||||
|
||||
@@ -127,15 +130,20 @@ void ScreenPlayerOptions::ExportOptions()
|
||||
case 8: po.m_fArrowScrollSpeed = 8.0f; break;
|
||||
}
|
||||
|
||||
po.m_EffectType = (m_iSelectedOption[p][PO_BOOST] == 1)?
|
||||
PlayerOptions::EFFECT_BOOST:
|
||||
PlayerOptions::EFFECT_NONE;
|
||||
|
||||
switch(m_iSelectedOption[p][PO_EFFECT])
|
||||
{
|
||||
case 0: po.m_EffectType = PlayerOptions::EFFECT_NONE; break;
|
||||
case 1: po.m_EffectType = PlayerOptions::EFFECT_BOOST; break;
|
||||
case 2: po.m_EffectType = PlayerOptions::EFFECT_WAVE; break;
|
||||
case 3: po.m_EffectType = PlayerOptions::EFFECT_DRUNK; break;
|
||||
case 4: po.m_EffectType = PlayerOptions::EFFECT_DIZZY; break;
|
||||
case 5: po.m_EffectType = PlayerOptions::EFFECT_SPACE; break;
|
||||
case 6: po.m_EffectType = PlayerOptions::EFFECT_MINI; break;
|
||||
//case 0: po.m_EffectType |= PlayerOptions::EFFECT_NONE; break;
|
||||
case 1: po.m_EffectType |= PlayerOptions::EFFECT_WAVE; break;
|
||||
case 2: po.m_EffectType |= PlayerOptions::EFFECT_DRUNK; break;
|
||||
case 3: po.m_EffectType |= PlayerOptions::EFFECT_DIZZY; break;
|
||||
case 4: po.m_EffectType |= PlayerOptions::EFFECT_SPACE; break;
|
||||
case 5: po.m_EffectType |= PlayerOptions::EFFECT_MINI; break;
|
||||
case 6: po.m_EffectType |= PlayerOptions::EFFECT_FLIP; break;
|
||||
case 7: po.m_EffectType |= PlayerOptions::EFFECT_TORNADO; break;
|
||||
}
|
||||
|
||||
po.m_AppearanceType = (PlayerOptions::AppearanceType)m_iSelectedOption[p][PO_APPEAR];
|
||||
|
||||
Reference in New Issue
Block a user