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 20 namespace actions 21 { 22 namespace undo 23 { 24 25 26 struct recall_action : undo_action, shroud_clearing_action 27 { 28 std::string id; 29 map_location recall_from; 30 31 32 recall_action(const unit_const_ptr recalled, const map_location& loc, 33 const map_location& from, int orig_village_owner, bool time_bonus); 34 recall_action(const config & cfg, const map_location & from); get_typeactions::undo::recall_action35 virtual const char* get_type() const { return "recall"; } ~recall_actionactions::undo::recall_action36 virtual ~recall_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