← Back to team overview

widelands-dev team mailing list archive

[Merge] lp:~widelands-dev/widelands/kill_frontier_and_flag_styles into lp:widelands

 

SirVer has proposed merging lp:~widelands-dev/widelands/kill_frontier_and_flag_styles into lp:widelands.

Requested reviews:
  Widelands Developers (widelands-dev)
Related bugs:
  Bug #1332842 in widelands: "Remove support for different flag and frontier 'styles'."
  https://bugs.launchpad.net/widelands/+bug/1332842

For more details, see:
https://code.launchpad.net/~widelands-dev/widelands/kill_frontier_and_flag_styles/+merge/224210

Fixes bug 1332842 and silences some Clang warnings either by fixing the root cause or by disabling the warning if that makes more sense.
-- 
https://code.launchpad.net/~widelands-dev/widelands/kill_frontier_and_flag_styles/+merge/224210
Your team Widelands Developers is requested to review the proposed merge of lp:~widelands-dev/widelands/kill_frontier_and_flag_styles into lp:widelands.
=== modified file 'CMakeLists.txt'
--- CMakeLists.txt	2014-06-22 05:28:07 +0000
+++ CMakeLists.txt	2014-06-23 20:29:05 +0000
@@ -120,8 +120,17 @@
   add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-padded")
   add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-sign-conversion")
   add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-switch-enum")
+  add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-implicit-fallthrough")
   add_flag(WL_COMPILE_DIAGNOSTICS "-Qunused-arguments")
 
+  # This warning warns when a default case is at a switch that handles all
+  # cases. While this is super nice, silencing this warning for clang will add
+  # a warning for GCC (which is not as clever and does not figure out that all
+  # cases are handled). Therefore we disable the warning and the unreachable as
+  # they always come in pairs in these cases.
+  add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-covered-switch-default")
+  add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-unreachable-code")
+
   # TODO(sirver): weak-vtables should be enabled, but leads to lot of errors right now.
   add_flag(WL_COMPILE_DIAGNOSTICS "-Wno-weak-vtables")
 else()

=== modified file 'src/base/exceptions.cc'
--- src/base/exceptions.cc	2014-06-18 15:33:04 +0000
+++ src/base/exceptions.cc	2014-06-23 20:29:05 +0000
@@ -64,8 +64,6 @@
 	m_what = buffer;
 }
 
