wesnoth-wiki-changes
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Wesnoth-wiki-changes] ConventionsWML


From: wiki
Subject: [Wesnoth-wiki-changes] ConventionsWML
Date: Sat, 4 Sep 2004 18:49 +0200

URI http://wesnoth.slack.it/?ConventionsWML
 - - - - - 
The purpose of this page is to list conventions of WML;
i.e. things that make WML more readable and flexible.
Note that this page is not official;
in fact most mainline campaigns do not follow this.

||Macros||

Using macros is useful for decreasing the size of a file,
and for making it clear
that you are doing the same thing several times.
A good rule for when to use macros
is to use them whenever information is being repeated.
For information on how to create and use macros, see PreprocessorRef.

Also, if you are writing a campaign,
you should use campaign macros.
These are macros in the main .cfg file of your campaign;
i.e. the one with the [campaign] tag.
They can be used in any scenario of your campaign.
One useful campaign macro is a "deaths" macro, which describes events
that should occur in all scenarios of your campaign;
for example an event causing you to lose when your hero dies.
Refer to this macro in each of your scenarios.

Put campaign macros after the #ifdef of your campaign;
that way they will not conflict with other campaign's macros.

||Indentation||

There are two types of indentation:
normal indentation, and savefile indentation.
In normal indentation, a key is indented
on the same level as the tag containing it,
and in savefile indentation a key is indented
1 level outward of that.
In either types of indentation,
a tag is 1 level outward of the tag containing it,
and all top-level tags are not indented.

Examples:

Normal indentation:
 [scenario]
 turns=16
         [side]
         side=1
         [/side]
 [/scenario]

Savefile indenatation:
 [scenario]
         turns=16
         [side]
                 side=1
         [/side]
 [/scenario]

It doesn't matter what indentation format you use,
but if a file is not indented
then it is harder to tell what is going on;
for example it is difficult to catch errors in tag matchups.

||Naming files||

First of all, don't put spaces in filenames;
this causes errors on some systems.
Use underbars(||_||) instead.

If the IDs of your scenarios are different from their names,
name the files after the IDs, not the names.
That way it is easier to tell which scenario is next.

If files are named in a numerical order,
put 0 at the beginning of single-digit numbers.
This makes the alphabetical sorting also a numerical sorting.
For example if you have 20 different maps, you can name them
'MAP_01', 'MAP_02'...., 'MAP_20'.

||WML variables||

(For information about what WML variables are, see VariablesWML)
These shouldn't be used except when necessary.
[have_unit] tags can often be used instead.
Also, make sure that your scenarios
clear meaningless variables using [clear_variable].

For variable values, use 'yes' and 'no' for boolean values
rather than 1 and 0.
It's clearer to people who don't know programming.

||See Also||
* ReferenceWML
* HomePage





reply via email to

[Prev in Thread] Current Thread [Next in Thread]