1 /* 2 * Copyright (C) 2010-2020 by the Widelands Development Team 3 * 4 * This program is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU General Public License 6 * as published by the Free Software Foundation; either version 2 7 * of the License, or (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 17 * 18 */ 19 20 #ifndef WL_LOGIC_MAP_OBJECTS_BUILDCOST_H 21 #define WL_LOGIC_MAP_OBJECTS_BUILDCOST_H 22 23 #include <map> 24 #include <memory> 25 26 #include "io/fileread.h" 27 #include "io/filewrite.h" 28 #include "logic/widelands.h" 29 #include "scripting/lua_table.h" 30 31 namespace Widelands { 32 33 class TribeDescr; 34 class Tribes; 35 36 struct Buildcost : std::map<DescriptionIndex, uint8_t> { 37 38 Buildcost(); 39 Buildcost(std::unique_ptr<LuaTable> table, const Tribes& tribes); 40 41 Quantity total() const; 42 43 void save(FileWrite& fw, const TribeDescr& tribe) const; 44 void load(FileRead& fw, const TribeDescr& tribe); 45 }; 46 47 } // namespace Widelands 48 49 #endif // end of include guard: WL_LOGIC_MAP_OBJECTS_BUILDCOST_H 50