Exemple #1
0
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();
}