Put the new side setup dialog from Shadowmaster in full use.
This commit is contained in:
parent
b4ceb5f272
commit
0b7aeb2272
5 changed files with 53 additions and 19 deletions
|
@ -192,6 +192,7 @@ void context_manager::edit_side_dialog(int side)
|
|||
//t.support()
|
||||
|
||||
team::CONTROLLER controller = t.controller();
|
||||
int controller_num = 0;
|
||||
|
||||
std::string id = t.save_id();
|
||||
std::string name = t.name();
|
||||
|
@ -201,21 +202,24 @@ void context_manager::edit_side_dialog(int side)
|
|||
int village_gold = t.village_gold();
|
||||
int village_support = t.village_support();
|
||||
|
||||
bool no_leader = t.no_leader();
|
||||
bool hidden = t.hidden();
|
||||
bool share_view = t.share_view();
|
||||
bool share_maps = t.share_maps();
|
||||
bool fog = t.uses_fog();
|
||||
bool shroud = t.uses_shroud();
|
||||
|
||||
bool ok = gui2::teditor_edit_side::execute(id, name,
|
||||
gold, income,
|
||||
fog, share_view, shroud, share_maps, controller,
|
||||
bool ok = gui2::teditor_edit_side::execute(side +1, id, name,
|
||||
gold, income, village_gold, village_support,
|
||||
fog, share_view, shroud, share_maps,
|
||||
controller, controller_num,
|
||||
no_leader, hidden,
|
||||
gui_.video());
|
||||
|
||||
if (ok) {
|
||||
get_map_context().set_side_setup(side, id, name,
|
||||
gold, income, village_gold, village_support,
|
||||
fog, share_view, shroud, share_maps, controller, hidden);
|
||||
fog, share_view, shroud, share_maps, controller, hidden, no_leader);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -167,12 +167,13 @@ map_context::map_context(const config& game_config, const std::string& filename,
|
|||
void map_context::set_side_setup(int side, const std::string& id, const std::string& name,
|
||||
int gold, int income, int village_gold, int village_support,
|
||||
bool fog, bool share_view, bool shroud, bool share_maps,
|
||||
team::CONTROLLER controller, bool hidden)
|
||||
team::CONTROLLER controller, bool hidden, bool no_leader)
|
||||
{
|
||||
assert(teams_.size() > static_cast<u_int>(side));
|
||||
team& t = teams_[side];
|
||||
t.set_save_id(id);
|
||||
t.set_name(name);
|
||||
t.have_leader(!no_leader);
|
||||
t.change_controller(controller);
|
||||
t.set_gold(gold);
|
||||
t.set_base_income(income);
|
||||
|
@ -396,9 +397,10 @@ config map_context::to_config()
|
|||
side["hidden"] = t->hidden();
|
||||
|
||||
side["controller"] = t->controller_string();
|
||||
// TODO make this customizable via gui
|
||||
side["no_leader"] = "yes";
|
||||
side["allow_player"] = "yes";
|
||||
side["no_leader"] = t->no_leader();
|
||||
|
||||
// TODO
|
||||
// side["allow_player"] = "yes";
|
||||
|
||||
side["fog"] = t->uses_fog();
|
||||
side["share_view"] = t->share_view();
|
||||
|
|
|
@ -182,7 +182,7 @@ public:
|
|||
void set_side_setup(int side, const std::string& id, const std::string& name,
|
||||
int gold, int income, int village_gold, int village_support,
|
||||
bool fog, bool share_view, bool shroud, bool share_maps,
|
||||
team::CONTROLLER controller, bool hidden);
|
||||
team::CONTROLLER controller, bool hidden, bool no_leader);
|
||||
|
||||
/**
|
||||
* Getter for the labels reset flag. Set when the labels need to be refreshed.
|
||||
|
|
|
@ -49,28 +49,46 @@ namespace gui2 {
|
|||
|
||||
REGISTER_DIALOG(editor_edit_side)
|
||||
|
||||
teditor_edit_side::teditor_edit_side(std::string& id, std::string& name, int& gold, int& income,
|
||||
bool& fog, bool& share_view, bool& shroud, bool& share_maps, team::CONTROLLER& controller) :
|
||||
teditor_edit_side::teditor_edit_side(int side, std::string& id, std::string& name,
|
||||
int& gold, int& income, int& village_income, int& village_support,
|
||||
bool& fog, bool& share_view, bool& shroud, bool& share_maps,
|
||||
team::CONTROLLER& controller, int controller_num,
|
||||
bool& no_leader, bool& hidden) :
|
||||
controller_(controller)
|
||||
{
|
||||
std::stringstream side_stream;
|
||||
side_stream << side;
|
||||
register_label("side_number", true, side_stream.str(), true);
|
||||
|
||||
register_text("id", true, id, true);
|
||||
register_text("name", true, name, true);
|
||||
|
||||
register_integer("gold", true, gold);
|
||||
register_integer("income", true, income);
|
||||
|
||||
register_integer("village_income", true, village_income);
|
||||
register_integer("village_support", true, village_support);
|
||||
|
||||
register_integer("controller_number_player", true, controller_num);
|
||||
|
||||
register_bool("fog", true, fog);
|
||||
register_bool("share_view", true, share_view);
|
||||
|
||||
register_bool("shroud", true, shroud);
|
||||
register_bool("share_maps", true, share_maps);
|
||||
|
||||
register_bool("no_leader", true, no_leader);
|
||||
register_bool("hidden", true, hidden);
|
||||
|
||||
}
|
||||
|
||||
void teditor_edit_side::pre_show(CVideo& /*video*/, twindow& window)
|
||||
{
|
||||
register_controller_toggle(window, "by_human", team::HUMAN);
|
||||
register_controller_toggle(window, "by_ai", team::AI);
|
||||
register_controller_toggle(window, "by_null", team::EMPTY);
|
||||
register_controller_toggle(window, "human", team::HUMAN);
|
||||
register_controller_toggle(window, "human_ai", team::HUMAN_AI);
|
||||
register_controller_toggle(window, "ai", team::AI);
|
||||
register_controller_toggle(window, "null", team::EMPTY);
|
||||
register_controller_toggle(window, "number", team::CONTROLLER(-1));
|
||||
}
|
||||
|
||||
void teditor_edit_side::register_controller_toggle(twindow& window, const std::string& toggle_id, team::CONTROLLER value)
|
||||
|
|
|
@ -27,15 +27,25 @@ class teditor_edit_side : public tdialog
|
|||
{
|
||||
public:
|
||||
|
||||
teditor_edit_side(std::string& id, std::string& name, int& gold, int& income,
|
||||
bool& fog, bool& share_view, bool& shroud, bool& share_maps, team::CONTROLLER& controller);
|
||||
teditor_edit_side(int side, std::string& id, std::string& name,
|
||||
int& gold, int& income, int& village_income, int& village_support,
|
||||
bool& fog, bool& share_view, bool& shroud, bool& share_maps,
|
||||
team::CONTROLLER& controller, int controller_num,
|
||||
bool& no_leader, bool& hidden);
|
||||
|
||||
/** The execute function see @ref tdialog for more information. */
|
||||
static bool execute(std::string& id, std::string& name, int& gold, int& income,
|
||||
bool& fog, bool& share_view, bool& shroud, bool& share_maps, team::CONTROLLER& controller,
|
||||
static bool execute(int side, std::string& id, std::string& name,
|
||||
int& gold, int& income, int& village_income, int& village_support,
|
||||
bool& fog, bool& share_view, bool& shroud, bool& share_maps,
|
||||
team::CONTROLLER& controller, int controller_num,
|
||||
bool& no_leader, bool& hidden,
|
||||
CVideo& video)
|
||||
{
|
||||
return teditor_edit_side(id, name, gold, income, fog, share_view, shroud, share_maps, controller).show(video);
|
||||
return teditor_edit_side(side, id, name,
|
||||
gold, income, village_income, village_support,
|
||||
fog, share_view, shroud, share_maps,
|
||||
controller, controller_num,
|
||||
no_leader, hidden).show(video);
|
||||
}
|
||||
|
||||
private:
|
||||
|
|
Loading…
Add table
Reference in a new issue