@@ -260,7 +260,7 @@ namespace CSMWorld
260260 // blank row
261261 ESM::IndexedENAMstruct effect;
262262 effect.mIndex = position;
263- effect.mData .mEffectID = 0 ;
263+ effect.mData .mEffectID = ESM::MagicEffect::WaterBreathing ;
264264 effect.mData .mSkill = -1 ;
265265 effect.mData .mAttribute = -1 ;
266266 effect.mData .mRange = 0 ;
@@ -319,34 +319,28 @@ namespace CSMWorld
319319 switch (subColIndex)
320320 {
321321 case 0 :
322- return effect.mEffectID ;
322+ return ESM::MagicEffect::refIdToIndex ( effect.mEffectID ) ;
323323 case 1 :
324324 {
325- switch (effect.mEffectID )
326- {
327- case ESM::MagicEffect::DrainSkill:
328- case ESM::MagicEffect::DamageSkill:
329- case ESM::MagicEffect::RestoreSkill:
330- case ESM::MagicEffect::FortifySkill:
331- case ESM::MagicEffect::AbsorbSkill:
332- return effect.mSkill ;
333- default :
334- return QVariant ();
335- }
325+ if (effect.mEffectID == ESM::MagicEffect::DrainSkill
326+ || effect.mEffectID == ESM::MagicEffect::DamageSkill
327+ || effect.mEffectID == ESM::MagicEffect::RestoreSkill
328+ || effect.mEffectID == ESM::MagicEffect::FortifySkill
329+ || effect.mEffectID == ESM::MagicEffect::AbsorbSkill)
330+ return effect.mSkill ;
331+ else
332+ return QVariant ();
336333 }
337334 case 2 :
338335 {
339- switch (effect.mEffectID )
340- {
341- case ESM::MagicEffect::DrainAttribute:
342- case ESM::MagicEffect::DamageAttribute:
343- case ESM::MagicEffect::RestoreAttribute:
344- case ESM::MagicEffect::FortifyAttribute:
345- case ESM::MagicEffect::AbsorbAttribute:
346- return effect.mAttribute ;
347- default :
348- return QVariant ();
349- }
336+ if (effect.mEffectID == ESM::MagicEffect::DrainAttribute
337+ || effect.mEffectID == ESM::MagicEffect::DamageAttribute
338+ || effect.mEffectID == ESM::MagicEffect::RestoreAttribute
339+ || effect.mEffectID == ESM::MagicEffect::FortifyAttribute
340+ || effect.mEffectID == ESM::MagicEffect::AbsorbAttribute)
341+ return effect.mAttribute ;
342+ else
343+ return QVariant ();
350344 }
351345 case 3 :
352346 return effect.mRange ;
@@ -377,26 +371,23 @@ namespace CSMWorld
377371 {
378372 case 0 :
379373 {
380- effect.mEffectID = static_cast <short >(value.toInt ());
381- switch (effect.mEffectID )
374+ effect.mEffectID = ESM::MagicEffect::indexToRefId (value.toInt ());
375+ if (effect.mEffectID == ESM::MagicEffect::DrainSkill
376+ || effect.mEffectID == ESM::MagicEffect::DamageSkill
377+ || effect.mEffectID == ESM::MagicEffect::RestoreSkill
378+ || effect.mEffectID == ESM::MagicEffect::FortifySkill
379+ || effect.mEffectID == ESM::MagicEffect::AbsorbSkill)
380+ effect.mAttribute = -1 ;
381+ else if (effect.mEffectID == ESM::MagicEffect::DrainAttribute
382+ || effect.mEffectID == ESM::MagicEffect::DamageAttribute
383+ || effect.mEffectID == ESM::MagicEffect::RestoreAttribute
384+ || effect.mEffectID == ESM::MagicEffect::FortifyAttribute
385+ || effect.mEffectID == ESM::MagicEffect::AbsorbAttribute)
386+ effect.mSkill = -1 ;
387+ else
382388 {
383- case ESM::MagicEffect::DrainSkill:
384- case ESM::MagicEffect::DamageSkill:
385- case ESM::MagicEffect::RestoreSkill:
386- case ESM::MagicEffect::FortifySkill:
387- case ESM::MagicEffect::AbsorbSkill:
388- effect.mAttribute = -1 ;
389- break ;
390- case ESM::MagicEffect::DrainAttribute:
391- case ESM::MagicEffect::DamageAttribute:
392- case ESM::MagicEffect::RestoreAttribute:
393- case ESM::MagicEffect::FortifyAttribute:
394- case ESM::MagicEffect::AbsorbAttribute:
395- effect.mSkill = -1 ;
396- break ;
397- default :
398- effect.mSkill = -1 ;
399- effect.mAttribute = -1 ;
389+ effect.mSkill = -1 ;
390+ effect.mAttribute = -1 ;
400391 }
401392 break ;
402393 }
0 commit comments