<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.wesnoth.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=HaJo</id>
	<title>The Battle for Wesnoth Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.wesnoth.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=HaJo"/>
	<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/Special:Contributions/HaJo"/>
	<updated>2026-05-19T14:37:45Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GetText&amp;diff=17187</id>
		<title>GetText</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GetText&amp;diff=17187"/>
		<updated>2007-08-15T23:39:22Z</updated>

		<summary type="html">&lt;p&gt;HaJo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  GNU gettext in Wesnoth  ==&lt;br /&gt;
* [[GettextForWesnothDevelopers]]&lt;br /&gt;
* [[GettextForTranslators]]&lt;br /&gt;
&lt;br /&gt;
* Homepage: http://www.gnu.org/software/gettext&lt;br /&gt;
* Manual:   http://www.gnu.org/software/gettext/manual/gettext.html&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GetText&amp;diff=17186</id>
		<title>GetText</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GetText&amp;diff=17186"/>
		<updated>2007-08-15T23:38:56Z</updated>

		<summary type="html">&lt;p&gt;HaJo: gettext-homepage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  GNU gettext in Wesnoth  ==&lt;br /&gt;
* [[GettextForWesnothDevelopers]]&lt;br /&gt;
* [[GettextForTranslators]]&lt;br /&gt;
&lt;br /&gt;
Homepage: http://www.gnu.org/software/gettext&lt;br /&gt;
Manual:   http://www.gnu.org/software/gettext/manual/gettext.html&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=CodingStandards&amp;diff=17151</id>
		<title>CodingStandards</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=CodingStandards&amp;diff=17151"/>
		<updated>2007-08-15T13:12:59Z</updated>

		<summary type="html">&lt;p&gt;HaJo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wesnoth uses modern/advanced C++ that is portable to Visual C++ 6 and GNU G++ 3.0+&lt;br /&gt;
&lt;br /&gt;
== Formatting ==&lt;br /&gt;
&lt;br /&gt;
Indent with a tab character (width 4 characters), but align with spaces so tab width can change. &lt;br /&gt;
&lt;br /&gt;
You may use long lines. (Could we change this to max 80 columns per line? --TuukkaH)&lt;br /&gt;
&lt;br /&gt;
=== How to on Emacs? ===&lt;br /&gt;
&lt;br /&gt;
 M-x set-variable tab-width 4&lt;br /&gt;
 M-x set-variable c-basic-offset 4&lt;br /&gt;
&lt;br /&gt;
How to set alignment to use spaces?&lt;br /&gt;
&lt;br /&gt;
== Naming ==&lt;br /&gt;
&lt;br /&gt;
=== End Non-Public Members of Classes with an Underscore ===&lt;br /&gt;
&lt;br /&gt;
All non-public data members of classes should have their names terminated with an underscore, to show that they are a&lt;br /&gt;
class member. This makes for more readable code, once one is familiar with the convention.&lt;br /&gt;
&lt;br /&gt;
== Idioms ==&lt;br /&gt;
&lt;br /&gt;
=== Use References when a value may not be NULL ===&lt;br /&gt;
&lt;br /&gt;
If a value passed to a function can never be NULL, use a reference instead of a pointer. I.e.&lt;br /&gt;
&lt;br /&gt;
  void myfunction(Object&amp;amp; obj);&lt;br /&gt;
&lt;br /&gt;
rather than&lt;br /&gt;
&lt;br /&gt;
  void myfunction(Object* obj);&lt;br /&gt;
&lt;br /&gt;
This more clearly shows the user of the function that obj may never be NULL, &lt;br /&gt;
without them having to consult documentation or the implementation of the function.&lt;br /&gt;
&lt;br /&gt;
=== Use Const ===&lt;br /&gt;
&lt;br /&gt;
The 'const' feature of C++ allows interfaces to more clearly specify how they treat objects. &lt;br /&gt;
Always use const when you are not going to modify an object.&lt;br /&gt;
&lt;br /&gt;
I.e.&lt;br /&gt;
&lt;br /&gt;
  void myfunction(const Object&amp;amp; obj);&lt;br /&gt;
&lt;br /&gt;
demonstrates to the caller of myfunction() that obj will not be modified. &lt;br /&gt;
If myfunction may modify obj, then use&lt;br /&gt;
&lt;br /&gt;
  void myfunction(Object&amp;amp; obj);&lt;br /&gt;
&lt;br /&gt;
likewise, if a variable is not changed after initialization, make it const.&lt;br /&gt;
&lt;br /&gt;
=== Write Exception-Safe Code ===&lt;br /&gt;
&lt;br /&gt;
Wesnoth code should be exception-safe, even if you do not use exceptions directly. &lt;br /&gt;
That is, you should be able to assume that an exception is thrown almost anywhere &lt;br /&gt;
from within the code, with well-defined results (i.e. no resource leaks).&lt;br /&gt;
&lt;br /&gt;
Code that uses a pattern like,&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
  SDL_Surface* image = IMG_Load(&amp;quot;image.bmp&amp;quot;);&lt;br /&gt;
  ...some code, which uses 'image'...&lt;br /&gt;
  SDL_FreeSurface(image);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
is bad, because the code may throw an exception, and 'image' will never be freed. &lt;br /&gt;
Instead, use wrapper objects which free the object in their destructor.&lt;br /&gt;
&lt;br /&gt;
For SDL_Surface objects, use the &amp;lt;tt&amp;gt;surface&amp;lt;/tt&amp;gt; class. &lt;br /&gt;
So you could rewrite the above code,&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
  surface image(IMG_Load(&amp;quot;image.bmp&amp;quot;));&lt;br /&gt;
  ...some code, which uses 'image'...&lt;br /&gt;
  } ''the image is automatically freed here when 'image' is destroyed&lt;br /&gt;
&lt;br /&gt;
Instead of allocating memory directly using new[] or malloc(), &lt;br /&gt;
use language-provided containers, such as vector.&lt;br /&gt;
&lt;br /&gt;
=== Do not use sprintf ===&lt;br /&gt;
&lt;br /&gt;
Sprintf does not check whether or not it is writing past the end of the space allocated. &lt;br /&gt;
This is a security problem if someone other than the person running the game &lt;br /&gt;
can cause sprintf to write very long strings. &lt;br /&gt;
In Wesnoth this untrusted data could come potentially from other players &lt;br /&gt;
in a multiplayer game or from downloaded campaigns. &lt;br /&gt;
Instead you should use snprintf with the second argument being sizeof of the buffer &lt;br /&gt;
that will hold the result.&lt;br /&gt;
&lt;br /&gt;
== Standard C++ to avoid ==&lt;br /&gt;
&lt;br /&gt;
=== Respect for loop scoping of different platforms ===&lt;br /&gt;
&lt;br /&gt;
In the code,&lt;br /&gt;
&lt;br /&gt;
  for(int i = 0; i != 100; ++i) {...}&lt;br /&gt;
&lt;br /&gt;
the variable 'i' is scoped within the for loop according to ISO/ANSI C++ and GNU G++. &lt;br /&gt;
However it is scoped within the surrounding scope according to Visual C++ 6.&lt;br /&gt;
&lt;br /&gt;
This means that the code,&lt;br /&gt;
&lt;br /&gt;
  for(int i = 0; i != 100; ++i) {}&lt;br /&gt;
  for(int i = 0; i != 100; ++i) {}&lt;br /&gt;
&lt;br /&gt;
is illegal on VC++6, because i is defined twice, &lt;br /&gt;
although it is legal according to the standard, and GNU G++.&lt;br /&gt;
&lt;br /&gt;
On VC++6, the legal way to write it would be,&lt;br /&gt;
&lt;br /&gt;
  for(int i = 0; i != 100; ++i) {}&lt;br /&gt;
  for(i = 0; i != 100; ++i) {}&lt;br /&gt;
&lt;br /&gt;
But this is illegal according to the standard, because 'i' is not defined in the second loop. &lt;br /&gt;
The correct way to write this code to conform to the standard and work on all platforms &lt;br /&gt;
is to simply abandon declaring variables in the initialization statement of a for loop &lt;br /&gt;
when the variable must be reused in the same scope,&lt;br /&gt;
&lt;br /&gt;
  int i;&lt;br /&gt;
  for(i = 0; i != 100; ++i) {}&lt;br /&gt;
  for(i = 0; i != 100; ++i) {}&lt;br /&gt;
&lt;br /&gt;
=== Do not use wstring ===&lt;br /&gt;
&lt;br /&gt;
The standard C++ wstring class, defined as a basic_string&amp;lt; wchar_t &amp;gt;, &lt;br /&gt;
does not exist in some platforms supported by Wesnoth. &lt;br /&gt;
Use wide_string, defined in language.hpp, instead. &lt;br /&gt;
wide_string is actually defined as a vector&amp;lt; wchar_t &amp;gt;&lt;br /&gt;
&lt;br /&gt;
== C legacy to be avoided ==&lt;br /&gt;
&lt;br /&gt;
=== Use the function templates minimum and maximum ===&lt;br /&gt;
&lt;br /&gt;
Standard C++ offers the function templates min and max to find the minimum and maximum &lt;br /&gt;
of two values on which operator&lt;br /&gt;
&amp;lt;&lt;br /&gt;
is defined. &lt;br /&gt;
Unfortunately, many hoops must be leapt through to get this working on VC++. &lt;br /&gt;
So, we do not use standard min and max. &lt;br /&gt;
Instead, we use minimum and maximum, defined in utils.hpp.&lt;br /&gt;
&lt;br /&gt;
Usage is fairly natural:&lt;br /&gt;
&lt;br /&gt;
  int i = minimum(x,y);&lt;br /&gt;
&lt;br /&gt;
Note that in the above example, if x is an unsigned integer, and y is a signed integer, &lt;br /&gt;
VC++ will have problems. &lt;br /&gt;
You must explicitly specify the version of minimum being called in such cases:&lt;br /&gt;
&lt;br /&gt;
  int i = minimum&amp;lt;int&amp;gt;(x,y);&lt;br /&gt;
&lt;br /&gt;
=== Use util::array instead of C-style Arrays ===&lt;br /&gt;
&lt;br /&gt;
C-style arrays are very efficient, but their interface is ugly. &lt;br /&gt;
Use util::array defined in array.hpp. &lt;br /&gt;
It is a wrapper for an array which has a C++ container-style interface. &lt;br /&gt;
If you need to, extend it to make it fit your needs.&lt;br /&gt;
&lt;br /&gt;
=== Do not use C-style casts ===&lt;br /&gt;
&lt;br /&gt;
The following code,&lt;br /&gt;
&lt;br /&gt;
  if(i-&amp;gt;second.side() == (size_t)player_number_) {&lt;br /&gt;
&lt;br /&gt;
is considered bad practice in C++ since a C-style cast is overpowered -- if types change around it could end up casting away constness, or performing an implementation-defined data reinterpretation (basically a C-style cast is a compiler generated combination of static_cast, reinterpret_cast, and const_cast).&lt;br /&gt;
&lt;br /&gt;
Good programming style is to use the least powerful tool available that does what you want. &lt;br /&gt;
For example,&lt;br /&gt;
&lt;br /&gt;
  if(i-&amp;gt;second.side() == static_cast&amp;lt;size_t&amp;gt;(player_number_)) {&lt;br /&gt;
&lt;br /&gt;
Alternatively, a constructor call may be used for non-builtin types.&lt;br /&gt;
&lt;br /&gt;
Note: there may be some obscure cases where a C-style cast is desirable, &lt;br /&gt;
such as converting a pointer to an integer type of unspecified size.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
=== Document &amp;quot;config&amp;quot; preconditions and postconditions ===&lt;br /&gt;
&lt;br /&gt;
In the Wesnoth code you will commonly encounter a data container known as the &amp;quot;config&amp;quot;, &lt;br /&gt;
which contains heirarchical string data (such as WML contents or game settings). &lt;br /&gt;
The tagged &amp;quot;children&amp;quot; of the config and their string &amp;quot;attributes&amp;quot; are arranged &lt;br /&gt;
in an ordered and mapped format internally using STL.&lt;br /&gt;
&lt;br /&gt;
Because config data is utilized in so many ways and places,  it can be difficult to track across the scope of the entire program. You should document all public functions that take/return a config, specifying config content expectations (and updating any related entries in the [[ReferenceWML]] wiki pages). &lt;br /&gt;
In particular, if your function requires a config parameter, specify where/how the config should be created. This will be a great help to any future coders who need to call or modify your function.&lt;br /&gt;
&lt;br /&gt;
=== Doxygen ===&lt;br /&gt;
See [[Doxygen]] for tips on how to comment the code,&lt;br /&gt;
so that doxygen can nicely document it.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[HackingWesnoth]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Programmers]]&lt;br /&gt;
[[Category:Committers]]&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=CodingStandards&amp;diff=17150</id>
		<title>CodingStandards</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=CodingStandards&amp;diff=17150"/>
		<updated>2007-08-15T13:09:05Z</updated>

		<summary type="html">&lt;p&gt;HaJo: Doxygen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wesnoth uses modern/advanced C++ that is portable to Visual C++ 6 and GNU G++ 3.0+&lt;br /&gt;
&lt;br /&gt;
== Formatting ==&lt;br /&gt;
&lt;br /&gt;
Indent with a tab character (width 4 characters), but align with spaces so tab width can change. &lt;br /&gt;
&lt;br /&gt;
You may use long lines. (Could we change this to max 80 columns per line? --TuukkaH)&lt;br /&gt;
&lt;br /&gt;
=== How to on Emacs? ===&lt;br /&gt;
&lt;br /&gt;
 M-x set-variable tab-width 4&lt;br /&gt;
 M-x set-variable c-basic-offset 4&lt;br /&gt;
&lt;br /&gt;
How to set alignment to use spaces?&lt;br /&gt;
&lt;br /&gt;
== Naming ==&lt;br /&gt;
&lt;br /&gt;
=== End Non-Public Members of Classes with an Underscore ===&lt;br /&gt;
&lt;br /&gt;
All non-public data members of classes should have their names terminated with an underscore, to show that they are a&lt;br /&gt;
class member. This makes for more readable code, once one is familiar with the convention.&lt;br /&gt;
&lt;br /&gt;
== Idioms ==&lt;br /&gt;
&lt;br /&gt;
=== Use References when a value may not be NULL ===&lt;br /&gt;
&lt;br /&gt;
If a value passed to a function can never be NULL, use a reference instead of a pointer. I.e.&lt;br /&gt;
&lt;br /&gt;
  void myfunction(Object&amp;amp; obj);&lt;br /&gt;
&lt;br /&gt;
rather than&lt;br /&gt;
&lt;br /&gt;
  void myfunction(Object* obj);&lt;br /&gt;
&lt;br /&gt;
This more clearly shows the user of the function that obj may never be NULL, without them having to consult&lt;br /&gt;
documentation or the implementation of the function.&lt;br /&gt;
&lt;br /&gt;
=== Use Const ===&lt;br /&gt;
&lt;br /&gt;
The 'const' feature of C++ allows interfaces to more clearly specify how they treat objects. Always use const when you&lt;br /&gt;
are not going to modify an object.&lt;br /&gt;
&lt;br /&gt;
I.e.&lt;br /&gt;
&lt;br /&gt;
  void myfunction(const Object&amp;amp; obj);&lt;br /&gt;
&lt;br /&gt;
demonstrates to the caller of myfunction() that obj will not be modified. If myfunction may modify obj, then use&lt;br /&gt;
&lt;br /&gt;
  void myfunction(Object&amp;amp; obj);&lt;br /&gt;
&lt;br /&gt;
likewise, if a variable is not changed after initialization, make it const.&lt;br /&gt;
&lt;br /&gt;
=== Write Exception-Safe Code ===&lt;br /&gt;
&lt;br /&gt;
Wesnoth code should be exception-safe, even if you do not use exceptions directly. That is, you should be able to assume that an exception is thrown almost anywhere from within the code, with well-defined results (i.e. no resource leaks).&lt;br /&gt;
&lt;br /&gt;
Code that uses a pattern like,&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
  SDL_Surface* image = IMG_Load(&amp;quot;image.bmp&amp;quot;);&lt;br /&gt;
  ...some code, which uses 'image'...&lt;br /&gt;
  SDL_FreeSurface(image);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
is bad, because the code may throw an exception, and 'image' will never be freed. Instead, use wrapper objects which free the object in their destructor.&lt;br /&gt;
&lt;br /&gt;
For SDL_Surface objects, use the &amp;lt;tt&amp;gt;surface&amp;lt;/tt&amp;gt; class. So you could rewrite the above code,&lt;br /&gt;
&lt;br /&gt;
  {&lt;br /&gt;
  surface image(IMG_Load(&amp;quot;image.bmp&amp;quot;));&lt;br /&gt;
  ...some code, which uses 'image'...&lt;br /&gt;
  } ''the image is automatically freed here when 'image' is destroyed&lt;br /&gt;
&lt;br /&gt;
Instead of allocating memory directly using new[] or malloc(), use language-provided containers, such as vector.&lt;br /&gt;
&lt;br /&gt;
=== Do not use sprintf ===&lt;br /&gt;
&lt;br /&gt;
Sprintf does not check whether or not it is writing past the end of the space allocated. This is a security problem if someone other than the person running the game can cause sprintf to write very long strings. In Wesnoth this untrusted data could come potentially from other players in a multiplayer game or from downloaded campaigns. Instead you should use snprintf with the second argument being sizeof of the buffer that will hold the result.&lt;br /&gt;
&lt;br /&gt;
== Standard C++ to avoid ==&lt;br /&gt;
&lt;br /&gt;
=== Respect for loop scoping of different platforms ===&lt;br /&gt;
&lt;br /&gt;
In the code,&lt;br /&gt;
&lt;br /&gt;
  for(int i = 0; i != 100; ++i) {...}&lt;br /&gt;
&lt;br /&gt;
the variable 'i' is scoped within the for loop according to ISO/ANSI C++ and GNU G++. However it is scoped within the&lt;br /&gt;
surrounding scope according to Visual C++ 6.&lt;br /&gt;
&lt;br /&gt;
This means that the code,&lt;br /&gt;
&lt;br /&gt;
  for(int i = 0; i != 100; ++i) {}&lt;br /&gt;
  for(int i = 0; i != 100; ++i) {}&lt;br /&gt;
&lt;br /&gt;
is illegal on VC++6, because i is defined twice, although it is legal according to the standard, and GNU G++.&lt;br /&gt;
&lt;br /&gt;
On VC++6, the legal way to write it would be,&lt;br /&gt;
&lt;br /&gt;
  for(int i = 0; i != 100; ++i) {}&lt;br /&gt;
  for(i = 0; i != 100; ++i) {}&lt;br /&gt;
&lt;br /&gt;
But this is illegal according to the standard, because 'i' is not defined in the second loop. The correct way to write&lt;br /&gt;
this code to conform to the standard and work on all platforms is to simply abandon declaring variables in the&lt;br /&gt;
initialization statement of a for loop when the variable must be reused in the same scope,&lt;br /&gt;
&lt;br /&gt;
  int i;&lt;br /&gt;
  for(i = 0; i != 100; ++i) {}&lt;br /&gt;
  for(i = 0; i != 100; ++i) {}&lt;br /&gt;
&lt;br /&gt;
=== Do not use wstring ===&lt;br /&gt;
&lt;br /&gt;
The standard C++ wstring class, defined as a basic_string&amp;lt; wchar_t &amp;gt;, does not exist in some platforms supported&lt;br /&gt;
by&lt;br /&gt;
Wesnoth. Use wide_string, defined in language.hpp, instead. wide_string is actually defined as a vector&amp;lt; wchar_t &amp;gt;&lt;br /&gt;
&lt;br /&gt;
== C legacy to be avoided ==&lt;br /&gt;
&lt;br /&gt;
=== Use the function templates minimum and maximum ===&lt;br /&gt;
&lt;br /&gt;
Standard C++ offers the function templates min and max to find the minimum and maximum of two values on which operator&lt;br /&gt;
&amp;lt;&lt;br /&gt;
is defined. Unfortunately, many hoops must be leapt through to get this working on VC++. So, we do not use standard&lt;br /&gt;
min&lt;br /&gt;
and max. Instead, we use minimum and maximum, defined in utils.hpp.&lt;br /&gt;
&lt;br /&gt;
Usage is fairly natural:&lt;br /&gt;
&lt;br /&gt;
  int i = minimum(x,y);&lt;br /&gt;
&lt;br /&gt;
Note that in the above example, if x is an unsigned integer, and y is a signed integer, VC++ will have problems. You&lt;br /&gt;
must explicitly specify the version of minimum being called in such cases:&lt;br /&gt;
&lt;br /&gt;
  int i = minimum&amp;lt;int&amp;gt;(x,y);&lt;br /&gt;
&lt;br /&gt;
=== Use util::array instead of C-style Arrays ===&lt;br /&gt;
&lt;br /&gt;
C-style arrays are very efficient, but their interface is ugly. Use util::array defined in array.hpp. It is a wrapper&lt;br /&gt;
for an array which has a C++ container-style interface. If you need to, extend it to make it fit your needs.&lt;br /&gt;
&lt;br /&gt;
=== Do not use C-style casts ===&lt;br /&gt;
&lt;br /&gt;
The following code,&lt;br /&gt;
&lt;br /&gt;
  if(i-&amp;gt;second.side() == (size_t)player_number_) {&lt;br /&gt;
&lt;br /&gt;
is considered bad practice in C++ since a C-style cast is overpowered -- if types change around it could end up casting away constness, or performing an implementation-defined data reinterpretation (basically a C-style cast is a compiler generated combination of static_cast, reinterpret_cast, and const_cast).&lt;br /&gt;
&lt;br /&gt;
Good programming style is to use the least powerful tool available that does what you want. For example,&lt;br /&gt;
&lt;br /&gt;
  if(i-&amp;gt;second.side() == static_cast&amp;lt;size_t&amp;gt;(player_number_)) {&lt;br /&gt;
&lt;br /&gt;
Alternatively, a constructor call may be used for non-builtin types.&lt;br /&gt;
&lt;br /&gt;
Note: there may be some obscure cases where a C-style cast is desirable, such as converting a pointer to an integer type of unspecified size.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
=== Document &amp;quot;config&amp;quot; preconditions and postconditions ===&lt;br /&gt;
&lt;br /&gt;
In the Wesnoth code you will commonly encounter a data container known as the &amp;quot;config,&amp;quot; which contains heirarchical string data (such as WML contents or game settings). The tagged &amp;quot;children&amp;quot; of the config and their string &amp;quot;attributes&amp;quot; are arranged in an ordered and mapped format internally using STL.&lt;br /&gt;
&lt;br /&gt;
Because config data is utilized in so many ways and places,  it can be difficult to track across the scope of the entire program. You should document all public functions that take/return a config, specifying config content expectations (and updating any related entries in the [[ReferenceWML]] wiki pages). In particular, if your function requires a config parameter, specify where/how the config should be created. This will be a great help to any future coders who need to call or modify your function.&lt;br /&gt;
&lt;br /&gt;
=== Doxygen ===&lt;br /&gt;
See [[Doxygen]] for tips on how to comment the code,&lt;br /&gt;
so that doxygen can make nicely document it.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[HackingWesnoth]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Programmers]]&lt;br /&gt;
[[Category:Committers]]&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=DeveloperResources&amp;diff=17149</id>
		<title>DeveloperResources</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=DeveloperResources&amp;diff=17149"/>
		<updated>2007-08-15T13:06:21Z</updated>

		<summary type="html">&lt;p&gt;HaJo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
