public void loadChar(string path) { setBlankChar(); classes.Clear(); this.path = path; int bC; foreach (string line in File.ReadAllLines(path)) { string[] sLine = line.Split('>'); if (sLine.Length == 2) { switch (sLine[0]) { case "image": tryLoadImage(sLine[1]); break; case "imageBC": if (int.TryParse(sLine[1], out bC)) { imageBackColor = Color.FromArgb(bC); } else { setRandBackColor(); } break; case "name": name = sLine[1]; break; case "subtitle": subtitle = sLine[1]; break; case "notes": notes.Add(sLine[1]); break; case "race": race = sLine[1]; break; case "size": size = sLine[1]; break; case "gender": gender = sLine[1]; break; case "alignment": alignment = sLine[1]; break; case "color": { if (int.TryParse(sLine[1], out bC)) { charColor = Color.FromArgb(bC); } else { charColor = Color.ForestGreen; } break; } case "strength": { strength.fromString(sLine[1]); break; } case "dexterity": { dexterity.fromString(sLine[1]); break; } case "constitution": { constitution.fromString(sLine[1]); break; } case "intelligence": { intelligence.fromString(sLine[1]); break; } case "wisdom": { wisdom.fromString(sLine[1]); break; } case "charisma": { charisma.fromString(sLine[1]); break; } case "class": { Klass k = new Klass(); k.fromString(sLine[1]); classes.Add(k); break; } case "skill": { Skill s = new Skill(); s.fromString(sLine[1]); skills.Add(s); break; } case "level": { if (!int.TryParse(sLine[1], out level)) { level = 0; } break; } case "exp": { if (!int.TryParse(sLine[1], out exp)) { exp = 0; } break; } case "expToAdvance": { if (!int.TryParse(sLine[1], out expToAdvance)) { expToAdvance = 0; } break; } case "hp": { if (!int.TryParse(sLine[1], out hp)) { hp = 0; } break; } case "maxHP": { if (!int.TryParse(sLine[1], out maxHP)) { maxHP = 0; } break; } case "hpHidden": { if (!bool.TryParse(sLine[1], out hpHidden)) { hpHidden = false; } break; } case "fortitude": { if (!int.TryParse(sLine[1], out fortitude)) { fortitude = 0; } break; } case "reflex": { if (!int.TryParse(sLine[1], out reflex)) { reflex = 0; } break; } case "will": { if (!int.TryParse(sLine[1], out will)) { will = 0; } break; } case "bab": { if (!int.TryParse(sLine[1], out bab)) { bab = 0; } break; } case "melee": { if (!int.TryParse(sLine[1], out melee)) { melee = 0; } break; } case "ranged": { if (!int.TryParse(sLine[1], out ranged)) { ranged = 0; } break; } case "ac": { if (!int.TryParse(sLine[1], out ac)) { ac = 0; } break; } case "ff": { if (!int.TryParse(sLine[1], out flatFooted)) { flatFooted = 0; } break; } case "touch": { if (!int.TryParse(sLine[1], out touch)) { touch = 0; } break; } case "initiative": { if (!int.TryParse(sLine[1], out initiative)) { initiative = 0; } break; } case "speed": { if (!int.TryParse(sLine[1], out speed)) { speed = 0; } break; } case "item": { Item i = new Item(); i.fromString(sLine[1]); inv.Add(i); break; } case "weapon": { Weapon w = new Weapon(); w.fromString(sLine[1]); weapons.Add(w); break; } case "armor": { Armor a = new Armor(); a.fromString(sLine[1]); armor.Add(a); break; } case "spell": { Spell s = new Spell(); s.fromString(sLine[1]); spellbook.Add(s); break; } case "spellsLeft": setSpellsLeft(sLine[1]); break; } } } setSkillMods(); }