Author: silene
Date: Sun May 17 22:30:07 2009
New Revision: 35714
URL: http://svn.gna.org/viewcvs/wesnoth?rev=35714&view=rev
Log:
Merged find_leader and team_leader into unit_map::find_leader.
Modified:
trunk/src/actions.cpp
trunk/src/actions.hpp
trunk/src/ai/ai.cpp
trunk/src/ai/ai_actions.cpp
trunk/src/ai/ai_move.cpp
trunk/src/ai/ai_village.cpp
trunk/src/ai/formula_ai.cpp
trunk/src/game_display.cpp
trunk/src/menu_events.cpp
trunk/src/menu_events.hpp
trunk/src/play_controller.cpp
trunk/src/playturn.cpp
trunk/src/unit.cpp
trunk/src/unit.hpp
trunk/src/unit_map.cpp
trunk/src/unit_map.hpp
Modified: trunk/src/actions.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/actions.cpp?rev=35714&r1=35713&r2=35714&view=diff
==============================================================================
--- trunk/src/actions.cpp (original)
+++ trunk/src/actions.cpp Sun May 17 22:30:07 2009
@@ -1622,7 +1622,7 @@
return false;
}
- const bool has_leader = find_leader(units,int(team_num+1)) !=
units.end();
+ const bool has_leader = units.find_leader(team_num + 1) != units.end();
bool grants_timebonus = false;
// We strip the village off all other sides, unless it is held by an
ally
@@ -1652,26 +1652,6 @@
}
return false;
-}
-
-unit_map::iterator find_leader(unit_map& units, int side)
-{
- for(unit_map::iterator i = units.begin(); i != units.end(); ++i) {
- if(static_cast<int>(i->second.side()) == side &&
i->second.can_recruit())
- return i;
- }
-
- return units.end();
-}
-
-unit_map::const_iterator find_leader(const unit_map& units, int side)
-{
- for(unit_map::const_iterator i = units.begin(); i != units.end(); ++i) {
- if(static_cast<int>(i->second.side()) == side &&
i->second.can_recruit())
- return i;
- }
-
- return units.end();
}
// Simple algorithm: no maximum number of patients per healer.
Modified: trunk/src/actions.hpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/actions.hpp?rev=35714&r1=35713&r2=35714&view=diff
==============================================================================
--- trunk/src/actions.hpp (original)
+++ trunk/src/actions.hpp Sun May 17 22:30:07 2009
@@ -242,14 +242,6 @@
const unit_map& units, int *time_bonus = NULL);
/**
- * Given the 1-based side, will find the leader of that side,
- * and return an iterator to the leader
- */
-unit_map::iterator find_leader(unit_map& units, int side);
-
-unit_map::const_iterator find_leader(const unit_map& units, int side);
-
-/**
* Resets resting for all units on this side: should be called after
calculate_healing().
* @todo FIXME: Try moving this to unit::new_turn, then move it above
calculate_healing().
*/
Modified: trunk/src/ai/ai.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/ai/ai.cpp?rev=35714&r1=35713&r2=35714&view=diff
==============================================================================
--- trunk/src/ai/ai.cpp (original)
+++ trunk/src/ai/ai.cpp Sun May 17 22:30:07 2009
@@ -482,7 +482,7 @@
// We want to protect our leader.
// FIXME: suokko tweaked these from (1.0, 20)->(2.0,15). Should this
have been kept?
- const unit_map::const_iterator leader = find_leader(units_,get_side());
+ const unit_map::const_iterator leader = units_.find_leader(get_side());
if(leader != units_.end()) {
items.push_back(protected_item(
lexical_cast_default<double>(parms["protect_leader"], 1.0),
@@ -601,7 +601,7 @@
const bool passive_leader =
utils::string_bool(current_team().ai_parameters()["passive_leader"])||passive_leader_shares_keep;
- unit_map::iterator leader = find_leader(units_,get_side());
+ unit_map::iterator leader = units_.find_leader(get_side());
if (leader != units_.end())
{
evaluate_recruiting_value(leader);
@@ -661,7 +661,7 @@
LOG_AI << "get villages phase\n";
// Iterator could be invalidated by combat analysis or
move_leader_to_goals.
- leader = find_leader(units_,get_side());
+ leader = units_.find_leader(get_side());
LOG_AI << "villages...\n";
if(get_villages(possible_moves, dstsrc, enemy_dstsrc, leader)) {
@@ -680,7 +680,7 @@
LOG_AI << "retreating...\n";
- leader = find_leader(units_,get_side());
+ leader = units_.find_leader(get_side());
const bool retreated_unit =
retreat_units(possible_moves,srcdst,dstsrc,enemy_dstsrc,leader);
if(retreated_unit) {
do_move();
@@ -711,7 +711,7 @@
if(!passive_leader||passive_leader_shares_keep) {
map_location before = leader->first;
move_leader_to_keep(enemy_dstsrc);
- leader = find_leader(units_,get_side());
+ leader = units_.find_leader(get_side());
if(leader == units_.end()) {
return;
}
@@ -1330,7 +1330,7 @@
return;
}
- const unit_map::const_iterator leader = find_leader(units_,get_side());
+ const unit_map::const_iterator leader = units_.find_leader(get_side());
if(leader == units_.end()) {
return;
}
@@ -1435,7 +1435,7 @@
bool ai::do_recruitment()
{
- const unit_map::const_iterator leader = find_leader(units_,get_side());
+ const unit_map::const_iterator leader = units_.find_leader(get_side());
if(leader == units_.end()) {
return false;
}
@@ -1556,7 +1556,7 @@
return;
}
- const unit_map::iterator leader = find_leader(units_,get_side());
+ const unit_map::iterator leader = units_.find_leader(get_side());
if(leader == units_.end() || leader->second.incapacitated()) {
WRN_AI << "Leader not found\n";
return;
@@ -1600,7 +1600,7 @@
const move_map& /*dstsrc*/, const move_map& enemy_dstsrc)
{
- unit_map::iterator leader = find_leader(units_,get_side());
+ unit_map::iterator leader = units_.find_leader(get_side());
if(leader == units_.end() || leader->second.incapacitated() ||
leader->second.movement_left() == 0) {
return;
}
@@ -1704,7 +1704,7 @@
}
// We didn't move: are we in trouble?
- leader = find_leader(units_,get_side());
+ leader = units_.find_leader(get_side());
if (!passive_leader && !leader->second.has_moved() &&
leader->second.attacks_left()) {
std::map<map_location,paths> dummy_possible_moves;
move_map fullmove_srcdst;
@@ -1719,7 +1719,7 @@
bool ai::leader_can_reach_keep()
{
- const unit_map::iterator leader = find_leader(units_,get_side());
+ const unit_map::iterator leader = units_.find_leader(get_side());
if(leader == units_.end() || leader->second.incapacitated()) {
return false;
}
Modified: trunk/src/ai/ai_actions.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/ai/ai_actions.cpp?rev=35714&r1=35713&r2=35714&view=diff
==============================================================================
--- trunk/src/ai/ai_actions.cpp (original)
+++ trunk/src/ai/ai_actions.cpp Sun May 17 22:30:07 2009
@@ -387,7 +387,7 @@
bool ai_recruit_result::test_leader_present( const unit_map& units,
unit_map::const_iterator& my_leader, bool /*update_knowledge*/ )
{
- my_leader = find_leader(units,get_side());
+ my_leader = units.find_leader(get_side());
if (my_leader == units.end()){
set_error(E_NO_LEADER);
return false;
Modified: trunk/src/ai/ai_move.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/ai/ai_move.cpp?rev=35714&r1=35713&r2=35714&view=diff
==============================================================================
--- trunk/src/ai/ai_move.cpp (original)
+++ trunk/src/ai/ai_move.cpp Sun May 17 22:30:07 2009
@@ -910,7 +910,7 @@
void ai::move_leader_to_keep(const move_map& enemy_dstsrc)
{
- const unit_map::iterator leader = find_leader(units_,get_side());
+ const unit_map::iterator leader = units_.find_leader(get_side());
if(leader == units_.end() || leader->second.incapacitated()) {
return;
}
Modified: trunk/src/ai/ai_village.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/ai/ai_village.cpp?rev=35714&r1=35713&r2=35714&view=diff
==============================================================================
--- trunk/src/ai/ai_village.cpp (original)
+++ trunk/src/ai/ai_village.cpp Sun May 17 22:30:07 2009
@@ -222,7 +222,7 @@
if(units_.count(i->first) == 0) {
const location loc =
move_unit(i->second,i->first,possible_moves);
++moves_made;
- leader = find_leader(units_, get_side());
+ leader = units_.find_leader(get_side());
// If we didn't make it to the destination, it
means we were ambushed.
if(loc != i->first) {
Modified: trunk/src/ai/formula_ai.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/ai/formula_ai.cpp?rev=35714&r1=35713&r2=35714&view=diff
==============================================================================
--- trunk/src/ai/formula_ai.cpp (original)
+++ trunk/src/ai/formula_ai.cpp Sun May 17 22:30:07 2009
@@ -2455,7 +2455,7 @@
} else if(key == "my_leader")
{
- unit_map::const_iterator i = team_leader(get_side(),
get_info().units);
+ unit_map::const_iterator i =
get_info().units.find_leader(get_side());
if(i == get_info().units.end()) {
return variant();
}
Modified: trunk/src/game_display.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/game_display.cpp?rev=35714&r1=35713&r2=35714&view=diff
==============================================================================
--- trunk/src/game_display.cpp (original)
+++ trunk/src/game_display.cpp Sun May 17 22:30:07 2009
@@ -248,7 +248,7 @@
void game_display::scroll_to_leader(unit_map& units, int side, SCROLL_TYPE
scroll_type,bool force)
{
- const unit_map::iterator leader = find_leader(units,side);
+ unit_map::const_iterator leader = units.find_leader(side);
if(leader != units_.end()) {
// YogiHH: I can't see why we need another key_handler here,
Modified: trunk/src/menu_events.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/menu_events.cpp?rev=35714&r1=35713&r2=35714&view=diff
==============================================================================
--- trunk/src/menu_events.cpp (original)
+++ trunk/src/menu_events.cpp Sun May 17 22:30:07 2009
@@ -141,18 +141,18 @@
return textbox_info_;
}
- std::string menu_handler::get_title_suffix(int team_num)
+ std::string menu_handler::get_title_suffix(int side_num)
{
int controlled_recruiters = 0;
for(size_t i = 0; i < teams_.size(); ++i) {
if(teams_[i].is_human() && !teams_[i].recruits().empty()
- && team_leader(i+1, units_) != units_.end()) {
+ && units_.find_leader(i + 1) != units_.end()) {
++controlled_recruiters;
}
}
std::stringstream msg;
if(controlled_recruiters >= 2) {
- const unit_map::const_iterator leader =
team_leader(team_num, units_);
+ unit_map::const_iterator leader =
units_.find_leader(side_num);
if(leader != units_.end() &&
!leader->second.name().empty()) {
msg << " (" << leader->second.name(); msg <<
")";
}
@@ -401,7 +401,7 @@
const team_data data =
calculate_team_data(teams_[n],n+1,units_);
- const unit_map::const_iterator leader =
team_leader(n+1,units_);
+ unit_map::const_iterator leader = units_.find_leader(n
+ 1);
std::string leader_name;
//output the number of the side first, and this will
//cause it to be displayed in the correct colour
@@ -515,7 +515,7 @@
settings_table_empty = false;
std::stringstream str;
- const unit_map::const_iterator leader =
team_leader(n+1, units_);
+ unit_map::const_iterator leader = units_.find_leader(n
+ 1);
if(leader != units_.end()) {
// Add leader image. If it's fogged
@@ -1297,11 +1297,11 @@
return true;
}
- void menu_handler::goto_leader(const unsigned int team_num)
- {
- const unit_map::const_iterator i = team_leader(team_num,units_);
+ void menu_handler::goto_leader(int side_num)
+ {
+ unit_map::const_iterator i = units_.find_leader(side_num);
if(i != units_.end()) {
- clear_shroud(team_num);
+ clear_shroud(side_num);
gui_->scroll_to_tile(i->first,game_display::WARP);
}
}
Modified: trunk/src/menu_events.hpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/menu_events.hpp?rev=35714&r1=35713&r2=35714&view=diff
==============================================================================
--- trunk/src/menu_events.hpp (original)
+++ trunk/src/menu_events.hpp Sun May 17 22:30:07 2009
@@ -65,7 +65,7 @@
gui::floating_textbox& get_textbox();
void set_gui(game_display* gui) { gui_ = gui; }
- std::string get_title_suffix(int team_num);
+ std::string get_title_suffix(int side_num);
void objectives(const unsigned int team_num);
void show_statistics(const unsigned int team_num);
void unit_list();
@@ -86,7 +86,7 @@
void toggle_shroud_updates(const unsigned int team_num);
void update_shroud_now(const unsigned int team_num);
bool end_turn(const unsigned int team_num);
- void goto_leader(const unsigned int team_num);
+ void goto_leader(int side_num);
void unit_description(mouse_handler& mousehandler);
void rename_unit(mouse_handler& mousehandler);
void create_unit(mouse_handler& mousehandler);
Modified: trunk/src/play_controller.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/play_controller.cpp?rev=35714&r1=35713&r2=35714&view=diff
==============================================================================
--- trunk/src/play_controller.cpp (original)
+++ trunk/src/play_controller.cpp Sun May 17 22:30:07 2009
@@ -928,7 +928,7 @@
case hotkey::HOTKEY_RECALL: {
// last_hex_ is set by mouse_events::mouse_motion
// Enable recruit/recall on castle/keep tiles
- const unit_map::const_iterator leader =
team_leader(player_number_,units_);
+ unit_map::const_iterator leader =
units_.find_leader(player_number_);
if (leader != units_.end()) {
return can_recruit_on(map_, leader->first,
mouse_handler_.get_last_hex());
} else {
Modified: trunk/src/playturn.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/playturn.cpp?rev=35714&r1=35713&r2=35714&view=diff
==============================================================================
--- trunk/src/playturn.cpp (original)
+++ trunk/src/playturn.cpp Sun May 17 22:30:07 2009
@@ -153,7 +153,7 @@
if(index < teams_.size()) {
if (!player.empty())
teams_[index].set_current_player(player);
- const unit_map::iterator leader = find_leader(units_,
side);
+ unit_map::iterator leader = units_.find_leader(side);
bool restart = gui_.get_playing_team() == index;
if(!player.empty() && leader != units_.end())
leader->second.rename(player);
@@ -197,7 +197,7 @@
throw network::error("");
}
- const unit_map::iterator leader = find_leader(units_,side);
+ unit_map::iterator leader = units_.find_leader(side);
const bool have_leader = (leader != units_.end());
if (controller == "ai"){
Modified: trunk/src/unit.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/unit.cpp?rev=35714&r1=35713&r2=35714&view=diff
==============================================================================
--- trunk/src/unit.cpp (original)
+++ trunk/src/unit.cpp Sun May 17 22:30:07 2009
@@ -3056,17 +3056,6 @@
return res;
}
-unit_map::const_iterator team_leader(unsigned int side, const unit_map& units)
-{
- for(unit_map::const_iterator i = units.begin(); i != units.end(); ++i) {
- if(i->second.can_recruit() && i->second.side() == side) {
- return i;
- }
- }
-
- return units.end();
-}
-
unit_map::iterator find_visible_unit(unit_map& units,
const map_location loc,
const gamemap& map,
Modified: trunk/src/unit.hpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/unit.hpp?rev=35714&r1=35713&r2=35714&view=diff
==============================================================================
--- trunk/src/unit.hpp (original)
+++ trunk/src/unit.hpp Sun May 17 22:30:07 2009
@@ -500,7 +500,7 @@
int team_units_cost(const unit_map& units, unsigned int team_num);
int team_upkeep(const unit_map& units, unsigned int team_num);
-unit_map::const_iterator team_leader(unsigned int side, const unit_map& units);
+
unit_map::iterator find_visible_unit(unit_map& units,
const map_location loc,
const gamemap& map,
Modified: trunk/src/unit_map.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/unit_map.cpp?rev=35714&r1=35713&r2=35714&view=diff
==============================================================================
--- trunk/src/unit_map.cpp (original)
+++ trunk/src/unit_map.cpp Sun May 17 22:30:07 2009
@@ -273,3 +273,22 @@
LOG_NG << "unit_map::clean_invalid - removed " << num_cleaned << "
invalid map entries.\n";
}
+unit_map::const_unit_iterator unit_map::find_leader(int side) const
+{
+ unit_map::const_iterator i = begin(), i_end = end();
+ for (; i != i_end; ++i) {
+ if (static_cast<int>(i->second.side()) == side &&
i->second.can_recruit())
+ return i;
+ }
+ return i_end;
+}
+
+unit_map::unit_iterator unit_map::find_leader(int side)
+{
+ unit_map::iterator i = begin(), i_end = end();
+ for (; i != i_end; ++i) {
+ if (static_cast<int>(i->second.side()) == side &&
i->second.can_recruit())
+ return i;
+ }
+ return i_end;
+}
Modified: trunk/src/unit_map.hpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/unit_map.hpp?rev=35714&r1=35713&r2=35714&view=diff
==============================================================================
--- trunk/src/unit_map.hpp (original)
+++ trunk/src/unit_map.hpp Sun May 17 22:30:07 2009
@@ -289,6 +289,9 @@
const_unit_iterator find(const unit_id_type& id) const;
const_unit_iterator find(const std::string& id) const;
+ const_unit_iterator find_leader(int side) const;
+ unit_iterator find_leader(int side);
+
size_t count(const map_location& loc) const { return lmap_.count(loc); }
/**
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits