Don't have a big switch.
Instead, for each member of the Magic Spells, give them two or three arrays, like so:
def POISON 4
magic_spell_names[SPELLS]
magic_spell_damage[SPELLS]
magic_spell_element[SPELLS]
magic_spell_status[SPELLS]
Now this way, all you need is a Number ID, like 4--also POISON.
magic_spell_names[4] = "Poison"
magic_spell_damage[4] = 30 //maybe...
magic_spell_element[4] = "Poison" //or whatever element.
magic_spell_status[4] = POISON
void CastMagicSpell(int enemy_ID, int spell_ID)
CastMagicSpell(enemy_0, POISON)
Simple, easy way to do it. Then, each round of your battle, check a variable like:
if (player_status[0] == POISON)
{
player_HP[0]--;
}
Something like that. That's how I'd look at it, anyway. Be creative!