Compare commits

..

876 commits
master ... 1.4

Author SHA1 Message Date
Severin Glöckner
848eb46867 better freetype check
When specifying a prefix to freetype, the check was always passing.
This removes the check, allowing to compile without specifing the option.

Adds an alternative check for freetype.
2018-12-27 23:09:40 +01:00
Severin Glöckner
3cc8ddb5a2 use pkg-config instead freetype-config
freetype-config has been removed from freetype earlier this year

This allows compiling with at least gcc 4.3
gcc 4.9 doesn't work, nor does 4.5 (due to different reasons though)
2018-12-23 20:07:55 +01:00
Severin Glöckner
746c060d2d add missing gitignore
kind of pointless nowadays, but at least it keeps the output of git status clean
2018-11-27 02:27:54 +01:00
Ignacio R. Morelle
59d29f7628 website: Delete tree, it's now split to a different repository 2013-10-03 05:35:23 -03:00
Guillaume Melquiond
c096793f08 Avoided usage of forward incompatible test. (Fix for bug #16693.) 2013-09-26 06:17:29 -03:00
Ignacio R. Morelle
0876995096 configure: Don't require game-specific cruft when using --disable-game
campaignd doesn't really need SDL_image, SDL_mixer, Ogg Vorbis or PNG
support, or freetype.
2013-09-26 06:17:29 -03:00
Groggy Dice
dafc9a5597 update changelog with wmllint bugfixes 2013-07-21 20:27:17 -04:00
Groggy Dice
746ac09b95 move upconversion of ancient abilities ahead of lifting [frame] to fix problem of weapon specials appearing after [frame] sequence
After my last change, I noticed a puzzling failure by wmllint to convert a weapon special. This special was among some attributes that followed the [frame] sequence. It seems that Python does not wait for the earlier code block to complete before running the new one, and those lines aren't passed through the new block because they've been deleted and stashed in 'postframe'. When they're spewed back out, the new block has already passed those lines by.

I was relieved to find that this was not an issue introduced by my change, but an existing one. When I ran the original wmllint on the file, I found that the special= line got deleted, without being replaced by the [special] tags and macro. The latter is supposed to appear when wmllint hits the [/attack] tag, but never triggers because [/attack] has been changed to [/attack_anim].

Moving this code block up, so that abilities and specials are transformed before the [frame] lift (and 'postframe' stash), appeared to fix the problem. Hopefully, it won't cause a new on to show up.
2013-07-14 21:22:56 -04:00
Groggy Dice
f52d3341cb fix the lifting of attack [frame]s to [attack_anim]
This code block was actually producing some horrendous output, because key values were not reset to defaults at the closing [/attack] tag, even though many units have more than one attack. Also, the conversion was done when the first [frame] tag was encountered, although most authors put the [sound] block after [frame]s. So, what would typically happen is this:

* The first attack would be converted, usually without a soundpath. If there were any attributes after the [frame] sequence, the result would be non-functional, as the comment introducing this wmllint block warned (and wmllint would crash with an assertion error if "name=" happened to be one of them).

* Subsequent attacks would be converted, inheriting the sound and [attack_filter] from the soundpath and attackname of the *first* attack.

To fix these issues, I did the following:

* In order to do the conversion at a later stage, after the soundpath would normally have been picked up, the variable 'converting' was changed from a 0/1 value to a line index position.

* This enables the opportunity to move post-[frame] lines, for which purpose the new variables in_frame and postframe are created. When encountered, these lines are deleted and appended to postframe.

* When we get to [/attack], we still look to see if we are converting. If so, we go ahead with the replacement of lines[i], before the index position gets changed. Then we carry out the conversion that was originally carried out at the first [frame], using lines[converting] to do it at the same place.

* The lines in postframe are fed back in reverse order before the new closing [/attack] tag.

* Values are cleared to defaults, ready for the next [attack].

* It is no longer true that the frame sequence has to go last in [attack], so that part of the comment can be deleted.
2013-07-14 21:22:32 -04:00
Groggy Dice
7fe4536910 bugfix insertion of attack's description= key
First, the newline is added to "description = " rather than "new_line = ". But description was only changed if it didn't begin with a quotemark, meaning that those that *did* start with a quote weren't getting a newline.

Second, new_line was supposed to inherit indentation through "leader(syntactic)", but the line had already been stripped before "syntactic", in "fields = ".
2013-07-14 21:21:42 -04:00
Groggy Dice
7ac9e55a8d bugfix newline problems in output
I had noticed that the line replacing the get_hit_sound with DEFENSE_ANIM didn't have a newline, but assumed that it was part of 'comment'. Nope!

There are also two lines where a misplaced quotation mark led to an extraneous space being added to the end of a line.
2013-07-14 21:19:32 -04:00
Groggy Dice
441854d2ac enable wmllint to convert more old abilities and specials
I noticed that there were some additional weapon specials (marksman) and abilities (nightstalk, steadfast) that also had macros. I also saw examples of ability= keys that had comma-separated multiple values.
2013-07-14 21:09:03 -04:00
Groggy Dice
4889ca1cca fix typo that prevented firststrike from being upconverted
r -> s and no more "Don't know how to convert 'firststrike'" messages.
2013-07-14 21:06:31 -04:00
Groggy Dice
1fe15fe6e9 animation conversion: add in_variation to list of variables defined at start as False
All of these variables are again defined as False when [unit] is in the line, but in_variation was missing from this earlier list. This caused wmllint to crash with an UnboundLocalError on a page of (UtBS) Kaleh-style macros that had no [unit] tag.
2013-07-14 21:06:14 -04:00
Groggy Dice
02c52deef8 skip further operations if the value is zero-length
This came to my attention because of a Dark Elves scenario with a 'description=' key that was left blank for the value, crashing wmllint with an index error. More broadly, however, the operations in this section are pointless when there is no value.
2013-07-14 21:04:52 -04:00
Groggy Dice
28f4682779 updated changelog: mostly wmllint 2013-07-01 19:48:16 -04:00
Groggy Dice
8674bd3f8a clean up get_hit_sound messages
The first message has a couple of problems. Technically, get_hit_sound is not a tag, and there is a stray quote mark at the end. Also, i+1 points to the line number of the [/unit] tag, which is not particularly helpful information. This can be changed to point to the line of the get_hit_sound attribute.

For the second message, the %d get_hit_sound is an index position, so +1 for the line number.
2013-07-01 19:47:45 -04:00
Groggy Dice
f5d3846748 print second half of "duplicated attack" warning to stderr also
This warning could become confusing if split up by stdout or stderr being redirected.
2013-07-01 17:35:07 -04:00
Groggy Dice
0b7c7033e3 THoT 06: backport fix for "event=time over" to "name="
As long as I have 1.4 checked out, I might as well fix this bug so that any remaining 1.4 players can see the 1337 writing that ESR talks about in his Campaign How-To... lol
2013-07-01 17:34:50 -04:00
Groggy Dice
1653b9f8c3 Correct "AMLA TOUGH" to "AMLA_TOUGH"
Admittedly, only a couple of campaigns have this error, but it keeps {AMLA_TOUGH 3} from being updated to {AMLA_DEFAULT}.
2013-07-01 17:32:46 -04:00
Groggy Dice
fa43e3688b insert rstrip() to fix wmllint-crashing assumption that unit files are using Unix newlines
In Linux, many 1.2 unit files would crash wmllint, with tracebacks pointing to the "assert male/female_end != -1" line. Male/female_end's value is set to -1, and when it does not meet the condition for converting to i (line index position), the assert statement fails. The "assert male_end" error crashes files with gender=male, or no gender= key (thus defaulting to male). The "assert female_end" error is the female counterpart, and also covers units with both genders.

I found that after commenting out these assert statements, wmllint no longer barfed on those files. Studying the problem for this commit, however, I saw that "endswith()" included a newline. Could it simply be choking on DOS carriage returns? Doing a dryrun in Windows, which defaults to universal newlines support, I did not get the crashes. Change to binary mode, the crashes returned. Insert rstrip() and delete the newlines, and the crashes stop!
2013-06-30 22:03:54 -04:00
Groggy Dice
caf6587318 wmllint: update old "portraits/core/" paths to "portraits/"
These portraits were moved prior to 1.1.9. That was before ESR joined Wesnoth development in April 2007, which may explain why wmllint didn't cover this change. Nevertheless, even many 1.2 campaigns still have the old "portraits/core" filepaths.

These old paths also keep post-1.4 wmllint from updating portrait paths to their current location, after they were moved again in 1.5.9.
2013-06-30 22:03:32 -04:00
Elvish_Hunter
12295c9e90 wmllint, wmlscope and wmlindent: fixed bug caused by Windows' command prompt appending double quotes to arguments
This is a backport of Elvish Hunter's 2013-02-23T13:04:12Z fix to 1.11.
2013-06-30 22:02:44 -04:00
Groggy Dice
d51c4b870b backport: removal of files on Windows before --revert and conversion file rename
Windows won't allow a rename to overwrite an existing file (without Error 183, file already exists).
2013-06-30 22:01:09 -04:00
Gunter Labes
230ebdaf44 fixed tarball creation 2009-09-09 11:28:46 +00:00
Gunter Labes
182da61ef2 cache the ignores and friends list 2009-09-09 11:28:36 +00:00
Gunter Labes
e2b087cec7 send lobby diffs separately;...
...fixes bug #13099: MP lobby player list becomes inaccurate over time
2009-03-03 09:38:03 +00:00
Daniel Franke
5e867e21f9 Reword release notes after Rhonda cleared me up about how CVEs work...
...(1.4 branch).
2009-02-24 10:33:54 +00:00
Daniel Franke
dd1d5064e3 Remove Python AI support, addressing CVE-2009-0367 2009-02-24 06:53:37 +00:00
Gunter Labes
98b9afca18 create the fifo group accessible (instead of only user accessible) 2009-02-17 19:26:11 +00:00
Gunter Labes
89fc59cff6 do the random map generation before we send next scenario data out...
...so it's in sync; fixed bug #12896: Map generator does not sync
between clients when advancing in MP campaigns
2009-02-09 13:54:57 +00:00
Benoît Timbert
b3cbc45069 Add some more modes (matching the trunk ones) 2009-02-07 17:24:31 +00:00
Benoît Timbert
5c2fc6d051 Apply patch #1108: Additional screenmodes for when SDL can't guess them 2009-02-07 17:06:46 +00:00
Benoît Timbert
4dd7159b5d Apply patch #1107 : Minimum stack cookie on AmigaOS4 to prevent stack overflow 2009-02-07 16:15:55 +00:00
Gunter Labes
3a10620fea properly consider players that have more than one side
(cherry picked from commit 2009-02-01T11:46:41Z!soliton@wesnoth.org)
2009-02-01 12:42:33 +00:00
Gunter Labes
029a6d1921 refactored code in server.cpp 2009-02-01 12:42:07 +00:00
Gunter Labes
14b5bb32ba send a server message to the client when invalid WML is received 2009-02-01 12:41:58 +00:00
Gunter Labes
1a69da5b57 increase allowed nesting level to what the client allows (1000) 2009-02-01 12:41:47 +00:00
Gunter Labes
6e07c7deac report error messages with simple_wml 2009-02-01 12:41:42 +00:00
Gunter Labes
5209493bc5 made simple WML ordered properly 2009-02-01 12:41:34 +00:00
Benoît Timbert
f07b02eb6e French translation update 2009-01-25 20:46:00 +00:00
Benoît Timbert
509bbec686 French translation update 2009-01-21 19:51:05 +00:00
Gunter Labes
04aa0b8f58 allow kick reasons 2009-01-15 22:01:20 +00:00
Gunter Labes
ac12ab186a don't check observers against observers for the same IP 2009-01-15 22:01:09 +00:00
Lari Nieminen
405499d2f0 Balancing for "Gathering Materials". 2009-01-14 10:30:23 +00:00
Thomas Baumhauer
0060d68021 backporting 2009-01-10T11:37:02Z!thomas.baumhauer@gmail.com (player list scrolling fix) 2009-01-10 11:38:00 +00:00
Thomas Baumhauer
c0850701a3 backporting 2009-01-05T21:48:12Z!thomas.baumhauer@gmail.com per Soliton's request 2009-01-06 10:44:10 +00:00
Gunter Labes
beb357a62f send a lobby update on kicks/bans 2009-01-05 02:39:41 +00:00
Gunter Labes
6866d48897 display the number of games not of game termination types 2009-01-04 17:51:19 +00:00
Nobuhito Okada
fb4a390993 updated Japanese translation (contributions from http://wikiwiki.jp/wesnoth/) 2009-01-04 15:48:09 +00:00
Nils Kneuper
7ca4d0078d updated Italian translation...
...(basically just to have an up to date manual on the website)
2008-12-19 22:01:17 +00:00
Mark de Wever
25c2e6d888 Revert 2008-12-14T14:58:42Z!koraq@xs4all.nl.
Ivanovic reminded me that it causes backwards compatibility issues.
2008-12-14 15:05:18 +00:00
Mark de Wever
86ca71e379 Allow recruiting in large castles.
It's now possible to recruit in castles more than 99 tiles away (bug
#12185).  Backport of 2008-08-20T18:57:50Z!esr@thyrsus.com upon Rhonda's request.
2008-12-14 14:58:42 +00:00
Nils Kneuper
4e414157d0 version bump to 1.4.7 2008-12-12 21:19:25 +00:00
Nils Kneuper
a14704ed90 pot-update (preparing 1.4.7, no strings should have changed) 2008-12-12 21:17:59 +00:00
Ignacio R. Morelle
9547e431b3 Update changelogs and release notes. 2008-12-12 19:05:44 +00:00
Mark de Wever
668d0f8322 Fix some formatting issues. 2008-12-12 07:53:50 +00:00
Ignacio R. Morelle
3ac1546a7d Make start-of-scenario saved games work again...
...(fix a regression from 2008-12-01T19:42:47Z!joerg.hinrichs@alice-dsl.de).

Bonus: they are also properly labelled in load-game now if your
save_index is clean.

I'll soon dcommit my stuff to trunk and fix this problem there amongst
other things, please bear with my lack of stable (own) Internet
connection...
2008-12-12 04:32:01 +00:00
Gunter Labes
36bf54d41c don't save group bans 2008-12-11 17:16:54 +00:00
David Philippi
c45f937bcf danish translation update 2008-12-10 18:08:47 +00:00
Nils Kneuper
cd3e131192 pot-update (no added/changed strings)
regenerated doc files
2008-12-09 21:15:10 +00:00
David Philippi
8c20631388 finnish translation update 2008-12-05 20:47:44 +00:00
Alexander van Gessel
40216bb964 Fixed bats crashing through ice (bug #12685) 2008-12-04 23:56:23 +01:00
Nils Kneuper
5cbd9e5b09 pot-update (no new/changed strings)
updated doc files (no changes at all)
2008-12-03 14:27:36 +00:00
David Philippi
eb04e22ced hungarian translation update 2008-12-02 20:16:54 +00:00
David Philippi
ca4b8ac770 credit update 2008-12-02 20:15:03 +00:00
Jörg Hinrichs
94bfbeee8f This makes campaign replays work again (bug #12005) for release 1.4. 2008-12-01 19:42:47 +00:00
Nils Kneuper
3b86870931 pot update (hopefully no string changes, but who knows...)
regenerated doc files
2008-11-29 11:44:38 +00:00
Gunter Labes
acda73e31a fixed a typo 2008-11-27 22:26:56 +00:00
Tomasz Śniatowski
48259abb36 backport 2008-11-26T06:55:10Z!crazy-ivanovic@gmx.net to 1.4...
...(bugfix for bug #12453 present both in 1.4 and trunk)
2008-11-25 00:56:28 +01:00
Ignacio R. Morelle
ba45177200 Mention Li'sar's idle animation in changelogs 2008-11-24 18:35:15 +00:00
Nils Kneuper
7784bcf877 updated Hungarian translation 2008-11-24 16:47:11 +00:00
Lari Nieminen
5d28dc51ad New idle animation for Li'sar (lvl2). 2008-11-24 14:27:14 +00:00
Richard Kettering
383c690af4 New images for the gryphons. 2008-11-24 09:05:46 +00:00
Alexander van Gessel
d7aaf80f57 Stop wmllint from trying to convert a portrait path. 2008-11-24 02:56:38 +01:00
David Philippi
44c16313ad danish translation update 2008-11-20 20:43:48 +00:00
Richard Kettering
4988927e8c New animation for the dwarven lord's axe attack. 2008-11-20 08:00:26 +00:00
Gunter Labes
4af68d8767 force disconnects after a couple of failed tries...
...when shutting the server down
2008-11-19 14:44:25 +00:00
Mark de Wever
4a2740384e Replace a #elif without condition with #else (debian patch #505957). 2008-11-17 18:35:16 +00:00
Nils Kneuper
82db069707 updated Finnish translation 2008-11-16 14:02:33 +00:00
David Philippi
6fa1bd0687 danish translation update 2008-11-13 00:54:35 +00:00
Gunter Labes
4b57e1d8c5 improved handling of users trying to join a full game that disallows observers 2008-11-11 22:44:20 +00:00
Gunter Labes
8e98cd3edd added missing newline 2008-11-11 22:44:15 +00:00
Nils Kneuper
cb838c4896 updated Finnish translation 2008-11-10 18:48:48 +00:00
Nils Kneuper
ddfcac15cd updated Italian translation 2008-11-08 14:09:32 +00:00
Gunter Labes
c4ee600465 send a server message when a player with the same IP...
...as an existing game member enters
2008-11-03 01:27:00 +00:00
Nils Kneuper
ee68d42529 post release version bump (to 1.4.6+svn) 2008-11-02 21:23:51 +00:00
Nils Kneuper
199c3fcc79 rollback the last wesnoth-optipng commit...
...since it saved only little while drastically increasing the xdelta
size
2008-11-02 20:19:45 +00:00
Nils Kneuper
f673644961 ported the manpages fix in a bad way 2008-11-02 19:52:49 +00:00
Nils Kneuper
63bdc6c69e version bump to 1.4.6 2008-11-02 19:34:06 +00:00
Nils Kneuper
5ffe15c991 po-update (no strings should have been changed)
regenerated doc files
2008-11-02 19:24:51 +00:00
Nils Kneuper
69c46988ee fix wrong tags which stop compiling the manpages 2008-11-02 19:18:40 +00:00
Nils Kneuper
bd4046894c running wesnoth-optipng from trunk:
Overall statistics (only for files with a smaller recompressed size):

  Original size: 23628 KB on 1279 files
  Optimized size: 23101 KB
  Total saving: 527 KB = 2% decrease
2008-11-02 14:13:56 +00:00
Nils Kneuper
19c0e2f80b updated Finnish translation 2008-11-02 13:02:20 +00:00
Richard Kettering
09b07c8ce3 New, TC frames for the naga fighter. 2008-11-02 10:02:39 +00:00
Richard Kettering
da21c52cef New, TC frames for the naga fighter. 2008-11-02 09:16:47 +00:00
Steven Panek
199c3fde98 Fixed parts of the undead flags which were not TC'd
Updated changelog
2008-11-01 17:43:08 +00:00
David Philippi
f3d92df757 hungarian translation update 2008-11-01 13:15:23 +00:00
David Philippi
e48253c780 hungarian translation update 2008-11-01 13:13:27 +00:00
Gunter Labes
afc39b880d always check for a leader when trying to rename one 2008-11-01 11:38:09 +00:00
Nils Kneuper
00e2d8655c updated German translation 2008-10-31 16:14:47 +00:00
Nils Kneuper
3228b59faa updated Galician and German translation 2008-10-31 14:34:47 +00:00
Nils Kneuper
9080c19f59 regenerate doc files (no string changes in sources) 2008-10-31 11:24:23 +00:00
Nils Kneuper
fdff24df4b backport 2008-10-28T10:34:48Z!jorda@ettin.org...
...(Check availability of manpages before installing them) by ettin to 1.4.x
2008-10-31 11:21:27 +00:00
Richard Kettering
5917758296 Added an idle animation by EELuminatus for the orcish assassin. 2008-10-31 07:14:06 +00:00
Richard Kettering
854317a29f Added idle animation to arch-mage. 2008-10-31 05:11:47 +00:00
Richard Kettering
ff89c230ba Added idle animation to deathblade. 2008-10-31 04:20:48 +00:00
Richard Kettering
0862043258 Added idle animation to deathblade. 2008-10-31 04:05:18 +00:00
Nils Kneuper
cdb32f15ec pot-update (should not change strings...) 2008-10-29 18:50:44 +00:00
Nils Kneuper
2cceaf0b5a updated Galician and German translation 2008-10-29 15:24:30 +00:00
Gunter Labes
a323ecdd53 corrected exit code handling 2008-10-28 17:24:45 +00:00
David Philippi
f8af3c190a hungarian translation update 2008-10-23 20:55:10 +00:00
Thomas Baumhauer
400507d27f Fixing chat log bug showing all lobby joins regardless to preferences 2008-10-22 12:32:51 +00:00
Gunter Labes
0ab359ffd6 changed some exit codes so the run script can dtrt 2008-10-22 12:25:19 +00:00
David Philippi
cf5020c87b danish translation update 2008-10-19 16:41:19 +00:00
Gunter Labes
446dbf63bc use cwd to find COPYING.txt 2008-10-17 20:39:08 +00:00
Gunter Labes
980236d7c2 allow out-of-turn unit renaming again 2008-10-17 20:38:49 +00:00
Nils Kneuper
c1cd4c33df pot-update (no strings should be added/changed)
regenerated doc files
2008-10-16 21:50:20 +00:00
Nils Kneuper
1dbb562d01 updated Finnish, German and Slovak translation 2008-10-16 19:42:40 +00:00
Mark de Wever
11de2f6eaa German translation update. 2008-10-14 16:18:38 +00:00
Elias Pschernig
6dd8749ac9 Backported 2008-10-13T20:30:17Z!elias@pschernig.at to 1.4. 2008-10-13 20:32:35 +00:00
Lari Nieminen
eb072aceb1 Updated the fireball miss animation to correspond with the new images. 2008-10-13 16:52:13 +00:00
Nils Kneuper
cba2d310c7 updated German translation 2008-10-13 12:45:51 +00:00
Richard Kettering
d2287a11ba New graphics for failed fireballs. 2008-10-13 06:27:27 +00:00
Elias Pschernig
1f899f654d addon_manager: Backported 2008-10-12T13:05:11Z!elias@pschernig.at to 1.4. 2008-10-12 13:12:07 +00:00
David Philippi
8848d142d9 updated danish manpages 2008-10-11 14:18:54 +00:00
Elias Pschernig
2f3b017d4f addon_manager: Backported sortable columns to 1.4. 2008-10-11 10:57:33 +00:00
Gunter Labes
a90131bbce start the timer before showing the turn dialog 2008-10-10 21:15:42 +00:00
Nils Kneuper
d4337bf544 updated Galician translation 2008-10-10 18:52:47 +00:00
Gunter Labes
c50fafa5d7 added a missing include 2008-10-10 11:26:51 +00:00
Gunter Labes
81325d7856 fix another backporting oversight 2008-10-09 20:04:04 +00:00
Gunter Labes
4d34a2b21b fix a backporting oversight 2008-10-09 19:59:15 +00:00
Gunter Labes
165bfb5921 wesnoth_addon_manager: --tar now takes a directory 2008-10-09 19:52:28 +00:00
Elias Pschernig
b08e46e6a0 Backporting 2008-10-09T19:32:18Z!elias@pschernig.at (addon_manager). 2008-10-09 19:35:06 +00:00
Elias Pschernig
0903427cbf Back-ported wesnoth_addons_manager updates to campaigns_client.py. 2008-10-09 19:25:35 +00:00
Nils Kneuper
b2ca482166 updated German translation 2008-10-08 21:05:59 +00:00
Nils Kneuper
3aac8b8cd9 pot-update (no strings should be changed)
regenerated doc files
2008-10-07 10:54:24 +00:00
Nils Kneuper
d3c3a00432 updated Galician translation 2008-10-06 20:37:34 +00:00
Gunter Labes
d8bb129102 removed an obsolete hotkey 2008-10-06 00:53:59 +00:00
Gunter Labes
89b8bed8ce now save addons under data/ so we don't mix them with config files 2008-10-06 00:53:47 +00:00
Nils Kneuper
7b60ff5ed6 regenerated doc files 2008-10-04 18:44:32 +00:00
Gunter Labes
e48fe86ee6 connect to 1.4 by default 2008-10-04 17:28:12 +00:00
Nils Kneuper
83fd82fadb updated Italian and Turkish translation 2008-10-04 17:15:28 +00:00
Gunter Labes
507e16718e catch some signals and exit properly (to get profiles) 2008-10-03 19:23:04 +00:00
David Philippi
aff327124f hungarian translation update 2008-10-03 11:56:45 +00:00
Gunter Labes
f64062ef7b various server command improvements
* added the banned nick to a ban when available

* made the sample command socket only and have it output the current
  value when no parameter is given

* made the status command report for all nicks with the same IP when
  using a simple nick as parameter (default for ordinary users)

* merged the samples command back into metrics

* actually allowed advertised commands for ordinary users

* removed a couple of extraneous newlines from command output

* fixed an improper name for a local variable
2008-10-03 02:51:33 +00:00
Nils Kneuper
c60c921864 updated Czech translation
regenerated doc files
2008-10-02 22:58:18 +00:00
Richard Kettering
81111787a1 New images for zombie/soulless swimmers. 2008-10-02 01:08:29 +00:00
Nils Kneuper
1afc66fe7b updated Galician translation 2008-10-01 12:47:56 +00:00
Nils Kneuper
0d75d02732 pot-update (no strings should be changed/new)
regenerate documentation files
2008-10-01 09:43:59 +00:00
Nils Kneuper
345550afc7 updated Galician and Polish translation 2008-09-29 17:59:41 +00:00
Gunter Labes
c664c8d215 add the title to --list output and use title rather than name in html output 2008-09-29 15:33:00 +00:00
Gunter Labes
98a59c6240 added a note on how to see the add-on descriptions 2008-09-28 13:24:46 +00:00
Gunter Labes
2841b1d2fd added a note about how to install addons 2008-09-28 13:17:06 +00:00
Gunter Labes
ff856035c0 remove some obsolete links 2008-09-28 10:44:16 +00:00
Nils Kneuper
8388b185be updated Slovak translation 2008-09-28 09:22:09 +00:00
Benoît Timbert
00c8bbe6ad French translation update 2008-09-27 20:58:47 +00:00
Nils Kneuper
8ec8a30f2e updated Finnish translation 2008-09-27 19:37:33 +00:00
Elias Pschernig
4b54a8b042 Backported --html options of addon manager to 1.4. 2008-09-27 15:58:50 +00:00
Nils Kneuper
7bbbdddfbb pot-update 2008-09-24 20:36:29 +00:00
Nils Kneuper
361b8f1f2e updated Galician, Finnish and Czech translation
regenerate doc files
2008-09-24 20:30:07 +00:00
David Philippi
b75cd1e329 valencian translation updates 2008-09-24 11:59:36 +00:00
Thomas Baumhauer
4be1765273 backporting the kicked/banned messages 2008-09-23 18:38:23 +00:00
Lari Nieminen
970aae2eda Backport the proper fix for bug #12341. 2008-09-22 18:06:06 +00:00
Eric S. Raymond
120c646c1f Backport fix for bug #12341. 2008-09-22 17:42:35 +00:00
David Philippi
43c63186c1 hungarian translation update 2008-09-21 19:06:40 +00:00
Nils Kneuper
c98e21818e updated German translation 2008-09-19 19:42:44 +00:00
Richard Kettering
ee8630eaf9 New animation for the steelclad melee attack. 2008-09-18 07:09:09 +00:00
Richard Kettering
f8fff0c213 Updated some dwarven icons, by pekka. 2008-09-18 01:51:32 +00:00
Richard Kettering
85fc736a22 New melee animation for skeleton. 2008-09-17 17:46:17 +00:00
Pauli Nieminen
67ff80767a Fixed network manager destructor not to have memory access problems. 2008-09-17 10:15:10 +00:00
Gunter Labes
4168e62d4f split parts of the metrics command into games, samples and stats commands 2008-09-16 19:03:56 +00:00
Gunter Labes
9427443283 made 'bans' into a proper command 2008-09-16 17:33:10 +00:00
David Philippi
503b9d772a valencian translation update 2008-09-16 14:02:59 +00:00
Ignacio R. Morelle
1ad8c12a69 Backport new Soulless swimmer graphics from trunk...
...and use them as WCs too (added fake n and s attack frames to
avoid... well, breaking compatability)
2008-09-16 02:23:49 +00:00
Ignacio R. Morelle
950cf8defa Backport 2008-09-12T23:55:09Z!shadowm@wesnoth.org from trunk 2008-09-12 23:57:42 +00:00
Nils Kneuper
2a26d66baa updated Finnish and Slovak translation 2008-09-12 20:21:16 +00:00
Lari Nieminen
bb63e44da4 Removed the 1000x620 [partial_resolution],
...since it's not needed for the attacks list anymore.
2008-09-10 14:27:14 +00:00
Lari Nieminen
738c28a479 Fixed bug #12297.
A small cutoff of a handful of pixels might still remain when using
intermediate resolutions.
2008-09-10 13:49:33 +00:00
Gunter Labes
c5f6abb642 make the code a bit more understandable 2008-09-07 19:38:50 +00:00
Gunter Labes
ca04341e82 Clarified some server messages (hopefully..). 2008-09-07 19:38:36 +00:00
Ignacio R. Morelle
7f1e95f9fa Backport 2008-09-07T19:08:59Z!shadowm@wesnoth.org from trunk. 2008-09-07 19:15:10 +00:00
Pauli Nieminen
f54438ce0a Fixed crash when invisibility cache wasn't cleared correctly 2008-09-07 18:06:14 +00:00
Benoît Timbert
073649f7eb Minor credit fix 2008-09-06 16:46:44 +00:00
Richard Kettering
6ddca87ec4 Added death/recruit anim to revenant. 2008-09-06 09:45:48 +00:00
Eric S. Raymond
f1f491814f Backport fix for minor logic error. 2008-09-05 16:58:44 +00:00
Richard Kettering
d30987023c New frames for the wraith, added TC macro to the Spectre and Nightgaunt. 2008-09-05 06:31:27 +00:00
Richard Kettering
ac5eeb0ed5 New frames for the wraith, and unanimated placeholders...
...for the spectre and nightgaunt.
2008-09-05 06:21:59 +00:00
Ignacio R. Morelle
6f2bc32023 Portrait fix from artist
http://www.wesnoth.org/forum/viewforum.php?f=9, optimized
2008-09-04 22:44:37 +00:00
Gunter Labes
fcdaed7aa7 documented the new 'fifo_path' config key
more documentations updates
2008-09-04 18:17:21 +00:00
Gunter Labes
e813240e4b recreate the fifo on config load 2008-09-04 13:21:25 +00:00
Pauli Nieminen
fa2c3aa134 Added automatic detection for packet_type...
...and made bandwidth monitoring always compiled
2008-09-04 09:32:38 +00:00
Gunter Labes
16576d3595 updated command help 2008-09-04 07:26:20 +00:00
Ignacio R. Morelle
2a9e130dca Backporting 2008-09-03T21:34:35Z!shadowm@wesnoth.org (optimized). 2008-09-03 21:42:30 +00:00
Pauli Nieminen
9fd2e4c203 Added start time to bans and made ban_manager store deleted bans...
...in separate list
2008-09-03 02:12:32 +00:00
Pauli Nieminen
8fdeb979ad backported: Fixed metrics compilation and added max procesing times for types 2008-09-03 02:11:39 +00:00
Nils Kneuper
4c7f4f2b83 ancient RELEASE_NOTES cleanup... 2008-09-02 22:54:50 +00:00
Nils Kneuper
252e8223ee post release (1.4.5) version bump 2008-09-02 22:53:52 +00:00
Nils Kneuper
08e353942f remove some unneeded files from the listing 2008-09-02 21:52:27 +00:00
Nils Kneuper
ead3af2bef make sure that all header files are in the tarball (ported over from trunk) 2008-09-02 21:41:40 +00:00
Nils Kneuper
8e6936eccc bump version to 1.4.5 2008-09-02 20:46:22 +00:00
Nils Kneuper
ea23d79284 pot-update and regenerating doc files (preparing for 1.4.5, no string changes) 2008-09-02 20:37:27 +00:00
Ignacio R. Morelle
570fc10239 Update chanelog 2008-09-02 19:16:39 +00:00
Ignacio R. Morelle
a398376ce7 Backported all mage portraits from trunk as requested by Jetryl. 2008-09-02 19:13:18 +00:00
David Philippi
ee75c96640 hungarian translation update 2008-09-02 14:25:12 +00:00
Nils Kneuper
9bea72416d updated Galician translation 2008-09-02 14:14:19 +00:00
Gunter Labes
4b6c5c6196 update the command help for unprivileged users 2008-09-02 10:23:49 +00:00
Gunter Labes
09537668d9 restrict shut_down and restart commands to use via the socket only 2008-09-02 10:00:11 +00:00
Gunter Labes
8b8b3e3c52 give the socket an invalid username to ensure it is unique 2008-09-02 09:49:37 +00:00
Pauli Nieminen
6365ec4411 backported: Fixed linewrapping with not to wrap markups...
...(bug #11946 and bug #11945)
2008-09-02 09:40:29 +00:00
Gunter Labes
c182bda3fe update the command help message 2008-09-02 09:16:17 +00:00
Ignacio R. Morelle
f0bc7fd585 Backported 2008-09-02T04:23:49Z!shadowm@wesnoth.org
Optimized implicit units/ image paths
2008-09-02 04:25:03 +00:00
Pauli Nieminen
acdaa4e9ad Fixed crash bug when overwriting existing ban which was permanent 2008-09-01 20:39:49 +00:00
Pauli Nieminen
edf2ab92dc Backported: Fixed MP saves to transfer correct completion state...
...to remote clients when loadin game (bug #10385)
2008-09-01 20:39:08 +00:00
Pauli Nieminen
ed2d47b6c3 Backported: Fixed loading ai parameters.
MP side defination now overwrites era values (bug #12171)
2008-09-01 17:41:59 +00:00
Pauli Nieminen
e2fbc584c9 Backported: Fixed server configuration reload...
...to trigger ban writing if filename changed
2008-09-01 17:41:51 +00:00
Pauli Nieminen
1a600bc22a Fixed crash when ai moves units next to level 0 hiden unit (bug #12252) 2008-09-01 12:53:23 +00:00
David Philippi
5815377e8e hungarian translation update 2008-08-31 21:15:50 +00:00
Nils Kneuper
a35dd86479 updated Polish translation 2008-08-31 17:05:00 +00:00
Nils Kneuper
87962871aa updated Czech and German translation 2008-08-31 11:59:34 +00:00
Nils Kneuper
321359dad9 running utils/wesnoth-optipng (trunk version)
*** Total saved: 5 KB on 73 files
2008-08-31 10:55:59 +00:00
Nils Kneuper
2b2cf70342 pot-update (no string changes)
regenerate documentation files
2008-08-31 09:47:38 +00:00
Pauli Nieminen
6bac46e285 Backported: Fixed OoS bug when giving control and having move in undo stack. 2008-08-30 16:04:46 +00:00
Richard Kettering
d4c88b577f Remade animations for the saurian oracle. 2008-08-30 07:57:31 +00:00
David Philippi
23eab78c96 hungarian translation update 2008-08-29 15:52:51 +00:00
Pauli Nieminen
743b41b145 Fixed compilarion: Added missing wesnothd namespace for server/game.c/hpp 2008-08-29 11:04:57 +00:00
Nils Kneuper
bdac100552 updated Chinese (Traditional) translation 2008-08-29 10:32:54 +00:00
Richard Kettering
a045b273cc Remade animations for the saurian soothsayer. 2008-08-29 07:10:23 +00:00
Pauli Nieminen
2beec3a977 Optimized server ban manager using integer ip for wildcard matching
Added who_banned and group fields to ban

Made reason required for banning
2008-08-28 15:36:13 +00:00
Nils Kneuper
189a1821d7 updated Chinese (Traditional) translation 2008-08-28 09:46:44 +00:00
Richard Kettering
76fc5ec459 Remade animations for the saurian augur. 2008-08-28 01:58:01 +00:00
David Philippi
53049b2e0c updated hungarian translations and manual screenshots 2008-08-27 15:18:22 +00:00
Benoît Timbert
569e67068b French translation update 2008-08-25 20:57:41 +00:00
Nils Kneuper
eb7b913141 pot-update (2 new strings in thot) 2008-08-25 13:57:27 +00:00
Nils Kneuper
6d937c5aa2 comment out death animation for troll whelp...
...since it is still based on the old base image
2008-08-25 08:12:45 +00:00
Richard Kettering
704d08807d Replaced the shadow's face with something more iconic. 2008-08-25 05:03:15 +00:00
Pauli Nieminen
2ebdce72b9 Added ban files too 2008-08-24 22:30:58 +00:00
Pauli Nieminen
fd7b6be3fe Backported timed ban system to 1.4 2008-08-24 22:30:12 +00:00
Eric S. Raymond
a0c68f1450 Backport some THot fixes. 2008-08-23 20:28:39 +00:00
Lari Nieminen
2e3d0e4dc0 Unit id typo fixes. 2008-08-21 20:20:44 +00:00
Pauli Nieminen
d9f3dfe94a Changed side_drop handling not to automaticaly assign AI for side...
...if leader is dead (bug #12186)
2008-08-20 20:31:15 +00:00
Lari Nieminen
260fb57307 Fixed a recruit list typo. 2008-08-18 14:34:55 +00:00
Lari Nieminen
1aeeade697 Updated changelogs. 2008-08-18 12:48:14 +00:00
Nils Kneuper
cb7efd4011 updated Lithuanian translation 2008-08-17 11:52:59 +00:00
Nils Kneuper
97db358924 pot-update (no strings should be changed) 2008-08-14 18:13:50 +00:00
David Philippi
9d77bb8551 spanish translation update 2008-08-14 16:23:33 +00:00
David Philippi
0793a64323 danish translation update 2008-08-13 17:45:51 +00:00
Nils Kneuper
cf66ffc73d made the default location of the add-on server add-ons.wesnoth.org...
...instead of campaigns.wesnoth.org it will point to the same machine,
just make it clear that there is more than only campaigns on the
machine
2008-08-13 14:57:04 +00:00
Nils Kneuper
9cff0de267 make sure that some "values still at initial values"...
...do not appear anymore (already done for trunk some time ago)
2008-08-13 13:27:25 +00:00
Nils Kneuper
26be201c8a regenerate Documentation files
fix error in Chinese (Traditional) manpages
2008-08-13 12:26:51 +00:00
Pauli Nieminen
987bfb1b49 Fixed variable not to use reference when copy is required 2008-08-13 11:56:37 +00:00
Nils Kneuper
1f3ec76e0e updated Chinese (Traditional) translation 2008-08-13 11:44:12 +00:00
Nils Kneuper
c1cf44ecfd updated Russian translation 2008-08-12 12:32:28 +00:00
Lari Nieminen
d34a61d16f Made it impossible to win the scenario by defeating both enemy leaders. 2008-08-10 16:04:04 +00:00
Nils Kneuper
c4e8ac32e6 updated Chinese (Traditional) translation 2008-08-10 14:07:35 +00:00
Nils Kneuper
db0f38c27d updated Chinese (Traditional) translation 2008-08-10 09:59:50 +00:00
Lari Nieminen
ab56d1cb94 Fixed a stupid coordinate bug. 2008-08-09 20:53:29 +00:00
Nils Kneuper
c3ef7fcb83 updated Chinese (Traditional) translation 2008-08-07 15:12:32 +00:00
Richard Kettering
7cb5532848 Added mistakenly omitted dragonstick SFX. 2008-08-07 05:03:21 +00:00
Pauli Nieminen
c3360d5e6a added missing bytes to kilobytes conversion 2008-08-06 16:46:45 +00:00
Pauli Nieminen
7cf6e83461 Fixed log output to include kb extension to size 2008-08-06 15:54:02 +00:00
Pauli Nieminen
1a6f3c3aa6 Fixed compilation warning about unitialized variable 2008-08-06 15:44:21 +00:00
Pauli Nieminen
49526da064 Backported campaignd send size statistics to 1.4 2008-08-06 15:28:35 +00:00
David Philippi
bf3757bf4d danish translation update 2008-08-05 22:11:10 +00:00
Richard Kettering
57a035280e cleanup of book items. 2008-08-04 07:34:24 +00:00
Nils Kneuper
7896b0a7ee ran wesnoth-optipng (script from trunk)
*** Total saved: 5 KB on 5 files
2008-08-03 10:50:55 +00:00
Nils Kneuper
3beb49ff30 pot-update 2008-08-03 09:01:43 +00:00
Nils Kneuper
2ab8c682cd updated Italian translation 2008-08-03 08:54:29 +00:00
Richard Kettering
5b48aebd33 Fixup of several item graphics. 2008-08-02 04:37:09 +00:00
David Philippi
f05dcd7322 font update 2008-07-28 00:35:01 +00:00
Tomasz Śniatowski
1f8f9671d2 backport 2008-07-25T22:16:59Z!kailoran@gmail.com to 1.4 (allow debug-level logging in wesnoth_editor) 2008-07-26 13:29:48 +01:00
Nils Kneuper
17b3d72feb post release version bump to 1.4.4+svn 2008-07-23 12:25:39 +00:00
Nils Kneuper
d0324cd608 updated Chinese (Traditional) translation 2008-07-23 12:24:40 +00:00
Nils Kneuper
1f4ae99a84 version bump to 1.4.4 2008-07-22 19:44:11 +00:00
Nils Kneuper
23eda986e5 last pot update (reference update) before releasing 2008-07-22 19:41:18 +00:00
Nils Kneuper
f34dbf7e08 updated Finnish, Galician and German translation 2008-07-22 19:36:16 +00:00
Nils Kneuper
0046ef789f updated Slovak translation (part2) 2008-07-22 10:21:42 +00:00
Nils Kneuper
9a606ef052 updated Slovak translation (more to come...) 2008-07-22 10:19:47 +00:00
Nils Kneuper
a2bb57d1a0 updated German translation 2008-07-22 10:19:07 +00:00
David Philippi
9e9498c52a japanese translation update 2008-07-21 18:57:48 +00:00
Nils Kneuper
af2fd33741 updated Polish translation 2008-07-21 14:45:36 +00:00
Nils Kneuper
1f7b5ad81a updated Latvian translation 2008-07-20 21:48:24 +00:00
Mark de Wever
3d57a72ace German translation update. 2008-07-20 17:19:19 +00:00
Nils Kneuper
dba7c22395 pot-update (no stringchanges, just reference updates)
probably the last "real" update before 1.4.4
2008-07-19 14:28:15 +00:00
David Philippi
a005dd1b3d hungarian translation update 2008-07-19 08:00:45 +00:00
David Philippi
952e4d895b danish translation update 2008-07-18 22:39:16 +00:00
Nils Kneuper
04c8bb08a2 updated Slovak translation 2008-07-18 20:50:43 +00:00
Ignacio R. Morelle
43c69d6711 Update Kitty's Elvish Fighter portrait (backport from trunk) 2008-07-18 20:29:50 +00:00
Nils Kneuper
0af1fd5c3e updated Finnish and Slovak translation 2008-07-16 08:07:58 +00:00
Jordà Polo
c00e822051 Add Marc Orcau to the credits as Catalan translator. 2008-07-13 17:15:02 +00:00
Jordà Polo
f173df078b Updated Catalan translation thanks to Marc Orcau. 2008-07-13 17:12:36 +00:00
Nils Kneuper
6b77c337d4 updated Finnish translation 2008-07-13 16:38:14 +00:00
Nils Kneuper
73eca4dd34 regenerated docs for 1.4 2008-07-13 16:27:37 +00:00
Nils Kneuper
75aee336b0 updated Lithuanian translation 2008-07-13 16:13:58 +00:00
Mark de Wever
c1297f99aa Added check whether sendfile is in glibc (debian patch #490638).
(The code in trunk already has this fix.)
2008-07-13 09:55:43 +00:00
Nils Kneuper
2fc693d1a3 updated Chinese (Traditional) translation 2008-07-12 11:40:11 +00:00
Nils Kneuper
51d5306f45 updated Slovak translation 2008-07-11 10:37:37 +00:00
Nils Kneuper
12b7c1a7a7 updated German translation 2008-07-11 10:36:16 +00:00
Nils Kneuper
6997b59efe reorder as requested by translation maintainer 2008-07-09 18:33:27 +00:00
Nils Kneuper
ad0fef7054 updated Chinese (traditional) translation 2008-07-09 18:31:57 +00:00
Nils Kneuper
4aa552622b updated Credits for Galician translation 2008-07-08 20:49:25 +00:00
Nils Kneuper
da94cdfd4c updated Chinese (traditional) translation 2008-07-08 12:39:43 +00:00
Nils Kneuper
c0bda5f174 updated Chinese (traditional) translation 2008-07-08 08:18:27 +00:00
Nils Kneuper
aae58de7b7 updated Chinese (traditional) translation 2008-07-08 05:53:55 +00:00
Gunter Labes
666e457209 used the serverN.wesnoth.org addresses for the alternate servers
removed the alternate debian server
2008-07-07 06:47:30 +00:00
Nils Kneuper
e744f4ea3f updated Russian translation 2008-07-06 22:35:17 +00:00
Nils Kneuper
f2bfad04b1 updated Chinese (Traditional) translation 2008-07-06 15:40:46 +00:00
Nils Kneuper
92a86a9bf6 updated Italian translation
regenerated doc files
2008-07-06 15:31:05 +00:00
David Philippi
4af25f59b9 danish translation update 2008-07-06 14:58:05 +00:00
Benoît Timbert
ba4de2263a Move Kitty to the main artist section.
Updated the comment (matching the trunk one)
2008-07-05 12:24:10 +00:00
Ignacio R. Morelle
a521915170 Updated wiki link since the old one was broken 2008-07-04 23:12:43 +00:00
Ignacio R. Morelle
f10b25c46b Enable Syntax_Error's additional dwarven village variations 2008-07-04 22:36:22 +00:00
Ignacio R. Morelle
dca4c53395 Add new dwarven village graphics by Syntax_Error (not yet used) 2008-07-04 22:31:41 +00:00
Nils Kneuper
01865fdd2a updated Latvian translation 2008-07-04 09:54:25 +00:00
Nils Kneuper
215ada8748 updated German and Czech translation 2008-07-03 21:57:12 +00:00
Benoît Timbert
79fbfab6d0 French translation update (catched thanks to trunk fuzzies :)) 2008-07-03 20:51:21 +00:00
Benoît Timbert
7f07e71108 French translation update 2008-07-03 20:41:36 +00:00
Nils Kneuper
469dd1f510 missing file from pot-update (should not change strings...) 2008-07-03 20:34:47 +00:00
Nils Kneuper
75194c9da3 pot-update (adding strings for translations in the credits, 5 new strings) 2008-07-03 20:22:49 +00:00
Nils Kneuper
de45a4506d make sure that all translation strings,
...even for those not really started but with existing po files,
appear in the credits (and more important: the po files for the
credits)
2008-07-03 20:21:10 +00:00
Pauli Nieminen
745971a849 Fixed Makefile.am so makefile can be generated 2008-07-03 20:17:50 +00:00
Nils Kneuper
d676208eb7 updated Latvian translation
updated Credits and added placeholders for so far missing translations
2008-07-03 18:57:15 +00:00
Nils Kneuper
62aacdce77 updated Latvian translation name 2008-07-03 06:12:13 +00:00
Nils Kneuper
f60ed5ab8c argh, copy&paste is a bad approach when not editing things afterwards
now the latvian translation is selectable when having the locale lv_LV
2008-07-03 05:47:14 +00:00
Ignacio R. Morelle
82c5d550b5 Updated female Elvish Archer portrait as per artist's request 2008-07-03 00:47:25 +00:00
Nils Kneuper
791e0d33e7 changelog update for new translation 2008-07-02 19:02:39 +00:00
Nils Kneuper
c6c304c8d0 added Latvian translation 2008-07-02 18:54:30 +00:00
Nils Kneuper
ab7d7d0b3c updated Arabic translation 2008-07-01 19:05:16 +00:00
Pauli Nieminen
4942a17f51 Fixed Makefile.am to give special CXXFLAGS for wesnothd correctly 2008-06-30 20:48:39 +00:00
Richard Kettering
c98fae081a New sounds for dwarven thundersticks and dragonsticks. 2008-06-30 03:05:55 +00:00
Richard Kettering
9ab7fa12ce Added muzzle-flash images for dwarven thunderer line. 2008-06-30 03:01:56 +00:00
Richard Kettering
8bc4926773 Added muzzle-flash images for dwarven thunderer line. 2008-06-30 02:13:04 +00:00
Nils Kneuper
4c82170add pot-update (reference update only...) 2008-06-29 10:26:43 +00:00
Nils Kneuper
ca7755cd10 regenerate doc files 2008-06-28 14:08:58 +00:00
Pauli Nieminen
9b942c5de1 Added banwidth statistics configure switch 2008-06-27 22:46:37 +00:00
Pauli Nieminen
9804410bdd improved bandwidth statistics categories 2008-06-27 21:30:26 +00:00
Pauli Nieminen
ac9aff4f39 Made server automaticaly output bandwidth profiling stats to log 2008-06-27 19:58:18 +00:00
Pauli Nieminen
6b6c963ae0 backported 2008-06-27T16:33:52Z!paniemin@cc.hut.fi to stable:
...fixes timer sound not to play in opponents turn
2008-06-27 16:44:25 +00:00
Nils Kneuper
cd16837e40 updated Serbian translation 2008-06-27 13:11:05 +00:00
David Philippi
ac438037cf danish translation update 2008-06-25 12:31:55 +00:00
Pauli Nieminen
984ae41105 backported 2008-06-25T11:28:04Z!paniemin@cc.hut.fi to stable (bug: 11207) 2008-06-25 11:44:08 +00:00
Nils Kneuper
17e7c131bf updated Greek translation 2008-06-23 21:03:21 +00:00
Pauli Nieminen
368b4718dc Fixed campaignd not exiting after fatal network error 2008-06-23 16:31:36 +00:00
Nils Kneuper
e8fa8080c1 updated Lithuanian translation 2008-06-22 13:25:18 +00:00
Nils Kneuper
a261b49409 updated Finnish translation 2008-06-22 10:07:01 +00:00
Pauli Nieminen
cd49b14af2 Added network bandwidth usage statistics collection code for server 2008-06-21 17:27:21 +00:00
Nils Kneuper
4aa84be8ec updated German translation (patches by Crommi and patch #1069) 2008-06-21 14:15:15 +00:00
Nils Kneuper
e7a1626afc updated Finnish translation 2008-06-21 07:57:43 +00:00
Eric S. Raymond
6452366e47 Backport fix for Debian bug #483893. 2008-06-20 19:58:18 +00:00
Nils Kneuper
2f96f7fd89 post release (1.4.3) version bump, yes I know that I am late... 2008-06-20 19:38:04 +00:00
Nils Kneuper
bea23aab71 another fix needed for the move from gl_ES to gl 2008-06-20 11:06:58 +00:00
Nils Kneuper
a7954e5cf0 pot-update (no stringchanges) 2008-06-20 10:56:53 +00:00
Nils Kneuper
0ddc207416 changelog update for the move from gl_ES to gl 2008-06-20 10:45:55 +00:00
Nils Kneuper
27e9b676d2 move gl_ES to gl as requested by translation maintainer 2008-06-20 10:40:26 +00:00
Richard Kettering
7a272b7086 New Kalenz portrait from kitty. 2008-06-18 04:37:20 +00:00
Piotr Cychowski
e22f46bab3 backport of #27269 2008-06-17 20:54:28 +00:00
Ali El Gariani
3e2e2887c1 Backport the fix for bug #11630
(preventing redo and rename during opponent's turn)
2008-06-17 14:35:07 +00:00
Richard Kettering
f23c94c671 New melee animation for the death knight. 2008-06-17 06:58:22 +00:00
Jérémy Rosen
cac47f3e83 disable standing animations when unit is incapacitated 2008-06-15 09:46:11 +00:00
Nils Kneuper
89164599b1 running utils/wesnoth-optipng
*** Total saved: 0 KB on 1 files
2008-06-13 12:47:15 +00:00
Pauli Nieminen
3d6b840f3a strip windows line ends from cfg files when publishing addons 2008-06-12 11:42:41 +00:00
Pauli Nieminen
004bff3eb9 Removed extra changes in previous commit 2008-06-11 08:16:47 +00:00
Pauli Nieminen
004687e060 Made campaignd to tell if connection is using gzipp 2008-06-11 08:14:42 +00:00
Pauli Nieminen
783c166b75 Fixed variable to right scope 2008-06-10 11:44:30 +00:00
Pauli Nieminen
e51f4e8bc1 Made send_file to check error code 2008-06-10 11:38:12 +00:00
Lari Nieminen
2d82024cbc Fixed a bug which caused Alanin to disappear...
...if you first took him to the castle and then defeated the enemy leader.
2008-06-09 09:43:56 +00:00
Pauli Nieminen
24275c7ec8 Fixed timeouts in networking code 2008-06-09 07:29:46 +00:00
Lari Nieminen
864668c9da New lighthouse by Syntax Error. 2008-06-08 19:32:24 +00:00
Nils Kneuper
7e3098a2f3 version bump to 1.4.3 2008-06-08 13:02:12 +00:00
Nils Kneuper
285ab943a4 pre release pot-update (no string changes) 2008-06-08 13:01:22 +00:00
Nils Kneuper
f442475d44 updated Czech translation 2008-06-07 23:09:51 +00:00
Benoît Timbert
05da05a319 French translation update 2008-06-07 21:37:45 +00:00
Nils Kneuper
c823025e63 updated Polish translation, regenerated docs 2008-06-07 20:19:45 +00:00
Benoît Timbert
ea0f24bb66 French translation update 2008-06-07 19:52:22 +00:00
Nils Kneuper
9b94d030af updated Finnish translation 2008-06-07 19:11:59 +00:00
Nils Kneuper
c0eae74405 updated Estonian translation 2008-06-07 18:23:45 +00:00
David Philippi
0a88f08bbf changelog update 2008-06-07 11:53:44 +00:00
David Philippi
d6fc1ab08d hungarian translation update 2008-06-07 11:52:17 +00:00
Nils Kneuper
9c0aec08b0 updated Russian translation 2008-06-06 22:20:39 +00:00
Nils Kneuper
2a88fc6d70 updated Finnish and Estonian translation 2008-06-06 19:40:42 +00:00
David Philippi
efac40e13c hungarian translation update 2008-06-06 19:36:05 +00:00
David Philippi
627251b87b spanish translation update 2008-06-06 19:33:02 +00:00
Mark de Wever
316f224417 German translation update. 2008-06-06 09:33:05 +00:00
Nils Kneuper
f1efa6a102 updated Estonian translation 2008-06-05 21:05:43 +00:00
Pauli Nieminen
999b5451ba Added detection if sendfile is in system 2008-06-05 20:14:48 +00:00
Pauli Nieminen
1dddfba779 merged send_file from trunk 2008-06-05 13:33:40 +00:00
Nils Kneuper
ce6239df48 correct order of items in manual and update doc files...
...(no string changes in translations)
2008-06-04 19:47:08 +00:00
Nils Kneuper
8382d1675b updated Dutch translation 2008-06-04 19:45:04 +00:00
Nils Kneuper
7c8e004832 updated German translation
added update (English) screenshots for the manual
2008-06-04 08:16:38 +00:00
Benoît Timbert
34c61385bd French translation update 2008-06-03 16:43:49 +00:00
David Philippi
3ced2e4e68 danish translation update 2008-06-02 22:42:40 +00:00
Nils Kneuper
66f9a61017 updated Czech translation 2008-06-02 18:54:40 +00:00
Nils Kneuper
9bc82f7c04 updated Finnish translation 2008-06-02 12:08:21 +00:00
Richard Kettering
35c8289c70 Updates to longbowman and master bowman sprites. 2008-06-02 06:47:31 +00:00
Nils Kneuper
9ca31457bf updated Czech translation 2008-06-01 21:55:32 +00:00
Benoît Timbert
fa093a3805 French translation update 2008-06-01 21:25:37 +00:00
Benoît Timbert
783d55b1f7 Fix some obsolete WML in the test scenario 2008-06-01 14:52:34 +00:00
Benoît Timbert
dfc3a508f7 French translation update 2008-06-01 10:12:54 +00:00
Nils Kneuper
0cb8c91063 pot-update 2008-06-01 09:44:38 +00:00
Nils Kneuper
128680a9c5 updated Turkish translation
recreated doc files

fixed *many* mistakes in various manpages translations
2008-06-01 09:37:59 +00:00
Nils Kneuper
7b381d7714 updated Finnish translation 2008-05-31 19:53:19 +00:00
Nils Kneuper
ae1a81b4e0 added arab translator to credits and some more header cleanup 2008-05-31 17:55:22 +00:00
Nils Kneuper
bdf8986326 updated arabic translation (and clean up the header in the main file) 2008-05-31 17:41:14 +00:00
Benoît Timbert
5197204b57 French translation update 2008-05-31 14:46:32 +00:00
Benoît Timbert
3cf2708e4c Better default for arabic plural forms...
...(according to http://translate.sourceforge.net/wiki/l10n/pluralforms)
2008-05-31 13:43:51 +00:00
Nils Kneuper
3c12e7502e fixed plural forms, default value is no good at all... 2008-05-31 11:19:44 +00:00
Nils Kneuper
77da0d710d added Arabic translation 2008-05-31 11:10:57 +00:00
Lari Nieminen
75e1aaae06 Fixed bug #11757 (even though there's no crash in 1.4). 2008-05-30 23:48:03 +00:00
Benoît Timbert
2cd6d127cd French translation update 2008-05-30 19:00:15 +00:00
Nils Kneuper
65ecf8b04b updated Finnish translation 2008-05-30 18:11:27 +00:00
Richard Kettering
8f5c7dd86d Corrected accidental omission of base frame for human bowman. 2008-05-30 17:13:51 +00:00
Ignacio R. Morelle
7586ad293d Fix a great mistake in the second death animation,
...that probably invalidated part of it to the engine
2008-05-28 21:24:38 +00:00
Ignacio R. Morelle
ae58a862e8 Fix a couple of typos/spelling mistakes, etc. 2008-05-28 21:23:08 +00:00
Pauli Nieminen
1a8f5adb7b Implemented send_file to reduce memory usage when sending files 2008-05-28 20:10:57 +00:00
Pauli Nieminen
75990a2e80 Fixed filesize check in campaignd 2008-05-28 16:30:29 +00:00
Pauli Nieminen
aadeae5484 Now it compiled again :( 2008-05-28 09:46:02 +00:00
Pauli Nieminen
868460a117 Fixed compilation of no_strip 2008-05-28 09:43:08 +00:00
Pauli Nieminen
c61cc8fb1d Fixed tokenizer not to strip CR from quoted string...
...because it would destroy images transfered over network
2008-05-28 09:38:05 +00:00
Richard Kettering
ae289c84de New frames for human bowman. 2008-05-28 05:52:08 +00:00
Nils Kneuper
35b2a640f4 updated Estonian translation 2008-05-27 08:00:35 +00:00
Nobuhito Okada
852a1ca01d updated Japanese translation 2008-05-27 01:04:25 +00:00
Pauli Nieminen
fc42712fef fixed schema object leak in network_worker 2008-05-26 23:58:39 +00:00
Pauli Nieminen
5a87401ed2 Fixed campaignd allways send data back using same format as client 2008-05-26 22:26:28 +00:00
Pauli Nieminen
b207268648 Fixed campaignd to always send data back using same format as client 2008-05-26 22:21:01 +00:00
Pauli Nieminen
d9cf2569eb made campaign server use gzip for storing addons
added configuraion option to choose gzip compression level
2008-05-26 21:36:58 +00:00
Ignacio R. Morelle
214da25e9d Fix issues with LIMIT_RECRUITS...
...as pointed out by user on forum thread 21547
(http://www.wesnoth.org/forum/viewtopic.php?t=21547)
2008-05-26 21:25:15 +00:00
Benoît Timbert
b241b53a5a French translation update 2008-05-26 18:31:21 +00:00
Nils Kneuper
f477e568d1 updated German translation 2008-05-26 17:57:16 +00:00
Nils Kneuper
fe5545923d pot-update (stringchanges)
added spanish manual

regenerated documentation files
2008-05-26 17:49:59 +00:00
David Philippi
2b90abd64d spanish manual update 2008-05-26 15:40:09 +00:00
Pauli Nieminen
2a9e737c4a made campaign server detect if client can receive gzipped data 2008-05-25 07:58:36 +00:00
Pauli Nieminen
85a7d66cb2 fixed parser bug that prevented loading binary data strings 2008-05-24 11:42:24 +00:00
Pauli Nieminen
6ec54c5f67 removed old todo comments from campaign server 2008-05-23 20:19:46 +00:00
Pauli Nieminen
4d5162f596 made campaign server use gzip compression for networking 2008-05-23 17:28:35 +00:00
Nils Kneuper
8b528d5753 added new translator 2008-05-22 22:21:10 +00:00
Nils Kneuper
c1cef5d2a4 updated Estonian translation 2008-05-22 20:47:06 +00:00
Nils Kneuper
d31931f031 updated Finnish translation 2008-05-22 20:30:21 +00:00
Thomas Baumhauer
c1c8a2c94c Adding double quote as illegal character in Windows file names,
...thanks to ilor for pointing this out.
2008-05-22 09:56:53 +00:00
Thomas Baumhauer
ef2b0a21c4 Fixing bug #11665:
Filename saves allow illegal characters resulting in game crash.
2008-05-22 09:45:20 +00:00
David Philippi
51728e3d2d font update 2008-05-21 11:05:58 +00:00
Richard Kettering
0f1943ec7d Revamped fighter axe animation. 2008-05-21 06:41:51 +00:00
Jörg Hinrichs
24eda6301d Updated packaging scripts and new CodeBlocks release project files...
...for wesnoth 1.4.2
2008-05-20 19:04:03 +00:00
Nils Kneuper
3eb2648abf correct encoding from windows-1251 to utf8 2008-05-20 15:10:43 +00:00
Pauli Nieminen
de7fa767b4 Fixed server networking bug 2008-05-20 11:47:58 +00:00
Gunter Labes
3db5649d77 * fixed bug #11702: wrong next_scenario references in UtBS 2008-05-19 17:33:04 +00:00
Richard Kettering
f5b675e490 Upgraded animations for the orcish assassin. 2008-05-19 07:44:23 +00:00
Pauli Nieminen
44cc304050 Improved wesnothd performace: Removed transfer stats from server 2008-05-18 18:35:43 +00:00
Nils Kneuper
3f7ed417b8 updated Serbian translation 2008-05-18 17:39:46 +00:00
Benoît Timbert
23cfad3ff4 French translation update 2008-05-18 13:59:58 +00:00
Lari Nieminen
cd06e210de Fixed a recruit list typo. 2008-05-17 10:06:07 +00:00
Benoît Timbert
9ec13d2a02 Update some information 2008-05-16 23:17:06 +00:00
Benoît Timbert
fb9d1a5268 French translation update 2008-05-16 16:41:29 +00:00
Benoît Timbert
a37f0c1c7a French translation update 2008-05-16 16:22:31 +00:00
Nils Kneuper
66b5d47457 correct version from 1.3.x to 1.5.x 2008-05-15 09:11:24 +00:00
Lari Nieminen
ed9bd501dd Fixed the distract ability. 2008-05-14 16:54:09 +00:00
David Philippi
95ed2e0752 danish translation update 2008-05-14 15:03:30 +00:00
Dimitar Ilccov
269e056d82 Same as 2008-05-14T13:08:34Z!mythological@mt.net.mk, but in 1.4 branch 2008-05-14 13:10:14 +00:00
Benoît Timbert
f54f2f786d Mention the [teleport] minor incompatiblity in RELEASE_NOTES 2008-05-13 21:37:16 +00:00
Benoît Timbert
5f0ce78901 fix [teleport] capturing villages with the wrong side (bug #11683)
Note : this might result in OOSes in some MP scenarios using
[teleport] to a village

Such scenarios a very rare (i'm not aware of any) so i guess a very
minor incompatibility is OK there.
2008-05-13 21:24:22 +00:00
Benoît Timbert
35d2e2f917 Fill default plural forms...
...(according to http://translate.sourceforge.net/wiki/l10n/pluralforms)
2008-05-13 19:57:13 +00:00
David Philippi
2e6601bcf0 added new languages 2008-05-13 19:43:15 +00:00
David Philippi
9c2d6a8cfd added friulian and macedonian languages 2008-05-13 19:00:40 +00:00
Pauli Nieminen
ad4ecd8493 backported 2008-05-12T23:34:38Z!paniemin@cc.hut.fi to stable (memory leaks fixes) 2008-05-13 11:11:38 +00:00
Richard Kettering
c246da918d New, team-colored images for the mermaid initiate. 2008-05-13 05:24:16 +00:00
Richard Kettering
bfc21d213e Added halo images for mermaids. 2008-05-13 04:41:45 +00:00
Richard Kettering
749d46ef41 Added halo images for mermaids. 2008-05-13 04:39:08 +00:00
Pauli Nieminen
8b87c3faf7 Fixed a mememory leak in networking code 2008-05-12 20:54:00 +00:00
Benoît Timbert
fb4ab15735 French translation update 2008-05-12 15:52:33 +00:00
Benoît Timbert
26eb3d5376 French trnaslation update 2008-05-12 13:38:22 +00:00
Richard Kettering
2484372df1 Added a two-frame defense animation for the Sentinel. 2008-05-12 03:09:36 +00:00
Richard Kettering
073ce2f284 Slight tweak to stalwart defense frame. 2008-05-12 03:06:27 +00:00
Richard Kettering
032e016a43 Added a two-frame defense animation for the Stalwart. 2008-05-12 02:28:18 +00:00
Richard Kettering
c345d7b4a0 Replaced two frames - I'd forgotten we're not supposed to delete them...
...in the stable branch.
2008-05-12 02:24:33 +00:00
Pauli Nieminen
736cf32e8a Improved connection stability with slow connections. 2008-05-11 23:04:26 +00:00
Richard Kettering
bfc34be48e New, 2-frame defense animation for the dwarven lord. 2008-05-11 23:00:40 +00:00
Richard Kettering
e963f6e7f8 New, 2-frame defense animation for the steelclad. 2008-05-11 21:48:58 +00:00
Gunter Labes
4cb986b0a1 polish the graceful restart feature 2008-05-10 14:43:49 +00:00
Gunter Labes
29453c961f fixed null-pointer reference in network code...
...(merged 2008-05-09T22:54:20Z!paniemin@cc.hut.fi/3 from trunk)
2008-05-10 11:30:22 +00:00
Ignacio R. Morelle
d614789fe5 Fix bug #11655 - I'll report to the Spanish translation team later 2008-05-09 20:52:31 +00:00
Pauli Nieminen
c57f1ac24e Backported graceful restart feature to server 2008-05-09 08:58:47 +00:00
Ignacio R. Morelle
69c5a288cf Fix bug #11386 on 1.4 branch. 2008-05-07 23:31:24 +00:00
Lari Nieminen
37992fe42c Fix bogus types in recruit lists. 2008-05-07 18:56:02 +00:00
Mark de Wever
dc73a970e0 Added some includes to fix compilation problems with Sun Studio 12
(patch #1066 provided by inchworm).
2008-05-07 17:35:33 +00:00
Mark de Wever
b41c77429b Rhonda pointed out that 2008-04-04T13:04:37Z!esr@thyrsus.com should be backported to 1.4.
Starting a campaign without any installed now gives an error.
2008-05-06 15:34:02 +00:00
Benoît Timbert
a8e341bf41 French translation update 2008-05-06 15:11:27 +00:00
Mark de Wever
ddf4922622 Rhonda reminded me I forgot to backport 2008-03-18T18:05:09Z!koraq@xs4all.nl.
Fixes a SIGBUS error on Sparc machines.
2008-05-06 14:57:56 +00:00
Ignacio R. Morelle
bcdebac5c8 Backport 2008-05-06T00:53:51Z!shadowm@wesnoth.org...
...I still wonder about the clumsiness of the whole event
2008-05-06 00:55:27 +00:00
Nils Kneuper
918bdbcf53 updated Russian translation 2008-05-05 17:54:42 +00:00
Nils Kneuper
67c3140fd4 updated Slovak translation 2008-05-04 22:23:03 +00:00
Nils Kneuper
387cfb744d post-release version bump 2008-05-04 22:22:19 +00:00
Ignacio R. Morelle
50054426bd Backport 2008-05-04T18:25:31Z!shadowm@wesnoth.org from trunk to 1.4 branch 2008-05-04 18:58:26 +00:00
Nils Kneuper
2318afafb1 bump version to 1.4.2 2008-05-04 16:53:26 +00:00
Nils Kneuper
42a703b753 recreated po4a based files 2008-05-04 14:23:36 +00:00
Nils Kneuper
bfe9d176f6 somehow this file slipped through in the commit... 2008-05-04 13:50:46 +00:00
Nils Kneuper
6a2b99e372 updated Italian translation 2008-05-04 13:49:05 +00:00
Nils Kneuper
7c404ce842 just another pre 1.4.2 pot-update 2008-05-04 13:47:37 +00:00
Nils Kneuper
8b290738ce updated Finnish translation 2008-05-04 12:56:27 +00:00
Lari Nieminen
d943a461c9 Fixed a clan boss dialogue filter. 2008-05-03 19:23:35 +00:00
Nils Kneuper
f2a7cae4d4 updated Russian translation 2008-05-03 12:36:08 +00:00
Nils Kneuper
c4e2a0f976 ran optipng
*** Total saved: 8 KB on 12 files
2008-05-03 12:33:55 +00:00
David Philippi
ca2e4b06ec spanish translation update 2008-05-03 11:16:14 +00:00
Nils Kneuper
c67cdae651 pot-update (just reference updates)
recreate documentation files (make update-po4a)

add all langs with manpages to the list of manpages to install
2008-05-03 11:10:06 +00:00
Nils Kneuper
935db4b6f4 fixed wrong tags 2008-05-03 11:01:33 +00:00
David Philippi
66e9d004bc spanish translation update 2008-05-02 22:37:19 +00:00
Nils Kneuper
13b0d627c7 updated German translation 2008-05-02 20:39:13 +00:00
Benoît Timbert
2efdc2e324 French translation update 2008-05-02 17:49:12 +00:00
David Philippi
fa89641aa3 hungarian translation update 2008-05-02 14:42:17 +00:00
Benoît Timbert
2ab74d8525 French translation update 2008-05-02 14:41:51 +00:00
Nils Kneuper
c7054115ab updated Finnish translation 2008-05-02 12:21:34 +00:00
Gunter Labes
a286ab14eb correct an attack image reference
remove the redundant hide_help keys
2008-05-02 09:17:41 +00:00
Ignacio R. Morelle
953a610a2e Backport 2008-05-02T01:16:17Z!shadowm@wesnoth.org (does not mess with translations, sirs) 2008-05-02 01:19:46 +00:00
David Philippi
1f610505a7 hungarian translation update 2008-05-01 23:07:56 +00:00
Nils Kneuper
3f6738a47a updated German, Polish and Russian translation 2008-05-01 22:24:09 +00:00
Benoît Timbert
094693e542 Move ranger-sword.png where it is supposed to be. 2008-05-01 20:54:07 +00:00
David Philippi
cdead0bd32 dutch translation update 2008-05-01 19:31:23 +00:00
David Philippi
d8e5e9e41e spanish translation update 2008-05-01 15:44:14 +00:00
David Philippi
6f5ac25dc9 japanese translation update 2008-05-01 12:33:00 +00:00
Ignacio R. Morelle
c37f67de1f New, less-confusing offmap tile icon for editor 2008-05-01 02:25:18 +00:00
David Philippi
72d955122e dutch translation update 2008-04-29 22:10:54 +00:00
Nils Kneuper
030fb98ab2 updated Turkish translation 2008-04-29 19:27:12 +00:00
Ignacio R. Morelle
aa73c6c97e Backport 2008-04-28T21:47:00Z!shadowm@wesnoth.org from trunk to 1.4 branch 2008-04-28 21:59:25 +00:00
Ignacio R. Morelle
114b28055d Backport 2008-04-28T20:22:56Z!shadowm@wesnoth.org from trunk to branches/1.4 2008-04-28 20:28:58 +00:00
Nils Kneuper
2d550a28e2 updated Chinese translation 2008-04-28 15:49:10 +00:00
Gunter Labes
d287c44598 revert the main menu map deletion since it breaks some UMC 2008-04-28 04:33:56 +00:00
Richard Kettering
6dd1213376 Replaced my old hack with kestenvarn's newest HttT map,
...faded slightly for readability on the main screen.
2008-04-28 03:40:34 +00:00
Benoît Timbert
18dae63294 Revert the deletion part of 2008-04-27T21:45:38Z!kettering.richard@gmail.com (breaks compatibilty) 2008-04-27 21:48:41 +00:00
Richard Kettering
a041589b24 New and improved melee animations for the banebow. 2008-04-27 21:45:38 +00:00
Richard Kettering
5aeab60048 New and improved melee animations for the banebow. 2008-04-27 21:42:26 +00:00
Benoît Timbert
66d2cef2fb Revert the compatibility breakage of 2008-04-27T20:54:00Z!kettering.richard@gmail.com 2008-04-27 21:12:54 +00:00
Richard Kettering
57966a69ce Slight tweak to ranger melee frames. 2008-04-27 21:00:42 +00:00
Richard Kettering
ee125f07c0 Slight tweak to ranger melee frames. 2008-04-27 20:54:00 +00:00
Nils Kneuper
e93abc8750 updated Russian translation 2008-04-27 19:19:39 +00:00
Benoît Timbert
374fb6d725 Revert the deletion part of 2008-04-27T02:31:12Z!kettering.richard@gmail.com...
(*Don't* remove any images in 1.4, because it breaks compatibility)
2008-04-27 09:45:26 +00:00
Gunter Labes
b6d132ac7c abort games with more than MAX_PLAYERS sides 2008-04-27 06:14:45 +00:00
Richard Kettering
c545f4df6a New images for the elven sorceress. 2008-04-27 02:41:31 +00:00
Richard Kettering
101d972638 New images for the elven sorceress. 2008-04-27 02:31:12 +00:00
Gunter Labes
7ce2521edc little tweak to the query commands 2008-04-27 00:38:45 +00:00
Nils Kneuper
afa0f8d90e updated Turkish translation 2008-04-26 22:39:09 +00:00
Benoît Timbert
e7504a677a French translation update 2008-04-26 14:23:19 +00:00
Gunter Labes
a595fd15a8 only notify an observer of his status if he wanted a slot 2008-04-26 12:42:09 +00:00
Gunter Labes
dbe75a13b9 s/id/description/ 2008-04-26 12:20:51 +00:00
David Philippi
b20e8de388 dutch translation update 2008-04-26 11:32:35 +00:00
Gunter Labes
de208c1a84 typo fix 2008-04-26 01:19:15 +00:00
Gunter Labes
90819a39e9 add a newline to log output 2008-04-26 01:09:47 +00:00
Gunter Labes
7f7f83fe83 only record server messages once the game has started
again use the [command][turn][speak]-format for server messages once
the game has started because clients can't easily handle a different
format in replays
2008-04-26 00:35:05 +00:00
Benoît Timbert
b9c75e3e36 French translation update 2008-04-25 20:47:04 +00:00
Ignacio R. Morelle
bdc16c67fa Make northern-facing animations functional 2008-04-24 19:55:03 +00:00
Ignacio R. Morelle
3ef12e6eb6 Revert 2008-04-24T18:23:39Z!shadowm@wesnoth.org as per Ivanovic's request 2008-04-24 19:40:31 +00:00
Nils Kneuper
6128cdfa06 updated Turkish translation 2008-04-24 18:59:46 +00:00
Ignacio R. Morelle
a03a50c0dd Add megane's new dreadbat graphics and set correct SVN properties for them 2008-04-24 18:42:28 +00:00
Ignacio R. Morelle
8d5f684eee Backport 2008-04-24T18:21:19Z!shadowm@wesnoth.org to 1.4 2008-04-24 18:23:39 +00:00
Gunter Labes
944fd72d3a add support for ban reasons
log output of /query commands whether issued from the fifo or not.
2008-04-24 15:11:39 +00:00
Jérémy Rosen
652a7439ae fix a crash on terror ability 2008-04-23 20:56:06 +00:00
Jérémy Rosen
1ad21a30ad fix special case where the defender had a leadership ability...
...that affected the attacker, animation glitch
2008-04-23 20:42:03 +00:00
Nils Kneuper
966ff218b9 updated traditional Chinese translation 2008-04-23 19:32:51 +00:00
Ignacio R. Morelle
42ddf49284 Use the new Dread Bat graphics (by megane) 2008-04-23 00:26:43 +00:00
Ignacio R. Morelle
e3cbfbd132 New dread bat images by megane 2008-04-22 22:08:20 +00:00
Benoît Timbert
4f86b223ee Fix leading spaces, add an extra name 2008-04-22 21:15:21 +00:00
Benoît Timbert
61f0976292 French translation update 2008-04-22 20:49:35 +00:00
Nils Kneuper
b7a256a325 updated Czech translation 2008-04-22 12:50:13 +00:00
Benoît Timbert
6789ab0145 French translation: Axe fuzzies 2008-04-21 20:43:44 +00:00
Nils Kneuper
7f2771fb5e updated Czech and Lithuanian translation 2008-04-21 20:28:09 +00:00
Benoît Timbert
a22261c679 French translation update 2008-04-21 19:05:32 +00:00
Nils Kneuper
4c94c1ec63 just another pot-update (one changed string...) 2008-04-21 16:40:30 +00:00
Lari Nieminen
8af88c5acd Applied patch #1060. 2008-04-21 16:09:25 +00:00
Ignacio R. Morelle
bb40e5bea8 Remove stray pixel 2008-04-21 14:54:41 +00:00
Ignacio R. Morelle
75a49f7f5a Update credits 2008-04-21 14:54:25 +00:00
Ignacio R. Morelle
af6c7e7622 Fix references to inexistent new images 2008-04-21 14:52:24 +00:00
Ignacio R. Morelle
8deaa0eaef Update fortunes 2008-04-21 14:51:51 +00:00
Nils Kneuper
1392302911 updated Turkish translation 2008-04-21 10:37:40 +00:00
Nils Kneuper
5b50c9ce26 do *not* use " inside strings, this is *bad*... 2008-04-21 10:31:55 +00:00
Gunter Labes
0fb8bf590b typo fix 2008-04-20 23:55:10 +00:00
Benoît Timbert
1a7851e7a4 French translation update 2008-04-20 20:25:32 +00:00
Benoît Timbert
f1c04516ca French translation update 2008-04-20 15:43:33 +00:00
Lari Nieminen
467c48ae10 Port 2008-04-20T11:14:54Z!lari.nieminen@iki.fi to 1.4. 2008-04-20 11:54:52 +00:00
Nils Kneuper
e9762e3f6a pot-update to start stringfreeze for 1.4.2 (yes, string changes in the files) 2008-04-20 11:42:02 +00:00
Benoît Timbert
6aec890353 French translation update 2008-04-19 17:28:50 +00:00
Benoît Timbert
5a7f1b9720 French translation update 2008-04-19 15:55:20 +00:00
Gunter Labes
b16b586883 disabled SDL_NODELAY (merged 2008-04-19T02:31:27Z!davewx7@gmail.com from trunk) 2008-04-19 05:47:54 +00:00
Gunter Labes
0cbc1dad2a use -l to link against libwesnoth.a rather than the exact name,
...fixes bug #11498: link failure: undefined reference to
`terrain_type::terrain_type()'
2008-04-18 21:43:28 +00:00
Gunter Labes
20ad977fd3 add missing campaign ids 2008-04-18 16:58:19 +00:00
Gunter Labes
1c53a6e391 add kickban as an alias to kban
some error message improvements
2008-04-18 00:56:24 +00:00
Nils Kneuper
9de208f405 updated Russian translation 2008-04-17 08:34:58 +00:00
Benoît Timbert
f86857d976 French translation update 2008-04-16 20:18:15 +00:00
Nils Kneuper
6c4aa646dc updated Slovak translation 2008-04-15 20:57:21 +00:00
Nils Kneuper
bfe91904b5 define encoding for Serbian (Latin version) manpages (patch #1053) 2008-04-15 20:29:16 +00:00
Benoît Timbert
efdac0fd74 Revert the deletion part of 2008-04-15T18:06:58Z!kettering.richard@gmail.com *breaks compatibility* 2008-04-15 19:57:17 +00:00
Richard Kettering
1e7ec8ac60 New melee frames for the bone shooter. 2008-04-15 18:06:58 +00:00
Richard Kettering
c7e9d4d5e1 New melee frames for the bone shooter. 2008-04-15 18:02:03 +00:00
Nils Kneuper
6790075b5a updated Croatian translation 2008-04-15 14:58:50 +00:00
Eric S. Raymond
6623c8b530 Backport fix for #11474. 2008-04-15 12:15:45 +00:00
Gunter Labes
c30d246eec replace == with = in test comparisons...
...(fixes bug #11496: Unportable test(1) construct)
2008-04-15 02:52:57 +00:00
Benoît Timbert
9d4ce13d1a French translation team 2008-04-14 19:03:50 +00:00
Benoît Timbert
aecbd7867e French translation update 2008-04-14 17:25:17 +00:00
Benoît Timbert
198615549e French translation update 2008-04-14 17:06:24 +00:00
Gunter Labes
506c99f657 add race=mechanical to the Caravan...
...(can't see any possible problem arising from this..)
2008-04-14 14:54:38 +00:00
Richard Kettering
7ac11353cf Several small tweaks to mage faces. 2008-04-14 00:50:39 +00:00
Gunter Labes
58fadc25f6 use fixed xanchor values instead of proportional 2008-04-13 23:19:44 +00:00
Benoît Timbert
c7c2644b7c French translation update 2008-04-13 22:28:54 +00:00
Benoît Timbert
fd350a3ef3 French translation update 2008-04-13 21:20:53 +00:00
Lari Nieminen
260606b682 Applied patch #1056. 2008-04-13 16:10:32 +00:00
Lari Nieminen
9a37a6e033 Ported 2008-04-13T15:59:08Z!lari.nieminen@iki.fi to 1.4. 2008-04-13 16:05:12 +00:00
Benoît Timbert
9782fc090a French translation update 2008-04-12 22:29:11 +00:00
Nils Kneuper
70b0cad7b7 updated Russian translation 2008-04-12 21:43:42 +00:00
Benoît Timbert
8e4c6ad88e Address #11473 : fix some semi-broken units 2008-04-12 14:34:22 +00:00
Nils Kneuper
9a93739673 updated Serbian translation 2008-04-12 10:34:38 +00:00
Benoît Timbert
c4c55b09e9 French translation update 2008-04-11 20:35:15 +00:00
Benoît Timbert
e5441f3b58 French translation update 2008-04-11 20:27:35 +00:00
Benoît Timbert
7b08b12f18 French translation update 2008-04-10 16:58:09 +00:00
Lari Nieminen
53de7ff3ee Rather end the scenario on attack_end than attack. 2008-04-10 09:24:15 +00:00
Lari Nieminen
38e3325e53 Allowed the lvl3 outlaws to be the outlaw advisors in Dwarven Doors. 2008-04-09 22:31:33 +00:00
Lari Nieminen
9bb10a0f42 Fixed a Li'sar duplication bug. 2008-04-09 22:28:44 +00:00
David Philippi
aa8874cf46 editing changelog is fine, adding it to the commit list is even better... 2008-04-09 21:00:14 +00:00
David Philippi
fe80b55ebe dutch translation update 2008-04-09 20:55:49 +00:00
Eric S. Raymond
99bc8807a5 Coincidence of troll leader names was suppressing an entire side (backport). 2008-04-09 15:35:20 +00:00
Lari Nieminen
d44d1d6f4f Fix a stupid WML bug. 2008-04-09 13:16:44 +00:00
Gunter Labes
5e8e814816 also mention losing not recalled units in the objectives of Evacuation 2008-04-09 11:00:57 +00:00
Gunter Labes
90bce95505 better handling of history in wesnothd (merged 2008-03-30T15:01:12Z!davewx7@gmail.com from trunk) 2008-04-08 22:49:53 +00:00
Benoît Timbert
c50a38c44f French translation update 2008-04-08 19:33:37 +00:00
Benoît Timbert
b1a3a66aae French translation update 2008-04-07 22:59:36 +00:00
Benoît Timbert
c42dfa40ea French translation update 2008-04-07 21:06:15 +00:00
Gunter Labes
29948a445e avoid now unnecessary t_string creation and remove some code duplication 2008-04-07 20:54:36 +00:00
Benoît Timbert
f2affe61fb French translation update 2008-04-07 19:12:17 +00:00
Lari Nieminen
04d29aea64 Ported 2008-04-07T15:03:22Z!lari.nieminen@iki.fi to 1.4. 2008-04-07 15:08:19 +00:00
Bruno Wolff III
43981c5b20 changelog update for 2008-04-07T14:54:07Z!bruno@wolff.to. 2008-04-07 14:56:32 +00:00
Bruno Wolff III
c1277c5543 Backport 2008-04-07T14:20:50Z!bruno@wolff.to, a fix for bug 11438. 2008-04-07 14:54:07 +00:00
Benoît Timbert
b71448f369 French translation update + report the russian translation update...
...in players_changelog
2008-04-06 17:13:07 +00:00
Nils Kneuper
e08678ad95 updated Russian translation 2008-04-06 12:47:25 +00:00
Martin Renold
7e7aa00e21 fixed bug #11440 (player availability status in the lobby not updated)
Userlist diffs were missing for players joining a game, and for the
last player leaving a game.
2008-04-06 11:39:26 +00:00
Nils Kneuper
9c849116e8 post release version bump 2008-04-06 09:22:11 +00:00
Martin Renold
5342fc0a67 this should fix bug #11281
If two players join at once the loser gets no longer kicked.

Also inform early observers via message.
2008-04-06 07:56:14 +00:00
Benoît Timbert
dc3ce43e06 Fix a typo in the changelog 2008-04-05 22:50:26 +00:00
Benoît Timbert
845026232d French translation update 2008-04-05 22:49:04 +00:00
Nils Kneuper
76e718564f add missing header file 2008-04-05 20:49:26 +00:00
Nils Kneuper
994255a796 version bump to 1.4.1 2008-04-05 20:04:28 +00:00
Nils Kneuper
3b16029736 running wesnoth-optipng (from trunk)
*** Total saved: 1 KB on 6 files
2008-04-05 20:00:15 +00:00
Lari Nieminen
ad1f0c1ee8 Fixed brokenness. 2008-04-05 19:42:44 +00:00
Nils Kneuper
3ea4e565e0 pot-update (just reference updates, no new/changed strings)
regenerate documentation files (fixed swedish and french manual files)

re-revert swedish translation update, only manual was broken and is
still at the old state
2008-04-05 19:30:14 +00:00
Nils Kneuper
3b39584dff revert 2008-04-05T19:06:36Z!david@torangan.de as requested by Tigge 2008-04-05 19:21:15 +00:00
David Philippi
f5b4100fcd swedish translation update 2008-04-05 19:06:36 +00:00
Lari Nieminen
18768ea640 Made the fireball miss animation prettier. 2008-04-05 19:03:23 +00:00
Benoît Timbert
13ca050b36 French translation update 2008-04-05 15:07:18 +00:00
David Philippi
05a98a8098 hungarian translation update 2008-04-05 14:21:19 +00:00
David Philippi
f74e49b4a6 added new swedish maintainer 2008-04-05 14:11:10 +00:00
David Philippi
993cea72ab swedish translation update 2008-04-05 14:02:58 +00:00
Gunter Labes
3b7fe8dfe3 "fix" bat corpse resistances to make 1.4+svn compatible again 2008-04-05 12:58:31 +00:00
Nils Kneuper
707ac8e70e updated Russian translation
create update doc files and add new ones
2008-04-05 11:46:12 +00:00
David Philippi
d63c5c5f11 hungarian translation update 2008-04-04 15:55:12 +00:00
David Philippi
00219d0d4c credit update 2008-04-04 13:48:11 +00:00
Nils Kneuper
9ccbbb4f87 updated Dutch translation 2008-04-04 10:38:07 +00:00
Benoît Timbert
38ed9f97aa French translation update 2008-04-03 20:11:32 +00:00
Martin Renold
4e6453a4bb let's mention wesnothd in the changelog 2008-04-03 18:44:25 +00:00
Nils Kneuper
5f7c78c1b2 updated Chinese translation 2008-04-03 17:56:07 +00:00
David Philippi
c9d35f3070 swedish translation update 2008-04-03 14:09:25 +00:00
David Philippi
f70bcb56fd valencian manpage update 2008-04-02 19:59:41 +00:00
Lari Nieminen
e382a835de Ported 2008-04-02T19:09:04Z!lari.nieminen@iki.fi to 1.4,
...and tweaked the resistances to match what the description claims
(should be changed back and the string fixed after the freeze).
2008-04-02 19:36:06 +00:00
Ignacio R. Morelle
bcaf410036 Wire WC bat graphics to Soulless and WC bat variations,
...including boucman's suggested workaround to bug #11416
2008-04-02 18:38:17 +00:00
Ignacio R. Morelle
076a2ed54b Adding megane's northern facing zombie bat graphics (reflect trunk) 2008-04-02 14:30:38 +00:00
Benoît Timbert
789a8dde4c French translation update 2008-04-01 21:56:03 +00:00
Nils Kneuper
38483e2138 added new Finnish translator 2008-04-01 21:27:15 +00:00
Nils Kneuper
5b116f5963 updated Czech and Finnish translation 2008-04-01 19:52:54 +00:00
Tommy
3b54187067 backport 2008-04-01T11:05:29Z!yobbobandana@yahoo.co.nz to 1.4 (fix for sample.py) 2008-04-01 12:06:25 +00:00
Ignacio R. Morelle
aac5fc5e74 Fix a possible NULL pointer dereference...
...when a saved game's campaign is not present (reported by UMC
Invasion from the Unknown)
2008-04-01 12:01:42 +00:00
Lari Nieminen
33bf3f6125 Ported 2008-04-01T09:43:48Z!lari.nieminen@iki.fi to 1.4. 2008-04-01 10:06:21 +00:00
Nils Kneuper
4a86412790 fix fatal error in french translation 2008-04-01 07:42:55 +00:00
Nils Kneuper
c6308406bf updated Russian translation 2008-04-01 07:35:28 +00:00
Nils Kneuper
9a3df41478 updated German translation (first translation at 100% in branches/1.4...) 2008-03-31 22:31:58 +00:00
Benoît Timbert
eb0dd90175 French translation update 2008-03-31 22:12:23 +00:00
David Philippi
245923d9ae hungarian translation update 2008-03-31 20:28:35 +00:00
Benoît Timbert
9c88ca3903 Revert the deletion part of 2008-03-31T00:12:40Z!kettering.richard@gmail.com (backwards compatibility breakage) 2008-03-31 19:44:34 +00:00
Nils Kneuper
d19e5dda80 updated Polish translation 2008-03-31 10:41:58 +00:00
Richard Kettering
08fc1c0eaa Major upgrade to the berzerker's animations. 2008-03-31 00:12:40 +00:00
Richard Kettering
d69df5d665 Major upgrade to the berzerker's animations. 2008-03-31 00:08:20 +00:00
Benoît Timbert
ae4d2a3df1 French translation update 2008-03-30 22:25:20 +00:00
Benoît Timbert
e9b547fed8 French translation update (fix bugs #11400 & #11401 (thanks dmg)) 2008-03-30 21:27:29 +00:00
Martin Renold
c3936dd8b0 backporting 2008-03-30T20:49:48Z!martinxyz@gmx.ch (do not send the full gamelist when not neccessary) 2008-03-30 21:03:54 +00:00
Martin Renold
5ce79fb85d backport 2008-03-30T19:43:02Z!martinxyz@gmx.ch (fix gamelist being sent to the kicked/banned player) 2008-03-30 19:43:33 +00:00
Martin Renold
d5adcbb738 merged 2008-03-30T18:02:36Z!davewx7@gmail.com from trunk...
...(added 'netstats' query command to wesnothd to query for current
network transfer info)
2008-03-30 18:36:18 +00:00
Nils Kneuper
edbd98f940 updated German translation 2008-03-30 13:26:12 +00:00
Martin Renold
4662ca591d changelog update & indent 2008-03-30 12:31:03 +00:00
Gunter Labes
6f99d061a7 don't do CPU time calculations on windows (merged 2008-03-20T14:08:16Z!davewx7@gmail.com from trunk) 2008-03-30 12:26:19 +00:00
Gunter Labes
9b0f29f8f4 handle non-player hosts better
consider [advance_unit] and [choose] for out-of-turn players legal
commands

send server messages always in the [message] form since the client can
handle that now

merged 2008-03-25T14:27:04Z!soliton@wesnoth.org plus some other minor tweaks from trunk
2008-03-30 12:17:59 +00:00
Nils Kneuper
3a0140536d updated German translation 2008-03-30 11:33:44 +00:00
Gunter Labes
c32e8a2505 actually remove banned players 2008-03-29 23:48:49 +00:00
Benoît Timbert
76e9a76d8b French translation update 2008-03-29 22:55:13 +00:00
Martin Renold
60c517a84a merged 2008-03-29T21:27:21Z!davewx7@gmail.com and 2008-03-29T21:54:22Z!davewx7@gmail.com from trunk...
...(made server sending diffs when a game exists more efficient)
2008-03-29 22:08:30 +00:00
Martin Renold
11732907dc die foul wesnothd bug die!!
merged from trunk:

2008-03-29T03:51:32Z!davewx7@gmail.com 
2008-03-29T07:06:33Z!davewx7@gmail.com 
2008-03-29T17:23:19Z!davewx7@gmail.com
2008-03-29 18:05:38 +00:00
David Philippi
a79b8422b6 danish translation update 2008-03-29 15:51:29 +00:00
Eric S. Raymond
bfc2369273 Revert previous fix, we're in string freeze. 2008-03-29 15:42:35 +00:00
Eric S. Raymond
d78317337d Backport a typo fix. 2008-03-29 12:06:39 +00:00
Lari Nieminen
a1c4a69d5b Ported 2008-03-24T12:43:59Z!lari.nieminen@iki.fi to 1.4. 2008-03-28 23:42:13 +00:00
Nils Kneuper
9b30c0dca2 updated German translation 2008-03-28 11:28:08 +00:00
Nils Kneuper
996a0ee3c7 updated Italian translation 2008-03-28 09:53:15 +00:00
Nils Kneuper
b3ca173596 updated German and Turkish translation
regenerate documenation via make update-po4a
2008-03-27 21:27:52 +00:00
Jan Rietema
c7e6ba4d63 Port of 2008-03-27T17:42:12Z!jan.rietema@web.de. 2008-03-27 17:43:38 +00:00
Benoît Timbert
11db06c5fd French translation update 2008-03-27 17:23:02 +00:00
Jan Rietema
fa78727b6c Long March rebalancing: port of 2008-03-27T17:07:40Z!jan.rietema@web.de. 2008-03-27 17:08:45 +00:00
Lari Nieminen
15d64a824a Ported 2008-03-09T20:08:50Z!lari.nieminen@iki.fi to 1.4. 2008-03-27 15:07:12 +00:00
Lari Nieminen
d60d810baa Ported 2008-03-26T18:38:04Z!jeremy.rosen@enst-bretagne.fr to 1.4. 2008-03-26 21:21:20 +00:00
Benoît Timbert
f343813000 French translation update 2008-03-26 19:15:13 +00:00
Gunter Labes
b78dffa4c0 fix to simple_wml on 64 bit machines (merged 2008-03-26T17:33:07Z!b.waresiak@gmail.com from trunk) 2008-03-26 17:43:35 +00:00
Ignacio R. Morelle
e4db5758a7 Fix two portraits, one 204x205 and other 206x206 pixels...
...to use the canonical portrait size
2008-03-26 16:24:15 +00:00
Ignacio R. Morelle
7241c85453 Add TC to WML so that images don't look pinky 2008-03-26 12:12:00 +00:00
Gunter Labes
28ffba52ee fix memory leak in server (merged 2008-03-26T06:37:18Z!davewx7@gmail.com from trunk) 2008-03-26 11:01:36 +00:00
Nils Kneuper
4300added6 updated Russian translation 2008-03-25 20:54:19 +00:00
Benoît Timbert
e02392d053 French translation update 2008-03-25 20:52:22 +00:00
Gunter Labes
f396416485 change the colour of side 8 from white to brown so it's easier to see on snow 2008-03-25 20:07:28 +00:00
Nils Kneuper
b01b846ebc updated Italian translation 2008-03-25 16:27:57 +00:00
Nils Kneuper
bec12e95e7 just another pot-update...
...(fixing problems listed at the respective wiki page for typos)
2008-03-25 15:33:28 +00:00
Eric S. Raymond
6c7e2133fe SpellingMistakes fixes (stable branch). 2008-03-25 14:29:41 +00:00
Ignacio R. Morelle
beaf108528 Mention the -R linker parameter removal 2008-03-25 13:56:22 +00:00
Nils Kneuper
1bb1ec6aa8 pot-update (including string changes (charge and backstab clarification)) 2008-03-25 13:38:49 +00:00
Nils Kneuper
a6935061f6 add "while attacking it" to the backstab description in the special notes 2008-03-25 13:25:10 +00:00
Nils Kneuper
223aaa1c36 updated Turkish translation 2008-03-25 10:12:55 +00:00
Ali El Gariani
f8f8405788 Fix a missing brace blocking the game start 2008-03-25 09:21:56 +00:00
Richard Kettering
13fc581e78 Added images for zombie bat. 2008-03-25 05:17:08 +00:00
Richard Kettering
9b81b174b1 New icon for music, minor tweaks to general icon. 2008-03-25 03:30:20 +00:00
Ali El Gariani
aeac0c5db5 fix a typo spotted by Sapient 2008-03-25 02:22:04 +00:00
Eric S. Raymond
fce001d991 Backport zookeeper's recent revisions from the development branch:
2008-03-15T12:31:06Z!lari.nieminen@iki.fi
2008-03-16T14:17:12Z!lari.nieminen@iki.fi
2008-03-22T11:12:10Z!lari.nieminen@iki.fi
2008-03-22T22:59:32Z!lari.nieminen@iki.fi
2008-03-23T18:03:37Z!lari.nieminen@iki.fi
2008-03-24T12:36:37Z!lari.nieminen@iki.fi
2008-03-24T12:43:59Z!lari.nieminen@iki.fi
2008-03-24T15:45:35Z!lari.nieminen@iki.fi
2008-03-24T16:21:33Z!lari.nieminen@iki.fi
2008-03-25 02:00:09 +00:00
Ali El Gariani
db9ff793fb remove a redundant and strangely placed "About the game" from the help
(it's already in the introduction section)
2008-03-25 00:06:28 +00:00
Nils Kneuper
9d3c91f493 fix bug #11279 for 1.4, *really* minor... 2008-03-24 19:34:57 +00:00
Ignacio R. Morelle
153c37002d Noone seems to need the invalid -R switch, huh 2008-03-24 17:43:24 +00:00
Benoît Timbert
4ce043a7aa French translation update 2008-03-24 14:32:48 +00:00
Ignacio R. Morelle
ec8963ef9a Added missing deathblade animation frames that were referenced by WML;...
...they were somehow skipped when svn add-ing the rest
2008-03-24 11:25:54 +00:00
Gunter Labes
8c28fa66b8 attempt to fix problem with WML ordering (merged 2008-03-23T05:33:27Z!davewx7@gmail.com from trunk) 2008-03-23 22:22:22 +00:00
Nils Kneuper
7dc1eeffe1 updated Polish translation 2008-03-23 20:50:15 +00:00
David Philippi
2b2dc7175b hungarian translation update 2008-03-23 15:22:48 +00:00
Nils Kneuper
fa40171586 updated Italian translation 2008-03-23 13:42:42 +00:00
Gunter Labes
dea04a45ba make joining players play a sound again 2008-03-23 09:58:19 +00:00
Martin Renold
052036e3b3 fixed the minimap cache...
...(it was recalculating all minimaps in the lobby every time)
2008-03-23 09:21:06 +00:00
David Philippi
2ca04119c8 danish translation update 2008-03-23 01:50:24 +00:00
Benoît Timbert
57e35453df Apply a patch from caslav.ilic: Fix the extraction of info variables...
...when the value is quoted.
2008-03-22 17:08:17 +00:00
Nils Kneuper
28be7a684d updated Chinese translation 2008-03-22 13:10:09 +00:00
Gunter Labes
56e0885562 * separate out of sync termination reasons by the era used 2008-03-22 12:12:36 +00:00
Benoît Timbert
0b7edc8e8e Revert the deletion part from 2008-03-20T06:29:33Z!kettering.richard@gmail.com since it likely break some UMC 2008-03-22 10:55:19 +00:00
Benoît Timbert
1eb3c6402b French translation update 2008-03-22 10:09:56 +00:00
Gunter Labes
6032f5ac94 added extra assertions to track causes of crash
also exit explicitely on SIGTERM

correct some server messages

(merged 2008-03-22T02:13:51Z!davewx7@gmail.com-2008-03-22T04:55:46Z!soliton@wesnoth.org from trunk)
2008-03-22 05:01:40 +00:00
Bruno Wolff III
a09236ea33 Backport 2008-03-19T16:45:50Z!bruno@wolff.to 2008-03-21 19:36:43 +00:00
Bruno Wolff III
3aabdc3420 Backport 2008-03-19T18:17:17Z!bruno@wolff.to 2008-03-21 19:30:14 +00:00
Bruno Wolff III
517d75ce1a Backport 2008-03-19T17:13:25Z!bruno@wolff.to 2008-03-21 19:28:14 +00:00
Bruno Wolff III
2da7fe853b Backport 2008-03-19T15:47:32Z!bruno@wolff.to 2008-03-21 19:23:00 +00:00
Nils Kneuper
f0906573ae updated German translation (incl. patch #1015) 2008-03-21 17:25:16 +00:00
Gunter Labes
eca16a7c3b remove {VICTORY_AND_DEFEAT_MUSIC} from non-random multiplayer maps...
...to keep the 'remote scenario' feature meaningful
2008-03-21 16:25:51 +00:00
Nils Kneuper
6e32bbbd39 pot-update (stringchanges at least in SotBE and THoT) 2008-03-21 10:39:35 +00:00
Nils Kneuper
2cf7b4e8f9 another wrong set textdomain,
...no harm since no translatable strings in the file.
2008-03-21 10:36:50 +00:00
Nils Kneuper
2be536dc15 fixed textdomain declarations for tHoT untis, reported in bug #11279 2008-03-21 10:29:04 +00:00
Gunter Labes
7c0a236bde fixed server messaging (merged 2008-03-21T05:38:26Z!davewx7@gmail.com from trunk) 2008-03-21 05:49:49 +00:00
Eric S. Raymond
a4adfa5f37 Address bug #11318. Continuity fixes for story setup. (Backport to 1.4) 2008-03-20 23:24:20 +00:00
Eric S. Raymond
426c6652d1 Name changes preparatory to adressing bug #11318. 2008-03-20 22:44:58 +00:00
Eric S. Raymond
c07aac61c2 Backport prevuis fix to 1.4. 2008-03-20 21:07:22 +00:00
Nils Kneuper
2cdffc383a updated Czech translation 2008-03-20 16:02:37 +00:00
Nils Kneuper
226e18e878 updated Turkish translation 2008-03-20 12:42:43 +00:00
David Philippi
4a12452bae lithuanian translation update 2008-03-20 10:50:53 +00:00
Richard Kettering
adc6c74a05 New attack animation for ulfzerker. 2008-03-20 06:29:33 +00:00
Richard Kettering
84e9bcbcc5 New attack animation for ulfzerker. 2008-03-20 05:56:27 +00:00
Benoît Timbert
16d9dbce0b French translation update 2008-03-19 20:19:11 +00:00
Benoît Timbert
5264f04a1f Fix a few SVN properties 2008-03-19 20:07:51 +00:00
Nils Kneuper
a938392943 running utils/wesnoth-optipng from trunk on branches/1.4
*** Total saved: 31 KB on 31 files
2008-03-19 18:37:41 +00:00
Nils Kneuper
1894d9d83e updated (simplified) Chinese translation 2008-03-19 13:00:49 +00:00
Gunter Labes
9701e777c3 catch SIGINT in order to get more gmon.out profiles (merged r 24790) 2008-03-19 07:41:20 +00:00
Gunter Labes
913d7c90ee added server profiling information for requests...
...(merged 2008-03-19T04:40:11Z!davewx7@gmail.com and 2008-03-19T05:22:54Z!davewx7@gmail.com)
2008-03-19 07:34:50 +00:00
Gunter Labes
afbb4bcebb new wesnothd implementation using simple_wml...
...(plus subsequent fixes/tweaks; merge of 2008-03-17T05:11:14Z!davewx7@gmail.com,
2008-03-17T16:31:32Z!davewx7@gmail.com, part of 2008-03-17T22:14:49Z!davewx7@gmail.com, 2008-03-17T22:33:36Z!soliton@wesnoth.org, 2008-03-18T00:40:44Z!soliton@wesnoth.org,
2008-03-18T03:07:45Z!davewx7@gmail.com, 2008-03-18T03:57:31Z!soliton@wesnoth.org, 2008-03-19T02:03:34Z!davewx7@gmail.com from trunk)
2008-03-19 04:11:40 +00:00
Nils Kneuper
84f575bd88 updated Turkish translation 2008-03-18 20:48:35 +00:00
Nils Kneuper
214732cb0e updated Russian and Chinese (Simplified) translation 2008-03-18 15:08:41 +00:00
Benoît Timbert
c443450a22 French translation update 2008-03-17 20:03:09 +00:00
Nils Kneuper
0a44af25df updated Italian and German translation 2008-03-17 19:41:40 +00:00
Ignacio R. Morelle
b1c0fa7290 Credits moved to [campaign] tag level...
...(otherwise they are just appended at the end of game credits)
2008-03-17 17:35:58 +00:00
Ignacio R. Morelle
710605a4c8 Backport from trunk 2008-03-17T17:32:26Z!shadowm@wesnoth.org 2008-03-17 17:32:53 +00:00
Ignacio R. Morelle
b6652bdda3 * New signpost item from RusHHouR (Aug. 2007) 2008-03-17 17:28:01 +00:00
Eric S. Raymond
7f0841bbed Beckport fixes notes in bug #11295. 2008-03-17 17:14:27 +00:00
Ignacio R. Morelle
0a8c9e6f73 Update 2008-03-17 16:41:41 +00:00
Nils Kneuper
e642682033 updated German translation 2008-03-17 13:06:28 +00:00
Ignacio R. Morelle
7714d0c1fa Enforce gender=female on Bona-Melodia (workarounds bug #11197) 2008-03-17 11:17:08 +00:00
Ignacio R. Morelle
4057412b53 Enforce gender=female on Eloh (workarounds bug #11197) 2008-03-17 11:15:36 +00:00
Ignacio R. Morelle
74edd48d0a Load-game dialog now displays the Campaign's name instead of its internal id;...
...also, translated

(This does not break existing translations, rather improves their
effectivity)
2008-03-17 11:09:23 +00:00
Ignacio R. Morelle
54ae7592a4 [[UtBS fixes]]
* Enforce female gender on female-only units across campaigns
(workarounds bug #11197); Note that this is intended mostly for
heroes; very little, if any, attention has been given to non-hero
units.

* Fix redundant/superfluous preprocessor directives on scenario 3, TSG

* Melusand is respawned with persistent canrecruit=yes on scenario 9, UtBS

* Fixed invalid "Mermaid Entangler" move-unit-fake on scenario 9, UtBS
2008-03-17 11:08:24 +00:00
Nils Kneuper
c3ba008154 pot-update, new/changed strings 2008-03-17 09:34:01 +00:00
Eric S. Raymond
e8958536f7 Fix bugs #11263 and #11268 (1.4 backport). 2008-03-17 05:08:46 +00:00
Eric S. Raymond
5cd572b16a Address bug #11287 (1.4 backport). 2008-03-17 05:00:53 +00:00
Nils Kneuper
a7432b5df1 patch by Andrius Štikonas to add plural support for a string 2008-03-16 18:43:57 +00:00
Nils Kneuper
e60c7368ba updated German translation 2008-03-16 15:27:52 +00:00
David Philippi
174ee43fb7 hungarian translation update 2008-03-16 13:17:20 +00:00
Nils Kneuper
566834ea1f pot-update
stringchanges at least in thot (one new string)
reference/comment update, latest version of wmlxgettext used
2008-03-16 11:14:31 +00:00
Benoît Timbert
81fb2a3a3d Merge 2008-03-16T10:44:50Z!benoit.timbert@free.fr: XP wasn't defined 2008-03-16 10:45:51 +00:00
Nils Kneuper
cac85fc9f4 updated Italian translation 2008-03-16 09:17:55 +00:00
Eric S. Raymond
5f0edccf1a Address bug #11267 (1.4 backport). 2008-03-16 03:47:21 +00:00
Benoît Timbert
b6a7604f17 Even more robust version...
...(see http://www.wesnoth.org/forum/viewtopic.php?f=7&t=20198)
2008-03-16 00:48:41 +00:00
Benoît Timbert
6b9fa3b1bb French translation update 2008-03-16 00:25:07 +00:00
Nils Kneuper
cd80a3323b updated Italian translation 2008-03-15 23:16:39 +00:00
Nils Kneuper
ab318d8378 updated Greek translation 2008-03-15 22:42:55 +00:00
Benoît Timbert
4e1c420b2a Merge 2008-03-15T18:06:34Z!benoit.timbert@free.fr:
Apply a fix from caslav.ilic: now the context analyser parse the
entire file and no longer crash if #textdomain is not used at the top
level (see http://forum.wesnoth.org/viewtopic.php?f=7&t=20198 for full
details)
2008-03-15 18:08:12 +00:00
Benoît Timbert
d52c338cef Also learn the underlaying terrain...
...so it will add a line in the help for an encountered terrain type
but not the main terrain of this type.

This is a rather improbable bug 1.4, but it can happen if you start to
play UtBS as your very first campaign (for roads with the "grassland"
terrain type).
2008-03-14 22:26:46 +00:00
Nils Kneuper
01506a8873 updated Russian translation 2008-03-14 19:26:40 +00:00
David Philippi
0192d84a24 swedish translation update 2008-03-14 13:23:43 +00:00
Ignacio R. Morelle
f39c086d40 Backport of trunk; 2008-03-14T11:06:35Z!shadowm@wesnoth.org (I'm 100% sure it doesn't harm) 2008-03-14 11:13:37 +00:00
Nils Kneuper
2ace5a29cb updated Italian translation 2008-03-14 08:07:05 +00:00
Benoît Timbert
65e5df2c31 French translation update 2008-03-13 19:55:39 +00:00
Gunter Labes
2d1de6ce2e fixed a logic error 2008-03-13 18:57:00 +00:00
Ignacio R. Morelle
fba3dd795c New fortune 2008-03-13 18:47:42 +00:00
Ignacio R. Morelle
aa856ce8ef Fixed transport-galleon's TC 2008-03-13 13:43:39 +00:00
David Philippi
e6aa904de3 swedish translation update 2008-03-13 12:00:48 +00:00
Ignacio R. Morelle
0792d109ca Fixed TC of Walking Corpse - drake variation 2008-03-13 10:22:11 +00:00
Nils Kneuper
ea63abd5af updated Czech translation 2008-03-12 22:40:06 +00:00
Nils Kneuper
05a91b1dc4 added Croatian translation 2008-03-12 22:25:49 +00:00
Nils Kneuper
5037b65ca0 add missing translation marker in THoT,
already included in trunkt due to 2008-03-09T18:05:18Z!esr@thyrsus.com, forgotten to backport
to 1.4
2008-03-12 21:27:33 +00:00
Nils Kneuper
227f75a92e updated Italian translation, regenerate doc files 2008-03-12 21:24:16 +00:00
Ignacio R. Morelle
d4050055d9 Destroy entry which referred to bugfix...
...that was reverted to avoid MP OOS in 1.4 (deja vu; hadn't I already
done it?)
2008-03-12 16:09:55 +00:00
Gunter Labes
4c1ef50b4b fixed gamelist diff calculations to be O(1) instead of O(n)...
...(merged 2008-03-12T04:59:47Z!davewx7@gmail.com)

optimized networking code to elide unnecessary copy of outgoing config
objects (merged 2008-03-12T06:21:57Z!davewx7@gmail.com)
2008-03-12 15:14:54 +00:00
David Philippi
ba65d275d2 swedish translation update 2008-03-11 18:02:46 +00:00
Mark de Wever
5b464ef2b6 Remove some debug output, since the called funtion is no longer available...
...and the output isn't that important. (Ported from trunk 2008-03-11T17:54:03Z!koraq@xs4all.nl.)
2008-03-11 17:54:43 +00:00
Gunter Labes
63eb8eebca use 4 threads now because of the sharded network worker threads...
...but keep 30 for 1.2
2008-03-11 16:58:41 +00:00
Nils Kneuper
ca033029e9 updated Polish translation
ran make update-po4a to regenerate doc files
2008-03-11 16:54:11 +00:00
Gunter Labes
f63be8d61f attempt to improve efficiency of server...
...by not waking worker threads unless a socket is actually ready to
process data (merged 2008-03-11T01:34:01Z!davewx7@gmail.com) further improvements to decrease
contention on the server (merged 2008-03-11T02:54:38Z!davewx7@gmail.com) sharded network worker
threads to reduce contention (merged 2008-03-11T04:40:20Z!davewx7@gmail.com)
2008-03-11 16:52:25 +00:00
Ignacio R. Morelle
704a1922d2 * Update (megane) 2008-03-11 14:43:29 +00:00
David Philippi
4cd3966023 hungarian translation update 2008-03-11 13:26:46 +00:00
Ignacio R. Morelle
bf1a931b30 Megane's corrected dice icon. (Reflected trunk) 2008-03-11 13:07:19 +00:00
David Philippi
582f3d0267 swedish translation update 2008-03-11 13:00:41 +00:00
Richard Kettering
14626e7976 New, TC images for the Shadow. 2008-03-11 08:45:02 +00:00
Richard Kettering
b4275fd22e New, TC images for the Shadow. 2008-03-11 08:34:00 +00:00
David Philippi
ca09db3de9 spanish translation update 2008-03-10 23:13:30 +00:00
Benoît Timbert
0e23249c85 Address bug #11237 2008-03-10 19:38:48 +00:00
Nils Kneuper
f411cc7dcd credtis update as requested by Noy 2008-03-10 19:13:06 +00:00
Nils Kneuper
04bde2e73f updated Russian translation 2008-03-10 17:29:39 +00:00
Nils Kneuper
c5c641a563 updated German translation 2008-03-10 17:24:14 +00:00
Mark de Wever
9ce03680a4 Allow configure to be started from directories other as the top dir
(patch #1002). (Ported 2008-03-10T17:04:26Z!koraq@xs4all.nl from trunk).
2008-03-10 17:10:19 +00:00
Nils Kneuper
38957fcadc now fix the problem with the hero marker for real...
recreated manual files
2008-03-10 17:05:29 +00:00
Nils Kneuper
27948e5096 pot-update, fixing one more location problem (east/west) 2008-03-10 15:38:53 +00:00
Nils Kneuper
e0261ac156 fix another location problem in the tutorial 2008-03-10 15:22:15 +00:00
Nils Kneuper
861eea521d fix mistake in description of manual, regenerate po and html files 2008-03-10 13:15:13 +00:00
Ignacio R. Morelle
009c64d55b Shadow updates for various units:
Skeleton, Dwarvish Steelclad, Dwarvish Thunderer animation frames.
2008-03-10 11:24:36 +00:00
Nils Kneuper
15154be635 pot-update for 1.4, stringchanges in the tutorial
adding context information to strings, thanks to Chusslove Illich for
this addition
2008-03-10 10:48:12 +00:00
Eric S. Raymond
fcd447fa5c Backport previous fix. 2008-03-10 08:51:40 +00:00
Benoît Timbert
9bb72bc9cd merge 2008-03-10T00:23:03Z!benoit.timbert@free.fr: Fix #11230: Incorrect instructions in Tutorial Part II 2008-03-10 00:24:36 +00:00
Benoît Timbert
0fd5151050 Merge 2008-03-09T23:26:32Z!benoit.timbert@free.fr: Apply patch #993 by caslav.ilic : wmlxgettext improvements 2008-03-09 23:36:39 +00:00
Nils Kneuper
40b5166e23 updated german translation, apply patch #999
thanks to Ronny Standtke
2008-03-09 23:17:05 +00:00
Gunter Labes
92b4a20cf9 improved efficiency of network code...
...by avoiding deep copy of every incoming config object (merge of
2008-03-09T20:43:37Z!davewx7@gmail.com from Dave)
2008-03-09 22:08:50 +00:00
David Philippi
82cc16857f spanish translation update 2008-03-09 20:22:30 +00:00
Nils Kneuper
1c349b7948 fxied really stupid mistake in the german translation 2008-03-09 19:51:20 +00:00
Nils Kneuper
14eb48d7be updated German translation 2008-03-09 16:37:23 +00:00
David Philippi
75076d9579 danish translation update 2008-03-09 14:38:26 +00:00
Nils Kneuper
5028630659 ignore doc/doxygen/html in 1.4, too 2008-03-09 12:49:08 +00:00
Benoît Timbert
37a4ed6ae3 Merge 2008-03-08T22:32:31Z!benoit.timbert@free.fr: Add and wire the Elvish sorceress portrait 2008-03-08 22:35:47 +00:00
Benoît Timbert
4f9b606e91 French translation update 2008-03-08 21:10:13 +00:00
Lari Nieminen
cdedcada95 Ported 2008-03-08T08:27:21Z!lari.nieminen@iki.fi to 1.4. 2008-03-08 19:30:32 +00:00
Mark de Wever
d53f808979 After discussing with esr we decided to revert 2008-03-06T10:50:06Z!esr@thyrsus.com
since it might cause incompatibilities between 1.4 version.
2008-03-08 17:56:16 +00:00
Gunter Labes
9775869479 merge 2008-03-06T16:21:48Z!lari.nieminen@iki.fi, 2008-03-07T11:52:23Z!lari.nieminen@iki.fi and 2008-03-08T11:23:45Z!lari.nieminen@iki.fi from trunk 2008-03-08 15:35:45 +00:00
Ignacio R. Morelle
a76d4f2e3e Revert backport fix for bug #11197 (2008-03-06T11:17:05Z!esr@thyrsus.com) 2008-03-07 18:06:00 +00:00
Ignacio R. Morelle
946e4e27ab Update with bugfixes 2008-03-07 14:32:49 +00:00
Ignacio R. Morelle
42438d06e5 Reflect changes in trunk due to new Deathblade graphics 2008-03-07 14:30:59 +00:00
Nils Kneuper
5bec40f9c2 updated Turkish translation 2008-03-07 09:06:03 +00:00
Nils Kneuper
4fd3215134 updated Chinese (simplified) translation 2008-03-06 13:49:37 +00:00
Nils Kneuper
9384bf35cd updated Czech translation 2008-03-06 13:33:11 +00:00
Nils Kneuper
0021fb6918 pot-update for 1.4, getting in changed strings
fixing bug #11208 for 1.4, please check if your translations of sotbe
are at least as complete as they were before the 1.4
2008-03-06 11:56:33 +00:00
Eric S. Raymond
0b2dd31a22 Backport fix for bug #11197. 2008-03-06 11:17:05 +00:00
Eric S. Raymond
419e554e98 Backport fixes for bugs #11202, #11208. 2008-03-06 11:03:04 +00:00
Eric S. Raymond
9effd2768b Backport fix for bug #11034. 2008-03-06 10:50:06 +00:00
Nils Kneuper
5124cb3145 updated Russian translation 2008-03-06 10:05:23 +00:00
David Philippi
8fbe2a37d2 spanish translation update 2008-03-05 19:06:50 +00:00
David Philippi
e30deb94c5 hungarian translation update 2008-03-05 19:01:16 +00:00
Ignacio R. Morelle
6b13a2751a Update to reflect trunk 2008-03-05 18:01:56 +00:00
Gunter Labes
cfa96aaead hardcode check for 1.4* when loading savegames...
...since those should all be compatible
2008-03-05 17:42:18 +00:00
Ignacio R. Morelle
eed4c46003 Reflects changes of 2008-03-05T11:42:06Z!shadowm@wesnoth.org (backport to 1.4).
This is supposed to fix issues with canrecruit="yes". Currently the
engine checked in most locations only for canrecruit == "0" or "1",
and skipped the standard WML boolean syntax (which is achieved with
utils::string_bool()).

Code which already did assignments of the canrecruit attribute to 0 or
1 have been left untouched; they should still work
2008-03-05 17:22:35 +00:00
Ali El Gariani
8d5043491a map editor:
* Fixed not working "Update transition" and make "Delay transition update"
  directly trigger an update when toggled off.
2008-03-05 03:20:26 +00:00
Ali El Gariani
58c9472193 Fix the "Delay transition update" option of the editor
(directly update the map when setting it off, don't wait a draw operation)
Also fix the "Update transition" (was not working, which is more annoying).
It was still usable but less handy to switch between 2 modes (builded or not)
2008-03-05 02:37:45 +00:00
Gunter Labes
cf72d395ae refactor filter_commands() and process_commands() into process_turn();...
...makes it a bit more efficient and also detects illegal commands better
2008-03-04 23:06:52 +00:00
Richard Kettering
a42c1c7e78 Added an entry. 2008-03-04 22:44:48 +00:00
David Philippi
5cbf86d193 spanish translation update 2008-03-04 17:38:22 +00:00
Nils Kneuper
cfdbd73a9b updated Credits for Chinese (Taiwan) translation 2008-03-04 16:11:24 +00:00
Gunter Labes
613985026b add some missing includes to allow compiling with gcc 4.3 (patch by Bircoph) 2008-03-04 00:03:37 +00:00
Benoît Timbert
3f787327ae French translation update 2008-03-03 19:02:38 +00:00
Jan Rietema
7fd8f9001c Adding victory/defeat music to changelog (don't forget the changelog!). 2008-03-03 18:53:12 +00:00
Jan Rietema
9ed8827ff6 Added VICTORY_AND_DEFEAT_MUSIC macro...
...and wired it in all mainline scenarios except epilogues/pure
dialogue scenarios, DiD's last scenario, and benchmarks.
2008-03-03 18:32:50 +00:00
Nils Kneuper
c7ed22e5c5 updated Galician translation 2008-03-03 17:52:05 +00:00
Ignacio R. Morelle
ef8faeacf4 Fix probably the oldest bug ever;...
...unit advancement may consider female units' generic profile a
custom one due to a flaw (i.e. happens currently with female Elvish
Archer portraits; they are conserved along the entire unit tree)
2008-03-03 14:53:54 +00:00
Nils Kneuper
f346d61cd4 updated Dutch translation 2008-03-03 12:08:11 +00:00
Nils Kneuper
fb484d95ff post release version bump to 1.4,
...should not really be needed for branches/1.4, but at least for the
first version it makes a little sense...
2008-03-02 22:51:03 +00:00
29799 changed files with 3032096 additions and 10241410 deletions

View file

@ -1,4 +0,0 @@
---
Checks: '-*,modernize-use-nullptr,performance-unnecessary-value-param'
WarningsAsErrors: true
...

View file

@ -1,19 +0,0 @@
# top-most EditorConfig file
root = true
[*]
end_of_line = lf
insert_final_newline = true
charset = utf-8
[*.cfg]
indent_style = space
indent_size = 4
[*.{cpp,hpp}]
indent_style = tab
indent_size = 4
[*.lua]
indent_style = tab
indent_size = 4

9
.gitattributes vendored
View file

@ -1,9 +0,0 @@
# Exclude project-internal files from releases
/attic export-ignore
.gitattributes export-ignore
.gitignore export-ignore
/.github export-ignore
/changelog_entries export-ignore
# help github's language detection and syntax highlighting
*.cfg linguist-language=INI

12
.github/FUNDING.yml vendored
View file

@ -1,12 +0,0 @@
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: Wesnoth
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

View file

@ -1,46 +0,0 @@
name: Bug Report
description: Create a bug report to help us improve the game.
labels: ['Bug']
body:
- type: textarea
id: info
attributes:
label: Game and System Information
description: |
- What version of the game are you running? (If you built wesnoth yourself, mention the exact commit)
- What OS are you running?
value: |
- **Version:**
- **OS:**
- type: textarea
id: description
attributes:
label: Description of the bug
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
id: to_reproduce
attributes:
label: Steps to reproduce the behavior
placeholder: |
1.
2.
3.
- type: textarea
id: expectation
attributes:
label: Expected behavior
description: |
A clear and concise description of what you expected to happen. If applicable, add screenshots or savefiles to help explain your problem.
To find savefiles, start Wesnoth, click on the `i` button at the bottom left corner of the title screen, and open the `Saved games` directory.
- type: textarea
id: more_info
attributes:
label: Additional context
description: Add any other context (compiler logs, console output, etc) about the problem here.

View file

@ -1,14 +0,0 @@
name: Feature Request
description: Request a new feature to enhance the game.
labels: ['Enhancement']
body:
- type: textarea
id: description
attributes:
label: Describe the desired feature
description: |
Try to explain the desired end result, rather than speculating about how the feature could be implemented.
If applicable, add screenshots or mockups to help explain your request.
validations:
required: true

View file

@ -1,42 +0,0 @@
name: Text Typos or Improvements
description: Any typo fixes or improvement suggestions for campaign dialog, unit descriptions, or other game text.
labels: ['Prose']
body:
- type: markdown
attributes:
value: >
**Note:** The house style of Wesnoth uses a good many words and constructions that are archaic, poetic,
or dialectal. If you speak modern English as a second language you may incorrectly read these as errors.
Please see [NotSpellingMistakes](https://wiki.wesnoth.org/NotSpellingMistakes) for a list of things you
will encounter that may look like spelling or usage errors but are not.
Note that the mainline campaigns are now using correct typography, including sexed quotes and en and em
dashes. These will appear as three byte sequences if you are not using a viewer that supports UTF-8.
- type: input
id: language
attributes:
label: Language
description: What language does the typo appear in?
- type: input
id: location
attributes:
label: Source
description: Where does the typo appear? If part of a campaign, specify the scenario.
validations:
required: true
- type: textarea
id: original_text
attributes:
label: Original Text
description: Quote the text verbatim. You can use `**bold**` to highlight the issue.
validations:
required: true
- type: textarea
id: new_text
attributes:
label: Proposed Change

284
.github/labeler.yml vendored
View file

@ -1,284 +0,0 @@
Achievements:
- changed-files:
- any-glob-to-any-file:
- src/achievements.hpp
- src/achievements.cpp
- src/gui/dialogs/achievements_dialog.hpp
- src/gui/dialogs/achievements_dialog.cpp
- data/achievements.cfg
- data/campaigns/*/achievements.cfg
Add-ons:
- changed-files:
- any-glob-to-any-file:
- src/server/campaignd/**
- src/server/common/**
- src/addon/**
- src/gui/dialogs/addon/**
AI:
- changed-files:
- any-glob-to-any-file:
- data/ai/**/*
- data/campaigns/*/ai/**
- src/ai/**/*
Audio:
- changed-files:
- any-glob-to-any-file:
- data/campaigns/*/sounds/**
- data/core/music/*
- data/core/sounds/**/*
- sounds/*
Building:
- changed-files:
- any-glob-to-any-file:
- projectfiles/**/*
- source_lists/*
- CMakeLists.txt
- cmake/*
- src/CMakeLists.txt
- SConstruct
- scons/*
- src/SConscript
- src/SConstruct
Campaign AToTB:
- changed-files:
- any-glob-to-any-file:
- data/campaigns/Two_Brothers/**
Campaign DW:
- changed-files:
- any-glob-to-any-file:
- data/campaigns/Dead_Water/**
Campaign DM:
- changed-files:
- any-glob-to-any-file:
- data/campaigns/Delfadors_Memoirs/**
Campaign DiD:
- changed-files:
- any-glob-to-any-file:
- data/campaigns/Descent_Into_Darkness/**
Campaign EI:
- changed-files:
- any-glob-to-any-file:
- data/campaigns/Eastern_Invasion/**
Campaign HttT:
- changed-files:
- any-glob-to-any-file:
- data/campaigns/Heir_To_The_Throne/**
Campaign LoW:
- changed-files:
- any-glob-to-any-file:
- data/campaigns/Legend_of_Wesmere/**
Campaign L:
- changed-files:
- any-glob-to-any-file:
- data/campaigns/Liberty/**
Campaign NR:
- changed-files:
- any-glob-to-any-file:
- data/campaigns/Northern_Rebirth/**
Campaign SoF:
- changed-files:
- any-glob-to-any-file:
- data/campaigns/Sceptre_of_Fire/**
Campaign SotA:
- changed-files:
- any-glob-to-any-file:
- data/campaigns/Secrets_of_the_Ancients/**
Campaign SotBE:
- changed-files:
- any-glob-to-any-file:
- data/campaigns/Son_Of_The_Black_Eye/**
Campaign THoT:
- changed-files:
- any-glob-to-any-file:
- data/campaigns/The_Hammer_of_Thursagan/**
Campaign TRoW:
- changed-files:
- any-glob-to-any-file:
- data/campaigns/The_Rise_Of_Wesnoth/**
Campaign TSG:
- changed-files:
- any-glob-to-any-file:
- data/campaigns/The_South_Guard/**
Campaign Tutorial:
- changed-files:
- any-glob-to-any-file:
- data/campaigns/tutorial/**
Campaign UtBS:
- changed-files:
- any-glob-to-any-file:
- data/campaigns/Under_the_Burning_Suns/**
Campaign WoF:
- changed-files:
- any-glob-to-any-file:
- data/campaigns/Winds_of_Fate/**
Campaign WC:
- changed-files:
- any-glob-to-any-file:
- data/campaigns/World_Conquest/**
CMake:
- changed-files:
- any-glob-to-any-file:
- CMakeLists.txt
- cmake/*
- src/CMakeLists.txt
Docker:
- changed-files:
- any-glob-to-any-file:
- .dockerignore
- utils/dockerbuilds/travis/*
- utils/travis/docker_run.sh
Docs:
- changed-files:
- any-glob-to-any-file:
- doc/**/*
Editor:
- changed-files:
- any-glob-to-any-file:
- data/core/editor/*
- src/editor/**/*
Graphics:
- changed-files:
- any-glob-to-any-file:
- images/**/*
- data/campaigns/*/images/**
- data/core/images/**/*
Help:
- changed-files:
- any-glob-to-any-file:
- data/tips.cfg
- data/core/help.cfg
- src/help/*
- src/gui/dialogs/help_browser.*
Input:
- changed-files:
- any-glob-to-any-file:
- data/core/hotkeys.cfg
Lua API:
- changed-files:
- any-glob-to-any-file:
- src/scripting/**/*
- data/lua/**/*
macOS:
- changed-files:
- any-glob-to-any-file:
- projectfiles/Xcode/**/*
- src/macosx/*
MP:
- changed-files:
- any-glob-to-any-file:
- data/multiplayer/**/*
- src/server/wesnothd/**
- src/server/common/**
Packaging:
- changed-files:
- any-glob-to-any-file:
- packaging/**/*
Schema:
- changed-files:
- any-glob-to-any-file:
- utils/travis/schema_validation.sh
- data/schema/**/*
- src/serialization/schema/*
SCons:
- changed-files:
- any-glob-to-any-file:
- SConstruct
- scons/*
- src/SConscript
- src/SConstruct
Services:
- changed-files:
- any-glob-to-any-file:
- utils/mp-server/**
Terrain:
- changed-files:
- any-glob-to-any-file:
- src/terrain/**/*
- data/campaigns/*/images/terrain/**
- data/campaigns/**/terrain.cfg
- data/campaigns/**/terrain_graphics.cfg
- data/core/images/terrain/**
- data/core/terrain.cfg
- data/core/terrain-graphics.cfg
- data/core/terrain-graphics/**
Translations:
- changed-files:
- any-glob-to-any-file:
- po/**/*
- data/languages/*
Travis:
- changed-files:
- any-glob-to-any-file:
- utils/travis/**/*
UI:
- changed-files:
- any-glob-to-any-file:
- src/gui/**/*
- data/gui/**/*
- data/schema/gui.cfg
- data/themes/*
Unit Tests:
- changed-files:
- any-glob-to-any-file:
- data/test/**/*
Units:
- changed-files:
- any-glob-to-any-file:
- src/units/**/*
- data/campaigns/*/units/**
- data/core/units/**/*
- data/core/images/units/**/*
WML Tools:
- changed-files:
- any-glob-to-any-file:
- data/tools/**/*
WFL:
- changed-files:
- any-glob-to-any-file:
- src/formula/**
- src/ai/formula/**

View file

@ -1,391 +0,0 @@
name: CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:
jobs:
checks: # checks that don't need a wesnoth binary
runs-on: ubuntu-latest
container:
image: wesnoth/wesnoth:2404-master
options: --tty # docker create options
env:
CLICOLOR_FORCE: 1
steps:
- uses: actions/checkout@v4
- name: Set git safe directory
if: success() || failure()
run: |
git config --global --add safe.directory '*'
- name: Check for invalid characters
if: success() || failure()
run: |
./utils/CI/check_utf8.sh
./utils/CI/utf8_bom_dog.sh
- name: Whitespace and WML indentation check
if: success() || failure()
run: ./utils/CI/fix_whitespace.sh; git status; git diff --exit-code
- name: WML missing images check
if: success() || failure()
run: utils/CI/check_wml_images.sh
- name: Run luacheck
if: success() || failure()
run: luacheck .
- name: Doxygen check
if: success() || failure()
run: doxygen doc/doxygen/Doxyfile
copyright: # check takes a bit longer and does not need to run in docker (sound/music only)
runs-on: ubuntu-latest
steps:
- { uses: actions/checkout@v4, with: { fetch-depth: 50 } }
- name: Sound/Music copyright check
run: ./update_copyrights
ubuntu:
strategy:
fail-fast: false
matrix:
include:
# the check for WML tests below may need to be adjusted if configurations are changed
- { cfg: debug, tool: scons, cc: gcc, cxx: g++, std: 17, lto: false, sys_lua: false }
- { cfg: release, tool: cmake, cc: gcc, cxx: g++, std: 20, lto: true, sys_lua: false }
- { cfg: release, tool: cmake, cc: clang, cxx: clang++, std: 17, lto: true, sys_lua: true }
runs-on: ubuntu-latest
container:
image: wesnoth/wesnoth:2404-master
options: --tty # docker create options
env:
TOOL: ${{ matrix.tool }}
CFG: ${{ matrix.cfg }}
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
CXX_STD: ${{ matrix.std }}
LTO: ${{ matrix.lto }}
SYS_LUA: ${{ matrix.sys_lua }}
CLICOLOR_FORCE: 1
SDL_VIDEODRIVER: dummy
steps:
- { uses: actions/checkout@v4, with: { submodules: "recursive" } }
# 1) wesnothd and campaignd should be buildable without SDL2 being present
# 2) boost is installed via apt as well as built and installed into /usr/local (for _GLIBCXX_DEBUG support in boost program options)
# 3) mariadbpp currently has a deprecation warning that causes strict builds to fail
# scons doesn't build it for the wesnoth client and the boost tests, but cmake apparently does
- name: Build wesnoth, wesnothd, campaignd and unit tests
id: build # needed to check step outcome
run: |
case $TOOL in
scons)
build() {
ldconfig
scons "$@" build="$CFG" ctool="$CC" cxxtool="$CXX" cxx_std="$CXX_STD" \
extra_flags_config="-pipe" forum_user_handler=true \
nls=false enable_lto="$LTO" system_lua="$SYS_LUA" force_color=true \
jobs=2 --debug=time glibcxx_debug=true glibcxx_assertions=true compile_db=true
}
build strict=true wesnoth boost_unit_tests
build cdb
# disable all warnings since we have coverage on them in a standard build, and clang-tidy
# triggers false positive compiler warnings that clang itself won't
run-clang-tidy -quiet -use-color -j 2 -extra-arg="-w" -warnings-as-errors='*' '^(?!.*src/modules/|.*build/)'
apt remove -y -qq libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev
build strict=false wesnothd campaignd
;;
cmake)
build() {
ldconfig
cmake "$@" -DCMAKE_BUILD_TYPE="$CFG" -DCXX_STD="$CXX_STD" \
-DEXTRA_FLAGS_CONFIG="-pipe" -DENABLE_MYSQL=true \
-DENABLE_NLS=false -DENABLE_LTO="$LTO" -DFORCE_COLOR_OUTPUT=true -DLTO_JOBS=2 \
-DENABLE_SYSTEM_LUA="$SYS_LUA -DCLANG_TIDY=true" .
}
rm -R /usr/local/lib/cmake
rm /usr/local/lib/libboost*
rm -R /usr/local/include/boost
build -DENABLE_GAME=true -DENABLE_SERVER=false -DENABLE_CAMPAIGN_SERVER=false -DENABLE_TESTS=true -DENABLE_STRICT_COMPILATION=false
make conftests
make VERBOSE=1 -j2
apt remove -y -qq libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev
build -DENABLE_GAME=false -DENABLE_SERVER=true -DENABLE_CAMPAIGN_SERVER=true -DENABLE_TESTS=false -DENABLE_STRICT_COMPILATION=false
make VERBOSE=1 -j2
;;
esac
- name: Check path options
if: success() || steps.build.outcome == 'success'
run: |
./wesnoth --version
for opt in data userdata usercache
do
output=$(./wesnoth --nobanner --"$opt"-path)
if [ "$output" = "" ]; then printf 'option --%s-path prints nothing to stdout!\n' "$opt" >&2; exit 1; fi
printf '%s-path: %s\n' "$opt" "$output"
done
- name: WML validation
# only run on release builds (takes ~10 times as long on debug); since there are multiple release builds
# but running the following tests multiple times doesn't make much sense use cc==clang as the check
if: matrix.cc == 'clang' && (success() || steps.build.outcome == 'success')
run: ./utils/CI/schema_validation.sh
- name: Run WML tests
# only run on release builds (takes ~6 times as long on debug)
if: matrix.cc == 'clang' && (success() || steps.build.outcome == 'success')
run: ./run_wml_tests -v -v -g -c -t 20 -bt 1000 -a=--userdata-dir=ud
- name: Upload userdata files from WML unit tests (logs, replays)
if: matrix.cc == 'clang' && (success() || failure())
uses: actions/upload-artifact@v4
with:
name: WMLTest-userdata-Linux
path: ud
- name: Run play tests
if: success() || steps.build.outcome == 'success'
run: ./utils/CI/play_test_executor.sh
- name: Run MP tests
if: success() || steps.build.outcome == 'success'
run: ./utils/CI/mp_test_executor.sh
- name: Run unit tests
if: success() || steps.build.outcome == 'success'
run: ./run_boost_tests
steam-runtime:
runs-on: ubuntu-latest
steps:
- { uses: actions/checkout@v4, with: { submodules: "recursive" } }
- name: Steam Runtime
run: |
version=$(sed -n 's/#define VERSION "\(.*\)"/\1/p' src/wesconfig.h)
cd utils/dockerbuilds && ./make_steam_build
tar -cf "steambuild-$version.tar" steambuild
- name: Upload
uses: actions/upload-artifact@v4
with:
name: Steam-Linux
path: utils/dockerbuilds/steambuild-*.tar
mingw:
runs-on: ubuntu-latest
steps:
- { uses: actions/checkout@v4, with: { submodules: "recursive" } }
- name: MinGW Crosscompile
run: |
version=$(sed -n 's/#define VERSION "\(.*\)"/\1/p' src/wesconfig.h)
git archive --format=tar HEAD > "wesnoth-$version.tar"
tar -rf "wesnoth-$version.tar" src/modules/
bzip2 "wesnoth-$version.tar"
cd utils/dockerbuilds && ./make_mingw_build
mv mingwbuild/wesnoth*-win64.exe "wesnoth-$version-win64.exe"
- name: Upload Source
uses: actions/upload-artifact@v4
with:
name: Source
path: wesnoth-*.tar.bz2
- name: Upload Windows-Installer
uses: actions/upload-artifact@v4
with:
name: Windows-Installer
path: utils/dockerbuilds/wesnoth-*-win64.exe
flatpak:
runs-on: ubuntu-latest
container:
image: wesnoth/wesnoth:flatpak-master
options: --tty --cap-add=ALL --privileged # docker create options
steps:
- { uses: actions/checkout@v4, with: { submodules: "recursive", fetch-depth: 500, fetch-tags: true } }
- name: Flatpak
run: |
# write to an ignored filename so the build is not marked as modified
jq '.modules |= map(select(.name == "wesnoth").sources[0]={type:"dir",path:"."})' packaging/flatpak/org.wesnoth.Wesnoth.json > wesnoth-manifest.json
git config --global --add safe.directory "$PWD"
branch=ci-$(git describe || git log -n 1 --format=%h) # if git describe fails fall back to the commit hash
flatpak-builder --force-clean --default-branch="$branch" --disable-rofiles-fuse --jobs=2 wesnoth-app wesnoth-manifest.json
flatpak build-export export wesnoth-app "$branch"
flatpak build-bundle export wesnoth.flatpak org.wesnoth.Wesnoth "$branch" --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo
- name: Upload flatpak bundle
uses: actions/upload-artifact@v4
with:
name: Flatpak-Bundle
path: wesnoth.flatpak
translations:
runs-on: ubuntu-latest
container:
image: wesnoth/wesnoth:2404-master
env:
LANGUAGE: en_US.UTF-8
LANG: en_US.UTF-8
LC_ALL: en_US.UTF-8
CLICOLOR_FORCE: 1
steps:
- uses: actions/checkout@v4
with:
submodules: "recursive"
- name: Translations
run: |
cmake -DENABLE_NLS=true -DENABLE_GAME=false -DENABLE_SERVER=false -DENABLE_CAMPAIGN_SERVER=false -DENABLE_TESTS=false -DENABLE_POT_UPDATE_TARGET=TRUE .
make update-po4a-man; echo "Ran make update-po4a-man"
make update-po4a-manual; echo "Ran make update-po4a-manual"
make pot-update; echo "Ran make pot-update"
make mo-update; echo "Ran make mo-update"
make clean
scons translations build=release --debug=time nls=true jobs=2; echo "Ran scons translations"
scons pot-update; echo "Ran scons pot-update"
scons update-po4a; echo "Ran scons update-po4a"
scons manual
macos-intel:
strategy:
fail-fast: false
matrix:
cfg: [ Release ]
runs-on: macos-13
env:
CFG: ${{ matrix.cfg }}
steps:
- uses: actions/checkout@v4
with:
submodules: "recursive"
- name: Get dependencies
run: |
HOMEBREW_NO_AUTO_UPDATE=1 brew install scons
./projectfiles/Xcode/Fix_Xcode_Dependencies
- name: Build translations
run: scons translations build=release --debug=time nls=true jobs=2
- name: Build wesnoth and unit tests
working-directory: projectfiles/Xcode
run: |
xcodebuild ARCHS=x86_64 -project "The Battle for Wesnoth.xcodeproj" -target "The Battle for Wesnoth" -target "unit_tests" -configuration "$CFG"
# xcodebuild or maybe clang do not appear to fail properly when input files cannot be found; double check executables were produced
[ -x "build/$CFG/The Battle for Wesnoth.app" ] || { printf 'Failed to build wesnoth executable!\n' >&2; exit 1; }
[ -x "build/$CFG/unit_tests" ] || { printf 'Failed to build unit test executable!\n' >&2; exit 1; }
- name: Create disk image
working-directory: projectfiles/Xcode
continue-on-error: true # allow failures since this is not essential and it does fail spuriously (hdiutil: create failed - Resource busy)
run: hdiutil create -volname "Wesnoth_$CFG" -fs 'HFS+' -srcfolder "build/$CFG" -ov -format UDBZ "Wesnoth_${CFG}.dmg"
- name: Upload disk image
uses: actions/upload-artifact@v4
with:
name: MacOS ${{ matrix.cfg }} disk image
path: projectfiles/Xcode/Wesnoth_${{ matrix.cfg }}.dmg
- name: Run WML tests
if: matrix.cfg == 'Release'
run: ./run_wml_tests -g -c -t 30 -bt 350 -p "projectfiles/Xcode/build/$CFG/The Battle for Wesnoth.app/Contents/MacOS/The Battle for Wesnoth" -a=--userdata-dir="$PWD/ud"
- name: Upload userdata files from WML unit tests (logs, replays)
if: matrix.cfg == 'Release' && (success() || failure())
uses: actions/upload-artifact@v4
with:
name: WMLTest-userdata-MacOS
path: ud
- name: Run unit tests
run: ./run_boost_tests --path=projectfiles/Xcode/build/"$CFG" --executable=unit_tests
windows:
strategy:
fail-fast: false
matrix:
cfg: [Release]
env:
CFG: ${{ matrix.cfg }}
VCPKG_FEATURE_FLAGS: dependencygraph
permissions:
contents: write # for dependency graph
defaults:
run:
shell: cmd
runs-on: windows-latest
steps:
- { uses: actions/checkout@v4, with: { submodules: "recursive" } }
- name: Make version of the runner image (https://github.com/actions/runner-images/releases) accessible to expression
run: echo IMAGE_VERSION=%ImageVersion%>> %GITHUB_ENV%
- name: Cache object files
id: windows-cache
uses: actions/cache@v4
with:
path: vcpkg_installed # vcpkg generates this dir next to vcpkg.json
# the final key part needs to be changed if anything in the build process changes that is not already included here
key: win-cache-master-${{ matrix.cfg }}-${{ env.IMAGE_VERSION }}-${{ hashFiles('vcpkg.json') }}-0001
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v2
- name: Run cmake
run: cmake -DCMAKE_BUILD_TYPE=%CFG% -DENABLE_GAME=true -DENABLE_SERVER=true -DENABLE_CAMPAIGN_SERVER=true
-DENABLE_TESTS=true -DENABLE_MYSQL=false -DENABLE_NLS=false
-DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_INSTALL_OPTIONS=--debug
-DVCPKG_TARGET_TRIPLET=x64-windows -DCMAKE_GENERATOR_PLATFORM=x64 -G "Visual Studio 17 2022" .
- name: Build wesnoth, wesnothd, campaignd and unit tests
run: MSBuild.exe wesnoth.sln -p:Configuration=%CFG%
- name: Run WML unit tests
if: matrix.cfg == 'Release'
run: python run_wml_tests -v -g -c -t 20 -p %CFG%/wesnoth.exe -a=--userdata-dir=ud
- name: Upload userdata files from WML unit tests (logs, replays)
if: matrix.cfg == 'Release' && (success() || failure())
uses: actions/upload-artifact@v4
with:
name: WMLTest-userdata-Windows
path: ud
# run after all other jobs have completed to check overall build status
notification:
runs-on: ubuntu-latest
needs: [checks, copyright, ubuntu, steam-runtime, mingw, flatpak, translations, macos-intel, windows]
if: failure() && github.event_name == 'push'
steps:
- name: Discord Notification
uses: rjstone/discord-webhook-notify@v1
with:
severity: error
webhookUrl: ${{ secrets.DISCORD_CI_WEBHOOK }}
description: |-
pusher: ${{ github.actor }}
commit: ${{ github.event.head_commit.message }}
commit url: ${{ github.event.head_commit.url }}
- name: Prepare message
if: github.event_name == 'push'
env:
MSG: ${{ github.event.head_commit.message }}
run: |
printf COMMIT_SUBJECT=%s "${MSG}" | head -n 1 >> "$GITHUB_ENV"
- name: IRC Notification
uses: rectalogic/notify-irc@v1
with:
channel: ${{ vars.IRC_CHANNEL }}
server: ${{ vars.IRC_SERVER }}
nickname: ${{ vars.IRC_NICK }} # is also used for sasl username
sasl_password: ${{ secrets.IRC_SASL_PASSWORD }}
message: "❌ ${{ github.workflow }} workflow run ${{ github.run_number }} failed on \x0306${{ github.ref_name }}\x0F: ${{ env.COMMIT_SUBJECT }} by \x0315${{ github.actor }}\x0F: \x0302${{ github.event.head_commit.url }}\x0F"

View file

@ -1,67 +0,0 @@
name: "CodeQL"
on:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
workflow_dispatch:
jobs:
analyze:
name: Analyze
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners
# Consider using larger runners for possible analysis time improvements.
runs-on: ubuntu-24.04
timeout-minutes: 360
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'cpp', 'python', 'javascript' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift' ]
# Use only 'java' to analyze code written in Java, Kotlin or both
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
steps:
- { name: Checkout repository, uses: actions/checkout@v4, with: { submodules: "recursive" } }
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
- name: Install dependencies
if: matrix.language == 'cpp'
run: |
utils/autorevision.sh -t h > src/revision.h
sudo apt update
sudo apt install scons libboost-system1.83-dev libboost-filesystem1.83-dev libboost-iostreams1.83-dev \
libboost-serialization1.83-dev libboost-locale1.83-dev libboost-regex1.83-dev libboost-random1.83-dev \
libboost-program-options1.83-dev libboost-thread1.83-dev libboost-context1.83-dev libboost-test-dev \
libboost-coroutine1.83-dev libboost-graph1.83-dev libasio-dev libsdl2-dev libsdl2-image-dev \
libsdl2-mixer-dev libvorbis-dev libpango1.0-dev libssl-dev libcurl4-openssl-dev liblua5.4-dev
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
- name: Autobuild
uses: github/codeql-action/autobuild@v3
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"

View file

@ -1,88 +0,0 @@
name: Image metadata check CI
on:
push:
branches: [ master ]
paths: [ '**.webp', '**.png', '**.jpg', '**.jpeg' ]
pull_request:
paths: [ '**.webp', '**.png', '**.jpg', '**.jpeg' ]
permissions:
contents: read
jobs:
build:
name: Image Metadata
runs-on: ubuntu-latest
env:
BASE_SHA: ${{ github.event_name == 'push' && github.event.before || github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event_name == 'push' && github.event.after || github.event.pull_request.head.sha }}
steps:
- name: exiftool installation
run: |
sudo apt-get install --assume-yes exiftool
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: check image EXIF metadata
run: |
mapfile -t image_files < <(git diff --name-only --diff-filter=d "$BASE_SHA" "$HEAD_SHA" | grep -E '\.(webp|je?pg)$')
# cycle through the changed image files, make sure they have the right fields
for file in "${image_files[@]}"; do
# check Artist tag, fail if missing
artist="$(exiftool -p '$Artist' "$file")"
if [ "$artist" ]; then
printf 'Artist tag in %s is %s\n' "$file" "$artist"
else
printf 'no Artist EXIF tag in %s\n' "$file"
exit 1
fi
# check Copyright tag, fail if missing or wrong type
copyright="$(exiftool -p '$Copyright' "$file")"
case $copyright in
'GNU GPL v2+'|'CC BY-SA 4.0'|CC0)
printf 'Copyright tag in %s is %s\n' "$file" "$copyright"
;;
'')
printf 'no Copyright EXIF tag in %s\n' "$file"
exit 1
;;
*)
printf 'Copyright tag %s in file %s is not an accepted license! Must be one of: "GNU GPL v2+", "CC BY-SA 4.0", "CC0"\n' "$copyright" "$file"
exit 1
;;
esac
done
- name: check png XMP metadata
run: |
mapfile -t image_files < <(git diff --name-only --diff-filter=d "$BASE_SHA" "$HEAD_SHA" | grep -E '\.png$')
# cycle through the changed image files, make sure they have the right fields
for file in "${image_files[@]}"; do
# check Creator tag, fail if missing
artist="$(exiftool -p '$XMP:Creator' "$file")"
if [ "$artist" ]; then
printf 'Creator tag in %s is %s\n' "$file" "$artist"
else
printf 'no Creator XMP tag in %s\n' "$file"
exit 1
fi
# check Rights tag, fail if missing or wrong type
copyright="$(exiftool -p '$XMP:Rights' "$file")"
case $copyright in
'GNU GPL v2+'|'CC BY-SA 4.0'|CC0)
printf 'Rights tag in %s is %s\n' "$file" "$copyright"
;;
'')
printf 'no Rights XMP tag in %s\n' "$file"
exit 1
;;
*)
printf 'Rights tag %s in file %s is not an accepted license! Must be one of: "GNU GPL v2+", "CC BY-SA 4.0", "CC0"\n' "$copyright" "$file"
exit 1
;;
esac
done

View file

@ -1,45 +0,0 @@
name: IRC Notification
on:
push:
pull_request_target:
types: [ opened, closed, reopened ]
issues:
types: [ opened, closed, reopened ]
# create: # creation also gets mentioned when pushing
delete:
jobs:
notify:
if: vars.IRC_CHANNEL != '' # skip if not set up (like in a fork for example)
runs-on: ubuntu-latest
steps:
- name: Prepare message
if: github.event_name == 'push'
env:
MSG: ${{ github.event.head_commit.message }}
run: |
printf COMMIT_SUBJECT=%s "${MSG}" | head -n 1 >> "$GITHUB_ENV"
- uses: rectalogic/notify-irc@v1
env: { COLOR: "\x03", BLUE: "02", PURPLE: "06", ACTOR: "\x0315${{ github.actor }}\x03" }
with:
channel: ${{ vars.IRC_CHANNEL }}
server: ${{ vars.IRC_SERVER }}
nickname: ${{ vars.IRC_NICK }} # is also used for sasl username
sasl_password: ${{ secrets.IRC_SASL_PASSWORD }}
# See https://docs.github.com/en/actions/learn-github-actions/expressions
# github context: https://docs.github.com/en/actions/learn-github-actions/contexts#github-context
# github.event data: https://docs.github.com/en/webhooks-and-events/webhooks/webhook-events-and-payloads
message: >-
${{ (github.event_name == 'push' &&
format('{1} {2} {0}{3}{4}{0}: {5}: {0}{6}{7}{0}', env.COLOR, env.ACTOR,
(github.event.created && (github.event.tag && 'tagged' || 'created')) || (github.event.deleted && 'deleted') || (github.event.forced && 'force-pushed to') || 'pushed to',
env.PURPLE, github.ref_name, env.COMMIT_SUBJECT, env.BLUE, github.event.compare)
) || (github.event_name == 'pull_request_target' &&
format('{1} {2} PR #{3} for {0}{4}{5}{0}: {6}: {0}{7}{8}{0}', env.COLOR, env.ACTOR, github.event.action, github.event.number, env.PURPLE, github.base_ref, github.event.pull_request.title, env.BLUE, github.event.pull_request.html_url)
) || (github.event_name == 'issues' &&
format('{1} {2} issue {0}{3}#{4}{0}: {5}: {0}{6}{7}{0}', env.COLOR, env.ACTOR, github.event.action, env.PURPLE, github.event.issue.number, github.event.issue.title, env.BLUE, github.event.issue.html_url)
) || ((github.event_name == 'create' || github.event_name == 'delete') &&
format('{1} {2}d {3} {0}{4}{5}{0}', env.COLOR, env.ACTOR, github.event_name, github.event.ref_type, env.PURPLE, github.event.ref)
)
}}
_debug: ${{ toJSON(github) }}

View file

@ -1,12 +0,0 @@
name: "Pull Request Labeler"
on:
- pull_request_target
jobs:
triage:
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@main

View file

@ -1,78 +0,0 @@
name: Map Diff
on:
pull_request_target:
paths:
- '**.map'
jobs:
comment-map-diff:
permissions:
pull-requests: write
continue-on-error: true
runs-on: ubuntu-20.04
defaults:
run:
working-directory: utils/wesnoth-map-diff
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '16'
- name: Package install
run: npm install
- name: Package build
run: npm run build:prod
- name: Get maps diff
id: get-maps-diff
env:
SHA: ${{ github.event.pull_request.head.sha }}
run: |
sudo apt-get -y -q install pngquant
comment_body=""
log() { printf '\e[1m%s\e[m\n' "$*"; } # write log message in bold
## Get changed maps
git fetch --depth=1 origin "$SHA"
mapfile -t map_paths < <(git diff --name-only HEAD "$SHA" | grep '\.map$')
for map_path in "${map_paths[@]}"
do
## Get new map version
log "Check out $map_path from $SHA..."
new_map=${map_path##*/}
git show "$SHA":"$map_path" > "$new_map"
log "Generate map diff image for $map_path..."
node build/index.js "../../$map_path" "$new_map" diff_image.png
identify diff_image.png
log 'Compress image...'
pngquant --force --output diff_image.png diff_image.png
identify diff_image.png
log 'Uploading diff_image.png...'
json=$(curl -s -F image=@diff_image.png https://api.imgur.com/3/upload | tee /dev/stderr) || continue
log 'Generating HTML comment...'
html=$(jq -r --arg path "$map_path" 'if .data.link != null
then @html "<h3>\($path)</h3><img src=\"\(.data.link)\" /> <br />"
elif has("errors") then .errors[].status | halt_error
else "Unexpected JSON structure!\n" | halt_error end' <<< "$json") || continue
comment_body+=$html
done
printf 'COMMENT_BODY=%s\n' "$comment_body" >> "$GITHUB_OUTPUT"
- name: Find comment
uses: peter-evans/find-comment@v2
id: fc
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: 'github-actions[bot]'
- name: Add comment
uses: peter-evans/create-or-update-comment@v3
with:
issue-number: ${{ github.event.pull_request.number }}
comment-id: ${{ steps.fc.outputs.comment-id }}
edit-mode: replace
body: ${{ steps.get-maps-diff.outputs.COMMENT_BODY }}

235
.gitignore vendored
View file

@ -1,228 +1,33 @@
# stderr.txt output + copies
stderr*.txt
stdout*.txt
# project files
.*project
Project.*
# Makefiles
*.swp
.DS_Store
wesnoth
wesnothd
make_translation
merge_translations
Makefile
Makefile.in
# cmake
CMakeFiles
CMakeLists.txt.user*
cmake_install.cmake
CPack*Config.cmake
uninstall.cmake
CMakeCache.txt
install_manifest.txt
out/**/*
CTestTestfile.cmake
DartConfiguration.tcl
Testing/*
doc/CTestTestfile.cmake
doc/design/CTestTestfile.cmake
doc/man/CTestTestfile.cmake
doc/manual/CTestTestfile.cmake
src/CTestTestfile.cmake
src/Testing/
# scons
.scons-option-cache
*sconsign.dblite
.sconf_temp
buildlog.txt
# XCode
projectfiles/Xcode/**/build
projectfiles/Xcode/**/DerivedData
projectfiles/Xcode/**/Headers
projectfiles/Xcode/**/temp
projectfiles/Xcode/**/Index
projectfiles/Xcode/**/Wesnoth.dmgCanvas
projectfiles/Xcode/**/*.mode1v3
projectfiles/Xcode/**/*.pbxuser
projectfiles/Xcode/**/xcuserdata
projectfiles/Xcode/**/*.xcworkspace
!projectfiles/Xcode/**/project.pbxproj
# CodeBlocks
projectfiles/**/.clang
projectfiles/**/cb
projectfiles/**/wesnoth.tags
projectfiles/**/wesnoth.workspace.*
projectfiles/**/*.depend
projectfiles/**/*.layout
projectfiles/**/*_build_log.html
projectfiles/**/*objs*
# Visual Studio
.vscode
/.vs
vcpkg_installed/
*.vcxproj
*.vcxproj.filters
doc/**/*.vcxproj
doc/**/*.vcxproj.filters
src/**/*.vcxproj
src/**/*.vcxproj.filters
vcpkg-manifest-install.log
# CLion
/.idea
cmake-build-debug
cmake-build-release
# eclipse
.settings
!utils/umc_dev/org.wesnoth*/.settings/
!utils/umc_dev/org.wesnoth*/.project
# KDevelop caches (KDevelop 4.3.1, KDE Development Platform 4.8.4).
*.kate-swp
# autotools
config.h
config.h.in
config.log
config.status
configure
configure.lineno
aclocal.m4
autom4te.cache
stamp-h1
# build directories
/wesnoth*
/wesnothd*
/campaignd*
/cutter*
cutter/
/exploder*
/build/
Release
.libs
config.h
config.log
config.status
configure.lineno
Makefile.in
aclocal.m4
config.h.in
configure
translations
6not
Debug
ReleaseDEBUG
Test_Debug
Test_Release
Debug (fast)
tags
/schema_generator*
/schema_validator*
/create_images*
/wesmage*
pgo_data/
# build results etc.
wesnoth_zip
wesnoth.exp
wesnoth.ilk
wesnoth.lib
wesnoth.ncb
wesnoth.suo
wesnoth.opt
wesnoth.plg
userdata
Lib
*.exe
*.dll
*.so
compile_commands.json
# library files
.libs
[Ll]ib
!data/ai/formula/lib/
!src/gui/lib/
# release-only directories
translations
userdata
# testing
/test*
/boost_unit_tests*
!/test_wrapper.sh
src/test
error*.log
boost_test_result.xml
*build*.sh
boost_tests.log
# translations
locales
make_translation
merge_translations
*.gmo
po/wesnoth*/POTFILES*
po/**/pot-update.sh
po/**/stamp-po
po/**/remove-potcdate.s*
po/**/Makefile*
!po/wesnoth-manpages/Makefile
!po/wesnoth-manual/Makefile
# tools
data/tools/unit_tree/**/files
data/tools/unit_tree/**/reports
data/tools/unit_tree/**/Locale
data/tools/macro_reference.html
about.wiki
# doc
doc/doxygen/html
doc/manual/**/*.xml
# keep src clean from tools
src/**/wesnoth/
src/**/exploder
src/**/wesnoth_addon_manager
src/**/wmllint
src/**/wmlscope
src/**/wmlindent
# file for loading lua from within test scenario on-the-fly
data/lua/**/code.lua
# previous .gitignore files
po/**/.gitignore
images/**/.gitignore
data/core/images/**/.gitignore
data/campaigns/**/images/**/.gitignore
# OS created files
.DS_Store
[Tt]humbs.db
*Neuer Ordner*
.directory
fonts/.uuid
# extensions
*.pyc
*.sw[po]
*.pbl
*.xhtml
*.[ao]
*.out
*~
.deps
.dirstamp
*.cfg-bak
*.orig
# might be good to have, but not in data
data/**/*.xcf
data/**/*.psd
# uncategorized
revision*
config.h
6not
.kdev*
callgrind.out.*
data/dist
clean.sh
widgets_tested.log
# clangd cache
.cache/clangd
*.txt

7
.gitmodules vendored
View file

@ -1,7 +0,0 @@
[submodule "src/modules/mariadbpp"]
path = src/modules/mariadbpp
url = https://github.com/viaduck/mariadbpp.git
ignore = untracked
[submodule "src/modules/lua"]
path = src/modules/lua
url = https://github.com/lua/lua.git

View file

@ -1,15 +0,0 @@
-- ignore line length warnings
max_line_length=false
max_code_line_length=false
max_string_line_length=false
max_comment_line_length=false
-- show the warning/error codes as well
codes=true
-- don't show files with no issues
quiet=1
-- don't show undefined variable usage
-- there are thousands of warnings here because luacheck is unaware of Wesnoth's lua environment and has no way to check which have been loaded
global=false
-- don't show unused variables
unused=false
exclude_files={"src/modules/lua/testes/*.lua"}

986
ABOUT-NLS Normal file
View file

@ -0,0 +1,986 @@
1 Notes on the Free Translation Project
***************************************
Free software is going international! The Free Translation Project is
a way to get maintainers of free software, translators, and users all
together, so that free software will gradually become able to speak many
languages. A few packages already provide translations for their
messages.
If you found this `ABOUT-NLS' file inside a distribution, you may
assume that the distributed package does use GNU `gettext' internally,
itself available at your nearest GNU archive site. But you do _not_
need to install GNU `gettext' prior to configuring, installing or using
this package with messages translated.
Installers will find here some useful hints. These notes also
explain how users should proceed for getting the programs to use the
available translations. They tell how people wanting to contribute and
work on translations can contact the appropriate team.
When reporting bugs in the `intl/' directory or bugs which may be
related to internationalization, you should tell about the version of
`gettext' which is used. The information can be found in the
`intl/VERSION' file, in internationalized packages.
1.1 Quick configuration advice
==============================
If you want to exploit the full power of internationalization, you
should configure it using
./configure --with-included-gettext
to force usage of internationalizing routines provided within this
package, despite the existence of internationalizing capabilities in the
operating system where this package is being installed. So far, only
the `gettext' implementation in the GNU C library version 2 provides as
many features (such as locale alias, message inheritance, automatic
charset conversion or plural form handling) as the implementation here.
It is also not possible to offer this additional functionality on top
of a `catgets' implementation. Future versions of GNU `gettext' will
very likely convey even more functionality. So it might be a good idea
to change to GNU `gettext' as soon as possible.
So you need _not_ provide this option if you are using GNU libc 2 or
you have installed a recent copy of the GNU gettext package with the
included `libintl'.
1.2 INSTALL Matters
===================
Some packages are "localizable" when properly installed; the programs
they contain can be made to speak your own native language. Most such
packages use GNU `gettext'. Other packages have their own ways to
internationalization, predating GNU `gettext'.
By default, this package will be installed to allow translation of
messages. It will automatically detect whether the system already
provides the GNU `gettext' functions. If not, the included GNU
`gettext' library will be used. This library is wholly contained
within this package, usually in the `intl/' subdirectory, so prior
installation of the GNU `gettext' package is _not_ required.
Installers may use special options at configuration time for changing
the default behaviour. The commands:
./configure --with-included-gettext
./configure --disable-nls
will, respectively, bypass any pre-existing `gettext' to use the
internationalizing routines provided within this package, or else,
_totally_ disable translation of messages.
When you already have GNU `gettext' installed on your system and run
configure without an option for your new package, `configure' will
probably detect the previously built and installed `libintl.a' file and
will decide to use this. This might not be desirable. You should use
the more recent version of the GNU `gettext' library. I.e. if the file
`intl/VERSION' shows that the library which comes with this package is
more recent, you should use
./configure --with-included-gettext
to prevent auto-detection.
The configuration process will not test for the `catgets' function
and therefore it will not be used. The reason is that even an
emulation of `gettext' on top of `catgets' could not provide all the
extensions of the GNU `gettext' library.
Internationalized packages usually have many `po/LL.po' files, where
LL gives an ISO 639 two-letter code identifying the language. Unless
translations have been forbidden at `configure' time by using the
`--disable-nls' switch, all available translations are installed
together with the package. However, the environment variable `LINGUAS'
may be set, prior to configuration, to limit the installed set.
`LINGUAS' should then contain a space separated list of two-letter
codes, stating which languages are allowed.
1.3 Using This Package
======================
As a user, if your language has been installed for this package, you
only have to set the `LANG' environment variable to the appropriate
`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code,
and `CC' is an ISO 3166 two-letter country code. For example, let's
suppose that you speak German and live in Germany. At the shell
prompt, merely execute `setenv LANG de_DE' (in `csh'),
`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
This can be done from your `.login' or `.profile' file, once and for
all.
You might think that the country code specification is redundant.
But in fact, some languages have dialects in different countries. For
example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The
country code serves to distinguish the dialects.
The locale naming convention of `LL_CC', with `LL' denoting the
language and `CC' denoting the country, is the one use on systems based
on GNU libc. On other systems, some variations of this scheme are
used, such as `LL' or `LL_CC.ENCODING'. You can get the list of
locales supported by your system for your country by running the command
`locale -a | grep '^LL''.
Not all programs have translations for all languages. By default, an
English message is shown in place of a nonexistent translation. If you
understand other languages, you can set up a priority list of languages.
This is done through a different environment variable, called
`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG'
for the purpose of message handling, but you still need to have `LANG'
set to the primary language; this is required by other parts of the
system libraries. For example, some Swedish users who would rather
read translations in German than English for when Swedish is not
available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
Special advice for Norwegian users: The language code for Norwegian
bokma*l changed from `no' to `nb' recently (in 2003). During the
transition period, while some message catalogs for this language are
installed under `nb' and some older ones under `no', it's recommended
for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and
older translations are used.
In the `LANGUAGE' environment variable, but not in the `LANG'
environment variable, `LL_CC' combinations can be abbreviated as `LL'
to denote the language's main dialect. For example, `de' is equivalent
to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
(Portuguese as spoken in Portugal) in this context.
1.4 Translating Teams
=====================
For the Free Translation Project to be a success, we need interested
people who like their own language and write it well, and who are also
able to synergize with other translators speaking the same language.
Each translation team has its own mailing list. The up-to-date list of
teams can be found at the Free Translation Project's homepage,
`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams"
area.
If you'd like to volunteer to _work_ at translating messages, you
should become a member of the translating team for your own language.
The subscribing address is _not_ the same as the list itself, it has
`-request' appended. For example, speakers of Swedish can send a
message to `sv-request@li.org', having this message body:
subscribe
Keep in mind that team members are expected to participate
_actively_ in translations, or at solving translational difficulties,
rather than merely lurking around. If your team does not exist yet and
you want to start one, or if you are unsure about what to do or how to
get started, please write to `translation@iro.umontreal.ca' to reach the
coordinator for all translator teams.
The English team is special. It works at improving and uniformizing
the terminology in use. Proven linguistic skill are praised more than
programming skill, here.
1.5 Available Packages
======================
Languages are not equally supported in all packages. The following
matrix shows the current state of internationalization, as of April
2005. The matrix shows, in regard of each package, for which languages
PO files have been submitted to translation coordination, with a
translation percentage of at least 50%.
Ready PO files af am ar az be bg bs ca cs cy da de el en en_GB
+-------------------------------------------------+
GNUnet | |
a2ps | [] [] [] [] [] |
aegis | () |
ant-phone | () |
anubis | [] |
ap-utils | |
aspell | [] [] [] [] |
bash | [] [] |
batchelor | [] |
bfd | |
bibshelf | [] |
binutils | [] |
bison | [] [] |
bluez-pin | [] [] [] [] |
clisp | [] [] |
console-tools | [] [] |
coreutils | [] [] [] [] |
cpio | |
cpplib | [] [] [] |
darkstat | [] () [] |
dialog | [] [] [] [] [] [] |
diffutils | [] [] [] [] [] |
doodle | [] |
e2fsprogs | [] [] |
enscript | [] [] [] [] |
error | [] [] [] [] |
fetchmail | [] () [] [] [] |
fileutils | [] [] |
findutils | [] [] [] |
flex | [] [] [] |
fslint | [] |
gas | |
gawk | [] [] [] |
gbiff | [] |
gcal | [] |
gcc | [] |
gettext-examples | [] [] [] [] |
gettext-runtime | [] [] [] [] |
gettext-tools | [] [] |
gimp-print | [] [] [] [] |
gip | |
gliv | [] |
glunarclock | |
gmult | [] [] |
gnubiff | () |
gnucash | [] () () [] |
gnucash-glossary | [] () |
gpe-aerial | [] [] |
gpe-beam | [] [] |
gpe-calendar | [] [] |
gpe-clock | [] [] |
gpe-conf | [] [] |
gpe-contacts | |
gpe-edit | [] |
gpe-go | [] |
gpe-login | [] [] |
gpe-ownerinfo | [] [] |
gpe-sketchbook | [] [] |
gpe-su | [] [] |
gpe-taskmanager | [] [] |
gpe-timesheet | [] |
gpe-today | [] [] |
gpe-todo | [] [] |
gphoto2 | [] [] [] [] |
gprof | [] [] |
gpsdrive | () () |
gramadoir | [] [] |
grep | [] [] [] [] [] [] |
gretl | |
gsasl | [] |
gss | |
gst-plugins | [] [] [] [] [] [] |
gstreamer | [] [] [] [] [] |
gtick | [] () |
gtkspell | [] [] [] |
hello | [] [] [] [] |
id-utils | [] [] |
impost | |
indent | [] [] |
iso_3166 | |
iso_3166_1 | [] [] [] [] [] |
iso_3166_2 | |
iso_3166_3 | [] |
iso_4217 | |
iso_639 | |
jpilot | [] |
jtag | |
jwhois | |
kbd | [] [] [] [] |
latrine | () |
ld | [] |
libc | [] [] [] [] [] |
libextractor | |
libgpewidget | [] [] [] |
libgsasl | |
libiconv | [] [] [] [] [] |
libidn | |
lifelines | [] () |
lilypond | [] |
lingoteach | |
lynx | [] [] [] [] |
m4 | [] [] [] [] |
mailutils | [] |
make | [] [] |
man-db | [] () [] [] |
minicom | [] [] |
mysecretdiary | [] [] |
nano | [] () [] |
nano_1_0 | [] () [] [] |
opcodes | [] |
parted | [] [] [] [] |
psmisc | |
ptx | [] [] [] |
pwdutils | |
python | |
radius | [] |
recode | [] [] [] [] [] |
rpm | [] [] |
screem | |
scrollkeeper | [] [] [] [] [] [] [] [] |
sed | [] [] |
sh-utils | [] [] |
shared-mime-info | [] [] |
sharutils | [] [] [] [] [] |
silky | |
skencil | [] () |
sketch | [] () |
solfege | [] |
soundtracker | [] [] |
sp | [] |
stardict | [] |
tar | |
texinfo | [] [] |
textutils | [] [] [] |
tin | () () |
tp-robot | [] |
tuxpaint | [] [] [] [] [] [] [] |
unicode-han-tra... | |
unicode-transla... | |
util-linux | [] [] [] [] |
vorbis-tools | [] [] [] [] |
wastesedge | () |
wdiff | [] [] [] [] |
wget | [] [] [] [] [] [] |
xchat | [] [] [] [] |
xkeyboard-config | |
xpad | |
+-------------------------------------------------+
af am ar az be bg bs ca cs cy da de el en en_GB
10 0 0 2 7 4 0 41 43 3 52 90 20 1 15
eo es et eu fa fi fr ga gl he hr hu id is it
+-----------------------------------------------+
GNUnet | |
a2ps | [] [] [] () |
aegis | |
ant-phone | [] |
anubis | [] |
ap-utils | [] |
aspell | [] [] |
bash | [] [] [] [] |
batchelor | [] [] |
bfd | [] |
bibshelf | [] [] [] |
binutils | [] [] |
bison | [] [] [] [] [] [] |
bluez-pin | [] [] [] [] [] [] |
clisp | [] [] |
console-tools | |
coreutils | [] [] [] [] [] |
cpio | [] [] |
cpplib | [] [] |
darkstat | [] () [] [] [] |
dialog | [] [] [] [] [] [] [] [] |
diffutils | [] [] [] [] [] [] [] [] [] [] |
doodle | [] [] |
e2fsprogs | [] [] [] |
enscript | [] [] |
error | [] [] [] [] [] |
fetchmail | [] |
fileutils | [] [] [] [] [] [] |
findutils | [] [] [] [] [] |
flex | [] [] [] |
fslint | [] |
gas | [] [] |
gawk | [] [] [] [] |
gbiff | [] |
gcal | [] [] |
gcc | [] |
gettext-examples | [] [] [] [] |
gettext-runtime | [] [] [] [] [] [] |
gettext-tools | [] [] [] |
gimp-print | [] [] |
gip | [] [] [] |
gliv | () |
glunarclock | [] [] [] |
gmult | [] [] [] |
gnubiff | () () |
gnucash | [] () [] |
gnucash-glossary | [] [] |
gpe-aerial | [] [] |
gpe-beam | [] [] |
gpe-calendar | [] [] [] [] |
gpe-clock | [] [] [] |
gpe-conf | [] |
gpe-contacts | [] |
gpe-edit | [] [] |
gpe-go | [] [] |
gpe-login | [] [] [] |
gpe-ownerinfo | [] [] [] [] [] |
gpe-sketchbook | [] [] |
gpe-su | [] [] [] |
gpe-taskmanager | [] [] [] |
gpe-timesheet | [] [] [] [] |
gpe-today | [] [] [] [] |
gpe-todo | [] [] [] |
gphoto2 | [] [] [] [] [] |
gprof | [] [] [] |
gpsdrive | () () [] () |
gramadoir | [] [] |
grep | [] [] [] [] [] [] [] [] [] [] [] [] |
gretl | [] [] [] |
gsasl | [] [] [] |
gss | [] |
gst-plugins | [] [] [] |
gstreamer | [] |
gtick | [] [] [] [] [] |
gtkspell | [] [] [] [] [] [] |
hello | [] [] [] [] [] [] [] [] [] [] [] [] [] [] |
id-utils | [] [] [] [] |
impost | [] [] |
indent | [] [] [] [] [] [] [] [] [] [] [] |
iso_3166 | [] [] [] |
iso_3166_1 | [] [] [] [] [] [] [] |
iso_3166_2 | [] |
iso_3166_3 | [] |
iso_4217 | [] [] [] |
iso_639 | [] [] [] [] |
jpilot | [] [] |
jtag | [] |
jwhois | [] [] [] [] [] |
kbd | [] [] |
latrine | [] [] [] |
ld | [] [] |
libc | [] [] [] [] [] |
libextractor | |
libgpewidget | [] [] [] [] [] |
libgsasl | [] [] |
libiconv | [] [] [] [] [] [] [] [] [] [] [] |
libidn | [] [] |
lifelines | () |
lilypond | [] |
lingoteach | [] [] [] |
lynx | [] [] [] |
m4 | [] [] [] [] |
mailutils | [] [] |
make | [] [] [] [] [] [] [] |
man-db | () |
minicom | [] [] [] [] |
mysecretdiary | [] [] [] |
nano | [] [] () [] [] |
nano_1_0 | [] [] [] [] [] |
opcodes | [] [] |
parted | [] [] [] [] |
psmisc | [] [] |
ptx | [] [] [] [] [] [] [] [] [] |
pwdutils | |
python | |
radius | [] [] |
recode | [] [] [] [] [] [] [] [] |
rpm | [] |
screem | |
scrollkeeper | [] [] [] |
sed | [] [] [] [] [] |
sh-utils | [] [] [] [] [] [] [] |
shared-mime-info | [] [] [] [] [] [] |
sharutils | [] [] [] [] [] [] [] |
silky | [] |
skencil | [] [] |
sketch | [] [] |
solfege | [] |
soundtracker | [] [] [] |
sp | [] |
stardict | [] |
tar | [] [] [] [] [] |
texinfo | [] [] [] |
textutils | [] [] [] [] [] |
tin | [] () |
tp-robot | [] [] |
tuxpaint | [] [] [] [] [] [] [] [] [] |
unicode-han-tra... | |
unicode-transla... | [] [] |
util-linux | [] [] [] [] [] [] |
vorbis-tools | [] [] |
wastesedge | () |
wdiff | [] [] [] [] [] [] [] [] |
wget | [] [] [] [] [] [] [] [] [] [] |
xchat | [] [] [] [] [] |
xkeyboard-config | |
xpad | [] [] [] |
+-----------------------------------------------+
eo es et eu fa fi fr ga gl he hr hu id is it
13 85 21 15 2 35 115 45 17 8 6 40 27 1 45
ja ko ku lg lt lv mk mn ms mt nb nl nn no nso
+-----------------------------------------------+
GNUnet | |
a2ps | () [] [] () |
aegis | () |
ant-phone | [] |
anubis | [] [] [] |
ap-utils | |
aspell | [] [] |
bash | [] |
batchelor | [] |
bfd | |
bibshelf | |
binutils | |
bison | [] [] [] |
bluez-pin | [] |
clisp | [] |
console-tools | |
coreutils | [] [] |
cpio | |
cpplib | |
darkstat | [] [] |
dialog | [] |
diffutils | [] [] [] |
doodle | |
e2fsprogs | |
enscript | [] |
error | [] |
fetchmail | [] [] |
fileutils | [] [] |
findutils | [] |
flex | [] [] |
fslint | [] |
gas | |
gawk | [] [] |
gbiff | [] |
gcal | |
gcc | |
gettext-examples | [] [] |
gettext-runtime | [] [] [] |
gettext-tools | [] [] |
gimp-print | [] [] |
gip | [] |
gliv | [] |
glunarclock | [] [] |
gmult | [] |
gnubiff | |
gnucash | () () [] |
gnucash-glossary | [] |
gpe-aerial | [] |
gpe-beam | [] |
gpe-calendar | [] |
gpe-clock | [] |
gpe-conf | [] |
gpe-contacts | |
gpe-edit | [] |
gpe-go | [] |
gpe-login | [] |
gpe-ownerinfo | [] |
gpe-sketchbook | [] |
gpe-su | [] |
gpe-taskmanager | [] [] |
gpe-timesheet | [] |
gpe-today | [] |
gpe-todo | [] |
gphoto2 | [] [] |
gprof | |
gpsdrive | () () () |
gramadoir | () |
grep | [] [] [] |
gretl | |
gsasl | [] |
gss | |
gst-plugins | [] |
gstreamer | [] |
gtick | [] |
gtkspell | [] [] |
hello | [] [] [] [] [] [] [] [] |
id-utils | [] |
impost | |
indent | [] [] |
iso_3166 | [] |
iso_3166_1 | [] [] |
iso_3166_2 | [] |
iso_3166_3 | [] |
iso_4217 | [] [] [] |
iso_639 | [] [] [] |
jpilot | () () () |
jtag | |
jwhois | [] |
kbd | [] |
latrine | [] |
ld | |
libc | [] [] [] [] [] |
libextractor | |
libgpewidget | [] |
libgsasl | [] |
libiconv | [] |
libidn | |
lifelines | [] |
lilypond | [] |
lingoteach | [] |
lynx | [] [] |
m4 | [] [] |
mailutils | |
make | [] [] [] |
man-db | () |
minicom | [] |
mysecretdiary | [] |
nano | [] [] |
nano_1_0 | [] [] [] |
opcodes | [] |
parted | [] [] |
psmisc | [] [] |
ptx | [] [] [] |
pwdutils | |
python | |
radius | |
recode | [] |
rpm | [] [] |
screem | [] |
scrollkeeper | [] [] [] |
sed | [] [] |
sh-utils | [] [] |
shared-mime-info | [] [] [] [] |
sharutils | [] [] |
silky | [] |
skencil | |
sketch | |
solfege | [] [] |
soundtracker | |
sp | () |
stardict | [] [] |
tar | [] [] |
texinfo | [] [] [] |
textutils | [] [] [] |
tin | |
tp-robot | [] |
tuxpaint | [] [] [] [] [] [] |
unicode-han-tra... | |
unicode-transla... | |
util-linux | [] [] |
vorbis-tools | [] |
wastesedge | [] |
wdiff | [] [] |
wget | [] [] |
xchat | [] [] [] [] |
xkeyboard-config | [] |
xpad | [] |
+-----------------------------------------------+
ja ko ku lg lt lv mk mn ms mt nb nl nn no nso
33 11 1 1 1 2 2 3 11 0 15 96 7 5 0
or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta
+-------------------------------------------------+
GNUnet | |
a2ps | () [] [] [] [] [] [] |
aegis | () () |
ant-phone | [] |
anubis | [] [] [] |
ap-utils | () |
aspell | [] [] |
bash | [] [] [] |
batchelor | [] |
bfd | |
bibshelf | |
binutils | [] [] |
bison | [] [] [] [] [] |
bluez-pin | [] [] [] [] [] [] [] [] |
clisp | [] |
console-tools | [] |
coreutils | [] [] [] [] |
cpio | [] [] |
cpplib | |
darkstat | [] [] [] [] [] [] |
dialog | [] [] [] [] [] [] [] |
diffutils | [] [] [] [] [] [] |
doodle | [] |
e2fsprogs | [] [] |
enscript | [] [] [] [] |
error | [] [] [] |
fetchmail | [] () [] [] [] |
fileutils | [] [] [] [] [] |
findutils | [] [] [] [] [] [] |
flex | [] [] [] [] [] |
fslint | [] [] [] |
gas | |
gawk | [] [] [] [] |
gbiff | [] |
gcal | [] |
gcc | |
gettext-examples | [] [] [] [] [] [] |
gettext-runtime | [] [] [] [] [] [] [] |
gettext-tools | [] [] [] [] [] [] [] |
gimp-print | [] [] |
gip | [] [] [] |
gliv | [] [] [] |
glunarclock | [] [] [] [] [] [] |
gmult | [] [] [] [] |
gnubiff | () [] |
gnucash | () [] [] [] [] |
gnucash-glossary | [] [] [] |
gpe-aerial | [] [] [] [] [] [] |
gpe-beam | [] [] [] [] [] [] |
gpe-calendar | [] [] [] [] [] [] [] |
gpe-clock | [] [] [] [] [] [] [] |
gpe-conf | [] [] [] [] [] [] |
gpe-contacts | [] [] [] |
gpe-edit | [] [] [] [] [] [] [] |
gpe-go | [] [] [] [] [] |
gpe-login | [] [] [] [] [] [] [] |
gpe-ownerinfo | [] [] [] [] [] [] [] |
gpe-sketchbook | [] [] [] [] [] [] [] |
gpe-su | [] [] [] [] [] [] [] |
gpe-taskmanager | [] [] [] [] [] [] [] |
gpe-timesheet | [] [] [] [] [] [] [] |
gpe-today | [] [] [] [] [] [] [] |
gpe-todo | [] [] [] [] [] [] [] |
gphoto2 | [] [] [] [] |
gprof | [] [] [] |
gpsdrive | [] |
gramadoir | [] |
grep | [] [] [] [] [] [] [] |
gretl | [] |
gsasl | [] [] [] [] [] |
gss | [] [] [] |
gst-plugins | [] [] [] [] |
gstreamer | [] [] [] [] |
gtick | [] [] [] |
gtkspell | [] [] [] [] [] [] |
hello | [] [] [] [] [] [] [] |
id-utils | [] [] [] [] |
impost | |
indent | [] [] [] [] [] [] |
iso_3166 | [] [] [] [] [] |
iso_3166_1 | [] [] [] [] |
iso_3166_2 | |
iso_3166_3 | [] [] [] |
iso_4217 | [] [] |
iso_639 | [] [] [] |
jpilot | |
jtag | [] |
jwhois | [] [] [] () () |
kbd | [] [] [] |
latrine | [] [] |
ld | [] |
libc | [] [] [] [] [] |
libextractor | [] |
libgpewidget | [] [] [] [] [] [] |
libgsasl | [] [] [] |
libiconv | [] [] [] [] [] [] [] [] [] [] |
libidn | [] () |
lifelines | [] [] |
lilypond | [] |
lingoteach | [] |
lynx | [] [] [] |
m4 | [] [] [] [] [] |
mailutils | [] [] [] |
make | [] [] [] [] |
man-db | [] [] |
minicom | [] [] [] [] |
mysecretdiary | [] [] [] [] |
nano | [] [] [] |
nano_1_0 | [] [] [] [] |
opcodes | [] [] |
parted | [] [] [] [] |
psmisc | [] [] |
ptx | [] [] [] [] [] [] |
pwdutils | [] |
python | |
radius | [] [] |
recode | [] [] [] [] [] [] |
rpm | [] [] [] [] |
screem | |
scrollkeeper | [] [] [] [] [] [] [] |
sed | [] [] [] [] [] [] [] [] |
sh-utils | [] [] [] |
shared-mime-info | [] [] [] [] [] |
sharutils | [] [] [] |
silky | [] |
skencil | [] [] [] |
sketch | [] [] [] |
solfege | |
soundtracker | [] [] |
sp | |
stardict | [] [] |
tar | [] [] [] [] |
texinfo | [] [] [] [] |
textutils | [] [] [] |
tin | |
tp-robot | [] |
tuxpaint | [] [] [] [] [] [] [] [] |
unicode-han-tra... | |
unicode-transla... | |
util-linux | [] [] [] |
vorbis-tools | [] [] |
wastesedge | |
wdiff | [] [] [] [] [] [] |
wget | [] [] [] [] [] [] [] [] [] |
xchat | [] [] [] [] [] [] |
xkeyboard-config | |
xpad | |
+-------------------------------------------------+
or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta
1 0 48 30 58 6 79 71 5 45 13 12 50 86 0
tg th tk tr uk ven vi wa xh zh_CN zh_TW zu
+--------------------------------------------+
GNUnet | | 0
a2ps | [] [] [] | 19
aegis | | 0
ant-phone | [] | 4
anubis | [] | 9
ap-utils | () | 1
aspell | [] [] [] | 13
bash | | 10
batchelor | [] [] | 7
bfd | | 1
bibshelf | [] | 5
binutils | [] | 6
bison | [] | 17
bluez-pin | [] [] [] [] [] | 24
clisp | | 7
console-tools | [] | 4
coreutils | [] | 16
cpio | [] [] | 6
cpplib | [] [] | 7
darkstat | [] () () | 15
dialog | [] [] [] | 25
diffutils | [] [] [] [] | 28
doodle | [] | 5
e2fsprogs | [] | 8
enscript | [] | 12
error | [] [] [] | 16
fetchmail | [] | 12
fileutils | [] [] [] | 18
findutils | [] [] | 17
flex | [] [] | 15
fslint | [] | 7
gas | [] | 3
gawk | [] | 14
gbiff | | 4
gcal | [] | 5
gcc | [] | 3
gettext-examples | [] [] [] [] | 20
gettext-runtime | [] [] [] [] [] | 25
gettext-tools | [] [] [] | 17
gimp-print | [] | 11
gip | [] | 8
gliv | [] | 6
glunarclock | [] [] | 13
gmult | [] [] [] | 13
gnubiff | [] | 3
gnucash | () [] | 10
gnucash-glossary | [] | 8
gpe-aerial | [] [] | 13
gpe-beam | [] [] | 13
gpe-calendar | [] [] [] [] | 18
gpe-clock | [] [] [] [] | 17
gpe-conf | [] [] | 12
gpe-contacts | [] [] | 6
gpe-edit | [] [] [] [] | 15
gpe-go | [] [] | 11
gpe-login | [] [] [] [] [] | 18
gpe-ownerinfo | [] [] [] [] | 19
gpe-sketchbook | [] [] | 14
gpe-su | [] [] [] | 16
gpe-taskmanager | [] [] [] | 17
gpe-timesheet | [] [] [] [] | 17
gpe-today | [] [] [] [] [] | 19
gpe-todo | [] [] [] | 16
gphoto2 | [] [] | 17
gprof | [] [] | 10
gpsdrive | | 2
gramadoir | [] | 6
grep | [] [] [] [] | 32
gretl | | 4
gsasl | [] [] | 12
gss | [] | 5
gst-plugins | [] [] | 16
gstreamer | [] [] [] | 14
gtick | [] | 11
gtkspell | [] [] [] | 20
hello | [] [] [] [] | 37
id-utils | [] [] | 13
impost | [] | 3
indent | [] [] [] | 24
iso_3166 | [] [] [] | 12
iso_3166_1 | [] [] | 20
iso_3166_2 | | 2
iso_3166_3 | [] [] | 8
iso_4217 | [] [] | 10
iso_639 | [] [] | 12
jpilot | [] [] [] | 6
jtag | | 2
jwhois | [] [] [] | 12
kbd | [] [] | 12
latrine | [] [] | 8
ld | [] | 5
libc | [] [] | 22
libextractor | | 1
libgpewidget | [] [] | 17
libgsasl | [] | 7
libiconv | [] [] [] [] [] | 32
libidn | [] [] | 5
lifelines | | 4
lilypond | [] | 5
lingoteach | | 5
lynx | [] [] | 14
m4 | [] [] | 17
mailutils | [] | 7
make | [] [] | 18
man-db | | 5
minicom | | 11
mysecretdiary | [] [] | 12
nano | | 11
nano_1_0 | [] [] | 17
opcodes | [] | 7
parted | [] [] [] | 17
psmisc | [] | 7
ptx | [] [] | 23
pwdutils | | 1
python | | 0
radius | [] | 6
recode | [] [] | 22
rpm | [] [] | 11
screem | | 1
scrollkeeper | [] [] | 23
sed | [] [] | 19
sh-utils | [] | 15
shared-mime-info | [] [] | 19
sharutils | [] [] [] | 20
silky | | 3
skencil | | 6
sketch | | 6
solfege | | 4
soundtracker | [] | 8
sp | [] | 3
stardict | [] [] [] [] | 10
tar | [] [] | 13
texinfo | [] [] | 14
textutils | [] [] [] | 17
tin | | 1
tp-robot | [] [] | 7
tuxpaint | [] [] [] [] | 34
unicode-han-tra... | | 0
unicode-transla... | | 2
util-linux | [] [] | 17
vorbis-tools | [] | 10
wastesedge | | 1
wdiff | [] [] | 22
wget | [] [] [] [] | 31
xchat | [] [] [] | 22
xkeyboard-config | | 1
xpad | [] | 5
+--------------------------------------------+
72 teams tg th tk tr uk ven vi wa xh zh_CN zh_TW zu
147 domains 0 0 1 78 29 0 71 16 0 41 20 0 1711
Some counters in the preceding matrix are higher than the number of
visible blocks let us expect. This is because a few extra PO files are
used for implementing regional variants of languages, or language
dialects.
For a PO file in the matrix above to be effective, the package to
which it applies should also have been internationalized and
distributed as such by its maintainer. There might be an observable
lag between the mere existence a PO file and its wide availability in a
distribution.
If April 2005 seems to be old, you may fetch a more recent copy of
this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date
matrix with full percentage details can be found at
`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
1.6 Using `gettext' in new packages
===================================
If you are writing a freely available program and want to
internationalize it you are welcome to use GNU `gettext' in your
package. Of course you have to respect the GNU Library General Public
License which covers the use of the GNU `gettext' library. This means
in particular that even non-free programs can use `libintl' as a shared
library, whereas only free software can use `libintl' as a static
library or use modified versions of `libintl'.
Once the sources are changed appropriately and the setup can handle
the use of `gettext' the only thing missing are the translations. The
Free Translation Project is also available for packages which are not
developed inside the GNU project. Therefore the information given above
applies also for every other Free Software Project. Contact
`translation@iro.umontreal.ca' to make the `.pot' files available to
the translation teams.

View file

@ -1,650 +0,0 @@
# set minimum version
cmake_minimum_required(VERSION 3.14)
project(wesnoth)
include(CheckCXXCompilerFlag)
include(CTest)
# use our own version of FindBoost.cmake and other Find* scripts
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
# function to remove a flag from a variable
function(RemoveFlag VAR SCOPE FLAG DOCSTRING)
if(NOT "${${VAR}}" STREQUAL "")
MESSAGE("Removing ${FLAG} flag from ${VAR}")
separate_arguments(${VAR})
list(REMOVE_ITEM ${VAR} ${FLAG})
string(REPLACE ";" " " ${VAR} "${${VAR}}")
if("${SCOPE}" STREQUAL "CACHE")
set(${VAR} "${${VAR}}" CACHE STRING "${DOCSTRING}" FORCE)
elseif("${SCOPE}" STREQUAL "SCRIPT")
set(${VAR} "${${VAR}}" PARENT_SCOPE)
endif()
endif()
endfunction()
#
# Options
#
# Adhere to GNU filesystem layout conventions
include(GNUInstallDirs)
#Path options
set(DATADIRNAME "wesnoth" CACHE STRING "change the name of the directory for the read-only architecture-independent game data")
set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}" CACHE STRING "change the dir where binaries are placed right at compile time")
set(LOCALEDIR "translations" CACHE STRING "change the name of the locale data directory to a non-default name")
set(PREFERENCES_DIR "" CACHE STRING "Use a non-default preferences directory (.wesnoth on unix)")
set(DEFAULT_PREFS_FILE "" CACHE STRING "Set system wide preferences file")
#server options
set(SERVER_UID "" CACHE STRING "User id of the user who runs wesnothd")
set(SERVER_GID "" CACHE STRING "Group id of the user who runs wesnothd")
set(FIFO_DIR "/var/run/wesnothd" CACHE STRING "Directory for the wesnothd fifo socket file")
#build options
option(ENABLE_GAME "Enable compilation of the game" ON)
option(ENABLE_CAMPAIGN_SERVER "Enable compilation of campaign(add-ons) server")
option(ENABLE_SERVER "Enable compilation of MP server" ON)
option(ENABLE_MYSQL "Enable building MP/add-ons servers with mysql support" OFF)
option(ENABLE_TESTS "Build unit tests")
option(ENABLE_NLS "Enable building of translations" ${ENABLE_GAME})
set(BOOST_VERSION "1.67")
if(NOT WIN32)
set(Lua_FIND_VERSION_MAJOR 5)
set(Lua_FIND_VERSION_MINOR 4)
option(ENABLE_SYSTEM_LUA "Enable use of system Lua ${Lua_FIND_VERSION_MAJOR}.${Lua_FIND_VERSION_MINOR} (compiled as C++)" OFF)
endif()
if(ENABLE_SYSTEM_LUA)
set(Lua_FIND_VERSION_EXACT ON)
set(Lua_FIND_VERSION_COUNT 2)
include(FindLua)
if(NOT LUA_FOUND)
message(FATAL_ERROR "Lua ${Lua_FIND_VERSION_MAJOR}.${Lua_FIND_VERSION_MINOR} C++ not found. Try setting 'LUA_DIR'.")
endif()
else()
if(NOT EXISTS "${CMAKE_SOURCE_DIR}/src/modules/lua/.git")
message(FATAL_ERROR "Lua submodule does not exist. You must run 'git submodule update --init --recursive' to initialize it.")
else()
message("-- Lua submodule found.")
endif()
endif()
# set what std version to use
if(NOT CXX_STD)
set(CXX_STD "17")
endif()
set(CMAKE_CXX_STANDARD ${CXX_STD})
# make sure to force using it
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# forbid defaulting to gnu++NN instead of c++NN
set(CMAKE_CXX_EXTENSIONS OFF)
find_package(OpenSSL 1.0 REQUIRED)
if(APPLE)
find_library(APPKIT_LIBRARY AppKit REQUIRED)
find_library(FOUNDATION_LIBRARY Foundation REQUIRED)
find_library(IOKIT_LIBRARY IOKit REQUIRED)
find_library(SECURITY_LIBRARY Security REQUIRED)
endif()
find_package(Boost ${BOOST_VERSION} REQUIRED COMPONENTS iostreams program_options regex system thread random coroutine locale filesystem graph)
find_package(ICU REQUIRED COMPONENTS data i18n uc)
# no, gettext executables are not required when NLS is deactivated
find_package(Gettext)
find_package(Python)
find_package(X11)
if(NOT WIN32 AND NOT ENABLE_SYSTEM_LUA)
# Use the safer `mkstemp' instead of `tmpnam' on POSIX systems.
add_definitions(-DLUA_USE_POSIX)
endif()
#check for some compiler/arch specific things and export defines accordingly...
include(SearchForStuff)
# if no build type is specified, it can happen that the game is built without
# optimization (c.f. bug #23445), work around this by enforcing "release" type
# if nothing was selected
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
message("No build type specified, defaulting to Release")
endif()
if(NOT DEFINED ENABLE_DISPLAY_REVISION)
# can't run the shell script on windows
if(NOT WIN32)
# Test whether the code is used in a repository if not autorevision will
# fail and should be disabled by default. If inside a repository enable
# the display of revision numbers by default.
execute_process(
COMMAND ${CMAKE_SOURCE_DIR}/utils/autorevision.sh -t h > ${CMAKE_CURRENT_BINARY_DIR}/revision.dummy
WORKING_DIRECTORY
${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE
ENABLE_DISPLAY_REVISION_TEST_OUTPUT
ERROR_VARIABLE
ENABLE_DISPLAY_REVISION_TEST_ERRNO
)
if("${ENABLE_DISPLAY_REVISION_TEST_ERRNO}" STREQUAL "")
set(DEFAULT_ENABLE_DISPLAY_REVISION true)
else()
set(DEFAULT_ENABLE_DISPLAY_REVISION false)
endif()
unset(ENABLE_DISPLAY_REVISION_TEST_OUTPUT)
unset(ENABLE_DISPLAY_REVISION_TEST_ERRNO)
else()
set(DEFAULT_ENABLE_DISPLAY_REVISION false)
endif()
endif()
option(
ENABLE_DISPLAY_REVISION
"Enable the display of the revision number in the game, only enable it when in a checkout"
${DEFAULT_ENABLE_DISPLAY_REVISION}
)
if(UNIX AND NOT APPLE AND NOT CYGWIN)
option(ENABLE_DESKTOP_ENTRY "enable installation of desktop entry files" ON)
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
option(ENABLE_APPDATA_FILE "enable installation of an appdata file for appstream" ON)
endif()
option(HARDEN "Whether to enable options to harden the executables" ON)
option(ENABLE_STRICT_COMPILATION "Sets the strict compilation mode" OFF)
option(ENABLE_PEDANTIC_COMPILATION "Sets the pedantic compilation mode" OFF)
option(ENABLE_DEBUG_WINDOW_LAYOUT "Add the debug option to allow the generation of debug layout files in dot format" OFF)
option(ENABLE_DESIGN_DOCUMENTS "Enables the generation of design documents, and has additional dependencies" OFF)
option(ENABLE_LTO "Sets Link Time Optimization for Release builds" OFF)
option(GLIBCXX_ASSERTIONS "Whether to define _GLIBCXX_ASSERTIONS" OFF)
option(GLIBCXX_DEBUG "Whether to define _GLIBCXX_DEBUG and _GLIBCXX_DEBUG_PEDANTIC. Requires a version of Boost's program_options that's compiled with __GLIBCXX_DEBUG too." OFF)
option(ENABLE_POT_UPDATE_TARGET "Enables the tools to update the pot files and manuals. This target has extra dependencies." OFF)
option(FORCE_COLOR_OUTPUT "Always produce ANSI-colored output (GNU/Clang only)." FALSE)
option(CLANG_TIDY "Enable clang-tidy linter checks." OFF)
if(UNIX AND NOT APPLE AND NOT CYGWIN)
option(ENABLE_NOTIFICATIONS "Enable Window manager notification messages" ON)
endif()
set(BINARY_SUFFIX "" CACHE STRING "Suffix behind all binaries")
set(BINARY_PREFIX "" CACHE STRING "Prefix in front of all binaries")
#
# Handle options (set paths/definitions/etc...)
#
### Set the environment compiler flags.
if(NOT MSVC)
if(NOT DEFINED CXX_FLAGS_USER)
MESSAGE(STATUS "Environment compiler flags set to »${CXX_FLAGS_USER}«")
set(CXX_FLAGS_USER
"$ENV{CXXFLAGS}"
CACHE
STRING
"The CXXFLAGS environment variable used for the initial generation."
FORCE
)
endif()
set(COMPILER_FLAGS "-Wall -Wextra -Werror=non-virtual-dtor -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wold-style-cast -Wtrampolines")
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(COMPILER_FLAGS "${COMPILER_FLAGS} -Qunused-arguments -Wno-unknown-warning-option -Wmismatched-tags -Wno-conditional-uninitialized -Wno-unused-lambda-capture")
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU"
AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13
AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 14)
# GCC-13 added this new warning, and included it in -Wextra,
# however in GCC-13 it has a lot of false positives.
#
# It's likely to generate false postives with GCC-14 too, but
# I'm using a narrow version check as GCC-14 is still in dev.
# See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110075
set(COMPILER_FLAGS "${COMPILER_FLAGS} -Wno-dangling-reference")
endif()
### Set strict compiler flags.
if(ENABLE_STRICT_COMPILATION)
set(COMPILER_FLAGS "${COMPILER_FLAGS} -Werror")
endif()
### Set pedantic compiler flags.
if(ENABLE_PEDANTIC_COMPILATION)
set(CXX_FLAGS_PEDANTIC_COMPILATION "-Wlogical-op -Wmissing-declarations -Wredundant-decls -Wctor-dtor-privacy -Wdouble-promotion -Wuseless-cast -Wnoexcept")
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CXX_FLAGS_PEDANTIC_COMPILATION "${CXX_FLAGS_PEDANTIC_COMPILATION} -Wdocumentation -Wno-documentation-deprecated-sync")
endif()
set(COMPILER_FLAGS "${COMPILER_FLAGS} ${CXX_FLAGS_PEDANTIC_COMPILATION}")
endif()
# check for sanitizer options
if(SANITIZE)
set(COMPILER_FLAGS "${COMPILER_FLAGS} -fsanitize=${SANITIZE}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=${SANITIZE}")
# manually disable some optimizations to get better stacktraces if sanitizers are used
set(COMPILER_FLAGS "${COMPILER_FLAGS} -fno-omit-frame-pointer -fno-optimize-sibling-calls")
endif()
### Force colour output (for example for Ninja, or piped CI)
if(FORCE_COLOR_OUTPUT)
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
set(COMPILER_FLAGS "${COMPILER_FLAGS} -fdiagnostics-color=always")
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(COMPILER_FLAGS "${COMPILER_FLAGS} -fcolor-diagnostics")
endif()
endif()
### Enable clang-tidy linting
if (CLANG_TIDY)
set(CMAKE_CXX_CLANG_TIDY "clang-tidy -Wno-unknown-warning-option")
endif()
### Set the final compiler flags.
set(COMPILER_FLAGS "${COMPILER_FLAGS} ${CXX_FLAGS_USER}")
if(NOT "${CMAKE_CXX_FLAGS}" STREQUAL "${COMPILER_FLAGS}")
MESSAGE(STATUS "CMake compiler flags set to »${COMPILER_FLAGS}«")
set(CMAKE_CXX_FLAGS
"${COMPILER_FLAGS}"
CACHE
STRING
"Global flags used by the CXX compiler during all builds."
FORCE
)
endif()
# #
# Determine optimization level
# #
if(NOT OPT)
if(PROFILER STREQUAL "perf")
set(CMAKE_CXX_FLAGS_RELEASE "-Og")
set(CMAKE_C_FLAGS_RELEASE "-Og")
else()
set(CMAKE_CXX_FLAGS_RELEASE "-O3")
set(CMAKE_C_FLAGS_RELEASE "-O3")
endif()
else()
set(CMAKE_CXX_FLAGS_RELEASE "${OPT}")
set(CMAKE_C_FLAGS_RELEASE "${OPT}")
set(CMAKE_CXX_FLAGS_DEBUG "${OPT}")
set(CMAKE_C_FLAGS_DEBUG "${OPT}")
endif()
# check for hardening options
if(HARDEN)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE -fstack-protector-strong")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE -fstack-protector-strong")
if(APPLE)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fPIE -Wl,-pie")
elseif(WIN32 AND MINGW)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fPIE -pie")
else()
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fPIE -pie -Wl,-z,relro,-z,now")
endif()
if(NOT CMAKE_CXX_FLAGS_DEBUG STREQUAL "-O0")
add_definitions(-D_FORTIFY_SOURCE=2)
endif()
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CMAKE_EXE_LINKER_FLAGS "-lstdc++ -lm ${CMAKE_EXE_LINKER_FLAGS}")
endif()
add_definitions(-DWESNOTH_PATH="${CMAKE_INSTALL_FULL_DATADIR}/${DATADIRNAME}")
if(X11_FOUND)
add_definitions(-D_X11)
endif()
add_definitions(-DLOCALEDIR="${LOCALEDIR}")
# -rdynamic is automatically added, but we don't need it, and it increases the executable size
RemoveFlag(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS SCRIPT "-rdynamic" "")
RemoveFlag(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS SCRIPT "-rdynamic" "")
# -DNDEBUG is automatically added to all release build types, so manually remove this define from the related variables
RemoveFlag(CMAKE_CXX_FLAGS_RELWITHDEBINFO CACHE "-DNDEBUG" "Default C++ flags for RelWithDebInfo")
RemoveFlag(CMAKE_C_FLAGS_RELWITHDEBINFO CACHE "-DNDEBUG" "Default C flags for RelWithDebInfo")
RemoveFlag(CMAKE_CXX_FLAGS_MINSIZEREL CACHE "-DNDEBUG" "Default C++ flags for MinSizeRel")
RemoveFlag(CMAKE_C_FLAGS_MINSIZEREL CACHE "-DNDEBUG" "Default C flags for MinSizeRel")
# #
# Start determining options for Release build
# #
# reset the base Release build option
MESSAGE("Replacing default flags used for Release build with ${OPT} ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_RELEASE}")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_RELEASE}" CACHE STRING "Release build flags" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_RELEASE}" CACHE STRING "Release build flags" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "" CACHE STRING "" FORCE)
# set the arch to use for Release build if provided
if(ARCH)
MESSAGE("adding -march=${ARCH} to Release build")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -march=${ARCH}" CACHE STRING "Release build flags" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -march=${ARCH}" CACHE STRING "Release build flags" FORCE)
endif()
# PGO and LTO for GCC
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if(PGO_DATA STREQUAL "generate")
MESSAGE("Generating PGO data")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fprofile-generate=${CMAKE_SOURCE_DIR}/pgo_data/" CACHE STRING "Release build flags generating PGO data" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -fprofile-generate=${CMAKE_SOURCE_DIR}/pgo_data/" CACHE STRING "Release build flags generating PGO data" FORCE)
endif()
if(PGO_DATA STREQUAL "use")
MESSAGE("Using PGO data from previous runs")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fprofile-correction -fprofile-use=${CMAKE_SOURCE_DIR}/pgo_data/" CACHE STRING "Release build flags for using PGO data" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -fprofile-correction -fprofile-use=${CMAKE_SOURCE_DIR}/pgo_data/" CACHE STRING "Release build flags for using PGO data" FORCE)
endif()
if(ENABLE_LTO)
if(NOT LTO_JOBS)
MESSAGE("LTO_JOBS not set, defaulting to 1")
set(LTO_JOBS "1" CACHE STRING "Number of threads to use for LTO with gcc" FORCE)
endif()
MESSAGE("added -flto=${LTO_JOBS} to Release build")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -flto=${LTO_JOBS}" CACHE STRING "Release build flags with LTO" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -flto=${LTO_JOBS}" CACHE STRING "Release build flags with LTO" FORCE)
MESSAGE("Using GCC gold linker")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -fuse-ld=gold -Wno-stringop-overflow" CACHE STRING "" FORCE)
endif()
endif()
# PGO and LTO for Clang
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
if(PGO_DATA STREQUAL "generate")
MESSAGE("Generating PGO data")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fprofile-instr-generate=${CMAKE_SOURCE_DIR}/pgo_data/wesnoth-%p.profraw" CACHE STRING "Release build flags generating PGO data" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -fprofile-instr-generate=${CMAKE_SOURCE_DIR}/pgo_data/wesnoth-%p.profraw" CACHE STRING "Release build flags generating PGO data" FORCE)
endif()
if(PGO_DATA STREQUAL "use")
MESSAGE("Using PGO data from previous runs")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fprofile-instr-use=${CMAKE_SOURCE_DIR}/pgo_data/wesnoth.profdata" CACHE STRING "Release build flags for using PGO data" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -fprofile-instr-use=${CMAKE_SOURCE_DIR}/pgo_data/wesnoth.profdata" CACHE STRING "Release build flags for using PGO data" FORCE)
endif()
if(ENABLE_LTO)
MESSAGE("added -flto=thin to Release build")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -flto=thin" CACHE STRING "Release build flags with LTO" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -flto=thin" CACHE STRING "Release build flags with LTO" FORCE)
MESSAGE("Using Clang LLD linker")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -fuse-ld=lld" CACHE STRING "Linker flag for building with LTO and clang" FORCE)
endif()
endif()
# set CMAKE_AR and CMAKE_RANLIB to use LTO-enabled variants if LTO is enabled
if(ENABLE_LTO)
MESSAGE("Using gcc-ar and gcc-ranlib")
find_program(LTO_AR NAMES gcc-ar)
find_program(LTO_RANLIB NAMES gcc-ranlib)
set(CMAKE_AR "${LTO_AR}" CACHE STRING "Supports LTO" FORCE)
set(CMAKE_RANLIB "${LTO_RANLIB}" CACHE STRING "Supports LTO" FORCE)
endif()
MARK_AS_ADVANCED(LTO_AR LTO_RANLIB NON_LTO_AR NON_LTO_RANLIB)
# add in extra flags
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} ${LINK_EXTRA_FLAGS_CONFIG} ${LINK_EXTRA_FLAGS_RELEASE}")
# clean the pgo data
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_SOURCE_DIR}/pgo_data/")
# #
# End determining options for Release build
# Start setting options for Debug build
# #
# replace the default Debug flag of -g with -O0 -DDEBUG -ggdb3
# this matches the flags of scons' debug build
MESSAGE("Replacing flags used for Debug build ${OPT} -DDEBUG -ggdb3 ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_DEBUG}")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG -ggdb3 ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_DEBUG}" CACHE STRING "change cmake's Debug flags to match scons' flags" FORCE)
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DDEBUG -ggdb3 ${EXTRA_FLAGS_CONFIG} ${EXTRA_FLAGS_DEBUG}" CACHE STRING "change cmake's Debug flags to match scons' flags" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${LINK_EXTRA_FLAGS_CONFIG} ${LINK_EXTRA_FLAGS_DEBUG}" CACHE STRING "" FORCE)
# Enabling GLIBCXX_ASSERTIONS puts bounds-checks on std::vector::operator[], etc
if(GLIBCXX_ASSERTIONS)
MESSAGE("Defining _GLIBCXX_ASSERTIONS")
add_definitions(-D_GLIBCXX_ASSERTIONS)
endif()
# GLIBCXX_DEBUG enables more checks that GLIBCXX_ASSERTIONS, but changes the ABI of Boost's program_options library.
# When _GLIBCXX_DEBUG is defined, _GLIBCXX_ASSERTIONS is automatically implied (Gnu's c++config.h will define it).
if(GLIBCXX_DEBUG)
MESSAGE("Defining _GLIBCXX_DEBUG and _GLIBCXX_DEBUG_PEDANTIC")
add_definitions(-D_GLIBCXX_DEBUG)
add_definitions(-D_GLIBCXX_DEBUG_PEDANTIC)
endif()
# #
# Setup profiler build options
# #
set(PROFILER "" CACHE STRING "Enable performance-measuring tools (and choose which tool to use)")
if(PROFILER STREQUAL "gprof")
MESSAGE("Profiler is gprof")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -pg ${EXTRA_FLAGS_CONFIG}" CACHE STRING "Flags for profiling with gprof" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -pg ${EXTRA_FLAGS_CONFIG}" CACHE STRING "Flags for profiling with gprof" FORCE)
endif()
if(PROFILER STREQUAL "gcov")
MESSAGE("Profiler is gcov")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fprofile-arcs -ftest-coverage ${EXTRA_FLAGS_CONFIG}" CACHE STRING "Flags for profiling with gcov" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -fprofile-arcs -ftest-coverage ${EXTRA_FLAGS_CONFIG}" CACHE STRING "Flags for profiling with gcov" FORCE)
endif()
if(PROFILER STREQUAL "gperftools")
MESSAGE("Profiler is gperftools")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "-Wl,--no-as-needed,-lprofiler ${LINK_EXTRA_FLAGS_CONFIG}" CACHE STRING "" FORCE)
endif()
if(PROFILER STREQUAL "perf")
MESSAGE("Profiler is perf")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -ggdb -fno-omit-frame-pointer ${EXTRA_FLAGS_CONFIG}" CACHE STRING "Flags for profiling with perf" FORCE)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -ggdb -fno-omit-frame-pointer ${EXTRA_FLAGS_CONFIG}" CACHE STRING "Flags for profiling with perf" FORCE)
endif()
# #
# End setting profiler build options
# #
else()
set(CMAKE_CXX_FLAGS "/W3 /WX /wd4503 /wd4351 /wd4250 /wd4244 /wd4267 /we4239 /wd4275 /EHsc /utf-8 /Zc:__cplusplus" CACHE STRING "Global flags used by the CXX compiler during all builds." FORCE)
set(CMAKE_C_FLAGS "/WX" CACHE STRING "Global flags used by the C compiler during all builds." FORCE)
add_definitions(-D_WIN32_WINNT=0x0A00 -D_CRT_SECURE_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -DNOMINMAX)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG_LUA")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MANIFEST:NO")
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:MSVCRT")
# -DNDEBUG is automatically added to all release build types, so manually remove this define from the related variables
RemoveFlag(CMAKE_CXX_FLAGS_RELEASE CACHE "/DNDEBUG" "Default C++ flags for RELEASE")
RemoveFlag(CMAKE_C_FLAGS_RELEASE CACHE "/DNDEBUG" "Default C flags for RELEASE")
RemoveFlag(CMAKE_CXX_FLAGS_RELWITHDEBINFO CACHE "/DNDEBUG" "Default C++ flags for RelWithDebInfo")
RemoveFlag(CMAKE_C_FLAGS_RELWITHDEBINFO CACHE "/DNDEBUG" "Default C flags for RelWithDebInfo")
RemoveFlag(CMAKE_CXX_FLAGS_MINSIZEREL CACHE "/DNDEBUG" "Default C++ flags for MinSizeRel")
RemoveFlag(CMAKE_C_FLAGS_MINSIZEREL CACHE "/DNDEBUG" "Default C flags for MinSizeRel")
endif()
# When the path starts with a / on a Unix system it's an absolute path.
# This means that on Windows the path used is always relative.
if(IS_ABSOLUTE "${LOCALEDIR}")
add_definitions(-DHAS_RELATIVE_LOCALEDIR=0)
set(LOCALE_INSTALL ${LOCALEDIR})
else()
add_definitions(-DHAS_RELATIVE_LOCALEDIR=1)
set(LOCALE_INSTALL ${CMAKE_INSTALL_DATADIR}/${DATADIRNAME}/${LOCALEDIR})
endif()
add_definitions(-DFIFODIR="${FIFO_DIR}")
if(PREFERENCES_DIR)
add_definitions(-DPREFERENCES_DIR="${PREFERENCES_DIR}")
endif()
if(DEFAULT_PREFS_FILE)
add_definitions(-DDEFAULT_PREFS_PATH="${DEFAULT_PREFS_FILE}")
if(NOT DEFAULT_PREFS_FILE MATCHES "^/")
add_definitions(-DHAS_RELATIVE_DEFPREF)
endif()
endif()
if(ENABLE_DEBUG_WINDOW_LAYOUT)
add_definitions(-DDEBUG_WINDOW_LAYOUT_GRAPHS)
endif()
#
# Libraries that are only required by some targets
#
if(ENABLE_GAME OR ENABLE_TESTS)
find_package(CURL REQUIRED)
find_package(VorbisFile REQUIRED)
find_package(PkgConfig REQUIRED)
find_package(Fontconfig REQUIRED)
find_package(SDL2 2.0.18 REQUIRED)
if(NOT MSVC)
# for everything else, use pkgconfig
# SDL2_image and SDL2_mixer don't seem to have any cmake configuration available at all
pkg_check_modules(SDL2IMAGE REQUIRED SDL2_image>=2.0.2)
pkg_check_modules(SDL2MIXER REQUIRED SDL2_mixer>=2.0.0)
else()
# for MSVC, vcpkg builds and provides custom SDL2-related modules for cmake to use, so use those
# this also fixes the issue with our previous FindSDL2* scripts incorrectly using the Release version of these libs instead of the Debug version
find_package(SDL2_image CONFIG REQUIRED)
find_package(SDL2_mixer CONFIG REQUIRED)
endif()
pkg_check_modules(CAIRO REQUIRED cairo>=1.10)
pkg_check_modules(PANGOCAIRO REQUIRED pangocairo>=1.44.0)
pkg_check_modules(PANGO REQUIRED pango>=1.44.0)
pkg_check_modules(LIBREADLINE readline)
endif()
if(ENABLE_TESTS)
find_package( Boost ${BOOST_VERSION} REQUIRED COMPONENTS unit_test_framework )
endif()
if(ENABLE_GAME)
if(ENABLE_NOTIFICATIONS)
pkg_check_modules(LIBDBUS dbus-1)
if(LIBDBUS_FOUND)
add_definitions(-DHAVE_LIBDBUS)
else()
message("Could not find dbus-1, Disabling notification support.")
endif()
else()
unset(LIBDBUS_FOUND CACHE)
endif()
find_package(History)
if(HISTORY_FOUND)
add_definitions(-DHAVE_HISTORY)
endif()
endif()
if(ENABLE_POT_UPDATE_TARGET)
find_package(TranslationTools REQUIRED)
endif()
# get languages
if(ENABLE_NLS)
file(READ po/LINGUAS LINGUAS)
string(REPLACE "\n" "" LINGUAS ${LINGUAS})
separate_arguments(LINGUAS)
endif()
#
# Include subdirectories
#
add_subdirectory(doc)
if(GETTEXT_FOUND AND Python_FOUND AND ENABLE_NLS)
add_subdirectory(po)
endif()
add_subdirectory(src)
#
# Install files
#
if(ENABLE_GAME)
install(DIRECTORY data fonts images sounds DESTINATION ${CMAKE_INSTALL_DATADIR}/${DATADIRNAME} USE_SOURCE_PERMISSIONS PATTERN ".git" EXCLUDE )
endif()
# install file for add-ons server
if(ENABLE_CAMPAIGN_SERVER AND NOT ENABLE_GAME)
install(FILES data/COPYING.txt DESTINATION ${CMAKE_INSTALL_DATADIR}/${DATADIRNAME}/data)
endif()
#
# Install desktop file so wesnoth appears in the application start menu with an icon
#
if(ENABLE_DESKTOP_ENTRY AND ENABLE_GAME)
install(FILES packaging/org.wesnoth.Wesnoth.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications )
install(DIRECTORY packaging/icons/hicolor packaging/icons/HighContrast DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons )
endif()
if(ENABLE_APPDATA_FILE AND ENABLE_GAME)
install(FILES packaging/org.wesnoth.Wesnoth.appdata.xml DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/metainfo )
endif()
if(ENABLE_SERVER AND FIFO_DIR)
install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory \$ENV{DESTDIR}/${FIFO_DIR})")
if(SERVER_UID AND SERVER_GID)
install(CODE "execute_process(COMMAND chown ${SERVER_UID}:${SERVER_GID} \$ENV{DESTDIR}/${FIFO_DIR})")
endif()
endif()
#
# uninstall
#
configure_file(
"${CMAKE_SOURCE_DIR}/cmake/uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/uninstall.cmake"
IMMEDIATE @ONLY
)
add_custom_target(uninstall
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/uninstall.cmake"
)
#
# Packaging stuff
#
include(CPack)
set(CPACK_GENERATOR "TGZ")
set(CPACK_SOURCE_GENERATOR "TGZ")