-warning::~warning() noexcept {}
-
 char const * warning::title() const
 {
 	return m_title.c_str();

=== modified file 'src/base/port.h'
--- src/base/port.h	2014-06-01 18:00:48 +0000
+++ src/base/port.h	2014-06-23 20:29:05 +0000
@@ -27,6 +27,4 @@
 #endif
 #endif
 
-
 #endif /* end of include guard: PORT_H */
-

=== modified file 'src/base/warning.h'
--- src/base/warning.h	2014-06-18 14:23:22 +0000
+++ src/base/warning.h	2014-06-23 20:29:05 +0000
@@ -41,7 +41,6 @@
 struct warning : public std::exception {
 	explicit warning (char const * title, char const * message, ...)
 	 PRINTF_FORMAT(3, 4);
-	virtual ~warning() noexcept;
 
 	/// The target of the returned pointer remains valid during the lifetime of
 	/// the warning object.

=== modified file 'src/economy/fleet.cc'
--- src/economy/fleet.cc	2014-06-21 10:24:12 +0000
+++ src/economy/fleet.cc	2014-06-23 20:29:05 +0000
@@ -40,7 +40,16 @@
 
 namespace Widelands {
 
-Map_Object_Descr fleet_descr("fleet", "Fleet");
+namespace  {
+
+// Every Map_Object() needs to have a description. So we make a dummy one for
+// Fleet.
+Map_Object_Descr* fleet_description() {
+	static Map_Object_Descr fleet_descr("fleet", "Fleet");
+	return &fleet_descr;
+}
+
+}  // namespace
 
 /**
  * Fleets are initialized empty.
@@ -50,7 +59,7 @@
  * The Fleet takes care of merging with existing fleets, if any.
  */
 Fleet::Fleet(Player & player) :
-	Map_Object(&fleet_descr),
+	Map_Object(fleet_description()),
 	m_owner(player),
 	m_act_pending(false)
 {

=== modified file 'src/game_io/game_player_info_data_packet.cc'
--- src/game_io/game_player_info_data_packet.cc	2014-05-11 07:38:01 +0000
+++ src/game_io/game_player_info_data_packet.cc	2014-06-23 20:29:05 +0000
@@ -78,33 +78,6 @@
 
 					game.add_player(plnum, 0, tribe_name, name, team);
 					Player & player = game.player(plnum);
-					{
-						const Tribe_Descr & tribe = player.tribe();
-						try {
-							player.m_frontier_style_index =
-								frontier_style_name ?
-								tribe.frontier_style_index(frontier_style_name) : 0;
-						} catch (Tribe_Descr::Nonexistent) {
-							log
-								("WARNING: player %1$u has frontier style index \"%2$s\", "
-								 "which does not exist in his tribe %3$s; will use "
-								 "default frontier style \"%4$s\" instead\n",
-								 plnum, frontier_style_name, tribe.name().c_str(),
-								 tribe.frontier_style_name(0).c_str());
-						}
-						try {
-							player.m_flag_style_index =
-								flag_style_name ?
-								tribe.flag_style_index(flag_style_name) : 0;
-						} catch (Tribe_Descr::Nonexistent) {
-							log
-								("WARNING: player %1$u has flag style index \"%2$s\", "
-								 "which does not exist in his tribe %3$s; will use "
-								 "default flag style \"%4$s\" instead\n",
-								 plnum, flag_style_name, tribe.name().c_str(),
-								 tribe.flag_style_name(0).c_str());
-						}
-					}
 					player.set_see_all(see_all);
 
 					if (packet_version >= 6)
@@ -168,8 +141,6 @@
 		{
 			const Tribe_Descr & tribe = plr->tribe();
 			fw.CString(tribe.name().c_str());
-			fw.CString(tribe.frontier_style_name(plr->m_frontier_style_index));
-			fw.CString(tribe.flag_style_name    (plr->m_flag_style_index));
 		}
 
 		// Seen fields is in a map packet

=== modified file 'src/graphic/render/gamerenderer.cc'
--- src/graphic/render/gamerenderer.cc	2014-05-27 11:01:15 +0000
+++ src/graphic/render/gamerenderer.cc	2014-06-23 20:29:05 +0000
@@ -133,7 +133,7 @@
 
 			if (isborder[F]) {
 				const Player & owner = m_egbase->player(owner_number[F]);
-				uint32_t const anim_idx = owner.frontier_anim();
+				uint32_t const anim_idx = owner.tribe().frontier_animation();
 				if (vision[F])
 					m_dst->drawanim(pos[F], anim_idx, 0, &owner);
 				for (uint32_t d = 1; d < 4; ++d) {
@@ -221,7 +221,7 @@
 					} else if (const uint32_t pic = map_object_descr->main_animation()) {
 						m_dst->drawanim(pos[F], pic, 0, owner);
 					} else if (map_object_descr == &Widelands::g_flag_descr) {
-						m_dst->drawanim(pos[F], owner->flag_anim(), 0, owner);
+						m_dst->drawanim(pos[F], owner->tribe().flag_animation(), 0, owner);
 					}
 				}
 			}

=== modified file 'src/io/filesystem/zip_exceptions.h'
--- src/io/filesystem/zip_exceptions.h	2014-06-18 14:23:22 +0000
+++ src/io/filesystem/zip_exceptions.h	2014-06-23 20:29:05 +0000
@@ -31,12 +31,11 @@
  * "couldn't open file (from zipfile "+m_zipfilename+")");
  */
 struct ZipOperation_error : public std::logic_error {
-	explicit ZipOperation_error
+	ZipOperation_error
 		(const std::string & thrower,
 		 const std::string & filename,
 		 const std::string & zipfilename,
 		 const std::string & message = "problem during zipfile operation")
-
 		:
 		std::logic_error
 			(thrower + ": " + message + " (working on '" + filename +
@@ -44,8 +43,6 @@
 		m_thrower(thrower), m_filename(filename), m_zipfilename(zipfilename)
 	{}
 
-	virtual ~ZipOperation_error() noexcept {}
-
 	std::string m_thrower;
 	std::string m_filename;
 	std::string m_zipfilename;

=== modified file 'src/logic/player.cc'
--- src/logic/player.cc	2014-06-22 11:03:55 +0000
+++ src/logic/player.cc	2014-06-23 20:29:05 +0000
@@ -147,8 +147,6 @@
 	:
 	m_egbase              (the_egbase),
 	m_initialization_index(initialization_index),
-	m_frontier_style_index(0),
-	m_flag_style_index    (0),
 	m_team_number(0),
 	m_team_player_uptodate(false),
 	m_see_all           (false),
@@ -184,37 +182,30 @@
 void Player::create_default_infrastructure() {
 	const Map & map = egbase().map();
 	if (map.get_starting_pos(m_plnum)) {
-		try {
-			const Tribe_Descr::Initialization & initialization =
-				tribe().initialization(m_initialization_index);
-
-			Game & game = ref_cast<Game, Editor_Game_Base>(egbase());
+		const Tribe_Descr::Initialization & initialization =
+			tribe().initialization(m_initialization_index);
+
+		Game & game = ref_cast<Game, Editor_Game_Base>(egbase());
+
+		// Run the corresponding script
+		std::unique_ptr<LuaTable> table(game.lua().run_script(initialization.script));
+		table->do_not_warn_about_unaccessed_keys();
+		std::unique_ptr<LuaCoroutine> cr = table->get_coroutine("func");
+		cr->push_arg(this);
+		game.enqueue_command(new Cmd_LuaCoroutine(game.get_gametime(), cr.release()));
+
+		// Check if other starting positions are shared in and initialize them as well
+		for (uint8_t n = 0; n < m_further_shared_in_player.size(); ++n) {
+			Coords const further_pos = map.get_starting_pos(m_further_shared_in_player.at(n));
 
 			// Run the corresponding script
-			std::unique_ptr<LuaTable> table(game.lua().run_script(initialization.script));
-			table->do_not_warn_about_unaccessed_keys();
-			std::unique_ptr<LuaCoroutine> cr = table->get_coroutine("func");
-			cr->push_arg(this);
-			game.enqueue_command(new Cmd_LuaCoroutine(game.get_gametime(), cr.release()));
-
-			// Check if other starting positions are shared in and initialize them as well
-			for (uint8_t n = 0; n < m_further_shared_in_player.size(); ++n) {
-				Coords const further_pos = map.get_starting_pos(m_further_shared_in_player.at(n));
-
-				// Run the corresponding script
-				std::unique_ptr<LuaCoroutine> ncr =
-				   game.lua()
-				      .run_script(tribe().initialization(m_further_initializations.at(n)).script)
-				      ->get_coroutine("func");
-				ncr->push_arg(this);
-				ncr->push_arg(further_pos);
-				game.enqueue_command(new Cmd_LuaCoroutine(game.get_gametime(), ncr.release()));
-			}
-		} catch (Tribe_Descr::Nonexistent &) {
-			throw game_data_error
-				("the selected initialization index (%u) is outside the range "
-				 "(tribe edited between preload and game start?)",
-				 m_initialization_index);
+			std::unique_ptr<LuaCoroutine> ncr =
+				game.lua()
+					.run_script(tribe().initialization(m_further_initializations.at(n)).script)
+					->get_coroutine("func");
+			ncr->push_arg(this);
+			ncr->push_arg(further_pos);
+			game.enqueue_command(new Cmd_LuaCoroutine(game.get_gametime(), ncr.release()));
 		}
 	} else
 		throw warning

=== modified file 'src/logic/player.h'
--- src/logic/player.h	2014-04-21 18:18:01 +0000
+++ src/logic/player.h	2014-06-23 20:29:05 +0000
@@ -117,8 +117,6 @@
 
 	const std::string & get_name() const {return m_name;}
 	void set_name(const std::string & name) {m_name = name;}
-	void set_frontier_style(uint8_t a) {m_frontier_style_index = a;}
-	void set_flag_style(uint8_t a) {m_flag_style_index = a;}
 	void set_team_number(TeamNumber team);
 
 	void create_default_infrastructure();
@@ -505,13 +503,6 @@
 	void count_civil_bld_lost    () {++m_civil_blds_lost;}
 	void count_civil_bld_defeated() {++m_civil_blds_defeated;}
 
-	uint32_t frontier_anim() const {
-		return tribe().frontier_animation(m_frontier_style_index);
-	}
-	uint32_t flag_anim    () const {
-		return tribe().flag_animation    (m_flag_style_index);
-	}
-
 	// Statistics
 	const Building_Stats_vector & get_building_statistics
 		(const Building_Index& i) const
@@ -563,8 +554,6 @@
 	uint8_t                m_initialization_index;
 	std::vector<uint8_t>   m_further_initializations;    // used in shared kingdom mode
 	std::vector<uint8_t>   m_further_shared_in_player;   //  ''  ''   ''     ''     ''
-	uint8_t                m_frontier_style_index;
-	uint8_t                m_flag_style_index;
 	TeamNumber             m_team_number;
 	std::vector<Player *>  m_team_player;
 	bool                   m_team_player_uptodate;

=== modified file 'src/logic/tribe.cc'
--- src/logic/tribe.cc	2014-06-21 10:24:12 +0000
+++ src/logic/tribe.cc	2014-06-23 20:29:05 +0000
@@ -241,47 +241,10 @@
 				PARSE_ORDER_INFORMATION(worker);
 			}
 
-			try {
-				while (Section * const s = root_conf.get_next_section("frontier"))
-				{
-					char const * const style_name = s->get_safe_string("name");
-					try {
-						if (m_anim_frontier.empty())
-							throw Nonexistent();
-						frontier_style_index(style_name);
-						throw game_data_error("\"%s\" is duplicated", style_name);
-					} catch (Nonexistent) {
-						m_anim_frontier.push_back
-							(std::pair<std::string, uint32_t>
-							 	(style_name, g_gr->animations().load(path, *s)));
-					}
-				}
-				if (m_anim_frontier.empty())
-					throw game_data_error("none found");
-			} catch (const _wexception & e) {
-				throw game_data_error("frontier styles: %s", e.what());
-			}
-			try {
-				while (Section * const s = root_conf.get_next_section("flag"))
-				{
-					char const * const style_name = s->get_safe_string("name");
-					try {
-						if (m_anim_flag.empty())
-							throw Nonexistent();
-						flag_style_index(style_name);
-						throw game_data_error("\"%s\" is duplicated", style_name);
-					} catch (Nonexistent) {
-						m_anim_flag.push_back
-							(std::pair<std::string, uint32_t>
-							 	(style_name,
-							 	 g_gr->animations().load(path, *s)));
-					}
-				}
-				if (m_anim_flag.empty())
-					throw game_data_error("none found");
-			} catch (const _wexception & e) {
-				throw game_data_error("flag styles: %s", e.what());
-			}
+			m_frontier_animation_id =
+			   g_gr->animations().load(path, root_conf.get_safe_section("frontier"));
+			m_flag_animation_id =
+			   g_gr->animations().load(path, root_conf.get_safe_section("flag"));
 
 			{
 				// Read initializations -- all scripts are initializations currently

=== modified file 'src/logic/tribe.h'
--- src/logic/tribe.h	2014-06-21 16:01:35 +0000
+++ src/logic/tribe.h	2014-06-23 20:29:05 +0000
@@ -132,49 +132,12 @@
 		return m_worker_types_without_cost;
 	}
 
-	typedef std::vector<std::pair<std::string, uint32_t> > AnimationStyles;
-	struct Nonexistent {};
-	uint8_t frontier_style_index(const std::string & stylename) const {
-		for (uint8_t result = m_anim_frontier.size();;)
-			if (m_anim_frontier.at(--result).first == stylename)
-				return result;
-		throw Nonexistent();
-	}
-	uint8_t flag_style_index    (const std::string & stylename) const {
-		for (uint8_t result = m_anim_flag.size();;)
-			if (m_anim_flag.at(--result).first == stylename)
-				return result;
-		throw Nonexistent();
-	}
-	uint8_t frontier_style_index(char const * const stylename) const {
-		for (uint8_t result = m_anim_frontier.size();;)
-			if (m_anim_frontier.at(--result).first == stylename)
-				return result;
-		throw Nonexistent();
-	}
-	uint8_t flag_style_index    (char const * const stylename) const {
-		for (uint8_t result = m_anim_flag.size();;)
-			if (m_anim_flag.at(--result).first == stylename)
-				return result;
-		throw Nonexistent();
-	}
-	uint8_t next_frontier_style_index(uint8_t i) const {
-		return ++i == m_anim_frontier.size() ? 0 : i;
-	}
-	uint8_t next_flag_style_index    (uint8_t i) const {
-		return ++i == m_anim_flag    .size() ? 0 : i;
-	}
-	const std::string & frontier_style_name (uint8_t const i) const {
-		return m_anim_frontier.at(i).first;
-	}
-	const std::string & flag_style_name     (uint8_t const i) const {
-		return m_anim_flag    .at(i).first;
-	}
-	uint32_t frontier_animation  (uint8_t const i) const {
-		return m_anim_frontier.at(i).second;
-	}
-	uint32_t flag_animation      (uint8_t const i) const {
-		return m_anim_flag    .at(i).second;
+	uint32_t frontier_animation() const {
+		return m_frontier_animation_id;
+	}
+
+	uint32_t flag_animation() const {
+		return m_flag_animation_id;
 	}
 
 	uint32_t get_bob_vision_range() const {return m_bob_vision_range;}
@@ -188,14 +151,13 @@
 	Military_Data get_military_data() const {return m_military_data;}
 
 	struct Initialization {
-		std::string          script;
-		std::string          descname;
+		std::string script;
+		std::string descname;
 	};
-	typedef std::vector<Initialization> Initializations;
-	const Initialization & initialization(uint8_t const index) const {
-		if (m_initializations.size() <= index)
-			throw Nonexistent();
-		return m_initializations[index];
+
+	// Returns the initalization at 'index' (which must not be out of bounds).
+	const Initialization & initialization(const uint8_t index) const {
+		return m_initializations.at(index);
 	}
 
 	typedef std::vector<std::vector<Widelands::Ware_Index> > WaresOrder;
@@ -214,8 +176,8 @@
 
 private:
 	const std::string m_name;
-	AnimationStyles   m_anim_frontier;
-	AnimationStyles   m_anim_flag;
+	uint32_t m_frontier_animation_id;
+	uint32_t m_flag_animation_id;
 	uint32_t m_bob_vision_range;
 
 	DescriptionMaintainer<Worker_Descr> m_workers;
@@ -232,7 +194,7 @@
 
 	std::vector<Ware_Index> m_worker_types_without_cost;
 
-	Initializations m_initializations;
+	std::vector<Initialization> m_initializations;
 
 	Military_Data   m_military_data;
 };

=== modified file 'src/profile/profile.cc'
--- src/profile/profile.cc	2014-06-18 13:20:33 +0000
+++ src/profile/profile.cc	2014-06-23 20:29:05 +0000
@@ -37,7 +37,7 @@
 #include "logic/world/world.h"
 
 #define TRUE_WORDS 4
-char const * trueWords[TRUE_WORDS] =
+static char const * trueWords[TRUE_WORDS] =
 {
 	"true",
 	"yes",
@@ -46,7 +46,7 @@
 };
 
 #define FALSE_WORDS 4
-char const * falseWords[FALSE_WORDS] =
+static char const * falseWords[FALSE_WORDS] =
 {
 	"false",
 	"no",

=== modified file 'src/scripting/c_utils.h'
--- src/scripting/c_utils.h	2014-06-18 13:20:33 +0000
+++ src/scripting/c_utils.h	2014-06-23 20:29:05 +0000
@@ -37,7 +37,7 @@
 void report_error(lua_State*, const char*, ...)
 	__attribute__((__format__(__printf__, 2, 3), noreturn));
 #else
-void report_error [[noreturn]] (lua_State*, const char*, ...)
+[[noreturn]] void report_error(lua_State*, const char*, ...)
 #endif
 
 #define luaL_checkint32(L, n)  static_cast<int32_t>(luaL_checkinteger(L, (n)))

=== modified file 'src/scripting/lua_bases.h'
--- src/scripting/lua_bases.h	2014-06-12 07:22:23 +0000
+++ src/scripting/lua_bases.h	2014-06-23 20:29:05 +0000
@@ -39,7 +39,7 @@
 	LUNA_CLASS_HEAD(L_EditorGameBase);
 
 	L_EditorGameBase() {}
-	L_EditorGameBase(lua_State * L) {
+	L_EditorGameBase(lua_State* L) {
 		report_error(L, "Cannot instantiate a 'EditorGameBase' directly!");
 	}
 	virtual ~L_EditorGameBase() {}
@@ -72,7 +72,7 @@
 
 
 	L_PlayerBase() : m_pl(NONE) {}
-	L_PlayerBase(lua_State * L) : m_pl(NONE) {
+	L_PlayerBase (lua_State * L) : m_pl(NONE) {
 		report_error(L, "Cannot instantiate a 'PlayerBase' directly!");
 	}
 	L_PlayerBase(Widelands::Player_Number n) {

=== modified file 'src/scripting/lua_game.cc'
--- src/scripting/lua_game.cc	2014-06-21 10:24:12 +0000
+++ src/scripting/lua_game.cc	2014-06-23 20:29:05 +0000
@@ -96,8 +96,6 @@
 	METHOD(L_Player, reveal_scenario),
 	METHOD(L_Player, reveal_campaign),
 	METHOD(L_Player, get_buildings),
-	METHOD(L_Player, set_flag_style),
-	METHOD(L_Player, set_frontier_style),
 	METHOD(L_Player, get_suitability),
 	METHOD(L_Player, allow_workers),
 	METHOD(L_Player, switchplayer),
@@ -759,50 +757,6 @@
 }
 
 /* RST
-	.. method:: set_flag_style(name)
-
-		Sets the appearance of the flags for this player to the given style.
-		The style must be defined for the tribe.
-
-		:arg name: name of style
-		:type name: :class:`string`
-*/
-// UNTESTED, UNUSED so far
-int L_Player::set_flag_style(lua_State * L) {
-	Player & p = get(L, get_game(L));
-	const char * name = luaL_checkstring(L, 2);
-
-	try {
-		p.set_flag_style(p.tribe().flag_style_index(name));
-	} catch (Tribe_Descr::Nonexistent &) {
-		report_error(L, "Flag style <%s> does not exist!\n", name);
-	}
-	return 0;
-}
-
-/* RST
-	.. method:: set_frontier_style(name)
-
-		Sets the appearance of the frontiers for this player to the given style.
-		The style must be defined for the tribe.
-
-		:arg name: name of style
-		:type name: :class:`string`
-*/
-// UNTESTED, UNUSED so far
-int L_Player::set_frontier_style(lua_State * L) {
-	Player & p = get(L, get_game(L));
-	const char * name = luaL_checkstring(L, 2);
-
-	try {
-		p.set_frontier_style(p.tribe().frontier_style_index(name));
-	} catch (Tribe_Descr::Nonexistent &) {
-		report_error(L, "Frontier style <%s> does not exist!\n", name);
-	}
-	return 0;
-}
-
-/* RST
 	.. method:: get_suitability(building, field)
 
 		Returns the suitability that this building has for this field. This

=== modified file 'src/scripting/lua_game.h'
--- src/scripting/lua_game.h	2014-06-12 07:22:23 +0000
+++ src/scripting/lua_game.h	2014-06-23 20:29:05 +0000
@@ -88,8 +88,6 @@
 	int reveal_scenario(lua_State * L);
 	int reveal_campaign(lua_State * L);
 	int get_buildings(lua_State * L);
-	int set_flag_style(lua_State * L);
-	int set_frontier_style(lua_State * L);
 	int get_suitability(lua_State * L);
 	int allow_workers(lua_State * L);
 	int switchplayer(lua_State * L);
@@ -157,7 +155,7 @@
 
 	L_Message(uint8_t, Widelands::Message_Id);
 	L_Message() : m_plr(0), m_mid(0) {}
-	L_Message(lua_State * L) : m_plr(0) {
+	L_Message(lua_State * L) {
 		report_error(L, "Cannot instantiate a '%s' directly!", className);
 	}
 

=== modified file 'src/scripting/lua_map.h'
--- src/scripting/lua_map.h	2014-06-21 10:24:12 +0000
+++ src/scripting/lua_map.h	2014-06-23 20:29:05 +0000
@@ -163,7 +163,7 @@
 	/*
 	 * C Methods
 	 */
-	CASTED_GET(BaseImmovable);
+	CASTED_GET(BaseImmovable)
 };
 
 class L_PlayerImmovable : public L_BaseImmovable {
@@ -189,7 +189,7 @@
 	/*
 	 * C Methods
 	 */
-	CASTED_GET(PlayerImmovable);
+	CASTED_GET(PlayerImmovable)
 };
 
 class L_PortDock : public L_PlayerImmovable {
@@ -213,7 +213,7 @@
 	/*
 	 * C methods
 	 */
-	CASTED_GET(PortDock);
+	CASTED_GET(PortDock)
 };
 
 class L_Building : public L_PlayerImmovable {
@@ -239,7 +239,7 @@
 	/*
 	 * C Methods
 	 */
-	CASTED_GET(Building);
+	CASTED_GET(Building)
 };
 
 class L_Flag : public L_PlayerImmovable {

=== modified file 'src/wui/transport_draw.cc'
--- src/wui/transport_draw.cc	2014-02-22 16:49:17 +0000
+++ src/wui/transport_draw.cc	2014-06-23 20:29:05 +0000
@@ -41,7 +41,7 @@
 	};
 
 	dst.drawanim
-		(pos, owner().flag_anim(), game.get_gametime() - m_animstart, &owner());
+		(pos, owner().tribe().flag_animation(), game.get_gametime() - m_animstart, &owner());
 
 	const uint32_t ware_filled = m_ware_filled;
 	for (uint32_t i = 0; i < ware_filled; ++i) { //  draw wares

=== modified file 'src/wui/waresdisplay.cc'
--- src/wui/waresdisplay.cc	2014-06-08 21:47:45 +0000
+++ src/wui/waresdisplay.cc	2014-06-23 20:29:05 +0000
@@ -297,10 +297,8 @@
 	switch (m_type) {
 	case Widelands::wwWARE:
 		return m_tribe.wares_order();
-		break;
 	case Widelands::wwWORKER:
 		return m_tribe.workers_order();
-		break;
 	default:
 		throw wexception("Invalid m_type %d", m_type);
 	}
@@ -311,10 +309,8 @@
 	switch (m_type) {
 	case Widelands::wwWARE:
 		return m_tribe.wares_order_coords();
-		break;
 	case Widelands::wwWORKER:
 		return m_tribe.workers_order_coords();
-		break;
 	default:
 		throw wexception("Invalid m_type %d", m_type);
 	}

=== modified file 'tribes/atlanteans/conf'
--- tribes/atlanteans/conf	2014-06-22 16:33:32 +0000
+++ tribes/atlanteans/conf	2014-06-23 20:29:05 +0000
@@ -16,13 +16,11 @@
 
 # Some blue fires would be fine, but just an idea
 [frontier]
-name=frontier
 pics=pics/frontier_??.png
 hotspot=3 12
 
 # Not just a plain color, maybe a cross or some stribes
 [flag]
-name=flag
 pics=pics/flag_??.png
 hotspot=15 35
 fps=10

=== modified file 'tribes/barbarians/conf'
--- tribes/barbarians/conf	2014-06-22 16:33:32 +0000
+++ tribes/barbarians/conf	2014-06-23 20:29:05 +0000
@@ -16,13 +16,11 @@
 
 
 [frontier]
-name=frontier
 pics=pics/frontier_??.png
 hotspot=1 19
 
 
 [flag]
-name=flag
 pics=pics/flag_??.png
 hotspot=10 38
 fps=5

=== modified file 'tribes/empire/conf'
--- tribes/empire/conf	2014-06-22 16:33:32 +0000
+++ tribes/empire/conf	2014-06-23 20:29:05 +0000
@@ -16,13 +16,11 @@
 
 # No idea for the frontier. Maybe some javelins?
 [frontier]
-name=frontier
 pics=pics/frontier_??.png
 hotspot=1 19
 
 # Not just a plain color, maybe a cross or some stribes
 [flag]
-name=flag
 pics=pics/flag_??.png
 hotspot=14 38
 fps=10


Follow ups