* Forum - http://forum.wesnoth.org&lt;br /&gt;
* Wiki :&lt;br /&gt;
** http://www.wesnoth.org/wiki/Main_Page &lt;br /&gt;
** [[GettingStarted]]&lt;br /&gt;
** [[FrequentlyProposedIdeas]] - summary of past often-repeated forum discussions&lt;br /&gt;
** [[WesnothAcronyms]]&lt;br /&gt;
&lt;br /&gt;
== Game - Play ==&lt;br /&gt;
* units - http://units.wesnoth.org/&lt;br /&gt;
* unit list - http://zapicm.freeshell.org/stable/&lt;br /&gt;
* movement types &amp;amp; resistance - http://zapicm.freeshell.org/stable/data/&lt;br /&gt;
&lt;br /&gt;
== Game - Create content ==&lt;br /&gt;
* [[BuildingScenarios]] and related useful forum discussions: &lt;br /&gt;
** [http://www.wesnoth.org/forum/viewtopic.php?t=4188 Beginning Campaign Development]&lt;br /&gt;
** [http://www.wesnoth.org/forum/viewtopic.php?t=4301 A Balancing Act]&lt;br /&gt;
* [[ReferenceWML]]&lt;br /&gt;
&lt;br /&gt;
== Communication, Feedback ==&lt;br /&gt;
* Gna! links&lt;br /&gt;
** Gna! - bugs and feature requests - http://bugs.wesnoth.org/&lt;br /&gt;
** Gna! - patches - http://patches.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
* Mailing lists:&lt;br /&gt;
** wesnoth-dev - https://mail.gna.org/listinfo/wesnoth-dev/&lt;br /&gt;
** wesnoth-commits - https://mail.gna.org/listinfo/wesnoth-commits/&lt;br /&gt;
&lt;br /&gt;
* IRC: [irc://irc.wesnoth.org/#wesnoth-dev freenode/#wesnoth-dev] (alias to irc.freenode.net)&lt;br /&gt;
** IRC logs - http://irclog.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
== Code, Development ==&lt;br /&gt;
* changelog - http://changelog.wesnoth.org/&lt;br /&gt;
* Up-to-date commit messages : http://cia.vc/stats/project/wesnoth&lt;br /&gt;
* Documentation generator [[Doxygen]] &lt;br /&gt;
** generated code documentation - http://devdocs.wesnoth.org&lt;br /&gt;
* gettext status - http://gettext.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
* [[CompilingWesnoth]] - how to compile Battle for Wesnoth (it's not hard)&lt;br /&gt;
* Standard Template Library - http://www.sgi.com/tech/stl/&lt;br /&gt;
* [[DebugMode]] and [[CommandMode]] - in game debugging commands&lt;br /&gt;
* [[WesnothSVN]] - SVN instructions&lt;br /&gt;
* Gna! - websvn - http://websvn.wesnoth.org/ Web-Access to svn&lt;br /&gt;
* [[ExternalUtilities]] (Wercator, CampGen, wmllint, etc.)&lt;br /&gt;
* [[HackingWesnoth]]&lt;br /&gt;
* [[CodingStandards]]&lt;br /&gt;
* [[Developers]]&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=DeveloperResources&amp;diff=17148</id>
		<title>DeveloperResources</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=DeveloperResources&amp;diff=17148"/>
		<updated>2007-08-15T13:05:08Z</updated>

		<summary type="html">&lt;p&gt;HaJo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
* Forum - http://forum.wesnoth.org&lt;br /&gt;
* Wiki :&lt;br /&gt;
** http://www.wesnoth.org/wiki/Main_Page &lt;br /&gt;
** [[GettingStarted]]&lt;br /&gt;
** [[FrequentlyProposedIdeas]] - summary of past often-repeated forum discussions&lt;br /&gt;
** [[WesnothAcronyms]]&lt;br /&gt;
&lt;br /&gt;
== Game - Play ==&lt;br /&gt;
* units - http://units.wesnoth.org/&lt;br /&gt;
* unit list - http://zapicm.freeshell.org/stable/&lt;br /&gt;
* movement types &amp;amp; resistance - http://zapicm.freeshell.org/stable/data/&lt;br /&gt;
&lt;br /&gt;
== Game - Create content ==&lt;br /&gt;
* [[BuildingScenarios]] and related useful forum discussions: &lt;br /&gt;
** [http://www.wesnoth.org/forum/viewtopic.php?t=4188 Beginning Campaign Development]&lt;br /&gt;
** [http://www.wesnoth.org/forum/viewtopic.php?t=4301 A Balancing Act]&lt;br /&gt;
* [[ReferenceWML]]&lt;br /&gt;
&lt;br /&gt;
== Communication, Feedback ==&lt;br /&gt;
* Gna! links&lt;br /&gt;
** Gna! - bugs and feature requests - http://bugs.wesnoth.org/&lt;br /&gt;
** Gna! - patches - http://patches.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
* Mailing lists:&lt;br /&gt;
** wesnoth-dev - https://mail.gna.org/listinfo/wesnoth-dev/&lt;br /&gt;
** wesnoth-commits - https://mail.gna.org/listinfo/wesnoth-commits/&lt;br /&gt;
&lt;br /&gt;
* IRC: [irc://irc.wesnoth.org/#wesnoth-dev freenode/#wesnoth-dev] (alias to irc.freenode.net)&lt;br /&gt;
** IRC logs - http://irclog.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
== Code, Development ==&lt;br /&gt;
* changelog - http://changelog.wesnoth.org/&lt;br /&gt;
* Up-to-date commit messages : http://cia.vc/stats/project/wesnoth&lt;br /&gt;
* Code documentation, created with &lt;br /&gt;
* documentation system [[Doxygen]] &lt;br /&gt;
** generated code documentation - http://devdocs.wesnoth.org&lt;br /&gt;
* gettext status - http://gettext.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
* [[CompilingWesnoth]] - how to compile Battle for Wesnoth (it's not hard)&lt;br /&gt;
* Standard Template Library - http://www.sgi.com/tech/stl/&lt;br /&gt;
* [[DebugMode]] and [[CommandMode]] - in game debugging commands&lt;br /&gt;
* [[WesnothSVN]] - SVN instructions&lt;br /&gt;
* Gna! - websvn - http://websvn.wesnoth.org/ Web-Access to svn&lt;br /&gt;
* [[ExternalUtilities]] (Wercator, CampGen, wmllint, etc.)&lt;br /&gt;
* [[HackingWesnoth]]&lt;br /&gt;
* [[CodingStandards]]&lt;br /&gt;
* [[Developers]]&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=DeveloperResources&amp;diff=17147</id>
		<title>DeveloperResources</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=DeveloperResources&amp;diff=17147"/>
		<updated>2007-08-15T13:04:04Z</updated>

		<summary type="html">&lt;p&gt;HaJo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
* Forum - http://forum.wesnoth.org&lt;br /&gt;
* Wiki :&lt;br /&gt;
** http://www.wesnoth.org/wiki/Main_Page &lt;br /&gt;
** [[GettingStarted]]&lt;br /&gt;
** [[FrequentlyProposedIdeas]] - summary of past often-repeated forum discussions&lt;br /&gt;
** [[WesnothAcronyms]]&lt;br /&gt;
&lt;br /&gt;
== Game - Play ==&lt;br /&gt;
* units - http://units.wesnoth.org/&lt;br /&gt;
* unit list - http://zapicm.freeshell.org/stable/&lt;br /&gt;
* movement types &amp;amp; resistance - http://zapicm.freeshell.org/stable/data/&lt;br /&gt;
* [[ReferenceWML]]&lt;br /&gt;
&lt;br /&gt;
== Game - Create content ==&lt;br /&gt;
* [[BuildingScenarios]] and related useful forum discussions: &lt;br /&gt;
** [http://www.wesnoth.org/forum/viewtopic.php?t=4188 Beginning Campaign Development]&lt;br /&gt;
** [http://www.wesnoth.org/forum/viewtopic.php?t=4301 A Balancing Act]&lt;br /&gt;
&lt;br /&gt;
== Communication, Feedback ==&lt;br /&gt;
* Gna! links&lt;br /&gt;
** Gna! - bugs and feature requests - http://bugs.wesnoth.org/&lt;br /&gt;
** Gna! - patches - http://patches.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
* Mailing lists:&lt;br /&gt;
** wesnoth-dev - https://mail.gna.org/listinfo/wesnoth-dev/&lt;br /&gt;
** wesnoth-commits - https://mail.gna.org/listinfo/wesnoth-commits/&lt;br /&gt;
&lt;br /&gt;
* IRC: [irc://irc.wesnoth.org/#wesnoth-dev freenode/#wesnoth-dev] (alias to irc.freenode.net)&lt;br /&gt;
** IRC logs - http://irclog.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
== Code, Development ==&lt;br /&gt;
* changelog - http://changelog.wesnoth.org/&lt;br /&gt;
* Up-to-date commit messages : http://cia.vc/stats/project/wesnoth&lt;br /&gt;
* Code documentation, created with &lt;br /&gt;
* documentation system [[Doxygen]] &lt;br /&gt;
** generated code documentation - http://devdocs.wesnoth.org&lt;br /&gt;
* gettext status - http://gettext.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
* [[CompilingWesnoth]] - how to compile Battle for Wesnoth (it's not hard)&lt;br /&gt;
* Standard Template Library - http://www.sgi.com/tech/stl/&lt;br /&gt;
* [[DebugMode]] and [[CommandMode]] - in game debugging commands&lt;br /&gt;
* [[WesnothSVN]] - SVN instructions&lt;br /&gt;
* Gna! - websvn - http://websvn.wesnoth.org/ Web-Access to svn&lt;br /&gt;
* [[ExternalUtilities]] (Wercator, CampGen, wmllint, etc.)&lt;br /&gt;
* [[HackingWesnoth]]&lt;br /&gt;
* [[CodingStandards]]&lt;br /&gt;
* [[Developers]]&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=DeveloperResources&amp;diff=17146</id>
		<title>DeveloperResources</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=DeveloperResources&amp;diff=17146"/>
		<updated>2007-08-15T13:02:25Z</updated>

		<summary type="html">&lt;p&gt;HaJo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
* Forum - http://forum.wesnoth.org&lt;br /&gt;
* Wiki :&lt;br /&gt;
** http://www.wesnoth.org/wiki/Main_Page &lt;br /&gt;
** [[GettingStarted]]&lt;br /&gt;
** [[FrequentlyProposedIdeas]] - summary of past often-repeated forum discussions&lt;br /&gt;
** [[WesnothAcronyms]]&lt;br /&gt;
&lt;br /&gt;
== Game - Play ==&lt;br /&gt;
* units - http://units.wesnoth.org/&lt;br /&gt;
* unit list - http://zapicm.freeshell.org/stable/&lt;br /&gt;
* movement types &amp;amp; resistance - http://zapicm.freeshell.org/stable/data/&lt;br /&gt;
&lt;br /&gt;
== Game - Create content ==&lt;br /&gt;
* [[BuildingScenarios]] and related useful forum discussions: &lt;br /&gt;
** [http://www.wesnoth.org/forum/viewtopic.php?t=4188 Beginning Campaign Development]&lt;br /&gt;
** [http://www.wesnoth.org/forum/viewtopic.php?t=4301 A Balancing Act]&lt;br /&gt;
&lt;br /&gt;
== Communication, Feedback ==&lt;br /&gt;
* Gna! links&lt;br /&gt;
** Gna! - bugs and feature requests - http://bugs.wesnoth.org/&lt;br /&gt;
** Gna! - patches - http://patches.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
* Mailing lists:&lt;br /&gt;
** wesnoth-dev - https://mail.gna.org/listinfo/wesnoth-dev/&lt;br /&gt;
** wesnoth-commits - https://mail.gna.org/listinfo/wesnoth-commits/&lt;br /&gt;
&lt;br /&gt;
* IRC: [irc://irc.wesnoth.org/#wesnoth-dev freenode/#wesnoth-dev] (alias to irc.freenode.net)&lt;br /&gt;
** IRC logs - http://irclog.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
== Code, Development ==&lt;br /&gt;
* changelog - http://changelog.wesnoth.org/&lt;br /&gt;
* Up-to-date commit messages : http://cia.vc/stats/project/wesnoth&lt;br /&gt;
* Code documentation, created with &lt;br /&gt;
* documentation system [[Doxygen]] &lt;br /&gt;
** generated code documentation - http://devdocs.wesnoth.org&lt;br /&gt;
* gettext status - http://gettext.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
* [[CompilingWesnoth]] - how to compile Battle for Wesnoth (it's not hard)&lt;br /&gt;
* Standard Template Library - http://www.sgi.com/tech/stl/&lt;br /&gt;
* [[DebugMode]] and [[CommandMode]] - in game debugging commands&lt;br /&gt;
* [[WesnothSVN]] - SVN instructions&lt;br /&gt;
* Gna! - websvn - http://websvn.wesnoth.org/ Web-Access to svn&lt;br /&gt;
* [[ExternalUtilities]] (Wercator, CampGen, wmllint, etc.)&lt;br /&gt;
* [[CodingStandards]]&lt;br /&gt;
* [[Developers]]&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=DeveloperResources&amp;diff=17145</id>
		<title>DeveloperResources</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=DeveloperResources&amp;diff=17145"/>
		<updated>2007-08-15T13:00:31Z</updated>

		<summary type="html">&lt;p&gt;HaJo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
* Forum - http://forum.wesnoth.org&lt;br /&gt;
* Wiki :&lt;br /&gt;
** http://www.wesnoth.org/wiki/Main_Page &lt;br /&gt;
** [[GettingStarted]]&lt;br /&gt;
** [[FrequentlyProposedIdeas]] - summary of past often-repeated forum discussions&lt;br /&gt;
** [[WesnothAcronyms]]&lt;br /&gt;
&lt;br /&gt;
== Game - Play ==&lt;br /&gt;
* units - http://units.wesnoth.org/&lt;br /&gt;
* unit list - http://zapicm.freeshell.org/stable/&lt;br /&gt;
* movement types &amp;amp; resistance - http://zapicm.freeshell.org/stable/data/&lt;br /&gt;
&lt;br /&gt;
== Game - Create content ==&lt;br /&gt;
* [[BuildingScenarios]] and related useful forum discussions: &lt;br /&gt;
** [http://www.wesnoth.org/forum/viewtopic.php?t=4188 Beginning Campaign Development]&lt;br /&gt;
** [http://www.wesnoth.org/forum/viewtopic.php?t=4301 A Balancing Act]&lt;br /&gt;
&lt;br /&gt;
== Code, Development ==&lt;br /&gt;
* changelog - http://changelog.wesnoth.org/&lt;br /&gt;
* Up-to-date commit messages : http://cia.vc/stats/project/wesnoth&lt;br /&gt;
* Code documentation, created with &lt;br /&gt;
* documentation system [[Doxygen]] &lt;br /&gt;
** generated code documentation - http://devdocs.wesnoth.org&lt;br /&gt;
* gettext status - http://gettext.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
* [[CompilingWesnoth]] - how to compile Battle for Wesnoth (it's not hard)&lt;br /&gt;
* Standard Template Library - http://www.sgi.com/tech/stl/&lt;br /&gt;
* [[DebugMode]] and [[CommandMode]] - in game debugging commands&lt;br /&gt;
* [[WesnothSVN]] - SVN instructions&lt;br /&gt;
* Gna! - websvn - http://websvn.wesnoth.org/ Web-Access to svn&lt;br /&gt;
* [[ExternalUtilities]]&lt;br /&gt;
* [[CodingStandards]]&lt;br /&gt;
* [[Developers]]&lt;br /&gt;
&lt;br /&gt;
== Communication, Feedback ==&lt;br /&gt;
* Gna! links&lt;br /&gt;
** Gna! - bugs and feature requests - http://bugs.wesnoth.org/&lt;br /&gt;
** Gna! - patches - http://patches.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
* Mailing lists:&lt;br /&gt;
** wesnoth-dev - https://mail.gna.org/listinfo/wesnoth-dev/&lt;br /&gt;
** wesnoth-commits - https://mail.gna.org/listinfo/wesnoth-commits/&lt;br /&gt;
&lt;br /&gt;
* IRC: [irc://irc.wesnoth.org/#wesnoth-dev freenode/#wesnoth-dev] (alias to irc.freenode.net)&lt;br /&gt;
** IRC logs - http://irclog.wesnoth.org/&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=DeveloperResources&amp;diff=17142</id>
		<title>DeveloperResources</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=DeveloperResources&amp;diff=17142"/>
		<updated>2007-08-15T12:38:23Z</updated>

		<summary type="html">&lt;p&gt;HaJo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
* Forum - http://forum.wesnoth.org&lt;br /&gt;
* Wiki :&lt;br /&gt;
** http://www.wesnoth.org/wiki/Main_Page &lt;br /&gt;
** [[GettingStarted]]&lt;br /&gt;
** [[FrequentlyProposedIdeas]] - summary of past often-repeated forum discussions&lt;br /&gt;
** [[WesnothAcronyms]]&lt;br /&gt;
&lt;br /&gt;
== Game - Play ==&lt;br /&gt;
* units - http://units.wesnoth.org/&lt;br /&gt;
* unit list - http://zapicm.freeshell.org/stable/&lt;br /&gt;
* movement types &amp;amp; resistance - http://zapicm.freeshell.org/stable/data/&lt;br /&gt;
&lt;br /&gt;
== Game - Create content ==&lt;br /&gt;
* [[BuildingScenarios]] and related useful forum discussions: &lt;br /&gt;
** [http://www.wesnoth.org/forum/viewtopic.php?t=4188 Beginning Campaign Development]&lt;br /&gt;
** [http://www.wesnoth.org/forum/viewtopic.php?t=4301 A Balancing Act]&lt;br /&gt;
&lt;br /&gt;
== Code, Development ==&lt;br /&gt;
* changelog - http://changelog.wesnoth.org/&lt;br /&gt;
* Up-to-date commit messages : http://cia.vc/stats/project/wesnoth&lt;br /&gt;
* Code documentation, created with [[Doxygen]] - http://devdocs.wesnoth.org/&lt;br /&gt;
* gettext status - http://gettext.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
* [[CompilingWesnoth]] - how to compile Battle for Wesnoth (it's not hard)&lt;br /&gt;
* Standard Template Library - http://www.sgi.com/tech/stl/&lt;br /&gt;
* [[DebugMode]] and [[CommandMode]] - in game debugging commands&lt;br /&gt;
* [[WesnothSVN]] - SVN instructions&lt;br /&gt;
* [[ExternalUtilities]]&lt;br /&gt;
* [[Developers]]&lt;br /&gt;
* Gna! - websvn - http://websvn.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
== Communication, Feedback ==&lt;br /&gt;
* Gna! links&lt;br /&gt;
** Gna! - bugs and feature requests - http://bugs.wesnoth.org/&lt;br /&gt;
** Gna! - patches - http://patches.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
* Mailing lists:&lt;br /&gt;
** wesnoth-dev - https://mail.gna.org/listinfo/wesnoth-dev/&lt;br /&gt;
** wesnoth-commits - https://mail.gna.org/listinfo/wesnoth-commits/&lt;br /&gt;
&lt;br /&gt;
* IRC: [irc://irc.wesnoth.org/#wesnoth-dev freenode/#wesnoth-dev] (alias to irc.freenode.net)&lt;br /&gt;
** IRC logs - http://irclog.wesnoth.org/&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=DeveloperResources&amp;diff=17141</id>
		<title>DeveloperResources</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=DeveloperResources&amp;diff=17141"/>
		<updated>2007-08-15T12:36:56Z</updated>

		<summary type="html">&lt;p&gt;HaJo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
* Forum - http://forum.wesnoth.org/&lt;br /&gt;
* Wiki :&lt;br /&gt;
** http://www.wesnoth.org/wiki/Main_Page &lt;br /&gt;
** http://www.wesnoth.org/wiki/GettingStarted&lt;br /&gt;
* [[FrequentlyProposedIdeas]] - summary of past often-repeated forum discussions&lt;br /&gt;
* [[WesnothAcronyms]]&lt;br /&gt;
&lt;br /&gt;
== Game - Playing ==&lt;br /&gt;
* units - http://units.wesnoth.org/&lt;br /&gt;
* unit list - http://zapicm.freeshell.org/stable/&lt;br /&gt;
* movement types &amp;amp; resistance - http://zapicm.freeshell.org/stable/data/&lt;br /&gt;
&lt;br /&gt;
== Game - Creating ==&lt;br /&gt;
* [[BuildingScenarios]] and related useful forum discussions: &lt;br /&gt;
** [http://www.wesnoth.org/forum/viewtopic.php?t=4188 Beginning Campaign Development]&lt;br /&gt;
** [http://www.wesnoth.org/forum/viewtopic.php?t=4301 A Balancing Act]&lt;br /&gt;
&lt;br /&gt;
== Code, Developement ==&lt;br /&gt;
* changelog - http://changelog.wesnoth.org/&lt;br /&gt;
* Up-to-date commit messages : http://cia.vc/stats/project/wesnoth&lt;br /&gt;
* Code documentation, created with [[Doxygen]] - http://devdocs.wesnoth.org/&lt;br /&gt;
* gettext status - http://gettext.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
* [[CompilingWesnoth]] - how to compile Battle for Wesnoth (it's not hard)&lt;br /&gt;
* Standard Template Library - http://www.sgi.com/tech/stl/&lt;br /&gt;
* [[DebugMode]] and [[CommandMode]] - in game debugging commands&lt;br /&gt;
* [[WesnothSVN]] - SVN instructions&lt;br /&gt;
* [[ExternalUtilities]]&lt;br /&gt;
* [[Developers]]&lt;br /&gt;
* Gna! - websvn - http://websvn.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
== Communication, Feedback ==&lt;br /&gt;
* Gna! links&lt;br /&gt;
** Gna! - bugs and feature requests - http://bugs.wesnoth.org/&lt;br /&gt;
** Gna! - patches - http://patches.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
* Mailing lists:&lt;br /&gt;
** wesnoth-dev - https://mail.gna.org/listinfo/wesnoth-dev/&lt;br /&gt;
** wesnoth-commits - https://mail.gna.org/listinfo/wesnoth-commits/&lt;br /&gt;
&lt;br /&gt;
* IRC: [irc://irc.wesnoth.org/#wesnoth-dev freenode/#wesnoth-dev] (alias to irc.freenode.net)&lt;br /&gt;
** IRC logs - http://irclog.wesnoth.org/&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=DeveloperResources&amp;diff=17140</id>
		<title>DeveloperResources</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=DeveloperResources&amp;diff=17140"/>
		<updated>2007-08-15T12:34:16Z</updated>

		<summary type="html">&lt;p&gt;HaJo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
* Forum - http://forum.wesnoth.org/&lt;br /&gt;
* Wiki - http://www.wesnoth.org/wiki/Main_Page&lt;br /&gt;
* [[FrequentlyProposedIdeas]] - summary of past often-repeated forum discussions&lt;br /&gt;
* [[WesnothAcronyms]]&lt;br /&gt;
&lt;br /&gt;
== Game - Playing ==&lt;br /&gt;
* units - http://units.wesnoth.org/&lt;br /&gt;
* unit list - http://zapicm.freeshell.org/stable/&lt;br /&gt;
* movement types &amp;amp; resistance - http://zapicm.freeshell.org/stable/data/&lt;br /&gt;
&lt;br /&gt;
== Game - Creating ==&lt;br /&gt;
* [[BuildingScenarios]] and related useful forum discussions: &lt;br /&gt;
** [http://www.wesnoth.org/forum/viewtopic.php?t=4188 Beginning Campaign Development]&lt;br /&gt;
** [http://www.wesnoth.org/forum/viewtopic.php?t=4301 A Balancing Act]&lt;br /&gt;
&lt;br /&gt;
== Code, Developement ==&lt;br /&gt;
* changelog - http://changelog.wesnoth.org/&lt;br /&gt;
* Up-to-date commit messages : http://cia.vc/stats/project/wesnoth&lt;br /&gt;
* Code documentation, created with [[Doxygen]] - http://devdocs.wesnoth.org/&lt;br /&gt;
* gettext status - http://gettext.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
* [[CompilingWesnoth]] - how to compile Battle for Wesnoth (it's not hard)&lt;br /&gt;
* Standard Template Library - http://www.sgi.com/tech/stl/&lt;br /&gt;
* [[DebugMode]] and [[CommandMode]] - in game debugging commands&lt;br /&gt;
* [[WesnothSVN]] - SVN instructions&lt;br /&gt;
* [[ExternalUtilities]]&lt;br /&gt;
* [[Developers]]&lt;br /&gt;
* Gna! - websvn - http://websvn.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
== Communication, Feedback ==&lt;br /&gt;
* Gna! links&lt;br /&gt;
** Gna! - bugs and feature requests - http://bugs.wesnoth.org/&lt;br /&gt;
** Gna! - patches - http://patches.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
* Mailing lists:&lt;br /&gt;
** wesnoth-dev - https://mail.gna.org/listinfo/wesnoth-dev/&lt;br /&gt;
** wesnoth-commits - https://mail.gna.org/listinfo/wesnoth-commits/&lt;br /&gt;
&lt;br /&gt;
* IRC: [irc://irc.wesnoth.org/#wesnoth-dev freenode/#wesnoth-dev] (alias to irc.freenode.net)&lt;br /&gt;
** IRC logs - http://irclog.wesnoth.org/&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=DeveloperResources&amp;diff=17139</id>
		<title>DeveloperResources</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=DeveloperResources&amp;diff=17139"/>
		<updated>2007-08-15T12:32:18Z</updated>

		<summary type="html">&lt;p&gt;HaJo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
* forum - http://forum.wesnoth.org/&lt;br /&gt;
* [[FrequentlyProposedIdeas]] - summary of past often-repeated forum discussions&lt;br /&gt;
* [[WesnothAcronyms]]&lt;br /&gt;
&lt;br /&gt;
== Game - Playing ==&lt;br /&gt;
* units - http://units.wesnoth.org/&lt;br /&gt;
* unit list - http://zapicm.freeshell.org/stable/&lt;br /&gt;
* movement types &amp;amp; resistance - http://zapicm.freeshell.org/stable/data/&lt;br /&gt;
&lt;br /&gt;
== Game - Creating ==&lt;br /&gt;
* [[BuildingScenarios]] and related useful forum discussions: &lt;br /&gt;
** [http://www.wesnoth.org/forum/viewtopic.php?t=4188 Beginning Campaign Development]&lt;br /&gt;
** [http://www.wesnoth.org/forum/viewtopic.php?t=4301 A Balancing Act]&lt;br /&gt;
&lt;br /&gt;
== Code, Developement ==&lt;br /&gt;
* changelog - http://changelog.wesnoth.org/&lt;br /&gt;
* Up-to-date commit messages : http://cia.vc/stats/project/wesnoth&lt;br /&gt;
* Code documentation, created with [[Doxygen]] - http://devdocs.wesnoth.org/&lt;br /&gt;
* gettext status - http://gettext.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
* [[CompilingWesnoth]] - how to compile Battle for Wesnoth (it's not hard)&lt;br /&gt;
* Standard Template Library - http://www.sgi.com/tech/stl/&lt;br /&gt;
* [[DebugMode]] and [[CommandMode]] - in game debugging commands&lt;br /&gt;
* [[WesnothSVN]] - SVN instructions&lt;br /&gt;
* [[ExternalUtilities]]&lt;br /&gt;
* [[Developers]]&lt;br /&gt;
* Gna! - websvn - http://websvn.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
== Communication, Feedback ==&lt;br /&gt;
* Gna! links&lt;br /&gt;
** Gna! - bugs and feature requests - http://bugs.wesnoth.org/&lt;br /&gt;
** Gna! - patches - http://patches.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
* Mailing lists:&lt;br /&gt;
** wesnoth-dev - https://mail.gna.org/listinfo/wesnoth-dev/&lt;br /&gt;
** wesnoth-commits - https://mail.gna.org/listinfo/wesnoth-commits/&lt;br /&gt;
&lt;br /&gt;
* IRC: [irc://irc.wesnoth.org/#wesnoth-dev freenode/#wesnoth-dev] (alias to irc.freenode.net)&lt;br /&gt;
** IRC logs - http://irclog.wesnoth.org/&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=DeveloperResources&amp;diff=17138</id>
		<title>DeveloperResources</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=DeveloperResources&amp;diff=17138"/>
		<updated>2007-08-15T12:30:37Z</updated>

		<summary type="html">&lt;p&gt;HaJo: Subtitles, WesnothAcronyms&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
* forum - http://forum.wesnoth.org/&lt;br /&gt;
* [[FrequentlyProposedIdeas]] - summary of past often-repeated forum discussions&lt;br /&gt;
* [[WesnothAcronyms]]&lt;br /&gt;
&lt;br /&gt;
== Game - Playing ==&lt;br /&gt;
* units - http://units.wesnoth.org/&lt;br /&gt;
* unit list - http://zapicm.freeshell.org/stable/&lt;br /&gt;
* movement types &amp;amp; resistance - http://zapicm.freeshell.org/stable/data/&lt;br /&gt;
&lt;br /&gt;
== Game - Creating ==&lt;br /&gt;
* [[BuildingScenarios]] and related useful forum discussions: &lt;br /&gt;
[http://www.wesnoth.org/forum/viewtopic.php?t=4188 Beginning Campaign Development], [http://www.wesnoth.org/forum/viewtopic.php?t=4301 A Balancing Act]&lt;br /&gt;
&lt;br /&gt;
== Code, Developement ==&lt;br /&gt;
* changelog - http://changelog.wesnoth.org/&lt;br /&gt;
* Up-to-date commit messages : http://cia.vc/stats/project/wesnoth&lt;br /&gt;
* Code documentation, created with [[Doxygen]] - http://devdocs.wesnoth.org/&lt;br /&gt;
* gettext status - http://gettext.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
* [[CompilingWesnoth]] - how to compile Battle for Wesnoth (it's not hard)&lt;br /&gt;
* Standard Template Library - http://www.sgi.com/tech/stl/&lt;br /&gt;
* [[ExternalUtilities]]&lt;br /&gt;
* [[DebugMode]] and [[CommandMode]] - in game debugging commands&lt;br /&gt;
* [[WesnothSVN]] - SVN instructions&lt;br /&gt;
* Gna! - websvn - http://websvn.wesnoth.org/&lt;br /&gt;
* [[Developers]]&lt;br /&gt;
&lt;br /&gt;
== Communication, Feedback ==&lt;br /&gt;
* Gna! links&lt;br /&gt;
** Gna! - bugs and feature requests - http://bugs.wesnoth.org/&lt;br /&gt;
** Gna! - patches - http://patches.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
* Mailing lists:&lt;br /&gt;
** wesnoth-dev - https://mail.gna.org/listinfo/wesnoth-dev/&lt;br /&gt;
** wesnoth-commits - https://mail.gna.org/listinfo/wesnoth-commits/&lt;br /&gt;
&lt;br /&gt;
* IRC: [irc://irc.wesnoth.org/#wesnoth-dev freenode/#wesnoth-dev] (alias to irc.freenode.net)&lt;br /&gt;
** IRC logs - http://irclog.wesnoth.org/&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=DeveloperResources&amp;diff=17116</id>
		<title>DeveloperResources</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=DeveloperResources&amp;diff=17116"/>
		<updated>2007-08-15T10:09:24Z</updated>

		<summary type="html">&lt;p&gt;HaJo: Doxygen, CIA&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* code documentation, created with [[Doxygen]] - http://devdocs.wesnoth.org/&lt;br /&gt;
* units - http://units.wesnoth.org/&lt;br /&gt;
* unit list - http://zapicm.freeshell.org/stable/&lt;br /&gt;
* movement types &amp;amp; resistance - http://zapicm.freeshell.org/stable/data/&lt;br /&gt;
* gettext status - http://gettext.wesnoth.org/&lt;br /&gt;
* changelog - http://changelog.wesnoth.org/&lt;br /&gt;
* forum - http://forum.wesnoth.org/&lt;br /&gt;
* [[FrequentlyProposedIdeas]] - summary of past often-repeated forum discussions&lt;br /&gt;
* [[BuildingScenarios]] and related useful forum discussions: [http://www.wesnoth.org/forum/viewtopic.php?t=4188 Beginning Campaign Development], [http://www.wesnoth.org/forum/viewtopic.php?t=4301 A Balancing Act]&lt;br /&gt;
* Standard Template Library - http://www.sgi.com/tech/stl/&lt;br /&gt;
* [[ExternalUtilities]]&lt;br /&gt;
* [[DebugMode]] and [[CommandMode]] - in game debugging commands&lt;br /&gt;
* [[WesnothSVN]] - SVN instructions&lt;br /&gt;
* [[CompilingWesnoth]] - how to compile Battle for Wesnoth (it's not hard)&lt;br /&gt;
&lt;br /&gt;
* Gna! links&lt;br /&gt;
** bugs and feature requests - http://bugs.wesnoth.org/&lt;br /&gt;
** patches - http://patches.wesnoth.org/&lt;br /&gt;
** websvn - http://websvn.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
* Up-to-date commit messages : http://cia.vc/stats/project/wesnoth&lt;br /&gt;
&lt;br /&gt;
* Mailing lists:&lt;br /&gt;
** wesnoth-dev - https://mail.gna.org/listinfo/wesnoth-dev/&lt;br /&gt;
** wesnoth-commits - https://mail.gna.org/listinfo/wesnoth-commits/&lt;br /&gt;
&lt;br /&gt;
* IRC: [irc://irc.wesnoth.org/#wesnoth-dev freenode/#wesnoth-dev] (alias to irc.freenode.net)&lt;br /&gt;
** IRC logs - http://irclog.wesnoth.org/&lt;br /&gt;
&lt;br /&gt;
* [[Developers]]&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=EasyCoding&amp;diff=14835</id>
		<title>EasyCoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=EasyCoding&amp;diff=14835"/>
		<updated>2007-04-16T13:38:26Z</updated>

		<summary type="html">&lt;p&gt;HaJo: /* Debug Mode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Foreword ==&lt;br /&gt;
This page is here to document easy to do coding tasks. It is not here to double the feature request database, and should only be filled by people that know the code well enough to juge the difficulty of a given task. &lt;br /&gt;
&lt;br /&gt;
If you are such a person, you should feel free to edit this page.&lt;br /&gt;
&lt;br /&gt;
If you're not, you should post a feature request and discuss your idea on the forum or IRC. A coder with better knowledge of the code might give you the green light to add your feature here.&lt;br /&gt;
&lt;br /&gt;
Anybody should feel free to add &amp;quot;clues&amp;quot; to any tasks, that is entry points, traps to avoid, person to contact to discuss and so on.&lt;br /&gt;
&lt;br /&gt;
If you plan to work on a feature, write your name at the bottom of the feature, with the date. Note that if you are too long at working on a feature I'll &amp;quot;free&amp;quot; it back (that is if you're not working on it. If you have problems implementing it, just tell us....)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Boucman|Boucman]] 20:48, 3 October 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Animation related features ==&lt;br /&gt;
=== Victory animation ===&lt;br /&gt;
'''an animation to be played by the surviving unit during the death animation of the other unit'''&lt;br /&gt;
&lt;br /&gt;
this should be fairly easy to do, just duplicate all death animation code, and modify the unit_die function to change the state of both units.&lt;br /&gt;
&lt;br /&gt;
ask Boucman for extra help&lt;br /&gt;
&lt;br /&gt;
* unit_display.cpp&lt;br /&gt;
* unit_type.cpp&lt;br /&gt;
* unit.cpp&lt;br /&gt;
* unit_animation.cpp;&lt;br /&gt;
&lt;br /&gt;
Done! Submitting patch as soon as it can be tested. [[User:TheAT|TheAT]] 01:53, 17 October 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
=== En Guard animation ===&lt;br /&gt;
'''An animation to replace the standing animation when the unit is next to an enemy'''&lt;br /&gt;
&lt;br /&gt;
Slightly more tricky than the previous one, you should copy most of the standing code, &lt;br /&gt;
but beware that this should be invisible to external callers. &lt;br /&gt;
The call to get_stats should be looked at&lt;br /&gt;
&lt;br /&gt;
Ask Boucman for extra help&lt;br /&gt;
&lt;br /&gt;
* unit.cpp&lt;br /&gt;
* unit_type.cpp&lt;br /&gt;
* unit_animation.cpp&lt;br /&gt;
&lt;br /&gt;
=== Special tags for Extra_anim ===&lt;br /&gt;
'''Special tags in the animate_unit event to call standard unit animations'''&lt;br /&gt;
&lt;br /&gt;
One of the big limitation of the extra_animation tags is &lt;br /&gt;
that you need to modify the unit itself to have the extra anim. &lt;br /&gt;
Most anims can't be easily called that way. &lt;br /&gt;
It would be interesting to have special tags that would be recognised &lt;br /&gt;
to call the standard animations (attack, defense, etc...)&lt;br /&gt;
&lt;br /&gt;
The tricky part is to handle correctly the &amp;quot;offset&amp;quot; parameter, &lt;br /&gt;
and add all the WML handling to &amp;quot;fill in&amp;quot; the information &lt;br /&gt;
we won't have available (non-existant filtering criterias)&lt;br /&gt;
&lt;br /&gt;
This is more tricky than the two above, &lt;br /&gt;
and I would advise doing one of the other two first to understand how it works&lt;br /&gt;
&lt;br /&gt;
Ask Boucman for extra help&lt;br /&gt;
&lt;br /&gt;
* unit.cpp&lt;br /&gt;
* actions.cpp&lt;br /&gt;
&lt;br /&gt;
=== Animate flags during a [delay] event ===&lt;br /&gt;
currently, the [event] tag calls SDL_delay() and blocks the game completely. It would be trivial to change it to a loop that would call event::pump() every 10ms to have all animations updated&lt;br /&gt;
&lt;br /&gt;
the tricky part is to make sure the screen is somehow &amp;quot;locked&amp;quot; and that player can't play during that time (should be the case, simple checking is needed)&lt;br /&gt;
&lt;br /&gt;
grep should give you the file to change&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I am on this.Boucman please email me with more details when you have time [[User:Spx2|Spx2]] 12:31, 23 December 2006 (CEST) &lt;br /&gt;
&lt;br /&gt;
Boucman please email me with an event that i can test this on&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WML related features ==&lt;br /&gt;
=== Side-specific messages ===&lt;br /&gt;
Side-specific [message]s ([http://gna.org/bugs/index.php?7427 FR #7427])&lt;br /&gt;
=== Side-specific results ===&lt;br /&gt;
Giving result=defeat or result=victory for specific sides. ([http://gna.org/bugs/index.php?4960 FR #4960])&lt;br /&gt;
=== Recall Event ===&lt;br /&gt;
WML event trigger for recalling (the current one triggers on both recalls and recruits) ([http://gna.org/bugs/index.php?3622 FR #3622]) (please read the comments of the report for a proper description of how this should work)&lt;br /&gt;
=== Enabling checking of damage dealt in WML ===&lt;br /&gt;
A WML variable should be set when triggering some combat-related events, allowing WML to know the amount of damage being dealt. ([http://gna.org/bugs/index.php?7673 FR #7673])&lt;br /&gt;
=== Support for leaderless multiplayergames ===&lt;br /&gt;
Add support for the WML tag victory_when_enemies_defeated in the scenario tag during multiplayergames. ([https://gna.org/bugs/index.php?8106 FR #8106])&lt;br /&gt;
&lt;br /&gt;
== GUI related features ==&lt;br /&gt;
=== Theme Changes ===&lt;br /&gt;
* show number of owned villages/total villages (FR: #3135) &lt;br /&gt;
* allow custom themes to display values of WML variables ([http://gna.org/bugs/index.php?6209 FR #6209])&lt;br /&gt;
* hide the hourglass item from the statusbar when there is no timer&lt;br /&gt;
&lt;br /&gt;
=== Widget Changes ===&lt;br /&gt;
* show side number, name and team association information in the status table &lt;br /&gt;
* make games sortable in the lobby (open slots, total number of players, era, XP modifier, gold per village, fog/shroud) &lt;br /&gt;
* input history (chat, commands, ..), seek Sapient for more info and tips&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
=== More powerful village naming ===&lt;br /&gt;
'''Adding mountain names and other features to village names, having a second random name in village names'''&lt;br /&gt;
&lt;br /&gt;
Currently the village naming engine has a very good structure that could allow &lt;br /&gt;
more powerfull names to be generated. &lt;br /&gt;
Understanding how it works should be quite easy, and a few usefull improvements could be added.&lt;br /&gt;
&lt;br /&gt;
* Currently villages can use lake names and river names, this should be extended to other features like bridges, swamps, mountains etc...&lt;br /&gt;
* It would be nice to have a separate list of &amp;quot;first sylabus&amp;quot; and &amp;quot;last sylabus&amp;quot; for naming. That's not really needed in english, but some translations could use it&lt;br /&gt;
* Again, it is common to have villages with more than one &amp;quot;random&amp;quot; word in them. having a $name2 variable would be nice&lt;br /&gt;
&lt;br /&gt;
=== Debug Mode ===&lt;br /&gt;
* New debug command functionality (setting status.variables, possibly terrain, WML value display)&lt;br /&gt;
* Make it possible to toggle shroud and fog (but take care that this is only possible in campaigns)&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=EasyCoding&amp;diff=14834</id>
		<title>EasyCoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=EasyCoding&amp;diff=14834"/>
		<updated>2007-04-16T13:37:37Z</updated>

		<summary type="html">&lt;p&gt;HaJo: /* More powerful village naming */ Typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Foreword ==&lt;br /&gt;
This page is here to document easy to do coding tasks. It is not here to double the feature request database, and should only be filled by people that know the code well enough to juge the difficulty of a given task. &lt;br /&gt;
&lt;br /&gt;
If you are such a person, you should feel free to edit this page.&lt;br /&gt;
&lt;br /&gt;
If you're not, you should post a feature request and discuss your idea on the forum or IRC. A coder with better knowledge of the code might give you the green light to add your feature here.&lt;br /&gt;
&lt;br /&gt;
Anybody should feel free to add &amp;quot;clues&amp;quot; to any tasks, that is entry points, traps to avoid, person to contact to discuss and so on.&lt;br /&gt;
&lt;br /&gt;
If you plan to work on a feature, write your name at the bottom of the feature, with the date. Note that if you are too long at working on a feature I'll &amp;quot;free&amp;quot; it back (that is if you're not working on it. If you have problems implementing it, just tell us....)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Boucman|Boucman]] 20:48, 3 October 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Animation related features ==&lt;br /&gt;
=== Victory animation ===&lt;br /&gt;
'''an animation to be played by the surviving unit during the death animation of the other unit'''&lt;br /&gt;
&lt;br /&gt;
this should be fairly easy to do, just duplicate all death animation code, and modify the unit_die function to change the state of both units.&lt;br /&gt;
&lt;br /&gt;
ask Boucman for extra help&lt;br /&gt;
&lt;br /&gt;
* unit_display.cpp&lt;br /&gt;
* unit_type.cpp&lt;br /&gt;
* unit.cpp&lt;br /&gt;
* unit_animation.cpp;&lt;br /&gt;
&lt;br /&gt;
Done! Submitting patch as soon as it can be tested. [[User:TheAT|TheAT]] 01:53, 17 October 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
=== En Guard animation ===&lt;br /&gt;
'''An animation to replace the standing animation when the unit is next to an enemy'''&lt;br /&gt;
&lt;br /&gt;
Slightly more tricky than the previous one, you should copy most of the standing code, &lt;br /&gt;
but beware that this should be invisible to external callers. &lt;br /&gt;
The call to get_stats should be looked at&lt;br /&gt;
&lt;br /&gt;
Ask Boucman for extra help&lt;br /&gt;
&lt;br /&gt;
* unit.cpp&lt;br /&gt;
* unit_type.cpp&lt;br /&gt;
* unit_animation.cpp&lt;br /&gt;
&lt;br /&gt;
=== Special tags for Extra_anim ===&lt;br /&gt;
'''Special tags in the animate_unit event to call standard unit animations'''&lt;br /&gt;
&lt;br /&gt;
One of the big limitation of the extra_animation tags is &lt;br /&gt;
that you need to modify the unit itself to have the extra anim. &lt;br /&gt;
Most anims can't be easily called that way. &lt;br /&gt;
It would be interesting to have special tags that would be recognised &lt;br /&gt;
to call the standard animations (attack, defense, etc...)&lt;br /&gt;
&lt;br /&gt;
The tricky part is to handle correctly the &amp;quot;offset&amp;quot; parameter, &lt;br /&gt;
and add all the WML handling to &amp;quot;fill in&amp;quot; the information &lt;br /&gt;
we won't have available (non-existant filtering criterias)&lt;br /&gt;
&lt;br /&gt;
This is more tricky than the two above, &lt;br /&gt;
and I would advise doing one of the other two first to understand how it works&lt;br /&gt;
&lt;br /&gt;
Ask Boucman for extra help&lt;br /&gt;
&lt;br /&gt;
* unit.cpp&lt;br /&gt;
* actions.cpp&lt;br /&gt;
&lt;br /&gt;
=== Animate flags during a [delay] event ===&lt;br /&gt;
currently, the [event] tag calls SDL_delay() and blocks the game completely. It would be trivial to change it to a loop that would call event::pump() every 10ms to have all animations updated&lt;br /&gt;
&lt;br /&gt;
the tricky part is to make sure the screen is somehow &amp;quot;locked&amp;quot; and that player can't play during that time (should be the case, simple checking is needed)&lt;br /&gt;
&lt;br /&gt;
grep should give you the file to change&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I am on this.Boucman please email me with more details when you have time [[User:Spx2|Spx2]] 12:31, 23 December 2006 (CEST) &lt;br /&gt;
&lt;br /&gt;
Boucman please email me with an event that i can test this on&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WML related features ==&lt;br /&gt;
=== Side-specific messages ===&lt;br /&gt;
Side-specific [message]s ([http://gna.org/bugs/index.php?7427 FR #7427])&lt;br /&gt;
=== Side-specific results ===&lt;br /&gt;
Giving result=defeat or result=victory for specific sides. ([http://gna.org/bugs/index.php?4960 FR #4960])&lt;br /&gt;
=== Recall Event ===&lt;br /&gt;
WML event trigger for recalling (the current one triggers on both recalls and recruits) ([http://gna.org/bugs/index.php?3622 FR #3622]) (please read the comments of the report for a proper description of how this should work)&lt;br /&gt;
=== Enabling checking of damage dealt in WML ===&lt;br /&gt;
A WML variable should be set when triggering some combat-related events, allowing WML to know the amount of damage being dealt. ([http://gna.org/bugs/index.php?7673 FR #7673])&lt;br /&gt;
=== Support for leaderless multiplayergames ===&lt;br /&gt;
Add support for the WML tag victory_when_enemies_defeated in the scenario tag during multiplayergames. ([https://gna.org/bugs/index.php?8106 FR #8106])&lt;br /&gt;
&lt;br /&gt;
== GUI related features ==&lt;br /&gt;
=== Theme Changes ===&lt;br /&gt;
* show number of owned villages/total villages (FR: #3135) &lt;br /&gt;
* allow custom themes to display values of WML variables ([http://gna.org/bugs/index.php?6209 FR #6209])&lt;br /&gt;
* hide the hourglass item from the statusbar when there is no timer&lt;br /&gt;
&lt;br /&gt;
=== Widget Changes ===&lt;br /&gt;
* show side number, name and team association information in the status table &lt;br /&gt;
* make games sortable in the lobby (open slots, total number of players, era, XP modifier, gold per village, fog/shroud) &lt;br /&gt;
* input history (chat, commands, ..), seek Sapient for more info and tips&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
=== More powerful village naming ===&lt;br /&gt;
'''Adding mountain names and other features to village names, having a second random name in village names'''&lt;br /&gt;
&lt;br /&gt;
Currently the village naming engine has a very good structure that could allow &lt;br /&gt;
more powerfull names to be generated. &lt;br /&gt;
Understanding how it works should be quite easy, and a few usefull improvements could be added.&lt;br /&gt;
&lt;br /&gt;
* Currently villages can use lake names and river names, this should be extended to other features like bridges, swamps, mountains etc...&lt;br /&gt;
* It would be nice to have a separate list of &amp;quot;first sylabus&amp;quot; and &amp;quot;last sylabus&amp;quot; for naming. That's not really needed in english, but some translations could use it&lt;br /&gt;
* Again, it is common to have villages with more than one &amp;quot;random&amp;quot; word in them. having a $name2 variable would be nice&lt;br /&gt;
&lt;br /&gt;
=== Debug Mode ===&lt;br /&gt;
* New debug command functionality (setting status.variables, possibly terrain, WML value display)&lt;br /&gt;
* Make it possible to toggle shroud and fog (but take care that this is only possible ib campaigns)&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=EasyCoding&amp;diff=14833</id>
		<title>EasyCoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=EasyCoding&amp;diff=14833"/>
		<updated>2007-04-16T13:33:33Z</updated>

		<summary type="html">&lt;p&gt;HaJo: /* Special tags for Extra_anim */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Foreword ==&lt;br /&gt;
This page is here to document easy to do coding tasks. It is not here to double the feature request database, and should only be filled by people that know the code well enough to juge the difficulty of a given task. &lt;br /&gt;
&lt;br /&gt;
If you are such a person, you should feel free to edit this page.&lt;br /&gt;
&lt;br /&gt;
If you're not, you should post a feature request and discuss your idea on the forum or IRC. A coder with better knowledge of the code might give you the green light to add your feature here.&lt;br /&gt;
&lt;br /&gt;
Anybody should feel free to add &amp;quot;clues&amp;quot; to any tasks, that is entry points, traps to avoid, person to contact to discuss and so on.&lt;br /&gt;
&lt;br /&gt;
If you plan to work on a feature, write your name at the bottom of the feature, with the date. Note that if you are too long at working on a feature I'll &amp;quot;free&amp;quot; it back (that is if you're not working on it. If you have problems implementing it, just tell us....)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Boucman|Boucman]] 20:48, 3 October 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Animation related features ==&lt;br /&gt;
=== Victory animation ===&lt;br /&gt;
'''an animation to be played by the surviving unit during the death animation of the other unit'''&lt;br /&gt;
&lt;br /&gt;
this should be fairly easy to do, just duplicate all death animation code, and modify the unit_die function to change the state of both units.&lt;br /&gt;
&lt;br /&gt;
ask Boucman for extra help&lt;br /&gt;
&lt;br /&gt;
* unit_display.cpp&lt;br /&gt;
* unit_type.cpp&lt;br /&gt;
* unit.cpp&lt;br /&gt;
* unit_animation.cpp;&lt;br /&gt;
&lt;br /&gt;
Done! Submitting patch as soon as it can be tested. [[User:TheAT|TheAT]] 01:53, 17 October 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
=== En Guard animation ===&lt;br /&gt;
'''An animation to replace the standing animation when the unit is next to an enemy'''&lt;br /&gt;
&lt;br /&gt;
Slightly more tricky than the previous one, you should copy most of the standing code, &lt;br /&gt;
but beware that this should be invisible to external callers. &lt;br /&gt;
The call to get_stats should be looked at&lt;br /&gt;
&lt;br /&gt;
Ask Boucman for extra help&lt;br /&gt;
&lt;br /&gt;
* unit.cpp&lt;br /&gt;
* unit_type.cpp&lt;br /&gt;
* unit_animation.cpp&lt;br /&gt;
&lt;br /&gt;
=== Special tags for Extra_anim ===&lt;br /&gt;
'''Special tags in the animate_unit event to call standard unit animations'''&lt;br /&gt;
&lt;br /&gt;
One of the big limitation of the extra_animation tags is &lt;br /&gt;
that you need to modify the unit itself to have the extra anim. &lt;br /&gt;
Most anims can't be easily called that way. &lt;br /&gt;
It would be interesting to have special tags that would be recognised &lt;br /&gt;
to call the standard animations (attack, defense, etc...)&lt;br /&gt;
&lt;br /&gt;
The tricky part is to handle correctly the &amp;quot;offset&amp;quot; parameter, &lt;br /&gt;
and add all the WML handling to &amp;quot;fill in&amp;quot; the information &lt;br /&gt;
we won't have available (non-existant filtering criterias)&lt;br /&gt;
&lt;br /&gt;
This is more tricky than the two above, &lt;br /&gt;
and I would advise doing one of the other two first to understand how it works&lt;br /&gt;
&lt;br /&gt;
Ask Boucman for extra help&lt;br /&gt;
&lt;br /&gt;
* unit.cpp&lt;br /&gt;
* actions.cpp&lt;br /&gt;
&lt;br /&gt;
=== Animate flags during a [delay] event ===&lt;br /&gt;
currently, the [event] tag calls SDL_delay() and blocks the game completely. It would be trivial to change it to a loop that would call event::pump() every 10ms to have all animations updated&lt;br /&gt;
&lt;br /&gt;
the tricky part is to make sure the screen is somehow &amp;quot;locked&amp;quot; and that player can't play during that time (should be the case, simple checking is needed)&lt;br /&gt;
&lt;br /&gt;
grep should give you the file to change&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I am on this.Boucman please email me with more details when you have time [[User:Spx2|Spx2]] 12:31, 23 December 2006 (CEST) &lt;br /&gt;
&lt;br /&gt;
Boucman please email me with an event that i can test this on&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WML related features ==&lt;br /&gt;
=== Side-specific messages ===&lt;br /&gt;
Side-specific [message]s ([http://gna.org/bugs/index.php?7427 FR #7427])&lt;br /&gt;
=== Side-specific results ===&lt;br /&gt;
Giving result=defeat or result=victory for specific sides. ([http://gna.org/bugs/index.php?4960 FR #4960])&lt;br /&gt;
=== Recall Event ===&lt;br /&gt;
WML event trigger for recalling (the current one triggers on both recalls and recruits) ([http://gna.org/bugs/index.php?3622 FR #3622]) (please read the comments of the report for a proper description of how this should work)&lt;br /&gt;
=== Enabling checking of damage dealt in WML ===&lt;br /&gt;
A WML variable should be set when triggering some combat-related events, allowing WML to know the amount of damage being dealt. ([http://gna.org/bugs/index.php?7673 FR #7673])&lt;br /&gt;
=== Support for leaderless multiplayergames ===&lt;br /&gt;
Add support for the WML tag victory_when_enemies_defeated in the scenario tag during multiplayergames. ([https://gna.org/bugs/index.php?8106 FR #8106])&lt;br /&gt;
&lt;br /&gt;
== GUI related features ==&lt;br /&gt;
=== Theme Changes ===&lt;br /&gt;
* show number of owned villages/total villages (FR: #3135) &lt;br /&gt;
* allow custom themes to display values of WML variables ([http://gna.org/bugs/index.php?6209 FR #6209])&lt;br /&gt;
* hide the hourglass item from the statusbar when there is no timer&lt;br /&gt;
&lt;br /&gt;
=== Widget Changes ===&lt;br /&gt;
* show side number, name and team association information in the status table &lt;br /&gt;
* make games sortable in the lobby (open slots, total number of players, era, XP modifier, gold per village, fog/shroud) &lt;br /&gt;
* input history (chat, commands, ..), seek Sapient for more info and tips&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
=== More powerful village naming ===&lt;br /&gt;
'''adding mountain names and other features to village names, having a second random name in village names'''&lt;br /&gt;
&lt;br /&gt;
currently the village naming engine has avery good structure that could allow more powerfull names to be generated. Understanding how it works should be quite easy, and a few usefull imprvements could be added&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* currently villages can use lake names and river names, this should be extanded to other features like bridges, swamps, mountains etc...&lt;br /&gt;
* it would be nice to have a separate list of &amp;quot;first sylabus&amp;quot; and &amp;quot;last sylabus&amp;quot; for naming. That's not really needed in english, but some translations could use it&lt;br /&gt;
* again, it is common to have village with more than one &amp;quot;random&amp;quot; word in them. having a $name2 variable would be nice&lt;br /&gt;
&lt;br /&gt;
=== Debug Mode ===&lt;br /&gt;
* New debug command functionality (setting status.variables, possibly terrain, WML value display)&lt;br /&gt;
* Make it possible to toggle shroud and fog (but take care that this is only possible ib campaigns)&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=EasyCoding&amp;diff=14832</id>
		<title>EasyCoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=EasyCoding&amp;diff=14832"/>
		<updated>2007-04-16T13:30:48Z</updated>

		<summary type="html">&lt;p&gt;HaJo: /* En Guard animation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Foreword ==&lt;br /&gt;
This page is here to document easy to do coding tasks. It is not here to double the feature request database, and should only be filled by people that know the code well enough to juge the difficulty of a given task. &lt;br /&gt;
&lt;br /&gt;
If you are such a person, you should feel free to edit this page.&lt;br /&gt;
&lt;br /&gt;
If you're not, you should post a feature request and discuss your idea on the forum or IRC. A coder with better knowledge of the code might give you the green light to add your feature here.&lt;br /&gt;
&lt;br /&gt;
Anybody should feel free to add &amp;quot;clues&amp;quot; to any tasks, that is entry points, traps to avoid, person to contact to discuss and so on.&lt;br /&gt;
&lt;br /&gt;
If you plan to work on a feature, write your name at the bottom of the feature, with the date. Note that if you are too long at working on a feature I'll &amp;quot;free&amp;quot; it back (that is if you're not working on it. If you have problems implementing it, just tell us....)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Boucman|Boucman]] 20:48, 3 October 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Animation related features ==&lt;br /&gt;
=== Victory animation ===&lt;br /&gt;
'''an animation to be played by the surviving unit during the death animation of the other unit'''&lt;br /&gt;
&lt;br /&gt;
this should be fairly easy to do, just duplicate all death animation code, and modify the unit_die function to change the state of both units.&lt;br /&gt;
&lt;br /&gt;
ask Boucman for extra help&lt;br /&gt;
&lt;br /&gt;
* unit_display.cpp&lt;br /&gt;
* unit_type.cpp&lt;br /&gt;
* unit.cpp&lt;br /&gt;
* unit_animation.cpp;&lt;br /&gt;
&lt;br /&gt;
Done! Submitting patch as soon as it can be tested. [[User:TheAT|TheAT]] 01:53, 17 October 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
=== En Guard animation ===&lt;br /&gt;
'''An animation to replace the standing animation when the unit is next to an enemy'''&lt;br /&gt;
&lt;br /&gt;
Slightly more tricky than the previous one, you should copy most of the standing code, &lt;br /&gt;
but beware that this should be invisible to external callers. &lt;br /&gt;
The call to get_stats should be looked at&lt;br /&gt;
&lt;br /&gt;
Ask Boucman for extra help&lt;br /&gt;
&lt;br /&gt;
* unit.cpp&lt;br /&gt;
* unit_type.cpp&lt;br /&gt;
* unit_animation.cpp&lt;br /&gt;
&lt;br /&gt;
=== Special tags for Extra_anim ===&lt;br /&gt;
'''special tags in the animate_unit event to call standard unit animations'''&lt;br /&gt;
&lt;br /&gt;
one of the big limitation of the extra_animation tags is that you need to modify the unit itself to have the extra anim. Most anims can't be easily called that way. It would be interesting to have special tags that would be recognised to call the standard animations (attack, defense, etc...)&lt;br /&gt;
&lt;br /&gt;
the tricky part is to handle correctly the &amp;quot;offset&amp;quot; parameter, and add all the WML handling to &amp;quot;fill in&amp;quot; the information we won't have available (non-existant filtering criterias)&lt;br /&gt;
&lt;br /&gt;
this is more tricky than the two above, and I would advise doing one of the other two first to understand how it work&lt;br /&gt;
&lt;br /&gt;
ask Boucman for extra help&lt;br /&gt;
&lt;br /&gt;
* unit.cpp&lt;br /&gt;
* actions.cpp&lt;br /&gt;
&lt;br /&gt;
=== Animate flags during a [delay] event ===&lt;br /&gt;
currently, the [event] tag calls SDL_delay() and blocks the game completely. It would be trivial to change it to a loop that would call event::pump() every 10ms to have all animations updated&lt;br /&gt;
&lt;br /&gt;
the tricky part is to make sure the screen is somehow &amp;quot;locked&amp;quot; and that player can't play during that time (should be the case, simple checking is needed)&lt;br /&gt;
&lt;br /&gt;
grep should give you the file to change&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I am on this.Boucman please email me with more details when you have time [[User:Spx2|Spx2]] 12:31, 23 December 2006 (CEST) &lt;br /&gt;
&lt;br /&gt;
Boucman please email me with an event that i can test this on&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WML related features ==&lt;br /&gt;
=== Side-specific messages ===&lt;br /&gt;
Side-specific [message]s ([http://gna.org/bugs/index.php?7427 FR #7427])&lt;br /&gt;
=== Side-specific results ===&lt;br /&gt;
Giving result=defeat or result=victory for specific sides. ([http://gna.org/bugs/index.php?4960 FR #4960])&lt;br /&gt;
=== Recall Event ===&lt;br /&gt;
WML event trigger for recalling (the current one triggers on both recalls and recruits) ([http://gna.org/bugs/index.php?3622 FR #3622]) (please read the comments of the report for a proper description of how this should work)&lt;br /&gt;
=== Enabling checking of damage dealt in WML ===&lt;br /&gt;
A WML variable should be set when triggering some combat-related events, allowing WML to know the amount of damage being dealt. ([http://gna.org/bugs/index.php?7673 FR #7673])&lt;br /&gt;
=== Support for leaderless multiplayergames ===&lt;br /&gt;
Add support for the WML tag victory_when_enemies_defeated in the scenario tag during multiplayergames. ([https://gna.org/bugs/index.php?8106 FR #8106])&lt;br /&gt;
&lt;br /&gt;
== GUI related features ==&lt;br /&gt;
=== Theme Changes ===&lt;br /&gt;
* show number of owned villages/total villages (FR: #3135) &lt;br /&gt;
* allow custom themes to display values of WML variables ([http://gna.org/bugs/index.php?6209 FR #6209])&lt;br /&gt;
* hide the hourglass item from the statusbar when there is no timer&lt;br /&gt;
&lt;br /&gt;
=== Widget Changes ===&lt;br /&gt;
* show side number, name and team association information in the status table &lt;br /&gt;
* make games sortable in the lobby (open slots, total number of players, era, XP modifier, gold per village, fog/shroud) &lt;br /&gt;
* input history (chat, commands, ..), seek Sapient for more info and tips&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
=== More powerful village naming ===&lt;br /&gt;
'''adding mountain names and other features to village names, having a second random name in village names'''&lt;br /&gt;
&lt;br /&gt;
currently the village naming engine has avery good structure that could allow more powerfull names to be generated. Understanding how it works should be quite easy, and a few usefull imprvements could be added&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* currently villages can use lake names and river names, this should be extanded to other features like bridges, swamps, mountains etc...&lt;br /&gt;
* it would be nice to have a separate list of &amp;quot;first sylabus&amp;quot; and &amp;quot;last sylabus&amp;quot; for naming. That's not really needed in english, but some translations could use it&lt;br /&gt;
* again, it is common to have village with more than one &amp;quot;random&amp;quot; word in them. having a $name2 variable would be nice&lt;br /&gt;
&lt;br /&gt;
=== Debug Mode ===&lt;br /&gt;
* New debug command functionality (setting status.variables, possibly terrain, WML value display)&lt;br /&gt;
* Make it possible to toggle shroud and fog (but take care that this is only possible ib campaigns)&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=User:HaJo&amp;diff=13135</id>
		<title>User:HaJo</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=User:HaJo&amp;diff=13135"/>
		<updated>2006-12-11T02:07:26Z</updated>

		<summary type="html">&lt;p&gt;HaJo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi!&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=BeginnerCampaigns&amp;diff=4927</id>
		<title>BeginnerCampaigns</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=BeginnerCampaigns&amp;diff=4927"/>
		<updated>2005-11-23T18:05:12Z</updated>

		<summary type="html">&lt;p&gt;HaJo: /* ''An Orcish Incursion'' */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Scenarios / Campaigns for Beginners ==&lt;br /&gt;
&lt;br /&gt;
First, beginners should take a tour thru the ''tutorial'' (a mini-campaign with two scenarios),&lt;br /&gt;
to see how wesnoth works.&lt;br /&gt;
&lt;br /&gt;
After that, these campaigns are quite short:&lt;br /&gt;
&lt;br /&gt;
=== ''An Orcish Incursion'' ===&lt;br /&gt;
&lt;br /&gt;
By Josh Parsons. Vs. 1.0. Complete.&lt;br /&gt;
&lt;br /&gt;
A 7 scenario mini-campaign with an emphasis on strategy, with hints for beginners.&lt;br /&gt;
Defend the Elven forests from marauding orcs.&lt;br /&gt;
&lt;br /&gt;
See: [[OrcishIncursionCampaign]]&lt;br /&gt;
&lt;br /&gt;
=== ''Two Brothers'' ===&lt;br /&gt;
&lt;br /&gt;
By Circon. Currently maintained by Ivanovic and chrber. v0.8.6. &lt;br /&gt;
&lt;br /&gt;
A campaign useful for beginners. &lt;br /&gt;
&lt;br /&gt;
See: [[MiniCampaign]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ''The South Guard'' ===&lt;br /&gt;
&lt;br /&gt;
By aelius. v1.0.0. &lt;br /&gt;
&lt;br /&gt;
This campaign tells the story of a relatively quiet part of the Wesnoth border.&lt;br /&gt;
&lt;br /&gt;
A campaign useful for beginners.&lt;br /&gt;
&lt;br /&gt;
See: [[SouthGuard]]&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=BeginnerCampaigns&amp;diff=4926</id>
		<title>BeginnerCampaigns</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=BeginnerCampaigns&amp;diff=4926"/>
		<updated>2005-11-23T18:04:26Z</updated>

		<summary type="html">&lt;p&gt;HaJo: Two Brothers, South Guard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Scenarios / Campaigns for Beginners ==&lt;br /&gt;
&lt;br /&gt;
First, beginners should take a tour thru the ''tutorial'' (a mini-campaign with two scenarios),&lt;br /&gt;
to see how wesnoth works.&lt;br /&gt;
&lt;br /&gt;
After that, these campaigns are quite short:&lt;br /&gt;
&lt;br /&gt;
=== ''An Orcish Incursion'' ===&lt;br /&gt;
&lt;br /&gt;
By Josh Parsons. Vs. 1.0. Complete.&lt;br /&gt;
&lt;br /&gt;
A 7 scenario mini-campaign with an emphasis on strategy, with hints for beginners.&lt;br /&gt;
Defend the Elven forests from marauding orcs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ''Two Brothers'' ===&lt;br /&gt;
&lt;br /&gt;
By Circon. Currently maintained by Ivanovic and chrber. v0.8.6. &lt;br /&gt;
&lt;br /&gt;
A campaign useful for beginners. &lt;br /&gt;
&lt;br /&gt;
See: [[MiniCampaign]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ''The South Guard'' ===&lt;br /&gt;
&lt;br /&gt;
By aelius. v1.0.0. &lt;br /&gt;
&lt;br /&gt;
This campaign tells the story of a relatively quiet part of the Wesnoth border.&lt;br /&gt;
&lt;br /&gt;
A campaign useful for beginners.&lt;br /&gt;
&lt;br /&gt;
See: [[SouthGuard]]&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=BeginnerCampaigns&amp;diff=4925</id>
		<title>BeginnerCampaigns</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=BeginnerCampaigns&amp;diff=4925"/>
		<updated>2005-11-23T17:48:19Z</updated>

		<summary type="html">&lt;p&gt;HaJo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Scenarios / Campaigns for Beginners ==&lt;br /&gt;
&lt;br /&gt;
First, beginners should take a tour thru the tutorial (a mini-campaign with two scenarios),&lt;br /&gt;
to see how wesnoth works.&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Talk:GettingStarted&amp;diff=4924</id>
		<title>Talk:GettingStarted</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Talk:GettingStarted&amp;diff=4924"/>
		<updated>2005-11-23T17:42:54Z</updated>

		<summary type="html">&lt;p&gt;HaJo: Scenarios --&amp;gt; Campaigns ?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The intended audience is people without previous war game knowledge.&lt;br /&gt;
They may only have a vague notion of what 'strategy' and 'tactics' are,&lt;br /&gt;
so don't assume much there. Rather than give specific 'click here,&lt;br /&gt;
type there' instructions, prefer to move the reader from how the game&lt;br /&gt;
should be played to describing Wesnoth's world and get them excited&lt;br /&gt;
enough to want to see for themselves.&lt;br /&gt;
Try to use simple words for a widely varying range of players,&lt;br /&gt;
of all ages, many of whom do not use English as a first language.&lt;br /&gt;
&lt;br /&gt;
Definitions, like campaign and unit, should be given early on&lt;br /&gt;
because it makes the rest easier to write.&lt;br /&gt;
By immediately giving a mindset and overview, the reader can then use it&lt;br /&gt;
when discussing details about hit points and Fog of War.&lt;br /&gt;
&lt;br /&gt;
Mentioning unit names is a bad idea, since the reader is likely&lt;br /&gt;
still trying to get the game running and specific units have no&lt;br /&gt;
meaning to them.&lt;br /&gt;
There is no real discussion on strategy.&lt;br /&gt;
The material needs reorganising.&lt;br /&gt;
The scenario sections should follow each other.&lt;br /&gt;
The word unit should be introduced very early, but without detail.&lt;br /&gt;
A unit section can describe units more fully.&lt;br /&gt;
The words troops and army aren't really suitable for Wesnoth,&lt;br /&gt;
unit seems all that's needed.&lt;br /&gt;
Some material is duplicated and should be cleaned up.&lt;br /&gt;
&lt;br /&gt;
I'm not sure what is the best approach when dealing with villages and&lt;br /&gt;
recruiting. Villages affect many aspects, but are part of the world.&lt;br /&gt;
Perhaps it might be better to have a Gold system section instead. &lt;br /&gt;
&lt;br /&gt;
-- Blackbeard&lt;br /&gt;
&lt;br /&gt;
I think the pages MainlineScenarios, UserScenarios, and BeginnerScenarios &lt;br /&gt;
should be called MainlineCampaigns, UserCampaigns, and BeginnerCampaigns.&lt;br /&gt;
&lt;br /&gt;
-- HaJo&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GettingStarted&amp;diff=4923</id>
		<title>GettingStarted</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GettingStarted&amp;diff=4923"/>
		<updated>2005-11-23T17:37:33Z</updated>

		<summary type="html">&lt;p&gt;HaJo: BeginnerScenarios&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Battle For Wesnoth (BFW) is a turn based, third person, fantasy war game.&lt;br /&gt;
Use your strategic and tactical skills to beat computer opponents.&lt;br /&gt;
Engage in campaigns that take you from scenario to scenario on to&lt;br /&gt;
final victory. Each campaign is a story told through scenarios. &lt;br /&gt;
Each scenario has an objective you must achieve before facing the next.&lt;br /&gt;
The game is played on a map divided into hexagons, called hexes.&lt;br /&gt;
&lt;br /&gt;
== Save and Load ==&lt;br /&gt;
At the start of each scenario, you have the option to save it. &lt;br /&gt;
If you are defeated, you may load it and try again. Once you have succeeded, &lt;br /&gt;
you will again be asked to save the next scenario and play that. &lt;br /&gt;
If you have to stop playing during a scenario, you can save your turn&lt;br /&gt;
and load it again later. Just remember, a good BFW player never needs to&lt;br /&gt;
save '''during''' a scenario. However, most beginners tend to do so rather&lt;br /&gt;
often. ;)&lt;br /&gt;
&lt;br /&gt;
== Recruit and Recall ==&lt;br /&gt;
At the start of each scenario, your commander is placed in a castle on a&lt;br /&gt;
special hex called a keep. From here, you can recruit or recall&lt;br /&gt;
your troops. Each recruit is placed on an empty castle square. Once you&lt;br /&gt;
have filled the castle, you cannot recruit any more until units move off.&lt;br /&gt;
Your opponent's commander is similarly placed on its castle keep and able&lt;br /&gt;
to recruit troops. When you right-click on an empty castle hex, a context&lt;br /&gt;
menu will come up that includes &amp;quot;recruit&amp;quot;. Use the menu that comes up to&lt;br /&gt;
recruit more units. You must wait until your next turn to move recruits&lt;br /&gt;
off your castle.&lt;br /&gt;
&lt;br /&gt;
At the end of each successful scenario, all your remaining troops are&lt;br /&gt;
automatically saved for you. At the start of the next scenario you may&lt;br /&gt;
recall them in a similar way to recruiting. Recalled troops are often more&lt;br /&gt;
experienced than recruits and usually a better choice.&lt;br /&gt;
&lt;br /&gt;
You may only recruit and recall when your commander is on the castle's keep&lt;br /&gt;
hex. Since most castles have a keep, you can move your commander to any&lt;br /&gt;
castle's keep to recruit and recall. &lt;br /&gt;
&amp;lt;!-- need to read up on factions more --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Factions and Races ==&lt;br /&gt;
&lt;br /&gt;
The world of  Wesnoth contains several races that have joined forces&lt;br /&gt;
into different factions. Here, Elf and Dwarf fight side by side against Orc&lt;br /&gt;
and Human. In most campaigns, you will mostly control units from one&lt;br /&gt;
faction, but often you will have a recruit list with units mixed in from&lt;br /&gt;
other factions, and will not have some units from a faction available.&lt;br /&gt;
Basically, your recruit list is determined by the plot of the campaign, &lt;br /&gt;
not by a predetermined ruleset.&lt;br /&gt;
&lt;br /&gt;
Sometimes factions make alliances with others, so you may face more&lt;br /&gt;
than one faction in a scenario.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 The peaceful villages will heal your troops and earn you a good&lt;br /&gt;
income to support your army. Cross mountains and rivers, either on foot or&lt;br /&gt;
mounted, push through forests, hills and tundra, or brazenly cross open&lt;br /&gt;
grassland, its all here in Wesnoth.&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Life and Death - Experience ==&lt;br /&gt;
&lt;br /&gt;
As your troops gain battle experience, they will learn more skills and&lt;br /&gt;
become stronger. They will also die in battle, so you'll need to&lt;br /&gt;
recruit and recall more when that happens. But choose wisely, for each has&lt;br /&gt;
strengths and weaknesses a cunning opponent will quickly exploit.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[ToDo]]:&lt;br /&gt;
Many challenges and rewards await you as you begin Your Battle for&lt;br /&gt;
Wesnoth.&lt;br /&gt;
&lt;br /&gt;
From your castle keep, recruit and recall a powerful&lt;br /&gt;
army to gain victory. Proceed from battle to battle to advance your cause.&lt;br /&gt;
&lt;br /&gt;
We first introduce you to your army, outline the different ways you can&lt;br /&gt;
play, and then focus on basic tatics and strategies.&lt;br /&gt;
&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Units must be reworked..this sucks --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Army Units ==&lt;br /&gt;
&lt;br /&gt;
All game types use the same soldiers, called units. Each unit is identified&lt;br /&gt;
by Race, Level, and Class. Each unit has strengths and weaknesses, &lt;br /&gt;
based on their Resistance, current Terrain, and Level.  &lt;br /&gt;
Full details are in the [[UnitTables]] and [[MoveTypeTables]].&lt;br /&gt;
&lt;br /&gt;
== Method of Game Play ==&lt;br /&gt;
&lt;br /&gt;
You can play The Battle For Wesnoth as a campaign, a single scenario,&lt;br /&gt;
multiplayer, or hotseat.&lt;br /&gt;
&lt;br /&gt;
; Campaign : A sequence of scenarios that allow you to develop your army by recalling surviving units from previous scenarios.&lt;br /&gt;
; Scenario : A single Life and Death battle where you pit your forces against one or more computer players.&lt;br /&gt;
; Multiplayer : A scenario played over a network with human and computer players.&lt;br /&gt;
; Hotseat : A scenario played by several people using one computer. When a player takes their turn at the computer, they're in the ''hotseat''.&lt;br /&gt;
&lt;br /&gt;
You can also combine hotseat and remote play. The person setting up the game should set up one position for each remote computer and set up extra positions as 'local player' with the setups desired by the players that will be playing those positions. &lt;br /&gt;
Once the game starts, the person who set up the game can use the :control side playername command to give control of positions to players using remote computers. Side is numeric turn order. &lt;br /&gt;
Playername is the name used to connect to the game server for the machine the player will be using.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- An almost complete description of all GUI components --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Finding Your Way Around Wesnoth ==&lt;br /&gt;
&lt;br /&gt;
You can use both the keyboard and mouse to navigate around Wesnoth. &lt;br /&gt;
Some controls respond to mouse only and others to keyboard. &lt;br /&gt;
Wesnoth supports several languages, so please select your preferred language before playing.&lt;br /&gt;
You may change the language at any time.&lt;br /&gt;
&lt;br /&gt;
Some buttons contain features beyond getting started, such as Hotkeys and&lt;br /&gt;
Multiplay, which are explained in [[WesnothManual]], not here.&lt;br /&gt;
&lt;br /&gt;
'''For the impatient, we recommend you first set your language, run the tutorial,&lt;br /&gt;
and then play a campaign.'''&lt;br /&gt;
&lt;br /&gt;
When Wesnoth starts it displays an initial background and a list of buttons&lt;br /&gt;
called the Main Menu. The buttons only work with a mouse. The following&lt;br /&gt;
sections describe the Main Menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Quit&lt;br /&gt;
&lt;br /&gt;
Click this button to close Wesnoth.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Language&lt;br /&gt;
&lt;br /&gt;
Click this button, select your language, and click Ok to use it, or Cancel to&lt;br /&gt;
continue with the current language. The first time Wesnoth starts, it defaults&lt;br /&gt;
to English, but once you change it, it will start in that language.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
The tutorial is a real, but basic, game (called a scenario) where Delfador&lt;br /&gt;
teaches Konrad how to play. Winning or losing is not important, here, but&lt;br /&gt;
learning what to do is. Click the Tutorial button to play as Konrad and&lt;br /&gt;
remember what Delfador tells him.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Campaign&lt;br /&gt;
&lt;br /&gt;
Wesnoth was designed to play campaigns only. Click this button for a list of campaigns. &lt;br /&gt;
Select your campaign and Ok to start or Cancel to quit.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* [[MainlineScenarios]]&lt;br /&gt;
* [[UserScenarios]]&lt;br /&gt;
* [[BeginnerScenarios]]&lt;br /&gt;
&lt;br /&gt;
Each campaign has a difficulty level: easy, medium (normal), and hard. &lt;br /&gt;
We recommend medium as this level is interesting, but not difficult. &lt;br /&gt;
You may not change the difficulty during the campaign. &lt;br /&gt;
Once you have selected the difficulty, you will start with the first scenario.&lt;br /&gt;
&lt;br /&gt;
To learn more on Campaigns, see 'Playing a Campaign' and 'Load'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Preferences&lt;br /&gt;
&lt;br /&gt;
Click here to change default settings. You will be shown a dialouge with the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
1- Music Volume (slider)&lt;br /&gt;
 Drag the slider to the left, to make the music softer, and to the right to&lt;br /&gt;
 make it louder.&lt;br /&gt;
&lt;br /&gt;
2- sfx volume (slider)&lt;br /&gt;
 Drag the slider to the left, to make the sound effects softer, and to the&lt;br /&gt;
 right to make them louder.&lt;br /&gt;
&lt;br /&gt;
3- Scroll speed (slider)&lt;br /&gt;
 Drag the slider to the left, to make the map scroll slower, and to the right&lt;br /&gt;
 to make it scroll faster.&lt;br /&gt;
&lt;br /&gt;
4- Full Screen (check box)&lt;br /&gt;
 Check this box to expand Wesnoth to fill the whole screen, or uncheck it, to&lt;br /&gt;
 return to a window.&lt;br /&gt;
&lt;br /&gt;
5- Turn Dialog (check box)&lt;br /&gt;
 Check this box to show you a prompt dialogue whenever its your turn to move,&lt;br /&gt;
 or uncheck it, to disable the turn dialogue.&lt;br /&gt;
&lt;br /&gt;
6- Accelerated Speed (check box)&lt;br /&gt;
 Check this box to double move speed, or uncheck it, for normal move speed.&lt;br /&gt;
&lt;br /&gt;
7- Turn Bell (check box)&lt;br /&gt;
 Check this box to sound a Bell on your turn, or uncheck it, to turn it off.&lt;br /&gt;
&lt;br /&gt;
8- Show Grid (check box)&lt;br /&gt;
 Check this box to outline each map hex, or uncheck it, to turn it off.&lt;br /&gt;
&lt;br /&gt;
9- Show Team Colours (check box)&lt;br /&gt;
 Check this box, to show each unit's team colour, or uncheck it, to turn it&lt;br /&gt;
 off.&lt;br /&gt;
&lt;br /&gt;
10- Video Mode (button)&lt;br /&gt;
 Click this button to change the screen size. Choose from a list of available&lt;br /&gt;
 sizes. Caution: Wesnoth may display badly, or not at all, if you make a&lt;br /&gt;
 poor choice.&lt;br /&gt;
&lt;br /&gt;
11- Hotkeys (button)&lt;br /&gt;
 Click this button to change hotkeys. Caution: You may lose keyboard control&lt;br /&gt;
 over one or more functions, if you disable hotkeys. To learn more, see&lt;br /&gt;
 'Keyboard Control'.&lt;br /&gt;
&lt;br /&gt;
12- Close Window (button)&lt;br /&gt;
 Click this button to return to the Main Menu. All changes will be kept.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
About&lt;br /&gt;
&lt;br /&gt;
Click this button for a list of major Wesnoth contributors. You may find most&lt;br /&gt;
of them at irc.freenode.org:6667 on #wesnoth. Or visit http://www.wesnoth.org&lt;br /&gt;
for news, forums, and Wiki updates. The project is hosted on&lt;br /&gt;
http://savannah.gnu.org/projects/wesnoth , where you can download the latest production or&lt;br /&gt;
developer release, review and report problems (bugs).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Load&lt;br /&gt;
&lt;br /&gt;
Click this button to load a previously saved game. You will be shown a&lt;br /&gt;
dialogue listing saved games. Select the game and click Ok to load and&lt;br /&gt;
continue, or Cancel to return to the Main Menu.&lt;br /&gt;
&lt;br /&gt;
If you select a replay game, you can check the Replay check box. &lt;br /&gt;
The loaded game will make all the moves from the beginning while you watch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Multiplayer&lt;br /&gt;
&lt;br /&gt;
Click this button to play network games. A dialogue will appear for you to&lt;br /&gt;
create or connect to a game server. To learn more, see 'Network Games'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Game Navigation&lt;br /&gt;
&lt;br /&gt;
After loading a game or campaign, Wesnoth divides its screen into several&lt;br /&gt;
sections, listed here and described below (items marked with a * are undocumented).&lt;br /&gt;
&lt;br /&gt;
 1- Menu (button)&lt;br /&gt;
 2- Your total Gold (display)&lt;br /&gt;
 3- Your total villages (display)&lt;br /&gt;
 4- Your total units (display)&lt;br /&gt;
 5- Your total upkeep (display)&lt;br /&gt;
 6- Your total Income (display)&lt;br /&gt;
 7- Current hex type (info)&lt;br /&gt;
 8- Current hex position (info)&lt;br /&gt;
 9- Full map, scaled (select) *&lt;br /&gt;
 10- Day cycle (graphic)&lt;br /&gt;
 11- Last selected Unit profile (info) *&lt;br /&gt;
 12- Turn counter (info) *&lt;br /&gt;
 13- End Turn (button) *&lt;br /&gt;
 14- Map (active) *&lt;br /&gt;
&lt;br /&gt;
The map covers most of the window and is the most complex, so we discribe it&lt;br /&gt;
last. The other areas are useful when using the map, so we explain them now.&lt;br /&gt;
&lt;br /&gt;
Menu button: Displays a popup, lists the following options:&lt;br /&gt;
&lt;br /&gt;
 1- Scenario Objectives: Lists the victory and defeat conditions.&lt;br /&gt;
 2- Unit List: Lists your active units, including their map position.&lt;br /&gt;
 3- Recruit: Lists units your commander can recruit from a keep.&lt;br /&gt;
 4- Recall (Campaign only): Lists units your commander can recall from a keep.&lt;br /&gt;
 5- Status Table: Summary list of visible player units, villages, income etc.&lt;br /&gt;
 6- End Turn: On your turn, select it to end your turn.&lt;br /&gt;
 7- Save Game: Write the current game position to disk.&lt;br /&gt;
 8- Preferences: see Main Menu:preferences, for details.&lt;br /&gt;
 9- Quit Game: Close the game, without saving, and return to the Main menu.&lt;br /&gt;
&lt;br /&gt;
Your Total Gold, villages, units, upkeep, and income (info)&lt;br /&gt;
 Quick way to check how your army is doing. A negative income means you'll&lt;br /&gt;
 lose Gold, a positive means you gain Gold. &lt;br /&gt;
 Upkeep is the Gold you pay your units. &lt;br /&gt;
 Villages shows how many you own, each village will give you Gold.&lt;br /&gt;
&lt;br /&gt;
Current hex&lt;br /&gt;
 Shows the terrain type and position of the hex pointed to by the mouse.&lt;br /&gt;
 If a unit is on the hex, its terrain Resistence is shown after the position.&lt;br /&gt;
 The position is in column, row order.&lt;br /&gt;
&lt;br /&gt;
Day Cycle&lt;br /&gt;
 This is the picture underneath the mini-map to the right.  Putting your mouse&lt;br /&gt;
 over it will bring up a helpful tooltip.  Note that Wesnoth has a 6-turn day&lt;br /&gt;
 and that different alignments have bonuses depending on the time of day.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of GUI description -BB --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- not sure this is important in a starting guide, the idea is to show&lt;br /&gt;
wesnoth isn't a quick shoot-em-up, and also warn them what they're getting&lt;br /&gt;
into timewise --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Time to Play ==&lt;br /&gt;
&lt;br /&gt;
=== Campaign ===&lt;br /&gt;
&lt;br /&gt;
Campaigns take a very long time to complete, ranging from weeks to months.&lt;br /&gt;
Typical campaigns have about 20 to 30 scenarios. The main advantage with&lt;br /&gt;
campaigns is developing your army. As you complete each scenario, the&lt;br /&gt;
remaing units at the end are saved for you to use in the next scenario. &lt;br /&gt;
If you choose not to use a unit at all during a scenario it is carried over &lt;br /&gt;
to the next, so you don't lose units you don't use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The campaign is the primary form in which Wesnoth is intended to be played,&lt;br /&gt;
and is probably the most enjoyable.&lt;br /&gt;
&lt;br /&gt;
=== Scenarios ===&lt;br /&gt;
&lt;br /&gt;
A single scenario takes about 30 minutes to 2 hours to complete. &lt;br /&gt;
This is the fastest way to play, but your units are not saved and you cannot use&lt;br /&gt;
campaign units. Depending on the scenario, you may play with an artificial&lt;br /&gt;
player or against several.&lt;br /&gt;
&lt;br /&gt;
=== Hotseat ===&lt;br /&gt;
&lt;br /&gt;
Hotseat games will take about the same time to play as games played remotely. &lt;br /&gt;
The time will be greatly affected by the size of the map.&lt;br /&gt;
&lt;br /&gt;
=== Multiplayer ===&lt;br /&gt;
&lt;br /&gt;
Multiplayer games can take anything from 1 hour to 10 hours, depending on&lt;br /&gt;
how many players there are. The average time is between 3 to 7 hours.&lt;br /&gt;
Games can be saved and loaded as many times as you like. &lt;br /&gt;
So, it's possible for some games to last 1 or 2 weeks, even though &lt;br /&gt;
the play time is only a few hours. Currently, you cannot carry over&lt;br /&gt;
units in multiplayer from one scenario to the next, so building up&lt;br /&gt;
your army's strength is possible only within the scenario.&lt;br /&gt;
&lt;br /&gt;
== Battleworld Training ==&lt;br /&gt;
&lt;br /&gt;
If you are new to Wesnoth, but have experience playing turn-based hex combat games, &lt;br /&gt;
here is a way to find out how the terrain and units interact:&lt;br /&gt;
&lt;br /&gt;
# Go to Multiplayer, and play the AI on Battleworld.&lt;br /&gt;
# Choose &amp;quot;Rebels&amp;quot;. Give yourself two or three times as much gold as you give the AI.  Set the leveling percentage to 16%.  Set &amp;quot;gold per village&amp;quot; to 5x.&lt;br /&gt;
# Experiment with different time periods (which will give you different units) and fighting against different opponents.&lt;br /&gt;
# When you consistently overrun the AI, move the gold and exp settings back to normal.  This will prepare you for the campaigns and multiplayer against other humans.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Getting the Most Fun Out of the Game ===&lt;br /&gt;
&lt;br /&gt;
Remember, the idea of a game is to have fun! Here are some recommendations&lt;br /&gt;
from the development team on how to get the most fun out of the game:&lt;br /&gt;
&lt;br /&gt;
* Consider playing the campaign on 'Medium' difficulty level, especially if you have prior experience with strategy games. We feel you'll find it much more rewarding.&lt;br /&gt;
* Don't sweat it too much when you lose some units. The campaign was designed to accomodate the player losing some units along the way.&lt;br /&gt;
* Don't abuse saved games. Long ago, Wesnoth only allowed saving the game at the end of a scenario. Mid-scenario saving was added as a convenience to use if you had to continue the game another day, or to protect against crashes. We do not recommend loading mid-scenario saved games over and over because your White Mage keeps getting killed. Learn to protect your White Mage instead, and balance risks! That is part of the strategy.&lt;br /&gt;
* If you must load a saved game, we recommend going back to the start of the scenario, so that you choose a new strategy that works, rather than simply finding random numbers that favor you.&lt;br /&gt;
* But remember, the aim is to have fun! You may have different tastes to the developers, so do what you enjoy most! If you enjoy loading the saved game every time you make a mistake, looking for the 'perfect' game where you never lose a unit, by all means, go right ahead!&lt;br /&gt;
&lt;br /&gt;
== At the start of a scenario ==&lt;br /&gt;
* First, read the scenario objectives. Sometimes you do not have to kill enemy leaders instead it is enough that you survive number of turns, or pick up a particular object&lt;br /&gt;
*  Look at the map: the terrain, the position of your leader and the other leader.&lt;br /&gt;
* Then, begin to recruit units. Cheap units are useful to soak up the first wave of an enemy's attack; advanced units can then be brought in as support. Fast units can be used as scouts, for exploring the map and to quickly conquer villages.&lt;br /&gt;
&lt;br /&gt;
== During the scenario ==&lt;br /&gt;
* Try to capture and keep control of as many villages as possible to keep the gold coming in&lt;br /&gt;
* Keep units in packs so the enemy cannot attack from as many sides, and so you can outnumber each enemy unit. Put your units in a line so that the enemy cannot attack any one of your unit from more than two sides.&lt;br /&gt;
* Different units have different strengths and weaknesses depending on terrain and who they are attacking; right click on units and select &amp;quot;Describe unit&amp;quot; to learn more &lt;br /&gt;
* You can use lower level units as cannon fodder, to slow down enemy. e.g. you can use them to block enemy reaching your important units&lt;br /&gt;
* You can cause damage to enemies with advanced units and then finish them with lower level units - to give them more experience (and finally make them advance to next level)&lt;br /&gt;
* When you have a White Mage (advances from Mage) or Druid (advances from Shaman), put it in the middle of a circle of units to heal them as they move across the map&lt;br /&gt;
* Losing units is expected, even advanced units&lt;br /&gt;
* Time of day really matters:&lt;br /&gt;
** lawful units do more damage at day and less damage at night&lt;br /&gt;
** chaotic units do more damage at night and less damage at day&lt;br /&gt;
** remember to always check the time of day on the right side of the screen. Plan ahead - think about what it's going to be next turn as well as this turn.&lt;br /&gt;
* Some units are resistant or vulnerable to different kind of attacks. Mounted units are weak vs pierce attacks. Fire and holy destroy undeads. To see how much a unit resists an attack type, right click on the unit, select 'Unit Description', then select 'Resistance'. It will show you how resistant a unit is to different types of attacks.&lt;br /&gt;
&lt;br /&gt;
=== Healing ===&lt;br /&gt;
* Villages heal units from normal damage and poison&lt;br /&gt;
* A village heals by a fixed amount regardless of unit level.&lt;br /&gt;
* A unit can only be healed up to 8HP per turn.&lt;br /&gt;
* A unit may take several turns to be fully healed.&lt;br /&gt;
* A village takes the first turn to cure a poisoned unit, no healing is done.&lt;br /&gt;
* Healers can heal other units the same way villages do.&lt;br /&gt;
* Each healer can heal up to six units each turn.&lt;br /&gt;
* Healers (Elvish Shaman, Elvish Druid, Elvish Shyde, White Mage, Mage of Light, Paladin) heal all wounded units around them, so you can keep units close to the battle without losing them.&lt;br /&gt;
* Some healers can cure poisoned units in the same way villages do.&lt;br /&gt;
* Healers will first heal their own units and then all friendly ones.&lt;br /&gt;
* Healers do not heal enemy units.&lt;br /&gt;
* Healers cannot heal themselves, but see next point.&lt;br /&gt;
* Use your healers in pairs, so they can heal each other if needed.&lt;br /&gt;
* Healers can heal the same unit and speed up healing.&lt;br /&gt;
* Trolls and Woses regenerate themselves when injured.&lt;br /&gt;
* Trolls and Woses cannot regenerate other units.&lt;br /&gt;
* Trolls and Woses cure themselves from poison as a village does.&lt;br /&gt;
* Trolls and Woses can be healed by healers and a village.&lt;br /&gt;
&lt;br /&gt;
== Winning a scenario ==&lt;br /&gt;
* Advanced units are needed to quickly kill enemy commanders, and to avoid losing lots of units.&lt;br /&gt;
* The quicker you win a scenario, the more gold you get; you will get more gold from winning early than from all of the map's villages for the rest of the turns.&lt;br /&gt;
* Killing all enemy leaders usually gives instant victory.&lt;br /&gt;
&lt;br /&gt;
== More general tips ==&lt;br /&gt;
* After slaughtering scenarios (where your ass gets seriously kicked) there are usually &amp;quot;breathing room&amp;quot; scenarios where you can rather easily gain some gold and experience (advanced units)&lt;br /&gt;
* Advanced units have higher upkeep than lower level units (1 gp per level), loyal units are an exception.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[WesnothManual]]&lt;br /&gt;
* [[AdvancedTactics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Play}}&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GettingStarted&amp;diff=4917</id>
		<title>GettingStarted</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GettingStarted&amp;diff=4917"/>
		<updated>2005-11-23T16:43:39Z</updated>

		<summary type="html">&lt;p&gt;HaJo: /* At the start of a scenario */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Battle For Wesnoth (BFW) is a turn based, third person,&lt;br /&gt;
fantasy war game.&lt;br /&gt;
Use your strategic and tactical skills to beat computer opponents.&lt;br /&gt;
Engage in campaigns that take you from scenario to scenario on to&lt;br /&gt;
final victory. Each campaign is a story told through scenarios. Each&lt;br /&gt;
scenario has an objective you must achieve before facing the next.&lt;br /&gt;
The game is played on a map divided into hexagons, called hexes.&lt;br /&gt;
&lt;br /&gt;
== Save and Load ==&lt;br /&gt;
At the start of each scenario, you have the option to save it. If you&lt;br /&gt;
are defeated, you may load it and try again. Once you have succeeded, you&lt;br /&gt;
will again be asked to save the next scenario and play that. If you&lt;br /&gt;
have to stop playing during a scenario, you can save your turn&lt;br /&gt;
and load it again later. Just remember, a good BFW player never needs to&lt;br /&gt;
save '''during''' a scenario. However, most beginners tend to do so rather&lt;br /&gt;
often. ;)&lt;br /&gt;
&lt;br /&gt;
== Recruit and Recall ==&lt;br /&gt;
At the start of each scenario, your commander is placed in a castle on a&lt;br /&gt;
special hex called a keep. From here, you can recruit or recall&lt;br /&gt;
your troops. Each recruit is placed on an empty castle square. Once you&lt;br /&gt;
have filled the castle, you cannot recruit any more until units move off.&lt;br /&gt;
Your opponent's commander is similarly placed on its castle keep and able&lt;br /&gt;
to recruit troops. When you right-click on an empty castle hex, a context&lt;br /&gt;
menu will come up that includes &amp;quot;recruit&amp;quot;. Use the menu that comes up to&lt;br /&gt;
recruit more units. You must wait until your next turn to move recruits&lt;br /&gt;
off your castle.&lt;br /&gt;
&lt;br /&gt;
At the end of each successful scenario, all your remaining troops are&lt;br /&gt;
automatically saved for you. At the start of the next scenario you may&lt;br /&gt;
recall them in a similar way to recruiting. Recalled troops are often more&lt;br /&gt;
experienced than recruits and usually a better choice.&lt;br /&gt;
&lt;br /&gt;
You may only recruit and recall when your commander is on the castle's keep&lt;br /&gt;
hex. Since most castles have a keep, you can move your commander to any&lt;br /&gt;
castle's keep to recruit and recall. &lt;br /&gt;
&amp;lt;!-- need to read up on factions more --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Factions and Races ==&lt;br /&gt;
&lt;br /&gt;
The world of  Wesnoth contains several races that have joined forces&lt;br /&gt;
into different factions. Here, Elf and Dwarf fight side by side against Orc&lt;br /&gt;
and Human. In most campaigns, you will mostly control units from one&lt;br /&gt;
faction, but often you will have a recruit list with units mixed in from&lt;br /&gt;
other factions, and will not have some units from a faction available.&lt;br /&gt;
Basically, your recruit list is determined by the plot of the campaign, not&lt;br /&gt;
by a predetermined ruleset.&lt;br /&gt;
&lt;br /&gt;
Sometimes factions make alliances with others, so you may face more&lt;br /&gt;
than one faction in a scenario.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 The peaceful villages will heal your troops and earn you a good&lt;br /&gt;
income to support your army. Cross mountains and rivers, either on foot or&lt;br /&gt;
mounted, push through forests, hills and tundra, or brazenly cross open&lt;br /&gt;
grassland, its all here in Wesnoth.&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Life and Death - Experience ==&lt;br /&gt;
&lt;br /&gt;
As your troops gain battle experience, they will learn more skills and&lt;br /&gt;
become stronger. They will also die in battle, so you'll need to&lt;br /&gt;
recruit and recall more when that happens. But choose wisely, for each has&lt;br /&gt;
strengths and weaknesses a cunning opponent will quickly exploit.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[ToDo]]:&lt;br /&gt;
Many challenges and rewards await you as you begin Your Battle for&lt;br /&gt;
Wesnoth.&lt;br /&gt;
&lt;br /&gt;
From your castle keep, recruit and recall a powerful&lt;br /&gt;
army to gain victory. Proceed from battle to battle to advance your cause.&lt;br /&gt;
&lt;br /&gt;
We first introduce you to your army, outline the different ways you can&lt;br /&gt;
play, and then focus on basic tatics and strategies.&lt;br /&gt;
&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Units must be reworked..this sucks --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Army Units ==&lt;br /&gt;
&lt;br /&gt;
All game types use the same soldiers, called units. Each unit is identified&lt;br /&gt;
by Race, Level, and Class. Each unit has strengths and weaknesses, based&lt;br /&gt;
on their Resistance, current Terrain, and Level.  Full details are&lt;br /&gt;
in the [[UnitTables]] and [[MoveTypeTables]].&lt;br /&gt;
&lt;br /&gt;
== Method of Game Play ==&lt;br /&gt;
&lt;br /&gt;
You can play The Battle For Wesnoth as a campaign, a single scenario,&lt;br /&gt;
multiplayer, or hotseat.&lt;br /&gt;
&lt;br /&gt;
; Campaign : A sequence of scenarios that allow you to develop your army by recalling surviving units from previous scenarios.&lt;br /&gt;
; Scenario : A single Life and Death battle where you pit your forces against one or more computer players.&lt;br /&gt;
; Multiplayer : A scenario played over a network with human and computer players.&lt;br /&gt;
; Hotseat : A scenario played by several people using one computer. When a player takes their turn at the computer, they're in the ''hotseat''.&lt;br /&gt;
&lt;br /&gt;
You can also combine hotseat and remote play. The person setting up the game should set up one position for each remote computer and set up extra positions as 'local player' with the setups desired by the players that will be playing those positions. Once the game starts, the person who set up the game can use the :control side playername command to give control of positions to players using remote computers. Side is numeric turn order. Playername is the name used to connect to the game server for the machine the player will be using.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- An almost complete description of all GUI components --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Finding Your Way Around Wesnoth ==&lt;br /&gt;
&lt;br /&gt;
You can use both the keyboard and mouse to navigate around Wesnoth. Some&lt;br /&gt;
controls respond to mouse only and others to keyboard. Wesnoth supports&lt;br /&gt;
several languages, so please select your preferred language before playing.&lt;br /&gt;
You may change the language at any time.&lt;br /&gt;
&lt;br /&gt;
Some buttons contain features beyond getting started, such as Hotkeys and&lt;br /&gt;
Multiplay, which are explained in [[WesnothManual]], not here.&lt;br /&gt;
&lt;br /&gt;
'''For the impatient, we recommend you first set your language, run the tutorial,&lt;br /&gt;
and then play a campaign.'''&lt;br /&gt;
&lt;br /&gt;
When Wesnoth starts it displays an initial background and a list of buttons&lt;br /&gt;
called the Main Menu. The buttons only work with a mouse. The following&lt;br /&gt;
sections describe the Main Menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Quit&lt;br /&gt;
&lt;br /&gt;
Click this button to close Wesnoth.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Language&lt;br /&gt;
&lt;br /&gt;
Click this button, select your language, and click Ok to use it, or Cancel to&lt;br /&gt;
continue with the current language. The first time Wesnoth starts, it defaults&lt;br /&gt;
to English, but once you change it, it will start in that language.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
The tutorial is a real, but basic, game (called a scenario) where Delfador&lt;br /&gt;
teaches Konrad how to play. Winning or losing is not important, here, but&lt;br /&gt;
learning what to do is. Click the Tutorial button to play as Konrad and&lt;br /&gt;
remember what Delfador tells him.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Campaign&lt;br /&gt;
&lt;br /&gt;
Wesnoth was designed to play campaigns only. Click this button for a list of&lt;br /&gt;
campaigns. Select your campaign and Ok to start or Cancel to quit.&lt;br /&gt;
&lt;br /&gt;
Each campaign has a difficulty level: easy, medium (normal), and hard. We&lt;br /&gt;
recommend medium as this level is interesting, but not difficult. You may&lt;br /&gt;
not change the difficulty during the campaign. Once you have selected the&lt;br /&gt;
difficulty, you will start with the first scenario.&lt;br /&gt;
&lt;br /&gt;
To learn more on Campaigns, see 'Playing a Campaign' and 'Load'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Preferences&lt;br /&gt;
&lt;br /&gt;
Click here to change default settings. You will be shown a dialouge with the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
1- Music Volume (slider)&lt;br /&gt;
 Drag the slider to the left, to make the music softer, and to the right to&lt;br /&gt;
 make it louder.&lt;br /&gt;
&lt;br /&gt;
2- sfx volume (slider)&lt;br /&gt;
 Drag the slider to the left, to make the sound effects softer, and to the&lt;br /&gt;
 right to make them louder.&lt;br /&gt;
&lt;br /&gt;
3- Scroll speed (slider)&lt;br /&gt;
 Drag the slider to the left, to make the map scroll slower, and to the right&lt;br /&gt;
 to make it scroll faster.&lt;br /&gt;
&lt;br /&gt;
4- Full Screen (check box)&lt;br /&gt;
 Check this box to expand Wesnoth to fill the whole screen, or uncheck it, to&lt;br /&gt;
 return to a window.&lt;br /&gt;
&lt;br /&gt;
5- Turn Dialog (check box)&lt;br /&gt;
 Check this box to show you a prompt dialogue whenever its your turn to move,&lt;br /&gt;
 or uncheck it, to disable the turn dialogue.&lt;br /&gt;
&lt;br /&gt;
6- Accelerated Speed (check box)&lt;br /&gt;
 Check this box to double move speed, or uncheck it, for normal move speed.&lt;br /&gt;
&lt;br /&gt;
7- Turn Bell (check box)&lt;br /&gt;
 Check this box to sound a Bell on your turn, or uncheck it, to turn it off.&lt;br /&gt;
&lt;br /&gt;
8- Show Grid (check box)&lt;br /&gt;
 Check this box to outline each map hex, or uncheck it, to turn it off.&lt;br /&gt;
&lt;br /&gt;
9- Show Team Colours (check box)&lt;br /&gt;
 Check this box, to show each unit's team colour, or uncheck it, to turn it&lt;br /&gt;
 off.&lt;br /&gt;
&lt;br /&gt;
10- Video Mode (button)&lt;br /&gt;
 Click this button to change the screen size. Choose from a list of available&lt;br /&gt;
 sizes. Caution: Wesnoth may display badly, or not at all, if you make a&lt;br /&gt;
 poor choice.&lt;br /&gt;
&lt;br /&gt;
11- Hotkeys (button)&lt;br /&gt;
 Click this button to change hotkeys. Caution: You may lose keyboard control&lt;br /&gt;
 over one or more functions, if you disable hotkeys. To learn more, see&lt;br /&gt;
 'Keyboard Control'.&lt;br /&gt;
&lt;br /&gt;
12- Close Window (button)&lt;br /&gt;
 Click this button to return to the Main Menu. All changes will be kept.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
About&lt;br /&gt;
&lt;br /&gt;
Click this button for a list of major Wesnoth contributors. You may find most&lt;br /&gt;
of them at irc.freenode.org:6667 on #wesnoth. Or visit http://www.wesnoth.org&lt;br /&gt;
for news, forums, and Wiki updates. The project is hosted on&lt;br /&gt;
http://savannah.gnu.org/projects/wesnoth , where you can download the latest production or&lt;br /&gt;
developer release, review and report problems (bugs).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Load&lt;br /&gt;
&lt;br /&gt;
Click this button to load a previously saved game. You will be shown a&lt;br /&gt;
dialogue listing saved games. Select the game and click Ok to load and&lt;br /&gt;
continue, or Cancel to return to the Main Menu.&lt;br /&gt;
&lt;br /&gt;
If you select a replay game, you can check the Replay check box. The loaded&lt;br /&gt;
game will make all the moves from the beginning while you watch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Multiplayer&lt;br /&gt;
&lt;br /&gt;
Click this button to play network games. A dialogue will appear for you to&lt;br /&gt;
create or connect to a game server. To learn more, see 'Network Games'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Game Navigation&lt;br /&gt;
&lt;br /&gt;
After loading a game or campaign, Wesnoth divides its screen into several&lt;br /&gt;
sections, listed here and described below (items marked with a * are undocumented).&lt;br /&gt;
&lt;br /&gt;
 1- Menu (button)&lt;br /&gt;
 2- Your total Gold (display)&lt;br /&gt;
 3- Your total villages (display)&lt;br /&gt;
 4- Your total units (display)&lt;br /&gt;
 5- Your total upkeep (display)&lt;br /&gt;
 6- Your total Income (display)&lt;br /&gt;
 7- Current hex type (info)&lt;br /&gt;
 8- Current hex position (info)&lt;br /&gt;
 9- Full map, scaled (select) *&lt;br /&gt;
 10- Day cycle (graphic)&lt;br /&gt;
 11- Last selected Unit profile (info) *&lt;br /&gt;
 12- Turn counter (info) *&lt;br /&gt;
 13- End Turn (button) *&lt;br /&gt;
 14- Map (active) *&lt;br /&gt;
&lt;br /&gt;
The map covers most of the window and is the most complex, so we discribe it&lt;br /&gt;
last. The other areas are useful when using the map, so we explain them now.&lt;br /&gt;
&lt;br /&gt;
Menu button: Displays a popup, lists the following options:&lt;br /&gt;
&lt;br /&gt;
 1- Scenario Objectives: Lists the victory and defeat conditions.&lt;br /&gt;
 2- Unit List: Lists your active units, including their map position.&lt;br /&gt;
 3- Recruit: Lists units your commander can recruit from a keep.&lt;br /&gt;
 4- Recall (Campaign only): Lists units your commander can recall from a keep.&lt;br /&gt;
 5- Status Table: Summary list of visible player units, villages, income etc.&lt;br /&gt;
 6- End Turn: On your turn, select it to end your turn.&lt;br /&gt;
 7- Save Game: Write the current game position to disk.&lt;br /&gt;
 8- Preferences: see Main Menu:preferences, for details.&lt;br /&gt;
 9- Quit Game: Close the game, without saving, and return to the Main menu.&lt;br /&gt;
&lt;br /&gt;
Your Total Gold, villages, units, upkeep, and income (info)&lt;br /&gt;
 Quick way to check how your army is doing. A negative income means you'll&lt;br /&gt;
 lose Gold, a positive means you gain Gold. Upkeep is the Gold you pay&lt;br /&gt;
 your units. Villages shows how many you own, each viilage will give you&lt;br /&gt;
 Gold.&lt;br /&gt;
&lt;br /&gt;
Current hex&lt;br /&gt;
 Shows the terrain type and position of the hex pointed to by the mouse. If&lt;br /&gt;
 a unit is on the hex, its terrain Resistence is shown after the position.&lt;br /&gt;
 The position is in column, row order.&lt;br /&gt;
&lt;br /&gt;
Day Cycle&lt;br /&gt;
 This is the picture underneath the mini-map to the right.  Putting your mouse&lt;br /&gt;
 over it will bring up a helpful tooltip.  Note that Wesnoth has a 6-turn day&lt;br /&gt;
 and that differnt alignments have bonuses depending on the time of day.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of GUI description -BB --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- not sure this is important in a starting guide, the idea is to show&lt;br /&gt;
wesnoth isn't a quick shoot-em-up, and also warn them what they're getting&lt;br /&gt;
into timewise --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Time to Play ==&lt;br /&gt;
&lt;br /&gt;
=== Campaign ===&lt;br /&gt;
&lt;br /&gt;
Campaigns take a very long time to complete, ranging from weeks to months.&lt;br /&gt;
Typical campaigns have about 20 to 30 scenarios. The main advantage with&lt;br /&gt;
campaigns is developing your army. As you complete each scenario, the&lt;br /&gt;
remaing units at the end are saved for you to use in the next scenario. If&lt;br /&gt;
you choose not to use a unit at all during a scenario it is carried over to&lt;br /&gt;
the next, so you don't lose units you don't use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The campaign is the primary form in which Wesnoth is intended to be played,&lt;br /&gt;
and is probably the most enjoyable.&lt;br /&gt;
&lt;br /&gt;
=== Scenarios ===&lt;br /&gt;
&lt;br /&gt;
A single scenario takes about 30 minutes to 2 hours to complete. This is&lt;br /&gt;
the fastest way to play, but your units are not saved and you cannot use&lt;br /&gt;
campaign units. Depending on the scenario, you may play with an artificial&lt;br /&gt;
player or against several.&lt;br /&gt;
&lt;br /&gt;
=== Hotseat ===&lt;br /&gt;
&lt;br /&gt;
Hotseat games will take about the same time to play as games played remotely. The time will&lt;br /&gt;
be greatly affected by the size of the map.&lt;br /&gt;
&lt;br /&gt;
=== Multiplayer ===&lt;br /&gt;
&lt;br /&gt;
Multiplayer games can take anything from 1 hour to 10 hours, depending on&lt;br /&gt;
how many players there are. The average time is between 3 to 7 hours.&lt;br /&gt;
Games can be saved and loaded as many times as you like. So, it's&lt;br /&gt;
possible for some games to last 1 or 2 weeks, even though the&lt;br /&gt;
play time is only a few hours. Currently, you cannot carry over&lt;br /&gt;
units in multiplayer from one scenario to the next, so building up&lt;br /&gt;
your army's strength is possible only within the scenario.&lt;br /&gt;
&lt;br /&gt;
== Battleworld Training ==&lt;br /&gt;
&lt;br /&gt;
If you are new to Wesnoth, but have experience playing turn-based hex combat games, here is a way to find out how the terrain and units interact:&lt;br /&gt;
&lt;br /&gt;
# Go to Multiplayer, and play the AI on Battleworld.&lt;br /&gt;
# Choose &amp;quot;Rebels&amp;quot;. Give yourself two or three times as much gold as you give the AI.  Set the leveling percentage to 16%.  Set &amp;quot;gold per village&amp;quot; to 5x.&lt;br /&gt;
# Experiment with different time periods (which will give you different units) and fighting against different opponents.&lt;br /&gt;
# When you consistently overrun the AI, move the gold and exp settings back to normal.  This will prepare you for the campaigns and multiplayer against other humans.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Getting the Most Fun Out of the Game ===&lt;br /&gt;
&lt;br /&gt;
Remember, the idea of a game is to have fun! Here are some recommendations&lt;br /&gt;
from the development team on how to get the most fun out of the game:&lt;br /&gt;
&lt;br /&gt;
* Consider playing the campaign on 'Medium' difficulty level, especially if you have prior experience with strategy games. We feel you'll find it much more rewarding.&lt;br /&gt;
* Don't sweat it too much when you lose some units. The campaign was designed to accomodate the player losing some units along the way.&lt;br /&gt;
* Don't abuse saved games. Long ago, Wesnoth only allowed saving the game at the end of a scenario. Mid-scenario saving was added as a convenience to use if you had to continue the game another day, or to protect against crashes. We do not recommend loading mid-scenario saved games over and over because your White Mage keeps getting killed. Learn to protect your White Mage instead, and balance risks! That is part of the strategy.&lt;br /&gt;
* If you must load a saved game, we recommend going back to the start of the scenario, so that you choose a new strategy that works, rather than simply finding random numbers that favor you.&lt;br /&gt;
* But remember, the aim is to have fun! You may have different tastes to the developers, so do what you enjoy most! If you enjoy loading the saved game every time you make a mistake, looking for the 'perfect' game where you never lose a unit, by all means, go right ahead!&lt;br /&gt;
&lt;br /&gt;
== At the start of a scenario ==&lt;br /&gt;
* First, read the scenario objectives. Sometimes you do not have to kill enemy leaders instead it is enough that you survive number of turns, or pick up a particular object&lt;br /&gt;
*  Look at the map: the terrain, the position of your leader and the other leader.&lt;br /&gt;
* Then, begin to recruit units. Cheap units are useful to soak up the first wave of an enemy's attack; advanced units can then be brought in as support. Fast units can be used as scouts, for exploring the map and to quickly conquer villages.&lt;br /&gt;
&lt;br /&gt;
== During the scenario ==&lt;br /&gt;
* Try to capture and keep control of as many villages as possible to keep the gold coming in&lt;br /&gt;
* Keep units in packs so the enemy cannot attack from as many sides, and so you can outnumber each enemy unit. Put your units in a line so that the enemy cannot attack any one of your unit from more than two sides.&lt;br /&gt;
* Different units have different strengths and weaknesses depending on terrain and who they are attacking; right click on units and select &amp;quot;Describe unit&amp;quot; to learn more &lt;br /&gt;
* You can use lower level units as cannon fodder, to slow down enemy. e.g. you can use them to block enemy reaching your important units&lt;br /&gt;
* You can cause damage to enemies with advanced units and then finish them with lower level units - to give them more experience (and finally make them advance to next level)&lt;br /&gt;
* When you have a White Mage (advances from Mage) or Druid (advances from Shaman), put it in the middle of a circle of units to heal them as they move across the map&lt;br /&gt;
* Losing units is expected, even advanced units&lt;br /&gt;
* Time of day really matters:&lt;br /&gt;
** lawful units do more damage at day and less damage at night&lt;br /&gt;
** chaotic units do more damage at night and less damage at day&lt;br /&gt;
** remember to always check the time of day on the right side of the screen. Plan ahead - think about what it's going to be next turn as well as this turn.&lt;br /&gt;
* Some units are resistant or vulnerable to different kind of attacks. Mounted units are weak vs pierce attacks. Fire and holy destroy undeads. To see how much a unit resists an attack type, right click on the unit, select 'Unit Description', then select 'Resistance'. It will show you how resistant a unit is to different types of attacks.&lt;br /&gt;
&lt;br /&gt;
=== Healing ===&lt;br /&gt;
* Villages heal units from normal damage and poison&lt;br /&gt;
* A village heals by a fixed amount regardless of unit level.&lt;br /&gt;
* A unit can only be healed up to 8HP per turn.&lt;br /&gt;
* A unit may take several turns to be fully healed.&lt;br /&gt;
* A village takes the first turn to cure a poisoned unit, no healing is done.&lt;br /&gt;
* Healers can heal other units the same way villages do.&lt;br /&gt;
* Each healer can heal up to six units each turn.&lt;br /&gt;
* Healers (Elvish Shaman, Elvish Druid, Elvish Shyde, White Mage, Mage of Light, Paladin) heal all wounded units around them, so you can keep units close to the battle without losing them.&lt;br /&gt;
* Some healers can cure poisoned units in the same way villages do.&lt;br /&gt;
* Healers will first heal their own units and then all friendly ones.&lt;br /&gt;
* Healers do not heal enemy units.&lt;br /&gt;
* Healers cannot heal themselves, but see next point.&lt;br /&gt;
* Use your healers in pairs, so they can heal each other if needed.&lt;br /&gt;
* Healers can heal the same unit and speed up healing.&lt;br /&gt;
* Trolls and Woses regenerate themselves when injured.&lt;br /&gt;
* Trolls and Woses cannot regenerate other units.&lt;br /&gt;
* Trolls and Woses cure themselves from poison as a village does.&lt;br /&gt;
* Trolls and Woses can be healed by healers and a village.&lt;br /&gt;
&lt;br /&gt;
== Winning a scenario ==&lt;br /&gt;
* Advanced units are needed to quickly kill enemy commanders, and to avoid losing lots of units.&lt;br /&gt;
* The quicker you win a scenario, the more gold you get; you will get more gold from winning early than from all of the map's villages for the rest of the turns.&lt;br /&gt;
* Killing all enemy leaders usually gives instant victory.&lt;br /&gt;
&lt;br /&gt;
== More general tips ==&lt;br /&gt;
* After slaughtering scenarios (where your ass gets seriously kicked) there are usually &amp;quot;breathing room&amp;quot; scenarios where you can rather easily gain some gold and experience (advanced units)&lt;br /&gt;
* Advanced units have higher upkeep than lower level units (1 gp per level), loyal units are an exception.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[WesnothManual]]&lt;br /&gt;
* [[AdvancedTactics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Play}}&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GettingStarted&amp;diff=4916</id>
		<title>GettingStarted</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GettingStarted&amp;diff=4916"/>
		<updated>2005-11-23T16:42:54Z</updated>

		<summary type="html">&lt;p&gt;HaJo: /* At the start of a scenario */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Battle For Wesnoth (BFW) is a turn based, third person,&lt;br /&gt;
fantasy war game.&lt;br /&gt;
Use your strategic and tactical skills to beat computer opponents.&lt;br /&gt;
Engage in campaigns that take you from scenario to scenario on to&lt;br /&gt;
final victory. Each campaign is a story told through scenarios. Each&lt;br /&gt;
scenario has an objective you must achieve before facing the next.&lt;br /&gt;
The game is played on a map divided into hexagons, called hexes.&lt;br /&gt;
&lt;br /&gt;
== Save and Load ==&lt;br /&gt;
At the start of each scenario, you have the option to save it. If you&lt;br /&gt;
are defeated, you may load it and try again. Once you have succeeded, you&lt;br /&gt;
will again be asked to save the next scenario and play that. If you&lt;br /&gt;
have to stop playing during a scenario, you can save your turn&lt;br /&gt;
and load it again later. Just remember, a good BFW player never needs to&lt;br /&gt;
save '''during''' a scenario. However, most beginners tend to do so rather&lt;br /&gt;
often. ;)&lt;br /&gt;
&lt;br /&gt;
== Recruit and Recall ==&lt;br /&gt;
At the start of each scenario, your commander is placed in a castle on a&lt;br /&gt;
special hex called a keep. From here, you can recruit or recall&lt;br /&gt;
your troops. Each recruit is placed on an empty castle square. Once you&lt;br /&gt;
have filled the castle, you cannot recruit any more until units move off.&lt;br /&gt;
Your opponent's commander is similarly placed on its castle keep and able&lt;br /&gt;
to recruit troops. When you right-click on an empty castle hex, a context&lt;br /&gt;
menu will come up that includes &amp;quot;recruit&amp;quot;. Use the menu that comes up to&lt;br /&gt;
recruit more units. You must wait until your next turn to move recruits&lt;br /&gt;
off your castle.&lt;br /&gt;
&lt;br /&gt;
At the end of each successful scenario, all your remaining troops are&lt;br /&gt;
automatically saved for you. At the start of the next scenario you may&lt;br /&gt;
recall them in a similar way to recruiting. Recalled troops are often more&lt;br /&gt;
experienced than recruits and usually a better choice.&lt;br /&gt;
&lt;br /&gt;
You may only recruit and recall when your commander is on the castle's keep&lt;br /&gt;
hex. Since most castles have a keep, you can move your commander to any&lt;br /&gt;
castle's keep to recruit and recall. &lt;br /&gt;
&amp;lt;!-- need to read up on factions more --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Factions and Races ==&lt;br /&gt;
&lt;br /&gt;
The world of  Wesnoth contains several races that have joined forces&lt;br /&gt;
into different factions. Here, Elf and Dwarf fight side by side against Orc&lt;br /&gt;
and Human. In most campaigns, you will mostly control units from one&lt;br /&gt;
faction, but often you will have a recruit list with units mixed in from&lt;br /&gt;
other factions, and will not have some units from a faction available.&lt;br /&gt;
Basically, your recruit list is determined by the plot of the campaign, not&lt;br /&gt;
by a predetermined ruleset.&lt;br /&gt;
&lt;br /&gt;
Sometimes factions make alliances with others, so you may face more&lt;br /&gt;
than one faction in a scenario.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 The peaceful villages will heal your troops and earn you a good&lt;br /&gt;
income to support your army. Cross mountains and rivers, either on foot or&lt;br /&gt;
mounted, push through forests, hills and tundra, or brazenly cross open&lt;br /&gt;
grassland, its all here in Wesnoth.&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Life and Death - Experience ==&lt;br /&gt;
&lt;br /&gt;
As your troops gain battle experience, they will learn more skills and&lt;br /&gt;
become stronger. They will also die in battle, so you'll need to&lt;br /&gt;
recruit and recall more when that happens. But choose wisely, for each has&lt;br /&gt;
strengths and weaknesses a cunning opponent will quickly exploit.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[ToDo]]:&lt;br /&gt;
Many challenges and rewards await you as you begin Your Battle for&lt;br /&gt;
Wesnoth.&lt;br /&gt;
&lt;br /&gt;
From your castle keep, recruit and recall a powerful&lt;br /&gt;
army to gain victory. Proceed from battle to battle to advance your cause.&lt;br /&gt;
&lt;br /&gt;
We first introduce you to your army, outline the different ways you can&lt;br /&gt;
play, and then focus on basic tatics and strategies.&lt;br /&gt;
&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Units must be reworked..this sucks --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Army Units ==&lt;br /&gt;
&lt;br /&gt;
All game types use the same soldiers, called units. Each unit is identified&lt;br /&gt;
by Race, Level, and Class. Each unit has strengths and weaknesses, based&lt;br /&gt;
on their Resistance, current Terrain, and Level.  Full details are&lt;br /&gt;
in the [[UnitTables]] and [[MoveTypeTables]].&lt;br /&gt;
&lt;br /&gt;
== Method of Game Play ==&lt;br /&gt;
&lt;br /&gt;
You can play The Battle For Wesnoth as a campaign, a single scenario,&lt;br /&gt;
multiplayer, or hotseat.&lt;br /&gt;
&lt;br /&gt;
; Campaign : A sequence of scenarios that allow you to develop your army by recalling surviving units from previous scenarios.&lt;br /&gt;
; Scenario : A single Life and Death battle where you pit your forces against one or more computer players.&lt;br /&gt;
; Multiplayer : A scenario played over a network with human and computer players.&lt;br /&gt;
; Hotseat : A scenario played by several people using one computer. When a player takes their turn at the computer, they're in the ''hotseat''.&lt;br /&gt;
&lt;br /&gt;
You can also combine hotseat and remote play. The person setting up the game should set up one position for each remote computer and set up extra positions as 'local player' with the setups desired by the players that will be playing those positions. Once the game starts, the person who set up the game can use the :control side playername command to give control of positions to players using remote computers. Side is numeric turn order. Playername is the name used to connect to the game server for the machine the player will be using.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- An almost complete description of all GUI components --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Finding Your Way Around Wesnoth ==&lt;br /&gt;
&lt;br /&gt;
You can use both the keyboard and mouse to navigate around Wesnoth. Some&lt;br /&gt;
controls respond to mouse only and others to keyboard. Wesnoth supports&lt;br /&gt;
several languages, so please select your preferred language before playing.&lt;br /&gt;
You may change the language at any time.&lt;br /&gt;
&lt;br /&gt;
Some buttons contain features beyond getting started, such as Hotkeys and&lt;br /&gt;
Multiplay, which are explained in [[WesnothManual]], not here.&lt;br /&gt;
&lt;br /&gt;
'''For the impatient, we recommend you first set your language, run the tutorial,&lt;br /&gt;
and then play a campaign.'''&lt;br /&gt;
&lt;br /&gt;
When Wesnoth starts it displays an initial background and a list of buttons&lt;br /&gt;
called the Main Menu. The buttons only work with a mouse. The following&lt;br /&gt;
sections describe the Main Menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Quit&lt;br /&gt;
&lt;br /&gt;
Click this button to close Wesnoth.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Language&lt;br /&gt;
&lt;br /&gt;
Click this button, select your language, and click Ok to use it, or Cancel to&lt;br /&gt;
continue with the current language. The first time Wesnoth starts, it defaults&lt;br /&gt;
to English, but once you change it, it will start in that language.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tutorial&lt;br /&gt;
&lt;br /&gt;
The tutorial is a real, but basic, game (called a scenario) where Delfador&lt;br /&gt;
teaches Konrad how to play. Winning or losing is not important, here, but&lt;br /&gt;
learning what to do is. Click the Tutorial button to play as Konrad and&lt;br /&gt;
remember what Delfador tells him.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Campaign&lt;br /&gt;
&lt;br /&gt;
Wesnoth was designed to play campaigns only. Click this button for a list of&lt;br /&gt;
campaigns. Select your campaign and Ok to start or Cancel to quit.&lt;br /&gt;
&lt;br /&gt;
Each campaign has a difficulty level: easy, medium (normal), and hard. We&lt;br /&gt;
recommend medium as this level is interesting, but not difficult. You may&lt;br /&gt;
not change the difficulty during the campaign. Once you have selected the&lt;br /&gt;
difficulty, you will start with the first scenario.&lt;br /&gt;
&lt;br /&gt;
To learn more on Campaigns, see 'Playing a Campaign' and 'Load'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Preferences&lt;br /&gt;
&lt;br /&gt;
Click here to change default settings. You will be shown a dialouge with the&lt;br /&gt;
following options:&lt;br /&gt;
&lt;br /&gt;
1- Music Volume (slider)&lt;br /&gt;
 Drag the slider to the left, to make the music softer, and to the right to&lt;br /&gt;
 make it louder.&lt;br /&gt;
&lt;br /&gt;
2- sfx volume (slider)&lt;br /&gt;
 Drag the slider to the left, to make the sound effects softer, and to the&lt;br /&gt;
 right to make them louder.&lt;br /&gt;
&lt;br /&gt;
3- Scroll speed (slider)&lt;br /&gt;
 Drag the slider to the left, to make the map scroll slower, and to the right&lt;br /&gt;
 to make it scroll faster.&lt;br /&gt;
&lt;br /&gt;
4- Full Screen (check box)&lt;br /&gt;
 Check this box to expand Wesnoth to fill the whole screen, or uncheck it, to&lt;br /&gt;
 return to a window.&lt;br /&gt;
&lt;br /&gt;
5- Turn Dialog (check box)&lt;br /&gt;
 Check this box to show you a prompt dialogue whenever its your turn to move,&lt;br /&gt;
 or uncheck it, to disable the turn dialogue.&lt;br /&gt;
&lt;br /&gt;
6- Accelerated Speed (check box)&lt;br /&gt;
 Check this box to double move speed, or uncheck it, for normal move speed.&lt;br /&gt;
&lt;br /&gt;
7- Turn Bell (check box)&lt;br /&gt;
 Check this box to sound a Bell on your turn, or uncheck it, to turn it off.&lt;br /&gt;
&lt;br /&gt;
8- Show Grid (check box)&lt;br /&gt;
 Check this box to outline each map hex, or uncheck it, to turn it off.&lt;br /&gt;
&lt;br /&gt;
9- Show Team Colours (check box)&lt;br /&gt;
 Check this box, to show each unit's team colour, or uncheck it, to turn it&lt;br /&gt;
 off.&lt;br /&gt;
&lt;br /&gt;
10- Video Mode (button)&lt;br /&gt;
 Click this button to change the screen size. Choose from a list of available&lt;br /&gt;
 sizes. Caution: Wesnoth may display badly, or not at all, if you make a&lt;br /&gt;
 poor choice.&lt;br /&gt;
&lt;br /&gt;
11- Hotkeys (button)&lt;br /&gt;
 Click this button to change hotkeys. Caution: You may lose keyboard control&lt;br /&gt;
 over one or more functions, if you disable hotkeys. To learn more, see&lt;br /&gt;
 'Keyboard Control'.&lt;br /&gt;
&lt;br /&gt;
12- Close Window (button)&lt;br /&gt;
 Click this button to return to the Main Menu. All changes will be kept.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
About&lt;br /&gt;
&lt;br /&gt;
Click this button for a list of major Wesnoth contributors. You may find most&lt;br /&gt;
of them at irc.freenode.org:6667 on #wesnoth. Or visit http://www.wesnoth.org&lt;br /&gt;
for news, forums, and Wiki updates. The project is hosted on&lt;br /&gt;
http://savannah.gnu.org/projects/wesnoth , where you can download the latest production or&lt;br /&gt;
developer release, review and report problems (bugs).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Load&lt;br /&gt;
&lt;br /&gt;
Click this button to load a previously saved game. You will be shown a&lt;br /&gt;
dialogue listing saved games. Select the game and click Ok to load and&lt;br /&gt;
continue, or Cancel to return to the Main Menu.&lt;br /&gt;
&lt;br /&gt;
If you select a replay game, you can check the Replay check box. The loaded&lt;br /&gt;
game will make all the moves from the beginning while you watch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Multiplayer&lt;br /&gt;
&lt;br /&gt;
Click this button to play network games. A dialogue will appear for you to&lt;br /&gt;
create or connect to a game server. To learn more, see 'Network Games'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Game Navigation&lt;br /&gt;
&lt;br /&gt;
After loading a game or campaign, Wesnoth divides its screen into several&lt;br /&gt;
sections, listed here and described below (items marked with a * are undocumented).&lt;br /&gt;
&lt;br /&gt;
 1- Menu (button)&lt;br /&gt;
 2- Your total Gold (display)&lt;br /&gt;
 3- Your total villages (display)&lt;br /&gt;
 4- Your total units (display)&lt;br /&gt;
 5- Your total upkeep (display)&lt;br /&gt;
 6- Your total Income (display)&lt;br /&gt;
 7- Current hex type (info)&lt;br /&gt;
 8- Current hex position (info)&lt;br /&gt;
 9- Full map, scaled (select) *&lt;br /&gt;
 10- Day cycle (graphic)&lt;br /&gt;
 11- Last selected Unit profile (info) *&lt;br /&gt;
 12- Turn counter (info) *&lt;br /&gt;
 13- End Turn (button) *&lt;br /&gt;
 14- Map (active) *&lt;br /&gt;
&lt;br /&gt;
The map covers most of the window and is the most complex, so we discribe it&lt;br /&gt;
last. The other areas are useful when using the map, so we explain them now.&lt;br /&gt;
&lt;br /&gt;
Menu button: Displays a popup, lists the following options:&lt;br /&gt;
&lt;br /&gt;
 1- Scenario Objectives: Lists the victory and defeat conditions.&lt;br /&gt;
 2- Unit List: Lists your active units, including their map position.&lt;br /&gt;
 3- Recruit: Lists units your commander can recruit from a keep.&lt;br /&gt;
 4- Recall (Campaign only): Lists units your commander can recall from a keep.&lt;br /&gt;
 5- Status Table: Summary list of visible player units, villages, income etc.&lt;br /&gt;
 6- End Turn: On your turn, select it to end your turn.&lt;br /&gt;
 7- Save Game: Write the current game position to disk.&lt;br /&gt;
 8- Preferences: see Main Menu:preferences, for details.&lt;br /&gt;
 9- Quit Game: Close the game, without saving, and return to the Main menu.&lt;br /&gt;
&lt;br /&gt;
Your Total Gold, villages, units, upkeep, and income (info)&lt;br /&gt;
 Quick way to check how your army is doing. A negative income means you'll&lt;br /&gt;
 lose Gold, a positive means you gain Gold. Upkeep is the Gold you pay&lt;br /&gt;
 your units. Villages shows how many you own, each viilage will give you&lt;br /&gt;
 Gold.&lt;br /&gt;
&lt;br /&gt;
Current hex&lt;br /&gt;
 Shows the terrain type and position of the hex pointed to by the mouse. If&lt;br /&gt;
 a unit is on the hex, its terrain Resistence is shown after the position.&lt;br /&gt;
 The position is in column, row order.&lt;br /&gt;
&lt;br /&gt;
Day Cycle&lt;br /&gt;
 This is the picture underneath the mini-map to the right.  Putting your mouse&lt;br /&gt;
 over it will bring up a helpful tooltip.  Note that Wesnoth has a 6-turn day&lt;br /&gt;
 and that differnt alignments have bonuses depending on the time of day.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- End of GUI description -BB --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- not sure this is important in a starting guide, the idea is to show&lt;br /&gt;
wesnoth isn't a quick shoot-em-up, and also warn them what they're getting&lt;br /&gt;
into timewise --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Time to Play ==&lt;br /&gt;
&lt;br /&gt;
=== Campaign ===&lt;br /&gt;
&lt;br /&gt;
Campaigns take a very long time to complete, ranging from weeks to months.&lt;br /&gt;
Typical campaigns have about 20 to 30 scenarios. The main advantage with&lt;br /&gt;
campaigns is developing your army. As you complete each scenario, the&lt;br /&gt;
remaing units at the end are saved for you to use in the next scenario. If&lt;br /&gt;
you choose not to use a unit at all during a scenario it is carried over to&lt;br /&gt;
the next, so you don't lose units you don't use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The campaign is the primary form in which Wesnoth is intended to be played,&lt;br /&gt;
and is probably the most enjoyable.&lt;br /&gt;
&lt;br /&gt;
=== Scenarios ===&lt;br /&gt;
&lt;br /&gt;
A single scenario takes about 30 minutes to 2 hours to complete. This is&lt;br /&gt;
the fastest way to play, but your units are not saved and you cannot use&lt;br /&gt;
campaign units. Depending on the scenario, you may play with an artificial&lt;br /&gt;
player or against several.&lt;br /&gt;
&lt;br /&gt;
=== Hotseat ===&lt;br /&gt;
&lt;br /&gt;
Hotseat games will take about the same time to play as games played remotely. The time will&lt;br /&gt;
be greatly affected by the size of the map.&lt;br /&gt;
&lt;br /&gt;
=== Multiplayer ===&lt;br /&gt;
&lt;br /&gt;
Multiplayer games can take anything from 1 hour to 10 hours, depending on&lt;br /&gt;
how many players there are. The average time is between 3 to 7 hours.&lt;br /&gt;
Games can be saved and loaded as many times as you like. So, it's&lt;br /&gt;
possible for some games to last 1 or 2 weeks, even though the&lt;br /&gt;
play time is only a few hours. Currently, you cannot carry over&lt;br /&gt;
units in multiplayer from one scenario to the next, so building up&lt;br /&gt;
your army's strength is possible only within the scenario.&lt;br /&gt;
&lt;br /&gt;
== Battleworld Training ==&lt;br /&gt;
&lt;br /&gt;
If you are new to Wesnoth, but have experience playing turn-based hex combat games, here is a way to find out how the terrain and units interact:&lt;br /&gt;
&lt;br /&gt;
# Go to Multiplayer, and play the AI on Battleworld.&lt;br /&gt;
# Choose &amp;quot;Rebels&amp;quot;. Give yourself two or three times as much gold as you give the AI.  Set the leveling percentage to 16%.  Set &amp;quot;gold per village&amp;quot; to 5x.&lt;br /&gt;
# Experiment with different time periods (which will give you different units) and fighting against different opponents.&lt;br /&gt;
# When you consistently overrun the AI, move the gold and exp settings back to normal.  This will prepare you for the campaigns and multiplayer against other humans.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Getting the Most Fun Out of the Game ===&lt;br /&gt;
&lt;br /&gt;
Remember, the idea of a game is to have fun! Here are some recommendations&lt;br /&gt;
from the development team on how to get the most fun out of the game:&lt;br /&gt;
&lt;br /&gt;
* Consider playing the campaign on 'Medium' difficulty level, especially if you have prior experience with strategy games. We feel you'll find it much more rewarding.&lt;br /&gt;
* Don't sweat it too much when you lose some units. The campaign was designed to accomodate the player losing some units along the way.&lt;br /&gt;
* Don't abuse saved games. Long ago, Wesnoth only allowed saving the game at the end of a scenario. Mid-scenario saving was added as a convenience to use if you had to continue the game another day, or to protect against crashes. We do not recommend loading mid-scenario saved games over and over because your White Mage keeps getting killed. Learn to protect your White Mage instead, and balance risks! That is part of the strategy.&lt;br /&gt;
* If you must load a saved game, we recommend going back to the start of the scenario, so that you choose a new strategy that works, rather than simply finding random numbers that favor you.&lt;br /&gt;
* But remember, the aim is to have fun! You may have different tastes to the developers, so do what you enjoy most! If you enjoy loading the saved game every time you make a mistake, looking for the 'perfect' game where you never lose a unit, by all means, go right ahead!&lt;br /&gt;
&lt;br /&gt;
== At the start of a scenario ==&lt;br /&gt;
* First, read the scenario objectives. Sometimes you do not have to kill enemy leaders instead it is enough that you survive number of turns, or pick up a particular object&lt;br /&gt;
*  Look at the map: the terrain, the position of your leader and the other leader.&lt;br /&gt;
* Then, begin to recruit units. Cheap units are useful to soak up the first wave of an enemy's attack; advanced units can then be brought in as support. Fast units can be used as scouts, for exploring the map and for conquering villages.&lt;br /&gt;
&lt;br /&gt;
== During the scenario ==&lt;br /&gt;
* Try to capture and keep control of as many villages as possible to keep the gold coming in&lt;br /&gt;
* Keep units in packs so the enemy cannot attack from as many sides, and so you can outnumber each enemy unit. Put your units in a line so that the enemy cannot attack any one of your unit from more than two sides.&lt;br /&gt;
* Different units have different strengths and weaknesses depending on terrain and who they are attacking; right click on units and select &amp;quot;Describe unit&amp;quot; to learn more &lt;br /&gt;
* You can use lower level units as cannon fodder, to slow down enemy. e.g. you can use them to block enemy reaching your important units&lt;br /&gt;
* You can cause damage to enemies with advanced units and then finish them with lower level units - to give them more experience (and finally make them advance to next level)&lt;br /&gt;
* When you have a White Mage (advances from Mage) or Druid (advances from Shaman), put it in the middle of a circle of units to heal them as they move across the map&lt;br /&gt;
* Losing units is expected, even advanced units&lt;br /&gt;
* Time of day really matters:&lt;br /&gt;
** lawful units do more damage at day and less damage at night&lt;br /&gt;
** chaotic units do more damage at night and less damage at day&lt;br /&gt;
** remember to always check the time of day on the right side of the screen. Plan ahead - think about what it's going to be next turn as well as this turn.&lt;br /&gt;
* Some units are resistant or vulnerable to different kind of attacks. Mounted units are weak vs pierce attacks. Fire and holy destroy undeads. To see how much a unit resists an attack type, right click on the unit, select 'Unit Description', then select 'Resistance'. It will show you how resistant a unit is to different types of attacks.&lt;br /&gt;
&lt;br /&gt;
=== Healing ===&lt;br /&gt;
* Villages heal units from normal damage and poison&lt;br /&gt;
* A village heals by a fixed amount regardless of unit level.&lt;br /&gt;
* A unit can only be healed up to 8HP per turn.&lt;br /&gt;
* A unit may take several turns to be fully healed.&lt;br /&gt;
* A village takes the first turn to cure a poisoned unit, no healing is done.&lt;br /&gt;
* Healers can heal other units the same way villages do.&lt;br /&gt;
* Each healer can heal up to six units each turn.&lt;br /&gt;
* Healers (Elvish Shaman, Elvish Druid, Elvish Shyde, White Mage, Mage of Light, Paladin) heal all wounded units around them, so you can keep units close to the battle without losing them.&lt;br /&gt;
* Some healers can cure poisoned units in the same way villages do.&lt;br /&gt;
* Healers will first heal their own units and then all friendly ones.&lt;br /&gt;
* Healers do not heal enemy units.&lt;br /&gt;
* Healers cannot heal themselves, but see next point.&lt;br /&gt;
* Use your healers in pairs, so they can heal each other if needed.&lt;br /&gt;
* Healers can heal the same unit and speed up healing.&lt;br /&gt;
* Trolls and Woses regenerate themselves when injured.&lt;br /&gt;
* Trolls and Woses cannot regenerate other units.&lt;br /&gt;
* Trolls and Woses cure themselves from poison as a village does.&lt;br /&gt;
* Trolls and Woses can be healed by healers and a village.&lt;br /&gt;
&lt;br /&gt;
== Winning a scenario ==&lt;br /&gt;
* Advanced units are needed to quickly kill enemy commanders, and to avoid losing lots of units.&lt;br /&gt;
* The quicker you win a scenario, the more gold you get; you will get more gold from winning early than from all of the map's villages for the rest of the turns.&lt;br /&gt;
* Killing all enemy leaders usually gives instant victory.&lt;br /&gt;
&lt;br /&gt;
== More general tips ==&lt;br /&gt;
* After slaughtering scenarios (where your ass gets seriously kicked) there are usually &amp;quot;breathing room&amp;quot; scenarios where you can rather easily gain some gold and experience (advanced units)&lt;br /&gt;
* Advanced units have higher upkeep than lower level units (1 gp per level), loyal units are an exception.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[WesnothManual]]&lt;br /&gt;
* [[AdvancedTactics]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Play}}&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=GameConfigWML&amp;diff=3197</id>
		<title>GameConfigWML</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=GameConfigWML&amp;diff=3197"/>
		<updated>2005-09-24T18:19:14Z</updated>

		<summary type="html">&lt;p&gt;HaJo: /* The [game_config] tag */  Typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page has several unknown informations; they are represented by '???'.&lt;br /&gt;
Feel free to replace them with actual data.&lt;br /&gt;
&lt;br /&gt;
== The [game_config] tag ==&lt;br /&gt;
&lt;br /&gt;
This tag is a top level WML tag which can only be used once because&lt;br /&gt;
it defines basic settings that are used everywhere in the game.&lt;br /&gt;
In official versions of Wesnoth it is in ''game.cfg''; values used there are labeled 'standard'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following keys are recognised&lt;br /&gt;
* ''base_income'' (standard 2) how much your leader earns without any villages&lt;br /&gt;
* ''heal_amount'' (standard 4) how much the 'heal' ability (see [[AbilitiesWML]]) heals per unit&lt;br /&gt;
* ''healer_heals_per_turn'' (standard 8) how much a healer can heal per turn (total).&lt;br /&gt;
Healing is distributed clockwise, starting north of the healer,&lt;br /&gt;
until ''healer_heals_per_turn'' hitpoints have been regenerated.&lt;br /&gt;
* ''cure_amount'' (standard 8) how much the 'cure' ability heals per unit&lt;br /&gt;
* ''curer_heals_per_turn'' (standard 18) how much a curer can heal per turn (total)&lt;br /&gt;
* ''rest_heal_amount'' (standard 2) how much HP a unit gains each turn it rests&lt;br /&gt;
* ''recall_cost'' (standard 20) how much it costs to recall a unit; this cost is independent of level.&lt;br /&gt;
* ''kill_experience'' (standard 8)&lt;br /&gt;
killing a unit with ''level=X'' will give ''X//*//kill_experience'' experience to the killing unit.&lt;br /&gt;
However, if a unit has ''level=0//, it will still give half of ''X'' experience.&lt;br /&gt;
&lt;br /&gt;
* ''icon'' (standard 'wesnoth-icon.png') the game icon file&lt;br /&gt;
* ''title'' (standard 'misc/title.png') the title screen image&lt;br /&gt;
* ''logo'' (standard 'misc/logo.png') the wesnoth logo which will be put over the title image&lt;br /&gt;
* ''title_music'' (standard 'main_menu.ogg') the music to play at the title screen&lt;br /&gt;
&lt;br /&gt;
* ''logo_x''      (standard 525) the x position of the logo on the title screen&lt;br /&gt;
* ''logo_y''      (standard  70) the y position of the logo on the title screen&lt;br /&gt;
* ''buttons_x''   (standard 760) the x position of the buttons on the title screen&lt;br /&gt;
* ''buttons_y''   (standard 330) the y position of the buttons on the title screen&lt;br /&gt;
* ''buttons_padding'' (standard  20) space between buttons, and border in main menu&lt;br /&gt;
* ''tip_x''           (standard 100) ???&lt;br /&gt;
* ''tip_y''           (standard 500) ???&lt;br /&gt;
* ''tip_width''       (standard 495) ???&lt;br /&gt;
* ''tip_padding''     (standard  20) ???&lt;br /&gt;
&lt;br /&gt;
* ''map_image''     (standard 'maps/wesnoth.png') the background image for the &amp;quot;About&amp;quot; screen&lt;br /&gt;
* ''sidebar_image'' (standard 'misc/rightside.png') border of window when displaying unit statistics&lt;br /&gt;
* ''sidebar_image_bottom'' (standard 'misc/rightside-bottom.png') border of image when displaying unit statistics&lt;br /&gt;
* ''moved_energy_image'' (standard 'misc/bar-energy-moved.png')&lt;br /&gt;
the diamond image to add on top of the hp bar for player's moved units; see 'Orbs', [[WesnothManual]]&lt;br /&gt;
* ''unmoved_energy_image'' (standard 'misc/bar-energy-unmoved.png')&lt;br /&gt;
like ''moved_energy_image'', but for player's unmoved units&lt;br /&gt;
* ''partmoved_energy_image'' (standard 'misc/bar-energy-partmoved.png')&lt;br /&gt;
like ''moved_energy_image'', but for player's partially moved units&lt;br /&gt;
* ''enemy_energy_image'' (standard 'misc/bar-energy-enemy.png')&lt;br /&gt;
like ''moved_energy_image'', but for enemy units&lt;br /&gt;
* ''ally_energy_image'' (standard 'misc/bar-energy-ally.png')&lt;br /&gt;
like ''moved_energy_image'', but for allied units&lt;br /&gt;
* ''flag_image'' (standard 'terrain/flag-team%d-1.png:150,terrain/flag-team%d-2.png:150')&lt;br /&gt;
the image for a flag.&lt;br /&gt;
The symbol '%d' is used as a shortcut for an integer which depends on the color of the flag;&lt;br /&gt;
for example, a red flag is shown by the alternating images 'terrain/flag-team1-1.png' and 'terrain/flag-team1-2.png'.&lt;br /&gt;
(What does ':150' do???)&lt;br /&gt;
&lt;br /&gt;
* ''cross_image'' (standard 'misc/cross.png') the cross image displayed on the map at start of scenarios; see [[IntroWML]]&lt;br /&gt;
* ''dot_image'' (standard 'misc/dot.png') the dot image used to draw a path on the map before scenarios&lt;br /&gt;
&lt;br /&gt;
* ''footprint_left_nw//,//footprint_left_n//,//footprint_right_nw//,//footprint_right_n''&lt;br /&gt;
images used to display the path that a unit would take to the tile the cursor is on.&lt;br /&gt;
The first image of each key is used for tiles which would take only 1 movement point for the selected unit to move onto;&lt;br /&gt;
the second for ones which would take more.&lt;br /&gt;
The 'n' and 'nw' designations distinguish between tiles which are moved from orthogonally and diagonally in the same way as described in '''[missile_frame]''', [[AttackWML]].&lt;br /&gt;
The 'left' and 'right' designations are used alternately throughout the path;&lt;br /&gt;
however, the standard values are the same for 'left' and 'right'.&lt;br /&gt;
&lt;br /&gt;
* ''missile_n_image'' (standard 'projectiles/missile-n.png') orthogonal missile image to use if none is specified;&lt;br /&gt;
see ''image'', '''[missile_frame]''', [[AttackWML]]&lt;br /&gt;
* ''missile_ne_image'' (standard 'projectiles/missile-ne.png') diagonal missile image to use if none is specified;&lt;br /&gt;
see ''image_diagonal'', '''[missile_frame]''', [[AttackWML]]&lt;br /&gt;
* ''terrain_mask_image'' (standard 'terrain/alphamask.png') ???&lt;br /&gt;
* ''observer_image'' (standard 'misc/eye.png') the image to use for observer ???&lt;br /&gt;
* ''download_campaign_image'' (standard no image) the icon for the &amp;quot;Download more Campaigns&amp;quot; campaign menu option.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[ReferenceWML]]&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ThemeWML&amp;diff=2946</id>
		<title>ThemeWML</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ThemeWML&amp;diff=2946"/>
		<updated>2005-09-17T20:53:11Z</updated>

		<summary type="html">&lt;p&gt;HaJo: /* the toplevel [theme] tag */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== the toplevel [theme] tag ==&lt;br /&gt;
&lt;br /&gt;
Themes are used both for the wesnoth game and the wesnoth editor.&lt;br /&gt;
Themes allow flexible configuration of how everything is laid out on-screen.&lt;br /&gt;
&lt;br /&gt;
The only key in [theme] is ''name''. This is the name of the theme.&lt;br /&gt;
&lt;br /&gt;
The only tag in [theme] is '''[resolution]''', but each theme can have multiple [resolution] tags.&lt;br /&gt;
The [resolution] tags are scanned until the first one which is of the same or lower resolution than is currently being used is found, and this is used as our theme.&lt;br /&gt;
This allows us to define themes to work differently on different resolutions, &lt;br /&gt;
and will allow us to support both high and low resolutions elegantly.&lt;br /&gt;
&lt;br /&gt;
The following keys and tags are recognized for [resolution]:&lt;br /&gt;
&lt;br /&gt;
* ''width//,//height'' dimensions in pixels&lt;br /&gt;
&lt;br /&gt;
All subtags of [resolution] use the following keys:&lt;br /&gt;
* ''rect'' defines the rectangle to display on. Parts of a ''rect=a,b,c,d'' clause may be:&lt;br /&gt;
** number : absolute positions&lt;br /&gt;
** ''='' : same value as the same field in reference rect (alignment with reference)&lt;br /&gt;
** +number or -number : for a and b, add this value to reference's c and d respectively (spacing from reference)&lt;br /&gt;
; for c and d, add this value to self's a and b (specify by width and height)&lt;br /&gt;
** =+number or =-number : add this value to same field in reference rect (eg. consider reference as a container box)&lt;br /&gt;
* ''xanchor//,//yanchor'' control the behavior of how this rectangle changes as the resolution changes.&lt;br /&gt;
** 'left' its distance from the left side of the screen always remain the same, while changes in the resolution will change its size by the same amount (top for the y axis).&lt;br /&gt;
** 'right' its size always remain the same, as well as its distance to the right side of the screen (bottom for the y axis).&lt;br /&gt;
** 'fixed' its co-ordinates in that axis remain constant&lt;br /&gt;
** 'proportional' its co-ordinates multiplied by the ratio of the resolution being used to the canonical resolution.&lt;br /&gt;
&lt;br /&gt;
== [main_map] ==&lt;br /&gt;
&lt;br /&gt;
defines where the main game display (i.e. all the hexagons and units) is displayed.&lt;br /&gt;
&lt;br /&gt;
== [mini_map] ==&lt;br /&gt;
&lt;br /&gt;
determines where the mini map is displayed&lt;br /&gt;
&lt;br /&gt;
== [panel] ==&lt;br /&gt;
&lt;br /&gt;
displays an image as a panel on-screen.&lt;br /&gt;
* ''image'' the image used for the panel&lt;br /&gt;
&lt;br /&gt;
== [label] ==&lt;br /&gt;
&lt;br /&gt;
displays a text label on screen.&lt;br /&gt;
* ''prefix'' a string that will be printed before the text in all language&lt;br /&gt;
* ''text'' a text string id to be displayed&lt;br /&gt;
* ''postfix'' a string that will be printed after the text in all language&lt;br /&gt;
* ''icon'' an image that will be displayed instead of the text if it is available&lt;br /&gt;
* ''font_size'' the size of font to use for the label&lt;br /&gt;
&lt;br /&gt;
== [menu] ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* ''title'' the id of the string to write on the button&lt;br /&gt;
* ''title_literal'' a string that will be displayed &amp;quot;as is&amp;quot; in all language after the title&lt;br /&gt;
* ''image'' the image to use if available&lt;br /&gt;
* ''is_context_menu'' if set to true this menu will not be placed, but displayed on a right click&lt;br /&gt;
* ''items'' comma separated list of actions to put in the menu. if there is only one action, it will be executed&lt;br /&gt;
immediately and no menu will be displayed&lt;br /&gt;
** 'cycle' move to next movable unit&lt;br /&gt;
** 'endunitturn' consume this unit's move and cycle to the next one&lt;br /&gt;
** 'leader' senter on the leader&lt;br /&gt;
** 'undo' undo last action&lt;br /&gt;
** 'redo' redo undone action&lt;br /&gt;
** 'zoomin' zoom the map in&lt;br /&gt;
** 'zoomout' zoom the map out&lt;br /&gt;
** 'zoomdefault' return to default zoom&lt;br /&gt;
** 'fullscreen' switch fulscreen mode&lt;br /&gt;
** 'accelerated' switch turbo mode&lt;br /&gt;
** 'resistance' show resistance table of current unit&lt;br /&gt;
** 'terraintable' show terrain table of current unit&lt;br /&gt;
** 'describeunit' show unit description&lt;br /&gt;
** 'renameunit' change unit name&lt;br /&gt;
** 'save' save the game&lt;br /&gt;
** 'recruit' recruit a unit&lt;br /&gt;
** 'repeatrecruit' repeat last recruitement&lt;br /&gt;
** 'recall' recall a unit from previous scenarion&lt;br /&gt;
** 'endturn' end current turn&lt;br /&gt;
** 'togglegrid' toggle grid display&lt;br /&gt;
** 'statustable' show status table&lt;br /&gt;
** 'mute' mute all sounds&lt;br /&gt;
** 'speak' send message to other players&lt;br /&gt;
** 'createunit' debug create a unit on the map&lt;br /&gt;
** 'preferences' open preference dialog&lt;br /&gt;
** 'objectives' show objective window&lt;br /&gt;
** 'unitlist' list units&lt;br /&gt;
** 'statistics' show game statistics&lt;br /&gt;
** 'quit' quit the game&lt;br /&gt;
** 'labelterrain' label current location&lt;br /&gt;
** 'showenemymoves' show grids reachable by the enemy&lt;br /&gt;
** 'bestenemymoves' show grids reachable by the enemy with no zone of control&lt;br /&gt;
** 'editnewmap' editor only start a new map&lt;br /&gt;
** 'editloadmap' editor only loads an existing map&lt;br /&gt;
** 'editsavemap' editor only saves the current map&lt;br /&gt;
** 'editsaveas' editor only saves the current map, let you choose a filename&lt;br /&gt;
** 'editsetstartpos' editor only set a starting position for a team&lt;br /&gt;
** 'editfloodfill' editor only flood the map with a terrain&lt;br /&gt;
** 'toggleshroud' toggle the &amp;quot;moving removes shroud&amp;quot; behaviour&lt;br /&gt;
** 'updateshroud' removes all possible shroud&lt;br /&gt;
&lt;br /&gt;
== [status] ==&lt;br /&gt;
&lt;br /&gt;
This tag describes the Status Table.&lt;br /&gt;
This tag contains many other tags, which determine where other game statistics, such as the current turn, and a description of selected units go.&lt;br /&gt;
For instance, the [time_of_day] tag will determine where the time of day image goes.&lt;br /&gt;
Each subtag of [status] can contain the following attributes&lt;br /&gt;
&lt;br /&gt;
** ''font_size'' the size of font to use for the status&lt;br /&gt;
** ''rect'' the rectangle as for the main_map attribute&lt;br /&gt;
** ''xanchor'' the x-wise anchoring as for the main_map attribute&lt;br /&gt;
** ''yanchor'' the y-wise anchoring as for the main_map attribute&lt;br /&gt;
** ''prefix'' the string to display before the actual status, this is the string id for internationalisation&lt;br /&gt;
** ''prefix_literal'' a string to put after the prefix, but before the label for all languages.&lt;br /&gt;
** ''postfix_literal'' a string to put after the status&lt;br /&gt;
** ''postfix'' the string to display after the postfix_literal, this is the string id for internationalisation&lt;br /&gt;
&lt;br /&gt;
the following tags are recognized for [status]:&lt;br /&gt;
* '''[unit_description]''' the user description of the current unit&lt;br /&gt;
* '''[unit_type]''' the type of the current unit&lt;br /&gt;
* '''[unit_level]''' the level of the current unit&lt;br /&gt;
* '''[unit_traits]''' the traits of the current unit&lt;br /&gt;
* '''[unit_status]''' the status of the current unit&lt;br /&gt;
* '''[unit_alignment]''' the alignment of the current unit&lt;br /&gt;
* '''[unit_abilities]''' the abilities of the current unit&lt;br /&gt;
* '''[unit_hp]''' the HP of the current unit&lt;br /&gt;
* '''[unit_xp]''' the XP of the current unit&lt;br /&gt;
* '''[unit_moves]''' the moves remaining for the current unit&lt;br /&gt;
* '''[unit_weapons]''' the attacks of the current unit&lt;br /&gt;
* '''[unit_image]''' the icon for the current unit&lt;br /&gt;
* '''[unit_profile]'''&lt;br /&gt;
* '''[time_of_day]''' the time of day on the current location&lt;br /&gt;
* '''[turn]''' the turn number and turn remaining&lt;br /&gt;
* '''[gold]''' the gold remaining&lt;br /&gt;
* '''[villages]''' the number of villages owned&lt;br /&gt;
* '''[num_units]''' the number of units owned&lt;br /&gt;
* '''[upkeep]''' the money needed to keep your units every turn&lt;br /&gt;
* '''[expenses]''' the money lost each turn when you don't have enough income&lt;br /&gt;
* '''[income]''' the income per turn (can be positive)&lt;br /&gt;
* '''[terrain]''' the text description of the current terrain&lt;br /&gt;
* '''[position]''' the current terrain's position&lt;br /&gt;
* '''[side_playing]''' the current playing side&lt;br /&gt;
* '''[observers]''' the current observers&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[ThemeSystem]]&lt;br /&gt;
* [[ReferenceWML]]&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ThemeWML&amp;diff=2945</id>
		<title>ThemeWML</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ThemeWML&amp;diff=2945"/>
		<updated>2005-09-17T20:51:35Z</updated>

		<summary type="html">&lt;p&gt;HaJo: /* the toplevel [theme] tag */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== the toplevel [theme] tag ==&lt;br /&gt;
&lt;br /&gt;
Themes are used both for the wesnoth game and the wesnoth editor.&lt;br /&gt;
Themes allow flexible configuration of how everything is laid out on-screen.&lt;br /&gt;
&lt;br /&gt;
The only key in [theme] is ''name''. This is the name of the theme.&lt;br /&gt;
&lt;br /&gt;
The only tag in [theme] is '''[resolution]''', but each theme can have multiple [resolution] tags.&lt;br /&gt;
The [resolution] tags are scanned until the first one which is of the same or lower resolution than is currently being used is found, and this is used as our theme.&lt;br /&gt;
This allows us to define themes to work differently on different resolutions, &lt;br /&gt;
and will allow us to support both high and low resolutions elegantly.&lt;br /&gt;
&lt;br /&gt;
The following keys and tags are recognized for [resolution]:&lt;br /&gt;
&lt;br /&gt;
* ''width//,//height'' dimensions in pixels&lt;br /&gt;
&lt;br /&gt;
All subtags of [resolution] use the following keys:&lt;br /&gt;
* ''rect'' defines the rectangle to display on. Parts of a ''rect=a,b,c,d'' clause may be:&lt;br /&gt;
** number : absolute positions&lt;br /&gt;
** ''='' : same value as the same field in reference rect (alignement with reference)&lt;br /&gt;
** +number or -number : for a and b, add this value to reference's c and d respectively (spacing from reference)&lt;br /&gt;
; for c and d, add this value to self's a and b (specify by width and height)&lt;br /&gt;
** =+number or =-number : add this value to same field in reference rect (eg. consider reference as a container box)&lt;br /&gt;
* ''xanchor//,//yanchor'' control the behavior of how this rectangle changes as the resolution changes.&lt;br /&gt;
** 'left' its distance from the left side of the screen always remain the same, while changes in the resolution will change its size by the same amount (top for the y axis).&lt;br /&gt;
** 'right' its size always remain the same, as well as its distance to the right side of the screen (bottom for the y axis).&lt;br /&gt;
** 'fixed' its co-ordinates in that axis remain constant&lt;br /&gt;
** 'proportional' its co-ordinates multiplied by the ratio of the resolution being used to the canonical resolution.&lt;br /&gt;
&lt;br /&gt;
== [main_map] ==&lt;br /&gt;
&lt;br /&gt;
defines where the main game display (i.e. all the hexagons and units) is displayed.&lt;br /&gt;
&lt;br /&gt;
== [mini_map] ==&lt;br /&gt;
&lt;br /&gt;
determines where the mini map is displayed&lt;br /&gt;
&lt;br /&gt;
== [panel] ==&lt;br /&gt;
&lt;br /&gt;
displays an image as a panel on-screen.&lt;br /&gt;
* ''image'' the image used for the panel&lt;br /&gt;
&lt;br /&gt;
== [label] ==&lt;br /&gt;
&lt;br /&gt;
displays a text label on screen.&lt;br /&gt;
* ''prefix'' a string that will be printed before the text in all language&lt;br /&gt;
* ''text'' a text string id to be displayed&lt;br /&gt;
* ''postfix'' a string that will be printed after the text in all language&lt;br /&gt;
* ''icon'' an image that will be displayed instead of the text if it is available&lt;br /&gt;
* ''font_size'' the size of font to use for the label&lt;br /&gt;
&lt;br /&gt;
== [menu] ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* ''title'' the id of the string to write on the button&lt;br /&gt;
* ''title_literal'' a string that will be displayed &amp;quot;as is&amp;quot; in all language after the title&lt;br /&gt;
* ''image'' the image to use if available&lt;br /&gt;
* ''is_context_menu'' if set to true this menu will not be placed, but displayed on a right click&lt;br /&gt;
* ''items'' comma separated list of actions to put in the menu. if there is only one action, it will be executed&lt;br /&gt;
immediately and no menu will be displayed&lt;br /&gt;
** 'cycle' move to next movable unit&lt;br /&gt;
** 'endunitturn' consume this unit's move and cycle to the next one&lt;br /&gt;
** 'leader' senter on the leader&lt;br /&gt;
** 'undo' undo last action&lt;br /&gt;
** 'redo' redo undone action&lt;br /&gt;
** 'zoomin' zoom the map in&lt;br /&gt;
** 'zoomout' zoom the map out&lt;br /&gt;
** 'zoomdefault' return to default zoom&lt;br /&gt;
** 'fullscreen' switch fulscreen mode&lt;br /&gt;
** 'accelerated' switch turbo mode&lt;br /&gt;
** 'resistance' show resistance table of current unit&lt;br /&gt;
** 'terraintable' show terrain table of current unit&lt;br /&gt;
** 'describeunit' show unit description&lt;br /&gt;
** 'renameunit' change unit name&lt;br /&gt;
** 'save' save the game&lt;br /&gt;
** 'recruit' recruit a unit&lt;br /&gt;
** 'repeatrecruit' repeat last recruitement&lt;br /&gt;
** 'recall' recall a unit from previous scenarion&lt;br /&gt;
** 'endturn' end current turn&lt;br /&gt;
** 'togglegrid' toggle grid display&lt;br /&gt;
** 'statustable' show status table&lt;br /&gt;
** 'mute' mute all sounds&lt;br /&gt;
** 'speak' send message to other players&lt;br /&gt;
** 'createunit' debug create a unit on the map&lt;br /&gt;
** 'preferences' open preference dialog&lt;br /&gt;
** 'objectives' show objective window&lt;br /&gt;
** 'unitlist' list units&lt;br /&gt;
** 'statistics' show game statistics&lt;br /&gt;
** 'quit' quit the game&lt;br /&gt;
** 'labelterrain' label current location&lt;br /&gt;
** 'showenemymoves' show grids reachable by the enemy&lt;br /&gt;
** 'bestenemymoves' show grids reachable by the enemy with no zone of control&lt;br /&gt;
** 'editnewmap' editor only start a new map&lt;br /&gt;
** 'editloadmap' editor only loads an existing map&lt;br /&gt;
** 'editsavemap' editor only saves the current map&lt;br /&gt;
** 'editsaveas' editor only saves the current map, let you choose a filename&lt;br /&gt;
** 'editsetstartpos' editor only set a starting position for a team&lt;br /&gt;
** 'editfloodfill' editor only flood the map with a terrain&lt;br /&gt;
** 'toggleshroud' toggle the &amp;quot;moving removes shroud&amp;quot; behaviour&lt;br /&gt;
** 'updateshroud' removes all possible shroud&lt;br /&gt;
&lt;br /&gt;
== [status] ==&lt;br /&gt;
&lt;br /&gt;
This tag describes the Status Table.&lt;br /&gt;
This tag contains many other tags, which determine where other game statistics, such as the current turn, and a description of selected units go.&lt;br /&gt;
For instance, the [time_of_day] tag will determine where the time of day image goes.&lt;br /&gt;
Each subtag of [status] can contain the following attributes&lt;br /&gt;
&lt;br /&gt;
** ''font_size'' the size of font to use for the status&lt;br /&gt;
** ''rect'' the rectangle as for the main_map attribute&lt;br /&gt;
** ''xanchor'' the x-wise anchoring as for the main_map attribute&lt;br /&gt;
** ''yanchor'' the y-wise anchoring as for the main_map attribute&lt;br /&gt;
** ''prefix'' the string to display before the actual status, this is the string id for internationalisation&lt;br /&gt;
** ''prefix_literal'' a string to put after the prefix, but before the label for all languages.&lt;br /&gt;
** ''postfix_literal'' a string to put after the status&lt;br /&gt;
** ''postfix'' the string to display after the postfix_literal, this is the string id for internationalisation&lt;br /&gt;
&lt;br /&gt;
the following tags are recognized for [status]:&lt;br /&gt;
* '''[unit_description]''' the user description of the current unit&lt;br /&gt;
* '''[unit_type]''' the type of the current unit&lt;br /&gt;
* '''[unit_level]''' the level of the current unit&lt;br /&gt;
* '''[unit_traits]''' the traits of the current unit&lt;br /&gt;
* '''[unit_status]''' the status of the current unit&lt;br /&gt;
* '''[unit_alignment]''' the alignment of the current unit&lt;br /&gt;
* '''[unit_abilities]''' the abilities of the current unit&lt;br /&gt;
* '''[unit_hp]''' the HP of the current unit&lt;br /&gt;
* '''[unit_xp]''' the XP of the current unit&lt;br /&gt;
* '''[unit_moves]''' the moves remaining for the current unit&lt;br /&gt;
* '''[unit_weapons]''' the attacks of the current unit&lt;br /&gt;
* '''[unit_image]''' the icon for the current unit&lt;br /&gt;
* '''[unit_profile]'''&lt;br /&gt;
* '''[time_of_day]''' the time of day on the current location&lt;br /&gt;
* '''[turn]''' the turn number and turn remaining&lt;br /&gt;
* '''[gold]''' the gold remaining&lt;br /&gt;
* '''[villages]''' the number of villages owned&lt;br /&gt;
* '''[num_units]''' the number of units owned&lt;br /&gt;
* '''[upkeep]''' the money needed to keep your units every turn&lt;br /&gt;
* '''[expenses]''' the money lost each turn when you don't have enough income&lt;br /&gt;
* '''[income]''' the income per turn (can be positive)&lt;br /&gt;
* '''[terrain]''' the text description of the current terrain&lt;br /&gt;
* '''[position]''' the current terrain's position&lt;br /&gt;
* '''[side_playing]''' the current playing side&lt;br /&gt;
* '''[observers]''' the current observers&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[ThemeSystem]]&lt;br /&gt;
* [[ReferenceWML]]&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ThemeSystem&amp;diff=2944</id>
		<title>ThemeSystem</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ThemeSystem&amp;diff=2944"/>
		<updated>2005-09-17T20:44:56Z</updated>

		<summary type="html">&lt;p&gt;HaJo: /* menu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;- themes are used both for the wesnoth game and the wesnoth editor&lt;br /&gt;
- themes are stored in data/themes, one theme per file.&lt;br /&gt;
- themes allow flexible configuration of how everything is laid out on-screen&lt;br /&gt;
- format of a theme is:&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
 [theme]&lt;br /&gt;
     name=&amp;lt;name&amp;gt;&lt;br /&gt;
     [resolution]&lt;br /&gt;
     width=&amp;lt;x&amp;gt;&lt;br /&gt;
     height=&amp;lt;y&amp;gt;&lt;br /&gt;
         ....'content tags'....&lt;br /&gt;
     [/resolution]&lt;br /&gt;
     ...more resolution tags...&lt;br /&gt;
 [/theme]&lt;br /&gt;
&lt;br /&gt;
* the [resolution] tags are scanned until the first one which is of the same or lower resolution than is currently being used is found, and this is used as our theme. This allows us to define themes to work differently on different resolutions, and will allow us to support both high and low resolutions elegantly.&lt;br /&gt;
* the 'content tags' define where everything goes on-screen. The most common content tag is the 'main_map' tag, it has the following format:&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
 [main_map]&lt;br /&gt;
     rect=x1,y1,x2,y2&lt;br /&gt;
     xanchor=left|right|fixed|proportional&lt;br /&gt;
     yanchor=top|bottom|fixed|proportional&lt;br /&gt;
 [/main_map]&lt;br /&gt;
&lt;br /&gt;
The purpose of the 'main_map' tag is to define where the main game display (i.e. all the hexagons and units) is displayed. The rect field defines the rectangle the map is displayed on. The rectangle is given for a 1024x768 display -- the game's &amp;quot;canonical&amp;quot; resolution.&lt;br /&gt;
&lt;br /&gt;
xanchor and yanchor control the behavior of how this rectangle changes as the resolution changes.&lt;br /&gt;
&lt;br /&gt;
* A rectangle anchored to the left will have its distance from the left side of the screen always remain the same, while changes in the resolution will change its size by the same amount (top for the y axis).&lt;br /&gt;
* A rectangle anchored to the right will have its size always remain the same, as well as its distance to the right side of the screen (bottom for the y axis).&lt;br /&gt;
* A rectangle that is fixed will have its co-ordinates in that axis remain constant&lt;br /&gt;
* A rectangle that is proportional will have its co-ordinates multiplied by the ratio of the resolution being used to the canonical resolution.&lt;br /&gt;
&lt;br /&gt;
== mini_map ==&lt;br /&gt;
determines where the mini map is displayed&lt;br /&gt;
&lt;br /&gt;
== main_map ==&lt;br /&gt;
determines where the main map is displayed&lt;br /&gt;
&lt;br /&gt;
== label ==&lt;br /&gt;
displays a text label on screen.&lt;br /&gt;
* '''prefix''' a string that will be printed before the text in all languages&lt;br /&gt;
* '''text''' a text string id to be displayed&lt;br /&gt;
* '''postfix''' a string that will be printed after the text in all languages&lt;br /&gt;
* '''icon''' an image that will be displayed instead of the text if it is available&lt;br /&gt;
* '''font_size''' the size of the font to use for the label&lt;br /&gt;
&lt;br /&gt;
== panel ==&lt;br /&gt;
displays an image as a panel on-screen.&lt;br /&gt;
* '''image''' the image used for the panel&lt;br /&gt;
&lt;br /&gt;
== menu ==&lt;br /&gt;
displays a button which, when pressed, will reveal a menu or do an action.&lt;br /&gt;
* '''title''' the id of the string to write on the button&lt;br /&gt;
* '''title_literal''' a string that will be displayed &amp;quot;as is&amp;quot; in all languages after the title&lt;br /&gt;
* '''image''' the image to use if available&lt;br /&gt;
* '''is_context_menu''' if set to true, this menu will not be placed, but displayed on a right click&lt;br /&gt;
* '''items''' comma separated list of actions to put in the menu. If there is only one action, it will be executed immediately and no menu will be displayed&lt;br /&gt;
&lt;br /&gt;
The possible buttons are:&lt;br /&gt;
* __cycle__          move to next movable unit&lt;br /&gt;
* __endunitturn__    consume this unit's move and cycle to the next one&lt;br /&gt;
* __leader__         center map on the leader&lt;br /&gt;
* __undo__           undo last action&lt;br /&gt;
* __redo__           redo undone action&lt;br /&gt;
* __zoomin__         zoom into the map&lt;br /&gt;
* __zoomout__        zoom out of the map&lt;br /&gt;
* __zoomdefault__    return to default zoom&lt;br /&gt;
* __fullscreen__     switch fullscreen mode&lt;br /&gt;
* __accelerated__    switch turbo mode&lt;br /&gt;
* __resistance__     show resistance table of current unit&lt;br /&gt;
* __terraintable__   show terrain table of current unit&lt;br /&gt;
* __describeunit__   show unit description&lt;br /&gt;
* __renameunit__     change unit name&lt;br /&gt;
* __save__           save the game&lt;br /&gt;
* __recruit__        recruit a unit&lt;br /&gt;
* __repeatrecruit__  repeat last recruitement&lt;br /&gt;
* __recall__         recall a unit from a previous scenario&lt;br /&gt;
* __endturn__        end current turn&lt;br /&gt;
* __togglegrid__     toggle grid display&lt;br /&gt;
* __statustable__    show status table&lt;br /&gt;
* __mute__           mute all sounds&lt;br /&gt;
* __speak__          send message to other players&lt;br /&gt;
* __createunit__     ''debug'' create a unit on the map&lt;br /&gt;
* __preferences__    open preference dialog&lt;br /&gt;
* __objectives__     show objective window&lt;br /&gt;
* __unitlist__       list units&lt;br /&gt;
* __statistics__     show game statistics&lt;br /&gt;
* __quit__           quit the game&lt;br /&gt;
* __labelterrain__   label current location&lt;br /&gt;
* __showenemymoves__  show grids reachable by the enemy&lt;br /&gt;
* __bestenemymoves__  show grids reachable by the enemy with no zone of control&lt;br /&gt;
* __editnewmap__      ''editor only'' start a new map&lt;br /&gt;
* __editloadmap__     ''editor only'' loads an existing map&lt;br /&gt;
* __editsavemap__     ''editor only'' saves the current map&lt;br /&gt;
* __editsaveas__      ''editor only'' saves the current map, let you choose a filename&lt;br /&gt;
* __editsetstartpos__ ''editor only'' set a starting position for a team&lt;br /&gt;
* __editfloodfill__   ''editor only'' flood the map with a terrain&lt;br /&gt;
* __toggleshroud__    toggle the &amp;quot;moving removes shroud&amp;quot; behaviour&lt;br /&gt;
* __updateshroud__    removes all possible shroud&lt;br /&gt;
&lt;br /&gt;
== status ==&lt;br /&gt;
this tag contains many other tags, which determine where other game statistics, such as the current turn, and a description of selected units go. For instance, the time_of_day tag will determine where the time of day image goes. each subtag can contain the following attributes&lt;br /&gt;
* '''font_size''' the size of font to use for the status&lt;br /&gt;
* '''rect''' the rectangle as for the main_map attribute&lt;br /&gt;
* '''xanchor''' the x-wise anchoring as for the main_map attribute&lt;br /&gt;
* '''yanchor''' the y-wise anchoring as for the main_map attribute&lt;br /&gt;
* '''prefix''' the string to display before the actual status, this is the string id for internationalisation&lt;br /&gt;
* '''prefix_literal''' a string to put after the prefix, but before the label for all languages.&lt;br /&gt;
* '''postfix_literal''' a string to put after the status&lt;br /&gt;
* '''postfix''' the string to display after the postfix_literal, this is the string id for internationalisation&lt;br /&gt;
&lt;br /&gt;
the following stati are recognised:&lt;br /&gt;
* __unit_description__ the description of the current unit&lt;br /&gt;
* __unit_type__ the type of the current unit&lt;br /&gt;
* __unit_level__ the level of the current unit&lt;br /&gt;
* __unit_traits__ the traits of the current unit&lt;br /&gt;
* __unit_status__ the status of the current unit&lt;br /&gt;
* __unit_alignment__ the alignment of the current unit&lt;br /&gt;
* __unit_abilities__ the abilities of the current unit&lt;br /&gt;
* __unit_hp__ the HP of the current unit&lt;br /&gt;
* __unit_xp__ the XP of the current unit&lt;br /&gt;
* __unit_moves__ the moves remaining for the current unit&lt;br /&gt;
* __unit_weapons__ the attacks of the current unit&lt;br /&gt;
* __unit_image__ the icon for the current unit&lt;br /&gt;
* __unit_profile__&lt;br /&gt;
* __time_of_day__ the time of day on the current location&lt;br /&gt;
* __turn__ the turn number and turn remaining&lt;br /&gt;
* __gold__ the gold remaining&lt;br /&gt;
* __villages__ the number of villages owned&lt;br /&gt;
* __num_units__ the number of units owned&lt;br /&gt;
* __upkeep__ the money needed to keep your units every turn&lt;br /&gt;
* __expenses__ the money lost each turn when you don't have enough income&lt;br /&gt;
* __income__ the income per turn (can be positive)&lt;br /&gt;
* __terrain__ the text description of the current terrain&lt;br /&gt;
* __position__ the current terrain's position&lt;br /&gt;
* __side_playing__ the current playing side&lt;br /&gt;
* __observers__ the current observers&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[ThemeWML]]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=ThemeSystem&amp;diff=2943</id>
		<title>ThemeSystem</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=ThemeSystem&amp;diff=2943"/>
		<updated>2005-09-17T20:39:58Z</updated>

		<summary type="html">&lt;p&gt;HaJo: /* label */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;- themes are used both for the wesnoth game and the wesnoth editor&lt;br /&gt;
- themes are stored in data/themes, one theme per file.&lt;br /&gt;
- themes allow flexible configuration of how everything is laid out on-screen&lt;br /&gt;
- format of a theme is:&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
 [theme]&lt;br /&gt;
     name=&amp;lt;name&amp;gt;&lt;br /&gt;
     [resolution]&lt;br /&gt;
     width=&amp;lt;x&amp;gt;&lt;br /&gt;
     height=&amp;lt;y&amp;gt;&lt;br /&gt;
         ....'content tags'....&lt;br /&gt;
     [/resolution]&lt;br /&gt;
     ...more resolution tags...&lt;br /&gt;
 [/theme]&lt;br /&gt;
&lt;br /&gt;
* the [resolution] tags are scanned until the first one which is of the same or lower resolution than is currently being used is found, and this is used as our theme. This allows us to define themes to work differently on different resolutions, and will allow us to support both high and low resolutions elegantly.&lt;br /&gt;
* the 'content tags' define where everything goes on-screen. The most common content tag is the 'main_map' tag, it has the following format:&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
 [main_map]&lt;br /&gt;
     rect=x1,y1,x2,y2&lt;br /&gt;
     xanchor=left|right|fixed|proportional&lt;br /&gt;
     yanchor=top|bottom|fixed|proportional&lt;br /&gt;
 [/main_map]&lt;br /&gt;
&lt;br /&gt;
The purpose of the 'main_map' tag is to define where the main game display (i.e. all the hexagons and units) is displayed. The rect field defines the rectangle the map is displayed on. The rectangle is given for a 1024x768 display -- the game's &amp;quot;canonical&amp;quot; resolution.&lt;br /&gt;
&lt;br /&gt;
xanchor and yanchor control the behavior of how this rectangle changes as the resolution changes.&lt;br /&gt;
&lt;br /&gt;
* A rectangle anchored to the left will have its distance from the left side of the screen always remain the same, while changes in the resolution will change its size by the same amount (top for the y axis).&lt;br /&gt;
* A rectangle anchored to the right will have its size always remain the same, as well as its distance to the right side of the screen (bottom for the y axis).&lt;br /&gt;
* A rectangle that is fixed will have its co-ordinates in that axis remain constant&lt;br /&gt;
* A rectangle that is proportional will have its co-ordinates multiplied by the ratio of the resolution being used to the canonical resolution.&lt;br /&gt;
&lt;br /&gt;
== mini_map ==&lt;br /&gt;
determines where the mini map is displayed&lt;br /&gt;
&lt;br /&gt;
== main_map ==&lt;br /&gt;
determines where the main map is displayed&lt;br /&gt;
&lt;br /&gt;
== label ==&lt;br /&gt;
displays a text label on screen.&lt;br /&gt;
* '''prefix''' a string that will be printed before the text in all languages&lt;br /&gt;
* '''text''' a text string id to be displayed&lt;br /&gt;
* '''postfix''' a string that will be printed after the text in all languages&lt;br /&gt;
* '''icon''' an image that will be displayed instead of the text if it is available&lt;br /&gt;
* '''font_size''' the size of the font to use for the label&lt;br /&gt;
&lt;br /&gt;
== panel ==&lt;br /&gt;
displays an image as a panel on-screen.&lt;br /&gt;
* '''image''' the image used for the panel&lt;br /&gt;
&lt;br /&gt;
== menu ==&lt;br /&gt;
displays a button which, when pressed will reveal a menu or do a an action.&lt;br /&gt;
* '''title''' the id of the string to write on the button&lt;br /&gt;
* '''title_literal''' a string that will be displayed &amp;quot;as is&amp;quot; in all language after the title&lt;br /&gt;
* '''image''' the image to use if available&lt;br /&gt;
* '''is_context_menu''' if set to true this menu will not be placed, but displayed on a right click&lt;br /&gt;
* '''items''' comma separated list of actions to put in the menu. if there is only one action, it will be executed immediately and no menu will be displayed&lt;br /&gt;
&lt;br /&gt;
the possible buttons are:&lt;br /&gt;
* __cycle__ move to next movable unit&lt;br /&gt;
* __endunitturn__ consume this unit's move and cycle to the next one&lt;br /&gt;
* __leader__ senter on the leader&lt;br /&gt;
* __undo__ undo last action&lt;br /&gt;
* __redo__ redo undone action&lt;br /&gt;
* __zoomin__ zoom the map in&lt;br /&gt;
* __zoomout__ zoom the map out&lt;br /&gt;
* __zoomdefault__ return to default zoom&lt;br /&gt;
* __fullscreen__ switch fulscreen mode&lt;br /&gt;
* __accelerated__ switch turbo mode&lt;br /&gt;
* __resistance__ show resistance table of current unit&lt;br /&gt;
* __terraintable__ show terrain table of current unit&lt;br /&gt;
* __describeunit__ show unit description&lt;br /&gt;
* __renameunit__ change unit name&lt;br /&gt;
* __save__ save the game&lt;br /&gt;
* __recruit__ recruit a unit&lt;br /&gt;
* __repeatrecruit__ repeat last recruitement&lt;br /&gt;
* __recall__ recall a unit from previous scenarion&lt;br /&gt;
* __endturn__ end current turn&lt;br /&gt;
* __togglegrid__ toggle grid display&lt;br /&gt;
* __statustable__ show status table&lt;br /&gt;
* __mute__ mute all sounds&lt;br /&gt;
* __speak__ send message to other players&lt;br /&gt;
* __createunit__ ''debug'' create a unit on the map&lt;br /&gt;
* __preferences__ open preference dialog&lt;br /&gt;
* __objectives__ show objective window&lt;br /&gt;
* __unitlist__ list units&lt;br /&gt;
* __statistics__ show game statistics&lt;br /&gt;
* __quit__ quit the game&lt;br /&gt;
* __labelterrain__ label current location&lt;br /&gt;
* __showenemymoves__ show grids reachable by the enemy&lt;br /&gt;
* __bestenemymoves__ show grids reachable by the enemy with no zone of control&lt;br /&gt;
* __editnewmap__ ''editor only'' start a new map&lt;br /&gt;
* __editloadmap__ ''editor only'' loads an existing map&lt;br /&gt;
* __editsavemap__ ''editor only'' saves the current map&lt;br /&gt;
* __editsaveas__ ''editor only'' saves the current map, let you choose a filename&lt;br /&gt;
* __editsetstartpos__ ''editor only'' set a starting position for a team&lt;br /&gt;
* __editfloodfill__ ''editor only'' flood the map with a terrain&lt;br /&gt;
* __toggleshroud__ toggle the &amp;quot;moving removes shroud&amp;quot; behaviour&lt;br /&gt;
* __updateshroud__ removes all possible shroud&lt;br /&gt;
&lt;br /&gt;
== status ==&lt;br /&gt;
this tag contains many other tags, which determine where other game statistics, such as the current turn, and a description of selected units go. For instance, the time_of_day tag will determine where the time of day image goes. each subtag can contain the following attributes&lt;br /&gt;
* '''font_size''' the size of font to use for the status&lt;br /&gt;
* '''rect''' the rectangle as for the main_map attribute&lt;br /&gt;
* '''xanchor''' the x-wise anchoring as for the main_map attribute&lt;br /&gt;
* '''yanchor''' the y-wise anchoring as for the main_map attribute&lt;br /&gt;
* '''prefix''' the string to display before the actual status, this is the string id for internationalisation&lt;br /&gt;
* '''prefix_literal''' a string to put after the prefix, but before the label for all languages.&lt;br /&gt;
* '''postfix_literal''' a string to put after the status&lt;br /&gt;
* '''postfix''' the string to display after the postfix_literal, this is the string id for internationalisation&lt;br /&gt;
&lt;br /&gt;
the following stati are recognised:&lt;br /&gt;
* __unit_description__ the description of the current unit&lt;br /&gt;
* __unit_type__ the type of the current unit&lt;br /&gt;
* __unit_level__ the level of the current unit&lt;br /&gt;
* __unit_traits__ the traits of the current unit&lt;br /&gt;
* __unit_status__ the status of the current unit&lt;br /&gt;
* __unit_alignment__ the alignment of the current unit&lt;br /&gt;
* __unit_abilities__ the abilities of the current unit&lt;br /&gt;
* __unit_hp__ the HP of the current unit&lt;br /&gt;
* __unit_xp__ the XP of the current unit&lt;br /&gt;
* __unit_moves__ the moves remaining for the current unit&lt;br /&gt;
* __unit_weapons__ the attacks of the current unit&lt;br /&gt;
* __unit_image__ the icon for the current unit&lt;br /&gt;
* __unit_profile__&lt;br /&gt;
* __time_of_day__ the time of day on the current location&lt;br /&gt;
* __turn__ the turn number and turn remaining&lt;br /&gt;
* __gold__ the gold remaining&lt;br /&gt;
* __villages__ the number of villages owned&lt;br /&gt;
* __num_units__ the number of units owned&lt;br /&gt;
* __upkeep__ the money needed to keep your units every turn&lt;br /&gt;
* __expenses__ the money lost each turn when you don't have enough income&lt;br /&gt;
* __income__ the income per turn (can be positive)&lt;br /&gt;
* __terrain__ the text description of the current terrain&lt;br /&gt;
* __position__ the current terrain's position&lt;br /&gt;
* __side_playing__ the current playing side&lt;br /&gt;
* __observers__ the current observers&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[ThemeWML]]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=Races&amp;diff=2474</id>
		<title>Races</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=Races&amp;diff=2474"/>
		<updated>2005-08-30T14:47:40Z</updated>

		<summary type="html">&lt;p&gt;HaJo: /* Drakes */ Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The Six Main Races ==&lt;br /&gt;
&lt;br /&gt;
=== Humans ===&lt;br /&gt;
&lt;br /&gt;
Humans first appeared in Wesnoth from a land far across the ocean to the West, the Green Isle. They do not possess much magic, though they can learn it, and can learn many more types of it than most others. They have no extra special abilities or aptitudes except their versatility and drive. Although often at odds with all races, they can occasionally form alliances with the less aggressive races such as elves and dwarves, and the less scrupulous among them do not shrink back from hiring orcish mercenaries, either. They have no natural enemies, although the majority of humans, like&lt;br /&gt;
most people of all races, have an instinctive dislike of the undead. Men are shorter than the elves, but taller still than dwarves or orcs.&lt;br /&gt;
&lt;br /&gt;
Many different groups of humans exist, but the majority of humans live in the country of Wesnoth. These are protected by the soldiers of the Wesnothian Army, the most organized military force in the known world. Its warriors come from the main provinces, where all men are conscripted at an early age, or from the eastern plains, where the art of horseriding and archery are taught from birth.&lt;br /&gt;
* Units:Bowman&lt;br /&gt;
* Units:Cavalryman&lt;br /&gt;
* Units:Fencer&lt;br /&gt;
* Units:HeavyInfantryman&lt;br /&gt;
* Units:Horseman&lt;br /&gt;
* Units:Mage&lt;br /&gt;
* Units:Spearman&lt;br /&gt;
&lt;br /&gt;
Bands of outlaw humans roam the wild areas of the Great Continent, stealing from unprotected villages. Most would run in fear if faced by a true army, but the more skilled of them would not be afraid to walk right into an opponent's camp, assassinate their leader, and run away.&lt;br /&gt;
* Units:Footpad&lt;br /&gt;
* Units:Poacher&lt;br /&gt;
* Units:Thief&lt;br /&gt;
* Units:Bandit&lt;br /&gt;
* Units:GryphonRider&lt;br /&gt;
&lt;br /&gt;
Although the art of necromancy is outlawed in Wesnoth, some mages choose to practice it, starting them on the road to Lichdom.&lt;br /&gt;
* Units:DarkAdept&lt;br /&gt;
&lt;br /&gt;
=== Elves ===&lt;br /&gt;
&lt;br /&gt;
Elves are the elder race. They are skilled with the bow and arrow - almost all of them carry one - and are also good with the sword. They do not use many weapons but these, although they are in command of powerful magic, and do use it when needed. Physically, Elves are quite tall, and seem even taller due to their slimness. They are peaceful beings, but will fight against any who enter their homeland unasked. They live mostly in the forests of the Southwest, although some choose to live in the harsh Northlands.&lt;br /&gt;
* Units:ElvishArcher&lt;br /&gt;
* Units:ElvishFighter&lt;br /&gt;
* Units:ElvishScout&lt;br /&gt;
* Units:ElvishShaman&lt;br /&gt;
&lt;br /&gt;
=== Orcs ===&lt;br /&gt;
&lt;br /&gt;
Orcs are a race of fierce, brown-skinned human-like creatures found across the wild places of the world. They came from across the sea, following the humans of the Green Isle. They are violent, quick-tempered, and belligerent, and hold an ancient hatred for the race of elves. Although orcs are disorganized and prone to infighting, warbands under a strong leader can cut bloody inroads into the boundaries where civilization meets wilderness. Most live in the Northland, away from the settled land of Wesnoth, whose people they are more often than not at war with. They are a greedy race, and&lt;br /&gt;
often can be found fighting under the banner of a lich-lord or human, hoping to gain riches from those they defeat.&lt;br /&gt;
* Units:OrcishArcher&lt;br /&gt;
* Units:OrcishAssassin&lt;br /&gt;
* Units:OrcishGrunt&lt;br /&gt;
&lt;br /&gt;
Goblins are a different breed than the orcs, smaller and weaker, but quicker. However, since they are the same species, they are considered by most the same race.&lt;br /&gt;
* Units:WolfRider&lt;br /&gt;
* Units:GoblinSpearman&lt;br /&gt;
&lt;br /&gt;
=== Dwarves ===&lt;br /&gt;
&lt;br /&gt;
Dwarves were living on the Great Continent before Haldric arrived, but they were also immigrants, like him, coming from the East across the mountains. Dwarves are the height of human children, but are stronger than even fully grown men. &lt;br /&gt;
They are a solitary folk, cautious and slow to anger, but once their anger is roused they are terrible fighters.&lt;br /&gt;
Wielding many weapons with equal skill, dwarves are effective against many different races. They see in pitch darkness due to their constant work underground, and their heavy armor protects them against almost any physical attack, although magic can harm them effectively. The most skilled smiths of any in the realm, they are often hired by foreign kings to craft magical items, and the weapons and jewelry they make have been the cause of numerous wars.&lt;br /&gt;
* Units:DwarvishFighter&lt;br /&gt;
* Units:DwarvishGuardsman&lt;br /&gt;
* Units:DwarvishThunderer&lt;br /&gt;
* Units:DwarvishUlfserker&lt;br /&gt;
&lt;br /&gt;
=== Undead ===&lt;br /&gt;
&lt;br /&gt;
As their race's name means, these are lost souls caught between this realm and next. Themselves deprived of life, they wish to likewise deprive all others of it. They are created by Necromancers, practitioners of dark magic, and are controlled by them when raised. After the necromancer controlling them dies, they remain in this world, and continue fighting for a purpose noone, perhaps not even themselves, know. Most of them are strong against physical attacks, but are weak against fire and holy assaults. Since they do not require bodily warmth to survive, cold is very ineffectual&lt;br /&gt;
against them.&lt;br /&gt;
* Units:Ghost&lt;br /&gt;
* Units:Ghoul&lt;br /&gt;
* Units:Skeleton&lt;br /&gt;
* Units:SkeletonArcher&lt;br /&gt;
* Units:VampireBat&lt;br /&gt;
* Units:WalkingCorpse&lt;br /&gt;
&lt;br /&gt;
=== Drakes ===&lt;br /&gt;
&lt;br /&gt;
Drakes are the sons of dragons, almost the last legacy of those mighty beasts.  &lt;br /&gt;
Most of the race can fly and spit fire.&lt;br /&gt;
When the fire in their body is extinguished so is their life. &lt;br /&gt;
Because of this they are weak against cold, but they are good against most other attacks. &lt;br /&gt;
However, due to their soft underbellies, &amp;quot;sharp, pointy weapons&amp;quot; have always been their weakness, a characteristic most consider very dragonlike. They are heavy and move slowly, but once they reach their enemy they are devastating.&lt;br /&gt;
Their homeland was an island named Morogor, located between Wesnoth and the Green Isle, but it slowly sank into the sea, and now many of them are nomads, flying over the sea looking for a place to settle undisturbed.&lt;br /&gt;
* Units:DrakeBurner&lt;br /&gt;
* Units:DrakeClasher&lt;br /&gt;
* Units:DrakeFighter&lt;br /&gt;
* Units:DrakeGlider&lt;br /&gt;
&lt;br /&gt;
== Other Races ==&lt;br /&gt;
&lt;br /&gt;
There are other races than these six main ones. They often align with the larger races, but these alliances are usually not permanent.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Lizards ===&lt;br /&gt;
These are the smaller, more crafty allies of the Drakes. They often live in swamps or other damp places.&lt;br /&gt;
* Units:SaurianSkirmisher&lt;br /&gt;
* Units:SaurianTribalist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Merfolk ===&lt;br /&gt;
The Merfolk live in the shallow parts of the ocean, wary of the monsters that lurk in the deep. Ordinarily they form alliances with no one, but in Asheviere's time they allied with the elves in order to defeat their captors. Mermen are powerful and quick in any watery environment, but struggle greatly to move on land.&lt;br /&gt;
&lt;br /&gt;
* Units:MermaidInitiate&lt;br /&gt;
* Units:MermanFighter&lt;br /&gt;
* Units:MermanHunter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nagas ===&lt;br /&gt;
The long time enemies of the Merfolk, and in Asheviere's time allied with orcs to finally defeat their opponents.&lt;br /&gt;
They usually join forces with anyone willing to help them defeat the mermen.&lt;br /&gt;
* Units:NagaFighter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ogres ===&lt;br /&gt;
The Ogres are wild beasts that live in the Northlands, but the Wesnothian army occasionally captures them and trains them for battle. They are extremely brutish and stupid, but possess enough intelligence to wield a weapon.&lt;br /&gt;
* Units:YoungOgre&lt;br /&gt;
&lt;br /&gt;
=== Trolls ===&lt;br /&gt;
The Trolls are slightly more intelligent than Ogres, and ally with the Orcs whenever their shared homeland is in danger. However, most of the time they avoid each other.&lt;br /&gt;
* Units:TrollWhelp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Monsters ===&lt;br /&gt;
&lt;br /&gt;
There are many monsters that roam about the land, not obeying anyone's orders. Occasionally, but not often, those who see them survive to tell the tale, and it is only from them that the people of Wesnoth know of their existence.&lt;br /&gt;
* Units:Cockatrice&lt;br /&gt;
* Units:Cuttlefish&lt;br /&gt;
* Units:FireDragon&lt;br /&gt;
* Units:GiantScorpion&lt;br /&gt;
* Units:GiantSpider&lt;br /&gt;
* Units:Gryphon&lt;br /&gt;
* Units:Mudcrawler&lt;br /&gt;
* Units:SeaSerpent&lt;br /&gt;
* Units:Yeti&lt;/div&gt;</summary>
		<author><name>HaJo</name></author>
		
	</entry>
</feed>