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

Reply via email to