1 /* 2 Copyright (C) 2017-2018 the Battle for Wesnoth Project https://www.wesnoth.org/ 3 4 This program is free software; you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation; either version 2 of the License, or 7 (at your option) any later version. 8 This program is distributed in the hope that it will be useful, 9 but WITHOUT ANY WARRANTY. 10 11 See the COPYING file for more details. 12 */ 13 14 #pragma once 15 16 #include "undo_action.hpp" 17 #include "shroud_clearing_action.hpp" 18 #include "units/ptr.hpp" 19 #include "units/types.hpp" 20 21 namespace actions 22 { 23 namespace undo 24 { 25 26 struct recruit_action : undo_action, shroud_clearing_action 27 { 28 const unit_type & u_type; 29 map_location recruit_from; 30 31 32 recruit_action(const unit_const_ptr recruited, const map_location& loc, 33 const map_location& from, int orig_village_owner, bool time_bonus); 34 recruit_action(const config & cfg, const unit_type & type, const map_location& from); get_typeactions::undo::recruit_action35 virtual const char* get_type() const { return "recruit"; } ~recruit_actionactions::undo::recruit_action36 virtual ~recruit_action() {} 37 38 /// Writes this into the provided config. 39 virtual void write(config & cfg) const; 40 41 /// Undoes this action. 42 virtual bool undo(int side); 43 }; 44 45 } 46 } 47