public override Animation GetAnimation(int animation, int phase) { switch (GraphicDataUsage) { case DataUsage.ForceAmiga: if (!amigaGraphicsOk) { throw new ExceptionFreeserf(ErrorSystemType.Data, "Amiga graphic data not available."); } return(amiga.GetAnimation(animation, phase)); case DataUsage.ForceDos: if (!dosOk) { throw new ExceptionFreeserf(ErrorSystemType.Data, "DOS graphic data not available."); } return(dos.GetAnimation(animation, phase)); case DataUsage.PreferAmiga: if (amigaGraphicsOk) { return(amiga.GetAnimation(animation, phase)); } else { return(dos.GetAnimation(animation, phase)); } case DataUsage.PreferDos: default: if (dosOk) { return(dos.GetAnimation(animation, phase)); } else { return(amiga.GetAnimation(animation, phase)); } } }