Author: tschmitz
Date: Sat Aug 6 00:37:52 2011
New Revision: 50618
URL: http://svn.gna.org/viewcvs/wesnoth?rev=50618&view=rev
Log:
Recruit and recall actions will no longer be deleted on failed execution.
Modified:
trunk/src/whiteboard/recall.cpp
trunk/src/whiteboard/recruit.cpp
trunk/src/whiteboard/utility.cpp
trunk/src/whiteboard/utility.hpp
Modified: trunk/src/whiteboard/recall.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/whiteboard/recall.cpp?rev=50618&r1=50617&r2=50618&view=diff
==============================================================================
--- trunk/src/whiteboard/recall.cpp (original)
+++ trunk/src/whiteboard/recall.cpp Sat Aug 6 00:37:52 2011
@@ -115,11 +115,9 @@
{
assert(valid_);
assert(temp_unit_);
- fake_unit_.reset();
- resources::controller->get_menu_handler().do_recall(*temp_unit_,
team_index() + 1, recall_hex_);
- delete temp_unit_;
- temp_unit_ = NULL;
- success = complete = true;
+ temporary_unit_hider const raii(*fake_unit_);
+ bool const result =
resources::controller->get_menu_handler().do_recall(*temp_unit_, team_index() +
1, recall_hex_);
+ success = complete = result;
}
void recall::apply_temp_modifier(unit_map& unit_map)
Modified: trunk/src/whiteboard/recruit.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/whiteboard/recruit.cpp?rev=50618&r1=50617&r2=50618&view=diff
==============================================================================
--- trunk/src/whiteboard/recruit.cpp (original)
+++ trunk/src/whiteboard/recruit.cpp Sat Aug 6 00:37:52 2011
@@ -105,10 +105,10 @@
void recruit::execute(bool& success, bool& complete)
{
assert(valid_);
- fake_unit_.reset();
- int side_num = team_index() + 1;
- resources::controller->get_menu_handler().do_recruit(unit_name_,
side_num, recruit_hex_);
- success = complete = true;
+ temporary_unit_hider const raii(*fake_unit_);
+ int const side_num = team_index() + 1;
+ bool const result =
resources::controller->get_menu_handler().do_recruit(unit_name_, side_num,
recruit_hex_);
+ success = complete = result;
}
void recruit::apply_temp_modifier(unit_map& unit_map)
Modified: trunk/src/whiteboard/utility.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/whiteboard/utility.cpp?rev=50618&r1=50617&r2=50618&view=diff
==============================================================================
--- trunk/src/whiteboard/utility.cpp (original)
+++ trunk/src/whiteboard/utility.cpp Sat Aug 6 00:37:52 2011
@@ -105,5 +105,11 @@
return NULL;
}
+temporary_unit_hider::temporary_unit_hider(unit& u)
+ : unit_(&u)
+ {unit_->set_hidden(true);}
+temporary_unit_hider::~temporary_unit_hider()
+ {unit_->set_hidden(false);}
+
} //end namespace wb
Modified: trunk/src/whiteboard/utility.hpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/whiteboard/utility.hpp?rev=50618&r1=50617&r2=50618&view=diff
==============================================================================
--- trunk/src/whiteboard/utility.hpp (original)
+++ trunk/src/whiteboard/utility.hpp Sat Aug 6 00:37:52 2011
@@ -58,6 +58,12 @@
/// @param on_side Only search for units of this side.
unit* future_visible_unit(int on_side, map_location hex, int viewer_side =
wb::viewer_side());
+struct temporary_unit_hider {
+ temporary_unit_hider(unit& u);
+ ~temporary_unit_hider();
+ unit* const unit_;
+};
+
} //end namespace wb
#endif /* WB_UTILITY_HPP_ */
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits