← Back to team overview

widelands-dev team mailing list archive

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

 

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

Requested reviews:
  Widelands Developers (widelands-dev)

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

This fixes some issues clang-3.3 brought up on my system.

Also, this gets rid of HTML writing in the binary which was only half working forever and was not updated for changes in the engine in a long time. The reason I kill this now is that there were compile errors for clang and it did not seem worthwhile to fix them.
-- 
https://code.launchpad.net/~widelands-dev/widelands/clang33_fixes/+merge/186975
Your team Widelands Developers is requested to review the proposed merge of lp:~widelands-dev/widelands/clang33_fixes into lp:widelands.
=== removed file 'src/HTMLReferences.h'
--- src/HTMLReferences.h	2013-07-26 19:16:51 +0000
+++ src/HTMLReferences.h	1970-01-01 00:00:00 +0000
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2008 by the Widelands Development Team
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#ifndef HTML_REFERENCERS_H
-#define HTML_REFERENCERS_H
-
-#include <map>
-#include <set>
-#include <string>
-
-#include "logic/widelands.h"
-#include "writeHTML.h"
-
-#ifdef WRITE_GAME_DATA_AS_HTML
-
-struct HTMLReferences {
-	enum Role {Input, Output, Madeof, Become, Employ, End};
-	const std::set<std::string> & operator[] (size_t const i) const {
-		assert(i < End);
-		return references[i];
-	}
-	std::set<std::string>       & operator[] (size_t const i)       {
-		assert(i < End);
-		return references[i];
-	}
-	std::set<std::string> references[End]; /// indexed by Referencing_Role
-};
-
-#endif
-
-#endif

=== modified file 'src/economy/cmd_call_economy_balance.h'
--- src/economy/cmd_call_economy_balance.h	2013-07-26 20:19:36 +0000
+++ src/economy/cmd_call_economy_balance.h	2013-09-23 07:47:52 +0000
@@ -26,7 +26,7 @@
 
 namespace Widelands {
 class Economy;
-struct Game;
+class Game;
 struct Map_Map_Object_Loader;
 struct Map_Map_Object_Loader;
 
@@ -51,5 +51,3 @@
 }
 
 #endif
-
-

