void Game_Actor::SetClass(int _class_id) { if (_class_id != 0) { const RPG::Class* cls = ReaderUtil::GetElement(Data::classes, _class_id); if (!cls) { Output::Warning("Actor %d: Can't change to invalid class %d", GetId(), _class_id); return; } } GetData().class_id = _class_id; GetData().changed_battle_commands = true; // Any change counts as a battle commands change. // The class settings are not applied when the actor has a class on startup // but only when the "Change Class" event command is used. if (_class_id > 0) { GetData().super_guard = GetClass()->super_guard; GetData().lock_equipment = GetClass()->lock_equipment; GetData().two_weapon = GetClass()->two_weapon; GetData().auto_battle = GetClass()->auto_battle; GetData().battler_animation = GetClass()->battler_animation; GetData().battle_commands = GetClass()->battle_commands; } else { GetData().super_guard = GetActor().super_guard; GetData().lock_equipment = GetActor().lock_equipment; GetData().two_weapon = GetActor().two_weapon; GetData().auto_battle = GetActor().auto_battle; GetData().battler_animation = 0; GetData().battle_commands = GetActor().battle_commands; } MakeExpList(); // Set EXP to at least minimum value if (GetExp() < GetBaseExp()) { SetExp(GetBaseExp()); } }
void Game_Actor::SetClass(int _class_id) { data.class_id = _class_id; MakeExpList(); }
void Game_Actor::Setup() { MakeExpList(); }