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:
Jared Roberts
2002-09-11 05:30:49 +00:00
parent db53dc9923
commit e115f1919c
+22 -14
View File
@@ -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];