=== modified file 'src/economy/economy.h'
--- src/economy/economy.h	2013-07-26 20:19:36 +0000
+++ src/economy/economy.h	2013-09-23 07:47:52 +0000
@@ -34,8 +34,8 @@
 
 
 namespace Widelands {
-struct Player;
-struct Game;
+class Player;
+class Game;
 struct Flag;
 struct Route;
 struct RSPairStruct;

=== modified file 'src/economy/economy_data_packet.h'
--- src/economy/economy_data_packet.h	2013-04-22 20:15:00 +0000
+++ src/economy/economy_data_packet.h	2013-09-23 07:47:52 +0000
@@ -25,7 +25,7 @@
 
 namespace Widelands {
 class Economy;
-struct Game;
+class Game;
 struct Map_Map_Object_Loader;
 struct Map_Map_Object_Saver;
 
@@ -43,5 +43,3 @@
 }
 
 #endif
-
-

=== modified file 'src/economy/request.h'
--- src/economy/request.h	2013-07-25 21:05:20 +0000
+++ src/economy/request.h	2013-09-23 07:47:52 +0000
@@ -30,9 +30,9 @@
 namespace Widelands {
 
 class Economy;
-struct Editor_Game_Base;
+class Editor_Game_Base;
 struct Flag;
-struct Game;
+class Game;
 struct Map_Map_Object_Loader;
 struct Map_Map_Object_Saver;
 struct PlayerImmovable;

=== modified file 'src/economy/route.h'
--- src/economy/route.h	2013-07-26 20:19:36 +0000
+++ src/economy/route.h	2013-09-23 07:47:52 +0000
@@ -29,7 +29,7 @@
 namespace Widelands {
 
 struct Flag;
-struct Editor_Game_Base;
+class Editor_Game_Base;
 struct Map_Map_Object_Saver;
 struct Map_Map_Object_Loader;
 struct RoutingNode;

=== modified file 'src/economy/shippingitem.h'
--- src/economy/shippingitem.h	2013-04-22 20:15:00 +0000
+++ src/economy/shippingitem.h	2013-09-23 07:47:52 +0000
@@ -28,7 +28,7 @@
 namespace Widelands {
 
 class Economy;
-struct Game;
+class Game;
 struct Map_Map_Object_Loader;
 struct Map_Map_Object_Saver;
 class Map_Object;

=== modified file 'src/economy/supply.h'
--- src/economy/supply.h	2013-07-26 19:16:51 +0000
+++ src/economy/supply.h	2013-09-23 07:47:52 +0000
@@ -26,7 +26,7 @@
 namespace Widelands {
 
 struct PlayerImmovable;
-struct Game;
+class Game;
 struct Request;
 class Warehouse;
 struct Ware_Index;
@@ -107,5 +107,3 @@
 }
 
 #endif
-
-

=== modified file 'src/economy/supply_list.h'
--- src/economy/supply_list.h	2013-07-26 19:16:51 +0000
+++ src/economy/supply_list.h	2013-09-23 07:47:52 +0000
@@ -25,7 +25,7 @@
 
 namespace Widelands {
 
-struct Game;
+class Game;
 struct Request;
 struct Supply;
 
@@ -50,5 +50,3 @@
 }
 
 #endif
-
-

=== modified file 'src/economy/transfer.h'
--- src/economy/transfer.h	2013-07-26 20:19:36 +0000
+++ src/economy/transfer.h	2013-09-23 07:47:52 +0000
@@ -23,7 +23,7 @@
 #include "economy/route.h"
 
 namespace Widelands {
-struct Game;
+class Game;
 struct PlayerImmovable;
 struct Request;
 class WareInstance;
@@ -87,5 +87,3 @@
 }
 
 #endif
-
-

=== modified file 'src/economy/ware_instance.h'
--- src/economy/ware_instance.h	2013-07-26 20:19:36 +0000
+++ src/economy/ware_instance.h	2013-09-23 07:47:52 +0000
@@ -29,8 +29,8 @@
 
 class Building;
 class Economy;
-struct Editor_Game_Base;
-struct Game;
+class Editor_Game_Base;
+class Game;
 struct IdleWareSupply;
 class Map_Object;
 struct PlayerImmovable;
@@ -127,4 +127,3 @@
 
 
 #endif
-

=== modified file 'src/economy/wares_queue.h'
--- src/economy/wares_queue.h	2013-07-26 19:16:51 +0000
+++ src/economy/wares_queue.h	2013-09-23 07:47:52 +0000
@@ -26,11 +26,11 @@
 namespace Widelands {
 
 class Economy;
-struct Editor_Game_Base;
-struct Game;
+class Editor_Game_Base;
+class Game;
 struct Map_Map_Object_Loader;
 struct Map_Map_Object_Saver;
-struct Player;
+class Player;
 struct Request;
 struct WaresQueue;
 class Worker;
@@ -93,5 +93,3 @@
 }
 
 #endif
-
-

=== modified file 'src/editor/tools/editor_tool.h'
--- src/editor/tools/editor_tool.h	2013-07-26 20:19:36 +0000
+++ src/editor/tools/editor_tool.h	2013-09-23 07:47:52 +0000
@@ -28,7 +28,7 @@
 #include "logic/widelands_geometry.h"
 
 struct Editor_Interactive;
-namespace Widelands {struct Map;}
+namespace Widelands {class Map;}
 
 /**
  * An editor tool is a tool that can be selected in the editor. Examples are:

=== modified file 'src/editor/ui_menus/editor_player_menu_allowed_buildings_menu.h'
--- src/editor/ui_menus/editor_player_menu_allowed_buildings_menu.h	2013-07-26 19:16:51 +0000
+++ src/editor/ui_menus/editor_player_menu_allowed_buildings_menu.h	2013-09-23 07:47:52 +0000
@@ -26,7 +26,7 @@
 #include "ui_basic/textarea.h"
 #include "ui_basic/unique_window.h"
 
-namespace Widelands {struct Player;}
+namespace Widelands {class Player;}
 
 /**
  * Let's the user choose which buildings should be available

=== modified file 'src/game_io/game_cmd_queue_data_packet.h'
--- src/game_io/game_cmd_queue_data_packet.h	2013-07-26 20:19:36 +0000
+++ src/game_io/game_cmd_queue_data_packet.h	2013-09-23 07:47:52 +0000
@@ -24,7 +24,7 @@
 
 namespace Widelands {
 
-struct Game;
+class Game;
 
 /*
  * This contains all the preload data needed to identify

=== modified file 'src/game_io/game_data_packet.h'
--- src/game_io/game_data_packet.h	2013-01-08 17:05:51 +0000
+++ src/game_io/game_data_packet.h	2013-09-23 07:47:52 +0000
@@ -26,7 +26,7 @@
 
 namespace Widelands {
 
-struct Game;
+class Game;
 struct Map_Map_Object_Loader;
 struct Map_Map_Object_Saver;
 

=== modified file 'src/game_io/game_loader.h'
--- src/game_io/game_loader.h	2013-07-25 21:05:20 +0000
+++ src/game_io/game_loader.h	2013-09-23 07:47:52 +0000
@@ -28,7 +28,7 @@
 
 namespace Widelands {
 
-struct Game;
+class Game;
 struct Game_Preload_Data_Packet;
 
 /*

=== modified file 'src/game_io/game_saver.h'
--- src/game_io/game_saver.h	2013-01-08 17:05:51 +0000
+++ src/game_io/game_saver.h	2013-09-23 07:47:52 +0000
@@ -26,7 +26,7 @@
 
 namespace Widelands {
 
-struct Game;
+class Game;
 
 /**
  * This class writes a complete state

=== modified file 'src/gamecontroller.h'
--- src/gamecontroller.h	2013-08-01 10:51:41 +0000
+++ src/gamecontroller.h	2013-09-23 07:47:52 +0000
@@ -25,7 +25,7 @@
 #include "logic/widelands.h"
 
 namespace Widelands {
-struct Game;
+class Game;
 class PlayerCommand;
 enum class PlayerEndResult: uint8_t;
 }

=== modified file 'src/graphic/graphic.h'
--- src/graphic/graphic.h	2013-07-26 20:19:36 +0000
+++ src/graphic/graphic.h	2013-09-23 07:47:52 +0000
@@ -42,7 +42,7 @@
 class SurfaceCache;
 struct Road_Textures;
 struct SDL_Surface;
-struct StreamWrite;
+class StreamWrite;
 struct Texture;
 
 /// Stores the capabilities of opengl

=== modified file 'src/graphic/render/gamerenderer.h'
--- src/graphic/render/gamerenderer.h	2013-02-10 17:39:24 +0000
+++ src/graphic/render/gamerenderer.h	2013-09-23 07:47:52 +0000
@@ -25,8 +25,8 @@
 #include "point.h"
 
 namespace Widelands {
-	struct Player;
-	struct Editor_Game_Base;
+	class Player;
+	class Editor_Game_Base;
 };
 
 class RenderTarget;

=== modified file 'src/graphic/render/minimaprenderer.h'
--- src/graphic/render/minimaprenderer.h	2013-08-06 11:54:06 +0000
+++ src/graphic/render/minimaprenderer.h	2013-09-23 07:47:52 +0000
@@ -25,8 +25,8 @@
 
 class StreamWrite;
 namespace Widelands {
-	struct Player;
-	struct Editor_Game_Base;
+	class Player;
+	class Editor_Game_Base;
 };
 
 /**

=== modified file 'src/graphic/rendertarget.h'
--- src/graphic/rendertarget.h	2013-07-26 20:19:36 +0000
+++ src/graphic/rendertarget.h	2013-09-23 07:47:52 +0000
@@ -31,7 +31,7 @@
 class Surface;
 
 namespace Widelands {
-struct Player;
+class Player;
 };
 
 /**

=== modified file 'src/io/filesystem/filesystem.h'
--- src/io/filesystem/filesystem.h	2013-07-26 20:19:36 +0000
+++ src/io/filesystem/filesystem.h	2013-09-23 07:47:52 +0000
@@ -33,8 +33,8 @@
 
 typedef std::set<std::string> filenameset_t;
 
-struct StreamRead;
-struct StreamWrite;
+class StreamRead;
+class StreamWrite;
 
 
 /**

=== modified file 'src/io/streamread.h'
--- src/io/streamread.h	2013-07-26 19:16:51 +0000
+++ src/io/streamread.h	2013-09-23 07:47:52 +0000
@@ -42,7 +42,8 @@
  *
  * Convenience functions are provided for many data types.
  */
-struct StreamRead : boost::noncopyable {
+class StreamRead : boost::noncopyable {
+public:
 	explicit StreamRead() {}
 	virtual ~StreamRead();
 
@@ -79,4 +80,3 @@
 };
 
 #endif
-

=== modified file 'src/io/streamwrite.h'
--- src/io/streamwrite.h	2013-07-09 05:40:36 +0000
+++ src/io/streamwrite.h	2013-09-23 07:47:52 +0000
@@ -40,7 +40,8 @@
  *
  * Convenience functions are provided for many data types.
  */
-struct StreamWrite : boost::noncopyable {
+class StreamWrite : boost::noncopyable {
+public:
 	explicit StreamWrite() {}
 	virtual ~StreamWrite();
 

=== modified file 'src/journal_exceptions.h'
--- src/journal_exceptions.h	2013-07-26 19:16:51 +0000
+++ src/journal_exceptions.h	2013-09-23 07:47:52 +0000
@@ -21,6 +21,7 @@
 #define JOURNAL_EXCEPTIONS_H
 
 #include <stdexcept>
+#include <string>
 
 #include <stdint.h>
 

=== modified file 'src/logic/areawatcher.h'
--- src/logic/areawatcher.h	2013-07-26 20:19:36 +0000
+++ src/logic/areawatcher.h	2013-09-23 07:47:52 +0000
@@ -37,7 +37,7 @@
  * is destroyed. Use schedule_act to determine the area watcher's lifetime.
  */
 struct AreaWatcher : public Map_Object, private Player_Area<> {
-	friend struct Player;
+	friend class Player;
 	friend struct Map_Players_AreaWatchers_Data_Packet;
 	AreaWatcher(const Player_Area<>);
 	virtual int32_t get_type() const throw () {return AREAWATCHER;}

=== modified file 'src/logic/attackable.h'
--- src/logic/attackable.h	2012-02-15 21:25:34 +0000
+++ src/logic/attackable.h	2013-09-23 07:47:52 +0000
@@ -22,7 +22,7 @@
 
 namespace Widelands {
 
-struct Player;
+class Player;
 class Soldier;
 
 enum {

=== modified file 'src/logic/bob.h'
--- src/logic/bob.h	2013-07-26 20:19:36 +0000
+++ src/logic/bob.h	2013-09-23 07:47:52 +0000
@@ -27,10 +27,9 @@
 #include "point.h"
 #include "port.h"
 #include "logic/walkingdir.h"
-#include "writeHTML.h"
 
 namespace Widelands {
-struct Map;
+class Map;
 struct Route;
 struct Transfer;
 struct Tribe_Descr;
@@ -118,7 +117,7 @@
  * exists, it is always called just before the task is popped from the stack.
  */
 struct Bob : public Map_Object {
-	friend struct Map;
+	friend class Map;
 	friend struct Map_Bobdata_Data_Packet;
 	friend struct Map_Bob_Data_Packet;
 

=== modified file 'src/logic/building.h'
--- src/logic/building.h	2013-08-09 09:52:16 +0000
+++ src/logic/building.h	2013-09-23 07:47:52 +0000
@@ -34,7 +34,6 @@
 #include "logic/ware_types.h"
 #include "logic/widelands.h"
 #include "workarea_info.h"
-#include "writeHTML.h"
 
 namespace UI {class Window;}
 struct BuildingHints;
@@ -118,9 +117,6 @@
 		 bool                   loading = false,
 		 FormerBuildings former_buildings = FormerBuildings())
 		const;
-#ifdef WRITE_GAME_DATA_AS_HTML
-	void writeHTML(::FileWrite &) const;
-#endif
 	virtual void load_graphics();
 
 	virtual uint32_t get_conquers() const;

=== modified file 'src/logic/checkstep.h'
--- src/logic/checkstep.h	2013-07-26 20:19:36 +0000
+++ src/logic/checkstep.h	2013-09-23 07:47:52 +0000
@@ -29,8 +29,8 @@
 
 namespace Widelands {
 
-struct Map;
-struct Player;
+class Map;
+class Player;
 
 struct CheckStep {
 	enum StepId {

=== modified file 'src/logic/cmd_queue.h'
--- src/logic/cmd_queue.h	2013-07-26 20:19:36 +0000
+++ src/logic/cmd_queue.h	2013-09-23 07:47:52 +0000
@@ -28,7 +28,7 @@
 
 namespace Widelands {
 
-struct Editor_Game_Base;
+class Editor_Game_Base;
 struct Map_Map_Object_Saver;
 struct Map_Map_Object_Loader;
 
@@ -66,7 +66,7 @@
 // The price we pay is that when saving, we also have to traverse till we no
 // longer find any new command to write. This could theoretically take forever
 // but in my tests it was not noticeable.
-struct Game;
+class Game;
 
 /**
  * A command that is supposed to be executed at a certain gametime.

=== modified file 'src/logic/editor_game_base.h'
--- src/logic/editor_game_base.h	2013-08-01 10:51:41 +0000
+++ src/logic/editor_game_base.h	2013-09-23 07:47:52 +0000
@@ -43,24 +43,25 @@
 class Players_Manager;
 
 struct AreaWatcher;
-struct Battle;
+class Battle;
 struct Bob;
 struct Building_Descr;
 class Immovable;
-struct Map;
+class Map;
 struct Object_Manager;
-struct Player;
+class Player;
 struct PlayerImmovable;
 struct Tribe_Descr;
 struct Flag;
 struct AttackController;
 
-struct Editor_Game_Base :
+class Editor_Game_Base :
 	boost::noncopyable,
 	NoteReceiver<NoteImmovable>,
 	NoteReceiver<NoteFieldPossession>,
 	NoteReceiver<NoteFieldTransformed>
 {
+public:
 	friend struct ::Fullscreen_Menu_LaunchGame;
 	friend struct ::Interactive_Base;
 	friend struct Game_Game_Class_Data_Packet;

=== modified file 'src/logic/field.h'
--- src/logic/field.h	2013-07-26 20:19:36 +0000
+++ src/logic/field.h	2013-09-23 07:47:52 +0000
@@ -57,7 +57,7 @@
 /// a field like it is represented in the game
 /// \todo This is all one evil hack :(
 struct Field {
-	friend struct Map;
+	friend class Map;
 	friend struct Bob;
 	friend struct BaseImmovable;
 

=== modified file 'src/logic/findimmovable.h'
--- src/logic/findimmovable.h	2013-02-12 10:14:39 +0000
+++ src/logic/findimmovable.h	2013-09-23 07:47:52 +0000
@@ -26,7 +26,7 @@
 
 struct BaseImmovable;
 struct Immovable_Descr;
-struct Player;
+class Player;
 
 struct FindImmovable {
 private:

=== modified file 'src/logic/findnode.h'
--- src/logic/findnode.h	2013-07-26 19:16:51 +0000
+++ src/logic/findnode.h	2013-09-23 07:47:52 +0000
@@ -27,7 +27,7 @@
 namespace Widelands {
 
 struct FCoords;
-struct Map;
+class Map;
 
 struct FindNode {
 private:

=== modified file 'src/logic/game.h'
--- src/logic/game.h	2013-08-20 16:17:50 +0000
+++ src/logic/game.h	2013-09-23 07:47:52 +0000
@@ -47,7 +47,7 @@
 #define WLGF_SUFFIX ".wgf"
 #define WLGF_MAGIC      "WLgf"
 
-/** struct Game
+/** class Game
  *
  * This class manages the entire lifetime of a game session, from creating the
  * game and setting options, selecting maps to the actual playing phase and the
@@ -59,13 +59,14 @@
 	gs_ending
 };
 
-struct Player;
-struct Map_Loader;
+class Player;
+class Map_Loader;
 class PlayerCommand;
 class ReplayReader;
 class ReplayWriter;
 
-struct Game : Editor_Game_Base {
+class Game : public Editor_Game_Base {
+public:
 	struct General_Stats {
 		std::vector< uint32_t > land_size;
 		std::vector< uint32_t > nr_workers;

=== modified file 'src/logic/immovable.h'
--- src/logic/immovable.h	2013-07-28 23:13:01 +0000
+++ src/logic/immovable.h	2013-09-23 07:47:52 +0000
@@ -31,7 +31,7 @@
 
 class Economy;
 struct Flag;
-struct Map;
+class Map;
 struct Tribe_Descr;
 class WareInstance;
 class Worker;
@@ -129,7 +129,7 @@
 class Immovable : public BaseImmovable {
 	friend struct Immovable_Descr;
 	friend struct ImmovableProgram;
-	friend struct Map;
+	friend class Map;
 
 	MO_DESCR(Immovable_Descr);
 

=== modified file 'src/logic/instances.h'
--- src/logic/instances.h	2013-08-02 18:36:03 +0000
+++ src/logic/instances.h	2013-09-23 07:47:52 +0000
@@ -43,7 +43,7 @@
 namespace Widelands {
 
 struct Path;
-struct Player;
+class Player;
 struct Map_Map_Object_Loader;
 
 /**
@@ -128,7 +128,7 @@
  * \warning DO NOT allocate/free Map_Objects directly. Use the appropriate
  * type-dependent create() function for creation, and call die() for removal.
  *
- * \note Convenient creation functions are defined in struct Game.
+ * \note Convenient creation functions are defined in class Game.
  *
  * When you do create a new object yourself (i.e. when you're implementing one
  * of the create() functions), you need to allocate the object using new,

=== modified file 'src/logic/item_ware_descr.h'
--- src/logic/item_ware_descr.h	2013-07-26 20:19:36 +0000
+++ src/logic/item_ware_descr.h	2013-09-23 07:47:52 +0000
@@ -27,7 +27,6 @@
 
 #include "logic/instances.h"
 #include "io/filewrite.h"
-#include "writeHTML.h"
 
 struct Profile;
 struct Section;
@@ -94,9 +93,6 @@
 	}
 
 	virtual void load_graphics();
-#ifdef WRITE_GAME_DATA_AS_HTML
-	void writeHTML(::FileWrite &) const;
-#endif
 
 	/// returns the preciousness of the ware. It is used by the computer player
 	uint8_t preciousness() const {return m_preciousness;}

=== modified file 'src/logic/map.h'
--- src/logic/map.h	2013-09-14 19:10:06 +0000
+++ src/logic/map.h	2013-09-23 07:47:52 +0000
@@ -46,10 +46,10 @@
 struct MapGenerator;
 struct BaseImmovable;
 struct PathfieldManager;
-struct Player;
+class Player;
 struct World;
-struct Map;
-struct Map_Loader;
+class Map;
+class Map_Loader;
 #define WLMF_SUFFIX ".wmf"
 #define S2MF_SUFFIX ".swd"
 #define S2MF_SUFFIX2 ".wld"
@@ -101,7 +101,7 @@
 	virtual ~FindBobAlwaysTrue() {}  // make gcc shut up
 };
 
-/** struct Map
+/** class Map
  *
  * This really identifies a map like it is in the game
  *
@@ -115,12 +115,13 @@
  *
  * Warning: width and height must be even
  */
-struct Map :
-	ITransportCostCalculator,
-	NoteSender<NoteFieldTransformed>
+class Map :
+	public ITransportCostCalculator,
+	public NoteSender<NoteFieldTransformed>
 {
-	friend struct Editor_Game_Base;
-	friend struct Map_Loader;
+public:
+	friend class Editor_Game_Base;
+	friend class Map_Loader;
 	friend struct ::S2_Map_Loader;
 	friend struct WL_Map_Loader;
 	friend struct Map_Elemental_Data_Packet;

=== modified file 'src/logic/military_data.h'
--- src/logic/military_data.h	2013-07-26 20:19:36 +0000
+++ src/logic/military_data.h	2013-09-23 07:47:52 +0000
@@ -23,7 +23,6 @@
 #include <map>
 #include <vector>
 
-#include "HTMLReferences.h"
 #include "logic/bob.h"
 #include "logic/building.h"
 #include "descr_maintainer.h"

=== modified file 'src/logic/path.h'
--- src/logic/path.h	2013-07-26 20:19:36 +0000
+++ src/logic/path.h	2013-09-23 07:47:52 +0000
@@ -34,10 +34,10 @@
  * Represents a cross-country path found by Path::findpath, for example
  */
 struct CoordPath;
-struct Map;
+class Map;
 
 struct Path {
-	friend struct Map;
+	friend class Map;
 	friend struct MapAStarBase;
 
 	Path() {}
@@ -106,5 +106,3 @@
 }
 
 #endif
-
-

=== modified file 'src/logic/player.h'
--- src/logic/player.h	2013-09-21 10:01:23 +0000
+++ src/logic/player.h	2013-09-23 07:47:52 +0000
@@ -53,11 +53,12 @@
  * \ref GameController and friends, so that replays and network games function
  * properly.
  */
-struct Player :
+class Player :
 	boost::noncopyable,
 	public NoteReceiver<NoteImmovable>, public NoteReceiver<NoteFieldPossession>,
 	public NoteSender  <NoteImmovable>, public NoteSender  <NoteFieldPossession>
 {
+public:
 	// hard-coded playercolors
 	static const RGBColor Colors[MAX_PLAYERS];
 
@@ -68,7 +69,7 @@
 	typedef std::vector<Building_Stats> Building_Stats_vector;
 	typedef std::vector<Building_Stats_vector> BuildingStats;
 
-	friend struct Editor_Game_Base;
+	friend class Editor_Game_Base;
 	friend struct Game_Player_Info_Data_Packet;
 	friend struct Game_Player_Economies_Data_Packet;
 	friend struct Map_Buildingdata_Data_Packet;

=== modified file 'src/logic/playersmanager.h'
--- src/logic/playersmanager.h	2013-08-07 04:04:10 +0000
+++ src/logic/playersmanager.h	2013-09-23 07:47:52 +0000
@@ -30,7 +30,7 @@
 
 class Editor_Game_Base;
 class Player;
-struct Player;
+class Player;
 
 enum class PlayerEndResult : uint8_t
 	{PLAYER_LOST = 0, PLAYER_WON = 1, PLAYER_RESIGNED = 2, UNDEFINED = 255};

=== modified file 'src/logic/production_program.h'
--- src/logic/production_program.h	2013-07-26 20:19:36 +0000
+++ src/logic/production_program.h	2013-09-23 07:47:52 +0000
@@ -35,13 +35,12 @@
 #include "logic/tattribute.h"
 #include "logic/ware_types.h"
 #include "logic/widelands.h"
-#include "writeHTML.h"
 
 struct Profile;
 
 namespace Widelands {
 
-struct Game;
+class Game;
 struct Immovable_Descr;
 struct ProductionSite_Descr;
 class ProductionSite;
@@ -70,11 +69,6 @@
 		 * a failed status.
 		 */
 		virtual void building_work_failed(Game &, ProductionSite &, Worker &) const;
-
-#ifdef WRITE_GAME_DATA_AS_HTML
-		virtual void writeHTML(::FileWrite &, const ProductionSite_Descr &) const
-			= 0;
-#endif
 	};
 
 	/// A group of ware types with a count.
@@ -140,21 +134,12 @@
 		ActReturn(char * parameters, const ProductionSite_Descr &);
 		virtual ~ActReturn();
 		virtual void execute(Game &, ProductionSite &) const;
-#ifdef WRITE_GAME_DATA_AS_HTML
-		virtual void writeHTML
-			(::FileWrite &, const ProductionSite_Descr &) const;
-#endif
 
 		struct Condition {
 			virtual ~Condition();
 			virtual bool evaluate(const ProductionSite &) const = 0;
 			virtual std::string description(const Tribe_Descr &) const
 				= 0;
-#ifdef WRITE_GAME_DATA_AS_HTML
-			virtual void writeHTML
-				(::FileWrite &, const ProductionSite_Descr &) const
-				= 0;
-#endif
 		};
 		static Condition * create_condition
 			(char * & parameters, const ProductionSite_Descr &);
@@ -166,10 +151,6 @@
 			virtual ~Negation();
 			virtual bool evaluate(const ProductionSite &) const;
 			std::string description(const Tribe_Descr &) const;
-#ifdef WRITE_GAME_DATA_AS_HTML
-		virtual void writeHTML
-				(::FileWrite &, const ProductionSite_Descr &) const;
-#endif
 		private:
 			Condition * const operand;
 		};
@@ -179,10 +160,6 @@
 			Economy_Needs_Ware(const Ware_Index& i) : ware_type(i) {}
 			virtual bool evaluate(const ProductionSite &) const;
 			std::string description(const Tribe_Descr &) const;
-#ifdef WRITE_GAME_DATA_AS_HTML
-			virtual void writeHTML
-				(::FileWrite &, const ProductionSite_Descr &) const;
-#endif
 		private:
 			Ware_Index ware_type;
 		};
@@ -192,10 +169,6 @@
 			Economy_Needs_Worker(const Ware_Index& i) : worker_type(i) {}
 			virtual bool evaluate(const ProductionSite &) const;
 			std::string description(const Tribe_Descr &) const;
-#ifdef WRITE_GAME_DATA_AS_HTML
-			virtual void writeHTML
-				(::FileWrite &, const ProductionSite_Descr &) const;
-#endif
 		private:
 			Ware_Index worker_type;
 		};
@@ -207,10 +180,6 @@
 			Site_Has(char * & parameters, const ProductionSite_Descr &);
 			virtual bool evaluate(const ProductionSite &) const;
 			std::string description(const Tribe_Descr &) const;
-#ifdef WRITE_GAME_DATA_AS_HTML
-			virtual void writeHTML
-				(::FileWrite &, const ProductionSite_Descr &) const;
-#endif
 		private:
 			Ware_Type_Group group;
 		};
@@ -220,10 +189,6 @@
 		struct Workers_Need_Experience : public Condition {
 			virtual bool evaluate(const ProductionSite &) const;
 			std::string description(const Tribe_Descr &) const;
-#ifdef WRITE_GAME_DATA_AS_HTML
-		virtual void writeHTML
-			(::FileWrite &, const ProductionSite_Descr &) const;
-#endif
 		};
 
 		typedef std::vector<Condition *> Conditions;
@@ -266,10 +231,6 @@
 	struct ActCall : public Action {
 		ActCall(char * parameters, const ProductionSite_Descr &);
 		virtual void execute(Game &, ProductionSite &) const;
-#ifdef WRITE_GAME_DATA_AS_HTML
-		virtual void writeHTML
-			(::FileWrite &, const ProductionSite_Descr &) const;
-#endif
 	private:
 		ProductionProgram             * m_program;
 		Program_Result_Handling_Method m_handling_methods[3];
@@ -289,10 +250,6 @@
 		virtual void execute(Game &, ProductionSite &) const;
 		virtual bool get_building_work(Game &, ProductionSite &, Worker &) const;
 		virtual void building_work_failed(Game &, ProductionSite &, Worker &) const;
-#ifdef WRITE_GAME_DATA_AS_HTML
-		virtual void writeHTML
-			(::FileWrite &, const ProductionSite_Descr &) const;
-#endif
 		const std::string & program() const {return m_program;}
 	private:
 		std::string m_program;
@@ -311,10 +268,6 @@
 	struct ActSleep : public Action {
 		ActSleep(char * parameters, const ProductionSite_Descr &);
 		virtual void execute(Game &, ProductionSite &) const;
-#ifdef WRITE_GAME_DATA_AS_HTML
-		virtual void writeHTML
-			(::FileWrite &, const ProductionSite_Descr &) const;
-#endif
 	private:
 		Duration m_duration;
 	};
@@ -332,11 +285,6 @@
 	struct ActCheck_Map : public Action {
 		ActCheck_Map(char * parameters, const ProductionSite_Descr &);
 		virtual void execute(Game &, ProductionSite &) const;
-#ifdef WRITE_GAME_DATA_AS_HTML
-		virtual void writeHTML
-			(::FileWrite &, const ProductionSite_Descr &) const;
-
-#endif
 	private:
 		 enum {
 			 SEAFARING = 1
@@ -365,10 +313,6 @@
 			(char * parameters, ProductionSite_Descr &,
 			 const std::string & directory, Profile &);
 		virtual void execute(Game &, ProductionSite &) const;
-#ifdef WRITE_GAME_DATA_AS_HTML
-		virtual void writeHTML
-			(::FileWrite &, const ProductionSite_Descr &) const;
-#endif
 	private:
 		uint32_t m_id;
 		Duration m_duration;
@@ -419,10 +363,6 @@
 	struct ActConsume : public Action {
 		ActConsume(char * parameters, const ProductionSite_Descr &);
 		virtual void execute(Game &, ProductionSite &) const;
-#ifdef WRITE_GAME_DATA_AS_HTML
-		virtual void writeHTML
-			(::FileWrite &, const ProductionSite_Descr &) const;
-#endif
 		typedef std::vector<Ware_Type_Group> Groups;
 		const Groups & groups() const {return m_groups;}
 	private:
@@ -448,10 +388,6 @@
 		ActProduce(char * parameters, const ProductionSite_Descr &);
 		virtual void execute(Game &, ProductionSite &) const;
 		virtual bool get_building_work(Game &, ProductionSite &, Worker &) const;
-#ifdef WRITE_GAME_DATA_AS_HTML
-		virtual void writeHTML
-			(::FileWrite &, const ProductionSite_Descr &) const;
-#endif
 		typedef std::vector<std::pair<Ware_Index, uint8_t> > Items;
 		const Items & items() const {return m_items;}
 	private:
@@ -477,10 +413,6 @@
 		ActRecruit(char * parameters, const ProductionSite_Descr &);
 		virtual void execute(Game &, ProductionSite &) const;
 		virtual bool get_building_work(Game &, ProductionSite &, Worker &) const;
-#ifdef WRITE_GAME_DATA_AS_HTML
-		virtual void writeHTML
-			(::FileWrite &, const ProductionSite_Descr &) const;
-#endif
 		typedef std::vector<std::pair<Ware_Index, uint8_t> > Items;
 		const Items & items() const {return m_items;}
 	private:
@@ -493,10 +425,6 @@
 			 const std::string & production_program_name);
 		virtual void execute(Game &, ProductionSite &) const;
 		virtual void informPlayer(Game &, ProductionSite &) const;
-#ifdef WRITE_GAME_DATA_AS_HTML
-		virtual void writeHTML
-			(::FileWrite &, const ProductionSite_Descr &) const;
-#endif
 	private:
 		Resource_Index m_resource;
 		uint8_t        m_distance;
@@ -507,10 +435,6 @@
 	struct ActCheck_Soldier : public Action {
 		ActCheck_Soldier(char * parameters, const ProductionSite_Descr &);
 		virtual void execute(Game &, ProductionSite &) const;
-#ifdef WRITE_GAME_DATA_AS_HTML
-		virtual void writeHTML
-			(::FileWrite &, const ProductionSite_Descr &) const;
-#endif
 	private:
 		tAttribute attribute;
 		uint8_t level;
@@ -519,10 +443,6 @@
 	struct ActTrain : public Action {
 		ActTrain(char * parameters, const ProductionSite_Descr &);
 		virtual void execute(Game &, ProductionSite &) const;
-#ifdef WRITE_GAME_DATA_AS_HTML
-		virtual void writeHTML
-			(::FileWrite &, const ProductionSite_Descr &) const;
-#endif
 	private:
 		tAttribute attribute;
 		uint8_t level;
@@ -547,10 +467,6 @@
 	struct ActPlayFX : public Action {
 		ActPlayFX(const std::string & directory, char * parameters, const ProductionSite_Descr &);
 		virtual void execute(Game &, ProductionSite &) const;
-#ifdef WRITE_GAME_DATA_AS_HTML
-		virtual void writeHTML
-			(::FileWrite &, const ProductionSite_Descr &) const;
-#endif
 	private:
 		std::string name;
 		uint8_t     priority;
@@ -578,10 +494,6 @@
 
 		const Immovable_Descr & get_construction_descr(ProductionSite &) const;
 
-#ifdef WRITE_GAME_DATA_AS_HTML
-		virtual void writeHTML
-			(::FileWrite &, const ProductionSite_Descr &) const;
-#endif
 	private:
 		std::string objectname;
 		std::string workerprogram;
@@ -610,9 +522,6 @@
 	typedef std::vector<Action *> Actions;
 	const Actions & actions() const {return m_actions;}
 
-#ifdef WRITE_GAME_DATA_AS_HTML
-	void writeHTML(::FileWrite &, const ProductionSite_Descr &) const;
-#endif
 
 private:
 	std::string m_name;

=== modified file 'src/logic/productionsite.h'
--- src/logic/productionsite.h	2013-07-26 20:19:36 +0000
+++ src/logic/productionsite.h	2013-09-23 07:47:52 +0000
@@ -60,9 +60,6 @@
 		 const Tribe_Descr &);
 	virtual ~ProductionSite_Descr();
 
-#ifdef WRITE_GAME_DATA_AS_HTML
-	void writeHTMLProduction(::FileWrite &) const;
-#endif
 	virtual Building & create_object() const;
 
 	uint32_t nr_working_positions() const {

=== modified file 'src/logic/replay.h'
--- src/logic/replay.h	2013-07-25 21:05:20 +0000
+++ src/logic/replay.h	2013-09-23 07:47:52 +0000
@@ -40,10 +40,10 @@
 
 namespace Widelands {
 struct Command;
-struct Game;
+class Game;
 class PlayerCommand;
-struct StreamRead;
-struct StreamWrite;
+class StreamRead;
+class StreamWrite;
 
 /**
  * Read game replays from disk.
@@ -82,4 +82,3 @@
 }
 
 #endif
-

=== modified file 'src/logic/requirements.h'
--- src/logic/requirements.h	2013-07-26 20:19:36 +0000
+++ src/logic/requirements.h	2013-09-23 07:47:52 +0000
@@ -33,7 +33,7 @@
 namespace Widelands {
 
 class Map_Object;
-struct Editor_Game_Base;
+class Editor_Game_Base;
 struct Map_Map_Object_Loader;
 struct Map_Map_Object_Saver;
 

=== modified file 'src/logic/soldier.h'
--- src/logic/soldier.h	2013-09-14 14:52:25 +0000
+++ src/logic/soldier.h	2013-09-23 07:47:52 +0000
@@ -33,8 +33,8 @@
 #define WEAKEST   0
 #define STRONGEST 1
 
-struct Editor_Game_Base;
-struct Battle;
+class Editor_Game_Base;
+class Battle;
 
 #define HP_FRAMECOLOR RGBColor(255, 255, 255)
 
@@ -82,9 +82,6 @@
 
 
 	uint32_t get_rand_anim(Game & game, const char * const name) const;
-#ifdef WRITE_GAME_DATA_AS_HTML
-	void writeHTMLSoldier(::FileWrite &) const;
-#endif
 
 protected:
 	virtual Bob & create_object() const;

=== modified file 'src/logic/tribe.cc'
--- src/logic/tribe.cc	2013-08-02 14:20:21 +0000
+++ src/logic/tribe.cc	2013-09-23 07:47:52 +0000
@@ -333,19 +333,6 @@
 	} catch (const _wexception & e) {
 		throw game_data_error(_("tribe %s: %s"), tribename.c_str(), e.what());
 	}
-#ifdef WRITE_GAME_DATA_AS_HTML
-	if (g_options.pull_section("global").get_bool("write_HTML", false)) {
-		m_ware_references     = new HTMLReferences[get_nrwares    ().value()];
-		m_worker_references   = new HTMLReferences[get_nrworkers  ().value()];
-		m_building_references = new HTMLReferences[get_nrbuildings().value()];
-		writeHTMLBuildings(path);
-		writeHTMLWorkers  (path);
-		writeHTMLWares    (path);
-		delete[] m_building_references;
-		delete[] m_worker_references;
-		delete[] m_ware_references;
-	}
-#endif
 }
 
 

=== modified file 'src/logic/tribe.h'
--- src/logic/tribe.h	2013-08-02 14:20:21 +0000
+++ src/logic/tribe.h	2013-09-23 07:47:52 +0000
@@ -23,7 +23,6 @@
 #include <map>
 #include <vector>
 
-#include "HTMLReferences.h"
 #include "TribeBasicInfo.h"
 #include "logic/bob.h"
 #include "logic/building.h"
@@ -40,7 +39,7 @@
 class Warehouse;
 class Worker_Descr;
 struct Building_Descr;
-struct Editor_Game_Base;
+class Editor_Game_Base;
 struct Event;
 struct Item_Ware_Descr;
 struct Resource_Descr;
@@ -237,21 +236,6 @@
 
 	const std::vector<std::string> & compatibility_immovable(const std::string & name) const;
 
-#ifdef WRITE_GAME_DATA_AS_HTML
-	void referenceBuilding
-		(::FileWrite &, const std::string &, HTMLReferences::Role,
-		 Building_Index)
-		const;
-	void referenceWorker
-		(::FileWrite &, const std::string &, HTMLReferences::Role,
-		 Ware_Index,     uint8_t multiplicity = 1)
-		const;
-	void referenceWare
-		(::FileWrite &, const std::string &, HTMLReferences::Role,
-		 Ware_Index,     uint8_t multiplicity = 1)
-		const;
-#endif
-
 private:
 	const std::string m_name;
 	const World & m_world;
@@ -285,15 +269,6 @@
 	Compatibility m_compatibility_immovable;
 	std::map<std::string, std::string> m_compatibility_wares;
 
-#ifdef WRITE_GAME_DATA_AS_HTML
-	void writeHTMLBuildings(const std::string & directory);
-	void writeHTMLWorkers  (const std::string & directory);
-	void writeHTMLWares    (const std::string & directory);
-	void writeHTMLBobs     (const std::string & directory);
-	HTMLReferences * m_ware_references;
-	HTMLReferences * m_worker_references;
-	HTMLReferences * m_building_references;
-#endif
 };
 
 }

=== modified file 'src/logic/warehouse.h'
--- src/logic/warehouse.h	2013-08-08 20:02:13 +0000
+++ src/logic/warehouse.h	2013-09-23 07:47:52 +0000
@@ -31,7 +31,7 @@
 
 namespace Widelands {
 
-struct Editor_Game_Base;
+class Editor_Game_Base;
 struct PortDock;
 struct Request;
 struct Requirements;

=== modified file 'src/logic/widelands_streamread.h'
--- src/logic/widelands_streamread.h	2013-07-26 20:19:36 +0000
+++ src/logic/widelands_streamread.h	2013-09-23 07:47:52 +0000
@@ -29,7 +29,7 @@
 namespace Widelands {
 
 struct Building_Descr;
-struct Editor_Game_Base;
+class Editor_Game_Base;
 struct Immovable_Descr;
 struct Tribe_Descr;
 struct World;
@@ -38,7 +38,8 @@
 /// members. Therefore it is binary compatible with StreamRead, so any
 /// ::StreamRead can be used as a Widelands::StreamRead to read
 /// Widelands-specific types.
-struct StreamRead : public ::StreamRead {
+class StreamRead : public ::StreamRead {
+public:
 	struct direction_is_null : public _data_error {
 		direction_is_null
 			()

=== modified file 'src/logic/widelands_streamwrite.h'
--- src/logic/widelands_streamwrite.h	2013-07-26 20:19:36 +0000
+++ src/logic/widelands_streamwrite.h	2013-09-23 07:47:52 +0000
@@ -36,7 +36,8 @@
 /// members. Therefore it is binary compatible with StreamWrite, so any
 /// ::StreamWrite can be used as a Widelands::StreamWrite to read
 /// Widelands-specific types.
-struct StreamWrite : public ::StreamWrite {
+class StreamWrite : public ::StreamWrite {
+public:
 	void Direction8           (Direction);
 	void Direction8_allow_null(Direction);
 	void Map_Index32(Map_Index const i) {Unsigned32(i);}

=== modified file 'src/logic/worker.h'
--- src/logic/worker.h	2013-07-26 20:19:36 +0000
+++ src/logic/worker.h	2013-09-23 07:47:52 +0000
@@ -70,9 +70,6 @@
 		std::string sparam1;
 
 		std::vector<std::string> sparamv;
-#ifdef WRITE_GAME_DATA_AS_HTML
-		void writeHTML(::FileWrite &, const Worker_Descr &) const;
-#endif
 	};
 
 

=== modified file 'src/logic/worker_descr.h'
--- src/logic/worker_descr.h	2013-07-26 20:19:36 +0000
+++ src/logic/worker_descr.h	2013-09-23 07:47:52 +0000
@@ -117,9 +117,6 @@
 	const std::string & compatibility_program(const std::string & programname) const;
 
 protected:
-#ifdef WRITE_GAME_DATA_AS_HTML
-	void writeHTML(::FileWrite &) const;
-#endif
 
 	std::string       m_helptext;   ///< Short (tooltip-like) help text
 	Point             m_ware_hotspot;

=== modified file 'src/logic/worker_program.h'
--- src/logic/worker_program.h	2013-07-26 20:19:36 +0000
+++ src/logic/worker_program.h	2013-09-23 07:47:52 +0000
@@ -23,7 +23,6 @@
 #include "logic/bob.h"
 #include "workarea_info.h"
 #include "logic/worker.h"
-#include "writeHTML.h"
 
 namespace Widelands {
 
@@ -59,9 +58,6 @@
 
 	void parse(Worker_Descr *, Parser *, char const * name);
 	const Workarea_Info & get_workarea_info() const {return m_workarea_info;}
-#ifdef WRITE_GAME_DATA_AS_HTML
-	void writeHTML(::FileWrite &, const Worker_Descr &) const;
-#endif
 
 private:
 	Workarea_Info m_workarea_info;

=== modified file 'src/logic/world.h'
--- src/logic/world.h	2013-07-26 20:19:36 +0000
+++ src/logic/world.h	2013-09-23 07:47:52 +0000
@@ -30,7 +30,7 @@
 
 namespace Widelands {
 
-struct Editor_Game_Base;
+class Editor_Game_Base;
 
 #define WORLD_NAME_LEN 128
 #define WORLD_AUTHOR_LEN 128
@@ -292,7 +292,7 @@
   * it can read a world file.
   */
 struct World : boost::noncopyable {
-	friend struct Game;
+	friend class Game;
 
 	enum {
 		OK = 0,

=== modified file 'src/map_generator.h'
--- src/map_generator.h	2013-07-23 18:04:32 +0000
+++ src/map_generator.h	2013-09-23 07:47:52 +0000
@@ -30,8 +30,8 @@
 
 namespace Widelands {
 
-struct Map;
-struct Editor_Game_Base;
+class Map;
+class Editor_Game_Base;
 
 /**
  * This helper class repesents the complete map initialization

=== modified file 'src/map_io/map_loader.h'
--- src/map_io/map_loader.h	2012-02-15 21:25:34 +0000
+++ src/map_io/map_loader.h	2013-09-23 07:47:52 +0000
@@ -24,7 +24,7 @@
 
 namespace Widelands {
 
-struct Editor_Game_Base;
+class Editor_Game_Base;
 
 /// Loads a map from a file. It firsts only loads small chunks of information
 /// like size, nr of players for the map select dialog. For this loading
@@ -32,7 +32,8 @@
 /// selected, the Map is completely filled with objects and information. When
 /// now the player selects another map, this Map must be destroyed, a new one
 /// must be selected.
-struct Map_Loader {
+class Map_Loader {
+public:
 	Map_Loader(char const * const filename, Map & M)
 		: m_map(M), m_s(STATE_INIT) {m_map.set_filename(filename);}
 	virtual ~Map_Loader() {};

=== modified file 'src/map_io/widelands_map_bob_data_packet.h'
--- src/map_io/widelands_map_bob_data_packet.h	2013-07-26 20:19:36 +0000
+++ src/map_io/widelands_map_bob_data_packet.h	2013-09-23 07:47:52 +0000
@@ -26,7 +26,7 @@
 
 namespace Widelands {
 
-struct StreamRead;
+class StreamRead;
 
 /**
  * This data packet contains the various bobs on

=== modified file 'src/map_io/widelands_map_buildingdata_data_packet.cc'
--- src/map_io/widelands_map_buildingdata_data_packet.cc	2013-08-09 09:52:16 +0000
+++ src/map_io/widelands_map_buildingdata_data_packet.cc	2013-09-23 07:47:52 +0000
@@ -261,7 +261,7 @@
 	} else if (is_a(Warehouse, &b)) {
 		assert(b.m_old_buildings.empty());
 		b.m_old_buildings.push_back(b_idx);
-	} else if (upcast(DismantleSite, dsite, &b)) {
+	} else if (is_a(DismantleSite, &b)) {
 		// Former buildings filled with the current one
 		// upon building init.
 		assert(!b.m_old_buildings.empty());

=== modified file 'src/map_io/widelands_map_buildingdata_data_packet.h'
--- src/map_io/widelands_map_buildingdata_data_packet.h	2013-07-26 20:19:36 +0000
+++ src/map_io/widelands_map_buildingdata_data_packet.h	2013-09-23 07:47:52 +0000
@@ -29,7 +29,7 @@
 class ConstructionSite;
 class Partially_Finished_Building;
 class DismantleSite;
-struct Game;
+class Game;
 class MilitarySite;
 class TrainingSite;
 class ProductionSite;

=== modified file 'src/map_io/widelands_map_data_packet.h'
--- src/map_io/widelands_map_data_packet.h	2013-07-25 21:05:20 +0000
+++ src/map_io/widelands_map_data_packet.h	2013-09-23 07:47:52 +0000
@@ -27,7 +27,7 @@
 
 namespace Widelands {
 
-struct Editor_Game_Base;
+class Editor_Game_Base;
 struct Map_Map_Object_Loader;
 struct Map_Map_Object_Saver;
 

=== modified file 'src/map_io/widelands_map_elemental_data_packet.h'
--- src/map_io/widelands_map_elemental_data_packet.h	2013-07-26 20:19:36 +0000
+++ src/map_io/widelands_map_elemental_data_packet.h	2013-09-23 07:47:52 +0000
@@ -24,7 +24,7 @@
 
 namespace Widelands {
 
-struct Map;
+class Map;
 
 /*
  * The elemental data packet contains all basic and elemental data

=== modified file 'src/map_io/widelands_map_loader.h'
--- src/map_io/widelands_map_loader.h	2013-07-26 20:19:36 +0000
+++ src/map_io/widelands_map_loader.h	2013-09-23 07:47:52 +0000
@@ -29,7 +29,7 @@
 
 namespace Widelands {
 
-struct Editor_Game_Base;
+class Editor_Game_Base;
 struct Map_Map_Object_Loader;
 
 /// Takes ownership of the filesystem that is passed to it.

=== modified file 'src/map_io/widelands_map_map_object_loader.h'
--- src/map_io/widelands_map_map_object_loader.h	2013-07-26 19:16:51 +0000
+++ src/map_io/widelands_map_map_object_loader.h	2013-09-23 07:47:52 +0000
@@ -34,7 +34,7 @@
 namespace Widelands {
 struct Bob;
 class Map_Object;
-struct Editor_Game_Base;
+class Editor_Game_Base;
 
 /*
  * This class helps to

=== modified file 'src/map_io/widelands_map_object_packet.h'
--- src/map_io/widelands_map_object_packet.h	2013-07-26 19:16:51 +0000
+++ src/map_io/widelands_map_object_packet.h	2013-09-23 07:47:52 +0000
@@ -28,7 +28,7 @@
 
 namespace Widelands {
 
-struct Editor_Game_Base;
+class Editor_Game_Base;
 struct Map_Map_Object_Loader;
 struct Map_Map_Object_Saver;
 

=== modified file 'src/map_io/widelands_map_player_names_and_tribes_data_packet.h'
--- src/map_io/widelands_map_player_names_and_tribes_data_packet.h	2013-07-26 20:19:36 +0000
+++ src/map_io/widelands_map_player_names_and_tribes_data_packet.h	2013-09-23 07:47:52 +0000
@@ -24,7 +24,7 @@
 
 namespace Widelands {
 
-struct Map;
+class Map;
 
 /*
  * This data packet contains player names

=== modified file 'src/map_io/widelands_map_port_spaces_data_packet.h'
--- src/map_io/widelands_map_port_spaces_data_packet.h	2013-07-26 20:19:36 +0000
+++ src/map_io/widelands_map_port_spaces_data_packet.h	2013-09-23 07:47:52 +0000
@@ -24,7 +24,7 @@
 
 namespace Widelands {
 
-struct Map;
+class Map;
 
 /// The port data packet contains all port build spaces
 struct Map_Port_Spaces_Data_Packet : public Map_Data_Packet {

=== modified file 'src/map_io/widelands_map_saver.h'
--- src/map_io/widelands_map_saver.h	2013-01-08 17:05:51 +0000
+++ src/map_io/widelands_map_saver.h	2013-09-23 07:47:52 +0000
@@ -26,7 +26,7 @@
 
 namespace Widelands {
 
-struct Editor_Game_Base;
+class Editor_Game_Base;
 struct Map_Map_Object_Saver;
 
 /*

=== modified file 'src/network/nethost.cc'
--- src/network/nethost.cc	2013-09-21 09:10:41 +0000
+++ src/network/nethost.cc	2013-09-23 07:47:52 +0000
@@ -2997,7 +2997,6 @@
 	}
 
 	dedicatedlog
-		("NetHost::report_result(%d, %d, %s)\n",
-		 player->player_number(), result, info.c_str());
+		("NetHost::report_result(%d, %u, %s)\n",
+		 player->player_number(), static_cast<uint8_t>(result), info.c_str());
 }
-

=== modified file 'src/profile/profile.h'
--- src/profile/profile.h	2013-07-26 19:16:51 +0000
+++ src/profile/profile.h	2013-09-23 07:47:52 +0000
@@ -35,7 +35,7 @@
 
 namespace Widelands {
 struct Building_Descr;
-struct Editor_Game_Base;
+class Editor_Game_Base;
 struct Immovable_Descr;
 };
 

=== modified file 'src/random.h'
--- src/random.h	2012-02-15 21:25:34 +0000
+++ src/random.h	2013-09-23 07:47:52 +0000
@@ -24,8 +24,8 @@
 
 extern const uint32_t rng_sbox[256];
 
-struct StreamRead;
-struct StreamWrite;
+class StreamRead;
+class StreamWrite;
 
 struct RNG {
 	RNG ();

=== modified file 'src/save_handler.h'
--- src/save_handler.h	2013-07-26 19:16:51 +0000
+++ src/save_handler.h	2013-09-23 07:47:52 +0000
@@ -25,7 +25,7 @@
 
 #include <stdint.h>
 
-namespace Widelands {struct Game;}
+namespace Widelands {class Game;}
 
 // default autosave interval in minutes
 #define DEFAULT_AUTOSAVE_INTERVAL 15

=== modified file 'src/scripting/coroutine_impl.h'
--- src/scripting/coroutine_impl.h	2013-07-26 20:19:36 +0000
+++ src/scripting/coroutine_impl.h	2013-09-23 07:47:52 +0000
@@ -23,7 +23,7 @@
 #include "scripting/scripting.h"
 
 namespace Widelands {
-	struct Player;
+	class Player;
 }
 
 /*
@@ -61,4 +61,3 @@
 
 
 #endif /* end of include guard: COROUTINE_IMPL_H */
-

=== modified file 'src/scripting/persistence.h'
--- src/scripting/persistence.h	2013-07-25 21:05:20 +0000
+++ src/scripting/persistence.h	2013-09-23 07:47:52 +0000
@@ -30,8 +30,8 @@
 namespace Widelands {
 	struct Map_Map_Object_Loader;
 	struct Map_Map_Object_Saver;
-	struct Editor_Game_Base;
-	struct Game;
+	class Editor_Game_Base;
+	class Game;
 }
 
 
@@ -49,4 +49,3 @@
 	 uint32_t size);
 
 #endif /* end of include guard: PERSISTENCE_H */
-

=== modified file 'src/scripting/scripting.h'
--- src/scripting/scripting.h	2013-07-26 19:16:51 +0000
+++ src/scripting/scripting.h	2013-09-23 07:47:52 +0000
@@ -31,11 +31,11 @@
 #include "wexception.h"
 
 namespace Widelands {
-	struct Editor_Game_Base;
-	struct Game;
+	class Editor_Game_Base;
+	class Game;
 	struct Map_Map_Object_Loader;
 	struct Map_Map_Object_Saver;
-	struct Player;
+	class Player;
 }
 
 struct LuaError : public _wexception {

=== modified file 'src/sound/sound_handler.h'
--- src/sound/sound_handler.h	2013-07-26 20:19:36 +0000
+++ src/sound/sound_handler.h	2013-09-23 07:47:52 +0000
@@ -34,7 +34,7 @@
 #include "logic/widelands_geometry.h"
 #include "random.h"
 
-namespace Widelands {struct Editor_Game_Base;}
+namespace Widelands {class Editor_Game_Base;}
 struct Songset;
 struct SDL_mutex;
 

=== modified file 'src/ui_basic/table.cc'
--- src/ui_basic/table.cc	2013-08-07 04:01:58 +0000
+++ src/ui_basic/table.cc	2013-09-23 07:47:52 +0000
@@ -427,9 +427,12 @@
 		}
 
 		// Ensure scroll_item is visible
-		if (scroll_item * get_lineheight() < static_cast<int32_t>(m_scrollpos)) {
+		if (static_cast<int32_t>(scroll_item * get_lineheight()) < m_scrollpos) {
 			m_scrollbar->set_scrollpos(scroll_item * get_lineheight());
-		} else if ((scroll_item + 1) * get_lineheight() - get_inner_h() > m_scrollpos) {
+		} else if
+			(static_cast<int32_t>((scroll_item + 1) * get_lineheight() - get_inner_h())
+			 > m_scrollpos)
+		{
 			m_scrollbar->set_scrollpos((scroll_item + 1) * get_lineheight() - get_inner_h());
 		}
 	}

=== modified file 'src/ui_fsmenu/loadgame.h'
--- src/ui_fsmenu/loadgame.h	2013-08-12 09:06:15 +0000
+++ src/ui_fsmenu/loadgame.h	2013-09-23 07:47:52 +0000
@@ -34,10 +34,10 @@
 
 class IImageLoader;
 namespace Widelands {
-struct Editor_Game_Base;
-struct Game;
-struct Map;
-struct Map_Loader;
+class Editor_Game_Base;
+class Game;
+class Map;
+class Map_Loader;
 };
 class Image;
 class RenderTarget;

=== modified file 'src/ui_fsmenu/loadreplay.h'
--- src/ui_fsmenu/loadreplay.h	2013-08-02 10:45:32 +0000
+++ src/ui_fsmenu/loadreplay.h	2013-09-23 07:47:52 +0000
@@ -26,7 +26,7 @@
 #include "ui_basic/textarea.h"
 
 namespace Widelands
-{struct Game;}
+{class Game;}
 /**
  * Select a replay from a list of replays.
  */

=== modified file 'src/wlapplication.cc'
--- src/wlapplication.cc	2013-09-15 10:17:49 +0000
+++ src/wlapplication.cc	2013-09-23 07:47:52 +0000
@@ -1385,8 +1385,6 @@
 			 "                      Whether to enter roadbuilding mode\n"
 			 "                      automatically after placing a flag that is\n"
 			 "                      not connected to a road.\n"
-			 " --write_HTML=[yes|no]\n"
-			 "                      Write HTML-helpfiles for parsed game data.\n"
 			 "\n"
 			 "Graphic options:\n"
 			 " --fullscreen=[yes|no]\n"

=== modified file 'src/wlapplication.h'
--- src/wlapplication.h	2013-07-25 21:05:20 +0000
+++ src/wlapplication.h	2013-09-23 07:47:52 +0000
@@ -32,7 +32,7 @@
 #include "point.h"
 
 
-namespace Widelands {struct Game;}
+namespace Widelands {class Game;}
 struct Journal;
 
 ///Thrown if a commandline parameter is faulty

=== removed file 'src/writeHTML.cc'
--- src/writeHTML.cc	2013-07-26 19:16:51 +0000
+++ src/writeHTML.cc	1970-01-01 00:00:00 +0000
@@ -1,1516 +0,0 @@
-/*
- * Copyright (C) 2008-2010 by the Widelands Development Team
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#include "writeHTML.h"
-
-#include <boost/format.hpp>
-
-#ifdef WRITE_GAME_DATA_AS_HTML
-
-#include "i18n.h"
-#include "io/filesystem/disk_filesystem.h"
-#include "logic/item_ware_descr.h"
-#include "logic/productionsite.h"
-#include "logic/soldier.h"
-#include "logic/tribe.h"
-#include "logic/worker.h"
-#include "logic/worker_program.h"
-#include "logic/world.h"
-#include "upcast.h"
-
-using boost::format;
-
-void writeCrossReferences(FileWrite & fw, const HTMLReferences & references) {
-	if (references[HTMLReferences::Input].size()) {
-		fw.Text("<h2 id=\"requesters\">");
-		fw.Text(_("Requesters"));
-		fw.Text
-			("</h2>\n"
-			 "<ul>\n");
-		container_iterate_const
-			(std::set<std::string>, references[HTMLReferences::Input], i)
-		{
-			fw.Text("<li><a href=\"../");
-			fw.Text(*i.current);
-			fw.Text("\"/></a></li>\n");
-		}
-		fw.Text("</ul>\n");
-	}
-	if (references[HTMLReferences::Output].size()) {
-		fw.Text("<h2 id=\"providers\">");
-		fw.Text(_("Providers"));
-		fw.Text
-			("</h2>\n"
-			 "<ul>\n");
-		container_iterate_const
-			(std::set<std::string>, references[HTMLReferences::Output], i)
-		{
-			fw.Text("<li><a href=\"../");
-			fw.Text(*i.current);
-			fw.Text("\"/></a></li>\n");
-		}
-		fw.Text("</ul>\n");
-	}
-	if (references[HTMLReferences::Madeof].size()) {
-		fw.Text("<h2 id=\"successors\">");
-		fw.Text(_("Successors"));
-		fw.Text
-			("</h2>\n"
-			 "<ul>\n");
-		container_iterate_const
-			(std::set<std::string>, references[HTMLReferences::Madeof], i)
-		{
-			fw.Text("<li><a href=\"../");
-			fw.Text(*i.current);
-			fw.Text("\"/></a></li>\n");
-		}
-		fw.Text("</ul>\n");
-	}
-	if (references[HTMLReferences::Become].size()) {
-		fw.Text("<h2 id=\"predecessors\">");
-		fw.Text(_("Predecessors"));
-		fw.Text
-			("</h2>\n"
-			 "<ul>\n");
-		container_iterate_const
-			(std::set<std::string>, references[HTMLReferences::Become], i)
-		{
-			fw.Text("<li><a href=\"../");
-			fw.Text(*i.current);
-			fw.Text("\"/></a></li>\n");
-		}
-		fw.Text("</ul>\n");
-	}
-	if (references[HTMLReferences::Employ].size()) {
-		fw.Text("<h2 id=\"employers\">");
-		fw.Text(_("Employers"));
-		fw.Text
-			("</h2>\n"
-			 "<ul>\n");
-		container_iterate_const
-			(std::set<std::string>, references[HTMLReferences::Employ], i)
-		{
-			fw.Text("<li><a href=\"../");
-			fw.Text(*i.current);
-			fw.Text("\"/></a></li>\n");
-		}
-		fw.Text("</ul>\n");
-	}
-}
-
-namespace Widelands {
-
-void Tribe_Descr::referenceBuilding
-	(::FileWrite        &       fw,
-	 const std::string  &       backlink,
-	 HTMLReferences::Role const role,
-	 Building_Index       const index)
-	const
-{
-	assert(index < get_nrbuildings());
-	m_building_references[index.value()][role].insert(backlink);
-	const Building_Descr & descr = *get_building_descr(index);
-	const std::string & building_name     = descr.name    ();
-	const std::string & building_descname = descr.descname();
-	fw.Text(building_name);
-	fw.Text("\" href=\"../");
-	if (descr.global())
-		fw.Text("../../global/militarysites");
-	fw.Text(building_name);
-	fw.Text("/index_" + i18n::get_locale() + ".xhtml\" title=\"");
-	fw.Text(building_descname);
-	fw.Text("\"><img src=\"../");
-	if (descr.global())
-		fw.Text("../../global/militarysites");
-	fw.Text(building_name);
-	fw.Text("/menu.png\" alt=\"");
-	fw.Text(building_descname);
-	fw.Text("\"/>");
-}
-void Tribe_Descr::referenceWorker
-	(::FileWrite        &       fw,
-	 const std::string  &       backlink,
-	 HTMLReferences::Role const role,
-	 Ware_Index           const index,
-	 uint8_t                    multiplicity)
-	const
-{
-	assert(index < get_nrworkers());
-	m_worker_references[index.value()][role].insert(backlink);
-	const Worker_Descr & descr = *get_worker_descr(index);
-	const std::string & worker_name     = descr.name    ();
-	const std::string & worker_descname = descr.descname();
-	fw.Text(worker_name);
-	fw.Text("\" href=\"../");
-	fw.Text(worker_name);
-	fw.Text("/index_" + i18n::get_locale() + ".xhtml\" title=\"");
-	fw.Text(worker_descname);
-	fw.Text("\">");
-	for (; multiplicity; --multiplicity) {
-		fw.Text("<img src=\"../");
-		fw.Text(worker_name);
-		fw.Text("/menu.png\" alt=\"");
-		fw.Text(worker_descname);
-		fw.Text("\"/>");
-	}
-}
-void Tribe_Descr::referenceWare
-	(::FileWrite        &       fw,
-	 const std::string  &       backlink,
-	 HTMLReferences::Role const role,
-	 Ware_Index           const index,
-	 uint8_t                    multiplicity)
-	const
-{
-	assert(index < get_nrwares());
-	m_ware_references[index.value()][role].insert(backlink);
-	const Item_Ware_Descr & descr = *get_ware_descr(index);
-	const std::string & ware_name     = descr.name    ();
-	const std::string & ware_descname = descr.descname();
-	fw.Text(ware_name);
-	fw.Text("\" href=\"../");
-	fw.Text(ware_name);
-	fw.Text("/index_" + i18n::get_locale() + ".xhtml\" title=\"");
-	fw.Text(ware_descname);
-	fw.Text("\">");
-	for (; multiplicity; --multiplicity) {
-		fw.Text("<img src=\"../");
-		fw.Text(ware_name);
-		fw.Text("/menu.png\" alt=\"");
-		fw.Text(ware_descname);
-		fw.Text("\"/>");
-	}
-}
-
-#define HTML_FILE_BEGIN                                                       \
-   "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"                             \
-   "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" "              \
-   "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\";>\n"                 \
-   "<html xmlns=\"http://www.w3.org/1999/xhtml\";>\n"                          \
-   "<head>\n"                                                                 \
-   "<link rel=\"icon\" type=\"image/png\" href=\"menu.png\"/>\n"              \
-   "<style type=\"text/css\">\n" /*  for Firefox  */                          \
-   "   a:link    {text-decoration:none;}\n"                                   \
-   "   a:visited {text-decoration:none;}\n"                                   \
-   "   img       {border:none;}\n"                                            \
-   "</style>\n"                                                               \
-
-#define HTML_FILE_END                                                         \
-   "</body>\n"                                                                \
-   "</html>\n"                                                                \
-
-#define HTML_SCRIPT_SORTTABLE                                                 \
-   "<script src=\"../../doc/sorttable.js\" type=\"text/javascript\"/>\n"      \
-
-//  A container to keep the types ordered by descname for the table of
-// contents.
-struct orderer {
-	bool operator () (std::string const * const a, std::string const * const b)
-	{
-		return *a < *b;
-	}
-};
-#define ORDERED(index_type)                                                   \
-   typedef std::multimap<std::string const *, index_type, orderer> Ordered;   \
-   Ordered ordered;                                                           \
-
-void Tribe_Descr::writeHTMLBuildings(const std::string & directory) {
-	assert(directory.size());
-	assert(*directory.rbegin() == '/');
-	ORDERED(Building_Index);
-
-	//  Write an index_<locale>.xhtml in each building type's directory and add
-	//  the building type to ordered for the table of contents.
-	for //  Must iterate backwards for cross-referencing to work.
-		(Building_Index i = m_buildings.get_nitems();
-		 Building_Index::First() < i;)
-	{
-		const Building_Descr & building_descr = *get_building_descr(--i);
-		::FileWrite fw;
-		building_descr.writeHTML(fw);
-		writeCrossReferences(fw, m_building_references[i.value()]);
-		fw.Text(HTML_FILE_END);
-		RealFSImpl fs
-			(building_descr.global()
-			 ? "global/militarysites/" + building_descr.name()
-			 : directory + building_descr.name());
-		fw.Write(fs, ("index_" + i18n::get_locale() + ".xhtml").c_str());
-		ordered.insert
-			(std::pair<std::string const *, Building_Index>
-			 	(&building_descr.descname(), i));
-	}
-
-	//  Write the table of contents to building_types.xhtml.
-	::FileWrite fw;
-	fw.Text
-		(HTML_FILE_BEGIN
-		 HTML_SCRIPT_SORTTABLE
-		 "<title>");
-	fw.Text(_("Building types"));
-	fw.Text
-		("</title>\n"
-		 "</head>\n"
-		 "<body>\n"
-		 "<h1>");
-	fw.Text(_("Building types"));
-	fw.Text
-		("</h1>\n"
-		 "<table class=\"sortable\">\n"
-		 "<thead><tr><th class=\"sorttable_nosort\">");
-	fw.Text(_("Icon"));
-	fw.Text("</th><th>");
-	fw.Text(_("Name"));
-	fw.Text("</th><th>");
-	fw.Text(_("Size"));
-	fw.Text("</th><th>");
-	fw.Text(_("Buildable"));
-	fw.Text("</th><th>");
-	fw.Text(_("Enhanced"));
-	fw.Text("</th><th>");
-	fw.Text(_("Conquer<br/>range"));
-	fw.Text("</th><th>");
-	fw.Text(_("Vision<br/>range"));
-	fw.Text
-		("</th></tr></thead>\n"
-		 "<tbody>\n");
-	container_iterate_const(Ordered, ordered, i) {
-		const Building_Descr & building_descr =
-			*get_building_descr(i.current->second);
-		std::string         building_name     = building_descr    .name();
-		const std::string & building_descname = building_descr.descname();
-		if (building_descr.global())
-			building_name = "../../global/militarysites/" + building_descr.name();
-		fw.Text("<tr><td><a href=\"");
-		fw.Text(building_name);
-		fw.Text("/index_" + i18n::get_locale() + ".xhtml\" title=\"");
-		fw.Text(building_descname);
-		fw.Text("\"><img src=\"");
-		fw.Text(building_name);
-		fw.Text("/menu.png\" alt=\"\"/></a></td><td><a href=\"");
-		fw.Text(building_name);
-		fw.Text("/index_" + i18n::get_locale() + ".xhtml\" title=\"");
-		fw.Text(building_descname);
-		fw.Text("\">");
-		fw.Text(building_descname);
-		fw.Text("</a></td><td sorttable_customkey=\"");
-		if        (building_descr.get_ismine())                        {
-			fw.Text
-				("M\"><img src=\"../../pics/mine.png\" alt=\"");
-			fw.Text(_("Mine"));
-		} else if (building_descr.get_size() == BaseImmovable::SMALL)  {
-			fw.Text
-				("1\"><img src=\"../../pics/small.png\" alt=\"");
-			fw.Text(_("Small"));
-		} else if (building_descr.get_size() == BaseImmovable::MEDIUM) {
-			fw.Text
-				("2\"><img src=\"../../pics/medium.png\" alt=\"");
-			fw.Text(_("Medium"));
-		} else {
-			assert(building_descr.get_size() == BaseImmovable::BIG);
-			fw.Text
-				("3\"><img src=\"../../pics/big.png\" alt=\"");
-			fw.Text(_("Big"));
-		}
-		fw.Text("\"/></td><td>");
-		fw.Text
-			(building_descr.is_buildable() ? _("Yes") : _("No"));
-		fw.Text("</td><td>");
-		fw.Text
-			(building_descr.is_enhanced () ? _("Yes") : _("No"));
-		fw.Text("</td><td align=\"right\">");
-		char buffer[32];
-		sprintf(buffer, "%u", building_descr.get_conquers());
-		fw.Text(buffer);
-		fw.Text("</td><td align=\"right\">");
-		sprintf(buffer, "%u", building_descr.vision_range());
-		fw.Text(buffer);
-		fw.Text("</td></tr>\n");
-	}
-	fw.Text
-		("</tbody>\n"
-		 "</table>\n"
-		 HTML_FILE_END);
-	RealFSImpl buildings_toc_fs(directory);
-	fw.Write(buildings_toc_fs, ("building_types_" + i18n::get_locale() + ".xhtml").c_str());
-}
-
-
-void Building_Descr::writeHTML(::FileWrite & fw) const {
-	char buffer[256];
-	fw.Text
-		(HTML_FILE_BEGIN
-		 "<title>");
-	fw.Text(descname());
-	fw.Text
-		("</title>\n"
-		 "</head>\n"
-		 "<body>\n"
-		 "<h1>");
-	fw.Text(descname());
-	fw.Text
-		("</h1>\n"
-		 "<p><img src=\"../../../pics/");
-	if        (get_ismine()) {
-		fw.Text("mine.png\" alt=\"");
-		fw.Text(_("Mine"));
-		fw.Text("\"/> ");
-		fw.Text(_("Is mine."));
-	} else if (get_size() == BaseImmovable::BIG)    {
-		fw.Text("big.png\" alt=\"");
-		fw.Text(_("Big"));
-		fw.Text("\"/> ");
-		fw.Text(_("Is big."));
-	} else if (get_size() == BaseImmovable::MEDIUM) {
-		fw.Text("medium.png\" alt=\"");
-		fw.Text(_("Medium"));
-		fw.Text("\"/> ");
-		fw.Text(_("Is medium."));
-	} else {
-		assert (get_size() == BaseImmovable::SMALL);
-		fw.Text("small.png\" alt=\"");
-		fw.Text(_("Small"));
-		fw.Text("\"/> ");
-		fw.Text(_("Is small."));
-	}
-
-	if (not m_buildable) {
-		fw.Text
-			("</p>\n"
-			 "<p>");
-		fw.Text(_("Is not buildable."));
-	}
-
-	if (m_enhanced_building) {
-		fw.Text
-			("</p>\n"
-			 "<p>");
-		fw.Text(_("Is enhanced."));
-	}
-
-	if (uint32_t const c = get_conquers()) {
-		fw.Text
-			("</p>\n"
-			 "<p>");
-		snprintf(buffer, sizeof(buffer), _("Conquer range is %u."), c);
-		fw.Text(buffer);
-	}
-
-	if (uint32_t const v = vision_range()) {
-		fw.Text
-			("</p>\n"
-			 "<p>");
-		snprintf(buffer, sizeof(buffer), _("Vision range is %u."), v);
-		fw.Text(buffer);
-	}
-
-	fw.Text("</p>\n");
-
-	if (buildcost().size()) {
-		fw.Text("<h2 id=\"buildcost\">");
-		fw.Text(_("Build cost"));
-		fw.Text
-			("</h2>\n"
-			 "<ul>\n");
-		container_iterate_const(Buildcost, buildcost(), j) {
-			fw.Text("<li><a name=\"buildcost_");
-			tribe().referenceWare
-				(fw,
-				 name() + "/index_" + i18n::get_locale() + ".xhtml#buildcost_"    +
-				 tribe().get_ware_descr(j.current->first)->name() + "\" title=\"" +
-				 (format(_("%s's constructionsite")) % descname()).str() +
-				 "\"><img src=\"../"      +
-				 name() + "/menu.png\" alt=\"" + descname(),
-				 HTMLReferences::Madeof,
-				 j.current->first, j.current->second);
-			fw.Text("</a></li>\n");
-		}
-		fw.Text("</ul>\n");
-	}
-
-	if (enhancements().size()) {
-		fw.Text("<h2 id=\"enhancements\">");
-		fw.Text(_("Enhancements"));
-		fw.Text
-			("</h2>\n"
-			 "<ul>\n");
-		container_iterate_const(Enhancements, enhancements(), i) {
-			fw.Text("<li><a name=\"enhancement_");
-			tribe().referenceBuilding
-				(fw,
-				 name() + "/index_" + i18n::get_locale() + ".xhtml#enhancement_"  +
-				 tribe().get_building_descr(*i.current)->name() + "\" title=\""   +
-				 (format(_("%s's enhancement")) % descname()).str() +
-				 "\"><img src=\"../" + name()  +
-				 "/menu.png\" alt=\"" + descname(),
-				 HTMLReferences::Become,
-				 *i.current);
-			fw.Text("</a></li>\n");
-		}
-		fw.Text("</ul>\n");
-	}
-
-	if (upcast(ProductionSite_Descr const, productionsite_descr, this))
-		productionsite_descr->writeHTMLProduction(fw);
-}
-
-
-void Tribe_Descr::writeHTMLWorkers(const std::string & directory) {
-	assert(directory.size());
-	assert(*directory.rbegin() == '/');
-	ORDERED(Ware_Index);
-
-	//  Write an index_<locale>.xhtml in each worker type's directory and add
-	//  the worker type to ordered for the table of contents.
-	for (Ware_Index i = m_workers.get_nitems(); Ware_Index::First() < i;) {
-		const Worker_Descr & worker_descr = *get_worker_descr(--i);
-		::FileWrite fw;
-		worker_descr.writeHTML(fw);
-		writeCrossReferences(fw, m_worker_references[i.value()]);
-		fw.Text(HTML_FILE_END);
-		RealFSImpl fs(directory + worker_descr.name());
-		fw.Write(fs, ("index_" + i18n::get_locale() + ".xhtml").c_str());
-		ordered.insert
-			(std::pair<std::string const *, Ware_Index>
-			 	(&worker_descr.descname(), i));
-	}
-
-	//  Write the table of contents to worker_types.xhtml.
-	::FileWrite fw;
-	fw.Text
-		(HTML_FILE_BEGIN
-		 HTML_SCRIPT_SORTTABLE
-		 "<title>");
-	fw.Text(_("Worker types"));
-	fw.Text
-		("</title>\n"
-		 "</head>\n"
-		 "<body>\n"
-		 "<h1>");
-	fw.Text(_("Worker types"));
-	fw.Text
-		("</h1>\n"
-		 "<table class=\"sortable\">\n"
-		 "<thead><tr><th class=\"sorttable_nosort\">");
-	fw.Text(_("Icon"));
-	fw.Text("</th><th>");
-	fw.Text(_("Name"));
-	fw.Text("</th><th>");
-	fw.Text(_("Vision<br/>range"));
-	fw.Text("</th><th>");
-	fw.Text(_("Needed<br/>experience"));
-	fw.Text("</th><th>");
-	fw.Text(_("Becomes"));
-	fw.Text
-		("</th></tr></thead>\n"
-		 "<tbody>\n");
-	container_iterate_const(Ordered, ordered, i) {
-		const Worker_Descr & worker_descr = *get_worker_descr(i.current->second);
-		const std::string & worker_name     = worker_descr.    name();
-		const std::string & worker_descname = worker_descr.descname();
-		fw.Text("<tr><td><a href=\"");
-		fw.Text(worker_name);
-		fw.Text("/index_" + i18n::get_locale() + ".xhtml\" title=\"");
-		fw.Text(worker_descname);
-		fw.Text("\"><img src=\"");
-		fw.Text(worker_name);
-		fw.Text("/menu.png\" alt=\"\"/></a></td><td><a href=\"");
-		fw.Text(worker_name);
-		fw.Text("/index_" + i18n::get_locale() + ".xhtml\" title=\"");
-		fw.Text(worker_descname);
-		fw.Text("\">");
-		fw.Text(worker_descname);
-		fw.Text("</a></td><td align=\"right\">");
-		char buffer[32];
-		sprintf(buffer, "%u", worker_descr.vision_range());
-		fw.Text(buffer);
-		fw.Text("</td>");
-		if (Ware_Index const becomes = worker_descr.becomes()) {
-			fw.Text("<td align=\"right\">");
-			sprintf(buffer, "%u", worker_descr.get_level_experience());
-			fw.Text(buffer);
-			const Worker_Descr & becomes_descr = *get_worker_descr(becomes);
-			const std::string & becomes_name     = becomes_descr.    name();
-			const std::string & becomes_descname = becomes_descr.descname();
-			fw.Text("</td><td sorttable_customkey=\"");
-			fw.Text(becomes_descname);
-			fw.Text("\"><a href=\"");
-			fw.Text(becomes_name);
-			fw.Text("/index_" + i18n::get_locale() + ".xhtml\" title=\"");
-			fw.Text(becomes_descname);
-			fw.Text("\"><img src=\"");
-			fw.Text(becomes_name);
-			fw.Text("/menu.png\" alt=\"");
-			fw.Text(becomes_descname);
-			fw.Text("\"/></a>");
-		} else
-			fw.Text("<td></td><td sorttable_customkey=\"\">");
-		fw.Text("</td></tr>\n");
-	}
-	fw.Text
-		("</tbody>\n"
-		 "</table>\n"
-		 HTML_FILE_END);
-	RealFSImpl workers_toc_fs(directory);
-	fw.Write(workers_toc_fs, ("worker_types_" + i18n::get_locale() + ".xhtml").c_str());
-}
-
-
-void Soldier_Descr::writeHTMLSoldier(::FileWrite & fw) const {
-	char buffer[256];
-	fw.Text("<h2 id=\"combat_properties\">");
-	fw.Text(_("Combat Properties"));
-	fw.Text
-		("</h2>\n"
-		 "<p>");
-	snprintf
-		(buffer, sizeof(buffer),
-		 _
-		 	("Hitpoints is %u, plus %u for each level above 0 "
-		 	 "(maximum level is %u)."),
-		 m_base_hp,      m_hp_incr,      m_max_hp_level);
-	fw.Text(buffer);
-	fw.Text
-		("</p>\n"
-		 "<p>");
-	snprintf
-		(buffer, sizeof(buffer),
-		 _
-		 	("Attack is between %u and %u, plus %u for each level above 0 "
-		 	 "(maximum level is %u)."),
-		 m_min_attack,  m_max_attack,  m_attack_incr,  m_max_attack_level);
-	fw.Text(buffer);
-	fw.Text
-		("</p>\n"
-		 "<p>");
-	snprintf
-		(buffer, sizeof(buffer),
-		 _
-		 	("Defense is %u, plus %u for each level above 0 "
-		 	 "(maximum level is %u)."),
-		 m_defense,                    m_defense_incr, m_max_defense_level);
-	fw.Text(buffer);
-	fw.Text
-		("</p>\n"
-		 "<p>");
-	snprintf
-		(buffer, sizeof(buffer),
-		 _
-		 	("Evade is %u, plus %u for each level above 0 "
-		 	 "(maximum level is %u)."),
-		 m_evade,                      m_evade_incr,   m_max_evade_level);
-	fw.Text(buffer);
-	fw.Text
-		("</p>\n");
-}
-
-
-void Worker_Descr::writeHTML(::FileWrite & fw) const {
-	char buffer[256];
-	fw.Text
-		(HTML_FILE_BEGIN
-		 "<title>");
-	fw.Text(descname());
-	fw.Text
-		("</title>\n"
-		 "</head>\n"
-		 "<body>\n"
-		 "<h1>");
-	fw.Text(descname());
-	fw.Text
-		("</h1>\n"
-		 "<p>");
-	fw.Text(helptext());
-	fw.Text
-		("</p>\n"
-		 "<p>");
-	snprintf(buffer, sizeof(buffer), _("Vision range is %u."), vision_range());
-	fw.Text(buffer);
-	fw.Text("</p>\n");
-
-	if (is_buildable()) {
-		if (buildcost().size()) {
-			fw.Text("<h2 id=\"buildcost\">");
-			fw.Text(_("Build cost"));
-			fw.Text
-				("</h2>\n"
-				 "<ul>\n");
-			container_iterate_const(Buildcost, buildcost(), j) {
-				fw.Text("<li><a name=\"buildcost_");
-				if (Ware_Index const wi = tribe().ware_index(j.current->first))
-					tribe().referenceWare
-						(fw,
-						 name() + "/index_" + i18n::get_locale()                    +
-						 ".xhtml#buildcost_" + j.current->first + "\" title=\""     +
-						 (format(_("%s's creation")) % descname()).str() +
-						 "\"><img src=\"../"        +
-						 name() + "/menu.png\" alt=\"" + descname(),
-						 HTMLReferences::Madeof,
-						 wi,
-						 j.current->second);
-				else
-					tribe().referenceWorker
-						(fw,
-						 name() + "/index_" + i18n::get_locale()                    +
-						 ".xhtml#buildcost_" + j.current->first + "\" title=\""     +
-						 (format(_("%s's creation")) % descname()).str() +
-						 "\"><img src=\"../"        +
-						 name() + "/menu.png\" alt=\"" + descname(),
-						 HTMLReferences::Madeof,
-						 tribe().safe_worker_index(j.current->first),
-						 j.current->second);
-				fw.Text("</a></li>\n");
-			}
-			fw.Text("</ul>\n");
-		} else {
-			fw.Text("<p>");
-			fw.Text(_("Spawns in warehouses."));
-			fw.Text("</p>");
-		}
-	}
-
-	if (becomes()) {
-		fw.Text("<p>");
-		snprintf
-			(buffer, sizeof(buffer),
-			 _("Needs experience from working %u times to become"),
-			 get_level_experience());
-		fw.Text(buffer);
-		fw.Text(" <a name=\"becomes_");
-		tribe().referenceWorker
-			(fw,
-			 name() + "/index_" + i18n::get_locale() + ".xhtml#becomes_"         +
-			 tribe().get_worker_descr(becomes())->name() + "\" title=\""         +
-			 (format(_("%s's promotion")) % descname()).str() +
-			 "\"><img src=\"../" + name()       +
-			 "/menu.png\" alt=\"" + descname(),
-			 HTMLReferences::Become,
-			 becomes());
-		fw.Text("</a>.</p>\n");
-	}
-
-
-	if (programs().size()) {
-		fw.Text("<h2 id=\"programs\">");
-		fw.Text(_("Programs"));
-		fw.Text("</h2>\n");
-		container_iterate_const(Programs, programs(), i)
-			i.current->second->writeHTML(fw, *this);
-	}
-
-	if (upcast(Soldier_Descr const, soldier_descr, this))
-		soldier_descr->writeHTMLSoldier(fw);
-}
-
-
-void WorkerProgram::writeHTML
-	(::FileWrite & fw, const Worker_Descr & worker) const
-{
-	fw.Text("<h3 id=\"program_");
-	fw.Text(get_name());
-	fw.Text("\">");
-	fw.Text(get_name());
-	fw.Text
-		("</h3>\n"
-		 "<ol>\n");
-	uint32_t line_number = 0;
-	container_iterate_const(Actions, actions(), i) {
-		char buffer[256];
-		snprintf
-			(buffer, sizeof(buffer),
-			 "<li id=\"program_%s:%u\">", get_name().c_str(), ++line_number);
-		fw.Text(buffer);
-		(*i.current).writeHTML(fw, worker);
-		fw.Text("</li>\n");
-	}
-	fw.Text("</ol>\n");
-}
-
-
-void Worker::Action::writeHTML(::FileWrite & fw, const Worker_Descr &) const {
-	fw.Text
-		(function == &Worker::run_mine              ? "mine"               :
-		 function == &Worker::run_breed             ? "breed"              :
-		 function == &Worker::run_createitem        ? "createitem"         :
-		 function == &Worker::run_setdescription    ? "setdescription"     :
-		 function == &Worker::run_setbobdescription ? "setbobdescription"  :
-		 function == &Worker::run_findobject        ? "findobject"         :
-		 function == &Worker::run_findspace         ? "findspace"          :
-		 function == &Worker::run_walk              ? "walk"               :
-		 function == &Worker::run_animation         ? "animation"          :
-		 function == &Worker::run_return            ? "return"             :
-		 function == &Worker::run_object            ? "object"             :
-		 function == &Worker::run_plant             ? "plant"              :
-		 function == &Worker::run_create_bob        ? "create_bob"         :
-		 function == &Worker::run_removeobject      ? "removeobject"       :
-		 function == &Worker::run_geologist         ? "geologist"          :
-		 function == &Worker::run_geologist_find    ? "geologist_find"     :
-		 function == &Worker::run_playFX            ? "playFX"             :
-		 _("UNKNOWN"));
-}
-
-
-void ProductionSite_Descr::writeHTMLProduction(::FileWrite & fw) const {
-	if (programs().size()) {
-		fw.Text("<h2 id=\"production\">");
-		fw.Text(_("Production"));
-		fw.Text
-			("</h2>\n"
-			 "<h3 id=\"workers\">");
-		fw.Text(_("Workers"));
-		fw.Text
-			("</h3>\n"
-			 "<ul>\n");
-		container_iterate_const(Ware_Types, working_positions(), i) {
-			fw.Text("<li><a name=\"worker_");
-			tribe().referenceWorker
-				(fw,
-				 name() + "/index_" + i18n::get_locale() + ".xhtml#worker_"       +
-				 tribe().get_worker_descr(i.current->first)->name()               +
-				 "\" title=\"" +
-				 (format(_("%s's employee")) % descname()).str() +
-				 "\"><img src=\"../" + name() + "/menu.png\" alt=\"" + descname(),
-				 HTMLReferences::Employ,
-				 i.current->first, i.current->second);
-			fw.Text("</a></li>\n");
-		}
-		fw.Text("</ul>\n");
-
-		if (inputs().size()) {
-			fw.Text("<h3 id=\"inputs\">");
-			fw.Text(_("Inputs"));
-			fw.Text
-				("</h3>\n"
-				 "<ul>\n");
-			container_iterate_const(Ware_Types, inputs(), i) {
-				fw.Text("<li><a name=\"input_");
-				tribe().referenceWare
-					(fw,
-					 name() + "/index_" + i18n::get_locale() + ".xhtml#input_"     +
-					 tribe().get_ware_descr(i.current->first)->name().c_str()      +
-					 "\" title=\"" +
-					 (format(_("%s's input")) % descname()).str() +
-					 "\"><img src=\"../" + name() + "/menu.png\" alt=\""           +
-					 descname(),
-					 HTMLReferences::Input,
-					 i.current->first, i.current->second);
-				fw.Text("</a></li>\n");
-			}
-			fw.Text("</ul>\n");
-		}
-
-		if (output_ware_types().size() + output_worker_types().size()) {
-			fw.Text("<h3 id=\"output\">");
-			fw.Text(_("Output"));
-			fw.Text
-				("</h3>\n"
-				 "<ul>\n");
-			container_iterate_const(Output, output_ware_types(), i) {
-				fw.Text("<li><a name=\"output_");
-				tribe().referenceWare
-					(fw,
-					 name() + "/index_" + i18n::get_locale() + ".xhtml#output_"    +
-					 tribe().get_ware_descr(*i.current)->name().c_str()            +
-					 "\" title=\"" +
-					 (format(_("%s's output")) % descname()).str() +
-					 "\"><img src=\"../" + name() + "/menu.png\" alt=\""           +
-					 descname(),
-					 HTMLReferences::Output,
-					 *i.current);
-				fw.Text("</a></li>\n");
-			}
-			container_iterate_const(Output, output_worker_types(), i) {
-				fw.Text("<li><a name=\"output_");
-				tribe().referenceWorker
-					(fw,
-					 name() + "/index_" + i18n::get_locale() + ".xhtml#output_"    +
-					 tribe().get_worker_descr(*i.current)->name().c_str()          +
-					 "\" title=\"" +
-					 (format(_("%s's output")) % descname()).str() +
-					 "\"><img src=\"../" + name() + "/menu.png\" alt=\""           +
-					 descname(),
-					 HTMLReferences::Output,
-					 *i.current);
-				fw.Text("</a></li>\n");
-			}
-			fw.Text("</ul>\n");
-		}
-
-		fw.Text("<h3 id=\"programs\">");
-		fw.Text(_("Programs"));
-		fw.Text("</h3>\n");
-		container_iterate_const(Programs, programs(), i)
-			i.current->second->writeHTML(fw, *this);
-	}
-}
-
-
-void ProductionProgram::writeHTML
-	(::FileWrite & fw, const ProductionSite_Descr & site) const
-{
-	fw.Text("<h4 id=\"program_");
-	fw.Text(name());
-	fw.Text("\">");
-	fw.Text(name());
-	fw.Text
-		("</h4>\n"
-		 "<ol>\n");
-	uint32_t line_number = 0;
-	container_iterate_const(Actions, actions(), i) {
-		char buffer[256];
-		snprintf
-			(buffer, sizeof(buffer),
-			 "<li id=\"program_%s:%u\">", name().c_str(), ++line_number);
-		fw.Text(buffer);
-		(*i.current)->writeHTML(fw, site);
-		fw.Text("</li>\n");
-	}
-	fw.Text("</ol>\n");
-}
-
-
-void ProductionProgram::ActReturn::writeHTML
-	(::FileWrite & fw, const ProductionSite_Descr & site) const
-{
-	fw.Text("<a href=\"../../../doc/");
-	fw.Text("productionsite_program_reference.xhtml");
-	fw.Text("#return\" title=\"");
-	fw.Text(_("Documentation for program command "));
-	fw.Text("return");
-	fw.Text("\">");
-	fw.Text("return");
-	fw.Text("</a> ");
-	assert(m_result == Failed or m_result == Completed or m_result == Skipped);
-	fw.Text
-		(m_result == Failed    ? "failed"    :
-		 m_result == Completed ? "completed" :
-		 "skipped");
-	if (!m_conditions.empty()) {
-		std::string op;
-		fw.Text(" <span class=\"keyword\">");
-		if (m_is_when) {
-			op = "and";
-			fw.Text("when");
-		} else {
-			op = "or";
-			fw.Text("unless");
-		}
-		fw.Text("</span> ");
-		for (wl_const_range<Conditions> i(m_conditions);;)
-		{
-			i.front()->writeHTML(fw, site);
-			if (i.advance().empty())
-				break;
-			fw.Text("<span class=\"keyword\">");
-			fw.Text(op);
-			fw.Text("</span> ");
-		}
-	}
-}
-
-
-void ProductionProgram::ActReturn::Negation::writeHTML
-	(::FileWrite & fw, const ProductionSite_Descr & site) const
-{
-	fw.Text("<span class=\"keyword\">not</span> "); //&not; gives errors during rendering
-	operand->writeHTML(fw, site);
-}
-
-
-void ProductionProgram::ActReturn::Economy_Needs_Ware::writeHTML
-	(::FileWrite & fw, const ProductionSite_Descr & site) const
-{
-	const Item_Ware_Descr & ware = *site.tribe().get_ware_descr(ware_type);
-	const std::string & ware_name     = ware.    name();
-	const std::string & ware_descname = ware.descname();
-	fw.Text("<span class=\"keyword\">");
-	fw.Text("economy");
-	fw.Text("</span> <span class=\"keyword\">");
-	fw.Text("needs");
-	fw.Text("</span> <a href=\"../");
-	fw.Text(ware_name);
-	fw.Text("/index_" + i18n::get_locale() + ".xhtml\" title=\"");
-	fw.Text(ware_descname);
-	fw.Text("\"><img src=\"../");
-	fw.Text(ware_name);
-	fw.Text("/menu.png\" alt=\"");
-	fw.Text(ware_descname);
-	fw.Text("\"/></a>");
-}
-
-
-void ProductionProgram::ActReturn::Economy_Needs_Worker::writeHTML
-	(::FileWrite & fw, const ProductionSite_Descr & site) const
-{
-	const Worker_Descr & worker = *site.tribe().get_worker_descr(worker_type);
-	const std::string & worker_name     = worker.    name();
-	const std::string & worker_descname = worker.descname();
-	fw.Text("<span class=\"keyword\">");
-	fw.Text("economy");
-	fw.Text("</span> <span class=\"keyword\">");
-	fw.Text("needs");
-	fw.Text("</span> <a href=\"../");
-	fw.Text(worker_name);
-	fw.Text("/index_" + i18n::get_locale() + ".xhtml\" title=\"");
-	fw.Text(worker_descname);
-	fw.Text("\"><img src=\"../");
-	fw.Text(worker_name);
-	fw.Text("/menu.png\" alt=\"");
-	fw.Text(worker_descname);
-	fw.Text("\"/></a>");
-}
-
-
-void ProductionProgram::ActReturn::Site_Has::writeHTML
-	(::FileWrite & fw, const ProductionSite_Descr & site) const
-{
-	const Tribe_Descr & tribe = site.tribe();
-	fw.Text("<span class=\"keyword\">");
-	fw.Text("site");
-	fw.Text("</span> <span class=\"keyword\">");
-	fw.Text("has");
-	fw.Text("</span>");
-	for (wl_const_range<std::set<Ware_Index> > i(group.first);;)
-	{
-		const Item_Ware_Descr & ware_type = *tribe.get_ware_descr(*i.current);
-		const std::string & ware_type_name     = ware_type.    name();
-		const std::string & ware_type_descname = ware_type.descname();
-		fw.Text("<a href=\"../");
-		fw.Text(ware_type_name);
-		fw.Text("/index_" + i18n::get_locale() + ".xhtml\" title=\"");
-		fw.Text(ware_type_descname);
-		fw.Text("\"><img src=\"../");
-		fw.Text(ware_type_name);
-		fw.Text("/menu.png\" alt=\"");
-		fw.Text(ware_type_descname);
-		fw.Text("\"/></a>");
-		if (i.advance().empty())
-			break;
-		fw.Unsigned8(',');
-	}
-	if (1 < group.second) {
-		char buffer[32];
-		sprintf(buffer, ":%u", group.second);
-		fw.Text(buffer);
-	}
-}
-
-void ProductionProgram::ActReturn::Workers_Need_Experience::writeHTML
-	(::FileWrite & fw, const ProductionSite_Descr &) const
-{
-	fw.Text("<a href=\"#workers\" title=\"");
-	fw.Text(_("workers of this site"));
-	fw.Text("\"><span class=\"keyword\">");
-	fw.Text("workers");
-	fw.Text("</span></a> <span class=\"keyword\">");
-	fw.Text("need");
-	fw.Text("</span> <span class=\"keyword\">");
-	fw.Text("experience");
-	fw.Text("</span>");
-}
-
-static char const * const program_result_handling_method_names[5] =
-	{"fail", "complete", "skip", "continue", "repeat"};
-
-void ProductionProgram::ActCall::writeHTML
-	(::FileWrite & fw, const ProductionSite_Descr &) const
-{
-	const std::string & program_name = m_program->name();
-	fw.Text("<a href=\"../../../doc/");
-	fw.Text("productionsite_program_reference.xhtml");
-	fw.Text("#call\" title=\"");
-	fw.Text(_("Documentation for program command "));
-	fw.Text("call");
-	fw.Text("\">");
-	fw.Text("call");
-	fw.Text("</a> <a href=\"#program_");
-	fw.Text(program_name);
-	fw.Text("\" title=\"");
-	char buffer[64];
-	snprintf
-		(buffer, sizeof(buffer),
-		 _("site's program %s"), program_name.c_str());
-	fw.Text(buffer);
-	fw.Text("\">");
-	fw.Text(program_name);
-	fw.Text("</a>");
-	{
-		Program_Result_Handling_Method const failure_handling_method    =
-			m_handling_methods[Failed    - 1];
-		if (failure_handling_method != Fail) {
-			fw.Text
-				(" <span class=\"keyword\">on</span> "
-				 "<span class=\"keyword\">failure</span> "
-				 "<span class=\"keyword\">");
-			fw.Text
-				(program_result_handling_method_names[failure_handling_method]);
-			fw.Text("</span>");
-		}
-	}
-	{
-		Program_Result_Handling_Method const completion_handling_method =
-			m_handling_methods[Completed - 1];
-		if (completion_handling_method != Continue) {
-			fw.Text
-				(" <span class=\"keyword\">on</span> "
-				 "<span class=\"keyword\">completion</span> "
-				 "<span class=\"keyword\">");
-			fw.Text
-				(program_result_handling_method_names[completion_handling_method]);
-			fw.Text("</span>");
-		}
-	}
-	{
-		Program_Result_Handling_Method const skip_handling_method       =
-			m_handling_methods[Skipped   - 1];
-		if (skip_handling_method != Continue) {
-			fw.Text
-				(" <span class=\"keyword\">on</span> "
-				 "<span class=\"keyword\">completion</span> "
-				 "<span class=\"keyword\">");
-			fw.Text
-				(program_result_handling_method_names[skip_handling_method]);
-			fw.Text("</span>");
-		}
-	}
-}
-
-
-void ProductionProgram::ActWorker::writeHTML
-	(::FileWrite & fw, const ProductionSite_Descr & site) const
-{
-	fw.Text("<a href=\"../../../doc/");
-	fw.Text("productionsite_program_reference.xhtml");
-	fw.Text("#worker\" title=\"");
-	fw.Text(_("Documentation for program command "));
-	fw.Text("worker");
-	fw.Text("\">");
-	fw.Text("worker");
-	fw.Text("</a> <a href=\"../");
-	const Worker_Descr & worker_descr =
-		*site.tribe().get_worker_descr(site.working_positions().at(0).first);
-	fw.Text(worker_descr.name());
-	fw.Text("/index_" + i18n::get_locale() + ".xhtml#program_");
-	fw.Text(m_program);
-	fw.Text("\" title=\"");
-	char buffer[64];
-	snprintf
-		(buffer, sizeof(buffer),
-		 _("%s's program %s"),
-		 worker_descr.descname().c_str(), m_program.c_str());
-	fw.Text(buffer);
-	fw.Text("\">");
-	fw.Text(m_program);
-	fw.Text("</a>");
-}
-
-
-void ProductionProgram::ActSleep::writeHTML
-	(::FileWrite & fw, const ProductionSite_Descr &) const
-{
-	fw.Text("<a href=\"../../../doc/");
-	fw.Text("productionsite_program_reference.xhtml");
-	fw.Text("#sleep\" title=\"");
-	fw.Text(_("Documentation for program command "));
-	fw.Text("sleep");
-	fw.Text("\">");
-	fw.Text("sleep");
-	fw.Text("</a>");
-	if (m_duration) {
-		char buffer[32];
-		snprintf
-			(buffer, sizeof(buffer),
-			 _(" %u.%03u s"), m_duration / 1000, m_duration % 1000);
-		fw.Text(buffer);
-	}
-}
-
-
-void ProductionProgram::ActCheck_Map::writeHTML
-	(::FileWrite & fw, const ProductionSite_Descr &) const
-{
-	fw.Text("<a href=\"../../../doc/");
-	fw.Text("productionsite_program_reference.xhtml");
-	fw.Text("#check_map\" title=\"");
-	fw.Text(_("Documentation for program command "));
-	fw.Text("check_map");
-	fw.Text("\">");
-	fw.Text("check_map");
-	fw.Text("</a>");
-	if (m_feature) {
-		char buffer[32];
-		if (m_feature == SEAFARING)
-			snprintf(buffer, sizeof(buffer), "Seafaring");
-		fw.Text(buffer);
-	}
-}
-
-
-void ProductionProgram::ActAnimate::writeHTML
-	(::FileWrite & fw, const ProductionSite_Descr &) const
-{
-	fw.Text("<a href=\"../../../doc/");
-	fw.Text("productionsite_program_reference.xhtml");
-	fw.Text("#animate\" title=\"");
-	fw.Text(_("Documentation for program command "));
-	fw.Text("animate");
-	fw.Text("\">");
-	fw.Text("animate");
-	fw.Text("</a>");
-	if (m_duration) {
-		char buffer[32];
-		snprintf
-			(buffer, sizeof(buffer),
-			 _(" %u.%03u s"), m_duration / 1000, m_duration % 1000);
-		fw.Text(buffer);
-	}
-}
-
-
-void ProductionProgram::ActConsume::writeHTML
-	(::FileWrite & fw, const ProductionSite_Descr & site) const
-{
-	const Tribe_Descr & tribe = site.tribe();
-	fw.Text("<a href=\"../../../doc/");
-	fw.Text("productionsite_program_reference.xhtml");
-	fw.Text("#consume\" title=\"");
-	fw.Text(_("Documentation for program command "));
-	fw.Text("consume");
-	fw.Text("\">");
-	fw.Text("consume");
-	fw.Text("</a> ");
-	for (wl_const_range<Groups> j(groups());;)
-	{
-		for (wl_const_range<std::set<Ware_Index> > i(j.current->first);;)
-		{
-			const Item_Ware_Descr & ware = *tribe.get_ware_descr(*i.current);
-			const std::string & ware_name     = ware.    name();
-			const std::string & ware_descname = ware.descname();
-			fw.Text("<a href=\"../");
-			fw.Text(ware_name);
-			fw.Text("/index_" + i18n::get_locale() + ".xhtml\" title=\"");
-			fw.Text(ware_descname);
-			fw.Text("\"><img src=\"../");
-			fw.Text(ware_name);
-			fw.Text("/menu.png\" alt=\"");
-			fw.Text(ware_descname);
-			fw.Text("\"/></a>");
-			if (i.advance().empty())
-				break;
-			fw.Unsigned8(',');
-		}
-		if (1 < j.current->second) {
-			char buffer[32];
-			sprintf(buffer, ":%u", j.current->second);
-			fw.Text(buffer);
-		}
-		if (j.advance().empty())
-			break;
-		fw.Unsigned8(' ');
-	}
-}
-
-
-void ProductionProgram::ActProduce::writeHTML
-	(::FileWrite & fw, const ProductionSite_Descr & site) const
-{
-	const Tribe_Descr & tribe = site.tribe();
-	fw.Text("<a href=\"../../../doc/");
-	fw.Text("productionsite_program_reference.xhtml");
-	fw.Text("#produce\" title=\"");
-	fw.Text(_("Documentation for program command "));
-	fw.Text("produce");
-	fw.Text("\">");
-	fw.Text("produce");
-	fw.Text("</a> ");
-	for (wl_const_range<Items> i(items());;)
-	{
-		const Item_Ware_Descr & ware = *tribe.get_ware_descr(i.current->first);
-		const std::string & ware_name     = ware.    name();
-		const std::string & ware_descname = ware.descname();
-		fw.Text("<a href=\"../");
-		fw.Text(ware_name);
-		fw.Text("/index_" + i18n::get_locale() + ".xhtml\" title=\"");
-		fw.Text(ware_descname);
-		fw.Text("\"><img src=\"../");
-		fw.Text(ware_name);
-		fw.Text("/menu.png\" alt=\"");
-		fw.Text(ware_descname);
-		fw.Text("\"/></a>");
-		if (1 < i.current->second) {
-			char buffer[32];
-			sprintf(buffer, ":%u", i.current->second);
-			fw.Text(buffer);
-		}
-		if (i.advance().empty())
-			break;
-		fw.Unsigned8(' ');
-	}
-}
-
-
-void ProductionProgram::ActRecruit::writeHTML
-	(::FileWrite & fw, const ProductionSite_Descr & site) const
-{
-	const Tribe_Descr & tribe = site.tribe();
-	fw.Text("<a href=\"../../../doc/");
-	fw.Text("productionsite_program_reference.xhtml");
-	fw.Text("#recruit\" title=\"");
-	fw.Text(_("Documentation for program command "));
-	fw.Text("recruit");
-	fw.Text("\">");
-	fw.Text("recruit");
-	fw.Text("</a> ");
-	for (wl_const_range<Items> i(items());;)
-	{
-		const Worker_Descr & worker = *tribe.get_worker_descr(i.current->first);
-		const std::string & worker_name     = worker.    name();
-		const std::string & worker_descname = worker.descname();
-		fw.Text("<a href=\"../");
-		fw.Text(worker_name);
-		fw.Text("/index_" + i18n::get_locale() + ".xhtml\" title=\"");
-		fw.Text(worker_descname);
-		fw.Text("\"><img src=\"../");
-		fw.Text(worker_name);
-		fw.Text("/menu.png\" alt=\"");
-		fw.Text(worker_descname);
-		fw.Text("\"/></a>");
-		if (1 < i.current->second) {
-			char buffer[32];
-			sprintf(buffer, ":%u", i.current->second);
-			fw.Text(buffer);
-		}
-		if (i.advance().empty())
-			break;
-		fw.Unsigned8(' ');
-	}
-}
-
-
-void ProductionProgram::ActMine::writeHTML
-	(::FileWrite & fw, const ProductionSite_Descr & site) const
-{
-	const World          & world             = site.tribe().world();
-	const Resource_Descr & resource          = *world.get_resource(m_resource);
-	const std::string    & world_basedir     = world.basedir();
-	const std::string    & resource_name     = resource.    name();
-	const std::string    & resource_descname = resource.descname();
-	fw.Text("<a href=\"../../../doc/");
-	fw.Text("productionsite_program_reference.xhtml");
-	fw.Text("#mine\" title=\"");
-	fw.Text(_("Documentation for program command "));
-	fw.Text("mine");
-	fw.Text("\">");
-	fw.Text("mine");
-	fw.Text("</a> <a href=\"../../../");
-	fw.Text(world_basedir);
-	fw.Text("index_" + i18n::get_locale() + ".xhtml#resource_");
-	fw.Text(resource_name);
-	fw.Text("\" title=\"");
-	fw.Text(resource_descname);
-	fw.Text("\"><img src=\"../../../");
-	fw.Text(world_basedir);
-	fw.Text("/resources/");
-	fw.Text(resource_name);
-	fw.Text("_1f.png\" alt=\"");
-	fw.Text(resource_descname);
-	char buffer[32];
-	sprintf(buffer, "\"/></a> %u %u %u", m_distance, m_max, m_chance);
-	fw.Text(buffer);
-}
-
-
-void ProductionProgram::ActCheck_Soldier::writeHTML
-	(::FileWrite & fw, const ProductionSite_Descr &) const
-{
-	fw.Text("<a href=\"../../../doc/");
-	fw.Text("productionsite_program_reference.xhtml");
-	fw.Text("#check_soldier\" title=\"");
-	fw.Text(_("Documentation for program command "));
-	fw.Text("check soldier");
-	fw.Text("\">");
-	fw.Text("check soldier");
-	fw.Text("</a> ");
-	assert
-		(attribute == atrHP      or attribute == atrAttack or
-		 attribute == atrDefense or attribute == atrEvade);
-	fw.Text
-		(attribute == atrHP      ? "hp"      :
-		 attribute == atrAttack  ? "attack"  :
-		 attribute == atrDefense ? "defense" :
-		 "evade");
-	char buffer[32];
-	sprintf(buffer, " %u", level);
-	fw.Text(buffer);
-}
-
-
-void ProductionProgram::ActTrain::writeHTML
-	(::FileWrite & fw, const ProductionSite_Descr &) const
-{
-	fw.Text("<a href=\"../../../doc/");
-	fw.Text("productionsite_program_reference.xhtml");
-	fw.Text("#train\" title=\"");
-	fw.Text(_("Documentation for program command "));
-	fw.Text("train");
-	fw.Text("\">");
-	fw.Text("train");
-	fw.Text("</a> ");
-	assert
-		(attribute == atrHP      or attribute == atrAttack or
-		 attribute == atrDefense or attribute == atrEvade);
-	fw.Text
-		(attribute == atrHP      ? "hp"      :
-		 attribute == atrAttack  ? "attack"  :
-		 attribute == atrDefense ? "defense" :
-		 "evade");
-	char buffer[32];
-	sprintf(buffer, " %u %u", level, target_level);
-	fw.Text(buffer);
-}
-
-
-void ProductionProgram::ActPlayFX::writeHTML
-	(::FileWrite & fw, const ProductionSite_Descr &) const
-{
-	fw.Text("<a href=\"../../../doc/");
-	fw.Text("productionsite_program_reference.xhtml");
-	fw.Text("#playFX\" title=\"");
-	fw.Text(_("Documentation for program command "));
-	fw.Text("playFX");
-	fw.Text("\">");
-	fw.Text("playFX");
-	fw.Text("</a> ");
-	fw.Text(name);
-	char buffer[32];
-	sprintf(buffer, " %u", priority);
-	fw.Text(buffer);
-}
-
-
-void ProductionProgram::ActConstruct::writeHTML
-	(::FileWrite & fw, const ProductionSite_Descr &) const
-{
-	fw.Text("<a href=\"../../../doc/");
-	fw.Text("productionsite_program_reference.xhtml");
-	fw.Text("#construct\" title=\"");
-	fw.Text(_("Documentation for program command "));
-	fw.Text("construct");
-	fw.Text("\">");
-	fw.Text("construct");
-	fw.Text("</a> ");
-	fw.Text(objectname);
-	fw.Text(" ");
-	fw.Text(workerprogram);
-	char buffer[32];
-	sprintf(buffer, " %u", radius);
-	fw.Text(buffer);
-}
-
-
-void Tribe_Descr::writeHTMLWares(const std::string & directory) {
-	assert(directory.size());
-	assert(*directory.rbegin() == '/');
-	ORDERED(Ware_Index);
-
-	//  Write an index_<locale>.xhtml in each ware type's directory and add the
-	//  ware type to ordered for the table of contents.
-	for (Ware_Index i = m_wares.get_nitems(); Ware_Index::First() < i;) {
-		const Item_Ware_Descr & ware_descr = *get_ware_descr(--i);
-		::FileWrite fw;
-		ware_descr.writeHTML(fw);
-		writeCrossReferences(fw, m_ware_references[i.value()]);
-		fw.Text(HTML_FILE_END);
-		RealFSImpl fs(directory + ware_descr.name());
-		fw.Write(fs, ("index_" + i18n::get_locale() + ".xhtml").c_str());
-		ordered.insert
-			(std::pair<std::string const *, Ware_Index>
-			 	(&ware_descr.descname(), i));
-	}
-
-	//  Write the table of contents to ware_types.xhtml.
-	::FileWrite fw;
-	fw.Text
-		(HTML_FILE_BEGIN
-		 HTML_SCRIPT_SORTTABLE
-		 "<title>");
-	fw.Text(_("Ware types"));
-	fw.Text
-		("</title>\n"
-		 "</head>\n"
-		 "<body>\n"
-		 "<h1>");
-	fw.Text(_("Ware types"));
-	fw.Text
-		("</h1>\n"
-		 "<table class=\"sortable\">\n"
-		 "<thead><tr><th class=\"sorttable_nosort\">");
-	fw.Text(_("Icon"));
-	fw.Text("</th><th>");
-	fw.Text(_("Name"));
-	fw.Text
-		("</th></tr></thead>\n"
-		 "<tbody>\n");
-	container_iterate_const(Ordered, ordered, i) {
-		const Item_Ware_Descr & ware_descr = *get_ware_descr(i.current->second);
-		const std::string & ware_name     = ware_descr.    name();
-		const std::string & ware_descname = ware_descr.descname();
-		fw.Text("<tr><td><a href=\"");
-		fw.Text(ware_name);
-		fw.Text("/index_" + i18n::get_locale() + ".xhtml\" title=\"");
-		fw.Text(ware_descname);
-		fw.Text("\"><img src=\"");
-		fw.Text(ware_name);
-		fw.Text("/menu.png\" alt=\"\"/></a></td><td><a href=\"");
-		fw.Text(ware_name);
-		fw.Text("/index_" + i18n::get_locale() + ".xhtml\" title=\"");
-		fw.Text(ware_descname);
-		fw.Text("\">");
-		fw.Text(ware_descname);
-		fw.Text("</a></td></tr>\n");
-	}
-	fw.Text
-		("</tbody>\n"
-		 "</table>\n"
-		 HTML_FILE_END);
-	RealFSImpl wares_toc_fs(directory);
-	fw.Write(wares_toc_fs, ("ware_types_" + i18n::get_locale() + ".xhtml").c_str());
-}
-
-
-void Item_Ware_Descr::writeHTML(::FileWrite & fw) const {
-	fw.Text
-		(HTML_FILE_BEGIN
-		 "<title>");
-	fw.Text(descname());
-	fw.Text
-		("</title>\n"
-		 "</head>\n"
-		 "<body>\n"
-		 "<h1>");
-	fw.Text(descname());
-	fw.Text
-		("</h1>\n"
-		 "<p>");
-	fw.Text(helptext());
-	fw.Text("</p>\n");
-}
-
-}
-
-#endif

=== removed file 'src/writeHTML.h'
--- src/writeHTML.h	2012-02-15 21:25:34 +0000
+++ src/writeHTML.h	1970-01-01 00:00:00 +0000
@@ -1,22 +0,0 @@
-/*
- * Copyright (C) 2008 by the Widelands Development Team
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- */
-
-#ifndef WRITE_GAME_DATA_AS_HTML
-#define WRITE_GAME_DATA_AS_HTML
-#endif

=== modified file 'src/wui/fieldaction.h'
--- src/wui/fieldaction.h	2013-01-16 21:53:42 +0000
+++ src/wui/fieldaction.h	2013-09-23 07:47:52 +0000
@@ -24,7 +24,7 @@
 
 namespace Widelands {
 class Building;
-struct Player;
+class Player;
 struct PlayerImmovable;
 }
 struct Interactive_Base;

=== modified file 'src/wui/game_message_menu.h'
--- src/wui/game_message_menu.h	2013-07-26 19:16:51 +0000
+++ src/wui/game_message_menu.h	2013-09-23 07:47:52 +0000
@@ -30,7 +30,7 @@
 #include "ui_basic/unique_window.h"
 
 namespace Widelands {
-struct Game;
+class Game;
 struct Message;
 };
 struct Interactive_Player;

=== modified file 'src/wui/game_objectives_menu.h'
--- src/wui/game_objectives_menu.h	2013-07-26 20:19:36 +0000
+++ src/wui/game_objectives_menu.h	2013-09-23 07:47:52 +0000
@@ -27,7 +27,7 @@
 #include "ui_basic/unique_window.h"
 
 namespace Widelands {
-struct Game;
+class Game;
 struct Objective;
 }
 struct Interactive_Player;

=== modified file 'src/wui/game_summary.h'
--- src/wui/game_summary.h	2013-07-26 15:57:34 +0000
+++ src/wui/game_summary.h	2013-09-23 07:47:52 +0000
@@ -32,7 +32,7 @@
 class Interactive_GameBase;
 namespace Widelands
 {
-struct Game;
+class Game;
 }
 
 /// Shows an ingame summary window on game end

=== modified file 'src/wui/interactive_gamebase.cc'
--- src/wui/interactive_gamebase.cc	2013-08-20 16:17:50 +0000
+++ src/wui/interactive_gamebase.cc	2013-09-23 07:47:52 +0000
@@ -40,8 +40,8 @@
 	m_building_tooltip_format
 		(global_s.get_string("building_tooltip_format",      "%r")),
 	m_chatenabled(chatenabled),
-	m_playertype(pt),
-	m_multiplayer(multiplayer)
+	m_multiplayer(multiplayer),
+	m_playertype(pt)
 {}
 
 /// \return a pointer to the running \ref Game instance.
@@ -106,4 +106,3 @@
 	}
 	new GameSummaryScreen(this, &m_game_summary);
 }
-

=== modified file 'src/wui/interactive_gamebase.h'
--- src/wui/interactive_gamebase.h	2013-08-20 16:17:50 +0000
+++ src/wui/interactive_gamebase.h	2013-09-23 07:47:52 +0000
@@ -59,6 +59,7 @@
 	void set_chat_provider(ChatProvider &);
 	ChatProvider * get_chat_provider();
 
+	// NOCOM(#sirver): ripe for killing.
 	const std::string & building_census_format      () const {
 		return m_building_census_format;
 	}
@@ -90,7 +91,6 @@
 	std::string              m_building_tooltip_format;
 	bool                     m_chatenabled;
 	bool                     m_multiplayer;
-
 	PlayerType m_playertype;
 	UI::UniqueWindow::Registry m_fieldaction;
 	UI::UniqueWindow::Registry m_game_summary;

=== modified file 'src/wui/interactive_spectator.h'
--- src/wui/interactive_spectator.h	2013-07-26 20:19:36 +0000
+++ src/wui/interactive_spectator.h	2013-09-23 07:47:52 +0000
@@ -25,7 +25,7 @@
 #include "wui/interactive_gamebase.h"
 #include "ui_basic/button.h"
 
-namespace Widelands {struct Game;}
+namespace Widelands {class Game;}
 
 /**
  * This class shows a game for somebody who is only a spectator.

=== modified file 'src/wui/itemwaresdisplay.h'
--- src/wui/itemwaresdisplay.h	2013-02-09 17:18:07 +0000
+++ src/wui/itemwaresdisplay.h	2013-09-23 07:47:52 +0000
@@ -20,11 +20,13 @@
 #ifndef WUI_ITEMWARESDISPLAY_H
 #define WUI_ITEMWARESDISPLAY_H
 
+#include <vector>
+
 #include "logic/widelands.h"
 #include "ui_basic/panel.h"
 
 namespace Widelands {
-struct Player;
+class Player;
 }
 
 /**

=== modified file 'src/wui/mapviewpixelfunctions.h'
--- src/wui/mapviewpixelfunctions.h	2013-07-26 20:19:36 +0000
+++ src/wui/mapviewpixelfunctions.h	2013-09-23 07:47:52 +0000
@@ -26,7 +26,7 @@
 #include "wui/mapviewpixelconstants.h"
 #include "point.h"
 
-namespace Widelands {struct Map;}
+namespace Widelands {class Map;}
 
 namespace MapviewPixelFunctions {
 
@@ -52,9 +52,6 @@
  * the 2 neighbouring nodes whose screen coordinates define the rectangle that
  * the point is in. But this should be fully correct for all but the most
  * bizarre triangle shapes, and acceptable even for them.
- *
- * \note More documentation exists in HTML-format with figures in
- * <a href="../../../../geometry/index.html">doc/geometry</a>.
  */
 Widelands::Node_and_Triangle<> calc_node_and_triangle
 	(const Widelands::Map &, uint32_t x, uint32_t y);

=== modified file 'src/wui/quicknavigation.h'
--- src/wui/quicknavigation.h	2013-07-26 19:16:51 +0000
+++ src/wui/quicknavigation.h	2013-09-23 07:47:52 +0000
@@ -1,6 +1,3 @@
-
-namespace Widelands {
-struct Map;}
 /*
  * Copyright (C) 2010 by the Widelands Development Team
  *
@@ -32,7 +29,7 @@
 #include "point.h"
 
 namespace Widelands {
-struct Editor_Game_Base;
+class Editor_Game_Base;
 }
 
 /**


Follow ups