View file

@ -1,27 +0,0 @@
{
"configurations": [
{
"name": "x64-Debug",
"generator": "Ninja",
"configurationType": "Debug",
"inheritEnvironments": [ "msvc_x64_x64" ],
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "",
"ctestCommandArgs": ""
},
{
"name": "x64-Release",
"generator": "Ninja",
"configurationType": "Release",
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "msvc_x64_x64" ],
"variables": []
}
]
}

View file

@ -1,2 +0,0 @@
The Battle for Wesnoth's Code of Conduct may be found in the following forum post:
https://forums.wesnoth.org/viewtopic.php?t=24277

View file

@ -1,144 +0,0 @@
# Contributing to Wesnoth
Wesnoth was built with the hard work of volunteers all over the world! Everyone is welcome to come and contribute code, art, and music to improve the game for everyone who wants to play it.
## Contacting Us
The best place to get in touch with the development team is on our [official Discord community server](https://discord.gg/battleforwesnoth) or on the [Wesnoth forums](https://forums.wesnoth.org/).
The Discord server is mirrored to [Libera.Chat IRC](https://libera.chat), channels: [`#wesnoth`](https://web.libera.chat/#wesnoth) (general discussions), [`#wesnoth-umc-dev`](https://web.libera.chat/#wesnoth-umc-dev) (questions about creating add-ons), [`#wesnoth-dev`](https://web.libera.chat/#wesnoth-dev) (development of wesnoth mainline).
## Art and Music
Art and music submissions are accepted usually to fill in missing or outdated assets. If you are interested in contributing, we recommend that you contact us first to determine the best resources for you to work on based on need and interest. We also commission larger projects such as character portraits, story art, and music tracks.
## Engine
Wesnoth's engine conforms to the C++17 standard. We encourage the use of standard library APIs over third-party libraries whenever possible. However, third-party libraries are preferred over adding new, custom in-engine APIs, when appropriate.
### Code Formatting
All C++, WML and Lua files are in UTF-8, as we use Gettext-style translations, and translatable strings use some punctuation that's outside of the ASCII subset. More details are in the [Typography Style Guide](https://wiki.wesnoth.org/Typography_Style_Guide) and the guide to [using Gettext strings](https://wiki.wesnoth.org/GettextForWesnothDevelopers).
If your pull request touches the engine's C++ source code, we recommend (but don't require) you run `clang-format` on your changes before submission (Visual Studio Code gives you a handy context menu option to do so). This ensures that your code remains formatted according to our conventions. Make a local commit before running `clang-format`, in case more code than expected gets changed.
Generally, we follow these conventions in our C++ code:
```cpp
// Use pragma once instead of an include guard. Those are clumsy.
#pragma once
// Includes for files from the src/... directories should use double-quotes.
#include "help/help.hpp"
#include "gettext.hpp"
// Use angle brackets for system and external includes.
// Includes should also be sorted alphabetically.
#include <algorithm>
#include <array>
#include <iostream>
#include <string>
#include <vector>
// Classes should have scope specifiers (public, protected, private), but structs can omit them.
struct my_struct
{
// Public members do not need a trailing underscore.
// Inline initialization is acceptable over a constructor.
bool member = false;
};
// Class names are lower-case with underscores between words.
// Put braces on new lines after class and struct declarations.
class my_class
{
public:
// Use using directives over typedefs. They're easier to read.
using alias_t = std::vector<my_struct>;
// Use leading commas in the ctor list
// Use the T& foo or T* foo reference and pointer styles, not T &foo or T *foo.
// Use the "explicit" keyword for single-argument constructors.
explicit my_class(alias_t& ref)
: the_array_of_doom_()
, vec_ptr_(nullptr) // Use nullptr instead of NULL or 0
{
// Use C++ casts (static_cast and dynamic_cast) instead of C-style casts.
// Do try and avoid reinterpret_cast and const_cast if at all possible.
const float cast_test = static_cast<float>(how_far_to_destination_);
// Don't put a space after conditional keywords, and keep their opening brackets on the same line.
if(!ref.empty()) {
vec_ptr_ = &ref;
// Use lambdas for short functions like this.
// We also encourage the use of auto in lambdas and other places where
// type names are long and can be inferred.
std::sort(ref.begin(), ref.end(), [](const auto& a, const auto& b) {
return a.member && !b.member;
});
}
}
/**
* Keep class method brackets on their own line, and always utilize const for methods and
* variables when possible.
*
* For documenting functions, we loosely follow Doxygen conventions. You don't need to document
* every single function, but important ones should optimally have at least a one-line comment
* explaining what it does.
*
* This returns a translatable string, using gettext's _ function.
*
* @param speaker_id The person speaking
*/
t_string exclaim(const std::string& speaker_id) const
{
if(how_far_to_destination_ < 100) {
if(speaker_id == "signboard") {
return _("Oldwood — enter at own risk");
} else {
// TRANSLATORS: The lake is the small underground one in S06 Temple in the Deep
return _("Hmm, someone has written underneath “Fire-carrying trespassers will be thrown in the lake.”");
}
} else {
return _("Clearwater — just keep following the river");
}
}
private:
// End private class members with an underscore. Additionally, use C++ standard
// like std::array as opposed to C equivalents (such as int[])
std::array<int, 8> the_array_of_doom_;
alias_t* vec_ptr_;
// Use static or constexpr for constants. Don't use macros.
static const int how_far_to_destination_ = 1000;
};
```
## Translations
For specific information on how to update and submit translations, see [here](https://wiki.wesnoth.org/WesnothTranslationsHowTo).
## Bug Reports
Please report any bugs here on GitHub (preferred) or on the forums.
### Bugs in User-Made Content
If you encounter an engine bug such as a crash, scripting error, etc., report it here. Otherwise, issues with user-made content should be reported to their respective creators on the forums. You can usually find a thread for the add-on in question in the [Scenario & Campaign Development](http://www.wesnoth.org/forum/viewforum.php?f=8), [Faction & Era Development](http://www.wesnoth.org/forum/viewforum.php?f=19) or [Multiplayer Development](http://www.wesnoth.org/forum/viewforum.php?f=15) sections.
### Feature Requests
We accept suggestions for campaign improvements, WML or Lua API changes, and other game enhancements here on GitHub. We encourage you to attempt to implement your idea yourself and submit a pull request containing relevant information to your feature.
### Information to Include
We have several issue templates to choose from when opening a bug report. Please choose the one that best fits the bug. You do not need to include everything (we don't need screenshots for a compiling issue, for example), but the more information you can provide, the better. We need at least enough information to replicate the bug before we can track down the root cause.
## Pull Requests
Pull requests (PRs) can be created by forking the [wesnoth/wesnoth](https://github.com/wesnoth/wesnoth) repository on the github website, making your own changes to your forked repository, and then clicking the "Pull request" button. All pull requests must follow the above guidelines in order to be merged and whenever possible should include additional unit tests in order to both prove the proposed fix or feature works as intended as well as to allow quickly detecting other bugs in that area of code the future. WML and lua tests are run with the `run_wml_tests` python script (the tests themselves can be found [here](https://github.com/wesnoth/wesnoth/tree/master/data/test/test)) and C++ unit tests are run by the `boost_unit_tests` executable (current tests can be found [here](https://github.com/wesnoth/wesnoth/tree/master/src/tests)). Additionally, no new code can contain use of deprecated WML or lua API features.
It is also highly recommended to use an editor that at least support syntax highlighting (such as VSCode or Notepad++) regardless of what you're changing - just because you *can* edit files through the github website or with plain Notepad does not mean you *should*.

1275
Doxyfile Normal file

File diff suppressed because it is too large Load diff

99
INSTALL Normal file
View file

@ -0,0 +1,99 @@
Prerequisites:
You'll need to have these libraries (with equivalent devel versions) to build Wesnoth:
libsdl1.2.7
libsdl-image1.2 (with png support)
libsdl-mixer1.2 (with Vorbis support)
libsdl-net
libfreetype2
libz
boost_iostreams >= 1.33.0
Recommended (can be deactivated via ./configure --disable-python):
python2.4
SDL* libraries can be found at http://www.libsdl.org . libfreetype can be found
at http://www.freetype.org/ . python can be found at http://www.python.org .
The boost libraries can be found at http://www.boost.org .
You will also need to have a working installation of gettext to build the
translations.
The .tar.bz2 file is distributed with a working set of configure files. They
are not in the SVN repository. Consequently, if you are building from
SVN, you will need autoconf (>= 2.60) and automake (>= 1.9). Run './autogen.sh'
then to generate the configure files.
Sourcecode:
You can get it here:
http://www.wesnoth.org/downloads
Compiling:
First untar the package:
$ tar xfjv wesnoth-x.y.z.tar.bz2
then
$ cd wesnoth-x.y.z
Do this
$ ./configure
$ make
$ make install
to compile the wesnoth binary and install it along with the game
data to the default prefix, which is probably /usr/local.
Note: It has been reported (see https://gna.org/bugs/index.php?10326)
that under gcc 3.3.6 you need to turn off optimizations or you will
get a build that doesn't work for multiplayer. We recommend building
with gcc 4.
If you want to build wesnoth_editor too add the --enable-editor
configure option.
The --enable-display-revision option enables code that shows the SVN
revision number on the main screen -- useful for detecting old builds
you might happen to have in your path, but probably not what you want
in a production release.
If you see lots of messages like "Type 'svnversion --help' for usage.",
you have a Subversion client installed but it is not implementing the
-n option of svnversion. Time to update it.
In case you want wesnothd to be built you should add:
--enable-server --localstatedir=/var --with-server-uid=user
--with-server-gid=group
$localstatedir/run is the location where a wesnothd subdirectory will be
created owned by user:group. This is relevant if you want to be able
to communicate with wesnothd through a fifo file named socket.
You have to run wesnothd with the user specified while configuring in
order for it to work.
You can also specify the fifodir directly by using --with-fifodir
This way localstatedir won't be used.
If you want to install several versions of wesnoth you should use the
--with-preferences-dir= parameter to get distinct preferences directories.
The default is '.wesnoth'.
See './configure --help' for all available options.
Rebuilding:
You should clean your existing wesnoth release build first with:
$ make distclean
If you want to clean your wesnoth SVN build do:
$ make maintainer-clean

View file

@ -1,182 +0,0 @@
# Building Wesnoth from Source
## Prerequisites
Wesnoth requires a compiler with sufficient C++17 support such as GCC 11 and
later, or a version of Clang with equivalent support.
You'll need to have these libraries and their development headers installed in
order to build Wesnoth:
* Boost libraries >= 1.66.0
Most headers plus the following binary libs:
* Filesystem
* Locale
* Iostreams
* Random
* Regex
* Program Options
* System
* Coroutine
* Graph
* Charconv (This requires boost 1.85 or higher and is optional but reccomended especially for clang builds)
* SDL2 libraries:
* SDL2 >= 2.0.18 (macOS: 2.0.22 due to needing https://github.com/libsdl-org/SDL/commit/3bebdaccb7bff8c40438856081d404a7ce3def30)
* SDL2_image >= 2.0.2 (with PNG, JPEG, and WEBP support)
* SDL2_mixer >= 2.0.0 (with Ogg Vorbis support)
* Fontconfig >= 2.4.1
* Cairo >= 1.10.0
* Pango >= 1.44.0 (with Cairo backend)
* Vorbisfile aka libvorbis
* libbz2
* libz
* libssl
* libcrypto (from OpenSSL)
* libcurl4 (OpenSSL version)
The following libraries are optional dependencies that enable additional
features:
* D-Bus (libdbus-1):
Desktop notifications on Linux, *BSD, etc.
* GNU history (libreadline):
Command history and history expansion in the built-in Lua console.
## Build Environment
You can obtain the source code tarball for the latest version from
<https://www.wesnoth.org/downloads>.
Before building, make sure to untar the package and change into the newly
created directory:
$ tar xvjf wesnoth-<version>.tar.bz2
$ cd wesnoth-<version>
Alternatively, you can clone this git repository. Since Wesnoth uses submodules, when cloning you must add the `--recurse-submodules` option, or if you have already cloned the repository without using that option then you must run the command `git submodule update --init --recursive`.
The following build systems are fully supported for compiling Wesnoth on Linux,
*BSD, and other Unix-like platforms:
* SCons >= 0.98.3
* CMake >= 3.14
You will also need to have a working installation of GNU gettext to build the
translations.
While Wesnoth may be easily installed system-wide using SCons or CMake, it is
also possible to run it directly from the source directory after building. This
may be useful in situations where you don't have root access or need to
rebuild Wesnoth frequently (i.e. for development and testing).
### macOS/OS X
See [here](https://github.com/wesnoth/wesnoth/blob/master/projectfiles/Xcode/README.md) for instructions on using Xcode.
### Windows
Wesnoth uses CMake for project configuration and vcpkg for installing dependencies. See [here](https://docs.microsoft.com/en-us/cpp/build/cmake-projects-in-visual-studio) for information on using Visual Studio with cmake. The first time it's run, vcpkg will build all the required dependencies which may take over an hour, however it will only need to be done once.
NOTE 1: You will need to run `vcpkg integrate install` on the command line to make Visual Studio aware of vcpkg. If Visual Studio is open when this is executed, then you will need to close and re-open Visual Studio.
## SCons Build
Unlike CMake or the classic "autotools" build-system (configure && make),
configuration and building are done in the same step with SCons.
Simply type `scons` in the top-level directory to build the game client and
MP server:
$ scons
It is possible to select individual targets to build by naming them in the
command line separated by spaces.
To build the game client only:
$ scons wesnoth
Building the MP server only:
$ scons wesnothd
The `install` target will install any binaries that were previously compiled
(use su or sudo if necessary to write files into the installation prefix):
$ scons install
SCons takes a `prefix=` argument that specifies where to install the game and
its resource files. The prefix defaults to `/usr/local`; for production builds,
you may wish to use `/usr` instead:
$ scons prefix=/usr
## CMake Build
Unlike SCons, CMake has separate configuration and build steps. Configuration
is done using CMake itself, and the actual build is done using `make`.
There are two ways to build Wesnoth with CMake: inside the source tree or
outside of it. Out-of-source builds have the advantage that you can have
multiple builds with different options from one source directory.
To build Wesnoth out of source:
$ mkdir build && cd build
$ cmake .. -DCMAKE_BUILD_TYPE=Release
$ make
To build Wesnoth in the source directory:
$ cmake . -DCMAKE_BUILD_TYPE=Release
$ make
To install Wesnoth after building (as root using su or sudo if necessary):
# make install
To change build options, you can either pass the options on the command line:
$ cmake .. -DOPTION_NAME=option_value
Or use either the `ccmake` or `cmake-gui` front-ends, which display all options
and their cached values on a console and graphical UI, respectively.
$ ccmake ..
$ cmake-gui ..
## Build Options
A full list of options supported by SCons along with their descriptions and
defaults is available by running `scons --help` from the Wesnoth source. For
CMake, you may either run the `ccmake` or `cmake-gui` front-ends, or run
`cmake` and open the generated CMakeCache.txt from the build directory in a
text editor.
$ scons option_name1=option_value1 [option_name2=option_value2 [...]]
$ cmake -DOPTION_NAME1=option_value1 [-DOPTION_NAME2=option_value2 [...]]
With SCons, boolean options take `yes` or `true` for a true value, and `no` or
`false` for a false value. CMake uses `ON` for a true value, and `OFF` for a
false value.
### Some of the most important options follow.
| SCons | CMake | Description |
|------------------------------------------------------------------------|--------------------------------------------------------------------| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `build=<build type>` | `CMAKE_BUILD_TYPE=<build type>` | Selects a specific build configuration when compiling. `release` produces the default, optimized (-O3) build for regular use. `debug` produces a slower and larger unoptimized (-O0) build with full debug symbols, which is often needed for obtaining detailed backtraces when reporting bugs. |
| `wesnoth` | `ENABLE_GAME=<boolean>` | Whether to build the game client binary. To disable just don't mention the target for SCons. |
| `wesnothd` | `ENABLE_SERVER=<boolean>` | Whether to build the MP server binary. To disable just don't mention the target for SCons. |
| `prefix=<full path>` | `CMAKE_INSTALL_PREFIX=<full path>` | Installation prefix for binaries, resources, and documentation files. |
| `nls=<boolean>` | `ENABLE_NLS=<boolean>` | Whether to compile and install translations. |
| `strict=<boolean>` | `ENABLE_STRICT_COMPILATION=<boolean>` | Whether to treat compiler warnings as errors or not. Primarily intended for developers. |
| `prefsdir=<directory name>` | `PREFERENCES_DIR=<directory name>` | Hardcoded user preferences and user data directory. The default is to leave this unspecified so that Wesnoth will use separate XDG paths such as .config/wesnoth and .local/share/wesnoth/<version> for its user preferences and data, respectively. |
| `cxxtool=<program>` | `CMAKE_CXX_COMPILER=<program>` | Specifies which C++ compiler to use. By default, the system's default C++ compiler will be automatically selected during configuration. |
| `ccache=<boolean>` | `CMAKE_CXX_COMPILER_LAUNCHER=ccache` | Whether to run the compiler through ccache first. Useful if the compiler executable is not a symbolic link to ccache. Requires ccache to be installed first. If using CMake, use CMAKE_C_COMPILER and CMAKE_CXX_COMPILER instead. |
| `extra_flags_<buildtype>=<flags>` `extra_flags_config=<flags>` | `CXX_FLAGS_USER=<flags>` | Additional compiler flags to use when compiling a specific build type (SCons-only). To apply the same flags to all builds, use extra_flags_config (SCons) or CXX_FLAGS_USER (CMake) without a build type suffix. Alternatively, you may specify your flags in the CXXFLAGS environment variable. |
| `fifodir=<full path>` `server_uid=<UID>` `server_gid=<GID>` | `FIFO_DIR=<full path>` `SERVER_UID=<UID>` `SERVER_GID=<GID>` | Directory and owner id for the wesnothd control FIFO file. This is relevant only if you wish to be able to communicate with a local wesnothd instance through a named pipe. You must run wesnothd with the same UID specified at build time for this to work. |
| `enable_lto=<boolean>` | `ENABLE_LTO=<boolean>` | Controls using Link Time Optimization. Enabling will result in a smaller, faster executable at the cost of increased time to compile and link. For cmake, use LTO_JOBS=N tells how many threads to use during linking. |
| `--debug=time` | `VERBOSE=1` (make option) | Enables some additional output while building. |
| `jobs=N` | `-jN` (make option) | Enables compiling with multiple threads, where N is the number of threads to use. |

235
Makefile.am Normal file
View file

@ -0,0 +1,235 @@
if USESVN
SVNREV = $(shell svnversion -n .)
endif
ISUBDIRS = icons
SUBDIRS = po m4 src doc $(ISUBDIRS)
pkgdatadir=$(datadir)/@DATADIR@
bin_SCRIPTS =
findfilterflags=! \( -name .svn -prune -o -name ".\#*" -o -name "*~" -o -name "*bak" -o -type d \)
if LITE
exclude=| egrep -v '(/sounds|/music)'
endif
# List all datafiles, ignoring junk
finddata=(cd $(top_srcdir) && find data fonts icons images sounds $(findfilterflags) -print ) $(exclude)
# List all data subdirectories
finddatadirs=(cd $(top_srcdir) && find data fonts icons images sounds -type d \! \( -name .svn -prune \) -print ) $(exclude)
# List non-installable utility files
findnoinst=(cd $(top_srcdir) && find utils $(findfilterflags) -print )
# List all Header files
findnoinst_headers=(cd $(top_srcdir) && find src -name "*.hpp" -print && find src -name "*.h" -print && find src -name "*.ii" -print && find src -name "*.i" -print )
# Find files derived from the manual that should go in a distribution
finddocdist=(cd $(top_srcdir) && find doc/manual -name "*.html" -o -name "*.css" -o -name "*.jpg" -o -name "*.txt")
# Same list as previous, but with doc/ stripped off the front
finddoc=($(finddocdist) | sed -e 's:doc/manual:manual:g' )
# List all document directories
finddocdirs=(cd $(top_srcdir)/doc && find manual -type d \! \( -name .svn -prune \) -print; )
# This is a workaround to include manpage and manual translation files in the
# tarball. Manual and manpages are pre-built, so these files aren't actually
# needed to build Wesnoth, but are included because .po files are the
# preferred source of modification.
findextrapo=(cd $(top_srcdir) && \
find po/wesnoth-manpages po/wesnoth-manual \
-name "*.pot" -o -name "*.po" -o -name "*.cfg")
w_preparefileinstall = if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
bundle_contents=@PACKAGE_NAME@.app/Contents
@PACKAGE@_bundle: src/@PACKAGE@
mkdir -p "$(bundle_contents)/MacOS"
mkdir -p "$(bundle_contents)/Resources"
echo "APPL????" > "$(bundle_contents)/PkgInfo"
$(INSTALL_PROGRAM) $< "$(bundle_contents)/MacOS/@PACKAGE_NAME@"
bundle_editor_contents=@PACKAGE_NAME@ Editor.app/Contents
@PACKAGE@_editor_bundle: src/@PACKAGE@_editor
mkdir -p "$(bundle_editor_contents)/MacOS"
mkdir -p "$(bundle_editor_contents)/Resources"
echo "APPL????" > "$(bundle_editor_contents)/PkgInfo"
$(INSTALL_PROGRAM) $< "$(bundle_editor_contents)/MacOS/@PACKAGE_NAME@ Editor"
# Run this before release to check that POTs and data are in good shape
sanity-check:
cd utils; ./sanity_check
cd data/tools; make sanity-check
install-data-local:
@$(NORMAL_INSTALL)
if OPTIPNG
(cd $(top_srcdir) && find images -name '*.png' -print ) | while read p; do \
$(w_preparefileinstall) \
optipng -o4 $$d$$p; \
done
endif
if INSTALLDATA
test -z "$(pkgdatadir)" || $(mkdir_p) "$(DESTDIR)$(pkgdatadir)"
( $(finddatadirs) ) | while read p; do \
$(mkdir_p) "$(DESTDIR)$(pkgdatadir)/$$p"; \
done; \
srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
( $(finddata) ) | while read p; do \
$(w_preparefileinstall) \
echo $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pkgdatadir)/$$f"; \
$(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pkgdatadir)/$$f"; \
done
test -z "$(docdir)" || $(mkdir_p) "$(DESTDIR)$(docdir)"
( $(finddocdirs) ) | while read p; do \
$(mkdir_p) "$(DESTDIR)$(docdir)/$$p"; \
done; \
( $(finddoc) ) | while read p; do \
cd doc && $(w_preparefileinstall) \
echo $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(docdir)/$$f"; \
$(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(docdir)/$$f"; cd ..; \
done
if DUMMYLOCALES
$(mkdir_p) "$(DESTDIR)$(pkgdatadir)/locales"
if test -d "$(DESTDIR)$(pkgdatadir)/locales/C" ; then rm -r "$(DESTDIR)$(pkgdatadir)/locales/C" ; fi
echo | localedef --force "$(DESTDIR)$(pkgdatadir)/locales/C" 2> /dev/null; \
for loc in `ls data/languages/*.cfg | sed -e's/data\/languages\/\(.*\)\.cfg/\1/'`; do \
loclnk="$(DESTDIR)$(pkgdatadir)/locales/$$loc"@wesnoth; \
if test -L "$$loclnk" ; then rm "$$loclnk" ; fi; \
ln -s C "$$loclnk"; done; \
true
endif
if TINYGUI
(cd $(top_srcdir) && find data/core/images data/campaigns images \( $(findfilterflags) -a -name '*.png' -and -not -name 'bar-energy-tinygui.png' -print \) ) | while read p; do \
$(w_preparefileinstall) \
eval `identify $$d$$p | cut -f 3 -d ' ' | sed s/^/imagewidth=/ | sed s/x/\;imageheight=/` ;\
case $${imagewidth}x$$imageheight in \
1024x768) dstsize=320x240 ;; \
640x480) dstsize=240x180 ;; \
205x205) dstsize=80x80 ;; \
*) if [ $$imageheight -gt $$imagewidth ]; then max=`expr $$imageheight / 2`; else max=`expr $$imagewidth / 2`; fi ;\
dstsize=$${max}x$${max} ;; \
esac ; \
file=`basename "$$p"`; \
file "$$d$$p" | egrep "(RGBA|alpha)" >/dev/null 2>&1 && {\
convert "$$d$$p" -filter point -resize $$dstsize "$(DESTDIR)$(pkgdatadir)/$$f";\
} || { \
convert "$$d$$p" -resize $$dstsize "$(DESTDIR)$(pkgdatadir)/$$f"; \
} \
done
endif
endif
zip-install: install
$(top_srcdir)/utils/splittree "$(DESTDIR)$(pkgdatadir)" --zip
uninstall-local:
@$(NORMAL_UNINSTALL)
if INSTALLDATA
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
( $(finddata) ) | while read p; do \
case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac; \
echo " rm -f '$(DESTDIR)$(pkgdatadir)/$$f'"; \
rm -f "$(DESTDIR)$(pkgdatadir)/$$f"; \
done
( $(finddoc) ) | while read p; do \
case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac; \
echo " rm -f '$(DESTDIR)$(docadir)/$$f'"; \
rm -f "$(DESTDIR)$(docdir)/$$f"; \
done
( $(finddocdirs) | sed -e 's/ /\n/g' | sort -r ) | while read p; do \
d=$(DESTDIR)$(docdir)/$$p && \
if test -d $$d ; then echo "rmdir $$d"; echo `rmdir $$d` ; fi \
done
endif
dist-hook:
srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
( $(finddata); $(finddocdist); $(findnoinst); $(findnoinst_headers); $(findextrapo) ) | (cd $(top_srcdir) && tar cf - -T -) | (cd $(distdir) && tar xf -)
dist_noinst_DATA = copyright changelog players_changelog wesnoth.dev editor.dev server.dev wesnoth.kdevelop campaign_server.dsp map_editor.dsp server.dsp wesnoth.dsp wesnoth.dsw
uninstall-hook:
if test -d $(pkgdatadir) ; then rm -r $(pkgdatadir) ; fi
if test -d $(bindir) ; then echo `rmdir $(bindir)` ; fi
if test -d $(datadir) ; then echo `rmdir $(datadir)` ; fi
if test -d $(prefix) ; then echo `rmdir $(prefix)` ; fi
if test -d $(docdir) ; then echo `rmdir $(docdir)` ; fi
clean-local:
rm -rf po/stamp* po/*/stamp*
distclean-local:
rm -rf translations
BINARY_STAGING=/tmp/$(PACKAGE)-$(VERSION)-staging
BINARY_DIST=/tmp/$(PACKAGE)-binary-$(VERSION).tar.gz
DATA_DIST=/tmp/$(PACKAGE)-data-$(VERSION).tar.gz
binary-dist:
@rm -rf $(BINARY_STAGING) $(BINARY_DIST)
@make install-exec DESTDIR=$(BINARY_STAGING)
@cd $(BINARY_STAGING) ; tar cf - * | gzip -c >$(BINARY_DIST)
@rm -rf $(BINARY_STAGING)
@echo "Precompiled binary tarball is in $(BINARY_DIST)"
data-dist:
@rm -rf $(BINARY_STAGING) $(DATA_DIST)
@make install-data DESTDIR=$(BINARY_STAGING)
@cd $(BINARY_STAGING) ; tar cf - * | gzip -c >$(DATA_DIST)
@rm -rf $(BINARY_STAGING)
@echo "Precompiled data tarball is in $(DATA_DIST)"
ACLOCAL_AMFLAGS = -I m4
EXTRA_DIST = config/config.rpath config/mkinstalldirs config/py-compile
if PYTHON_INSTALL
pkgpython_PYTHON = data/tools/wesnoth/wmltools.py \
data/tools/wesnoth/libsvn.py \
data/tools/wesnoth/wescamp.py \
data/tools/wesnoth/wmldata.py \
data/tools/wesnoth/wmliterator.py \
data/tools/wesnoth/wmlparser.py \
data/tools/wesnoth/campaignserver_client.py \
data/tools/wesnoth/__init__.py
endif
update-po:
@cd po && make $@ || exit $?
if MANUALUPDATE
@cd doc/manual && make update-po || exit $?
endif
if PO4AUPDATE
update-po4a:
@cd po && make update-po4a || exit $?
@echo -n "Removing empty man directories... "
@find doc/man/ -maxdepth 1 -type d -empty -exec rmdir {} \; && \
echo "done." || exit $?
if MANUALUPDATE
@cd doc/manual && make html || exit $?
endif
endif
if MANUALUPDATE
manual-en:
@cd doc/manual && make manual.en.html || exit $?
endif
# latest graph-includes.pl can be found currently at http://ydirson.free.fr/soft/wesnoth/graphs/
wesnoth-deps.dot:
PERL5LIB=$(top_srcdir) graph-includes -verbose --class wesnoth --consolidate 1-1 \
-sysI /usr/include/c++/4.0 -sysI /usr/include -sysI /usr/include/SDL \
--prefixstrip $(top_srcdir)/src/ -I $(top_srcdir)/src $(top_srcdir)/src > $@ || \
( rm $@; false )
%.ps: %.dot
dot -Tps $< > $@

19
README Normal file
View file

@ -0,0 +1,19 @@
The game's license is described in COPYING.
See INSTALL for instructions on how to build the game from source code.
A description of how to play the game can be found in MANUAL.
To be notified of new releases, go to
http://freshmeat.net/projects/wesnoth
and 'subscribe to new releases'.
Wesnoth User and Developer Forums (with over 100,000 posts from more
than 2,800 registered members) can be found at
http://forum.wesnoth.org/
For extensive documentation about all aspects of the game, see the
official Battle for Wesnoth web site:
http://www.wesnoth.org/
David White <davidnwhite@verizon.net>

109
README.md
View file

@ -1,109 +0,0 @@
[![License: GPL v2](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)
|Branch|CI status|
|------|---------|
|Master|[![CI](https://github.com/wesnoth/wesnoth/actions/workflows/ci-main.yml/badge.svg)](https://github.com/wesnoth/wesnoth/actions/workflows/ci-main.yml?query=branch%3Amaster)|
|1.18|[![CI](https://github.com/wesnoth/wesnoth/actions/workflows/ci-main.yml/badge.svg?branch=1.18)](https://github.com/wesnoth/wesnoth/actions/workflows/ci-main.yml?query=branch%3A1.18)|
About
=====
**The Battle for Wesnoth** is an Open Source, turn-based tactical strategy game with a high fantasy theme, featuring both singleplayer and online/hotseat multiplayer combat. Fight a desperate battle to reclaim the throne of Wesnoth, search for the key to immortality, or take part in any number of other adventures.
Community
---------
The official Battle for Wesnoth Forums:
<https://forums.wesnoth.org/>
Discord:
<https://discord.gg/battleforwesnoth>
IRC:
<https://wiki.wesnoth.org/Support#IRC>
Mastodon:
<https://fosstodon.org/@wesnoth>
Steam forums:
<https://steamcommunity.com/app/599390/discussions/>
Features
--------
* A variety of different campaigns, each with their own tactical challenges, emotionally charged story, and multiple difficulty levels.
* A detailed world and storytelling with hundreds of sprites, animations, and characters.
* Many different unit skills and traits across several factions.
* A map editor with multiple tools, hundreds types of terrain, and the ability for you to save and share maps with others. Create your own scenarios/battles for near infinite replayability.
* Highly moddable, allowing a wide array of community created map packs, eras, and entire campaigns.
* Online and local multiplayer gameplay to play with friends, strangers, or against the AI.
* Changeable settings for base gameplay, with nearly limitless options for different hotkey configurations.
* Beautifully composed playlist that captures the era and grandiosity of this lore-filled high-fantasy world.
Installing
----------
Wesnoth can be played on Windows, macOS, and Linux, and can be installed using:
* [Steam](https://store.steampowered.com/app/599390/Battle_for_Wesnoth/) (all)
* [itch.io](https://wesnoth.itch.io/battle-for-wesnoth) (Windows and macOS)
* The [macOS App Store](https://apps.apple.com/us/app/the-battle-for-wesnoth/id1450738104)
* standalone installers on [SourceForge](https://sourceforge.net/projects/wesnoth/files/) (Windows and macOS)
* [Flatpak](https://flathub.org/apps/details/org.wesnoth.Wesnoth) (Linux)
Additionally, Wesnoth is available for [iOS](https://apps.apple.com/us/app/battle-for-wesnoth/id575852062) and [Android](https://sourceforge.net/projects/wesnoth-on-android/files/).
To build the game from source, see [INSTALL](/INSTALL.md) for instructions.
Contributing
------------
Wesnoth is most in need of skilled C++ developers (C++14 and later), however there are things that nearly anyone can help with:
* Simple tasks in C++.
* The Lua and WML used for content scripting.
* Python used by various external tools.
* Even play testing and giving feedback on updated campaigns!
Additionally, Wesnoth lacks art for a variety of unit animations - anyone who would be interested in lending a hand in updating existing unit sprites or creating animations should take a look at the [Art Contributions](https://forums.wesnoth.org/viewforum.php?f=9) forum as well as contact our current art director.
See also: [CONTRIBUTING](/CONTRIBUTING.md)
For any questions, the best place to start is to simply join Wesnoth's forums, Discord, or IRC and start asking!
Donations
---------
Donations can be sent via [Software in the Public Interest](https://www.spi-inc.org/projects/wesnoth/), [Liberapay](https://liberapay.com/Wesnoth), as well as when downloading through itch.io. All money donated is used to pay for project expenses such as server rent and art commissions, and is very much appreciated.
License
-------
All source code is licensed under the GNU GPL v2+. Most art and music is also licensed under the GNU GPL v2+, however new contributions are now licensed under the Creative Commons BY-SA v4.0. For more detailed information on Wesnoth's licensing, see the wiki:
<https://wiki.wesnoth.org/Wesnoth:Copyrights>
More Information
----------------
For extensive documentation about all aspects of the game, see the official Battle for Wesnoth web site:
<https://www.wesnoth.org/>
<https://wiki.wesnoth.org/>
A (translated) description of how to play the game can be found in doc/manual/manual.*.html, or online at:
<https://wiki.wesnoth.org/WesnothManual>
For information on creating your own maps, scenarios, and other content, see:
<https://wiki.wesnoth.org/Create>
Gallery
-------
![screenshot_main_menu](https://www.wesnoth.org/images/sshots/wesnoth-1.16.0-1.jpg)
![scrreenshot_isars_cross](https://www.wesnoth.org/images/sshots/wesnoth-1.16.0-2.jpg)
![screenshot_campaign_menu](https://www.wesnoth.org/images/sshots/wesnoth-1.16.0-5.jpg)
![screenshot_map](https://www.wesnoth.org/images/sshots/wesnoth-1.16.0-8.jpg)

33
RELEASE_NOTES Normal file
View file

@ -0,0 +1,33 @@
This file is here to allow devs to easily add stuff in the release
notes for the next release, it allows easy syncing with the release
team, since you don't have to be around when the release takes
place...
Just dump whatever you want to have mentioned in the release notes here. Please
take care that it is in a way that allows copy&paste to the release notes. That
is making sure that spelling/grammer/whatever is usable and that you are using
complete sentences, not just single words.
The release team should empty this file after each release.
***
Replays work again for single-player campaign scenarios.
***
This release contains an important security update, fixing a
vulnerability that could allow third-party content (such as campaigns
downloaded from the add-on server) to execute arbitrary code with user
account privileges. See bug #31048 for details. All content
currently on the official add-on server has been inspected to confirm
that none of it exploits this vulnerability, and the add-on server
itself has been patched to ensure that exploits can no longer be
uploaded. Therefore, users of previous versions of Battle for Wesnoth
who have received user-made content through the official add-on server
and no other distribution channel need not fear that their system has
been compromised.
CVE-2009-0367 has been assigned to this vulnerability and may provide
further information.

1056
SConstruct Executable file → Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,332 +0,0 @@
#!/usr/bin/env python3
# encoding: utf-8
# known issues:
# xcode - if a file already exists in 'wesnoth' target, then it incorrectly thinks it also exists in the 'tests' target even though the tests build will fail
"""
Add files to the specified build targets, supporting
CMake, SCons, Xcode and the Code::Blocks projects.
Valid build targets are:
* "wesnoth" - the main game (default if no target is specified)
* "wesnothd" - the wesnoth server
* "campaignd"
* "lua"
* "tests" - boost unit tests
The files will be added to:
* the lists used by CMake and SCons in "source_lists"
* the Xcode project
* The Code::Blocks project
This only supports files inside the "src" directory.
"""
import argparse
import sys
import inspect
import pathlib
try:
import pbxproj
except:
print('\n'.join((
'This script requires the "pbxproj" module.',
'Install it using "pip install pbxproj"',
'optionally setting up a python3-venv first.',
)))
exit(1)
#=========#
# Globals #
#=========#
# Either the executable directory or the current working directory
# should be the wesnoth root directory
rootdir = pathlib.Path(inspect.getsourcefile(lambda:0))
if not rootdir.joinpath("projectfiles").exists():
rootdir = pathlib.Path()
if not rootdir.joinpath("projectfiles").exists():
raise Exception("Could not find project file directory")
# the names of the targets in the Xcode project
xcode_target_translations = {
"wesnoth": ["The Battle for Wesnoth", "unit_tests"],
"wesnothd": ["wesnothd"],
"campaignd": ["campaignd"],
"lua": ["liblua"],
"tests": ["unit_tests"],
}
# the names of the targets in source_lists
source_list_target_translations = {
"wesnoth": "wesnoth",
"wesnothd": "wesnothd",
"campaignd": "campaignd",
"lua": "lua",
"tests": "boost_unit_tests",
}
# the names of the targets in Code::Blocks
code_blocks_target_translations = {
"wesnoth": "wesnoth",
"wesnothd": "wesnothd",
"campaignd": "campaignd",
"lua": "liblua",
"tests": "tests",
}
#=======#
# XCode #
#=======#
def modify_xcode(filename, targets, remove):
"""Add the given file to the specified targets.
"""
projectfile = rootdir.joinpath(
"projectfiles",
"Xcode",
"The Battle for Wesnoth.xcodeproj",
"project.pbxproj",
)
project = pbxproj.XcodeProject.load(projectfile)
translated_targets = [item for t in targets for item in xcode_target_translations[t]]
translated_targets = list(set(translated_targets))
print(" xcode targets:", translated_targets)
for tname in translated_targets:
if not project.get_target_by_name(tname):
raise Exception(
f"Could not find target '{tname}' in Xcode project file")
# groups are organized by directory structure under "src"
# except for tests, which have a separate root, "tests"
if pathlib.Path("tests") in filename.parents:
src_groups = project.get_groups_by_name("tests")
else:
src_groups = project.get_groups_by_name("src")
if len(src_groups) != 1:
raise Exception("problem finding 'src' group in xcode project")
src_group = src_groups[0]
parent_group = src_group
for d in filename.parts[:-1]:
if d == "tests":
continue
found_groups = project.get_groups_by_name(d, parent=parent_group)
if len(found_groups) != 1:
groupname = parent_group.get_name()
raise Exception(f"problem finding '{d}' group in '{groupname}'")
parent_group = found_groups[0]
if remove :
# Remove from all targets if we want to remove
for file in project.get_files_by_name(filename.name, parent=parent_group):
project.remove_file_by_id(file.get_id())
else:
# if the group already has an entry with the same filename, loudly skip.
# note: this doesn't allow adding to targets one at a time.
# a new file should be added to all targets at once...
# or maybe targets could be checked somehow,
# or maybe the file could simply be completely removed and readded.
if project.get_files_by_name(filename.name, parent=parent_group):
print(" '"+filename.name+"' already found in Xcode project '"+",".join(translated_targets)+"', skipping")
return
# force is True here because otherwise a duplicate filename in
# a different place will block addition of the new file.
# the rest is just to match existing project file structure.
project.add_file(filename.name,
force=True,
tree="<group>",
parent=parent_group,
target_name=translated_targets,
)
# that's done, save the file
project.save()
return
#==============#
# source_lists #
#==============#
def modify_source_list(filename, source_list, remove):
source_list_file = rootdir.joinpath("source_lists", source_list)
sl_lines = open(source_list_file).readlines()
file_line = filename.as_posix() + '\n'
# we only need source files in the source_lists, not header files
if filename.suffix != ".cpp":
return
if remove:
if file_line in sl_lines: sl_lines.remove(file_line)
else:
# if the target already has an entry with the same filename, loudly skip
if file_line in sl_lines:
print(f" '{filename}' already found in '{source_list}', skipping")
return
sl_lines.append(file_line)
sl_lines.sort()
open(source_list_file, 'w').writelines(sl_lines)
def add_to_source_lists(filename, targets):
translated_targets = [source_list_target_translations[t] for t in targets]
print(" source_list targets:", translated_targets)
for t in translated_targets:
modify_source_list(filename, t, False)
def remove_from_source_lists(filename):
# remove from all tagerts if -r was specified.
for t in source_list_target_translations.values():
modify_source_list(filename, t, True)
#==============#
# Code::Blocks #
#==============#
def modify_code_blocks_target(filename, target, remove):
cbp_file = rootdir.joinpath(
"projectfiles",
"CodeBlocks",
f"{target}.cbp",
)
cbp_lines = open(cbp_file).readlines()
filename_for_cbp = pathlib.PurePath(
"..", "..", "src", filename
).as_posix()
elem = f"\t\t<Unit filename=\"{filename_for_cbp}\" />\n"
if remove:
if elem in cbp_lines: cbp_lines.remove(elem)
else:
# if the target already has an entry with the same filename, loudly skip
if elem in cbp_lines:
print(f" '{filename}' already found in '{target}.cbp', skipping")
return
# find an appropriate line to add before/after
index = 0
for line in cbp_lines:
if line.startswith("\t\t<Unit "):
if elem < line:
break
elif line.startswith("\t\t<Extensions>"):
# we must be the last entry, as this comes after the Unit section
break
index += 1
cbp_lines.insert(index, elem)
open(cbp_file, 'w').writelines(cbp_lines)
def modify_code_blocks(filename, targets, remove):
translated_targets = code_blocks_target_translations.values() if remove else [code_blocks_target_translations[t] for t in targets]
print(" code::blocks targets:", translated_targets)
for t in translated_targets:
modify_code_blocks_target(filename, t, remove)
def sanity_check_existing_cpp_hpp(filenames):
"""
If we're adding a .cpp file, check whether a .hpp should be added too, etc.
Only the files named on the command line are added, this exits if the check fails.
"""
any_check_failed = False
for filename in filenames:
if filenames.count(filename) > 1:
print(f"ERROR: File '{filename}' given multiple times")
any_check_failed = True
if not rootdir.joinpath("src", filename).exists():
print(f"WARN: File '{filename}' does not exist")
any_check_failed = True
spouse = None
if filename.suffix == ".cpp":
spouse = filename.with_suffix(".hpp")
elif filename.suffix == ".hpp":
spouse = filename.with_suffix(".cpp")
if rootdir.joinpath("src", spouse).exists() and not filenames.count(spouse):
print(f"WARN: Requested to add '{filename}', should '{spouse}' be added too?")
any_check_failed = True
if any_check_failed:
break
if any_check_failed:
print("ERROR: Not making changes, as checks failed and --no-checks option was not used.")
exit(1)
def canonicalise_filenames(original_filenames):
"""
The script supports giving the filenames with or without the "src/" prefix.
Strip the "src/" if present, functions that need it will add it again later.
"""
filenames = []
# If src/src/ exists, the filenames become ambiguous. No need to support that.
if rootdir.joinpath("src", "src").exists():
print("Please don't add a file or directory called src/src.")
exit(1)
for filename in options.filename:
filename = pathlib.PurePath(filename)
parts = filename.parts
if parts[0] == "src":
filename = pathlib.PurePath(*parts[1:])
else:
filename = pathlib.PurePath(*parts)
filenames.append(filename)
return filenames
#======#
# main #
#======#
if __name__ == "__main__":
ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
# a file argument is mandatory
ap.add_argument("filename", action="store", nargs="+",
help="the .cpp and .hpp files to add")
ap.add_argument("--target", action="store", nargs=1,
default=["wesnoth"],
help="which build targets to add the file to")
ap.add_argument("--no-checks", action="store_true",
help="do not check whether the files exist, etc")
ap.add_argument("-r", "--remove", action="store_true",
help="remove the specified files from projectfiles instead of adding them, --target is then ignored")
# By default, recognise --help too
options = ap.parse_args()
# Bail out if someone uses the old syntax of "add_source_file src/foo.cpp campaignd"
if not options.no_checks:
if len(options.filename) == 2 and not options.filename[1].count('.'):
print("The usage has changed, targets now need to be given using --target name")
exit(1)
# Convert the names to pathlib.PurePath objects without leading "src/"
filenames = canonicalise_filenames(options.filename)
if not options.no_checks:
sanity_check_existing_cpp_hpp(filenames)
for filename in filenames:
if options.remove:
print(f"removing '{filename}' from all targets")
modify_xcode(filename, options.target, True)
remove_from_source_lists(filename)
modify_code_blocks(filename, options.target, True)
else:
print(f"adding '{filename}' to targets: {options.target}")
modify_xcode(filename, options.target, False)
add_to_source_lists(filename, options.target)
modify_code_blocks(filename, options.target, False)

25
attic/README Normal file
View file

@ -0,0 +1,25 @@
This directory contains old art and resources not currently used anywhere in
the game. It should not ship with the distribution tarball.
Some notes on specific images and image groups follow:
scepter_of_fire.png:
Old story image of the Scepter, quite large.
units/thain.png,units/thain2.png:
Originally from SoF. 1.3-sized.
desert-elvish-druid-statue.png, desert-elvish-shyde-statue:
Used in older versions of UtBS. 1.3-sized.
keratur.png:
The original image for the uncloaked assassin in UtBS. 1.3-sized.
spider-lich.png:
Old unit image from UtBS.
clasher-attack-mace.png
Orphaned when the Drake Clasher lost this attack.
units/fire-dragon-flying-*.png
Jetryl plans to finish these. See FR #11041.

View file

@ -1,30 +0,0 @@
This directory contains old art and resources not currently used anywhere in
the game. It should not ship with the distribution tarball.
Some notes on specific images and image groups follow:
clasher-attack-mace.png
Orphaned when the Drake Clasher lost this attack.
keratur.png
The original image for the uncloaked assassin in UtBS. 1.3-sized.
perrin.png
Originally from THoT. No longer used, removed for GitHub #6602.
ratheln.png
Originally from THoT. No longer used, removed in GitHub #6593.
righteous-flame-icon.png
Originally from THoT. No longer used, removed for GitHub #6602.
scepter_of_fire.png
Old story image of the Scepter, quite large.
spider-lich.png
Old unit image from UtBS.
thain.png,thain2.png
Originally from SoF. 1.3-sized.
units/fire-dragon-flying-*.png
Jetryl plans to finish these. See FR #11041.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 428 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 775 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 799 B

After

Width:  |  Height:  |  Size: 769 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

View file

@ -1,3 +1,6 @@
border_size=1
usage=map
Mm ,Mm , Mm , Ha , Ha , Re , Aa , Gg , Gg , Ha , Mm , Ha , Ha , Aa , Aa , Gg , Aa^Fpa , Aa^Fpa , Aa^Fpa , Gg , Aa^Fpa , Aa^Fpa , Aa^Fpa
Mm ,Mm , Mm , Ha , Ha , Re , Aa , Gg , Gg , Ha , Mm , Ha , Ha , Aa , Aa , Gg , Aa^Fpa , Aa^Fpa , Aa^Fpa , Gg , Aa^Fpa , Aa^Fpa , Aa^Fpa
Ha ,Ha , Ha , Mm , Ha , Re , Aa^Fpa , Aa^Fpa , Aa^Fpa , Ha , Ha , Ha , Mm , Ha , Ha , Gg , Gg , Aa^Fpa , Aa^Fpa , Aa^Fpa , Aa^Fpa , Aa^Fpa , Aa^Fpa

View file

@ -1,3 +1,7 @@
border_size=1
usage=map
Aa ,Aa , Aa , Aa , Aa , Rr , Aa , Aa , Aa , Aa^Fpa , Aa^Fpa , Ha , Mm , Mm , Mm , Ha , Aa^Fpa , Aa , Wo , Wo , Aa^Fpa , Aa^Fpa , Aa^Fpa , Aa^Fpa , Aa , Aa , Aa^Fpa , Aa , Aa , Aa , Aa^Fpa , Ha , Mm , Mm , Mm , Mm , Mm , Mm , Mm , Mm , Mm , Mm
Aa ,Aa , Aa , Aa , Aa , Rr , Aa , Aa , Aa , Aa^Fpa , Aa^Fpa , Ha , Mm , Mm , Mm , Ha , Aa^Fpa , Aa , Wo , Wo , Aa^Fpa , Aa^Fpa , Aa^Fpa , Aa^Fpa , Aa , Aa , Aa^Fpa , Aa , Aa , Aa , Aa^Fpa , Ha , Mm , Mm , Mm , Mm , Mm , Mm , Mm , Mm , Mm , Mm
Aa ,Aa , Aa^Fpa , Aa^Fpa , Aa^Fpa , Rr , Rr , Aa , Aa , Aa^Fpa , Ha , Ha , Mm , Mm , Ha , Ha , Aa^Fpa , Aa^Fpa , Wo , Ai , Aa , Aa^Fpa , Aa , Aa , Aa , Aa^Fpa , Aa^Fpa , Aa^Fpa , Aa^Fpa , Aa^Fpa , Aa^Fpa , Aa^Fpa , Ha , Mm , Mm , Mm , Mm , Mm , Mm , Mm , Mm , Mm

View file

@ -1,3 +1,7 @@
border_size=1
usage=map
Gs ,Gs , Gs , Gs , Gs , Gs , Gs , Gs^Ft , Gs^Ft , Gs^Ft , Gs^Ft , Gs^Ft , Dd , Gs^Ft , Gs^Ft , Dd , Dd , Dd , Gs^Ft , Gs^Ft , Gs^Ft , Dd , Ww , Ww , Ww , Gs , Dd , Gs , Gs , Rd , Gs , Gs^Ft , Gs^Ft , Gs , Gs^Ft , Gs^Ft , Gs , Dd , Gs , Gs , Gs^Ft , Gs^Ft
Gs ,Gs , Gs , Gs , Gs , Gs , Gs , Gs^Ft , Gs^Ft , Gs^Ft , Gs^Ft , Gs^Ft , Dd , Gs^Ft , Gs^Ft , Dd , Dd , Dd , Gs^Ft , Gs^Ft , Gs^Ft , Dd , Ww , Ww , Ww , Gs , Dd , Gs , Gs , Rd , Gs , Gs^Ft , Gs^Ft , Gs , Gs^Ft , Gs^Ft , Gs , Dd , Gs , Gs , Gs^Ft , Gs^Ft
Gs ,Gs , Gs , Dd , Dd , Gs , Dd , Gs , Dd , Gs^Ft , Gs^Ft , Dd , Dd , Gs , Gs^Ft , Gs^Ft , Gs^Ft , Dd , Gs , Dd , Ww , Ww , Ww , Ww , Gs^Ft , Gs , Gs , Dd , Gs , Rd , Gs , Gs^Ft , Gs , Gs^Ft , Gs , Dd , Gs , Dd , Gs , Dd , Gs^Ft , Gs^Ft

View file

@ -1,3 +1,7 @@
border_size=1
usage=map
Gs^Fp ,Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Ww , Gs^Fp , Gs^Fp , Gs^Fp , Hh , Hh , Mm , Mm , Mm , Hh , Hh , Hh , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Rr , Rr
Gs^Fp ,Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Ww , Gs^Fp , Gs^Fp , Gs^Fp , Hh , Hh , Mm , Mm , Mm , Hh , Hh , Hh , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Rr , Rr
Gs^Fp ,Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Ww , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Hh , Hh , Hh , Mm , Hh , Hh , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gg , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gg^Ve , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gs^Fp , Gg^Ve , Rr , Rr , Gg^Ve , Gg

2
attic/maps/README.map Normal file
View file

@ -0,0 +1,2 @@
These maps used to live under the campaign directory for The South Guard.
They're not used anywhere in it.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 815 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 815 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 655 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 646 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 914 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 953 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 973 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 388 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 673 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 882 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 882 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 890 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Some files were not shown because too many files have changed in this diff Show more