Author: tschmitz
Date: Fri Aug 26 20:31:54 2011
New Revision: 50923
URL: http://svn.gna.org/viewcvs/wesnoth?rev=50923&view=rev
Log:
Made it possible to plan invalid actions instead of silently rejecting them.
Modified:
trunk/src/whiteboard/manager.cpp
trunk/src/whiteboard/manager.hpp
Modified: trunk/src/whiteboard/manager.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/whiteboard/manager.cpp?rev=50923&r1=50922&r2=50923&view=diff
==============================================================================
--- trunk/src/whiteboard/manager.cpp (original)
+++ trunk/src/whiteboard/manager.cpp Fri Aug 26 20:31:54 2011
@@ -659,6 +659,8 @@
assert(u);
size_t first_turn = sa.get_turn_num_of(*u);
+ on_save_action(u);
+
assert(move_arrows_.size() == fake_units_.size());
size_t size = move_arrows_.size();
for(size_t i=0; i<size; ++i)
@@ -677,7 +679,6 @@
}
erase_temp_move();
- on_save_action();
LOG_WB << *viewer_actions() << "\n";
print_help_once();
}
@@ -720,10 +721,10 @@
if (weapon_choice >= 0)
{
+ on_save_action(attacking_unit);
+
side_actions& sa = *viewer_actions();
sa.queue_attack(sa.get_turn_num_of(*attacking_unit),*attacking_unit,target_hex,weapon_choice,*route_,move_arrow,fake_unit);
-
- on_save_action();
print_help_once();
}
@@ -746,6 +747,8 @@
}
else
{
+ on_save_action(NULL);
+
side_actions& sa = *viewer_actions();
unit* recruiter;
{ wb::scoped_planned_unit_map raii;
@@ -756,8 +759,6 @@
sa.queue_recruit(turn,name,recruit_hex);
created_planned_recruit = true;
- on_save_action();
-
print_help_once();
}
}
@@ -777,6 +778,8 @@
}
else
{
+ on_save_action(NULL);
+
side_actions& sa = *viewer_actions();
size_t turn = sa.num_turns();
if(turn > 0)
@@ -784,8 +787,6 @@
sa.queue_recall(turn,unit,recall_hex);
created_planned_recall = true;
- on_save_action();
-
print_help_once();
}
}
@@ -796,17 +797,16 @@
{
if(active_ && !executing_actions_ &&
!resources::controller->is_linger_mode())
{
+ on_save_action(&curr_unit);
side_actions& sa = *viewer_actions();
sa.queue_suppose_dead(sa.get_turn_num_of(curr_unit),curr_unit,loc);
- on_save_action();
- }
-}
-
-void manager::on_save_action() const
-{
- side_actions& sa = *viewer_actions();
- action& act = **(sa.end()-1);
- sa.remove_invalid_of(act.get_unit());
+ }
+}
+
+void manager::on_save_action(unit const* u) const
+{
+ if(u)
+ viewer_actions()->remove_invalid_of(u);
}
void manager::contextual_execute()
Modified: trunk/src/whiteboard/manager.hpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/whiteboard/manager.hpp?rev=50923&r1=50922&r2=50923&view=diff
==============================================================================
--- trunk/src/whiteboard/manager.hpp (original)
+++ trunk/src/whiteboard/manager.hpp Fri Aug 26 20:31:54 2011
@@ -165,7 +165,7 @@
private:
void validate_actions_if_needed();
/// Called by all of the save_***() methods after they have added their
action to the queue
- void on_save_action() const;
+ void on_save_action(unit const* unit_with_plan) const;
void update_plan_hiding(size_t viewing_team) const;
void update_plan_hiding() const; //same as above, but uses
wb::viewer_team() as default argument
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits