void Window_BattleCommand::SetActor(int _actor_id) {
	actor_id = (Player::IsRPG2k()) ? 0 : _actor_id;
	commands.clear();

	if (actor_id == 0) {
		commands.push_back(!Data::terms.command_attack.empty() ? Data::terms.command_attack : "Attack");
		commands.push_back(!Data::terms.command_defend.empty() ? Data::terms.command_defend : "Defend");
		commands.push_back(!Data::terms.command_item.empty() ? Data::terms.command_item : "Item");
		commands.push_back(!Data::terms.command_skill.empty() ? Data::terms.command_skill : "Skill");
	}
	else {
		Game_Actor* actor = Game_Actors::GetActor(actor_id);
		const std::vector<uint32_t>& bcmds = actor->GetBattleCommands();
		std::vector<uint32_t>::const_iterator it;
		for (it = bcmds.begin(); it != bcmds.end(); ++it) {
			uint32_t bcmd = *it;
			if (bcmd <= 0 || bcmd > Data::battlecommands.commands.size())
				break;
			const RPG::BattleCommand& command = Data::battlecommands.commands[bcmd - 1];
			commands.push_back(command.name);
		}
	}

	disabled.resize(commands.size());
	Refresh();
}
Example #2
0
void Scene_Battle_Rpg2k3::CreateBattleCommandWindow() {
	std::vector<std::string> commands;
	std::vector<int> disabled_items;

	Game_Actor* actor;

	if (!active_actor && Main_Data::game_party->GetBattlerCount() > 0) {
		actor = &(*Main_Data::game_party)[0];
	}
	else {
		actor = active_actor;
	}

	if (actor) {
		const std::vector<uint32_t>& bcmds = actor->GetBattleCommands();
		std::vector<uint32_t>::const_iterator it;
		int i = 0;
		for (it = bcmds.begin(); it != bcmds.end(); ++it) {
			uint32_t bcmd = *it;
			if (bcmd <= 0 || bcmd > Data::battlecommands.commands.size())
				break;
			const RPG::BattleCommand& command = Data::battlecommands.commands[bcmd - 1];
			commands.push_back(command.name);

			if (!Game_Battle::IsEscapeAllowed() && command.type == RPG::BattleCommand::Type_escape) {
				disabled_items.push_back(i);
			}
			++i;
		}
	}

	command_window.reset(new Window_Command(commands, 76));

	for (std::vector<int>::iterator it = disabled_items.begin(); it != disabled_items.end(); ++it) {
		command_window->DisableItem(*it);
	}

	command_window->SetHeight(80);
	if (Data::battlecommands.battle_type == RPG::BattleCommands::BattleType_gauge) {
		command_window->SetX(0);
		command_window->SetY(SCREEN_TARGET_HEIGHT / 2 - 80 / 2);
	}
	else {
		command_window->SetX(SCREEN_TARGET_WIDTH - 76);
		command_window->SetY(SCREEN_TARGET_HEIGHT - 80);
	}

	if (Data::battlecommands.battle_type != RPG::BattleCommands::BattleType_traditional) {
		int transp = Data::battlecommands.transparency == RPG::BattleCommands::Transparency_transparent ? 128 : 255;
		command_window->SetBackOpacity(transp);
	}
}
int Window_BattleCommand::GetSkillSubset() {
	if (actor_id == 0)
		return RPG::Skill::Type_normal;

	Game_Actor* actor = Game_Actors::GetActor(actor_id);
	const std::vector<uint32_t>& bcmds = actor->GetBattleCommands();
	int bcmd = bcmds[index];

	int idx = 4;
	for (int i = 0; i < bcmd - 1; i++) {
		const RPG::BattleCommand& command = Data::battlecommands.commands[i];
		if (command.type == RPG::BattleCommand::Type_subskill)
			idx++;
	}

	return idx;
}
RPG::BattleCommand Window_BattleCommand::GetCommand() {
	if (actor_id > 0) {
		Game_Actor* actor = Game_Actors::GetActor(actor_id);
		return Data::battlecommands.commands[actor->GetBattleCommands()[index] - 1];
	}

	RPG::BattleCommand command;
	static const int types[] = {
		RPG::BattleCommand::Type_attack,
		RPG::BattleCommand::Type_defense,
		RPG::BattleCommand::Type_item,
		RPG::BattleCommand::Type_special
	};

	command.ID = index + 1;
	command.name = commands[index];
	command.type = types[index];
	return command;
}
Example #5
0
void Window_BattleCommand::SetActor(int _actor_id) {
	actor_id = (Player::IsRPG2k()) ? 0 : _actor_id;
	commands.clear();

	if (actor_id == 0) {
		commands.push_back(!Data::terms.command_attack.empty() ? Data::terms.command_attack : "Attack");
		commands.push_back(!Data::terms.command_defend.empty() ? Data::terms.command_defend : "Defend");
		commands.push_back(!Data::terms.command_item.empty() ? Data::terms.command_item : "Item");
		commands.push_back(!Data::terms.command_skill.empty() ? Data::terms.command_skill : "Skill");
	}
	else {
		Game_Actor* actor = Game_Actors::GetActor(actor_id);
		const std::vector<const RPG::BattleCommand*> bcmds = actor->GetBattleCommands();
		for (const RPG::BattleCommand* command : bcmds) {
			commands.push_back(command->name);
		}
	}

	disabled.resize(commands.size());
	Refresh();
}