wesnoth-cvs-commits
[Top][All Lists]
Advanced

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

[Wesnoth-cvs-commits] wesnoth ./Makefile.in ./aclocal.m4 ./configure ...


From: David White
Subject: [Wesnoth-cvs-commits] wesnoth ./Makefile.in ./aclocal.m4 ./configure ...
Date: Sat, 18 Sep 2004 17:59:46 -0400

CVSROOT:        /cvsroot/wesnoth
Module name:    wesnoth
Branch:         
Changes by:     David White <address@hidden>    04/09/18 21:42:14

Modified files:
        .              : Makefile.in aclocal.m4 configure 
        icons          : Makefile.in 
        m4             : Makefile.in 
        po/ca          : wesnoth.po 
        po/fi          : wesnoth.po 
        po/hu          : wesnoth.po 
        po/it          : wesnoth.po 
        po/pl          : wesnoth.po 
        src            : Makefile.in filesystem.cpp filesystem.hpp 
                         game.cpp unit_types.cpp unit_types.hpp 
        src/campaign_server: Makefile.in 
        src/server     : Makefile.in 
        src/tools      : Makefile.in 
        src/zip        : Makefile.in 

Log message:
        refactored game.cpp

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/Makefile.in.diff?tr1=1.48&tr2=1.49&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/aclocal.m4.diff?tr1=1.27&tr2=1.28&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/configure.diff?tr1=1.109&tr2=1.110&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/icons/Makefile.in.diff?tr1=1.39&tr2=1.40&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/m4/Makefile.in.diff?tr1=1.19&tr2=1.20&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/po/ca/wesnoth.po.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/po/fi/wesnoth.po.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/po/hu/wesnoth.po.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/po/it/wesnoth.po.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/po/pl/wesnoth.po.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/Makefile.in.diff?tr1=1.76&tr2=1.77&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/filesystem.cpp.diff?tr1=1.44&tr2=1.45&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/filesystem.hpp.diff?tr1=1.28&tr2=1.29&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/game.cpp.diff?tr1=1.130&tr2=1.131&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/unit_types.cpp.diff?tr1=1.64&tr2=1.65&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/unit_types.hpp.diff?tr1=1.51&tr2=1.52&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/campaign_server/Makefile.in.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/server/Makefile.in.diff?tr1=1.49&tr2=1.50&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/tools/Makefile.in.diff?tr1=1.47&tr2=1.48&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/zip/Makefile.in.diff?tr1=1.32&tr2=1.33&r1=text&r2=text

Patches:
Index: wesnoth/Makefile.in
diff -u wesnoth/Makefile.in:1.48 wesnoth/Makefile.in:1.49
--- wesnoth/Makefile.in:1.48    Mon Sep 13 10:47:42 2004
+++ wesnoth/Makefile.in Sat Sep 18 21:42:10 2004
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# Makefile.in generated by automake 1.8.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -461,16 +461,14 @@
                $(TAGS_FILES) $(LISP)
        tags=; \
        here=`pwd`; \
-       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+       if (etags --etags-include --version) >/dev/null 2>&1; then \
          include_option=--etags-include; \
-         empty_fix=.; \
        else \
          include_option=--include; \
-         empty_fix=; \
        fi; \
        list='$(SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
-           test ! -f $$subdir/TAGS || \
+           test -f $$subdir/TAGS && \
              tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
          fi; \
        done; \
@@ -480,11 +478,9 @@
          done | \
          $(AWK) '    { files[$$0] = 1; } \
               END { for (i in files) print i; }'`; \
-       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
-         test -n "$$unique" || unique=$$empty_fix; \
-         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-           $$tags $$unique; \
-       fi
+       test -z "$(ETAGS_ARGS)$$tags$$unique" \
+         || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+            $$tags $$unique
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
@@ -596,7 +592,7 @@
        *.tar.Z*) \
          uncompress -c $(distdir).tar.Z | $(AMTAR) xf - ;;\
        *.shar.gz*) \
-         GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+         GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | unshar ;;\
        *.zip*) \
          unzip $(distdir).zip ;;\
        esac
Index: wesnoth/aclocal.m4
diff -u wesnoth/aclocal.m4:1.27 wesnoth/aclocal.m4:1.28
--- wesnoth/aclocal.m4:1.27     Mon Sep 13 10:47:42 2004
+++ wesnoth/aclocal.m4  Sat Sep 18 21:42:10 2004
@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.8.5 -*- Autoconf -*-
+# generated automatically by aclocal 1.8.3 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
 # Free Software Foundation, Inc.
@@ -40,7 +40,7 @@
 # Call AM_AUTOMAKE_VERSION so it can be traced.
 # This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-        [AM_AUTOMAKE_VERSION([1.8.5])])
+        [AM_AUTOMAKE_VERSION([1.8.3])])
 
 # AM_AUX_DIR_EXPAND
 
@@ -266,14 +266,9 @@
        grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
       # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+      # (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored.
+      if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else
         am_cv_$1_dependencies_compiler_type=$depmode
         break
       fi
Index: wesnoth/configure
diff -u wesnoth/configure:1.109 wesnoth/configure:1.110
--- wesnoth/configure:1.109     Mon Sep 13 10:47:42 2004
+++ wesnoth/configure   Sat Sep 18 21:42:10 2004
@@ -1001,7 +1001,7 @@
     else
       echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
     fi
-    cd "$ac_popdir"
+    cd $ac_popdir
   done
 fi
 
@@ -2759,7 +2759,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2817,7 +2818,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2933,7 +2935,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2987,7 +2990,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3032,7 +3036,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3076,7 +3081,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3186,14 +3192,9 @@
        grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
       # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+      # (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored.
+      if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else
         am_cv_CC_dependencies_compiler_type=$depmode
         break
       fi
@@ -3397,7 +3398,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3451,7 +3453,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3766,7 +3769,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3973,7 +3977,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4034,7 +4039,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4094,7 +4100,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4173,7 +4180,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4238,7 +4246,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4303,7 +4312,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4367,7 +4377,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4437,7 +4448,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4500,7 +4512,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4562,7 +4575,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4624,7 +4638,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4686,7 +4701,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4758,7 +4774,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4907,7 +4924,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -4988,7 +5006,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5129,7 +5148,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5267,7 +5287,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5451,7 +5472,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5826,7 +5848,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5911,7 +5934,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -5980,7 +6004,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6048,7 +6073,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6217,7 +6243,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6257,7 +6284,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6313,7 +6341,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6353,7 +6382,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6417,7 +6447,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6444,8 +6475,10 @@
 esac
 else
   if test "$cross_compiling" = yes; then
-  { { echo "$as_me:$LINENO: error: internal error: not reached in 
cross-compile" >&5
-echo "$as_me: error: internal error: not reached in cross-compile" >&2;}
+  { { echo "$as_me:$LINENO: error: cannot run test program while cross 
compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
    { (exit 1); exit 1; }; }
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -6538,7 +6571,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6578,7 +6612,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6634,7 +6669,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6674,7 +6710,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6738,7 +6775,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6765,8 +6803,10 @@
 esac
 else
   if test "$cross_compiling" = yes; then
-  { { echo "$as_me:$LINENO: error: internal error: not reached in 
cross-compile" >&5
-echo "$as_me: error: internal error: not reached in cross-compile" >&2;}
+  { { echo "$as_me:$LINENO: error: cannot run test program while cross 
compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
    { (exit 1); exit 1; }; }
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -6859,7 +6899,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6899,7 +6940,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6955,7 +6997,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -6995,7 +7038,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7059,7 +7103,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7086,8 +7131,10 @@
 esac
 else
   if test "$cross_compiling" = yes; then
-  { { echo "$as_me:$LINENO: error: internal error: not reached in 
cross-compile" >&5
-echo "$as_me: error: internal error: not reached in cross-compile" >&2;}
+  { { echo "$as_me:$LINENO: error: cannot run test program while cross 
compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
    { (exit 1); exit 1; }; }
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -7180,7 +7227,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7256,7 +7304,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -7955,7 +8004,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8033,7 +8083,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8242,7 +8293,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8309,7 +8361,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8377,7 +8430,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8446,7 +8500,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8514,7 +8569,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8582,7 +8638,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8706,7 +8763,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8756,7 +8814,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8846,7 +8905,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8911,7 +8971,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -8975,7 +9036,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -9161,7 +9223,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -9606,7 +9669,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -9660,7 +9724,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10251,7 +10316,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_cxx_werror_flag"                         || 
test ! -s conftest.err'
+        { ac_try='test -z "$ac_cxx_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10309,7 +10375,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_cxx_werror_flag"                         || 
test ! -s conftest.err'
+        { ac_try='test -z "$ac_cxx_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10380,7 +10447,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_cxx_werror_flag"                         || 
test ! -s conftest.err'
+        { ac_try='test -z "$ac_cxx_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10424,7 +10492,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_cxx_werror_flag"                         || 
test ! -s conftest.err'
+        { ac_try='test -z "$ac_cxx_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10528,14 +10597,9 @@
        grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
       # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+      # (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored.
+      if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else
         am_cv_CXX_dependencies_compiler_type=$depmode
         break
       fi
@@ -10933,7 +10997,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -10991,7 +11056,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -11107,7 +11173,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -11161,7 +11228,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -11206,7 +11274,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -11250,7 +11319,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -11360,14 +11430,9 @@
        grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
       # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+      # (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored.
+      if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else
         am_cv_CC_dependencies_compiler_type=$depmode
         break
       fi
@@ -11401,12 +11466,9 @@
 have_libx11='no'
 if test "$with_x" != 'no'; then
 
-
-if test "x$ac_path_x_has_been_run" != xyes; then
-  echo "$as_me:$LINENO: checking for X" >&5
+   echo "$as_me:$LINENO: checking for X" >&5
 echo $ECHO_N "checking for X... $ECHO_C" >&6
 
-ac_path_x_has_been_run=yes
 
 # Check whether --with-x or --without-x was given.
 if test "${with_x+set}" = set; then
@@ -11499,7 +11561,7 @@
 /usr/openwin/share/include'
 
 if test "$ac_x_includes" = no; then
-  # Guess where to find include files, by looking for a specified header file.
+  # Guess where to find include files, by looking for Intrinsic.h.
   # First, try using that file with no special directory specified.
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -11573,7 +11635,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -11633,15 +11696,10 @@
   # Update the cache value to reflect the command line values.
   ac_cv_have_x="have_x=yes \
                ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
-  # It might be that x_includes is empty (headers are found in the
-  # standard search path. Then output the corresponding message
-  ac_out_x_includes=$x_includes
-  test "x$x_includes" = x && ac_out_x_includes="in standard search path"
-  echo "$as_me:$LINENO: result: libraries $x_libraries, headers 
$ac_out_x_includes" >&5
-echo "${ECHO_T}libraries $x_libraries, headers $ac_out_x_includes" >&6
+  echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" 
>&5
+echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6
 fi
 
-fi
 if test "$no_x" = yes; then
   # Not all programs may use this symbol, but it does not hurt to define it.
 
@@ -11689,7 +11747,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -11740,7 +11799,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -11816,7 +11876,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -11871,7 +11932,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -11939,7 +12001,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -12047,7 +12110,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -12111,7 +12175,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -12179,7 +12244,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -12283,7 +12349,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -12347,7 +12414,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -12444,7 +12512,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -12508,7 +12577,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -12605,7 +12675,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -12669,7 +12740,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -12748,7 +12820,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -12821,7 +12894,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -13382,7 +13456,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -13459,7 +13534,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -13536,7 +13612,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -13613,7 +13690,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -13705,7 +13783,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -13777,7 +13856,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -13831,7 +13911,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -13902,7 +13983,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -13956,7 +14038,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -14023,7 +14106,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -14195,7 +14279,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -14343,7 +14428,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -14491,7 +14577,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -14639,7 +14726,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -14787,7 +14875,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -14945,7 +15034,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -15127,7 +15217,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -15182,7 +15273,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -15297,7 +15389,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -15357,7 +15450,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -15430,7 +15524,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -15495,7 +15590,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -15559,7 +15655,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -15621,7 +15718,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -15871,7 +15969,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -15940,7 +16039,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -16047,7 +16147,8 @@
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s 
conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -17379,6 +17480,11 @@
   *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
   esac
 
+  if test x"$ac_file" != x-; then
+    { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+    rm -f "$ac_file"
+  fi
   # Let's still pretend it is `configure' which instantiates (i.e., don't
   # use $as_me), people would be surprised to read:
   #    /* config.h.  Generated by config.status.  */
@@ -17417,12 +17523,6 @@
         fi;;
       esac
     done` || { (exit 1); exit 1; }
-
-  if test x"$ac_file" != x-; then
-    { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    rm -f "$ac_file"
-  fi
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
   sed "$ac_vpsub
Index: wesnoth/icons/Makefile.in
diff -u wesnoth/icons/Makefile.in:1.39 wesnoth/icons/Makefile.in:1.40
--- wesnoth/icons/Makefile.in:1.39      Mon Sep 13 10:47:43 2004
+++ wesnoth/icons/Makefile.in   Sat Sep 18 21:42:11 2004
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# Makefile.in generated by automake 1.8.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
Index: wesnoth/m4/Makefile.in
diff -u wesnoth/m4/Makefile.in:1.19 wesnoth/m4/Makefile.in:1.20
--- wesnoth/m4/Makefile.in:1.19 Mon Sep 13 10:47:43 2004
+++ wesnoth/m4/Makefile.in      Sat Sep 18 21:42:11 2004
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# Makefile.in generated by automake 1.8.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
Index: wesnoth/po/ca/wesnoth.po
diff -u wesnoth/po/ca/wesnoth.po:1.6 wesnoth/po/ca/wesnoth.po:1.7
--- wesnoth/po/ca/wesnoth.po:1.6        Sun Sep 12 18:22:38 2004
+++ wesnoth/po/ca/wesnoth.po    Sat Sep 18 21:42:11 2004
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: wesnoth\n"
 "Report-Msgid-Bugs-To: http://bugs.wesnoth.org/\n";
-"POT-Creation-Date: 2004-09-12 17:19+0200\n"
+"POT-Creation-Date: 2004-09-16 14:31+0200\n"
 "PO-Revision-Date: 2004-09-05 14:33+0200\n"
 "Last-Translator: Jordà Polo <address@hidden>\n"
 "Language-Team: Català\n"
@@ -750,6 +750,12 @@
 msgid "&undead-necromancer.png,Alliance of Darkness"
 msgstr "&undead-lich.png,Aliança de la Foscor"
 
+#: data/scenario-test.cfg:38
+msgid ""
+"You can come if you wish, but the leader is only interesting in speaking to "
+"Baldras."
+msgstr ""
+
 #: data/scenarios/multiplayer/ForestOfFear.cfg:3
 msgid "Forest of Fear"
 msgstr "Bosc de por"
@@ -1751,6 +1757,27 @@
 msgid "xp"
 msgstr ""
 
+#: data/themes/default.cfg:142 data/themes/default.cfg:478
+msgid "gold"
+msgstr ""
+
+#: data/themes/default.cfg:150 data/themes/default.cfg:486
+msgid "villages"
+msgstr ""
+
+#: data/themes/default.cfg:158 data/themes/default.cfg:494
+msgid "units"
+msgstr ""
+
+#: data/themes/default.cfg:166 data/themes/default.cfg:502
+#, fuzzy
+msgid "upkeep"
+msgstr "Torre"
+
+#: data/themes/default.cfg:174 data/themes/default.cfg:510
+msgid "income"
+msgstr ""
+
 #: data/themes/default.cfg:285 data/themes/default.cfg:623
 msgid "statuspanel^level"
 msgstr ""
@@ -2117,6 +2144,7 @@
 #: data/translations/english.cfg:141 data/translations/english.cfg:143
 #: data/translations/english.cfg:144 data/translations/english.cfg:145
 #: data/translations/english.cfg:146 data/translations/english.cfg:147
+#: src/reports.cpp:310
 msgid "Village"
 msgstr ""
 
@@ -2687,7 +2715,7 @@
 #: data/units/Dwarvish_Steelclad.cfg:26 data/units/Dwarvish_Thunderer.cfg:21
 #: data/units/Dwarvish_Thunderguard.cfg:21
 #: data/units/Dwarvish_Ulfserker.cfg:28 data/units/Elvish_Archer.cfg:22
-#: data/units/Elvish_Archer.cfg:101 data/units/Elvish_Avenger.cfg:24
+#: data/units/Elvish_Archer.cfg:100 data/units/Elvish_Avenger.cfg:24
 #: data/units/Elvish_Avenger.cfg:97 data/units/Elvish_Captain.cfg:24
 #: data/units/Elvish_Champion.cfg:22 data/units/Elvish_Fighter.cfg:24
 #: data/units/Elvish_Hero.cfg:22 data/units/Elvish_High_Lord.cfg:21
@@ -2799,7 +2827,7 @@
 #: data/units/Dragoon.cfg:27 data/units/Drake_Clasher.cfg:19
 #: data/units/Drake_Fighter.cfg:20 data/units/Drake_Slasher.cfg:20
 #: data/units/Drake_Warrior.cfg:20 data/units/Elvish_Archer.cfg:21
-#: data/units/Elvish_Archer.cfg:100 data/units/Elvish_Avenger.cfg:23
+#: data/units/Elvish_Archer.cfg:99 data/units/Elvish_Avenger.cfg:23
 #: data/units/Elvish_Avenger.cfg:96 data/units/Elvish_Captain.cfg:23
 #: data/units/Elvish_Champion.cfg:21 data/units/Elvish_Fighter.cfg:23
 #: data/units/Elvish_Hero.cfg:21 data/units/Elvish_High_Lord.cfg:20
@@ -2880,7 +2908,7 @@
 
 #: data/units/Bone_Shooter.cfg:37 data/units/Bowman.cfg:37
 #: data/units/Commander.cfg:45 data/units/Elvish_Archer.cfg:38
-#: data/units/Elvish_Archer.cfg:117 data/units/Elvish_Avenger.cfg:39
+#: data/units/Elvish_Archer.cfg:116 data/units/Elvish_Avenger.cfg:39
 #: data/units/Elvish_Avenger.cfg:112 data/units/Elvish_Captain.cfg:39
 #: data/units/Elvish_Champion.cfg:40 data/units/Elvish_Fighter.cfg:40
 #: data/units/Elvish_Hero.cfg:40 data/units/Elvish_Marshal.cfg:40
@@ -2908,7 +2936,7 @@
 #: data/units/Dwarvish_Sentinel.cfg:41 data/units/Dwarvish_Stalwart.cfg:28
 #: data/units/Dwarvish_Stalwart.cfg:41 data/units/Dwarvish_Thunderer.cfg:41
 #: data/units/Dwarvish_Thunderguard.cfg:47 data/units/Elvish_Archer.cfg:39
-#: data/units/Elvish_Archer.cfg:118 data/units/Elvish_Avenger.cfg:40
+#: data/units/Elvish_Archer.cfg:117 data/units/Elvish_Avenger.cfg:40
 #: data/units/Elvish_Avenger.cfg:113 data/units/Elvish_Captain.cfg:40
 #: data/units/Elvish_Champion.cfg:41 data/units/Elvish_Druid.cfg:62
 #: data/units/Elvish_Fighter.cfg:41 data/units/Elvish_Hero.cfg:41
@@ -3618,12 +3646,12 @@
 msgid "Elder Wose"
 msgstr ""
 
-#: data/units/Elvish_Archer.cfg:3 data/units/Elvish_Archer.cfg:82
+#: data/units/Elvish_Archer.cfg:3 data/units/Elvish_Archer.cfg:81
 #, fuzzy
 msgid "Elvish Archer"
 msgstr "Arquer Elf"
 
-#: data/units/Elvish_Archer.cfg:18 data/units/Elvish_Archer.cfg:97
+#: data/units/Elvish_Archer.cfg:18 data/units/Elvish_Archer.cfg:96
 msgid ""
 "Elvish Archers are trained from youth in archery, and so skilled in long-"
 "range combat. Able to fire many arrows quickly and accurately, these Archers "
@@ -5773,11 +5801,11 @@
 msgid "#(Invalid)"
 msgstr ""
 
-#: src/dialogs.cpp:365 src/game.cpp:931
+#: src/dialogs.cpp:365 src/game.cpp:989
 msgid "Campaign"
 msgstr ""
 
-#: src/dialogs.cpp:367 src/game.cpp:978
+#: src/dialogs.cpp:367 src/game.cpp:1125
 msgid "Multiplayer"
 msgstr ""
 
@@ -5789,7 +5817,7 @@
 msgid "replay"
 msgstr ""
 
-#: src/dialogs.cpp:379 src/multiplayer_lobby.cpp:139 src/playturn.cpp:1382
+#: src/dialogs.cpp:379 src/multiplayer_lobby.cpp:139 src/playturn.cpp:1384
 msgid "Turn"
 msgstr ""
 
@@ -5797,7 +5825,7 @@
 msgid "Scenario Start"
 msgstr ""
 
-#: src/dialogs.cpp:384 src/game.cpp:954
+#: src/dialogs.cpp:384 src/game.cpp:1101
 msgid "Difficulty"
 msgstr ""
 
@@ -5837,7 +5865,7 @@
 msgid "Show replay"
 msgstr ""
 
-#: src/dialogs.cpp:512 src/hotkeys.cpp:133 src/multiplayer.cpp:82
+#: src/dialogs.cpp:512 src/hotkeys.cpp:133 src/multiplayer.cpp:85
 msgid "Load Game"
 msgstr ""
 
@@ -5850,33 +5878,33 @@
 msgstr ""
 
 #: src/dialogs.cpp:646 src/display.cpp:884 src/help.cpp:567
-#: src/playturn.cpp:1778
+#: src/playturn.cpp:1784
 msgid "level"
 msgstr ""
 
 #: src/dialogs.cpp:667 src/display.cpp:902 src/help.cpp:621
-#: src/playturn.cpp:1942 src/unit.cpp:1034
+#: src/playturn.cpp:1947 src/unit.cpp:1034
 msgid "HP"
 msgstr ""
 
 #: src/dialogs.cpp:671 src/dialogs.cpp:679 src/display.cpp:906
-#: src/display.cpp:914 src/playturn.cpp:1780 src/playturn.cpp:1943
+#: src/display.cpp:914 src/playturn.cpp:1786 src/playturn.cpp:1948
 #: src/unit.cpp:1093
 msgid "XP"
 msgstr ""
 
 #: src/dialogs.cpp:684 src/display.cpp:918 src/help.cpp:622
-#: src/playturn.cpp:1944 src/unit.cpp:1070
+#: src/playturn.cpp:1949 src/unit.cpp:1070
 msgid "Moves"
 msgstr ""
 
 #: src/dialogs.cpp:697 src/display.cpp:935 src/help.cpp:699
-#: src/playturn.cpp:602 src/reports.cpp:230
+#: src/playturn.cpp:599 src/reports.cpp:230
 msgid "melee"
 msgstr ""
 
 #: src/dialogs.cpp:698 src/display.cpp:936 src/help.cpp:699
-#: src/playturn.cpp:602 src/reports.cpp:231
+#: src/playturn.cpp:599 src/reports.cpp:231
 msgid "ranged"
 msgstr ""
 
@@ -5892,90 +5920,160 @@
 msgid "Vera.ttf"
 msgstr ""
 
-#: src/game.cpp:137
+#: src/game.cpp:138
 msgid "Do you want to save a replay of this scenario?"
 msgstr ""
 
-#: src/game.cpp:138 src/game.cpp:200 src/playturn.cpp:1391
+#: src/game.cpp:139 src/game.cpp:201 src/playturn.cpp:1393
 msgid "Name:"
 msgstr ""
 
-#: src/game.cpp:146 src/game.cpp:207 src/playturn.cpp:1408
+#: src/game.cpp:147 src/game.cpp:208 src/playturn.cpp:1410
 msgid "The game could not be saved"
 msgstr ""
 
-#: src/game.cpp:199
+#: src/game.cpp:200
 msgid "Do you want to save your game?"
 msgstr ""
 
-#: src/game.cpp:587
+#: src/game.cpp:648
 msgid "The Battle for Wesnoth"
 msgstr "La Batalla per Wesnoth"
 
-#: src/game.cpp:807 src/multiplayer_connect.cpp:104
+#: src/game.cpp:868 src/multiplayer_connect.cpp:106
 msgid ""
 "This save is from a different version of the game. Do you want to try to "
 "load it?"
 msgstr ""
 
-#: src/game.cpp:818 src/game.cpp:823 src/playlevel.cpp:533
-#: src/playlevel.cpp:747
+#: src/game.cpp:879 src/game.cpp:884 src/playlevel.cpp:549
+#: src/playlevel.cpp:789
 msgid "The file you have tried to load is corrupt"
 msgstr ""
 
-#: src/game.cpp:924
-msgid "There are no campaigns available"
+#: src/game.cpp:984
+msgid " ,Get More Campaigns..."
 msgstr ""
 
-#: src/game.cpp:932
+#: src/game.cpp:990
 msgid "Choose the campaign you want to play:"
 msgstr ""
 
-#: src/game.cpp:955
+#: src/game.cpp:1000
+msgid "Connect to Server"
+msgstr ""
+
+#: src/game.cpp:1001
+msgid "You will now connect to a campaign server to download campaigns."
+msgstr ""
+
+#: src/game.cpp:1002
+msgid "Server: "
+msgstr ""
+
+#: src/game.cpp:1014
+#, fuzzy
+msgid "Could not connect to host."
+msgstr "No ha estat possible connectar al servidor remot."
+
+#: src/game.cpp:1014 src/game.cpp:1029 src/game.cpp:1035 src/game.cpp:1046
+#: src/game.cpp:1065 src/game.cpp:1075 src/game.cpp:1078 src/game.cpp:1081
+#: src/playturn.cpp:1396 src/playturn.cpp:1410
+msgid "Error"
+msgstr ""
+
+#: src/game.cpp:1022
+msgid "Awaiting response from server"
+msgstr ""
+
+#: src/game.cpp:1035
+msgid "Error communicating with the server."
+msgstr ""
+
+#: src/game.cpp:1046
+msgid "There are no campaigns available for download from this server."
+msgstr ""
+
+#: src/game.cpp:1050
+msgid "Choose the campaign to download."
+msgstr ""
+
+#: src/game.cpp:1050
+msgid "Get Campaign"
+msgstr ""
+
+#: src/game.cpp:1059
+msgid "Downloading campaign..."
+msgstr ""
+
+#: src/game.cpp:1071
+msgid "Campaign Installed"
+msgstr ""
+
+#: src/game.cpp:1071
+msgid ""
+"The campaign has been installed. You will have to restart Wesnoth before you "
+"can play it."
+msgstr ""
+
+#: src/game.cpp:1075
+msgid "Network communication error."
+msgstr ""
+
+#: src/game.cpp:1078
+msgid "Remote host disconnected."
+msgstr ""
+
+#: src/game.cpp:1081
+msgid ""
+"There was a problem creating the files necessary to install this campaign."
+msgstr ""
+
+#: src/game.cpp:1102
 msgid "Select difficulty level:"
 msgstr ""
 
-#: src/game.cpp:973
+#: src/game.cpp:1120
 msgid "Join Official Server"
 msgstr ""
 
-#: src/game.cpp:973
+#: src/game.cpp:1120
 msgid "Log on to the official Wesnoth multiplayer server"
 msgstr ""
 
-#: src/game.cpp:974 src/multiplayer_lobby.cpp:157
+#: src/game.cpp:1121 src/multiplayer_lobby.cpp:157
 msgid "Join Game"
 msgstr ""
 
-#: src/game.cpp:974
+#: src/game.cpp:1121
 msgid "Join a server or hosted game"
 msgstr ""
 
-#: src/game.cpp:975
+#: src/game.cpp:1122
 msgid "Host Multiplayer Game"
 msgstr ""
 
-#: src/game.cpp:975
+#: src/game.cpp:1122
 msgid "Host a game without using a server"
 msgstr ""
 
-#: src/game.cpp:978 src/multiplayer_client.cpp:269
+#: src/game.cpp:1125 src/multiplayer_client.cpp:269
 msgid "Login"
 msgstr ""
 
-#: src/game.cpp:1058
+#: src/game.cpp:1205
 msgid "Language"
 msgstr ""
 
-#: src/game.cpp:1059
+#: src/game.cpp:1206
 msgid "Choose your preferred language"
 msgstr ""
 
-#: src/game.cpp:1144
+#: src/game.cpp:1291
 msgid "Could not initialize video. Exiting.\n"
 msgstr ""
 
-#: src/game.cpp:1146
+#: src/game.cpp:1293
 msgid "Could not initialize fonts. Exiting.\n"
 msgstr ""
 
@@ -5999,11 +6097,11 @@
 msgid "attacks"
 msgstr ""
 
-#: src/help.cpp:646 src/help.cpp:647 src/playturn.cpp:1941
+#: src/help.cpp:646 src/help.cpp:647 src/playturn.cpp:1946
 msgid "Name"
 msgstr ""
 
-#: src/help.cpp:650 src/help.cpp:651 src/playturn.cpp:1940
+#: src/help.cpp:650 src/help.cpp:651 src/playturn.cpp:1945
 msgid "Type"
 msgstr ""
 
@@ -6067,7 +6165,7 @@
 msgid "End Unit Turn"
 msgstr ""
 
-#: src/hotkeys.cpp:122 src/playturn.cpp:1524
+#: src/hotkeys.cpp:122 src/playturn.cpp:1525
 msgid "Leader"
 msgstr ""
 
@@ -6103,7 +6201,7 @@
 msgid "Unit Description"
 msgstr "Descriu unitat"
 
-#: src/hotkeys.cpp:131 src/playturn.cpp:1349
+#: src/hotkeys.cpp:131 src/playturn.cpp:1351
 msgid "Rename Unit"
 msgstr "Renomena unitat"
 
@@ -6155,11 +6253,11 @@
 msgid "Scenario Objectives"
 msgstr "Objectius de l'escenari"
 
-#: src/hotkeys.cpp:146 src/playturn.cpp:1993
+#: src/hotkeys.cpp:146 src/playturn.cpp:1998
 msgid "Unit List"
 msgstr "Llista d'unitats"
 
-#: src/hotkeys.cpp:147 src/playturn.cpp:2081
+#: src/hotkeys.cpp:147 src/playturn.cpp:2086
 msgid "Statistics"
 msgstr "Estadístiques"
 
@@ -6307,7 +6405,7 @@
 msgid "Map Generator"
 msgstr ""
 
-#: src/mapgen_dialog.cpp:77 src/multiplayer.cpp:481
+#: src/mapgen_dialog.cpp:77 src/multiplayer.cpp:484
 msgid "Players"
 msgstr ""
 
@@ -6327,7 +6425,7 @@
 msgid "Bump Size"
 msgstr ""
 
-#: src/mapgen_dialog.cpp:82 src/playturn.cpp:1525
+#: src/mapgen_dialog.cpp:82 src/playturn.cpp:1526
 msgid "Villages"
 msgstr ""
 
@@ -6355,119 +6453,119 @@
 msgid "Island"
 msgstr ""
 
-#: src/multiplayer.cpp:94
+#: src/multiplayer.cpp:97
 msgid "The maximum turns the game will go for"
 msgstr ""
 
-#: src/multiplayer.cpp:100
+#: src/multiplayer.cpp:103
 msgid "The amount of income each village yields per turn"
 msgstr ""
 
-#: src/multiplayer.cpp:106
+#: src/multiplayer.cpp:109
 msgid "The amount of experience a unit needs to advance"
 msgstr ""
 
-#: src/multiplayer.cpp:108
+#: src/multiplayer.cpp:111
 msgid "Fog Of War"
 msgstr ""
 
-#: src/multiplayer.cpp:110
+#: src/multiplayer.cpp:113
 msgid "Enemy units cannot be seen unless they are in range of your units"
 msgstr ""
 
-#: src/multiplayer.cpp:112 src/multiplayer_lobby.cpp:127
+#: src/multiplayer.cpp:115 src/multiplayer_lobby.cpp:127
 msgid "Shroud"
 msgstr ""
 
-#: src/multiplayer.cpp:114
+#: src/multiplayer.cpp:117
 msgid "The map is unknown until your units explore it"
 msgstr ""
 
-#: src/multiplayer.cpp:116 src/reports.cpp:375
+#: src/multiplayer.cpp:119 src/reports.cpp:376
 msgid "Observers"
 msgstr ""
 
-#: src/multiplayer.cpp:118
+#: src/multiplayer.cpp:121
 msgid "Allow users who are not playing to watch the game"
 msgstr ""
 
-#: src/multiplayer.cpp:120 src/multiplayer_client.cpp:119
+#: src/multiplayer.cpp:123 src/multiplayer_client.cpp:119
 #: src/multiplayer_connect.cpp:50 src/show_dialog.cpp:456
 #: src/show_dialog.cpp:462
 msgid "Cancel"
 msgstr ""
 
-#: src/multiplayer.cpp:121 src/show_dialog.cpp:442 src/show_dialog.cpp:455
+#: src/multiplayer.cpp:124 src/show_dialog.cpp:442 src/show_dialog.cpp:455
 msgid "Ok"
 msgstr ""
 
-#: src/multiplayer.cpp:123
+#: src/multiplayer.cpp:126
 msgid "Regenerate"
 msgstr ""
 
-#: src/multiplayer.cpp:125
+#: src/multiplayer.cpp:128
 msgid "Settings..."
 msgstr ""
 
-#: src/multiplayer.cpp:129
+#: src/multiplayer.cpp:132
 msgid "Share View"
 msgstr ""
 
-#: src/multiplayer.cpp:130
+#: src/multiplayer.cpp:133
 msgid "Share Maps"
 msgstr ""
 
-#: src/multiplayer.cpp:131
+#: src/multiplayer.cpp:134
 msgid "Share None"
 msgstr ""
 
-#: src/multiplayer.cpp:142 src/multiplayer_connect.cpp:177
+#: src/multiplayer.cpp:145 src/multiplayer_connect.cpp:181
 msgid "No multiplayer sides."
 msgstr ""
 
-#: src/multiplayer.cpp:170 src/multiplayer_lobby.cpp:158
+#: src/multiplayer.cpp:173 src/multiplayer_lobby.cpp:158
 msgid "Create Game"
 msgstr ""
 
-#: src/multiplayer.cpp:174
+#: src/multiplayer.cpp:177
 msgid "Name of game"
 msgstr ""
 
-#: src/multiplayer.cpp:178
+#: src/multiplayer.cpp:181
 msgid "$login's game"
 msgstr ""
 
-#: src/multiplayer.cpp:189
+#: src/multiplayer.cpp:192
 msgid "Map to play"
 msgstr ""
 
-#: src/multiplayer.cpp:286
+#: src/multiplayer.cpp:289
 msgid "Era"
 msgstr ""
 
-#: src/multiplayer.cpp:348
+#: src/multiplayer.cpp:351
 msgid "Unlimited"
 msgstr ""
 
-#: src/multiplayer.cpp:352
+#: src/multiplayer.cpp:355
 msgid "Turns"
 msgstr ""
 
-#: src/multiplayer.cpp:360
+#: src/multiplayer.cpp:363
 msgid "Village Gold"
 msgstr ""
 
-#: src/multiplayer.cpp:372
+#: src/multiplayer.cpp:375
 msgid "Experience Requirements"
 msgstr ""
 
-#: src/multiplayer.cpp:497
+#: src/multiplayer.cpp:500
 msgid ""
 "The game was unable to bind to the port needed to host games over the "
 "network. Network players will be unable to connect to this game"
 msgstr ""
 
-#: src/multiplayer.cpp:497
+#: src/multiplayer.cpp:500
 msgid "Warning"
 msgstr ""
 
@@ -6479,9 +6577,9 @@
 msgid "Receiving game list..."
 msgstr ""
 
-#: src/multiplayer_client.cpp:95 src/multiplayer_connect.cpp:378
-#: src/multiplayer_connect.cpp:380 src/playlevel.cpp:732 src/playturn.cpp:1524
-#: src/playturn.cpp:1529 src/playturn.cpp:1616
+#: src/multiplayer_client.cpp:95 src/multiplayer_connect.cpp:381
+#: src/multiplayer_connect.cpp:383 src/playlevel.cpp:769 src/playturn.cpp:1525
+#: src/playturn.cpp:1530 src/playturn.cpp:1616
 msgid "Gold"
 msgstr ""
 
@@ -6533,91 +6631,91 @@
 msgid "I'm Ready"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:97
+#: src/multiplayer_connect.cpp:99
 msgid "This is not a multiplayer save"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:237
+#: src/multiplayer_connect.cpp:241
 msgid ""
 "Victory\n"
 "@Defeat enemy leader(s)"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:257
+#: src/multiplayer_connect.cpp:261
 msgid "Network Player"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:258
+#: src/multiplayer_connect.cpp:262
 msgid "Local Player"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:259 src/multiplayer_connect.cpp:467
-#: src/multiplayer_connect.cpp:581 src/multiplayer_connect.cpp:675
+#: src/multiplayer_connect.cpp:263 src/multiplayer_connect.cpp:470
+#: src/multiplayer_connect.cpp:584 src/multiplayer_connect.cpp:678
 msgid "Computer Player"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:260
+#: src/multiplayer_connect.cpp:264
 msgid "Empty"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:288 src/multiplayer_connect.cpp:368
-#: src/multiplayer_connect.cpp:371
+#: src/multiplayer_connect.cpp:291 src/multiplayer_connect.cpp:371
+#: src/multiplayer_connect.cpp:374
 msgid "Team"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:296
+#: src/multiplayer_connect.cpp:299
 msgid "Red"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:298
+#: src/multiplayer_connect.cpp:301
 msgid "Blue"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:300
+#: src/multiplayer_connect.cpp:303
 msgid "Green"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:302
+#: src/multiplayer_connect.cpp:305
 msgid "Yellow"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:304
+#: src/multiplayer_connect.cpp:307
 msgid "Purple"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:306
+#: src/multiplayer_connect.cpp:309
 msgid "Orange"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:308
+#: src/multiplayer_connect.cpp:311
 msgid "Grey"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:310
+#: src/multiplayer_connect.cpp:313
 msgid "White"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:312
+#: src/multiplayer_connect.cpp:315
 msgid "Brown"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:357
+#: src/multiplayer_connect.cpp:360
 msgid "Game Lobby"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:360 src/multiplayer_connect.cpp:362
+#: src/multiplayer_connect.cpp:363 src/multiplayer_connect.cpp:365
 msgid "Player/Type"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:363 src/multiplayer_connect.cpp:366
+#: src/multiplayer_connect.cpp:366 src/multiplayer_connect.cpp:369
 msgid "Faction"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:373 src/multiplayer_connect.cpp:376
+#: src/multiplayer_connect.cpp:376 src/multiplayer_connect.cpp:379
 msgid "Color"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:530 src/multiplayer_connect.cpp:534
+#: src/multiplayer_connect.cpp:533 src/multiplayer_connect.cpp:537
 msgid "Waiting for network players to join"
 msgstr ""
 
@@ -6641,60 +6739,60 @@
 msgid "Quit"
 msgstr ""
 
-#: src/playlevel.cpp:672
+#: src/playlevel.cpp:688
 msgid "Game Over"
 msgstr ""
 
-#: src/playlevel.cpp:673
+#: src/playlevel.cpp:689
 msgid "The game is over."
 msgstr ""
 
-#: src/playlevel.cpp:686
+#: src/playlevel.cpp:702
 msgid "Defeat"
 msgstr ""
 
-#: src/playlevel.cpp:687
+#: src/playlevel.cpp:703
 msgid "You have been defeated!"
 msgstr ""
 
-#: src/playlevel.cpp:719
-msgid "Victory"
-msgstr ""
-
-#: src/playlevel.cpp:720
-msgid "You have emerged victorious!"
-msgstr ""
-
-#: src/playlevel.cpp:722
+#: src/playlevel.cpp:759
 msgid "Remaining gold"
 msgstr ""
 
-#: src/playlevel.cpp:725
+#: src/playlevel.cpp:762
 msgid "Early finish bonus"
 msgstr ""
 
-#: src/playlevel.cpp:727
+#: src/playlevel.cpp:764
 msgid "per turn"
 msgstr ""
 
-#: src/playlevel.cpp:728
+#: src/playlevel.cpp:765
 msgid "Turns finished early"
 msgstr ""
 
-#: src/playlevel.cpp:730
+#: src/playlevel.cpp:767
 msgid "Bonus"
 msgstr ""
 
-#: src/playlevel.cpp:737
+#: src/playlevel.cpp:774
 #, no-c-format
 msgid "80% of gold is retained for the next scenario"
 msgstr ""
 
-#: src/playlevel.cpp:738
+#: src/playlevel.cpp:774
 msgid "Retained Gold"
 msgstr ""
 
-#: src/playlevel.cpp:762
+#: src/playlevel.cpp:778
+msgid "Victory"
+msgstr ""
+
+#: src/playlevel.cpp:779
+msgid "You have emerged victorious!"
+msgstr ""
+
+#: src/playlevel.cpp:804
 msgid ""
 "A network disconnection has occured, and the game cannot continue. Do you "
 "want to save the game?"
@@ -6704,79 +6802,75 @@
 msgid "It is now your turn"
 msgstr ""
 
-#: src/playturn.cpp:490
+#: src/playturn.cpp:488
 msgid "Attacker"
 msgstr ""
 
-#: src/playturn.cpp:492
+#: src/playturn.cpp:490
 msgid "Defender"
 msgstr ""
 
-#: src/playturn.cpp:516 src/playturn.cpp:636
+#: src/playturn.cpp:514 src/playturn.cpp:633
 msgid "Damage Calculations"
 msgstr ""
 
-#: src/playturn.cpp:602
+#: src/playturn.cpp:599
 msgid "Melee"
 msgstr ""
 
-#: src/playturn.cpp:615 src/reports.cpp:210
+#: src/playturn.cpp:612 src/reports.cpp:210
 msgid "vs"
 msgstr ""
 
-#: src/playturn.cpp:648
+#: src/playturn.cpp:645
 msgid "Attack Enemy"
 msgstr ""
 
-#: src/playturn.cpp:649
+#: src/playturn.cpp:646
 msgid "Choose weapon"
 msgstr ""
 
-#: src/playturn.cpp:1136
+#: src/playturn.cpp:1127
 msgid ""
 "You have not started your turn yet.  Do you really want to end your turn?"
 msgstr ""
 
-#: src/playturn.cpp:1145 src/playturn.cpp:1150
+#: src/playturn.cpp:1136 src/playturn.cpp:1141
 msgid "Some units have movement left. Do you really want to end your turn?"
 msgstr ""
 
-#: src/playturn.cpp:1166
+#: src/playturn.cpp:1157
 msgid "Auto-Save"
 msgstr ""
 
-#: src/playturn.cpp:1168
+#: src/playturn.cpp:1159
 msgid "Could not auto save the game. Please save the game manually."
 msgstr ""
 
-#: src/playturn.cpp:1394 src/playturn.cpp:1408
-msgid "Error"
-msgstr ""
-
-#: src/playturn.cpp:1394
+#: src/playturn.cpp:1396
 msgid ""
 "Save names may not contain colons, slashes, or backslashes. Please choose a "
 "different name."
 msgstr ""
 
-#: src/playturn.cpp:1405
+#: src/playturn.cpp:1407
 #, fuzzy
 msgid "Saved"
 msgstr "Cova"
 
-#: src/playturn.cpp:1405
+#: src/playturn.cpp:1407
 msgid "The game has been saved"
 msgstr ""
 
-#: src/playturn.cpp:1525
+#: src/playturn.cpp:1526
 msgid "Units"
 msgstr ""
 
-#: src/playturn.cpp:1526
+#: src/playturn.cpp:1527
 msgid "Income"
 msgstr ""
 
-#: src/playturn.cpp:1526
+#: src/playturn.cpp:1527
 msgid "Upkeep"
 msgstr ""
 
@@ -6812,127 +6906,123 @@
 msgid "him"
 msgstr ""
 
-#: src/playturn.cpp:1762
+#: src/playturn.cpp:1768
 msgid "You are seperated from your soldiers and may not recall them"
 msgstr ""
 
-#: src/playturn.cpp:1764
+#: src/playturn.cpp:1770
 msgid ""
 "There are no troops available to recall\n"
 "(You must have veteran survivors from a previous scenario)"
 msgstr ""
 
-#: src/playturn.cpp:1768
-msgid "You must have at least"
+#: src/playturn.cpp:1776
+msgid "You must have at least $cost gold pieces to recall a unit"
 msgstr ""
 
-#: src/playturn.cpp:1770
-msgid "gold pieces to recall a unit"
-msgstr ""
-
-#: src/playturn.cpp:1793
+#: src/playturn.cpp:1799
 msgid "Dismiss Unit"
 msgstr ""
 
-#: src/playturn.cpp:1806
+#: src/playturn.cpp:1812
 msgid "Select unit"
 msgstr ""
 
-#: src/playturn.cpp:1850
+#: src/playturn.cpp:1856
 msgid "Message"
 msgstr ""
 
-#: src/playturn.cpp:1850
+#: src/playturn.cpp:1856
 msgid "Send to allies only"
 msgstr ""
 
-#: src/playturn.cpp:1945
+#: src/playturn.cpp:1950
 msgid "Location"
 msgstr ""
 
-#: src/playturn.cpp:2027 src/playturn.cpp:2087
+#: src/playturn.cpp:2032 src/playturn.cpp:2092
 msgid "Recruits"
 msgstr ""
 
-#: src/playturn.cpp:2033 src/playturn.cpp:2091
+#: src/playturn.cpp:2038 src/playturn.cpp:2096
 msgid "Recalls"
 msgstr ""
 
-#: src/playturn.cpp:2039 src/playturn.cpp:2095
+#: src/playturn.cpp:2044 src/playturn.cpp:2100
 msgid "Advancements"
 msgstr ""
 
-#: src/playturn.cpp:2045 src/playturn.cpp:2099
+#: src/playturn.cpp:2050 src/playturn.cpp:2104
 msgid "Losses"
 msgstr ""
 
-#: src/playturn.cpp:2051 src/playturn.cpp:2103
+#: src/playturn.cpp:2056 src/playturn.cpp:2108
 msgid "Kills"
 msgstr ""
 
-#: src/playturn.cpp:2057
+#: src/playturn.cpp:2062
 msgid "Damage Inflicted"
 msgstr ""
 
-#: src/playturn.cpp:2063
+#: src/playturn.cpp:2068
 msgid "Damage Taken"
 msgstr ""
 
-#: src/playturn.cpp:2069
+#: src/playturn.cpp:2074
 msgid "Damage Inflicted (EV)"
 msgstr ""
 
-#: src/playturn.cpp:2076
+#: src/playturn.cpp:2081
 msgid "Damage Taken (EV)"
 msgstr ""
 
-#: src/playturn.cpp:2118
+#: src/playturn.cpp:2123
 msgid "Search"
 msgstr ""
 
-#: src/playturn.cpp:2128
+#: src/playturn.cpp:2133
 msgid "prompt^Command:"
 msgstr ""
 
-#: src/playturn.cpp:2139
+#: src/playturn.cpp:2144
 msgid "Chat Log"
 msgstr ""
 
-#: src/playturn.cpp:2204
+#: src/playturn.cpp:2209
 msgid "Couldn't find label or unit containing the string '$search'."
 msgstr ""
 
-#: src/playturn.cpp:2278
+#: src/playturn.cpp:2283
 msgid "Place Label"
 msgstr ""
 
-#: src/playturn.cpp:2279
+#: src/playturn.cpp:2284
 msgid "Label"
 msgstr ""
 
-#: src/playturn.cpp:2402
+#: src/playturn.cpp:2407
 msgid ""
 "The games are out of sync and will have to exit. Do you want to save an "
 "error log of your game?"
 msgstr ""
 
-#: src/playturn.cpp:2454
+#: src/playturn.cpp:2459
 msgid "Replace with AI"
 msgstr ""
 
-#: src/playturn.cpp:2455
+#: src/playturn.cpp:2460
 msgid "Replace with local player"
 msgstr ""
 
-#: src/playturn.cpp:2456
+#: src/playturn.cpp:2461
 msgid "Abort game"
 msgstr ""
 
-#: src/playturn.cpp:2459
+#: src/playturn.cpp:2464
 msgid "Replace with "
 msgstr ""
 
-#: src/playturn.cpp:2463
+#: src/playturn.cpp:2468
 msgid "has left the game. What do you want to do?"
 msgstr ""
 
@@ -6984,17 +7074,18 @@
 msgid "Chaotic units"
 msgstr "Unitats caòtiques"
 
-#: src/reports.cpp:311
-msgid "Owned"
+#: src/reports.cpp:312
+msgid "Owned village"
 msgstr ""
 
-#: src/reports.cpp:313
-msgid "Enemy"
-msgstr "Enemic"
+#: src/reports.cpp:314
+msgid "Enemy village"
+msgstr ""
 
-#: src/reports.cpp:315
-msgid "Allied"
-msgstr "Aliat"
+#: src/reports.cpp:316
+#, fuzzy
+msgid "Allied village"
+msgstr "Saquejador Goblin"
 
 #: src/show_dialog.cpp:930
 msgid "KB"
@@ -7105,6 +7196,12 @@
 msgid "Deletion of the file failed."
 msgstr ""
 
+#~ msgid "Enemy"
+#~ msgstr "Enemic"
+
+#~ msgid "Allied"
+#~ msgstr "Aliat"
+
 #~ msgid "Heir to the Throne"
 #~ msgstr "Hereu al Tron"
 
Index: wesnoth/po/fi/wesnoth.po
diff -u wesnoth/po/fi/wesnoth.po:1.4 wesnoth/po/fi/wesnoth.po:1.5
--- wesnoth/po/fi/wesnoth.po:1.4        Sun Sep 12 18:22:39 2004
+++ wesnoth/po/fi/wesnoth.po    Sat Sep 18 21:42:12 2004
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Battle for Wesnoth 0.8.2-CVS\n"
 "Report-Msgid-Bugs-To: http://bugs.wesnoth.org/\n";
-"POT-Creation-Date: 2004-09-12 17:19+0200\n"
+"POT-Creation-Date: 2004-09-16 14:31+0200\n"
 "PO-Revision-Date: 2004-08-08 15:00+0200\n"
 "Last-Translator: Pasi Kallinen <address@hidden>\n"
 "Language-Team: none\n"
@@ -689,6 +689,12 @@
 msgid "&undead-necromancer.png,Alliance of Darkness"
 msgstr "&undead-necromancer.png,Pimeyden Liitto"
 
+#: data/scenario-test.cfg:38
+msgid ""
+"You can come if you wish, but the leader is only interesting in speaking to "
+"Baldras."
+msgstr ""
+
 #: data/scenarios/multiplayer/ForestOfFear.cfg:3
 msgid "Forest of Fear"
 msgstr ""
@@ -1668,6 +1674,31 @@
 msgid "xp"
 msgstr ""
 
+#: data/themes/default.cfg:142 data/themes/default.cfg:478
+#, fuzzy
+msgid "gold"
+msgstr "kylmä"
+
+#: data/themes/default.cfg:150 data/themes/default.cfg:486
+#, fuzzy
+msgid "villages"
+msgstr "Kyliä"
+
+#: data/themes/default.cfg:158 data/themes/default.cfg:494
+#, fuzzy
+msgid "units"
+msgstr "Yksiköt"
+
+#: data/themes/default.cfg:166 data/themes/default.cfg:502
+#, fuzzy
+msgid "upkeep"
+msgstr "Ylläpito"
+
+#: data/themes/default.cfg:174 data/themes/default.cfg:510
+#, fuzzy
+msgid "income"
+msgstr "Tulot"
+
 #: data/themes/default.cfg:285 data/themes/default.cfg:623
 msgid "statuspanel^level"
 msgstr "kokemustaso"
@@ -2095,6 +2126,7 @@
 #: data/translations/english.cfg:141 data/translations/english.cfg:143
 #: data/translations/english.cfg:144 data/translations/english.cfg:145
 #: data/translations/english.cfg:146 data/translations/english.cfg:147
+#: src/reports.cpp:310
 msgid "Village"
 msgstr "Kylä"
 
@@ -2662,7 +2694,7 @@
 #: data/units/Dwarvish_Steelclad.cfg:26 data/units/Dwarvish_Thunderer.cfg:21
 #: data/units/Dwarvish_Thunderguard.cfg:21
 #: data/units/Dwarvish_Ulfserker.cfg:28 data/units/Elvish_Archer.cfg:22
-#: data/units/Elvish_Archer.cfg:101 data/units/Elvish_Avenger.cfg:24
+#: data/units/Elvish_Archer.cfg:100 data/units/Elvish_Avenger.cfg:24
 #: data/units/Elvish_Avenger.cfg:97 data/units/Elvish_Captain.cfg:24
 #: data/units/Elvish_Champion.cfg:22 data/units/Elvish_Fighter.cfg:24
 #: data/units/Elvish_Hero.cfg:22 data/units/Elvish_High_Lord.cfg:21
@@ -2773,7 +2805,7 @@
 #: data/units/Dragoon.cfg:27 data/units/Drake_Clasher.cfg:19
 #: data/units/Drake_Fighter.cfg:20 data/units/Drake_Slasher.cfg:20
 #: data/units/Drake_Warrior.cfg:20 data/units/Elvish_Archer.cfg:21
-#: data/units/Elvish_Archer.cfg:100 data/units/Elvish_Avenger.cfg:23
+#: data/units/Elvish_Archer.cfg:99 data/units/Elvish_Avenger.cfg:23
 #: data/units/Elvish_Avenger.cfg:96 data/units/Elvish_Captain.cfg:23
 #: data/units/Elvish_Champion.cfg:21 data/units/Elvish_Fighter.cfg:23
 #: data/units/Elvish_Hero.cfg:21 data/units/Elvish_High_Lord.cfg:20
@@ -2845,7 +2877,7 @@
 
 #: data/units/Bone_Shooter.cfg:37 data/units/Bowman.cfg:37
 #: data/units/Commander.cfg:45 data/units/Elvish_Archer.cfg:38
-#: data/units/Elvish_Archer.cfg:117 data/units/Elvish_Avenger.cfg:39
+#: data/units/Elvish_Archer.cfg:116 data/units/Elvish_Avenger.cfg:39
 #: data/units/Elvish_Avenger.cfg:112 data/units/Elvish_Captain.cfg:39
 #: data/units/Elvish_Champion.cfg:40 data/units/Elvish_Fighter.cfg:40
 #: data/units/Elvish_Hero.cfg:40 data/units/Elvish_Marshal.cfg:40
@@ -2873,7 +2905,7 @@
 #: data/units/Dwarvish_Sentinel.cfg:41 data/units/Dwarvish_Stalwart.cfg:28
 #: data/units/Dwarvish_Stalwart.cfg:41 data/units/Dwarvish_Thunderer.cfg:41
 #: data/units/Dwarvish_Thunderguard.cfg:47 data/units/Elvish_Archer.cfg:39
-#: data/units/Elvish_Archer.cfg:118 data/units/Elvish_Avenger.cfg:40
+#: data/units/Elvish_Archer.cfg:117 data/units/Elvish_Avenger.cfg:40
 #: data/units/Elvish_Avenger.cfg:113 data/units/Elvish_Captain.cfg:40
 #: data/units/Elvish_Champion.cfg:41 data/units/Elvish_Druid.cfg:62
 #: data/units/Elvish_Fighter.cfg:41 data/units/Elvish_Hero.cfg:41
@@ -3503,11 +3535,11 @@
 msgid "Elder Wose"
 msgstr ""
 
-#: data/units/Elvish_Archer.cfg:3 data/units/Elvish_Archer.cfg:82
+#: data/units/Elvish_Archer.cfg:3 data/units/Elvish_Archer.cfg:81
 msgid "Elvish Archer"
 msgstr ""
 
-#: data/units/Elvish_Archer.cfg:18 data/units/Elvish_Archer.cfg:97
+#: data/units/Elvish_Archer.cfg:18 data/units/Elvish_Archer.cfg:96
 msgid ""
 "Elvish Archers are trained from youth in archery, and so skilled in long-"
 "range combat. Able to fire many arrows quickly and accurately, these Archers "
@@ -5328,11 +5360,11 @@
 msgid "#(Invalid)"
 msgstr ""
 
-#: src/dialogs.cpp:365 src/game.cpp:931
+#: src/dialogs.cpp:365 src/game.cpp:989
 msgid "Campaign"
 msgstr "Kampanja"
 
-#: src/dialogs.cpp:367 src/game.cpp:978
+#: src/dialogs.cpp:367 src/game.cpp:1125
 msgid "Multiplayer"
 msgstr "Moninpeli"
 
@@ -5344,7 +5376,7 @@
 msgid "replay"
 msgstr "uusinta"
 
-#: src/dialogs.cpp:379 src/multiplayer_lobby.cpp:139 src/playturn.cpp:1382
+#: src/dialogs.cpp:379 src/multiplayer_lobby.cpp:139 src/playturn.cpp:1384
 msgid "Turn"
 msgstr "Vuoro"
 
@@ -5352,7 +5384,7 @@
 msgid "Scenario Start"
 msgstr "Skenaarion alku"
 
-#: src/dialogs.cpp:384 src/game.cpp:954
+#: src/dialogs.cpp:384 src/game.cpp:1101
 msgid "Difficulty"
 msgstr "Vaikeustaso"
 
@@ -5400,7 +5432,7 @@
 msgid "Show replay"
 msgstr "Näytä uusinta"
 
-#: src/dialogs.cpp:512 src/hotkeys.cpp:133 src/multiplayer.cpp:82
+#: src/dialogs.cpp:512 src/hotkeys.cpp:133 src/multiplayer.cpp:85
 msgid "Load Game"
 msgstr "Avaa peli"
 
@@ -5413,33 +5445,33 @@
 msgstr "Profiili"
 
 #: src/dialogs.cpp:646 src/display.cpp:884 src/help.cpp:567
-#: src/playturn.cpp:1778
+#: src/playturn.cpp:1784
 msgid "level"
 msgstr "taso"
 
 #: src/dialogs.cpp:667 src/display.cpp:902 src/help.cpp:621
-#: src/playturn.cpp:1942 src/unit.cpp:1034
+#: src/playturn.cpp:1947 src/unit.cpp:1034
 msgid "HP"
 msgstr "Kesto (HP)"
 
 #: src/dialogs.cpp:671 src/dialogs.cpp:679 src/display.cpp:906
-#: src/display.cpp:914 src/playturn.cpp:1780 src/playturn.cpp:1943
+#: src/display.cpp:914 src/playturn.cpp:1786 src/playturn.cpp:1948
 #: src/unit.cpp:1093
 msgid "XP"
 msgstr "Kokemus (XP)"
 
 #: src/dialogs.cpp:684 src/display.cpp:918 src/help.cpp:622
-#: src/playturn.cpp:1944 src/unit.cpp:1070
+#: src/playturn.cpp:1949 src/unit.cpp:1070
 msgid "Moves"
 msgstr "Liikkuminen"
 
 #: src/dialogs.cpp:697 src/display.cpp:935 src/help.cpp:699
-#: src/playturn.cpp:602 src/reports.cpp:230
+#: src/playturn.cpp:599 src/reports.cpp:230
 msgid "melee"
 msgstr "lähitaistelu"
 
 #: src/dialogs.cpp:698 src/display.cpp:936 src/help.cpp:699
-#: src/playturn.cpp:602 src/reports.cpp:231
+#: src/playturn.cpp:599 src/reports.cpp:231
 msgid "ranged"
 msgstr "etätaistelu"
 
@@ -5455,91 +5487,167 @@
 msgid "Vera.ttf"
 msgstr ""
 
-#: src/game.cpp:137
+#: src/game.cpp:138
 msgid "Do you want to save a replay of this scenario?"
 msgstr "Haluatko tallentaa uusinnan tästä skenaariosta?"
 
-#: src/game.cpp:138 src/game.cpp:200 src/playturn.cpp:1391
+#: src/game.cpp:139 src/game.cpp:201 src/playturn.cpp:1393
 msgid "Name:"
 msgstr "Nimi:"
 
-#: src/game.cpp:146 src/game.cpp:207 src/playturn.cpp:1408
+#: src/game.cpp:147 src/game.cpp:208 src/playturn.cpp:1410
 msgid "The game could not be saved"
 msgstr "Peliä ei voitu tallentaa"
 
-#: src/game.cpp:199
+#: src/game.cpp:200
 msgid "Do you want to save your game?"
 msgstr "Haluatko tallentaa pelisi?"
 
-#: src/game.cpp:587
+#: src/game.cpp:648
 msgid "The Battle for Wesnoth"
 msgstr ""
 
-#: src/game.cpp:807 src/multiplayer_connect.cpp:104
+#: src/game.cpp:868 src/multiplayer_connect.cpp:106
 msgid ""
 "This save is from a different version of the game. Do you want to try to "
 "load it?"
 msgstr ""
 "Tämä tallenne on pelin toisesta versiosta. Haluatko yrittää ladata sen?"
 
-#: src/game.cpp:818 src/game.cpp:823 src/playlevel.cpp:533
-#: src/playlevel.cpp:747
+#: src/game.cpp:879 src/game.cpp:884 src/playlevel.cpp:549
+#: src/playlevel.cpp:789
 msgid "The file you have tried to load is corrupt"
 msgstr "Tiedosto jonka yritit avata on korruptoitunut"
 
-#: src/game.cpp:924
-msgid "There are no campaigns available"
-msgstr "Yhtäkään kampanjaa ei ole saatavilla"
+#: src/game.cpp:984
+msgid " ,Get More Campaigns..."
+msgstr ""
 
-#: src/game.cpp:932
+#: src/game.cpp:990
 msgid "Choose the campaign you want to play:"
 msgstr "Valitse pelattava kampanja:"
 
-#: src/game.cpp:955
+#: src/game.cpp:1000
+#, fuzzy
+msgid "Connect to Server"
+msgstr "Jatka liikettä"
+
+#: src/game.cpp:1001
+msgid "You will now connect to a campaign server to download campaigns."
+msgstr ""
+
+#: src/game.cpp:1002
+msgid "Server: "
+msgstr ""
+
+#: src/game.cpp:1014
+#, fuzzy
+msgid "Could not connect to host."
+msgstr "Yhteyttä isäntäkoneeseen ei saatu"
+
+#: src/game.cpp:1014 src/game.cpp:1029 src/game.cpp:1035 src/game.cpp:1046
+#: src/game.cpp:1065 src/game.cpp:1075 src/game.cpp:1078 src/game.cpp:1081
+#: src/playturn.cpp:1396 src/playturn.cpp:1410
+msgid "Error"
+msgstr ""
+
+#: src/game.cpp:1022
+msgid "Awaiting response from server"
+msgstr ""
+
+#: src/game.cpp:1035
+msgid "Error communicating with the server."
+msgstr ""
+
+#: src/game.cpp:1046
+#, fuzzy
+msgid "There are no campaigns available for download from this server."
+msgstr "Yhtäkään kampanjaa ei ole saatavilla"
+
+#: src/game.cpp:1050
+#, fuzzy
+msgid "Choose the campaign to download."
+msgstr "Valitse avattava peli"
+
+#: src/game.cpp:1050
+#, fuzzy
+msgid "Get Campaign"
+msgstr "Kampanja"
+
+#: src/game.cpp:1059
+msgid "Downloading campaign..."
+msgstr ""
+
+#: src/game.cpp:1071
+#, fuzzy
+msgid "Campaign Installed"
+msgstr "Kampanja"
+
+#: src/game.cpp:1071
+msgid ""
+"The campaign has been installed. You will have to restart Wesnoth before you "
+"can play it."
+msgstr ""
+
+#: src/game.cpp:1075
+msgid "Network communication error."
+msgstr ""
+
+#: src/game.cpp:1078
+#, fuzzy
+msgid "Remote host disconnected."
+msgstr "Valitse isäntäkone johon yhdistetään"
+
+#: src/game.cpp:1081
+msgid ""
+"There was a problem creating the files necessary to install this campaign."
+msgstr ""
+
+#: src/game.cpp:1102
 msgid "Select difficulty level:"
 msgstr "Valitse vaikeustaso:"
 
-#: src/game.cpp:973
+#: src/game.cpp:1120
 msgid "Join Official Server"
 msgstr "Ota yhteys viralliseen palvelimeen"
 
-#: src/game.cpp:973
+#: src/game.cpp:1120
 msgid "Log on to the official Wesnoth multiplayer server"
 msgstr "Kirjaudu Wesnothin viralliselle palvelimelle"
 
-#: src/game.cpp:974 src/multiplayer_lobby.cpp:157
+#: src/game.cpp:1121 src/multiplayer_lobby.cpp:157
 msgid "Join Game"
 msgstr "Liity peliin"
 
-#: src/game.cpp:974
+#: src/game.cpp:1121
 msgid "Join a server or hosted game"
 msgstr "Ota yhteys palvelimelle tai isännöityyn peliin"
 
-#: src/game.cpp:975
+#: src/game.cpp:1122
 msgid "Host Multiplayer Game"
 msgstr "Isännöi moninpeliä"
 
-#: src/game.cpp:975
+#: src/game.cpp:1122
 msgid "Host a game without using a server"
 msgstr "Isännöi peli ilman palvelinta"
 
-#: src/game.cpp:978 src/multiplayer_client.cpp:269
+#: src/game.cpp:1125 src/multiplayer_client.cpp:269
 msgid "Login"
 msgstr "Sisäänkirjautuminen"
 
-#: src/game.cpp:1058
+#: src/game.cpp:1205
 msgid "Language"
 msgstr "Kieli"
 
-#: src/game.cpp:1059
+#: src/game.cpp:1206
 msgid "Choose your preferred language"
 msgstr "Valitse haluamasi kieli"
 
-#: src/game.cpp:1144
+#: src/game.cpp:1291
 msgid "Could not initialize video. Exiting.\n"
 msgstr ""
 
-#: src/game.cpp:1146
+#: src/game.cpp:1293
 msgid "Could not initialize fonts. Exiting.\n"
 msgstr ""
 
@@ -5563,11 +5671,11 @@
 msgid "attacks"
 msgstr "hyökkäystä"
 
-#: src/help.cpp:646 src/help.cpp:647 src/playturn.cpp:1941
+#: src/help.cpp:646 src/help.cpp:647 src/playturn.cpp:1946
 msgid "Name"
 msgstr "Nimi"
 
-#: src/help.cpp:650 src/help.cpp:651 src/playturn.cpp:1940
+#: src/help.cpp:650 src/help.cpp:651 src/playturn.cpp:1945
 msgid "Type"
 msgstr "Tyyppi"
 
@@ -5631,7 +5739,7 @@
 msgid "End Unit Turn"
 msgstr "Lopeta yksikön vuoro"
 
-#: src/hotkeys.cpp:122 src/playturn.cpp:1524
+#: src/hotkeys.cpp:122 src/playturn.cpp:1525
 msgid "Leader"
 msgstr "Johtaja"
 
@@ -5667,7 +5775,7 @@
 msgid "Unit Description"
 msgstr "Yksikön kuvaus"
 
-#: src/hotkeys.cpp:131 src/playturn.cpp:1349
+#: src/hotkeys.cpp:131 src/playturn.cpp:1351
 msgid "Rename Unit"
 msgstr "Nimeä yksikkö"
 
@@ -5719,11 +5827,11 @@
 msgid "Scenario Objectives"
 msgstr "Skenaarion tavoitteet"
 
-#: src/hotkeys.cpp:146 src/playturn.cpp:1993
+#: src/hotkeys.cpp:146 src/playturn.cpp:1998
 msgid "Unit List"
 msgstr "Yksikkölista"
 
-#: src/hotkeys.cpp:147 src/playturn.cpp:2081
+#: src/hotkeys.cpp:147 src/playturn.cpp:2086
 msgid "Statistics"
 msgstr "Tilastot"
 
@@ -5872,7 +5980,7 @@
 msgid "Map Generator"
 msgstr "Kartan luonti"
 
-#: src/mapgen_dialog.cpp:77 src/multiplayer.cpp:481
+#: src/mapgen_dialog.cpp:77 src/multiplayer.cpp:484
 msgid "Players"
 msgstr "Pelaajia"
 
@@ -5892,7 +6000,7 @@
 msgid "Bump Size"
 msgstr ""
 
-#: src/mapgen_dialog.cpp:82 src/playturn.cpp:1525
+#: src/mapgen_dialog.cpp:82 src/playturn.cpp:1526
 msgid "Villages"
 msgstr "Kyliä"
 
@@ -5920,121 +6028,121 @@
 msgid "Island"
 msgstr "Saari"
 
-#: src/multiplayer.cpp:94
+#: src/multiplayer.cpp:97
 msgid "The maximum turns the game will go for"
 msgstr "Kuinka monta vuoroa peli kestää"
 
-#: src/multiplayer.cpp:100
+#: src/multiplayer.cpp:103
 msgid "The amount of income each village yields per turn"
 msgstr "Kuinka paljon tuloja kukin kylä tuottaa"
 
-#: src/multiplayer.cpp:106
+#: src/multiplayer.cpp:109
 msgid "The amount of experience a unit needs to advance"
 msgstr "Kokemus jonka yksikkö tarvitsee kehittyäkseen"
 
-#: src/multiplayer.cpp:108
+#: src/multiplayer.cpp:111
 msgid "Fog Of War"
 msgstr ""
 
-#: src/multiplayer.cpp:110
+#: src/multiplayer.cpp:113
 msgid "Enemy units cannot be seen unless they are in range of your units"
 msgstr ""
 "Vihollisyksiköt ovat näkymättömissä kunnes jokin yksiköistäsi on 
tarpeeksi "
 "lähellä"
 
-#: src/multiplayer.cpp:112 src/multiplayer_lobby.cpp:127
+#: src/multiplayer.cpp:115 src/multiplayer_lobby.cpp:127
 msgid "Shroud"
 msgstr ""
 
-#: src/multiplayer.cpp:114
+#: src/multiplayer.cpp:117
 msgid "The map is unknown until your units explore it"
 msgstr "Kartta on näkymättömissä kunnes yksikkösi tutkivat alueen"
 
-#: src/multiplayer.cpp:116 src/reports.cpp:375
+#: src/multiplayer.cpp:119 src/reports.cpp:376
 msgid "Observers"
 msgstr "Tarkkailijat"
 
-#: src/multiplayer.cpp:118
+#: src/multiplayer.cpp:121
 msgid "Allow users who are not playing to watch the game"
 msgstr "Salli muiden käyttäjien tarkkailla pelin kulkua"
 
-#: src/multiplayer.cpp:120 src/multiplayer_client.cpp:119
+#: src/multiplayer.cpp:123 src/multiplayer_client.cpp:119
 #: src/multiplayer_connect.cpp:50 src/show_dialog.cpp:456
 #: src/show_dialog.cpp:462
 msgid "Cancel"
 msgstr "Peruuta"
 
-#: src/multiplayer.cpp:121 src/show_dialog.cpp:442 src/show_dialog.cpp:455
+#: src/multiplayer.cpp:124 src/show_dialog.cpp:442 src/show_dialog.cpp:455
 msgid "Ok"
 msgstr "Hyväksy"
 
-#: src/multiplayer.cpp:123
+#: src/multiplayer.cpp:126
 msgid "Regenerate"
 msgstr "Luo uusi"
 
-#: src/multiplayer.cpp:125
+#: src/multiplayer.cpp:128
 msgid "Settings..."
 msgstr "Asetukset..."
 
-#: src/multiplayer.cpp:129
+#: src/multiplayer.cpp:132
 msgid "Share View"
 msgstr "Jaa näkökenttä"
 
-#: src/multiplayer.cpp:130
+#: src/multiplayer.cpp:133
 msgid "Share Maps"
 msgstr "Jaa kartat"
 
-#: src/multiplayer.cpp:131
+#: src/multiplayer.cpp:134
 msgid "Share None"
 msgstr "Älä jaa mitään"
 
-#: src/multiplayer.cpp:142 src/multiplayer_connect.cpp:177
+#: src/multiplayer.cpp:145 src/multiplayer_connect.cpp:181
 msgid "No multiplayer sides."
 msgstr "Ei moninpelin joukkueita"
 
-#: src/multiplayer.cpp:170 src/multiplayer_lobby.cpp:158
+#: src/multiplayer.cpp:173 src/multiplayer_lobby.cpp:158
 msgid "Create Game"
 msgstr "Luo peli"
 
-#: src/multiplayer.cpp:174
+#: src/multiplayer.cpp:177
 msgid "Name of game"
 msgstr "Pelin nimi"
 
-#: src/multiplayer.cpp:178
+#: src/multiplayer.cpp:181
 msgid "$login's game"
 msgstr "$login:n peli"
 
-#: src/multiplayer.cpp:189
+#: src/multiplayer.cpp:192
 msgid "Map to play"
 msgstr "Pelattava kartta"
 
-#: src/multiplayer.cpp:286
+#: src/multiplayer.cpp:289
 msgid "Era"
 msgstr "Aika"
 
-#: src/multiplayer.cpp:348
+#: src/multiplayer.cpp:351
 msgid "Unlimited"
 msgstr "Ei rajoitettu"
 
-#: src/multiplayer.cpp:352
+#: src/multiplayer.cpp:355
 msgid "Turns"
 msgstr "Vuoroja"
 
-#: src/multiplayer.cpp:360
+#: src/multiplayer.cpp:363
 msgid "Village Gold"
 msgstr "Kylän kulta"
 
-#: src/multiplayer.cpp:372
+#: src/multiplayer.cpp:375
 msgid "Experience Requirements"
 msgstr "Vaadittu kokemus"
 
-#: src/multiplayer.cpp:497
+#: src/multiplayer.cpp:500
 msgid ""
 "The game was unable to bind to the port needed to host games over the "
 "network. Network players will be unable to connect to this game"
 msgstr ""
 
-#: src/multiplayer.cpp:497
+#: src/multiplayer.cpp:500
 msgid "Warning"
 msgstr "Varoitus"
 
@@ -6046,9 +6154,9 @@
 msgid "Receiving game list..."
 msgstr "Vastaanotetaan pelilistaa..."
 
-#: src/multiplayer_client.cpp:95 src/multiplayer_connect.cpp:378
-#: src/multiplayer_connect.cpp:380 src/playlevel.cpp:732 src/playturn.cpp:1524
-#: src/playturn.cpp:1529 src/playturn.cpp:1616
+#: src/multiplayer_client.cpp:95 src/multiplayer_connect.cpp:381
+#: src/multiplayer_connect.cpp:383 src/playlevel.cpp:769 src/playturn.cpp:1525
+#: src/playturn.cpp:1530 src/playturn.cpp:1616
 msgid "Gold"
 msgstr "Kultaa"
 
@@ -6100,11 +6208,11 @@
 msgid "I'm Ready"
 msgstr "Olen valmis"
 
-#: src/multiplayer_connect.cpp:97
+#: src/multiplayer_connect.cpp:99
 msgid "This is not a multiplayer save"
 msgstr "Tämä ei ole moninpelin tallenne"
 
-#: src/multiplayer_connect.cpp:237
+#: src/multiplayer_connect.cpp:241
 msgid ""
 "Victory\n"
 "@Defeat enemy leader(s)"
@@ -6112,82 +6220,82 @@
 "Voitto\n"
 "@Lyö vihollisjohtaja(t)"
 
-#: src/multiplayer_connect.cpp:257
+#: src/multiplayer_connect.cpp:261
 msgid "Network Player"
 msgstr "Verkkopelaaja"
 
-#: src/multiplayer_connect.cpp:258
+#: src/multiplayer_connect.cpp:262
 msgid "Local Player"
 msgstr "Paikallinen pelaaja"
 
-#: src/multiplayer_connect.cpp:259 src/multiplayer_connect.cpp:467
-#: src/multiplayer_connect.cpp:581 src/multiplayer_connect.cpp:675
+#: src/multiplayer_connect.cpp:263 src/multiplayer_connect.cpp:470
+#: src/multiplayer_connect.cpp:584 src/multiplayer_connect.cpp:678
 msgid "Computer Player"
 msgstr "Tietokonepelaaja"
 
-#: src/multiplayer_connect.cpp:260
+#: src/multiplayer_connect.cpp:264
 msgid "Empty"
 msgstr "Tyhjä"
 
-#: src/multiplayer_connect.cpp:288 src/multiplayer_connect.cpp:368
-#: src/multiplayer_connect.cpp:371
+#: src/multiplayer_connect.cpp:291 src/multiplayer_connect.cpp:371
+#: src/multiplayer_connect.cpp:374
 msgid "Team"
 msgstr "Joukkue"
 
-#: src/multiplayer_connect.cpp:296
+#: src/multiplayer_connect.cpp:299
 msgid "Red"
 msgstr "Punainen"
 
-#: src/multiplayer_connect.cpp:298
+#: src/multiplayer_connect.cpp:301
 msgid "Blue"
 msgstr "Sininen"
 
-#: src/multiplayer_connect.cpp:300
+#: src/multiplayer_connect.cpp:303
 msgid "Green"
 msgstr "Vihreä"
 
-#: src/multiplayer_connect.cpp:302
+#: src/multiplayer_connect.cpp:305
 msgid "Yellow"
 msgstr "Keltainen"
 
-#: src/multiplayer_connect.cpp:304
+#: src/multiplayer_connect.cpp:307
 msgid "Purple"
 msgstr "Purppura"
 
-#: src/multiplayer_connect.cpp:306
+#: src/multiplayer_connect.cpp:309
 msgid "Orange"
 msgstr "Oranssi"
 
-#: src/multiplayer_connect.cpp:308
+#: src/multiplayer_connect.cpp:311
 msgid "Grey"
 msgstr "Harmaa"
 
-#: src/multiplayer_connect.cpp:310
+#: src/multiplayer_connect.cpp:313
 msgid "White"
 msgstr "Valkoinen"
 
-#: src/multiplayer_connect.cpp:312
+#: src/multiplayer_connect.cpp:315
 msgid "Brown"
 msgstr "Ruskea"
 
-#: src/multiplayer_connect.cpp:357
+#: src/multiplayer_connect.cpp:360
 msgid "Game Lobby"
 msgstr "Pelin aula"
 
-#: src/multiplayer_connect.cpp:360 src/multiplayer_connect.cpp:362
+#: src/multiplayer_connect.cpp:363 src/multiplayer_connect.cpp:365
 msgid "Player/Type"
 msgstr "Pelaaja/Tyyppi"
 
-#: src/multiplayer_connect.cpp:363 src/multiplayer_connect.cpp:366
+#: src/multiplayer_connect.cpp:366 src/multiplayer_connect.cpp:369
 #, fuzzy
 msgid "Faction"
 msgstr "Toiminnot"
 
-#: src/multiplayer_connect.cpp:373 src/multiplayer_connect.cpp:376
+#: src/multiplayer_connect.cpp:376 src/multiplayer_connect.cpp:379
 msgid "Color"
 msgstr "Väri"
 
-#: src/multiplayer_connect.cpp:530 src/multiplayer_connect.cpp:534
+#: src/multiplayer_connect.cpp:533 src/multiplayer_connect.cpp:537
 msgid "Waiting for network players to join"
 msgstr "Odotetaan verkkopelaajien liittymistä"
 
@@ -6211,60 +6319,60 @@
 msgid "Quit"
 msgstr "Poistu"
 
-#: src/playlevel.cpp:672
+#: src/playlevel.cpp:688
 msgid "Game Over"
 msgstr "Peli loppui"
 
-#: src/playlevel.cpp:673
+#: src/playlevel.cpp:689
 msgid "The game is over."
 msgstr "Peli on ohitse."
 
-#: src/playlevel.cpp:686
+#: src/playlevel.cpp:702
 msgid "Defeat"
 msgstr "Tappio"
 
-#: src/playlevel.cpp:687
+#: src/playlevel.cpp:703
 msgid "You have been defeated!"
 msgstr "Sinä hävisit!"
 
-#: src/playlevel.cpp:719
-msgid "Victory"
-msgstr "Voitto"
-
-#: src/playlevel.cpp:720
-msgid "You have emerged victorious!"
-msgstr "Olet voittaja!"
-
-#: src/playlevel.cpp:722
+#: src/playlevel.cpp:759
 msgid "Remaining gold"
 msgstr "Jäljellä oleva kulta"
 
-#: src/playlevel.cpp:725
+#: src/playlevel.cpp:762
 msgid "Early finish bonus"
 msgstr "Aikaisen lopetuksen boonus"
 
-#: src/playlevel.cpp:727
+#: src/playlevel.cpp:764
 msgid "per turn"
 msgstr "vuorossa"
 
-#: src/playlevel.cpp:728
+#: src/playlevel.cpp:765
 msgid "Turns finished early"
 msgstr "Ajoissa lopetus (vuoroja)"
 
-#: src/playlevel.cpp:730
+#: src/playlevel.cpp:767
 msgid "Bonus"
 msgstr "Boonus"
 
-#: src/playlevel.cpp:737
+#: src/playlevel.cpp:774
 #, no-c-format
 msgid "80% of gold is retained for the next scenario"
 msgstr "80% kullasta säilyy seuraavaan skenaarioon"
 
-#: src/playlevel.cpp:738
+#: src/playlevel.cpp:774
 msgid "Retained Gold"
 msgstr "Säilyvä kulta"
 
-#: src/playlevel.cpp:762
+#: src/playlevel.cpp:778
+msgid "Victory"
+msgstr "Voitto"
+
+#: src/playlevel.cpp:779
+msgid "You have emerged victorious!"
+msgstr "Olet voittaja!"
+
+#: src/playlevel.cpp:804
 msgid ""
 "A network disconnection has occured, and the game cannot continue. Do you "
 "want to save the game?"
@@ -6275,82 +6383,78 @@
 msgid "It is now your turn"
 msgstr "On sinun vuorosi"
 
-#: src/playturn.cpp:490
+#: src/playturn.cpp:488
 msgid "Attacker"
 msgstr "Hyökkääjä"
 
-#: src/playturn.cpp:492
+#: src/playturn.cpp:490
 msgid "Defender"
 msgstr "Puolustaja"
 
-#: src/playturn.cpp:516 src/playturn.cpp:636
+#: src/playturn.cpp:514 src/playturn.cpp:633
 msgid "Damage Calculations"
 msgstr "Vahinkolaskelmat"
 
-#: src/playturn.cpp:602
+#: src/playturn.cpp:599
 msgid "Melee"
 msgstr "Lähitaistelu"
 
-#: src/playturn.cpp:615 src/reports.cpp:210
+#: src/playturn.cpp:612 src/reports.cpp:210
 msgid "vs"
 msgstr "vastaan"
 
-#: src/playturn.cpp:648
+#: src/playturn.cpp:645
 msgid "Attack Enemy"
 msgstr "Hyökkää vihollista"
 
-#: src/playturn.cpp:649
+#: src/playturn.cpp:646
 msgid "Choose weapon"
 msgstr "Valitse ase"
 
-#: src/playturn.cpp:1136
+#: src/playturn.cpp:1127
 msgid ""
 "You have not started your turn yet.  Do you really want to end your turn?"
 msgstr ""
 "Et ole vielä aloittanut vuoroasi.  Haluatko todellakin lopettaa tämän 
vuoron?"
 
-#: src/playturn.cpp:1145 src/playturn.cpp:1150
+#: src/playturn.cpp:1136 src/playturn.cpp:1141
 msgid "Some units have movement left. Do you really want to end your turn?"
 msgstr ""
 "Jokin yksiköistäsi voi vielä liikkua. Haluatko todellakin lopettaa 
vuorosi?"
 
-#: src/playturn.cpp:1166
+#: src/playturn.cpp:1157
 msgid "Auto-Save"
 msgstr "Automaattinen tallennus"
 
-#: src/playturn.cpp:1168
+#: src/playturn.cpp:1159
 msgid "Could not auto save the game. Please save the game manually."
 msgstr ""
 "Automaattinen tallennus epäonnistui. Yritä tallentaa peli manuaalisesti."
 
-#: src/playturn.cpp:1394 src/playturn.cpp:1408
-msgid "Error"
-msgstr ""
-
-#: src/playturn.cpp:1394
+#: src/playturn.cpp:1396
 msgid ""
 "Save names may not contain colons, slashes, or backslashes. Please choose a "
 "different name."
 msgstr ""
 
-#: src/playturn.cpp:1405
+#: src/playturn.cpp:1407
 #, fuzzy
 msgid "Saved"
 msgstr "Tallenna nimellä"
 
-#: src/playturn.cpp:1405
+#: src/playturn.cpp:1407
 msgid "The game has been saved"
 msgstr "Peli on tallennettu"
 
-#: src/playturn.cpp:1525
+#: src/playturn.cpp:1526
 msgid "Units"
 msgstr "Yksiköt"
 
-#: src/playturn.cpp:1526
+#: src/playturn.cpp:1527
 msgid "Income"
 msgstr "Tulot"
 
-#: src/playturn.cpp:1526
+#: src/playturn.cpp:1527
 msgid "Upkeep"
 msgstr "Ylläpito"
 
@@ -6390,11 +6494,11 @@
 msgid "him"
 msgstr "hänet"
 
-#: src/playturn.cpp:1762
+#: src/playturn.cpp:1768
 msgid "You are seperated from your soldiers and may not recall them"
 msgstr "Olet erossa sotilaistasi etkä voi kutsua heitä"
 
-#: src/playturn.cpp:1764
+#: src/playturn.cpp:1770
 msgid ""
 "There are no troops available to recall\n"
 "(You must have veteran survivors from a previous scenario)"
@@ -6402,95 +6506,92 @@
 "Sinulla ei ole veteraaneja edellisestä skenaariosta\n"
 "jotka voisit kutsua palvelukseen"
 
-#: src/playturn.cpp:1768
-msgid "You must have at least"
-msgstr "Sinulla täytyy olla vähintään"
-
-#: src/playturn.cpp:1770
-msgid "gold pieces to recall a unit"
+#: src/playturn.cpp:1776
+#, fuzzy
+msgid "You must have at least $cost gold pieces to recall a unit"
 msgstr "kultapalaa voidaksesi kutsua yksikön takaisin"
 
-#: src/playturn.cpp:1793
+#: src/playturn.cpp:1799
 msgid "Dismiss Unit"
 msgstr "Vapauta yksikkö palveluksesta"
 
-#: src/playturn.cpp:1806
+#: src/playturn.cpp:1812
 msgid "Select unit"
 msgstr "Valitse yksikkö"
 
-#: src/playturn.cpp:1850
+#: src/playturn.cpp:1856
 msgid "Message"
 msgstr "Viesti"
 
-#: src/playturn.cpp:1850
+#: src/playturn.cpp:1856
 msgid "Send to allies only"
 msgstr "Lähetä vain ystäville"
 
-#: src/playturn.cpp:1945
+#: src/playturn.cpp:1950
 msgid "Location"
 msgstr "Kohde"
 
-#: src/playturn.cpp:2027 src/playturn.cpp:2087
+#: src/playturn.cpp:2032 src/playturn.cpp:2092
 msgid "Recruits"
 msgstr "Värväyksiä"
 
-#: src/playturn.cpp:2033 src/playturn.cpp:2091
+#: src/playturn.cpp:2038 src/playturn.cpp:2096
 msgid "Recalls"
 msgstr "Kutsuntoja"
 
-#: src/playturn.cpp:2039 src/playturn.cpp:2095
+#: src/playturn.cpp:2044 src/playturn.cpp:2100
 msgid "Advancements"
 msgstr "Ylennyksiä"
 
-#: src/playturn.cpp:2045 src/playturn.cpp:2099
+#: src/playturn.cpp:2050 src/playturn.cpp:2104
 msgid "Losses"
 msgstr "Häviöitä"
 
-#: src/playturn.cpp:2051 src/playturn.cpp:2103
+#: src/playturn.cpp:2056 src/playturn.cpp:2108
 msgid "Kills"
 msgstr "Tappoja"
 
-#: src/playturn.cpp:2057
+#: src/playturn.cpp:2062
 msgid "Damage Inflicted"
 msgstr "Tehty vahinko"
 
-#: src/playturn.cpp:2063
+#: src/playturn.cpp:2068
 msgid "Damage Taken"
 msgstr "Otettu vahinko"
 
-#: src/playturn.cpp:2069
+#: src/playturn.cpp:2074
 msgid "Damage Inflicted (EV)"
 msgstr "Tehty vahinko (EV)"
 
-#: src/playturn.cpp:2076
+#: src/playturn.cpp:2081
 msgid "Damage Taken (EV)"
 msgstr "Otettu vahinko (EV)"
 
-#: src/playturn.cpp:2118
+#: src/playturn.cpp:2123
 msgid "Search"
 msgstr "Etsi"
 
-#: src/playturn.cpp:2128
+#: src/playturn.cpp:2133
 msgid "prompt^Command:"
 msgstr "Komento:"
 
-#: src/playturn.cpp:2139
+#: src/playturn.cpp:2144
 msgid "Chat Log"
 msgstr "Keskustelun loki"
 
-#: src/playturn.cpp:2204
+#: src/playturn.cpp:2209
 msgid "Couldn't find label or unit containing the string '$search'."
 msgstr "Yksikköä tai muistilappua nimeltä '$search' ei löytynyt."
 
-#: src/playturn.cpp:2278
+#: src/playturn.cpp:2283
 msgid "Place Label"
 msgstr "Aseta muistilappu"
 
-#: src/playturn.cpp:2279
+#: src/playturn.cpp:2284
 msgid "Label"
 msgstr "Nimi"
 
-#: src/playturn.cpp:2402
+#: src/playturn.cpp:2407
 msgid ""
 "The games are out of sync and will have to exit. Do you want to save an "
 "error log of your game?"
@@ -6498,23 +6599,23 @@
 "Pelit eivät ole synkronoitu, ja ne lopetetaan. Haluatko tallentaa virhelokin 
"
 "pelistäsi?"
 
-#: src/playturn.cpp:2454
+#: src/playturn.cpp:2459
 msgid "Replace with AI"
 msgstr "Korvaa tietokoneella"
 
-#: src/playturn.cpp:2455
+#: src/playturn.cpp:2460
 msgid "Replace with local player"
 msgstr "Korvaa paikallisella pelaajalla"
 
-#: src/playturn.cpp:2456
+#: src/playturn.cpp:2461
 msgid "Abort game"
 msgstr "Keskeytä peli"
 
-#: src/playturn.cpp:2459
+#: src/playturn.cpp:2464
 msgid "Replace with "
 msgstr "Korvaa "
 
-#: src/playturn.cpp:2463
+#: src/playturn.cpp:2468
 msgid "has left the game. What do you want to do?"
 msgstr "on poistunut pelistä. Mitä haluat tehdä?"
 
@@ -6574,16 +6675,19 @@
 msgid "Chaotic units"
 msgstr "Kaoottiset yksiköt"
 
-#: src/reports.cpp:311
-msgid "Owned"
-msgstr "Omia"
-
-#: src/reports.cpp:313
-msgid "Enemy"
-msgstr "Vihollisia"
+#: src/reports.cpp:312
+#, fuzzy
+msgid "Owned village"
+msgstr "Kylä"
+
+#: src/reports.cpp:314
+#, fuzzy
+msgid "Enemy village"
+msgstr "Kylä"
 
-#: src/reports.cpp:315
-msgid "Allied"
+#: src/reports.cpp:316
+#, fuzzy
+msgid "Allied village"
 msgstr "Ystävällisiä"
 
 #: src/show_dialog.cpp:930
@@ -6697,6 +6801,15 @@
 msgid "Deletion of the file failed."
 msgstr "Tiedoston tuhoaminen epäonnistui."
 
+#~ msgid "You must have at least"
+#~ msgstr "Sinulla täytyy olla vähintään"
+
+#~ msgid "Owned"
+#~ msgstr "Omia"
+
+#~ msgid "Enemy"
+#~ msgstr "Vihollisia"
+
 #~ msgid "Heir to the Throne"
 #~ msgstr "Valtaistuimen perillinen"
 
Index: wesnoth/po/hu/wesnoth.po
diff -u wesnoth/po/hu/wesnoth.po:1.5 wesnoth/po/hu/wesnoth.po:1.6
--- wesnoth/po/hu/wesnoth.po:1.5        Sun Sep 12 18:22:40 2004
+++ wesnoth/po/hu/wesnoth.po    Sat Sep 18 21:42:12 2004
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Battle for Wesnoth 0.8.2-CVS\n"
 "Report-Msgid-Bugs-To: http://bugs.wesnoth.org/\n";
-"POT-Creation-Date: 2004-09-12 17:19+0200\n"
+"POT-Creation-Date: 2004-09-16 14:31+0200\n"
 "PO-Revision-Date: 2004-09-08 20:31+0200\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -669,6 +669,12 @@
 msgid "&undead-necromancer.png,Alliance of Darkness"
 msgstr ""
 
+#: data/scenario-test.cfg:38
+msgid ""
+"You can come if you wish, but the leader is only interesting in speaking to "
+"Baldras."
+msgstr ""
+
 #: data/scenarios/multiplayer/ForestOfFear.cfg:3
 msgid "Forest of Fear"
 msgstr ""
@@ -1640,6 +1646,28 @@
 msgid "xp"
 msgstr ""
 
+#: data/themes/default.cfg:142 data/themes/default.cfg:478
+msgid "gold"
+msgstr ""
+
+#: data/themes/default.cfg:150 data/themes/default.cfg:486
+#, fuzzy
+msgid "villages"
+msgstr "Falu"
+
+#: data/themes/default.cfg:158 data/themes/default.cfg:494
+msgid "units"
+msgstr ""
+
+#: data/themes/default.cfg:166 data/themes/default.cfg:502
+#, fuzzy
+msgid "upkeep"
+msgstr "pika(?)"
+
+#: data/themes/default.cfg:174 data/themes/default.cfg:510
+msgid "income"
+msgstr ""
+
 #: data/themes/default.cfg:285 data/themes/default.cfg:623
 msgid "statuspanel^level"
 msgstr ""
@@ -2067,6 +2095,7 @@
 #: data/translations/english.cfg:141 data/translations/english.cfg:143
 #: data/translations/english.cfg:144 data/translations/english.cfg:145
 #: data/translations/english.cfg:146 data/translations/english.cfg:147
+#: src/reports.cpp:310
 #, fuzzy
 msgid "Village"
 msgstr "Falu"
@@ -2765,7 +2794,7 @@
 #: data/units/Dwarvish_Steelclad.cfg:26 data/units/Dwarvish_Thunderer.cfg:21
 #: data/units/Dwarvish_Thunderguard.cfg:21
 #: data/units/Dwarvish_Ulfserker.cfg:28 data/units/Elvish_Archer.cfg:22
-#: data/units/Elvish_Archer.cfg:101 data/units/Elvish_Avenger.cfg:24
+#: data/units/Elvish_Archer.cfg:100 data/units/Elvish_Avenger.cfg:24
 #: data/units/Elvish_Avenger.cfg:97 data/units/Elvish_Captain.cfg:24
 #: data/units/Elvish_Champion.cfg:22 data/units/Elvish_Fighter.cfg:24
 #: data/units/Elvish_Hero.cfg:22 data/units/Elvish_High_Lord.cfg:21
@@ -2886,7 +2915,7 @@
 #: data/units/Dragoon.cfg:27 data/units/Drake_Clasher.cfg:19
 #: data/units/Drake_Fighter.cfg:20 data/units/Drake_Slasher.cfg:20
 #: data/units/Drake_Warrior.cfg:20 data/units/Elvish_Archer.cfg:21
-#: data/units/Elvish_Archer.cfg:100 data/units/Elvish_Avenger.cfg:23
+#: data/units/Elvish_Archer.cfg:99 data/units/Elvish_Avenger.cfg:23
 #: data/units/Elvish_Avenger.cfg:96 data/units/Elvish_Captain.cfg:23
 #: data/units/Elvish_Champion.cfg:21 data/units/Elvish_Fighter.cfg:23
 #: data/units/Elvish_Hero.cfg:21 data/units/Elvish_High_Lord.cfg:20
@@ -2968,7 +2997,7 @@
 
 #: data/units/Bone_Shooter.cfg:37 data/units/Bowman.cfg:37
 #: data/units/Commander.cfg:45 data/units/Elvish_Archer.cfg:38
-#: data/units/Elvish_Archer.cfg:117 data/units/Elvish_Avenger.cfg:39
+#: data/units/Elvish_Archer.cfg:116 data/units/Elvish_Avenger.cfg:39
 #: data/units/Elvish_Avenger.cfg:112 data/units/Elvish_Captain.cfg:39
 #: data/units/Elvish_Champion.cfg:40 data/units/Elvish_Fighter.cfg:40
 #: data/units/Elvish_Hero.cfg:40 data/units/Elvish_Marshal.cfg:40
@@ -2997,7 +3026,7 @@
 #: data/units/Dwarvish_Sentinel.cfg:41 data/units/Dwarvish_Stalwart.cfg:28
 #: data/units/Dwarvish_Stalwart.cfg:41 data/units/Dwarvish_Thunderer.cfg:41
 #: data/units/Dwarvish_Thunderguard.cfg:47 data/units/Elvish_Archer.cfg:39
-#: data/units/Elvish_Archer.cfg:118 data/units/Elvish_Avenger.cfg:40
+#: data/units/Elvish_Archer.cfg:117 data/units/Elvish_Avenger.cfg:40
 #: data/units/Elvish_Avenger.cfg:113 data/units/Elvish_Captain.cfg:40
 #: data/units/Elvish_Champion.cfg:41 data/units/Elvish_Druid.cfg:62
 #: data/units/Elvish_Fighter.cfg:41 data/units/Elvish_Hero.cfg:41
@@ -3734,11 +3763,11 @@
 msgid "Elder Wose"
 msgstr ""
 
-#: data/units/Elvish_Archer.cfg:3 data/units/Elvish_Archer.cfg:82
+#: data/units/Elvish_Archer.cfg:3 data/units/Elvish_Archer.cfg:81
 msgid "Elvish Archer"
 msgstr ""
 
-#: data/units/Elvish_Archer.cfg:18 data/units/Elvish_Archer.cfg:97
+#: data/units/Elvish_Archer.cfg:18 data/units/Elvish_Archer.cfg:96
 msgid ""
 "Elvish Archers are trained from youth in archery, and so skilled in long-"
 "range combat. Able to fire many arrows quickly and accurately, these Archers "
@@ -5952,11 +5981,11 @@
 msgid "#(Invalid)"
 msgstr ""
 
-#: src/dialogs.cpp:365 src/game.cpp:931
+#: src/dialogs.cpp:365 src/game.cpp:989
 msgid "Campaign"
 msgstr ""
 
-#: src/dialogs.cpp:367 src/game.cpp:978
+#: src/dialogs.cpp:367 src/game.cpp:1125
 msgid "Multiplayer"
 msgstr ""
 
@@ -5968,7 +5997,7 @@
 msgid "replay"
 msgstr ""
 
-#: src/dialogs.cpp:379 src/multiplayer_lobby.cpp:139 src/playturn.cpp:1382
+#: src/dialogs.cpp:379 src/multiplayer_lobby.cpp:139 src/playturn.cpp:1384
 msgid "Turn"
 msgstr ""
 
@@ -5976,7 +6005,7 @@
 msgid "Scenario Start"
 msgstr ""
 
-#: src/dialogs.cpp:384 src/game.cpp:954
+#: src/dialogs.cpp:384 src/game.cpp:1101
 msgid "Difficulty"
 msgstr ""
 
@@ -6016,7 +6045,7 @@
 msgid "Show replay"
 msgstr ""
 
-#: src/dialogs.cpp:512 src/hotkeys.cpp:133 src/multiplayer.cpp:82
+#: src/dialogs.cpp:512 src/hotkeys.cpp:133 src/multiplayer.cpp:85
 msgid "Load Game"
 msgstr ""
 
@@ -6029,33 +6058,33 @@
 msgstr ""
 
 #: src/dialogs.cpp:646 src/display.cpp:884 src/help.cpp:567
-#: src/playturn.cpp:1778
+#: src/playturn.cpp:1784
 msgid "level"
 msgstr ""
 
 #: src/dialogs.cpp:667 src/display.cpp:902 src/help.cpp:621
-#: src/playturn.cpp:1942 src/unit.cpp:1034
+#: src/playturn.cpp:1947 src/unit.cpp:1034
 msgid "HP"
 msgstr ""
 
 #: src/dialogs.cpp:671 src/dialogs.cpp:679 src/display.cpp:906
-#: src/display.cpp:914 src/playturn.cpp:1780 src/playturn.cpp:1943
+#: src/display.cpp:914 src/playturn.cpp:1786 src/playturn.cpp:1948
 #: src/unit.cpp:1093
 msgid "XP"
 msgstr ""
 
 #: src/dialogs.cpp:684 src/display.cpp:918 src/help.cpp:622
-#: src/playturn.cpp:1944 src/unit.cpp:1070
+#: src/playturn.cpp:1949 src/unit.cpp:1070
 msgid "Moves"
 msgstr ""
 
 #: src/dialogs.cpp:697 src/display.cpp:935 src/help.cpp:699
-#: src/playturn.cpp:602 src/reports.cpp:230
+#: src/playturn.cpp:599 src/reports.cpp:230
 msgid "melee"
 msgstr ""
 
 #: src/dialogs.cpp:698 src/display.cpp:936 src/help.cpp:699
-#: src/playturn.cpp:602 src/reports.cpp:231
+#: src/playturn.cpp:599 src/reports.cpp:231
 msgid "ranged"
 msgstr ""
 
@@ -6071,90 +6100,160 @@
 msgid "Vera.ttf"
 msgstr "Bepa-Roman.ttf"
 
-#: src/game.cpp:137
+#: src/game.cpp:138
 msgid "Do you want to save a replay of this scenario?"
 msgstr ""
 
-#: src/game.cpp:138 src/game.cpp:200 src/playturn.cpp:1391
+#: src/game.cpp:139 src/game.cpp:201 src/playturn.cpp:1393
 msgid "Name:"
 msgstr ""
 
-#: src/game.cpp:146 src/game.cpp:207 src/playturn.cpp:1408
+#: src/game.cpp:147 src/game.cpp:208 src/playturn.cpp:1410
 msgid "The game could not be saved"
 msgstr ""
 
-#: src/game.cpp:199
+#: src/game.cpp:200
 msgid "Do you want to save your game?"
 msgstr ""
 
-#: src/game.cpp:587
+#: src/game.cpp:648
 msgid "The Battle for Wesnoth"
 msgstr ""
 
-#: src/game.cpp:807 src/multiplayer_connect.cpp:104
+#: src/game.cpp:868 src/multiplayer_connect.cpp:106
 msgid ""
 "This save is from a different version of the game. Do you want to try to "
 "load it?"
 msgstr ""
 
-#: src/game.cpp:818 src/game.cpp:823 src/playlevel.cpp:533
-#: src/playlevel.cpp:747
+#: src/game.cpp:879 src/game.cpp:884 src/playlevel.cpp:549
+#: src/playlevel.cpp:789
 msgid "The file you have tried to load is corrupt"
 msgstr ""
 
-#: src/game.cpp:924
-msgid "There are no campaigns available"
+#: src/game.cpp:984
+msgid " ,Get More Campaigns..."
 msgstr ""
 
-#: src/game.cpp:932
+#: src/game.cpp:990
 msgid "Choose the campaign you want to play:"
 msgstr ""
 
-#: src/game.cpp:955
+#: src/game.cpp:1000
+msgid "Connect to Server"
+msgstr ""
+
+#: src/game.cpp:1001
+msgid "You will now connect to a campaign server to download campaigns."
+msgstr ""
+
+#: src/game.cpp:1002
+msgid "Server: "
+msgstr ""
+
+#: src/game.cpp:1014
+#, fuzzy
+msgid "Could not connect to host."
+msgstr "Nem sikerült csatlakozni a távoli géphez"
+
+#: src/game.cpp:1014 src/game.cpp:1029 src/game.cpp:1035 src/game.cpp:1046
+#: src/game.cpp:1065 src/game.cpp:1075 src/game.cpp:1078 src/game.cpp:1081
+#: src/playturn.cpp:1396 src/playturn.cpp:1410
+msgid "Error"
+msgstr ""
+
+#: src/game.cpp:1022
+msgid "Awaiting response from server"
+msgstr ""
+
+#: src/game.cpp:1035
+msgid "Error communicating with the server."
+msgstr ""
+
+#: src/game.cpp:1046
+msgid "There are no campaigns available for download from this server."
+msgstr ""
+
+#: src/game.cpp:1050
+msgid "Choose the campaign to download."
+msgstr ""
+
+#: src/game.cpp:1050
+msgid "Get Campaign"
+msgstr ""
+
+#: src/game.cpp:1059
+msgid "Downloading campaign..."
+msgstr ""
+
+#: src/game.cpp:1071
+msgid "Campaign Installed"
+msgstr ""
+
+#: src/game.cpp:1071
+msgid ""
+"The campaign has been installed. You will have to restart Wesnoth before you "
+"can play it."
+msgstr ""
+
+#: src/game.cpp:1075
+msgid "Network communication error."
+msgstr ""
+
+#: src/game.cpp:1078
+msgid "Remote host disconnected."
+msgstr ""
+
+#: src/game.cpp:1081
+msgid ""
+"There was a problem creating the files necessary to install this campaign."
+msgstr ""
+
+#: src/game.cpp:1102
 msgid "Select difficulty level:"
 msgstr ""
 
-#: src/game.cpp:973
+#: src/game.cpp:1120
 msgid "Join Official Server"
 msgstr ""
 
-#: src/game.cpp:973
+#: src/game.cpp:1120
 msgid "Log on to the official Wesnoth multiplayer server"
 msgstr ""
 
-#: src/game.cpp:974 src/multiplayer_lobby.cpp:157
+#: src/game.cpp:1121 src/multiplayer_lobby.cpp:157
 msgid "Join Game"
 msgstr ""
 
-#: src/game.cpp:974
+#: src/game.cpp:1121
 msgid "Join a server or hosted game"
 msgstr ""
 
-#: src/game.cpp:975
+#: src/game.cpp:1122
 msgid "Host Multiplayer Game"
 msgstr ""
 
-#: src/game.cpp:975
+#: src/game.cpp:1122
 msgid "Host a game without using a server"
 msgstr ""
 
-#: src/game.cpp:978 src/multiplayer_client.cpp:269
+#: src/game.cpp:1125 src/multiplayer_client.cpp:269
 msgid "Login"
 msgstr ""
 
-#: src/game.cpp:1058
+#: src/game.cpp:1205
 msgid "Language"
 msgstr ""
 
-#: src/game.cpp:1059
+#: src/game.cpp:1206
 msgid "Choose your preferred language"
 msgstr ""
 
-#: src/game.cpp:1144
+#: src/game.cpp:1291
 msgid "Could not initialize video. Exiting.\n"
 msgstr ""
 
-#: src/game.cpp:1146
+#: src/game.cpp:1293
 msgid "Could not initialize fonts. Exiting.\n"
 msgstr ""
 
@@ -6178,11 +6277,11 @@
 msgid "attacks"
 msgstr ""
 
-#: src/help.cpp:646 src/help.cpp:647 src/playturn.cpp:1941
+#: src/help.cpp:646 src/help.cpp:647 src/playturn.cpp:1946
 msgid "Name"
 msgstr ""
 
-#: src/help.cpp:650 src/help.cpp:651 src/playturn.cpp:1940
+#: src/help.cpp:650 src/help.cpp:651 src/playturn.cpp:1945
 msgid "Type"
 msgstr ""
 
@@ -6246,7 +6345,7 @@
 msgid "End Unit Turn"
 msgstr ""
 
-#: src/hotkeys.cpp:122 src/playturn.cpp:1524
+#: src/hotkeys.cpp:122 src/playturn.cpp:1525
 msgid "Leader"
 msgstr ""
 
@@ -6282,7 +6381,7 @@
 msgid "Unit Description"
 msgstr ""
 
-#: src/hotkeys.cpp:131 src/playturn.cpp:1349
+#: src/hotkeys.cpp:131 src/playturn.cpp:1351
 msgid "Rename Unit"
 msgstr ""
 
@@ -6334,11 +6433,11 @@
 msgid "Scenario Objectives"
 msgstr ""
 
-#: src/hotkeys.cpp:146 src/playturn.cpp:1993
+#: src/hotkeys.cpp:146 src/playturn.cpp:1998
 msgid "Unit List"
 msgstr ""
 
-#: src/hotkeys.cpp:147 src/playturn.cpp:2081
+#: src/hotkeys.cpp:147 src/playturn.cpp:2086
 msgid "Statistics"
 msgstr ""
 
@@ -6486,7 +6585,7 @@
 msgid "Map Generator"
 msgstr ""
 
-#: src/mapgen_dialog.cpp:77 src/multiplayer.cpp:481
+#: src/mapgen_dialog.cpp:77 src/multiplayer.cpp:484
 msgid "Players"
 msgstr ""
 
@@ -6506,7 +6605,7 @@
 msgid "Bump Size"
 msgstr ""
 
-#: src/mapgen_dialog.cpp:82 src/playturn.cpp:1525
+#: src/mapgen_dialog.cpp:82 src/playturn.cpp:1526
 msgid "Villages"
 msgstr ""
 
@@ -6534,119 +6633,119 @@
 msgid "Island"
 msgstr ""
 
-#: src/multiplayer.cpp:94
+#: src/multiplayer.cpp:97
 msgid "The maximum turns the game will go for"
 msgstr ""
 
-#: src/multiplayer.cpp:100
+#: src/multiplayer.cpp:103
 msgid "The amount of income each village yields per turn"
 msgstr ""
 
-#: src/multiplayer.cpp:106
+#: src/multiplayer.cpp:109
 msgid "The amount of experience a unit needs to advance"
 msgstr ""
 
-#: src/multiplayer.cpp:108
+#: src/multiplayer.cpp:111
 msgid "Fog Of War"
 msgstr ""
 
-#: src/multiplayer.cpp:110
+#: src/multiplayer.cpp:113
 msgid "Enemy units cannot be seen unless they are in range of your units"
 msgstr ""
 
-#: src/multiplayer.cpp:112 src/multiplayer_lobby.cpp:127
+#: src/multiplayer.cpp:115 src/multiplayer_lobby.cpp:127
 msgid "Shroud"
 msgstr ""
 
-#: src/multiplayer.cpp:114
+#: src/multiplayer.cpp:117
 msgid "The map is unknown until your units explore it"
 msgstr ""
 
-#: src/multiplayer.cpp:116 src/reports.cpp:375
+#: src/multiplayer.cpp:119 src/reports.cpp:376
 msgid "Observers"
 msgstr ""
 
-#: src/multiplayer.cpp:118
+#: src/multiplayer.cpp:121
 msgid "Allow users who are not playing to watch the game"
 msgstr ""
 
-#: src/multiplayer.cpp:120 src/multiplayer_client.cpp:119
+#: src/multiplayer.cpp:123 src/multiplayer_client.cpp:119
 #: src/multiplayer_connect.cpp:50 src/show_dialog.cpp:456
 #: src/show_dialog.cpp:462
 msgid "Cancel"
 msgstr ""
 
-#: src/multiplayer.cpp:121 src/show_dialog.cpp:442 src/show_dialog.cpp:455
+#: src/multiplayer.cpp:124 src/show_dialog.cpp:442 src/show_dialog.cpp:455
 msgid "Ok"
 msgstr ""
 
-#: src/multiplayer.cpp:123
+#: src/multiplayer.cpp:126
 msgid "Regenerate"
 msgstr ""
 
-#: src/multiplayer.cpp:125
+#: src/multiplayer.cpp:128
 msgid "Settings..."
 msgstr ""
 
-#: src/multiplayer.cpp:129
+#: src/multiplayer.cpp:132
 msgid "Share View"
 msgstr ""
 
-#: src/multiplayer.cpp:130
+#: src/multiplayer.cpp:133
 msgid "Share Maps"
 msgstr ""
 
-#: src/multiplayer.cpp:131
+#: src/multiplayer.cpp:134
 msgid "Share None"
 msgstr ""
 
-#: src/multiplayer.cpp:142 src/multiplayer_connect.cpp:177
+#: src/multiplayer.cpp:145 src/multiplayer_connect.cpp:181
 msgid "No multiplayer sides."
 msgstr ""
 
-#: src/multiplayer.cpp:170 src/multiplayer_lobby.cpp:158
+#: src/multiplayer.cpp:173 src/multiplayer_lobby.cpp:158
 msgid "Create Game"
 msgstr ""
 
-#: src/multiplayer.cpp:174
+#: src/multiplayer.cpp:177
 msgid "Name of game"
 msgstr ""
 
-#: src/multiplayer.cpp:178
+#: src/multiplayer.cpp:181
 msgid "$login's game"
 msgstr ""
 
-#: src/multiplayer.cpp:189
+#: src/multiplayer.cpp:192
 msgid "Map to play"
 msgstr ""
 
-#: src/multiplayer.cpp:286
+#: src/multiplayer.cpp:289
 msgid "Era"
 msgstr ""
 
-#: src/multiplayer.cpp:348
+#: src/multiplayer.cpp:351
 msgid "Unlimited"
 msgstr ""
 
-#: src/multiplayer.cpp:352
+#: src/multiplayer.cpp:355
 msgid "Turns"
 msgstr ""
 
-#: src/multiplayer.cpp:360
+#: src/multiplayer.cpp:363
 msgid "Village Gold"
 msgstr ""
 
-#: src/multiplayer.cpp:372
+#: src/multiplayer.cpp:375
 msgid "Experience Requirements"
 msgstr ""
 
-#: src/multiplayer.cpp:497
+#: src/multiplayer.cpp:500
 msgid ""
 "The game was unable to bind to the port needed to host games over the "
 "network. Network players will be unable to connect to this game"
 msgstr ""
 
-#: src/multiplayer.cpp:497
+#: src/multiplayer.cpp:500
 msgid "Warning"
 msgstr ""
 
@@ -6658,9 +6757,9 @@
 msgid "Receiving game list..."
 msgstr ""
 
-#: src/multiplayer_client.cpp:95 src/multiplayer_connect.cpp:378
-#: src/multiplayer_connect.cpp:380 src/playlevel.cpp:732 src/playturn.cpp:1524
-#: src/playturn.cpp:1529 src/playturn.cpp:1616
+#: src/multiplayer_client.cpp:95 src/multiplayer_connect.cpp:381
+#: src/multiplayer_connect.cpp:383 src/playlevel.cpp:769 src/playturn.cpp:1525
+#: src/playturn.cpp:1530 src/playturn.cpp:1616
 msgid "Gold"
 msgstr ""
 
@@ -6712,91 +6811,91 @@
 msgid "I'm Ready"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:97
+#: src/multiplayer_connect.cpp:99
 msgid "This is not a multiplayer save"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:237
+#: src/multiplayer_connect.cpp:241
 msgid ""
 "Victory\n"
 "@Defeat enemy leader(s)"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:257
+#: src/multiplayer_connect.cpp:261
 msgid "Network Player"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:258
+#: src/multiplayer_connect.cpp:262
 msgid "Local Player"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:259 src/multiplayer_connect.cpp:467
-#: src/multiplayer_connect.cpp:581 src/multiplayer_connect.cpp:675
+#: src/multiplayer_connect.cpp:263 src/multiplayer_connect.cpp:470
+#: src/multiplayer_connect.cpp:584 src/multiplayer_connect.cpp:678
 msgid "Computer Player"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:260
+#: src/multiplayer_connect.cpp:264
 msgid "Empty"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:288 src/multiplayer_connect.cpp:368
-#: src/multiplayer_connect.cpp:371
+#: src/multiplayer_connect.cpp:291 src/multiplayer_connect.cpp:371
+#: src/multiplayer_connect.cpp:374
 msgid "Team"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:296
+#: src/multiplayer_connect.cpp:299
 msgid "Red"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:298
+#: src/multiplayer_connect.cpp:301
 msgid "Blue"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:300
+#: src/multiplayer_connect.cpp:303
 msgid "Green"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:302
+#: src/multiplayer_connect.cpp:305
 msgid "Yellow"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:304
+#: src/multiplayer_connect.cpp:307
 msgid "Purple"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:306
+#: src/multiplayer_connect.cpp:309
 msgid "Orange"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:308
+#: src/multiplayer_connect.cpp:311
 msgid "Grey"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:310
+#: src/multiplayer_connect.cpp:313
 msgid "White"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:312
+#: src/multiplayer_connect.cpp:315
 msgid "Brown"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:357
+#: src/multiplayer_connect.cpp:360
 msgid "Game Lobby"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:360 src/multiplayer_connect.cpp:362
+#: src/multiplayer_connect.cpp:363 src/multiplayer_connect.cpp:365
 msgid "Player/Type"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:363 src/multiplayer_connect.cpp:366
+#: src/multiplayer_connect.cpp:366 src/multiplayer_connect.cpp:369
 msgid "Faction"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:373 src/multiplayer_connect.cpp:376
+#: src/multiplayer_connect.cpp:376 src/multiplayer_connect.cpp:379
 msgid "Color"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:530 src/multiplayer_connect.cpp:534
+#: src/multiplayer_connect.cpp:533 src/multiplayer_connect.cpp:537
 msgid "Waiting for network players to join"
 msgstr ""
 
@@ -6820,60 +6919,60 @@
 msgid "Quit"
 msgstr ""
 
-#: src/playlevel.cpp:672
+#: src/playlevel.cpp:688
 msgid "Game Over"
 msgstr ""
 
-#: src/playlevel.cpp:673
+#: src/playlevel.cpp:689
 msgid "The game is over."
 msgstr ""
 
-#: src/playlevel.cpp:686
+#: src/playlevel.cpp:702
 msgid "Defeat"
 msgstr ""
 
-#: src/playlevel.cpp:687
+#: src/playlevel.cpp:703
 msgid "You have been defeated!"
 msgstr ""
 
-#: src/playlevel.cpp:719
-msgid "Victory"
-msgstr ""
-
-#: src/playlevel.cpp:720
-msgid "You have emerged victorious!"
-msgstr ""
-
-#: src/playlevel.cpp:722
+#: src/playlevel.cpp:759
 msgid "Remaining gold"
 msgstr ""
 
-#: src/playlevel.cpp:725
+#: src/playlevel.cpp:762
 msgid "Early finish bonus"
 msgstr ""
 
-#: src/playlevel.cpp:727
+#: src/playlevel.cpp:764
 msgid "per turn"
 msgstr ""
 
-#: src/playlevel.cpp:728
+#: src/playlevel.cpp:765
 msgid "Turns finished early"
 msgstr ""
 
-#: src/playlevel.cpp:730
+#: src/playlevel.cpp:767
 msgid "Bonus"
 msgstr ""
 
-#: src/playlevel.cpp:737
+#: src/playlevel.cpp:774
 #, no-c-format
 msgid "80% of gold is retained for the next scenario"
 msgstr ""
 
-#: src/playlevel.cpp:738
+#: src/playlevel.cpp:774
 msgid "Retained Gold"
 msgstr ""
 
-#: src/playlevel.cpp:762
+#: src/playlevel.cpp:778
+msgid "Victory"
+msgstr ""
+
+#: src/playlevel.cpp:779
+msgid "You have emerged victorious!"
+msgstr ""
+
+#: src/playlevel.cpp:804
 msgid ""
 "A network disconnection has occured, and the game cannot continue. Do you "
 "want to save the game?"
@@ -6883,78 +6982,74 @@
 msgid "It is now your turn"
 msgstr ""
 
-#: src/playturn.cpp:490
+#: src/playturn.cpp:488
 msgid "Attacker"
 msgstr ""
 
-#: src/playturn.cpp:492
+#: src/playturn.cpp:490
 msgid "Defender"
 msgstr ""
 
-#: src/playturn.cpp:516 src/playturn.cpp:636
+#: src/playturn.cpp:514 src/playturn.cpp:633
 msgid "Damage Calculations"
 msgstr ""
 
-#: src/playturn.cpp:602
+#: src/playturn.cpp:599
 msgid "Melee"
 msgstr ""
 
-#: src/playturn.cpp:615 src/reports.cpp:210
+#: src/playturn.cpp:612 src/reports.cpp:210
 msgid "vs"
 msgstr ""
 
-#: src/playturn.cpp:648
+#: src/playturn.cpp:645
 msgid "Attack Enemy"
 msgstr ""
 
-#: src/playturn.cpp:649
+#: src/playturn.cpp:646
 msgid "Choose weapon"
 msgstr ""
 
-#: src/playturn.cpp:1136
+#: src/playturn.cpp:1127
 msgid ""
 "You have not started your turn yet.  Do you really want to end your turn?"
 msgstr ""
 
-#: src/playturn.cpp:1145 src/playturn.cpp:1150
+#: src/playturn.cpp:1136 src/playturn.cpp:1141
 msgid "Some units have movement left. Do you really want to end your turn?"
 msgstr ""
 
-#: src/playturn.cpp:1166
+#: src/playturn.cpp:1157
 msgid "Auto-Save"
 msgstr ""
 
-#: src/playturn.cpp:1168
+#: src/playturn.cpp:1159
 msgid "Could not auto save the game. Please save the game manually."
 msgstr ""
 
-#: src/playturn.cpp:1394 src/playturn.cpp:1408
-msgid "Error"
-msgstr ""
-
-#: src/playturn.cpp:1394
+#: src/playturn.cpp:1396
 msgid ""
 "Save names may not contain colons, slashes, or backslashes. Please choose a "
 "different name."
 msgstr ""
 
-#: src/playturn.cpp:1405
+#: src/playturn.cpp:1407
 msgid "Saved"
 msgstr ""
 
-#: src/playturn.cpp:1405
+#: src/playturn.cpp:1407
 msgid "The game has been saved"
 msgstr ""
 
-#: src/playturn.cpp:1525
+#: src/playturn.cpp:1526
 msgid "Units"
 msgstr ""
 
-#: src/playturn.cpp:1526
+#: src/playturn.cpp:1527
 msgid "Income"
 msgstr ""
 
-#: src/playturn.cpp:1526
+#: src/playturn.cpp:1527
 msgid "Upkeep"
 msgstr ""
 
@@ -6990,127 +7085,123 @@
 msgid "him"
 msgstr ""
 
-#: src/playturn.cpp:1762
+#: src/playturn.cpp:1768
 msgid "You are seperated from your soldiers and may not recall them"
 msgstr ""
 
-#: src/playturn.cpp:1764
+#: src/playturn.cpp:1770
 msgid ""
 "There are no troops available to recall\n"
 "(You must have veteran survivors from a previous scenario)"
 msgstr ""
 
-#: src/playturn.cpp:1768
-msgid "You must have at least"
-msgstr ""
-
-#: src/playturn.cpp:1770
-msgid "gold pieces to recall a unit"
+#: src/playturn.cpp:1776
+msgid "You must have at least $cost gold pieces to recall a unit"
 msgstr ""
 
-#: src/playturn.cpp:1793
+#: src/playturn.cpp:1799
 msgid "Dismiss Unit"
 msgstr ""
 
-#: src/playturn.cpp:1806
+#: src/playturn.cpp:1812
 msgid "Select unit"
 msgstr ""
 
-#: src/playturn.cpp:1850
+#: src/playturn.cpp:1856
 msgid "Message"
 msgstr ""
 
-#: src/playturn.cpp:1850
+#: src/playturn.cpp:1856
 msgid "Send to allies only"
 msgstr ""
 
-#: src/playturn.cpp:1945
+#: src/playturn.cpp:1950
 msgid "Location"
 msgstr ""
 
-#: src/playturn.cpp:2027 src/playturn.cpp:2087
+#: src/playturn.cpp:2032 src/playturn.cpp:2092
 msgid "Recruits"
 msgstr ""
 
-#: src/playturn.cpp:2033 src/playturn.cpp:2091
+#: src/playturn.cpp:2038 src/playturn.cpp:2096
 msgid "Recalls"
 msgstr ""
 
-#: src/playturn.cpp:2039 src/playturn.cpp:2095
+#: src/playturn.cpp:2044 src/playturn.cpp:2100
 msgid "Advancements"
 msgstr ""
 
-#: src/playturn.cpp:2045 src/playturn.cpp:2099
+#: src/playturn.cpp:2050 src/playturn.cpp:2104
 msgid "Losses"
 msgstr ""
 
-#: src/playturn.cpp:2051 src/playturn.cpp:2103
+#: src/playturn.cpp:2056 src/playturn.cpp:2108
 msgid "Kills"
 msgstr ""
 
-#: src/playturn.cpp:2057
+#: src/playturn.cpp:2062
 msgid "Damage Inflicted"
 msgstr ""
 
-#: src/playturn.cpp:2063
+#: src/playturn.cpp:2068
 msgid "Damage Taken"
 msgstr ""
 
-#: src/playturn.cpp:2069
+#: src/playturn.cpp:2074
 msgid "Damage Inflicted (EV)"
 msgstr ""
 
-#: src/playturn.cpp:2076
+#: src/playturn.cpp:2081
 msgid "Damage Taken (EV)"
 msgstr ""
 
-#: src/playturn.cpp:2118
+#: src/playturn.cpp:2123
 msgid "Search"
 msgstr ""
 
-#: src/playturn.cpp:2128
+#: src/playturn.cpp:2133
 msgid "prompt^Command:"
 msgstr ""
 
-#: src/playturn.cpp:2139
+#: src/playturn.cpp:2144
 msgid "Chat Log"
 msgstr ""
 
-#: src/playturn.cpp:2204
+#: src/playturn.cpp:2209
 msgid "Couldn't find label or unit containing the string '$search'."
 msgstr ""
 
-#: src/playturn.cpp:2278
+#: src/playturn.cpp:2283
 msgid "Place Label"
 msgstr ""
 
-#: src/playturn.cpp:2279
+#: src/playturn.cpp:2284
 msgid "Label"
 msgstr ""
 
-#: src/playturn.cpp:2402
+#: src/playturn.cpp:2407
 msgid ""
 "The games are out of sync and will have to exit. Do you want to save an "
 "error log of your game?"
 msgstr ""
 
-#: src/playturn.cpp:2454
+#: src/playturn.cpp:2459
 msgid "Replace with AI"
 msgstr ""
 
-#: src/playturn.cpp:2455
+#: src/playturn.cpp:2460
 msgid "Replace with local player"
 msgstr ""
 
-#: src/playturn.cpp:2456
+#: src/playturn.cpp:2461
 msgid "Abort game"
 msgstr ""
 
-#: src/playturn.cpp:2459
+#: src/playturn.cpp:2464
 msgid "Replace with "
 msgstr ""
 
-#: src/playturn.cpp:2463
+#: src/playturn.cpp:2468
 msgid "has left the game. What do you want to do?"
 msgstr ""
 
@@ -7162,17 +7253,20 @@
 msgid "Chaotic units"
 msgstr ""
 
-#: src/reports.cpp:311
-msgid "Owned"
-msgstr ""
+#: src/reports.cpp:312
+#, fuzzy
+msgid "Owned village"
+msgstr "Falu"
 
-#: src/reports.cpp:313
-msgid "Enemy"
-msgstr ""
+#: src/reports.cpp:314
+#, fuzzy
+msgid "Enemy village"
+msgstr "Falu"
 
-#: src/reports.cpp:315
-msgid "Allied"
-msgstr ""
+#: src/reports.cpp:316
+#, fuzzy
+msgid "Allied village"
+msgstr "Koboldhorda"
 
 #: src/show_dialog.cpp:930
 msgid "KB"
Index: wesnoth/po/it/wesnoth.po
diff -u wesnoth/po/it/wesnoth.po:1.6 wesnoth/po/it/wesnoth.po:1.7
--- wesnoth/po/it/wesnoth.po:1.6        Sun Sep 12 18:22:40 2004
+++ wesnoth/po/it/wesnoth.po    Sat Sep 18 21:42:12 2004
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Battle for Wesnoth 0.8.2-CVS\n"
 "Report-Msgid-Bugs-To: http://bugs.wesnoth.org/\n";
-"POT-Creation-Date: 2004-09-12 17:19+0200\n"
+"POT-Creation-Date: 2004-09-16 14:31+0200\n"
 "PO-Revision-Date: 2004-09-04 15:35+0200\n"
 "Last-Translator: RokStar <address@hidden>\n"
 "Language-Team: none\n"
@@ -987,6 +987,12 @@
 msgid "&undead-necromancer.png,Alliance of Darkness"
 msgstr "&undead-lich.png,Alleanza dell'Oscurità"
 
+#: data/scenario-test.cfg:38
+msgid ""
+"You can come if you wish, but the leader is only interesting in speaking to "
+"Baldras."
+msgstr ""
+
 #: data/scenarios/multiplayer/ForestOfFear.cfg:3
 msgid "Forest of Fear"
 msgstr "Foresta della Paura"
@@ -2062,6 +2068,31 @@
 msgid "xp"
 msgstr ""
 
+#: data/themes/default.cfg:142 data/themes/default.cfg:478
+#, fuzzy
+msgid "gold"
+msgstr "freddo"
+
+#: data/themes/default.cfg:150 data/themes/default.cfg:486
+#, fuzzy
+msgid "villages"
+msgstr "Villaggi"
+
+#: data/themes/default.cfg:158 data/themes/default.cfg:494
+#, fuzzy
+msgid "units"
+msgstr "Unità"
+
+#: data/themes/default.cfg:166 data/themes/default.cfg:502
+#, fuzzy
+msgid "upkeep"
+msgstr "Mantenimento"
+
+#: data/themes/default.cfg:174 data/themes/default.cfg:510
+#, fuzzy
+msgid "income"
+msgstr "Entrate"
+
 #: data/themes/default.cfg:285 data/themes/default.cfg:623
 msgid "statuspanel^level"
 msgstr "statuspanel^livello"
@@ -2549,6 +2580,7 @@
 #: data/translations/english.cfg:141 data/translations/english.cfg:143
 #: data/translations/english.cfg:144 data/translations/english.cfg:145
 #: data/translations/english.cfg:146 data/translations/english.cfg:147
+#: src/reports.cpp:310
 #, fuzzy
 msgid "Village"
 msgstr "Villaggio"
@@ -3264,7 +3296,7 @@
 #: data/units/Dwarvish_Steelclad.cfg:26 data/units/Dwarvish_Thunderer.cfg:21
 #: data/units/Dwarvish_Thunderguard.cfg:21
 #: data/units/Dwarvish_Ulfserker.cfg:28 data/units/Elvish_Archer.cfg:22
-#: data/units/Elvish_Archer.cfg:101 data/units/Elvish_Avenger.cfg:24
+#: data/units/Elvish_Archer.cfg:100 data/units/Elvish_Avenger.cfg:24
 #: data/units/Elvish_Avenger.cfg:97 data/units/Elvish_Captain.cfg:24
 #: data/units/Elvish_Champion.cfg:22 data/units/Elvish_Fighter.cfg:24
 #: data/units/Elvish_Hero.cfg:22 data/units/Elvish_High_Lord.cfg:21
@@ -3391,7 +3423,7 @@
 #: data/units/Dragoon.cfg:27 data/units/Drake_Clasher.cfg:19
 #: data/units/Drake_Fighter.cfg:20 data/units/Drake_Slasher.cfg:20
 #: data/units/Drake_Warrior.cfg:20 data/units/Elvish_Archer.cfg:21
-#: data/units/Elvish_Archer.cfg:100 data/units/Elvish_Avenger.cfg:23
+#: data/units/Elvish_Archer.cfg:99 data/units/Elvish_Avenger.cfg:23
 #: data/units/Elvish_Avenger.cfg:96 data/units/Elvish_Captain.cfg:23
 #: data/units/Elvish_Champion.cfg:21 data/units/Elvish_Fighter.cfg:23
 #: data/units/Elvish_Hero.cfg:21 data/units/Elvish_High_Lord.cfg:20
@@ -3477,7 +3509,7 @@
 
 #: data/units/Bone_Shooter.cfg:37 data/units/Bowman.cfg:37
 #: data/units/Commander.cfg:45 data/units/Elvish_Archer.cfg:38
-#: data/units/Elvish_Archer.cfg:117 data/units/Elvish_Avenger.cfg:39
+#: data/units/Elvish_Archer.cfg:116 data/units/Elvish_Avenger.cfg:39
 #: data/units/Elvish_Avenger.cfg:112 data/units/Elvish_Captain.cfg:39
 #: data/units/Elvish_Champion.cfg:40 data/units/Elvish_Fighter.cfg:40
 #: data/units/Elvish_Hero.cfg:40 data/units/Elvish_Marshal.cfg:40
@@ -3506,7 +3538,7 @@
 #: data/units/Dwarvish_Sentinel.cfg:41 data/units/Dwarvish_Stalwart.cfg:28
 #: data/units/Dwarvish_Stalwart.cfg:41 data/units/Dwarvish_Thunderer.cfg:41
 #: data/units/Dwarvish_Thunderguard.cfg:47 data/units/Elvish_Archer.cfg:39
-#: data/units/Elvish_Archer.cfg:118 data/units/Elvish_Avenger.cfg:40
+#: data/units/Elvish_Archer.cfg:117 data/units/Elvish_Avenger.cfg:40
 #: data/units/Elvish_Avenger.cfg:113 data/units/Elvish_Captain.cfg:40
 #: data/units/Elvish_Champion.cfg:41 data/units/Elvish_Druid.cfg:62
 #: data/units/Elvish_Fighter.cfg:41 data/units/Elvish_Hero.cfg:41
@@ -4330,11 +4362,11 @@
 msgid "Elder Wose"
 msgstr "Wose Anziano"
 
-#: data/units/Elvish_Archer.cfg:3 data/units/Elvish_Archer.cfg:82
+#: data/units/Elvish_Archer.cfg:3 data/units/Elvish_Archer.cfg:81
 msgid "Elvish Archer"
 msgstr "Arciere Elfico"
 
-#: data/units/Elvish_Archer.cfg:18 data/units/Elvish_Archer.cfg:97
+#: data/units/Elvish_Archer.cfg:18 data/units/Elvish_Archer.cfg:96
 msgid ""
 "Elvish Archers are trained from youth in archery, and so skilled in long-"
 "range combat. Able to fire many arrows quickly and accurately, these Archers "
@@ -6796,11 +6828,11 @@
 msgid "#(Invalid)"
 msgstr "#(non valido)"
 
-#: src/dialogs.cpp:365 src/game.cpp:931
+#: src/dialogs.cpp:365 src/game.cpp:989
 msgid "Campaign"
 msgstr "Campagna"
 
-#: src/dialogs.cpp:367 src/game.cpp:978
+#: src/dialogs.cpp:367 src/game.cpp:1125
 msgid "Multiplayer"
 msgstr "Multiplayer"
 
@@ -6812,7 +6844,7 @@
 msgid "replay"
 msgstr "replay"
 
-#: src/dialogs.cpp:379 src/multiplayer_lobby.cpp:139 src/playturn.cpp:1382
+#: src/dialogs.cpp:379 src/multiplayer_lobby.cpp:139 src/playturn.cpp:1384
 msgid "Turn"
 msgstr "Turno"
 
@@ -6820,7 +6852,7 @@
 msgid "Scenario Start"
 msgstr "Inizia Scenario"
 
-#: src/dialogs.cpp:384 src/game.cpp:954
+#: src/dialogs.cpp:384 src/game.cpp:1101
 msgid "Difficulty"
 msgstr "Difficoltà"
 
@@ -6868,7 +6900,7 @@
 msgid "Show replay"
 msgstr "Mostra replay"
 
-#: src/dialogs.cpp:512 src/hotkeys.cpp:133 src/multiplayer.cpp:82
+#: src/dialogs.cpp:512 src/hotkeys.cpp:133 src/multiplayer.cpp:85
 msgid "Load Game"
 msgstr "Carica Partita"
 
@@ -6881,33 +6913,33 @@
 msgstr "Profilo"
 
 #: src/dialogs.cpp:646 src/display.cpp:884 src/help.cpp:567
-#: src/playturn.cpp:1778
+#: src/playturn.cpp:1784
 msgid "level"
 msgstr "Livello"
 
 #: src/dialogs.cpp:667 src/display.cpp:902 src/help.cpp:621
-#: src/playturn.cpp:1942 src/unit.cpp:1034
+#: src/playturn.cpp:1947 src/unit.cpp:1034
 msgid "HP"
 msgstr "PS"
 
 #: src/dialogs.cpp:671 src/dialogs.cpp:679 src/display.cpp:906
-#: src/display.cpp:914 src/playturn.cpp:1780 src/playturn.cpp:1943
+#: src/display.cpp:914 src/playturn.cpp:1786 src/playturn.cpp:1948
 #: src/unit.cpp:1093
 msgid "XP"
 msgstr "PE"
 
 #: src/dialogs.cpp:684 src/display.cpp:918 src/help.cpp:622
-#: src/playturn.cpp:1944 src/unit.cpp:1070
+#: src/playturn.cpp:1949 src/unit.cpp:1070
 msgid "Moves"
 msgstr "Mosse"
 
 #: src/dialogs.cpp:697 src/display.cpp:935 src/help.cpp:699
-#: src/playturn.cpp:602 src/reports.cpp:230
+#: src/playturn.cpp:599 src/reports.cpp:230
 msgid "melee"
 msgstr "ravvicinato"
 
 #: src/dialogs.cpp:698 src/display.cpp:936 src/help.cpp:699
-#: src/playturn.cpp:602 src/reports.cpp:231
+#: src/playturn.cpp:599 src/reports.cpp:231
 msgid "ranged"
 msgstr "a distanza"
 
@@ -6923,27 +6955,27 @@
 msgid "Vera.ttf"
 msgstr ""
 
-#: src/game.cpp:137
+#: src/game.cpp:138
 msgid "Do you want to save a replay of this scenario?"
 msgstr "Vuoi salvare un replay di questo scenario?"
 
-#: src/game.cpp:138 src/game.cpp:200 src/playturn.cpp:1391
+#: src/game.cpp:139 src/game.cpp:201 src/playturn.cpp:1393
 msgid "Name:"
 msgstr "Nome:"
 
-#: src/game.cpp:146 src/game.cpp:207 src/playturn.cpp:1408
+#: src/game.cpp:147 src/game.cpp:208 src/playturn.cpp:1410
 msgid "The game could not be saved"
 msgstr "La partita non può essere salvata"
 
-#: src/game.cpp:199
+#: src/game.cpp:200
 msgid "Do you want to save your game?"
 msgstr "Vuoi salvare la partita?"
 
-#: src/game.cpp:587
+#: src/game.cpp:648
 msgid "The Battle for Wesnoth"
 msgstr "The Battle for Wesnoth"
 
-#: src/game.cpp:807 src/multiplayer_connect.cpp:104
+#: src/game.cpp:868 src/multiplayer_connect.cpp:106
 msgid ""
 "This save is from a different version of the game. Do you want to try to "
 "load it?"
@@ -6951,64 +6983,140 @@
 "Questo salvataggio è di una versione differente del gioco. Vuoi provare a "
 "caricarlo?"
 
-#: src/game.cpp:818 src/game.cpp:823 src/playlevel.cpp:533
-#: src/playlevel.cpp:747
+#: src/game.cpp:879 src/game.cpp:884 src/playlevel.cpp:549
+#: src/playlevel.cpp:789
 msgid "The file you have tried to load is corrupt"
 msgstr "Il file che hai provato a caricare è corrotto"
 
-#: src/game.cpp:924
-msgid "There are no campaigns available"
-msgstr "Nessuna campagna disponibile"
+#: src/game.cpp:984
+msgid " ,Get More Campaigns..."
+msgstr ""
 
-#: src/game.cpp:932
+#: src/game.cpp:990
 msgid "Choose the campaign you want to play:"
 msgstr "Scegli la campagna a cui vuoi giocare:"
 
-#: src/game.cpp:955
+#: src/game.cpp:1000
+#, fuzzy
+msgid "Connect to Server"
+msgstr "Continua"
+
+#: src/game.cpp:1001
+msgid "You will now connect to a campaign server to download campaigns."
+msgstr ""
+
+#: src/game.cpp:1002
+msgid "Server: "
+msgstr ""
+
+#: src/game.cpp:1014
+#, fuzzy
+msgid "Could not connect to host."
+msgstr "Impossibile connettersi all'host remoto"
+
+#: src/game.cpp:1014 src/game.cpp:1029 src/game.cpp:1035 src/game.cpp:1046
+#: src/game.cpp:1065 src/game.cpp:1075 src/game.cpp:1078 src/game.cpp:1081
+#: src/playturn.cpp:1396 src/playturn.cpp:1410
+msgid "Error"
+msgstr ""
+
+#: src/game.cpp:1022
+msgid "Awaiting response from server"
+msgstr ""
+
+#: src/game.cpp:1035
+msgid "Error communicating with the server."
+msgstr ""
+
+#: src/game.cpp:1046
+#, fuzzy
+msgid "There are no campaigns available for download from this server."
+msgstr "Nessuna campagna disponibile"
+
+#: src/game.cpp:1050
+#, fuzzy
+msgid "Choose the campaign to download."
+msgstr "Scegli la partita da caricare"
+
+#: src/game.cpp:1050
+#, fuzzy
+msgid "Get Campaign"
+msgstr "Campagna"
+
+#: src/game.cpp:1059
+msgid "Downloading campaign..."
+msgstr ""
+
+#: src/game.cpp:1071
+#, fuzzy
+msgid "Campaign Installed"
+msgstr "Campagna"
+
+#: src/game.cpp:1071
+msgid ""
+"The campaign has been installed. You will have to restart Wesnoth before you "
+"can play it."
+msgstr ""
+
+#: src/game.cpp:1075
+msgid "Network communication error."
+msgstr ""
+
+#: src/game.cpp:1078
+#, fuzzy
+msgid "Remote host disconnected."
+msgstr "Scegli l'host a cui connetterti"
+
+#: src/game.cpp:1081
+msgid ""
+"There was a problem creating the files necessary to install this campaign."
+msgstr ""
+
+#: src/game.cpp:1102
 msgid "Select difficulty level:"
 msgstr "Seleziona il livello di difficoltà"
 
-#: src/game.cpp:973
+#: src/game.cpp:1120
 msgid "Join Official Server"
 msgstr "Unisciti al Server Ufficiale"
 
-#: src/game.cpp:973
+#: src/game.cpp:1120
 msgid "Log on to the official Wesnoth multiplayer server"
 msgstr "Accedi al Server Ufficiale per Wesnoth in multiplayer"
 
-#: src/game.cpp:974 src/multiplayer_lobby.cpp:157
+#: src/game.cpp:1121 src/multiplayer_lobby.cpp:157
 msgid "Join Game"
 msgstr "Unisciti al Gioco"
 
-#: src/game.cpp:974
+#: src/game.cpp:1121
 msgid "Join a server or hosted game"
 msgstr "Unisciti al server o alla partita ospitata"
 
-#: src/game.cpp:975
+#: src/game.cpp:1122
 msgid "Host Multiplayer Game"
 msgstr "Ospita Partita Multiplayer"
 
-#: src/game.cpp:975
+#: src/game.cpp:1122
 msgid "Host a game without using a server"
 msgstr "Ospita una partita senza utilizzare un server"
 
-#: src/game.cpp:978 src/multiplayer_client.cpp:269
+#: src/game.cpp:1125 src/multiplayer_client.cpp:269
 msgid "Login"
 msgstr "Login"
 
-#: src/game.cpp:1058
+#: src/game.cpp:1205
 msgid "Language"
 msgstr "Linguaggio"
 
-#: src/game.cpp:1059
+#: src/game.cpp:1206
 msgid "Choose your preferred language"
 msgstr "Scegli la lingua che preferisci"
 
-#: src/game.cpp:1144
+#: src/game.cpp:1291
 msgid "Could not initialize video. Exiting.\n"
 msgstr "Impossibile inizializzare il video. Uscita.\n"
 
-#: src/game.cpp:1146
+#: src/game.cpp:1293
 msgid "Could not initialize fonts. Exiting.\n"
 msgstr "Impossibile inizializzare i caratteri. Uscita.\n"
 
@@ -7032,11 +7140,11 @@
 msgid "attacks"
 msgstr "attacchi"
 
-#: src/help.cpp:646 src/help.cpp:647 src/playturn.cpp:1941
+#: src/help.cpp:646 src/help.cpp:647 src/playturn.cpp:1946
 msgid "Name"
 msgstr "Nome"
 
-#: src/help.cpp:650 src/help.cpp:651 src/playturn.cpp:1940
+#: src/help.cpp:650 src/help.cpp:651 src/playturn.cpp:1945
 msgid "Type"
 msgstr "Tipo"
 
@@ -7100,7 +7208,7 @@
 msgid "End Unit Turn"
 msgstr "Termina turno unità"
 
-#: src/hotkeys.cpp:122 src/playturn.cpp:1524
+#: src/hotkeys.cpp:122 src/playturn.cpp:1525
 msgid "Leader"
 msgstr "Comandante"
 
@@ -7136,7 +7244,7 @@
 msgid "Unit Description"
 msgstr "Descrizione Unità"
 
-#: src/hotkeys.cpp:131 src/playturn.cpp:1349
+#: src/hotkeys.cpp:131 src/playturn.cpp:1351
 msgid "Rename Unit"
 msgstr "Rinomina Unità"
 
@@ -7188,11 +7296,11 @@
 msgid "Scenario Objectives"
 msgstr "Obbiettivi dello Scenario"
 
-#: src/hotkeys.cpp:146 src/playturn.cpp:1993
+#: src/hotkeys.cpp:146 src/playturn.cpp:1998
 msgid "Unit List"
 msgstr "Lista delle Unità"
 
-#: src/hotkeys.cpp:147 src/playturn.cpp:2081
+#: src/hotkeys.cpp:147 src/playturn.cpp:2086
 msgid "Statistics"
 msgstr "Statistiche"
 
@@ -7342,7 +7450,7 @@
 msgid "Map Generator"
 msgstr "Generatore Mappe"
 
-#: src/mapgen_dialog.cpp:77 src/multiplayer.cpp:481
+#: src/mapgen_dialog.cpp:77 src/multiplayer.cpp:484
 msgid "Players"
 msgstr "Giocatori"
 
@@ -7362,7 +7470,7 @@
 msgid "Bump Size"
 msgstr "Forza d'Urto"
 
-#: src/mapgen_dialog.cpp:82 src/playturn.cpp:1525
+#: src/mapgen_dialog.cpp:82 src/playturn.cpp:1526
 msgid "Villages"
 msgstr "Villaggi"
 
@@ -7390,122 +7498,122 @@
 msgid "Island"
 msgstr "Isola"
 
-#: src/multiplayer.cpp:94
+#: src/multiplayer.cpp:97
 msgid "The maximum turns the game will go for"
 msgstr "Numero massimo dei turni per la partita"
 
-#: src/multiplayer.cpp:100
+#: src/multiplayer.cpp:103
 msgid "The amount of income each village yields per turn"
 msgstr "Ammontare di entrate fornite ogni turno da ogni singolo villaggio"
 
-#: src/multiplayer.cpp:106
+#: src/multiplayer.cpp:109
 msgid "The amount of experience a unit needs to advance"
 msgstr ""
 "Ammontare dell'esperienza necessaria alle unità per avanzare di livello"
 
-#: src/multiplayer.cpp:108
+#: src/multiplayer.cpp:111
 msgid "Fog Of War"
 msgstr "Nebbia di Guerra"
 
-#: src/multiplayer.cpp:110
+#: src/multiplayer.cpp:113
 msgid "Enemy units cannot be seen unless they are in range of your units"
 msgstr ""
 "Le unità nemiche non possono essere viste finché non sono nel raggio visivo 
"
 "delle tue unità"
 
-#: src/multiplayer.cpp:112 src/multiplayer_lobby.cpp:127
+#: src/multiplayer.cpp:115 src/multiplayer_lobby.cpp:127
 msgid "Shroud"
 msgstr "Oscurità"
 
-#: src/multiplayer.cpp:114
+#: src/multiplayer.cpp:117
 msgid "The map is unknown until your units explore it"
 msgstr "La mappa è oscurata finché le tue unità non la esplorano"
 
-#: src/multiplayer.cpp:116 src/reports.cpp:375
+#: src/multiplayer.cpp:119 src/reports.cpp:376
 msgid "Observers"
 msgstr "Osservatori"
 
-#: src/multiplayer.cpp:118
+#: src/multiplayer.cpp:121
 msgid "Allow users who are not playing to watch the game"
 msgstr "Permette agli utenti che non giocano di osservare la partita"
 
-#: src/multiplayer.cpp:120 src/multiplayer_client.cpp:119
+#: src/multiplayer.cpp:123 src/multiplayer_client.cpp:119
 #: src/multiplayer_connect.cpp:50 src/show_dialog.cpp:456
 #: src/show_dialog.cpp:462
 msgid "Cancel"
 msgstr "Annulla"
 
-#: src/multiplayer.cpp:121 src/show_dialog.cpp:442 src/show_dialog.cpp:455
+#: src/multiplayer.cpp:124 src/show_dialog.cpp:442 src/show_dialog.cpp:455
 msgid "Ok"
 msgstr "Ok"
 
-#: src/multiplayer.cpp:123
+#: src/multiplayer.cpp:126
 msgid "Regenerate"
 msgstr "Rigenera"
 
-#: src/multiplayer.cpp:125
+#: src/multiplayer.cpp:128
 msgid "Settings..."
 msgstr "Impostazioni..."
 
-#: src/multiplayer.cpp:129
+#: src/multiplayer.cpp:132
 msgid "Share View"
 msgstr "Condividi Vista"
 
-#: src/multiplayer.cpp:130
+#: src/multiplayer.cpp:133
 msgid "Share Maps"
 msgstr "Condividi Mappe"
 
-#: src/multiplayer.cpp:131
+#: src/multiplayer.cpp:134
 msgid "Share None"
 msgstr "Non condividere niente"
 
-#: src/multiplayer.cpp:142 src/multiplayer_connect.cpp:177
+#: src/multiplayer.cpp:145 src/multiplayer_connect.cpp:181
 msgid "No multiplayer sides."
 msgstr "Nessun esercito multiplayer."
 
-#: src/multiplayer.cpp:170 src/multiplayer_lobby.cpp:158
+#: src/multiplayer.cpp:173 src/multiplayer_lobby.cpp:158
 msgid "Create Game"
 msgstr "Crea Partita"
 
-#: src/multiplayer.cpp:174
+#: src/multiplayer.cpp:177
 msgid "Name of game"
 msgstr "Nome della partita"
 
-#: src/multiplayer.cpp:178
+#: src/multiplayer.cpp:181
 msgid "$login's game"
 msgstr "$login partita "
 
-#: src/multiplayer.cpp:189
+#: src/multiplayer.cpp:192
 msgid "Map to play"
 msgstr "Mappa da giocare"
 
-#: src/multiplayer.cpp:286
+#: src/multiplayer.cpp:289
 msgid "Era"
 msgstr "Era"
 
-#: src/multiplayer.cpp:348
+#: src/multiplayer.cpp:351
 msgid "Unlimited"
 msgstr "Illimitato"
 
-#: src/multiplayer.cpp:352
+#: src/multiplayer.cpp:355
 msgid "Turns"
 msgstr "Turni"
 
-#: src/multiplayer.cpp:360
+#: src/multiplayer.cpp:363
 msgid "Village Gold"
 msgstr "Oro per Villaggio"
 
-#: src/multiplayer.cpp:372
+#: src/multiplayer.cpp:375
 msgid "Experience Requirements"
 msgstr "Esperienza Richiesta"
 
-#: src/multiplayer.cpp:497
+#: src/multiplayer.cpp:500
 msgid ""
 "The game was unable to bind to the port needed to host games over the "
 "network. Network players will be unable to connect to this game"
 msgstr ""
 
-#: src/multiplayer.cpp:497
+#: src/multiplayer.cpp:500
 #, fuzzy
 msgid "Warning"
 msgstr "Mattino"
@@ -7518,9 +7626,9 @@
 msgid "Receiving game list..."
 msgstr "Ricevo la lista delle partite..."
 
-#: src/multiplayer_client.cpp:95 src/multiplayer_connect.cpp:378
-#: src/multiplayer_connect.cpp:380 src/playlevel.cpp:732 src/playturn.cpp:1524
-#: src/playturn.cpp:1529 src/playturn.cpp:1616
+#: src/multiplayer_client.cpp:95 src/multiplayer_connect.cpp:381
+#: src/multiplayer_connect.cpp:383 src/playlevel.cpp:769 src/playturn.cpp:1525
+#: src/playturn.cpp:1530 src/playturn.cpp:1616
 msgid "Gold"
 msgstr "Oro"
 
@@ -7572,11 +7680,11 @@
 msgid "I'm Ready"
 msgstr "Sono Pronto"
 
-#: src/multiplayer_connect.cpp:97
+#: src/multiplayer_connect.cpp:99
 msgid "This is not a multiplayer save"
 msgstr "Questo non è un salvataggio multiplayer"
 
-#: src/multiplayer_connect.cpp:237
+#: src/multiplayer_connect.cpp:241
 msgid ""
 "Victory\n"
 "@Defeat enemy leader(s)"
@@ -7584,82 +7692,82 @@
 "Vittoria\n"
 "@Sconfiggi il o i leader nemici"
 
-#: src/multiplayer_connect.cpp:257
+#: src/multiplayer_connect.cpp:261
 msgid "Network Player"
 msgstr "Giocatore Remoto"
 
-#: src/multiplayer_connect.cpp:258
+#: src/multiplayer_connect.cpp:262
 msgid "Local Player"
 msgstr "Giocatore Locale"
 
-#: src/multiplayer_connect.cpp:259 src/multiplayer_connect.cpp:467
-#: src/multiplayer_connect.cpp:581 src/multiplayer_connect.cpp:675
+#: src/multiplayer_connect.cpp:263 src/multiplayer_connect.cpp:470
+#: src/multiplayer_connect.cpp:584 src/multiplayer_connect.cpp:678
 msgid "Computer Player"
 msgstr "Computer"
 
-#: src/multiplayer_connect.cpp:260
+#: src/multiplayer_connect.cpp:264
 msgid "Empty"
 msgstr "Vuoto"
 
-#: src/multiplayer_connect.cpp:288 src/multiplayer_connect.cpp:368
-#: src/multiplayer_connect.cpp:371
+#: src/multiplayer_connect.cpp:291 src/multiplayer_connect.cpp:371
+#: src/multiplayer_connect.cpp:374
 msgid "Team"
 msgstr "Squadra"
 
-#: src/multiplayer_connect.cpp:296
+#: src/multiplayer_connect.cpp:299
 msgid "Red"
 msgstr "Rosso"
 
-#: src/multiplayer_connect.cpp:298
+#: src/multiplayer_connect.cpp:301
 msgid "Blue"
 msgstr "Blu"
 
-#: src/multiplayer_connect.cpp:300
+#: src/multiplayer_connect.cpp:303
 msgid "Green"
 msgstr "Verde"
 
-#: src/multiplayer_connect.cpp:302
+#: src/multiplayer_connect.cpp:305
 msgid "Yellow"
 msgstr "Giallo"
 
-#: src/multiplayer_connect.cpp:304
+#: src/multiplayer_connect.cpp:307
 msgid "Purple"
 msgstr "Viola"
 
-#: src/multiplayer_connect.cpp:306
+#: src/multiplayer_connect.cpp:309
 msgid "Orange"
 msgstr "Arancione"
 
-#: src/multiplayer_connect.cpp:308
+#: src/multiplayer_connect.cpp:311
 msgid "Grey"
 msgstr "Grigio"
 
-#: src/multiplayer_connect.cpp:310
+#: src/multiplayer_connect.cpp:313
 msgid "White"
 msgstr "Bianco"
 
-#: src/multiplayer_connect.cpp:312
+#: src/multiplayer_connect.cpp:315
 msgid "Brown"
 msgstr "Marrone"
 
-#: src/multiplayer_connect.cpp:357
+#: src/multiplayer_connect.cpp:360
 msgid "Game Lobby"
 msgstr "Game Lobby"
 
-#: src/multiplayer_connect.cpp:360 src/multiplayer_connect.cpp:362
+#: src/multiplayer_connect.cpp:363 src/multiplayer_connect.cpp:365
 msgid "Player/Type"
 msgstr "Giocatore/Tipo"
 
-#: src/multiplayer_connect.cpp:363 src/multiplayer_connect.cpp:366
+#: src/multiplayer_connect.cpp:366 src/multiplayer_connect.cpp:369
 #, fuzzy
 msgid "Faction"
 msgstr "Azioni"
 
-#: src/multiplayer_connect.cpp:373 src/multiplayer_connect.cpp:376
+#: src/multiplayer_connect.cpp:376 src/multiplayer_connect.cpp:379
 msgid "Color"
 msgstr "Colore"
 
-#: src/multiplayer_connect.cpp:530 src/multiplayer_connect.cpp:534
+#: src/multiplayer_connect.cpp:533 src/multiplayer_connect.cpp:537
 msgid "Waiting for network players to join"
 msgstr "Aspetta che i giocatori remoti si uniscano"
 
@@ -7683,60 +7791,60 @@
 msgid "Quit"
 msgstr "Esci"
 
-#: src/playlevel.cpp:672
+#: src/playlevel.cpp:688
 msgid "Game Over"
 msgstr "Fine Gioco"
 
-#: src/playlevel.cpp:673
+#: src/playlevel.cpp:689
 msgid "The game is over."
 msgstr "La partita è terminata."
 
-#: src/playlevel.cpp:686
+#: src/playlevel.cpp:702
 msgid "Defeat"
 msgstr "Sconfitta"
 
-#: src/playlevel.cpp:687
+#: src/playlevel.cpp:703
 msgid "You have been defeated!"
 msgstr "Sei stato sconfitto!"
 
-#: src/playlevel.cpp:719
-msgid "Victory"
-msgstr "Vittoria"
-
-#: src/playlevel.cpp:720
-msgid "You have emerged victorious!"
-msgstr "Ne sei uscito vincente!"
-
-#: src/playlevel.cpp:722
+#: src/playlevel.cpp:759
 msgid "Remaining gold"
 msgstr "Oro rimanente"
 
-#: src/playlevel.cpp:725
+#: src/playlevel.cpp:762
 msgid "Early finish bonus"
 msgstr "Bonus turni risparmiati"
 
-#: src/playlevel.cpp:727
+#: src/playlevel.cpp:764
 msgid "per turn"
 msgstr "per turno"
 
-#: src/playlevel.cpp:728
+#: src/playlevel.cpp:765
 msgid "Turns finished early"
 msgstr "Turni risparmiati"
 
-#: src/playlevel.cpp:730
+#: src/playlevel.cpp:767
 msgid "Bonus"
 msgstr "Bonus"
 
-#: src/playlevel.cpp:737
+#: src/playlevel.cpp:774
 #, no-c-format
 msgid "80% of gold is retained for the next scenario"
 msgstr "80% dell'oro è trattenuto per il prossimo scenario"
 
-#: src/playlevel.cpp:738
+#: src/playlevel.cpp:774
 msgid "Retained Gold"
 msgstr "Oro trattenuto"
 
-#: src/playlevel.cpp:762
+#: src/playlevel.cpp:778
+msgid "Victory"
+msgstr "Vittoria"
+
+#: src/playlevel.cpp:779
+msgid "You have emerged victorious!"
+msgstr "Ne sei uscito vincente!"
+
+#: src/playlevel.cpp:804
 msgid ""
 "A network disconnection has occured, and the game cannot continue. Do you "
 "want to save the game?"
@@ -7748,85 +7856,81 @@
 msgid "It is now your turn"
 msgstr "Adesso è il tuo turno"
 
-#: src/playturn.cpp:490
+#: src/playturn.cpp:488
 msgid "Attacker"
 msgstr "Attaccante"
 
-#: src/playturn.cpp:492
+#: src/playturn.cpp:490
 msgid "Defender"
 msgstr "Difensore"
 
-#: src/playturn.cpp:516 src/playturn.cpp:636
+#: src/playturn.cpp:514 src/playturn.cpp:633
 msgid "Damage Calculations"
 msgstr "Calcolo del Danno"
 
-#: src/playturn.cpp:602
+#: src/playturn.cpp:599
 msgid "Melee"
 msgstr "Ravvicinato"
 
-#: src/playturn.cpp:615 src/reports.cpp:210
+#: src/playturn.cpp:612 src/reports.cpp:210
 msgid "vs"
 msgstr "vs"
 
-#: src/playturn.cpp:648
+#: src/playturn.cpp:645
 msgid "Attack Enemy"
 msgstr "Attacca Nemico"
 
-#: src/playturn.cpp:649
+#: src/playturn.cpp:646
 msgid "Choose weapon"
 msgstr "Scegli Arma"
 
-#: src/playturn.cpp:1136
+#: src/playturn.cpp:1127
 msgid ""
 "You have not started your turn yet.  Do you really want to end your turn?"
 msgstr ""
 "Non hai ancora iniziato il tuo turno. Sei sicuro di voler finire il tuo "
 "turno adesso?"
 
-#: src/playturn.cpp:1145 src/playturn.cpp:1150
+#: src/playturn.cpp:1136 src/playturn.cpp:1141
 msgid "Some units have movement left. Do you really want to end your turn?"
 msgstr ""
 "Alcune unità hanno movimenti a disposizione. Vuoi davvero terminare il tuo "
 "turno?"
 
-#: src/playturn.cpp:1166
+#: src/playturn.cpp:1157
 msgid "Auto-Save"
 msgstr "Savlataggio Automatico"
 
-#: src/playturn.cpp:1168
+#: src/playturn.cpp:1159
 msgid "Could not auto save the game. Please save the game manually."
 msgstr ""
 "Impossibile effettuare il salvataggio automatico. Salva manualmente la "
 "partita."
 
-#: src/playturn.cpp:1394 src/playturn.cpp:1408
-msgid "Error"
-msgstr ""
-
-#: src/playturn.cpp:1394
+#: src/playturn.cpp:1396
 msgid ""
 "Save names may not contain colons, slashes, or backslashes. Please choose a "
 "different name."
 msgstr ""
 
-#: src/playturn.cpp:1405
+#: src/playturn.cpp:1407
 #, fuzzy
 msgid "Saved"
 msgstr "Salva come"
 
-#: src/playturn.cpp:1405
+#: src/playturn.cpp:1407
 msgid "The game has been saved"
 msgstr "La partita è stata salvata"
 
-#: src/playturn.cpp:1525
+#: src/playturn.cpp:1526
 msgid "Units"
 msgstr "Unità"
 
-#: src/playturn.cpp:1526
+#: src/playturn.cpp:1527
 msgid "Income"
 msgstr "Entrate"
 
-#: src/playturn.cpp:1526
+#: src/playturn.cpp:1527
 msgid "Upkeep"
 msgstr "Mantenimento"
 
@@ -7866,11 +7970,11 @@
 msgid "him"
 msgstr "suo"
 
-#: src/playturn.cpp:1762
+#: src/playturn.cpp:1768
 msgid "You are seperated from your soldiers and may not recall them"
 msgstr "Sei separato dal tuo esercito e non puoi richiamare nessuna unità"
 
-#: src/playturn.cpp:1764
+#: src/playturn.cpp:1770
 msgid ""
 "There are no troops available to recall\n"
 "(You must have veteran survivors from a previous scenario)"
@@ -7878,95 +7982,92 @@
 "Non ci sono truppe da richiamare.\n"
 "(Devi avere veterani sopravvissuti dai precedenti scenari)"
 
-#: src/playturn.cpp:1768
-msgid "You must have at least"
-msgstr "Devi avere almeno"
-
-#: src/playturn.cpp:1770
-msgid "gold pieces to recall a unit"
+#: src/playturn.cpp:1776
+#, fuzzy
+msgid "You must have at least $cost gold pieces to recall a unit"
 msgstr "pezzi d'oro per richiamare un'unità"
 
-#: src/playturn.cpp:1793
+#: src/playturn.cpp:1799
 msgid "Dismiss Unit"
 msgstr "Elimina Unità"
 
-#: src/playturn.cpp:1806
+#: src/playturn.cpp:1812
 msgid "Select unit"
 msgstr "Seleziona Unità"
 
-#: src/playturn.cpp:1850
+#: src/playturn.cpp:1856
 msgid "Message"
 msgstr "Messaggio"
 
-#: src/playturn.cpp:1850
+#: src/playturn.cpp:1856
 msgid "Send to allies only"
 msgstr "Invia solo agli alleati"
 
-#: src/playturn.cpp:1945
+#: src/playturn.cpp:1950
 msgid "Location"
 msgstr "Luogo"
 
-#: src/playturn.cpp:2027 src/playturn.cpp:2087
+#: src/playturn.cpp:2032 src/playturn.cpp:2092
 msgid "Recruits"
 msgstr "Reclutamenti"
 
-#: src/playturn.cpp:2033 src/playturn.cpp:2091
+#: src/playturn.cpp:2038 src/playturn.cpp:2096
 msgid "Recalls"
 msgstr "Richiami"
 
-#: src/playturn.cpp:2039 src/playturn.cpp:2095
+#: src/playturn.cpp:2044 src/playturn.cpp:2100
 msgid "Advancements"
 msgstr "Avanzamenti"
 
-#: src/playturn.cpp:2045 src/playturn.cpp:2099
+#: src/playturn.cpp:2050 src/playturn.cpp:2104
 msgid "Losses"
 msgstr "Perdite"
 
-#: src/playturn.cpp:2051 src/playturn.cpp:2103
+#: src/playturn.cpp:2056 src/playturn.cpp:2108
 msgid "Kills"
 msgstr "Uccisioni"
 
-#: src/playturn.cpp:2057
+#: src/playturn.cpp:2062
 msgid "Damage Inflicted"
 msgstr "Danni inflitti"
 
-#: src/playturn.cpp:2063
+#: src/playturn.cpp:2068
 msgid "Damage Taken"
 msgstr "Danni subiti"
 
-#: src/playturn.cpp:2069
+#: src/playturn.cpp:2074
 msgid "Damage Inflicted (EV)"
 msgstr "Danni Inflitti (EV)"
 
-#: src/playturn.cpp:2076
+#: src/playturn.cpp:2081
 msgid "Damage Taken (EV)"
 msgstr "Danni Subiti (EV)"
 
-#: src/playturn.cpp:2118
+#: src/playturn.cpp:2123
 msgid "Search"
 msgstr "Cerca"
 
-#: src/playturn.cpp:2128
+#: src/playturn.cpp:2133
 msgid "prompt^Command:"
 msgstr "prompt^Comando:"
 
-#: src/playturn.cpp:2139
+#: src/playturn.cpp:2144
 msgid "Chat Log"
 msgstr "Chat Log"
 
-#: src/playturn.cpp:2204
+#: src/playturn.cpp:2209
 msgid "Couldn't find label or unit containing the string '$search'."
 msgstr "Non ho trovato nessuna etichetta contente '$search'."
 
-#: src/playturn.cpp:2278
+#: src/playturn.cpp:2283
 msgid "Place Label"
 msgstr "Imposta Etichetta"
 
-#: src/playturn.cpp:2279
+#: src/playturn.cpp:2284
 msgid "Label"
 msgstr "Etichetta"
 
-#: src/playturn.cpp:2402
+#: src/playturn.cpp:2407
 msgid ""
 "The games are out of sync and will have to exit. Do you want to save an "
 "error log of your game?"
@@ -7974,23 +8075,23 @@
 "La partita non è sincronizzata ed è necessario uscire. Vuoi salvare un file 
"
 "con gli errori occorsi nella partita?"
 
-#: src/playturn.cpp:2454
+#: src/playturn.cpp:2459
 msgid "Replace with AI"
 msgstr "Rimpiazza con AI"
 
-#: src/playturn.cpp:2455
+#: src/playturn.cpp:2460
 msgid "Replace with local player"
 msgstr "Rimpiazza con un giocatore locale"
 
-#: src/playturn.cpp:2456
+#: src/playturn.cpp:2461
 msgid "Abort game"
 msgstr "Annulla gioco"
 
-#: src/playturn.cpp:2459
+#: src/playturn.cpp:2464
 msgid "Replace with "
 msgstr "Rimpiazza con"
 
-#: src/playturn.cpp:2463
+#: src/playturn.cpp:2468
 msgid "has left the game. What do you want to do?"
 msgstr "ha abbandonato il gioco. Cosa vuoi fare?"
 
@@ -8051,17 +8152,20 @@
 msgid "Chaotic units"
 msgstr "Unità Caotiche"
 
-#: src/reports.cpp:311
-msgid "Owned"
-msgstr "Posseduto"
-
-#: src/reports.cpp:313
-msgid "Enemy"
-msgstr "Nemico"
-
-#: src/reports.cpp:315
-msgid "Allied"
-msgstr "Alleato"
+#: src/reports.cpp:312
+#, fuzzy
+msgid "Owned village"
+msgstr "Villaggio"
+
+#: src/reports.cpp:314
+#, fuzzy
+msgid "Enemy village"
+msgstr "Villaggio"
+
+#: src/reports.cpp:316
+#, fuzzy
+msgid "Allied village"
+msgstr "Saccheggiatore Goblin"
 
 #: src/show_dialog.cpp:930
 msgid "KB"
@@ -8174,6 +8278,18 @@
 msgid "Deletion of the file failed."
 msgstr "Eliminazione del file non riuscita."
 
+#~ msgid "You must have at least"
+#~ msgstr "Devi avere almeno"
+
+#~ msgid "Owned"
+#~ msgstr "Posseduto"
+
+#~ msgid "Enemy"
+#~ msgstr "Nemico"
+
+#~ msgid "Allied"
+#~ msgstr "Alleato"
+
 #~ msgid "Heir to the Throne"
 #~ msgstr "L'erede al trono"
 
Index: wesnoth/po/pl/wesnoth.po
diff -u wesnoth/po/pl/wesnoth.po:1.4 wesnoth/po/pl/wesnoth.po:1.5
--- wesnoth/po/pl/wesnoth.po:1.4        Sun Sep 12 18:22:40 2004
+++ wesnoth/po/pl/wesnoth.po    Sat Sep 18 21:42:13 2004
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: Battle for Wesnoth 0.8.2-CVS\n"
 "Report-Msgid-Bugs-To: http://bugs.wesnoth.org/\n";
-"POT-Creation-Date: 2004-09-12 17:19+0200\n"
+"POT-Creation-Date: 2004-09-16 14:31+0200\n"
 "PO-Revision-Date: 2004-08-08 15:00+0200\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -673,6 +673,12 @@
 msgid "&undead-necromancer.png,Alliance of Darkness"
 msgstr ""
 
+#: data/scenario-test.cfg:38
+msgid ""
+"You can come if you wish, but the leader is only interesting in speaking to "
+"Baldras."
+msgstr ""
+
 #: data/scenarios/multiplayer/ForestOfFear.cfg:3
 msgid "Forest of Fear"
 msgstr ""
@@ -1650,6 +1656,29 @@
 msgid "xp"
 msgstr ""
 
+#: data/themes/default.cfg:142 data/themes/default.cfg:478
+msgid "gold"
+msgstr ""
+
+#: data/themes/default.cfg:150 data/themes/default.cfg:486
+#, fuzzy
+msgid "villages"
+msgstr "Wioska"
+
+#: data/themes/default.cfg:158 data/themes/default.cfg:494
+msgid "units"
+msgstr ""
+
+#: data/themes/default.cfg:166 data/themes/default.cfg:502
+#, fuzzy
+msgid "upkeep"
+msgstr "pika"
+
+#: data/themes/default.cfg:174 data/themes/default.cfg:510
+#, fuzzy
+msgid "income"
+msgstr "kleszcze"
+
 #: data/themes/default.cfg:285 data/themes/default.cfg:623
 msgid "statuspanel^level"
 msgstr ""
@@ -2022,6 +2051,7 @@
 #: data/translations/english.cfg:141 data/translations/english.cfg:143
 #: data/translations/english.cfg:144 data/translations/english.cfg:145
 #: data/translations/english.cfg:146 data/translations/english.cfg:147
+#: src/reports.cpp:310
 #, fuzzy
 msgid "Village"
 msgstr "Wioska"
@@ -2613,7 +2643,7 @@
 #: data/units/Dwarvish_Steelclad.cfg:26 data/units/Dwarvish_Thunderer.cfg:21
 #: data/units/Dwarvish_Thunderguard.cfg:21
 #: data/units/Dwarvish_Ulfserker.cfg:28 data/units/Elvish_Archer.cfg:22
-#: data/units/Elvish_Archer.cfg:101 data/units/Elvish_Avenger.cfg:24
+#: data/units/Elvish_Archer.cfg:100 data/units/Elvish_Avenger.cfg:24
 #: data/units/Elvish_Avenger.cfg:97 data/units/Elvish_Captain.cfg:24
 #: data/units/Elvish_Champion.cfg:22 data/units/Elvish_Fighter.cfg:24
 #: data/units/Elvish_Hero.cfg:22 data/units/Elvish_High_Lord.cfg:21
@@ -2738,7 +2768,7 @@
 #: data/units/Dragoon.cfg:27 data/units/Drake_Clasher.cfg:19
 #: data/units/Drake_Fighter.cfg:20 data/units/Drake_Slasher.cfg:20
 #: data/units/Drake_Warrior.cfg:20 data/units/Elvish_Archer.cfg:21
-#: data/units/Elvish_Archer.cfg:100 data/units/Elvish_Avenger.cfg:23
+#: data/units/Elvish_Archer.cfg:99 data/units/Elvish_Avenger.cfg:23
 #: data/units/Elvish_Avenger.cfg:96 data/units/Elvish_Captain.cfg:23
 #: data/units/Elvish_Champion.cfg:21 data/units/Elvish_Fighter.cfg:23
 #: data/units/Elvish_Hero.cfg:21 data/units/Elvish_High_Lord.cfg:20
@@ -2822,7 +2852,7 @@
 
 #: data/units/Bone_Shooter.cfg:37 data/units/Bowman.cfg:37
 #: data/units/Commander.cfg:45 data/units/Elvish_Archer.cfg:38
-#: data/units/Elvish_Archer.cfg:117 data/units/Elvish_Avenger.cfg:39
+#: data/units/Elvish_Archer.cfg:116 data/units/Elvish_Avenger.cfg:39
 #: data/units/Elvish_Avenger.cfg:112 data/units/Elvish_Captain.cfg:39
 #: data/units/Elvish_Champion.cfg:40 data/units/Elvish_Fighter.cfg:40
 #: data/units/Elvish_Hero.cfg:40 data/units/Elvish_Marshal.cfg:40
@@ -2851,7 +2881,7 @@
 #: data/units/Dwarvish_Sentinel.cfg:41 data/units/Dwarvish_Stalwart.cfg:28
 #: data/units/Dwarvish_Stalwart.cfg:41 data/units/Dwarvish_Thunderer.cfg:41
 #: data/units/Dwarvish_Thunderguard.cfg:47 data/units/Elvish_Archer.cfg:39
-#: data/units/Elvish_Archer.cfg:118 data/units/Elvish_Avenger.cfg:40
+#: data/units/Elvish_Archer.cfg:117 data/units/Elvish_Avenger.cfg:40
 #: data/units/Elvish_Avenger.cfg:113 data/units/Elvish_Captain.cfg:40
 #: data/units/Elvish_Champion.cfg:41 data/units/Elvish_Druid.cfg:62
 #: data/units/Elvish_Fighter.cfg:41 data/units/Elvish_Hero.cfg:41
@@ -3604,11 +3634,11 @@
 msgid "Elder Wose"
 msgstr ""
 
-#: data/units/Elvish_Archer.cfg:3 data/units/Elvish_Archer.cfg:82
+#: data/units/Elvish_Archer.cfg:3 data/units/Elvish_Archer.cfg:81
 msgid "Elvish Archer"
 msgstr ""
 
-#: data/units/Elvish_Archer.cfg:18 data/units/Elvish_Archer.cfg:97
+#: data/units/Elvish_Archer.cfg:18 data/units/Elvish_Archer.cfg:96
 msgid ""
 "Elvish Archers are trained from youth in archery, and so skilled in long-"
 "range combat. Able to fire many arrows quickly and accurately, these Archers "
@@ -5912,11 +5942,11 @@
 msgid "#(Invalid)"
 msgstr ""
 
-#: src/dialogs.cpp:365 src/game.cpp:931
+#: src/dialogs.cpp:365 src/game.cpp:989
 msgid "Campaign"
 msgstr ""
 
-#: src/dialogs.cpp:367 src/game.cpp:978
+#: src/dialogs.cpp:367 src/game.cpp:1125
 msgid "Multiplayer"
 msgstr ""
 
@@ -5928,7 +5958,7 @@
 msgid "replay"
 msgstr ""
 
-#: src/dialogs.cpp:379 src/multiplayer_lobby.cpp:139 src/playturn.cpp:1382
+#: src/dialogs.cpp:379 src/multiplayer_lobby.cpp:139 src/playturn.cpp:1384
 msgid "Turn"
 msgstr ""
 
@@ -5936,7 +5966,7 @@
 msgid "Scenario Start"
 msgstr ""
 
-#: src/dialogs.cpp:384 src/game.cpp:954
+#: src/dialogs.cpp:384 src/game.cpp:1101
 msgid "Difficulty"
 msgstr ""
 
@@ -5976,7 +6006,7 @@
 msgid "Show replay"
 msgstr ""
 
-#: src/dialogs.cpp:512 src/hotkeys.cpp:133 src/multiplayer.cpp:82
+#: src/dialogs.cpp:512 src/hotkeys.cpp:133 src/multiplayer.cpp:85
 msgid "Load Game"
 msgstr ""
 
@@ -5989,33 +6019,33 @@
 msgstr ""
 
 #: src/dialogs.cpp:646 src/display.cpp:884 src/help.cpp:567
-#: src/playturn.cpp:1778
+#: src/playturn.cpp:1784
 msgid "level"
 msgstr ""
 
 #: src/dialogs.cpp:667 src/display.cpp:902 src/help.cpp:621
-#: src/playturn.cpp:1942 src/unit.cpp:1034
+#: src/playturn.cpp:1947 src/unit.cpp:1034
 msgid "HP"
 msgstr ""
 
 #: src/dialogs.cpp:671 src/dialogs.cpp:679 src/display.cpp:906
-#: src/display.cpp:914 src/playturn.cpp:1780 src/playturn.cpp:1943
+#: src/display.cpp:914 src/playturn.cpp:1786 src/playturn.cpp:1948
 #: src/unit.cpp:1093
 msgid "XP"
 msgstr ""
 
 #: src/dialogs.cpp:684 src/display.cpp:918 src/help.cpp:622
-#: src/playturn.cpp:1944 src/unit.cpp:1070
+#: src/playturn.cpp:1949 src/unit.cpp:1070
 msgid "Moves"
 msgstr ""
 
 #: src/dialogs.cpp:697 src/display.cpp:935 src/help.cpp:699
-#: src/playturn.cpp:602 src/reports.cpp:230
+#: src/playturn.cpp:599 src/reports.cpp:230
 msgid "melee"
 msgstr ""
 
 #: src/dialogs.cpp:698 src/display.cpp:936 src/help.cpp:699
-#: src/playturn.cpp:602 src/reports.cpp:231
+#: src/playturn.cpp:599 src/reports.cpp:231
 msgid "ranged"
 msgstr ""
 
@@ -6031,90 +6061,160 @@
 msgid "Vera.ttf"
 msgstr ""
 
-#: src/game.cpp:137
+#: src/game.cpp:138
 msgid "Do you want to save a replay of this scenario?"
 msgstr ""
 
-#: src/game.cpp:138 src/game.cpp:200 src/playturn.cpp:1391
+#: src/game.cpp:139 src/game.cpp:201 src/playturn.cpp:1393
 msgid "Name:"
 msgstr ""
 
-#: src/game.cpp:146 src/game.cpp:207 src/playturn.cpp:1408
+#: src/game.cpp:147 src/game.cpp:208 src/playturn.cpp:1410
 msgid "The game could not be saved"
 msgstr ""
 
-#: src/game.cpp:199
+#: src/game.cpp:200
 msgid "Do you want to save your game?"
 msgstr ""
 
-#: src/game.cpp:587
+#: src/game.cpp:648
 msgid "The Battle for Wesnoth"
 msgstr ""
 
-#: src/game.cpp:807 src/multiplayer_connect.cpp:104
+#: src/game.cpp:868 src/multiplayer_connect.cpp:106
 msgid ""
 "This save is from a different version of the game. Do you want to try to "
 "load it?"
 msgstr ""
 
-#: src/game.cpp:818 src/game.cpp:823 src/playlevel.cpp:533
-#: src/playlevel.cpp:747
+#: src/game.cpp:879 src/game.cpp:884 src/playlevel.cpp:549
+#: src/playlevel.cpp:789
 msgid "The file you have tried to load is corrupt"
 msgstr ""
 
-#: src/game.cpp:924
-msgid "There are no campaigns available"
+#: src/game.cpp:984
+msgid " ,Get More Campaigns..."
 msgstr ""
 
-#: src/game.cpp:932
+#: src/game.cpp:990
 msgid "Choose the campaign you want to play:"
 msgstr ""
 
-#: src/game.cpp:955
+#: src/game.cpp:1000
+msgid "Connect to Server"
+msgstr ""
+
+#: src/game.cpp:1001
+msgid "You will now connect to a campaign server to download campaigns."
+msgstr ""
+
+#: src/game.cpp:1002
+msgid "Server: "
+msgstr ""
+
+#: src/game.cpp:1014
+#, fuzzy
+msgid "Could not connect to host."
+msgstr "Nie mogę się podłączyć do hosta"
+
+#: src/game.cpp:1014 src/game.cpp:1029 src/game.cpp:1035 src/game.cpp:1046
+#: src/game.cpp:1065 src/game.cpp:1075 src/game.cpp:1078 src/game.cpp:1081
+#: src/playturn.cpp:1396 src/playturn.cpp:1410
+msgid "Error"
+msgstr ""
+
+#: src/game.cpp:1022
+msgid "Awaiting response from server"
+msgstr ""
+
+#: src/game.cpp:1035
+msgid "Error communicating with the server."
+msgstr ""
+
+#: src/game.cpp:1046
+msgid "There are no campaigns available for download from this server."
+msgstr ""
+
+#: src/game.cpp:1050
+msgid "Choose the campaign to download."
+msgstr ""
+
+#: src/game.cpp:1050
+msgid "Get Campaign"
+msgstr ""
+
+#: src/game.cpp:1059
+msgid "Downloading campaign..."
+msgstr ""
+
+#: src/game.cpp:1071
+msgid "Campaign Installed"
+msgstr ""
+
+#: src/game.cpp:1071
+msgid ""
+"The campaign has been installed. You will have to restart Wesnoth before you "
+"can play it."
+msgstr ""
+
+#: src/game.cpp:1075
+msgid "Network communication error."
+msgstr ""
+
+#: src/game.cpp:1078
+msgid "Remote host disconnected."
+msgstr ""
+
+#: src/game.cpp:1081
+msgid ""
+"There was a problem creating the files necessary to install this campaign."
+msgstr ""
+
+#: src/game.cpp:1102
 msgid "Select difficulty level:"
 msgstr ""
 
-#: src/game.cpp:973
+#: src/game.cpp:1120
 msgid "Join Official Server"
 msgstr ""
 
-#: src/game.cpp:973
+#: src/game.cpp:1120
 msgid "Log on to the official Wesnoth multiplayer server"
 msgstr ""
 
-#: src/game.cpp:974 src/multiplayer_lobby.cpp:157
+#: src/game.cpp:1121 src/multiplayer_lobby.cpp:157
 msgid "Join Game"
 msgstr ""
 
-#: src/game.cpp:974
+#: src/game.cpp:1121
 msgid "Join a server or hosted game"
 msgstr ""
 
-#: src/game.cpp:975
+#: src/game.cpp:1122
 msgid "Host Multiplayer Game"
 msgstr ""
 
-#: src/game.cpp:975
+#: src/game.cpp:1122
 msgid "Host a game without using a server"
 msgstr ""
 
-#: src/game.cpp:978 src/multiplayer_client.cpp:269
+#: src/game.cpp:1125 src/multiplayer_client.cpp:269
 msgid "Login"
 msgstr ""
 
-#: src/game.cpp:1058
+#: src/game.cpp:1205
 msgid "Language"
 msgstr ""
 
-#: src/game.cpp:1059
+#: src/game.cpp:1206
 msgid "Choose your preferred language"
 msgstr ""
 
-#: src/game.cpp:1144
+#: src/game.cpp:1291
 msgid "Could not initialize video. Exiting.\n"
 msgstr ""
 
-#: src/game.cpp:1146
+#: src/game.cpp:1293
 msgid "Could not initialize fonts. Exiting.\n"
 msgstr ""
 
@@ -6138,11 +6238,11 @@
 msgid "attacks"
 msgstr ""
 
-#: src/help.cpp:646 src/help.cpp:647 src/playturn.cpp:1941
+#: src/help.cpp:646 src/help.cpp:647 src/playturn.cpp:1946
 msgid "Name"
 msgstr ""
 
-#: src/help.cpp:650 src/help.cpp:651 src/playturn.cpp:1940
+#: src/help.cpp:650 src/help.cpp:651 src/playturn.cpp:1945
 msgid "Type"
 msgstr ""
 
@@ -6206,7 +6306,7 @@
 msgid "End Unit Turn"
 msgstr ""
 
-#: src/hotkeys.cpp:122 src/playturn.cpp:1524
+#: src/hotkeys.cpp:122 src/playturn.cpp:1525
 msgid "Leader"
 msgstr ""
 
@@ -6242,7 +6342,7 @@
 msgid "Unit Description"
 msgstr ""
 
-#: src/hotkeys.cpp:131 src/playturn.cpp:1349
+#: src/hotkeys.cpp:131 src/playturn.cpp:1351
 msgid "Rename Unit"
 msgstr ""
 
@@ -6294,11 +6394,11 @@
 msgid "Scenario Objectives"
 msgstr ""
 
-#: src/hotkeys.cpp:146 src/playturn.cpp:1993
+#: src/hotkeys.cpp:146 src/playturn.cpp:1998
 msgid "Unit List"
 msgstr ""
 
-#: src/hotkeys.cpp:147 src/playturn.cpp:2081
+#: src/hotkeys.cpp:147 src/playturn.cpp:2086
 msgid "Statistics"
 msgstr ""
 
@@ -6446,7 +6546,7 @@
 msgid "Map Generator"
 msgstr ""
 
-#: src/mapgen_dialog.cpp:77 src/multiplayer.cpp:481
+#: src/mapgen_dialog.cpp:77 src/multiplayer.cpp:484
 msgid "Players"
 msgstr ""
 
@@ -6466,7 +6566,7 @@
 msgid "Bump Size"
 msgstr ""
 
-#: src/mapgen_dialog.cpp:82 src/playturn.cpp:1525
+#: src/mapgen_dialog.cpp:82 src/playturn.cpp:1526
 msgid "Villages"
 msgstr ""
 
@@ -6494,119 +6594,119 @@
 msgid "Island"
 msgstr ""
 
-#: src/multiplayer.cpp:94
+#: src/multiplayer.cpp:97
 msgid "The maximum turns the game will go for"
 msgstr ""
 
-#: src/multiplayer.cpp:100
+#: src/multiplayer.cpp:103
 msgid "The amount of income each village yields per turn"
 msgstr ""
 
-#: src/multiplayer.cpp:106
+#: src/multiplayer.cpp:109
 msgid "The amount of experience a unit needs to advance"
 msgstr ""
 
-#: src/multiplayer.cpp:108
+#: src/multiplayer.cpp:111
 msgid "Fog Of War"
 msgstr ""
 
-#: src/multiplayer.cpp:110
+#: src/multiplayer.cpp:113
 msgid "Enemy units cannot be seen unless they are in range of your units"
 msgstr ""
 
-#: src/multiplayer.cpp:112 src/multiplayer_lobby.cpp:127
+#: src/multiplayer.cpp:115 src/multiplayer_lobby.cpp:127
 msgid "Shroud"
 msgstr ""
 
-#: src/multiplayer.cpp:114
+#: src/multiplayer.cpp:117
 msgid "The map is unknown until your units explore it"
 msgstr ""
 
-#: src/multiplayer.cpp:116 src/reports.cpp:375
+#: src/multiplayer.cpp:119 src/reports.cpp:376
 msgid "Observers"
 msgstr ""
 
-#: src/multiplayer.cpp:118
+#: src/multiplayer.cpp:121
 msgid "Allow users who are not playing to watch the game"
 msgstr ""
 
-#: src/multiplayer.cpp:120 src/multiplayer_client.cpp:119
+#: src/multiplayer.cpp:123 src/multiplayer_client.cpp:119
 #: src/multiplayer_connect.cpp:50 src/show_dialog.cpp:456
 #: src/show_dialog.cpp:462
 msgid "Cancel"
 msgstr ""
 
-#: src/multiplayer.cpp:121 src/show_dialog.cpp:442 src/show_dialog.cpp:455
+#: src/multiplayer.cpp:124 src/show_dialog.cpp:442 src/show_dialog.cpp:455
 msgid "Ok"
 msgstr ""
 
-#: src/multiplayer.cpp:123
+#: src/multiplayer.cpp:126
 msgid "Regenerate"
 msgstr ""
 
-#: src/multiplayer.cpp:125
+#: src/multiplayer.cpp:128
 msgid "Settings..."
 msgstr ""
 
-#: src/multiplayer.cpp:129
+#: src/multiplayer.cpp:132
 msgid "Share View"
 msgstr ""
 
-#: src/multiplayer.cpp:130
+#: src/multiplayer.cpp:133
 msgid "Share Maps"
 msgstr ""
 
-#: src/multiplayer.cpp:131
+#: src/multiplayer.cpp:134
 msgid "Share None"
 msgstr ""
 
-#: src/multiplayer.cpp:142 src/multiplayer_connect.cpp:177
+#: src/multiplayer.cpp:145 src/multiplayer_connect.cpp:181
 msgid "No multiplayer sides."
 msgstr ""
 
-#: src/multiplayer.cpp:170 src/multiplayer_lobby.cpp:158
+#: src/multiplayer.cpp:173 src/multiplayer_lobby.cpp:158
 msgid "Create Game"
 msgstr ""
 
-#: src/multiplayer.cpp:174
+#: src/multiplayer.cpp:177
 msgid "Name of game"
 msgstr ""
 
-#: src/multiplayer.cpp:178
+#: src/multiplayer.cpp:181
 msgid "$login's game"
 msgstr ""
 
-#: src/multiplayer.cpp:189
+#: src/multiplayer.cpp:192
 msgid "Map to play"
 msgstr ""
 
-#: src/multiplayer.cpp:286
+#: src/multiplayer.cpp:289
 msgid "Era"
 msgstr ""
 
-#: src/multiplayer.cpp:348
+#: src/multiplayer.cpp:351
 msgid "Unlimited"
 msgstr ""
 
-#: src/multiplayer.cpp:352
+#: src/multiplayer.cpp:355
 msgid "Turns"
 msgstr ""
 
-#: src/multiplayer.cpp:360
+#: src/multiplayer.cpp:363
 msgid "Village Gold"
 msgstr ""
 
-#: src/multiplayer.cpp:372
+#: src/multiplayer.cpp:375
 msgid "Experience Requirements"
 msgstr ""
 
-#: src/multiplayer.cpp:497
+#: src/multiplayer.cpp:500
 msgid ""
 "The game was unable to bind to the port needed to host games over the "
 "network. Network players will be unable to connect to this game"
 msgstr ""
 
-#: src/multiplayer.cpp:497
+#: src/multiplayer.cpp:500
 msgid "Warning"
 msgstr ""
 
@@ -6618,9 +6718,9 @@
 msgid "Receiving game list..."
 msgstr ""
 
-#: src/multiplayer_client.cpp:95 src/multiplayer_connect.cpp:378
-#: src/multiplayer_connect.cpp:380 src/playlevel.cpp:732 src/playturn.cpp:1524
-#: src/playturn.cpp:1529 src/playturn.cpp:1616
+#: src/multiplayer_client.cpp:95 src/multiplayer_connect.cpp:381
+#: src/multiplayer_connect.cpp:383 src/playlevel.cpp:769 src/playturn.cpp:1525
+#: src/playturn.cpp:1530 src/playturn.cpp:1616
 msgid "Gold"
 msgstr ""
 
@@ -6672,91 +6772,91 @@
 msgid "I'm Ready"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:97
+#: src/multiplayer_connect.cpp:99
 msgid "This is not a multiplayer save"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:237
+#: src/multiplayer_connect.cpp:241
 msgid ""
 "Victory\n"
 "@Defeat enemy leader(s)"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:257
+#: src/multiplayer_connect.cpp:261
 msgid "Network Player"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:258
+#: src/multiplayer_connect.cpp:262
 msgid "Local Player"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:259 src/multiplayer_connect.cpp:467
-#: src/multiplayer_connect.cpp:581 src/multiplayer_connect.cpp:675
+#: src/multiplayer_connect.cpp:263 src/multiplayer_connect.cpp:470
+#: src/multiplayer_connect.cpp:584 src/multiplayer_connect.cpp:678
 msgid "Computer Player"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:260
+#: src/multiplayer_connect.cpp:264
 msgid "Empty"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:288 src/multiplayer_connect.cpp:368
-#: src/multiplayer_connect.cpp:371
+#: src/multiplayer_connect.cpp:291 src/multiplayer_connect.cpp:371
+#: src/multiplayer_connect.cpp:374
 msgid "Team"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:296
+#: src/multiplayer_connect.cpp:299
 msgid "Red"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:298
+#: src/multiplayer_connect.cpp:301
 msgid "Blue"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:300
+#: src/multiplayer_connect.cpp:303
 msgid "Green"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:302
+#: src/multiplayer_connect.cpp:305
 msgid "Yellow"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:304
+#: src/multiplayer_connect.cpp:307
 msgid "Purple"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:306
+#: src/multiplayer_connect.cpp:309
 msgid "Orange"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:308
+#: src/multiplayer_connect.cpp:311
 msgid "Grey"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:310
+#: src/multiplayer_connect.cpp:313
 msgid "White"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:312
+#: src/multiplayer_connect.cpp:315
 msgid "Brown"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:357
+#: src/multiplayer_connect.cpp:360
 msgid "Game Lobby"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:360 src/multiplayer_connect.cpp:362
+#: src/multiplayer_connect.cpp:363 src/multiplayer_connect.cpp:365
 msgid "Player/Type"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:363 src/multiplayer_connect.cpp:366
+#: src/multiplayer_connect.cpp:366 src/multiplayer_connect.cpp:369
 msgid "Faction"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:373 src/multiplayer_connect.cpp:376
+#: src/multiplayer_connect.cpp:376 src/multiplayer_connect.cpp:379
 msgid "Color"
 msgstr ""
 
-#: src/multiplayer_connect.cpp:530 src/multiplayer_connect.cpp:534
+#: src/multiplayer_connect.cpp:533 src/multiplayer_connect.cpp:537
 msgid "Waiting for network players to join"
 msgstr ""
 
@@ -6780,60 +6880,60 @@
 msgid "Quit"
 msgstr ""
 
-#: src/playlevel.cpp:672
+#: src/playlevel.cpp:688
 msgid "Game Over"
 msgstr ""
 
-#: src/playlevel.cpp:673
+#: src/playlevel.cpp:689
 msgid "The game is over."
 msgstr ""
 
-#: src/playlevel.cpp:686
+#: src/playlevel.cpp:702
 msgid "Defeat"
 msgstr ""
 
-#: src/playlevel.cpp:687
+#: src/playlevel.cpp:703
 msgid "You have been defeated!"
 msgstr ""
 
-#: src/playlevel.cpp:719
-msgid "Victory"
-msgstr ""
-
-#: src/playlevel.cpp:720
-msgid "You have emerged victorious!"
-msgstr ""
-
-#: src/playlevel.cpp:722
+#: src/playlevel.cpp:759
 msgid "Remaining gold"
 msgstr ""
 
-#: src/playlevel.cpp:725
+#: src/playlevel.cpp:762
 msgid "Early finish bonus"
 msgstr ""
 
-#: src/playlevel.cpp:727
+#: src/playlevel.cpp:764
 msgid "per turn"
 msgstr ""
 
-#: src/playlevel.cpp:728
+#: src/playlevel.cpp:765
 msgid "Turns finished early"
 msgstr ""
 
-#: src/playlevel.cpp:730
+#: src/playlevel.cpp:767
 msgid "Bonus"
 msgstr ""
 
-#: src/playlevel.cpp:737
+#: src/playlevel.cpp:774
 #, no-c-format
 msgid "80% of gold is retained for the next scenario"
 msgstr ""
 
-#: src/playlevel.cpp:738
+#: src/playlevel.cpp:774
 msgid "Retained Gold"
 msgstr ""
 
-#: src/playlevel.cpp:762
+#: src/playlevel.cpp:778
+msgid "Victory"
+msgstr ""
+
+#: src/playlevel.cpp:779
+msgid "You have emerged victorious!"
+msgstr ""
+
+#: src/playlevel.cpp:804
 msgid ""
 "A network disconnection has occured, and the game cannot continue. Do you "
 "want to save the game?"
@@ -6843,78 +6943,74 @@
 msgid "It is now your turn"
 msgstr ""
 
-#: src/playturn.cpp:490
+#: src/playturn.cpp:488
 msgid "Attacker"
 msgstr ""
 
-#: src/playturn.cpp:492
+#: src/playturn.cpp:490
 msgid "Defender"
 msgstr ""
 
-#: src/playturn.cpp:516 src/playturn.cpp:636
+#: src/playturn.cpp:514 src/playturn.cpp:633
 msgid "Damage Calculations"
 msgstr ""
 
-#: src/playturn.cpp:602
+#: src/playturn.cpp:599
 msgid "Melee"
 msgstr ""
 
-#: src/playturn.cpp:615 src/reports.cpp:210
+#: src/playturn.cpp:612 src/reports.cpp:210
 msgid "vs"
 msgstr ""
 
-#: src/playturn.cpp:648
+#: src/playturn.cpp:645
 msgid "Attack Enemy"
 msgstr ""
 
-#: src/playturn.cpp:649
+#: src/playturn.cpp:646
 msgid "Choose weapon"
 msgstr ""
 
-#: src/playturn.cpp:1136
+#: src/playturn.cpp:1127
 msgid ""
 "You have not started your turn yet.  Do you really want to end your turn?"
 msgstr ""
 
-#: src/playturn.cpp:1145 src/playturn.cpp:1150
+#: src/playturn.cpp:1136 src/playturn.cpp:1141
 msgid "Some units have movement left. Do you really want to end your turn?"
 msgstr ""
 
-#: src/playturn.cpp:1166
+#: src/playturn.cpp:1157
 msgid "Auto-Save"
 msgstr ""
 
-#: src/playturn.cpp:1168
+#: src/playturn.cpp:1159
 msgid "Could not auto save the game. Please save the game manually."
 msgstr ""
 
-#: src/playturn.cpp:1394 src/playturn.cpp:1408
-msgid "Error"
-msgstr ""
-
-#: src/playturn.cpp:1394
+#: src/playturn.cpp:1396
 msgid ""
 "Save names may not contain colons, slashes, or backslashes. Please choose a "
 "different name."
 msgstr ""
 
-#: src/playturn.cpp:1405
+#: src/playturn.cpp:1407
 msgid "Saved"
 msgstr ""
 
-#: src/playturn.cpp:1405
+#: src/playturn.cpp:1407
 msgid "The game has been saved"
 msgstr ""
 
-#: src/playturn.cpp:1525
+#: src/playturn.cpp:1526
 msgid "Units"
 msgstr ""
 
-#: src/playturn.cpp:1526
+#: src/playturn.cpp:1527
 msgid "Income"
 msgstr ""
 
-#: src/playturn.cpp:1526
+#: src/playturn.cpp:1527
 msgid "Upkeep"
 msgstr ""
 
@@ -6950,127 +7046,123 @@
 msgid "him"
 msgstr ""
 
-#: src/playturn.cpp:1762
+#: src/playturn.cpp:1768
 msgid "You are seperated from your soldiers and may not recall them"
 msgstr ""
 
-#: src/playturn.cpp:1764
+#: src/playturn.cpp:1770
 msgid ""
 "There are no troops available to recall\n"
 "(You must have veteran survivors from a previous scenario)"
 msgstr ""
 
-#: src/playturn.cpp:1768
-msgid "You must have at least"
-msgstr ""
-
-#: src/playturn.cpp:1770
-msgid "gold pieces to recall a unit"
+#: src/playturn.cpp:1776
+msgid "You must have at least $cost gold pieces to recall a unit"
 msgstr ""
 
-#: src/playturn.cpp:1793
+#: src/playturn.cpp:1799
 msgid "Dismiss Unit"
 msgstr ""
 
-#: src/playturn.cpp:1806
+#: src/playturn.cpp:1812
 msgid "Select unit"
 msgstr ""
 
-#: src/playturn.cpp:1850
+#: src/playturn.cpp:1856
 msgid "Message"
 msgstr ""
 
-#: src/playturn.cpp:1850
+#: src/playturn.cpp:1856
 msgid "Send to allies only"
 msgstr ""
 
-#: src/playturn.cpp:1945
+#: src/playturn.cpp:1950
 msgid "Location"
 msgstr ""
 
-#: src/playturn.cpp:2027 src/playturn.cpp:2087
+#: src/playturn.cpp:2032 src/playturn.cpp:2092
 msgid "Recruits"
 msgstr ""
 
-#: src/playturn.cpp:2033 src/playturn.cpp:2091
+#: src/playturn.cpp:2038 src/playturn.cpp:2096
 msgid "Recalls"
 msgstr ""
 
-#: src/playturn.cpp:2039 src/playturn.cpp:2095
+#: src/playturn.cpp:2044 src/playturn.cpp:2100
 msgid "Advancements"
 msgstr ""
 
-#: src/playturn.cpp:2045 src/playturn.cpp:2099
+#: src/playturn.cpp:2050 src/playturn.cpp:2104
 msgid "Losses"
 msgstr ""
 
-#: src/playturn.cpp:2051 src/playturn.cpp:2103
+#: src/playturn.cpp:2056 src/playturn.cpp:2108
 msgid "Kills"
 msgstr ""
 
-#: src/playturn.cpp:2057
+#: src/playturn.cpp:2062
 msgid "Damage Inflicted"
 msgstr ""
 
-#: src/playturn.cpp:2063
+#: src/playturn.cpp:2068
 msgid "Damage Taken"
 msgstr ""
 
-#: src/playturn.cpp:2069
+#: src/playturn.cpp:2074
 msgid "Damage Inflicted (EV)"
 msgstr ""
 
-#: src/playturn.cpp:2076
+#: src/playturn.cpp:2081
 msgid "Damage Taken (EV)"
 msgstr ""
 
-#: src/playturn.cpp:2118
+#: src/playturn.cpp:2123
 msgid "Search"
 msgstr ""
 
-#: src/playturn.cpp:2128
+#: src/playturn.cpp:2133
 msgid "prompt^Command:"
 msgstr ""
 
-#: src/playturn.cpp:2139
+#: src/playturn.cpp:2144
 msgid "Chat Log"
 msgstr ""
 
-#: src/playturn.cpp:2204
+#: src/playturn.cpp:2209
 msgid "Couldn't find label or unit containing the string '$search'."
 msgstr ""
 
-#: src/playturn.cpp:2278
+#: src/playturn.cpp:2283
 msgid "Place Label"
 msgstr ""
 
-#: src/playturn.cpp:2279
+#: src/playturn.cpp:2284
 msgid "Label"
 msgstr ""
 
-#: src/playturn.cpp:2402
+#: src/playturn.cpp:2407
 msgid ""
 "The games are out of sync and will have to exit. Do you want to save an "
 "error log of your game?"
 msgstr ""
 
-#: src/playturn.cpp:2454
+#: src/playturn.cpp:2459
 msgid "Replace with AI"
 msgstr ""
 
-#: src/playturn.cpp:2455
+#: src/playturn.cpp:2460
 msgid "Replace with local player"
 msgstr ""
 
-#: src/playturn.cpp:2456
+#: src/playturn.cpp:2461
 msgid "Abort game"
 msgstr ""
 
-#: src/playturn.cpp:2459
+#: src/playturn.cpp:2464
 msgid "Replace with "
 msgstr ""
 
-#: src/playturn.cpp:2463
+#: src/playturn.cpp:2468
 msgid "has left the game. What do you want to do?"
 msgstr ""
 
@@ -7122,17 +7214,20 @@
 msgid "Chaotic units"
 msgstr ""
 
-#: src/reports.cpp:311
-msgid "Owned"
-msgstr ""
+#: src/reports.cpp:312
+#, fuzzy
+msgid "Owned village"
+msgstr "Wioska"
 
-#: src/reports.cpp:313
-msgid "Enemy"
-msgstr ""
+#: src/reports.cpp:314
+#, fuzzy
+msgid "Enemy village"
+msgstr "Wioska"
 
-#: src/reports.cpp:315
-msgid "Allied"
-msgstr ""
+#: src/reports.cpp:316
+#, fuzzy
+msgid "Allied village"
+msgstr "Goblin Pillager"
 
 #: src/show_dialog.cpp:930
 msgid "KB"
Index: wesnoth/src/Makefile.in
diff -u wesnoth/src/Makefile.in:1.76 wesnoth/src/Makefile.in:1.77
--- wesnoth/src/Makefile.in:1.76        Mon Sep 13 10:47:43 2004
+++ wesnoth/src/Makefile.in     Sat Sep 18 21:42:13 2004
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# Makefile.in generated by automake 1.8.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -1157,16 +1157,14 @@
                $(TAGS_FILES) $(LISP)
        tags=; \
        here=`pwd`; \
-       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+       if (etags --etags-include --version) >/dev/null 2>&1; then \
          include_option=--etags-include; \
-         empty_fix=.; \
        else \
          include_option=--include; \
-         empty_fix=; \
        fi; \
        list='$(SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
-           test ! -f $$subdir/TAGS || \
+           test -f $$subdir/TAGS && \
              tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
          fi; \
        done; \
@@ -1176,11 +1174,9 @@
          done | \
          $(AWK) '    { files[$$0] = 1; } \
               END { for (i in files) print i; }'`; \
-       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
-         test -n "$$unique" || unique=$$empty_fix; \
-         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-           $$tags $$unique; \
-       fi
+       test -z "$(ETAGS_ARGS)$$tags$$unique" \
+         || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+            $$tags $$unique
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
Index: wesnoth/src/campaign_server/Makefile.in
diff -u wesnoth/src/campaign_server/Makefile.in:1.1 
wesnoth/src/campaign_server/Makefile.in:1.2
--- wesnoth/src/campaign_server/Makefile.in:1.1 Tue Sep 14 20:28:22 2004
+++ wesnoth/src/campaign_server/Makefile.in     Sat Sep 18 21:42:14 2004
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# Makefile.in generated by automake 1.8.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -534,11 +534,9 @@
          done | \
          $(AWK) '    { files[$$0] = 1; } \
               END { for (i in files) print i; }'`; \
-       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
-         test -n "$$unique" || unique=$$empty_fix; \
-         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-           $$tags $$unique; \
-       fi
+       test -z "$(ETAGS_ARGS)$$tags$$unique" \
+         || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+            $$tags $$unique
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
Index: wesnoth/src/filesystem.cpp
diff -u wesnoth/src/filesystem.cpp:1.44 wesnoth/src/filesystem.cpp:1.45
--- wesnoth/src/filesystem.cpp:1.44     Sun Sep 12 21:55:19 2004
+++ wesnoth/src/filesystem.cpp  Sat Sep 18 21:42:13 2004
@@ -1,4 +1,4 @@
-/* $Id: filesystem.cpp,v 1.44 2004/09/12 21:55:19 Sirp Exp $ */
+/* $Id: filesystem.cpp,v 1.45 2004/09/18 21:42:13 Sirp Exp $ */
 /*
    Copyright (C) 2003 by David White <address@hidden>
    Part of the Battle for Wesnoth Project http://wesnoth.whitevine.net
@@ -531,9 +531,22 @@
 
 }
 
+binary_paths_manager::binary_paths_manager()
+{}
+
 binary_paths_manager::binary_paths_manager(const config& cfg)
 {
-       binary_paths_cache.clear();
+       set_paths(cfg);
+}
+
+binary_paths_manager::~binary_paths_manager()
+{
+       cleanup();
+}
+
+void binary_paths_manager::set_paths(const config& cfg)
+{
+       cleanup();
        init_binary_paths();
 
        const config::child_list& items = cfg.get_children("binary_path");
@@ -546,7 +559,7 @@
        }
 }
 
-binary_paths_manager::~binary_paths_manager()
+void binary_paths_manager::cleanup()
 {
        binary_paths_cache.clear();
 
Index: wesnoth/src/filesystem.hpp
diff -u wesnoth/src/filesystem.hpp:1.28 wesnoth/src/filesystem.hpp:1.29
--- wesnoth/src/filesystem.hpp:1.28     Sun Sep 12 21:55:19 2004
+++ wesnoth/src/filesystem.hpp  Sat Sep 18 21:42:13 2004
@@ -1,4 +1,4 @@
-/* $Id: filesystem.hpp,v 1.28 2004/09/12 21:55:19 Sirp Exp $ */
+/* $Id: filesystem.hpp,v 1.29 2004/09/18 21:42:13 Sirp Exp $ */
 /*
    Copyright (C) 2003 by David White <address@hidden>
    Part of the Battle for Wesnoth Project http://wesnoth.whitevine.net
@@ -95,10 +95,18 @@
 ///Binaries will be searched for in [wesnoth-path]/data/<path>/images/
 struct binary_paths_manager
 {
+       binary_paths_manager();
        binary_paths_manager(const class config& cfg);
        ~binary_paths_manager();
 
+       void set_paths(const class config& cfg);
+
 private:
+       binary_paths_manager(const binary_paths_manager& o);
+       binary_paths_manager& operator=(const binary_paths_manager& o);
+
+       void cleanup();
+
        std::vector<std::string> paths_;
 };
 
Index: wesnoth/src/game.cpp
diff -u wesnoth/src/game.cpp:1.130 wesnoth/src/game.cpp:1.131
--- wesnoth/src/game.cpp:1.130  Sat Sep 18 20:09:22 2004
+++ wesnoth/src/game.cpp        Sat Sep 18 21:42:13 2004
@@ -1,4 +1,4 @@
-/* $Id: game.cpp,v 1.130 2004/09/18 20:09:22 silene Exp $ */
+/* $Id: game.cpp,v 1.131 2004/09/18 21:42:13 Sirp Exp $ */
 /*
    Copyright (C) 2003 by David White <address@hidden>
    Part of the Battle for Wesnoth Project http://wesnoth.whitevine.net
@@ -312,170 +312,81 @@
               lexical_cast_default<int>((*b)["rank"],1000);
 }
 
-}
-
-int play_game(int argc, char** argv)
+class game_controller
 {
-       const int start_ticks = SDL_GetTicks();
-
-       bool use_sound = true;
-
-       //parse arguments that shouldn't require a display device
-       int arg;
-       for(arg = 1; arg != argc; ++arg) {
-               const std::string val(argv[arg]);
-               if(val.empty()) {
-                       continue;
-               }
-
-               if(val == "--help" || val == "-h") {
-                       std::cout << "usage: " << argv[0]
-                   << " [options] [data-directory]\n"
-                       << "  -d, --debug       Shows debugging information 
in-game\n"
-                       << "  -f, --fullscreen  Runs the game in full-screen\n"
-                       << "  -h, --help        Prints this message and exits\n"
-                       << "  --path            Prints the name of the game 
data directory and exits\n"
-                       << "  -t, --test        Runs the game in a small 
example scenario\n"
-                       << "  -w, --windowed    Runs the game in windowed 
mode\n"
-                       << "  -v, --version     Prints the game's version 
number and exits\n"
-                       << "  --log-error=\"domain1,domain2,...\", 
--log-warning=..., --log-info=...\n"
-                       << "                    Set the severity level of the 
debug domains\n"
-                       << "                    \"all\" can be used to match 
any debug domain\n"
-                       << "  --nocache         Disables caching of game 
data\n";
-                       return 0;
-               } else if(val == "--version" || val == "-v") {
-                       std::cout << "Battle for Wesnoth " << 
game_config::version
-                                 << "\n";
-                       return 0;
-               } else if(val == "--path") {
-                       std::cout <<  game_config::path
-                                 << "\n";
-                       return 0;
-               } else if(val == "--nosound") {
-                       use_sound = false;
-               } else if (val.substr(0, 6) == "--log-") {
-                       size_t p = val.find('=');
-                       if (p == std::string::npos) {
-                               std::cerr << "unknown option: " << val << '\n';
-                               return 0;
-                       }
-                       std::string s = val.substr(6, p - 6);
-                       int severity;
-                       if (s == "error") severity = 0;
-                       else if (s == "warning") severity = 1;
-                       else if (s == "info") severity = 2;
-                       else {
-                               std::cerr << "unknown debug level: " << s << 
'\n';
-                               return 0;
-                       }
-                       while (p != std::string::npos) {
-                               size_t q = val.find(',', p + 1);
-                               s = val.substr(p + 1, q == std::string::npos ? 
q : q - (p + 1));
-                               if (!lg::set_log_domain_severity(s, severity)) {
-                                       std::cerr << "unknown debug domain: " 
<< s << '\n';
-                                       return 0;
-                               }
-                               p = q;
-                       }
-               } else if(val == "--publish-campaign") {
-                       if(arg+3 != argc && arg+4 != argc && arg+5 != argc) {
-                               std::cerr << "usage: --publish-campaign 
<campaign> <passphrase> [<server> [<port>]]\n";
-                               return 0;
-                       }
-
-                       const std::string& campaign = argv[++arg];
-                       const std::string& passphrase = argv[++arg];
-                       std::string host = "campaigns.wesnoth.org", port = 
"15002";
-                       if(++arg != argc) {
-                               host = argv[arg];
-                               if(++arg != argc) {
-                                       port = argv[arg];
-                               }
-                       }
-
-                       const std::vector<std::string>& campaigns = 
available_campaigns();
-                       
if(std::find(campaigns.begin(),campaigns.end(),campaign) == campaigns.end()) {
-                               std::cerr << "Campaign not found. Available 
campaigns are:\n";
-                               
std::copy(campaigns.begin(),campaigns.end(),std::ostream_iterator<std::string>(std::cerr,"\n"));
-                               return 0;
-                       }
+public:
+       game_controller(int argc, char** argv, bool use_sound);
 
-                       if(campaign_name_legal(campaign) == false) {
-                               std::cerr << "Not a legal campaign name.\n";
-                       }
+       display& disp();
 
-                       config cfg;
-                       archive_campaign(campaign,cfg);
+       bool init_video();
+       bool init_config();
+       bool init_language();
+       bool play_test();
+       bool play_multiplayer_mode();
 
-                       std::cerr << "connecting to server...\n";
-                       
-                       const network::manager net_manager;
-                       network::connection sock = 
network::connect(host,lexical_cast_default<int>(port,15002));
-                       if(!sock) {
-                               std::cerr << "Could not connect to server\n";
-                               return 0;
-                       }
+       bool is_loading() const;
+       bool load_game();
+       void set_tutorial();
 
-                       std::cerr << "connected to server. Building 
campaign...\n";
+       bool new_campaign();
+       bool play_multiplayer();
+       bool change_language();
 
-                       config data;
-                       config& upload = data.add_child("upload");
-                       upload["name"] = campaign;
-                       upload["passphrase"] = passphrase;
-                       upload.add_child("data",cfg);
-
-                       std::cerr << "uploading campaign...\n";
-                       network::send_data(data,sock);
-                       
-                       sock = network::receive_data(data,sock,60000);
-                       if(!sock) {
-                               std::cerr << "Connection timed out\n";
-                       } else if(data.child("error")) {
-                               std::cerr << "Server responded with an error: 
'" << (*data.child("error"))["message"] << "'\n";
-                       } else if(data.child("message")) {
-                               std::cerr << 
(*data.child("message"))["message"] << "\n";
-                       }
-
-                       return 0;
-               }
-       }
+       void play_game();
 
+private:
+       game_controller(const game_controller&);
+       void operator=(const game_controller&);
 
-       srand(time(NULL));
+       const int argc_;
+       int arg_;
+       const char* const * const argv_;
 
-       std::cerr << "starting play_game\n";
+       CVideo video_;
 
-       CVideo video;
+       const font::manager font_manager_;
+       const sound::manager sound_manager_;
+       const preferences::manager prefs_manager_;
+       const image::manager image_manager_;
+       const events::event_context main_event_context_;
+       binary_paths_manager paths_manager_;
 
-       std::cerr << "initialized video...\n";
-       const font::manager font_manager;
+       bool test_mode_, multiplayer_mode_, no_gui_;
+       bool use_caching_;
+       int force_bpp_;
 
-       const sound::manager sound_manager(use_sound);
-       const preferences::manager prefs_manager;
-       const image::manager image_manager;
-       const events::event_context main_event_context;
+       config game_config_;
+       game_data units_data_;
 
-       std::cerr << "initialized managers\n";
-       std::cerr << (SDL_GetTicks() - start_ticks) << "\n";
+       util::scoped_ptr<display> disp_;
 
-       bool test_mode = false, multiplayer_mode = false, no_gui = false;
+       game_state state_;
 
-       bool use_caching = true;
+       std::string loaded_game_;
+       bool loaded_game_show_replay_;
 
-       int force_bpp = -1;
+       preproc_map defines_map_;
+};
 
-       for(arg = 1; arg != argc; ++arg) {
-               const std::string val(argv[arg]);
+game_controller::game_controller(int argc, char** argv, bool use_sound)
+   : argc_(argc), argv_(argv), arg_(1),
+     sound_manager_(use_sound), test_mode_(false), multiplayer_mode_(false),
+     no_gui_(false), use_caching_(true), force_bpp_(-1), disp_(NULL),
+     loaded_game_show_replay_(false)
+{
+       for(arg_ = 1; arg_ != argc_; ++arg_) {
+               const std::string val(argv_[arg_]);
                if(val.empty()) {
                        continue;
                }
 
                if(val == "--nocache") {
-                       use_caching = false;
+                       use_caching_ = false;
                } else if(val == "--resolution" || val == "-r") {
-                       if(arg+1 != argc) {
-                               ++arg;
-                               const std::string val(argv[arg]);
+                       if(arg_+1 != argc_) {
+                               ++arg_;
+                               const std::string val(argv_[arg_]);
                                const std::vector<std::string> res = 
config::split(val,'x');
                                if(res.size() == 2) {
                                        const int xres = 
lexical_cast_default<int>(res.front());
@@ -487,27 +398,27 @@
                                }
                        }
                } else if(val == "--bpp") {
-                       if(arg+1 != argc) {
-                               ++arg;
-                               force_bpp = 
lexical_cast_default<int>(argv[arg],-1);
+                       if(arg_+1 != argc_) {
+                               ++arg_;
+                               force_bpp_ = 
lexical_cast_default<int>(argv_[arg_],-1);
                        }
                } else if(val == "--nogui") {
-                       no_gui = true;
+                       no_gui_ = true;
                } else if(val == "--windowed" || val == "-w") {
                        preferences::set_fullscreen(false);
                } else if(val == "--fullscreen" || val == "-f") {
                        preferences::set_fullscreen(true);
                } else if(val == "--multiplayer") {
-                       multiplayer_mode = true;
+                       multiplayer_mode_ = true;
                        break; //parse the rest of the arguments when we set up 
the game
                } else if(val == "--test" || val == "-t") {
-                       test_mode = true;
+                       test_mode_ = true;
                } else if(val == "--debug" || val == "-d") {
                        game_config::debug = true;
                } else if (val.substr(0, 6) == "--log-") {
                } else if(val[0] == '-') {
                        std::cerr << "unknown option: " << val << "\n";
-                       return 0;
+                       throw config::error("unknown option");
                } else {
 
                        if(val[0] == '/') {
@@ -518,146 +429,144 @@
 
                        if(!is_directory(game_config::path)) {
                                std::cerr << "Could not find directory '" << 
game_config::path << "'\n";
-                               return 0;
+                               throw config::error("directory not found");
                        }
 
                }
        }
+}
 
-       std::cerr << "parsed arguments\n";
-       std::cerr << (SDL_GetTicks() - start_ticks) << "\n";
+display& game_controller::disp()
+{
+       if(disp_.get() == NULL) {
+               display::unit_map u_map;
+               config dummy_cfg("");
+               disp_.assign(new 
display(u_map,video_,gamemap(dummy_cfg,"1"),gamestatus(dummy_cfg,0), 
std::vector<team>(),dummy_cfg,dummy_cfg,dummy_cfg));
+       }
 
-       if(no_gui && !multiplayer_mode) {
-               std::cerr << "--nogui flag is only valid with --multiplayer 
flag\n";
-               return 0;
+       return *disp_.get();
+}
+
+bool game_controller::init_video()
+{
+       if(no_gui_) {
+               if(!multiplayer_mode_) {
+                       std::cerr << "--nogui flag is only valid with 
--multiplayer flag\n";
+                       return false;
+               }
+               video_.make_fake();
+               return true;
        }
 
-       if(!no_gui) {
-        image::set_wm_icon();
+    image::set_wm_icon();
 
-               int video_flags = preferences::fullscreen() ? FULL_SCREEN : 0;
+       int video_flags = preferences::fullscreen() ? FULL_SCREEN : 0;
 
-               std::pair<int,int> resolution = preferences::resolution();
+       std::pair<int,int> resolution = preferences::resolution();
+
+       std::cerr << "checking mode possible...\n";
+       int bpp = 
video_.modePossible(resolution.first,resolution.second,16,video_flags);
+
+       std::cerr << bpp << "\n";
+
+       if(bpp == 0) {
+               //Video mode not supported, maybe from bad prefs.
+               std::cerr << "The video mode, " << resolution.first
+                         << "x" << resolution.second << "x16 "
+                         << "is not supported\nAttempting 1024x768x16...\n";
+               
+               //Attempt 1024x768.
+               resolution.first = 1024;
+               resolution.second = 768;
+
+               bpp = 
video_.modePossible(resolution.first,resolution.second,16,video_flags);
 
-               std::cerr << "checking mode possible...\n";
-               int bpp = 
video.modePossible(resolution.first,resolution.second,16,video_flags);
-       
-               std::cerr << bpp << "\n";
-       
                if(bpp == 0) {
-                       //Video mode not supported, maybe from bad prefs.
-                       std::cerr << "The video mode, " << resolution.first
-                                 << "x" << resolution.second << "x16 "
-                                 << "is not supported\nAttempting 
1024x768x16...\n";
-                       
-                       //Attempt 1024x768.
-                       resolution.first = 1024;
-                       resolution.second = 768;
-       
-                       bpp = 
video.modePossible(resolution.first,resolution.second,16,video_flags);
-       
-                       if(bpp == 0) {
-                                //Attempt 1024x768.
-                               resolution.first = 1024;
-                               resolution.second = 768;
-                               std::cerr << "1024x768x16 is not 
possible.\nAttempting 800x600x16...\n";
-       
-                               resolution.first = 800;
-                               resolution.second = 600;
-       
-                               bpp = 
video.modePossible(resolution.first,resolution.second,16,video_flags);
+                        //Attempt 1024x768.
+                       resolution.first = 1024;
+                       resolution.second = 768;
+                       std::cerr << "1024x768x16 is not possible.\nAttempting 
800x600x16...\n";
+
+                       resolution.first = 800;
+                       resolution.second = 600;
+
+                       bpp = 
video_.modePossible(resolution.first,resolution.second,16,video_flags);
+               }
+
+               if(bpp == 0) {
+                       //couldn't do 1024x768 or 800x600
+
+                       std::cerr << "The required video mode, " << 
resolution.first
+                                 << "x" << resolution.second << "x16 "
+                                 << "is not supported\n";
+
+                       if((video_flags&FULL_SCREEN) != 0) {
+                               std::cerr << "Try running the program with the 
--windowed option "
+                                         << "using a 16bpp X windows 
setting\n";
                        }
-       
-                       if(bpp == 0) {
-                               //couldn't do 1024x768 or 800x600
-       
-                               std::cerr << "The required video mode, " << 
resolution.first
-                                         << "x" << resolution.second << "x16 "
-                                         << "is not supported\n";
-       
-                               if((video_flags&FULL_SCREEN) != 0 && argc == 0)
-                                       std::cerr << "Try running the program 
with the --windowed option "
-                                                 << "using a 16bpp X windows 
setting\n";
-       
-                               if((video_flags&FULL_SCREEN) == 0 && argc == 0)
-                                       std::cerr << "Try running with the 
--fullscreen option\n";
-       
-                               return 0;
+
+                       if((video_flags&FULL_SCREEN) == 0) {
+                               std::cerr << "Try running with the --fullscreen 
option\n";
                        }
-               }
 
-               if(force_bpp > 0) {
-                       bpp = force_bpp;
-               }
-       
-               std::cerr << "setting mode to " << resolution.first << "x" << 
resolution.second << "x" << bpp << "\n";
-               const int res = 
video.setMode(resolution.first,resolution.second,bpp,video_flags);
-               video.setBpp(bpp);
-               if(res == 0) {
-                       std::cerr << "required video mode, " << 
resolution.first << "x"
-                                 << resolution.second << "x" << bpp << " is 
not supported\n";
-                       return 0;
+                       return false;
                }
+       }
 
-               cursor::set(cursor::NORMAL);
-       } else {
-               video.make_fake();
+       if(force_bpp_ > 0) {
+               bpp = force_bpp_;
        }
 
-       const cursor::manager cursor_manager;
-#if defined(_X11) && !defined(__APPLE__)
-       SDL_EventState(SDL_SYSWMEVENT, SDL_ENABLE);
-#endif
+       std::cerr << "setting mode to " << resolution.first << "x" << 
resolution.second << "x" << bpp << "\n";
+       const int res = 
video_.setMode(resolution.first,resolution.second,bpp,video_flags);
+       video_.setBpp(bpp);
+       if(res == 0) {
+               std::cerr << "required video mode, " << resolution.first << "x"
+                         << resolution.second << "x" << bpp << " is not 
supported\n";
+               return false;
+       }
+
+       cursor::set(cursor::NORMAL);
 
-       std::cerr << "initialized gui\n";
-       std::cerr << (SDL_GetTicks() - start_ticks) << "\n";
+       return true;
+}
 
+bool game_controller::init_config()
+{
        //load in the game's configuration files
-       preproc_map defines_map;
-       defines_map["NORMAL"] = preproc_define();
-       defines_map["MEDIUM"] = preproc_define();
-       if(multiplayer_mode) {
-               defines_map["MULTIPLAYER"] = preproc_define();
-       }
+       defines_map_["NORMAL"] = preproc_define();
+       defines_map_["MEDIUM"] = preproc_define();
 
+       if(multiplayer_mode_) {
+               defines_map_["MULTIPLAYER"] = preproc_define();
+       }
        std::vector<line_source> line_src;
 
-       config game_config;
-
        try {
                log_scope("loading config");
-               std::cerr << (SDL_GetTicks() - start_ticks) << "\n";
-               read_game_cfg(defines_map,line_src,game_config,use_caching);
-               std::cerr << (SDL_GetTicks() - start_ticks) << "\n";
+               read_game_cfg(defines_map_,line_src,game_config_,use_caching_);
        } catch(config::error& e) {
-               display::unit_map u_map;
-               config dummy_cfg("");
-               display 
disp(u_map,video,gamemap(dummy_cfg,"1"),gamestatus(dummy_cfg,0),
-                            std::vector<team>(),dummy_cfg,dummy_cfg,dummy_cfg);
-
-               gui::show_dialog(disp,NULL,"","Error loading game configuration 
files: '" + e.message + "' (The game will now exit)",
+               gui::show_dialog(disp(),NULL,"","Error loading game 
configuration files: '" + e.message + "' (The game will now exit)",
                                 gui::MESSAGE);
                throw e;
        }
 
-       game_config::load_config(game_config.child("game_config"));
-
-       hotkey::add_hotkeys(game_config,false);
+       game_config::load_config(game_config_.child("game_config"));
 
-       const binary_paths_manager bin_paths_manager(game_config);
+       hotkey::add_hotkeys(game_config_,false);
 
-       std::cerr << "parsed config files\n";
-       std::cerr << (SDL_GetTicks() - start_ticks) << "\n";
+       paths_manager_.set_paths(game_config_);
 
-       const config::child_list& units = game_config.get_children("units");
-       if(units.empty()) {
-               std::cerr << "ERROR: Could not find game configuration files\n";
-               std::cerr << game_config.write();
-               return 0;
+       const config* const units = game_config_.child("units");
+       if(units != NULL) {
+               units_data_.set_config(*units);
        }
 
-       game_data units_data(*units[0]);
+       return true;
+}
 
+bool game_controller::init_language()
+{
        const bool lang_res = set_language(get_locale());
        if(!lang_res) {
                std::cerr << "No translation for locale '" << 
get_locale().language
@@ -669,629 +578,785 @@
                }
        }
 
-       std::cerr << "set language\n";
-       std::cerr << (SDL_GetTicks() - start_ticks) << "\n";
-
-       if(!no_gui) {
+       if(!no_gui_) {
                SDL_WM_SetCaption(_("The Battle for Wesnoth"), NULL);
        }
+}
 
-       //these variables are used to store the game that the user selects to 
load
-       //from within the game
-       std::string loaded_game = "";
-       bool loaded_game_show_replay = false;
-
-       for(;;) {
-               statistics::fresh_stats();
+bool game_controller::play_test()
+{
+       if(test_mode_ == false) {
+               return true;
+       }
 
-               sound::play_music(game_config::title_music);
+       state_.campaign_type = "test";
+       state_.scenario = "test";
 
-               std::cerr << "started music\n";
-               std::cerr << (SDL_GetTicks() - start_ticks) << "\n";
+       ::play_game(disp(),state_,game_config_,units_data_,video_);
+       return false;
+}
 
-               game_state state;
+bool game_controller::play_multiplayer_mode()
+{
+       if(!multiplayer_mode_) {
+               return true;
+       }
 
-               display::unit_map u_map;
-               config dummy_cfg("");
-               display 
disp(u_map,video,gamemap(dummy_cfg,"1"),gamestatus(dummy_cfg,0),
-                            std::vector<team>(),dummy_cfg,dummy_cfg,dummy_cfg);
+       std::string era = "era_default";
+       std::string scenario = "multiplayer_test";
+       std::map<int,std::string> side_types, side_controllers, side_algorithms;
+       std::map<int,string_map> side_parameters;
+
+       int sides_counted = 0;
+
+       for(++arg_; arg_ < argc_; ++arg_) {
+               const std::string val(argv_[arg_]);
+               if(val.empty()) {
+                       continue;
+               }
+
+               std::vector<std::string> name_value = config::split(val,'=');
+               if(name_value.size() > 2) {
+                       std::cerr << "invalid argument '" << val << "'\n";
+                       return false;
+               } else if(name_value.size() == 2) {
+                       const std::string name = name_value.front();
+                       const std::string value = name_value.back();
+
+                       const std::string name_head = 
name.substr(0,name.size()-1);
+                       const char name_tail = name[name.size()-1];
+                       const bool last_digit = isdigit(name_tail) ? true:false;
+                       const int side = name_tail - '0';
+
+                       if(last_digit && side > sides_counted) {
+                               std::cerr << "counted sides: " << side << "\n";
+                               sides_counted = side;
+                       }
+
+                       if(name == "--scenario") {
+                               scenario = value;
+                       } else if(name == "--era") {
+                               era = value;
+                       } else if(last_digit && name_head == "--controller") {
+                               side_controllers[side] = value;
+                       } else if(last_digit && name_head == "--algorithm") {
+                               side_algorithms[side] = value;
+                       } else if(last_digit && name_head == "--side") {
+                               side_types[side] = value;
+                       } else if(last_digit && name_head == "--parm") {
+                               const std::vector<std::string> name_value = 
config::split(value,':');
+                               if(name_value.size() != 2) {
+                                       std::cerr << "argument to '" << name << 
"' must be in the format name:value\n";
+                                       return false;
+                               }
+
+                               side_parameters[side][name_value.front()] = 
name_value.back();
+                       } else {
+                               std::cerr << "unrecognized option: '" << name 
<< "'\n";
+                               return false;
+                       }
+               }
+       }
+
+       const config* const lvl = 
game_config_.find_child("multiplayer","id",scenario);
+       if(lvl == NULL) {
+               std::cerr << "Could not find scenario '" << scenario << "'\n";
+               return false;
+       }
+
+       state_.campaign_type = "multiplayer";
+       state_.scenario = "";
+       state_.snapshot = config();
+
+       config level = *lvl;
+       std::vector<config*> story;
+
+       const config* const era_cfg = game_config_.find_child("era","id",era);
+       if(era_cfg == NULL) {
+               std::cerr << "Could not find era '" << era << "'\n";
+               return false;
+       }
+
+       const config* const side = era_cfg->child("multiplayer_side");
+       if(side == NULL) {
+               std::cerr << "Could not find multiplayer side\n";
+               return false;
+       }
+
+       while(level.get_children("side").size() < sides_counted) {
+               std::cerr << "now adding side...\n";
+               level.add_child("side");
+       }
+
+       int side_num = 1;
+       for(config::child_itors itors = level.child_range("side"); itors.first 
!= itors.second; ++itors.first, ++side_num) {
+               std::map<int,std::string>::const_iterator type = 
side_types.find(side_num),
+                                                         controller = 
side_controllers.find(side_num),
+                                                         algorithm = 
side_algorithms.find(side_num);
+
+               const config* side = type == side_types.end() ? 
era_cfg->child("multiplayer_side") :
+                                                               
era_cfg->find_child("multiplayer_side","type",type->second);
+
+               size_t tries = 0;
+               while(side != NULL && (*side)["type"] == "random" && ++tries < 
100) {
+                       const config::child_list& v = 
era_cfg->get_children("multiplayer_side");
+                       side = v[rand()%v.size()];
+               }
+
+               if(side == NULL || (*side)["type"] == "random") {
+                       std::string side_name = (type == side_types.end() ? 
"default" : type->second);
+                       std::cerr << "Could not find side '" << side_name << "' 
for side " << side_num << "\n";
+                       return false;
+               }
+
+               char buf[20];
+               sprintf(buf,"%d",side_num);
+               (*itors.first)->values["side"] = buf;
+
+               (*itors.first)->values["canrecruit"] = "1";
+
+               for(string_map::const_iterator i = side->values.begin(); i != 
side->values.end(); ++i) {
+                       (*itors.first)->values[i->first] = i->second;
+               }
+
+               if(controller != side_controllers.end()) {
+                       (*itors.first)->values["controller"] = 
controller->second;
+               }
+
+               if(algorithm != side_algorithms.end()) {
+                       (*itors.first)->values["ai_algorithm"] = 
algorithm->second;
+               }
+
+               config& ai_params = (*itors.first)->add_child("ai");
+
+               //now add in any arbitrary parameters given to the side
+               for(string_map::const_iterator j = 
side_parameters[side_num].begin(); j != side_parameters[side_num].end(); ++j) {
+                       (*itors.first)->values[j->first] = j->second;
+                       ai_params[j->first] = j->second;
+               }
+       }
+
+       try {
+               play_level(units_data_,game_config_,&level,video_,state_,story);
+       } catch(gamestatus::error& e) {
+               std::cerr << "caught error: '" << e.message << "'\n";
+       } catch(gamestatus::load_game_exception& e) {
+               //the user's trying to load a game, so go into the normal title 
screen loop and load one
+               loaded_game_ = e.game;
+               loaded_game_show_replay_ = e.show_replay;
+               return true;
+       } catch(...) {
+               std::cerr << "caught unknown error playing level...\n";
+       }
 
-               std::cerr << "initialized display object\n";
-               std::cerr << (SDL_GetTicks() - start_ticks) << "\n";
+       return false;
+}
 
-               if(test_mode) {
-                       state.campaign_type = "test";
-                       state.scenario = "test";
+bool game_controller::is_loading() const
+{
+       return loaded_game_.empty() == false;
+}
 
-                       play_game(disp,state,game_config,units_data,video);
-                       return 0;
-               }
+bool game_controller::load_game()
+{
+       bool show_replay = loaded_game_show_replay_;
 
-               //multiplayer mode skips straight into a multiplayer game, 
bypassing the main menu
-               //it is all handled inside this 'if' statement
-               if(multiplayer_mode) {
-
-                       std::string era = "era_default";
-                       std::string scenario = "multiplayer_test";
-                       std::map<int,std::string> side_types, side_controllers, 
side_algorithms;
-                       std::map<int,string_map> side_parameters;
-
-                       int sides_counted = 0;
-
-                       for(++arg; arg < argc; ++arg) {
-                               const std::string val(argv[arg]);
-                               if(val.empty()) {
-                                       continue;
-                               }
+       const std::string game = loaded_game_.empty() ? 
dialogs::load_game_dialog(disp(),game_config_,units_data_,&show_replay) : 
loaded_game_;
 
-                               std::vector<std::string> name_value = 
config::split(val,'=');
-                               if(name_value.size() > 2) {
-                                       std::cerr << "invalid argument '" << 
val << "'\n";
-                                       return 0;
-                               } else if(name_value.size() == 2) {
-                                       const std::string name = 
name_value.front();
-                                       const std::string value = 
name_value.back();
-
-                                       const std::string name_head = 
name.substr(0,name.size()-1);
-                                       const char name_tail = 
name[name.size()-1];
-                                       const bool last_digit = 
isdigit(name_tail) ? true:false;
-                                       const int side = name_tail - '0';
-
-                                       if(last_digit && side > sides_counted) {
-                                               std::cerr << "counted sides: " 
<< side << "\n";
-                                               sides_counted = side;
-                                       }
+       loaded_game_ = "";
 
-                                       if(name == "--scenario") {
-                                               scenario = value;
-                                       } else if(name == "--era") {
-                                               era = value;
-                                       } else if(last_digit && name_head == 
"--controller") {
-                                               side_controllers[side] = value;
-                                       } else if(last_digit && name_head == 
"--algorithm") {
-                                               side_algorithms[side] = value;
-                                       } else if(last_digit && name_head == 
"--side") {
-                                               side_types[side] = value;
-                                       } else if(last_digit && name_head == 
"--parm") {
-                                               const std::vector<std::string> 
name_value = config::split(value,':');
-                                               if(name_value.size() != 2) {
-                                                       std::cerr << "argument 
to '" << name << "' must be in the format name:value\n";
-                                                       return 0;
-                                               }
+       if(game == "") {
+               return false;
+       }
 
-                                               
side_parameters[side][name_value.front()] = name_value.back();
-                                       } else {
-                                               std::cerr << "unrecognized 
option: '" << name << "'\n";
-                                               return 0;
-                                       }
-                               }
+       try {
+               ::load_game(units_data_,game,state_);
+               if(state_.version != game_config::version) {
+                       const int res = gui::show_dialog(disp(),NULL,"",
+                                             _("This save is from a different 
version of the game. Do you want to try to load it?"),
+                                             gui::YES_NO);
+                       if(res == 1) {
+                               return false;
                        }
+               }
 
-                       const config* const lvl = 
game_config.find_child("multiplayer","id",scenario);
-                       if(lvl == NULL) {
-                               std::cerr << "Could not find scenario '" << 
scenario << "'\n";
-                               return 0;
-                       }
+               defines_map_.clear();
+               defines_map_[state_.difficulty] = preproc_define();
+       } catch(gamestatus::error& e) {
+               std::cerr << "caught load_game_failed\n";
+               gui::show_dialog(disp(),NULL,"",
+                          _("The file you have tried to load is corrupt") + 
std::string(": '") + e.message + "'",gui::OK_ONLY);
+               return false;
+       } catch(config::error& e) {
+               std::cerr << "caught config::error\n";
+               gui::show_dialog(disp(),NULL,"",
+                   _("The file you have tried to load is corrupt") + 
std::string(": '") + e.message + "'",
+                   gui::OK_ONLY);
+               return false;
+       } catch(io_exception& e) {
+               gui::show_dialog(disp(),NULL,"",_("File I/O Error while reading 
the game"),gui::OK_ONLY);
+               return false;
+       }
 
-                       state.campaign_type = "multiplayer";
-                       state.scenario = "";
-                       state.snapshot = config();
+       recorder = replay(state_.replay_data);
 
-                       config level = *lvl;
-                       std::vector<config*> story;
+       std::cerr << "has snapshot: " << (state_.snapshot.child("side") ? "yes" 
: "no") << "\n";
 
-                       const config* const era_cfg = 
game_config.find_child("era","id",era);
-                       if(era_cfg == NULL) {
-                               std::cerr << "Could not find era '" << era << 
"'\n";
-                               return 0;
-                       }
+       //only play replay data if the user has selected to view the replay,
+       //or if there is no starting position data to use.
+       if(!show_replay && state_.snapshot.child("side") != NULL) {
+               std::cerr << "setting replay to end...\n";
+               recorder.set_to_end();
+               if(!recorder.at_end()) {
+                       std::cerr << "recorder is not at the end!!!\n";
+               }
+       } else {
 
-                       const config* const side = 
era_cfg->child("multiplayer_side");
-                       if(side == NULL) {
-                               std::cerr << "Could not find multiplayer 
side\n";
-                               return 0;
-                       }
+               recorder.start_replay();
 
-                       while(level.get_children("side").size() < 
sides_counted) {
-                               std::cerr << "now adding side...\n";
-                               level.add_child("side");
-                       }
-
-                       int side_num = 1;
-                       for(config::child_itors itors = 
level.child_range("side"); itors.first != itors.second; ++itors.first, 
++side_num) {
-                               std::map<int,std::string>::const_iterator type 
= side_types.find(side_num),
-                                                                         
controller = side_controllers.find(side_num),
-                                                                         
algorithm = side_algorithms.find(side_num);
-
-                               const config* side = type == side_types.end() ? 
era_cfg->child("multiplayer_side") :
-                                                                               
era_cfg->find_child("multiplayer_side","type",type->second);
-
-                               size_t tries = 0;
-                               while(side != NULL && (*side)["type"] == 
"random" && ++tries < 100) {
-                                       const config::child_list& v = 
era_cfg->get_children("multiplayer_side");
-                                       side = v[rand()%v.size()];
-                               }
+               //set whether the replay is to be skipped or not
+               if(show_replay) {
+                       recorder.set_skip(0);
+               } else {
+                       std::cerr << "skipping...\n";
+                       recorder.set_skip(-1);
+               }
+       }
 
-                               if(side == NULL || (*side)["type"] == "random") 
{
-                                       std::string side_name = (type == 
side_types.end() ? "default" : type->second);
-                                       std::cerr << "Could not find side '" << 
side_name << "' for side " << side_num << "\n";
-                                       return 0;
-                               }
+       if(state_.campaign_type == "multiplayer") {
+               //make all network players local
+               for(config::child_itors sides = 
state_.snapshot.child_range("side");
+                   sides.first != sides.second; ++sides.first) {
+                       if((**sides.first)["controller"] == "network")
+                               (**sides.first)["controller"] = "human";
+               }
+       
+               recorder.set_save_info(state_);
+               std::vector<config*> story;
 
-                               char buf[20];
-                               sprintf(buf,"%d",side_num);
-                               (*itors.first)->values["side"] = buf;
+               config starting_pos;
+               if(recorder.at_end()) {
+                       starting_pos = state_.snapshot;
+                                // state.gold = -100000;
+               } else {
+                       starting_pos = state_.starting_pos;
+               }
 
-                               (*itors.first)->values["canrecruit"] = "1";
+               try {
+                       
play_level(units_data_,game_config_,&starting_pos,video_,state_,story);
+                       recorder.clear();
+               } catch(gamestatus::load_game_failed& e) {
+                       gui::show_dialog(disp(),NULL,"","error loading the 
game: " + e.message,gui::OK_ONLY);
+                       std::cerr << "error loading the game: " << e.message
+                                 << "\n";
+               } catch(gamestatus::game_error& e) {
+                       gui::show_dialog(disp(),NULL,"","error while playing 
the game: " + e.message,gui::OK_ONLY);
+                       std::cerr << "error while playing the game: "
+                                 << e.message << "\n";
+               } catch(gamestatus::load_game_exception& e) {
+                       //this will make it so next time through the title 
screen loop, this game is loaded
+                       loaded_game_ = e.game;
+                       loaded_game_show_replay_ = e.show_replay;
+               }
 
-                               for(string_map::const_iterator i = 
side->values.begin(); i != side->values.end(); ++i) {
-                                       (*itors.first)->values[i->first] = 
i->second;
-                               }
+               return false;
+       }
 
-                               if(controller != side_controllers.end()) {
-                                       (*itors.first)->values["controller"] = 
controller->second;
-                               }
+       return true;
+}
 
-                               if(algorithm != side_algorithms.end()) {
-                                       (*itors.first)->values["ai_algorithm"] 
= algorithm->second;
-                               }
+void game_controller::set_tutorial()
+{
+       state_.campaign_type = "tutorial";
+       state_.scenario = "tutorial";
+       defines_map_["TUTORIAL"] = preproc_define();
+}
 
-                               config& ai_params = 
(*itors.first)->add_child("ai");
+bool game_controller::new_campaign()
+{
+       state_.campaign_type = "scenario";
 
-                               //now add in any arbitrary parameters given to 
the side
-                               for(string_map::const_iterator j = 
side_parameters[side_num].begin(); j != side_parameters[side_num].end(); ++j) {
-                                       (*itors.first)->values[j->first] = 
j->second;
-                                       ai_params[j->first] = j->second;
-                               }
-                       }
+       config::child_list campaigns = game_config_.get_children("campaign");
+       std::sort(campaigns.begin(),campaigns.end(),less_campaigns_rank);
 
-                       try {
-                               
play_level(units_data,game_config,&level,video,state,story);
-                               return 0;
-                       } catch(gamestatus::error& e) {
-                               std::cerr << "caught error: '" << e.message << 
"'\n";
-                               return 0;
-                       } catch(gamestatus::load_game_exception& e) {
-                               //the user's trying to load a game, so go into 
the normal title screen loop and load one
-                               loaded_game = e.game;
-                               loaded_game_show_replay = e.show_replay;
-                       } catch(...) {
-                               std::cerr << "caught unknown error playing 
level...\n";
-                               return 0;
-                       }
+       std::vector<std::string> campaign_names;
+
+       for(config::child_list::const_iterator i = campaigns.begin(); i != 
campaigns.end(); ++i) {
+               std::stringstream str;
+               const std::string& icon = (**i)["icon"];
+               if(icon == "") {
+                       str << " ,";
+               } else {
+                       str << "&" << icon << ",";
                }
 
-               recorder.clear();
+               str << (**i)["name"];
 
-               std::cerr << "showing title screen...\n";
-               std::cerr << (SDL_GetTicks() - start_ticks) << "\n";
-               gui::TITLE_RESULT res = loaded_game.empty() ? 
gui::TITLE_CONTINUE : gui::LOAD_GAME;
+               campaign_names.push_back(str.str());
+       }
 
-               int ntip = -1;
-               while(res == gui::TITLE_CONTINUE) {
-                       res = gui::show_title(disp,&ntip);
-               }
+       campaign_names.push_back(_(" ,Get More Campaigns..."));
 
-               std::cerr << "title screen returned result\n";
+       int res = 0;
 
-               if(res == gui::QUIT_GAME) {
-                       std::cerr << "quitting game...\n";
-                       return 0;
-               } else if(res == gui::LOAD_GAME) {
+       if(campaign_names.size() > 1) {
+               res = gui::show_dialog(disp(),NULL,_("Campaign"),
+                                                _("Choose the campaign you 
want to play:"),
+                                                                               
 gui::OK_CANCEL,&campaign_names);
 
-                       bool show_replay = loaded_game_show_replay;
+               if(res == -1) {
+                       return false;
+               }
+       }
 
-                       const std::string game = loaded_game.empty() ? 
dialogs::load_game_dialog(disp,game_config,units_data,&show_replay) : 
loaded_game;
+       //get more campaigns from server
+       if(res == int(campaign_names.size()-1)) {
+               std::string host = "campaigns.wesnoth.org";
+               const int res = gui::show_dialog(disp(),NULL,_("Connect to 
Server"),
+                       _("You will now connect to a campaign server to 
download campaigns."),
+                       gui::OK_CANCEL,NULL,NULL,_("Server: "),&host);
+               if(res != 0) {
+                       return false;
+               }
 
-                       loaded_game = "";
+               const std::vector<std::string> items = config::split(host,':');
+               host = items.front();
 
-                       if(game == "") {
-                               continue;
+               try {
+                       const network::manager net_manager;
+                       const network::connection sock = 
network::connect(items.front(),lexical_cast_default<int>(items.back(),15002));
+                       if(!sock) {
+                               
gui::show_dialog(disp(),NULL,_("Error"),_("Could not connect to 
host."),gui::OK_ONLY);
+                               return false;
                        }
 
-                       try {
-                               load_game(units_data,game,state);
-                               if(state.version != game_config::version) {
-                                       const int res = 
gui::show_dialog(disp,NULL,"",
-                                                             _("This save is 
from a different version of the game. Do you want to try to load it?"),
-                                                             gui::YES_NO);
-                                       if(res == 1)
-                                               continue;
-                               }
+                       config cfg;
+                       cfg.add_child("request_campaign_list");
+                       network::send_data(cfg,sock);
 
-                               defines_map.clear();
-                               defines_map[state.difficulty] = 
preproc_define();
-                       } catch(gamestatus::error& e) {
-                               std::cerr << "caught load_game_failed\n";
-                               gui::show_dialog(disp,NULL,"",
-                                          _("The file you have tried to load 
is corrupt") + std::string(": '") + e.message + "'",gui::OK_ONLY);
-                               continue;
-                       } catch(config::error& e) {
-                               std::cerr << "caught config::error\n";
-                               gui::show_dialog(disp,NULL,"",
-                                   _("The file you have tried to load is 
corrupt") + std::string(": '") + e.message + "'",
-                                   gui::OK_ONLY);
-                               continue;
-                       } catch(io_exception& e) {
-                               gui::show_dialog(disp,NULL,"","File I/O Error 
while reading the game",gui::OK_ONLY);
-                               continue;
+                       network::connection res = 
gui::network_data_dialog(disp(),_("Awaiting response from server"),cfg,sock);
+                       if(!res) {
+                               return false;
                        }
 
-                       recorder = replay(state.replay_data);
-
-                       std::cerr << "has snapshot: " << 
(state.snapshot.child("side") ? "yes" : "no") << "\n";
+                       const config* const error = cfg.child("error");
+                       if(error != NULL) {
+                               
gui::show_dialog(disp(),NULL,_("Error"),(*error)["message"],gui::OK_ONLY);
+                               return false;
+                       }
 
-                       //only play replay data if the user has selected to 
view the replay,
-                       //or if there is no starting position data to use.
-                       if(!show_replay && state.snapshot.child("side") != 
NULL) {
-                               std::cerr << "setting replay to end...\n";
-                               recorder.set_to_end();
-                               if(!recorder.at_end())
-                                       std::cerr << "recorder is not at the 
end!!!\n";
-                       } else {
+                       const config* const campaigns_cfg = 
cfg.child("campaigns");
+                       if(campaigns_cfg == NULL) {
+                               
gui::show_dialog(disp(),NULL,_("Error"),_("Error communicating with the 
server."),gui::OK_ONLY);
+                               return false;
+                       }
 
-                               recorder.start_replay();
+                       std::vector<std::string> campaigns;
+                       const config::child_list& cmps = 
campaigns_cfg->get_children("campaign");
+                       for(config::child_list::const_iterator i = 
cmps.begin(); i != cmps.end(); ++i) {
+                               campaigns.push_back((**i)["name"]);
+                       }
 
-                               //set whether the replay is to be skipped or not
-                               if(show_replay) {
-                                       recorder.set_skip(0);
-                               } else {
-                                       std::cerr << "skipping...\n";
-                                       recorder.set_skip(-1);
-                               }
+                       if(campaigns.empty()) {
+                               
gui::show_dialog(disp(),NULL,_("Error"),_("There are no campaigns available for 
download from this server."),gui::OK_ONLY);
+                               return false;
                        }
 
-                       if(state.campaign_type == "multiplayer") {
-                               //make all network players local
-                               for(config::child_itors sides = 
state.snapshot.child_range("side");
-                                   sides.first != sides.second; ++sides.first) 
{
-                                       if((**sides.first)["controller"] == 
"network")
-                                               (**sides.first)["controller"] = 
"human";
-                               }
-                       
-                               recorder.set_save_info(state);
-                               std::vector<config*> story;
+                       const int index = gui::show_dialog(disp(),NULL,_("Get 
Campaign"),_("Choose the campaign to download."),gui::OK_CANCEL,&campaigns);
+                       if(index < 0 || index >= int(campaigns.size())) {
+                               return false;
+                       }
 
-                               config starting_pos;
-                               if(recorder.at_end()) {
-                                       starting_pos = state.snapshot;
-                                        // state.gold = -100000;
-                               } else {
-                                       starting_pos = state.starting_pos;
-                               }
+                       config request;
+                       request.add_child("request_campaign")["name"] = 
campaigns[index];
+                       network::send_data(request,sock);
 
-                               try {
-                                       
play_level(units_data,game_config,&starting_pos,video,state,story);
-                                       recorder.clear();
-                               } catch(gamestatus::load_game_failed& e) {
-                                       gui::show_dialog(disp,NULL,"","error 
loading the game: " + e.message,gui::OK_ONLY);
-                                       std::cerr << "error loading the game: " 
<< e.message
-                                                 << "\n";
-                                       return 0;
-                               } catch(gamestatus::game_error& e) {
-                                       gui::show_dialog(disp,NULL,"","error 
while playing the game: " + e.message,gui::OK_ONLY);
-                                       std::cerr << "error while playing the 
game: "
-                                                 << e.message << "\n";
-                                       return 0;
-                               } catch(gamestatus::load_game_exception& e) {
-                                       //this will make it so next time 
through the title screen loop, this game is loaded
-                                       loaded_game = e.game;
-                                       loaded_game_show_replay = e.show_replay;
-                               }
+                       res = gui::network_data_dialog(disp(),_("Downloading 
campaign..."),cfg,sock);
+                       if(!res) {
+                               return false;
+                       }
 
-                               continue;
+                       if(cfg.child("error") != NULL) {
+                               
gui::show_dialog(disp(),NULL,_("Error"),(*cfg.child("error"))["message"],gui::OK_ONLY);
+                               return false;
                        }
 
-               } else if(res == gui::TUTORIAL) {
-                       state.campaign_type = "tutorial";
-                       state.scenario = "tutorial";
-                       defines_map["TUTORIAL"] = preproc_define();
+                       unarchive_campaign(cfg);
 
-               } else if(res == gui::NEW_CAMPAIGN) {
-                       state.campaign_type = "scenario";
+                       gui::show_dialog(disp(),NULL,_("Campaign 
Installed"),_("The campaign has been installed. You will have to restart 
Wesnoth before you can play it."),gui::OK_ONLY);
+                       return false;
+                       
+               } catch(config::error& e) {
+                       gui::show_dialog(disp(),NULL,_("Error"),_("Network 
communication error."),gui::OK_ONLY);
+                       return false;
+               } catch(network::error& e) {
+                       gui::show_dialog(disp(),NULL,_("Error"),_("Remote host 
disconnected."),gui::OK_ONLY);
+                       return false;
+               } catch(io_exception& e) {
+                       gui::show_dialog(disp(),NULL,_("Error"),_("There was a 
problem creating the files necessary to install this campaign."),gui::OK_ONLY);
+                       return false;
+               }
+       }
 
-                       config::child_list campaigns = 
game_config.get_children("campaign");
-                       
std::sort(campaigns.begin(),campaigns.end(),less_campaigns_rank);
+       const config& campaign = *campaigns[res];
 
-                       std::vector<std::string> campaign_names;
+       state_.scenario = campaign["first_scenario"];
 
-                       for(config::child_list::const_iterator i = 
campaigns.begin(); i != campaigns.end(); ++i) {
-                               std::stringstream str;
-                               const std::string& icon = (**i)["icon"];
-                               if(icon == "") {
-                                       str << " ,";
-                               } else {
-                                       str << "&" << icon << ",";
-                               }
+       const std::string difficulty_descriptions = 
campaign["difficulty_descriptions"];
+       std::vector<std::string> difficulty_options = 
config::split(difficulty_descriptions,';');
 
-                               str << (**i)["name"];
+       const std::vector<std::string> difficulties = 
config::split(campaign["difficulties"]);
 
-                               campaign_names.push_back(str.str());
-                       }
+       if(difficulties.empty() == false) {
+               if(difficulty_options.size() != difficulties.size()) {
+                       difficulty_options.resize(difficulties.size());
+                       
std::transform(difficulties.begin(),difficulties.end(),difficulty_options.begin(),translate_string);
+               }
 
-                       campaign_names.push_back(_(" ,Get More Campaigns..."));
+               const int res = gui::show_dialog(disp(),NULL,_("Difficulty"),
+                                           _("Select difficulty level:"),
+                                           gui::OK_CANCEL,&difficulty_options);
+               if(res == -1) {
+                       return false;
+               }
 
-                       int res = 0;
+               state_.difficulty = difficulties[res];
+               defines_map_.clear();
+               defines_map_[difficulties[res]] = preproc_define();
+       }
 
-                       if(campaign_names.size() > 1) {
-                               res = gui::show_dialog(disp,NULL,_("Campaign"),
-                                                                _("Choose the 
campaign you want to play:"),
-                                                                               
                 gui::OK_CANCEL,&campaign_names);
+       state_.campaign_define = campaign["define"];
+       
+       return true;
+}
 
-                               if(res == -1)
-                                       continue;
-                       }
+bool game_controller::play_multiplayer()
+{
+       state_.campaign_type = "multiplayer";
+       state_.scenario = "";
+       state_.campaign_define = "MULTIPLAYER";
+
+       std::vector<std::string> host_or_join;
+       const std::string sep(1,gui::menu::HELP_STRING_SEPERATOR);
+       host_or_join.push_back(std::string("&icons/icon-server.png,") + _("Join 
Official Server") + sep + _("Log on to the official Wesnoth multiplayer 
server"));
+       host_or_join.push_back(std::string("&icons/icon-serverother.png,") + 
_("Join Game") + sep + _("Join a server or hosted game"));
+       host_or_join.push_back(std::string("&icons/icon-hostgame.png,") + 
_("Host Multiplayer Game") + sep + _("Host a game without using a server"));
 
-                       //get more campaigns from server
-                       if(res == int(campaign_names.size()-1)) {
-                               std::string host = "campaigns.wesnoth.org";
-                               const int res = 
gui::show_dialog(disp,NULL,_("Connect to Server"),
-                                       _("You will now connect to a campaign 
server to download campaigns."),
-                                       gui::OK_CANCEL,NULL,NULL,_("Server: 
"),&host);
-                               if(res != 0) {
-                                       continue;
-                               }
+       std::string login = preferences::login();
+       const int res = 
gui::show_dialog(disp(),NULL,_("Multiplayer"),"",gui::OK_CANCEL,&host_or_join,NULL,_("Login")
 + std::string(": "),&login);
 
-                               const std::vector<std::string> items = 
config::split(host,':');
-                               host = items.front();
+       if(res >= 0) {
+               preferences::set_login(login);
+       }
+       
+       try {
+               defines_map_[state_.campaign_define] = preproc_define();
+               std::vector<line_source> line_src;
+               config game_config;
+               read_game_cfg(defines_map_,line_src,game_config,use_caching_);
+               
+               if(res == 2) {
+                       std::vector<std::string> chat;
+                       config game_data;
+                       multiplayer_game_setup_dialog 
mp_dialog(disp(),units_data_,game_config,state_,true);
+                       lobby::RESULT res = lobby::CONTINUE;
+                       while(res == lobby::CONTINUE) {
+                               res = 
lobby::enter(disp(),game_data,game_config,&mp_dialog,chat);
+                       }
+
+                       if(res == lobby::CREATE) {
+                               mp_dialog.start_game();
+                       }
+               } else if(res == 0 || res == 1) {
+                       std::string host;
+                       if(res == 0) {
+                               host = preferences::official_network_host();
+                       }
+
+                       
play_multiplayer_client(disp(),units_data_,game_config,state_,host);
+               }
+       } catch(gamestatus::load_game_failed& e) {
+               gui::show_dialog(disp(),NULL,"","error loading the game: " + 
e.message,gui::OK_ONLY);
+               std::cerr << "error loading the game: " << e.message << "\n";
+       } catch(gamestatus::game_error& e) {
+               gui::show_dialog(disp(),NULL,"","error while playing the game: 
" + e.message,gui::OK_ONLY);
+               std::cerr << "error while playing the game: "
+                         << e.message << "\n";
+       } catch(network::error& e) {
+               std::cerr << "caught network error...\n";
+               if(e.message != "") {
+                       gui::show_dialog(disp(),NULL,"",e.message,gui::OK_ONLY);
+               }
+       } catch(config::error& e) {
+               std::cerr << "caught config::error...\n";
+               if(e.message != "") {
+                       gui::show_dialog(disp(),NULL,"",e.message,gui::OK_ONLY);
+               }
+       } catch(gamemap::incorrect_format_exception& e) {
+               gui::show_dialog(disp(),NULL,"",std::string("The game map could 
not be loaded: ") + e.msg_,gui::OK_ONLY);
+               std::cerr << "The game map could not be loaded: " << e.msg_ << 
"\n";
+       } catch(gamestatus::load_game_exception& e) {
+               //this will make it so next time through the title screen loop, 
this game is loaded
+               loaded_game_ = e.game;
+               loaded_game_show_replay_ = e.show_replay;
+       }
 
-                               try {
-                                       const network::manager net_manager;
-                                       const network::connection sock = 
network::connect(items.front(),lexical_cast_default<int>(items.back(),15002));
-                                       if(!sock) {
-                                               
gui::show_dialog(disp,NULL,_("Error"),_("Could not connect to 
host."),gui::OK_ONLY);
-                                               continue;
-                                       }
+       return false;
+}
 
-                                       config cfg;
-                                       cfg.add_child("request_campaign_list");
-                                       network::send_data(cfg,sock);
-
-                                       network::connection res = 
gui::network_data_dialog(disp,_("Awaiting response from server"),cfg,sock);
-                                       if(!res) {
-                                               continue;
-                                       }
+bool game_controller::change_language()
+{
+       std::vector<language_def> langdefs = get_languages();
 
-                                       const config* const error = 
cfg.child("error");
-                                       if(error != NULL) {
-                                               
gui::show_dialog(disp,NULL,_("Error"),(*error)["message"],gui::OK_ONLY);
-                                               continue;
-                                       }
+       // this only works because get_languages() returns a fresh vector at 
each calls
+       // unless show_gui cleans the "*" flag
+       const std::vector<language_def>::iterator current = 
std::find(langdefs.begin(),langdefs.end(),get_language());
+       if(current != langdefs.end()) {
+               (*current).language = "*" + (*current).language;
+       }
 
-                                       const config* const campaigns_cfg = 
cfg.child("campaigns");
-                                       if(campaigns_cfg == NULL) {
-                                               
gui::show_dialog(disp,NULL,_("Error"),_("Error communicating with the 
server."),gui::OK_ONLY);
-                                               continue;
-                                       }
+       // prepare a copy with just the labels for the list to be displayed
+       std::vector<std::string> langs;
+       langs.reserve(langdefs.size());
+       
std::transform(langdefs.begin(),langdefs.end(),std::back_inserter(langs),languagedef_name);
+
+       const int res = gui::show_dialog(disp(),NULL,_("Language"),
+                                _("Choose your preferred language") + 
std::string(":"),
+                                gui::OK_CANCEL,&langs);
+       if(size_t(res) < langs.size()) {
+               set_language(known_languages[res]);
+               preferences::set_locale(known_languages[res].localename);
+       }
 
-                                       std::vector<std::string> campaigns;
-                                       const config::child_list& cmps = 
campaigns_cfg->get_children("campaign");
-                                       for(config::child_list::const_iterator 
i = cmps.begin(); i != cmps.end(); ++i) {
-                                               
campaigns.push_back((**i)["name"]);
-                                       }
+       return false;
+}
 
-                                       if(campaigns.empty()) {
-                                               
gui::show_dialog(disp,NULL,_("Error"),_("There are no campaigns available for 
download from this server."),gui::OK_ONLY);
-                                               continue;
-                                       }
+void game_controller::play_game()
+{
+       if(state_.campaign_define.empty() == false) {
+               defines_map_[state_.campaign_define] = preproc_define();
+       }
 
-                                       const int index = 
gui::show_dialog(disp,NULL,_("Get Campaign"),_("Choose the campaign to 
download."),gui::OK_CANCEL,&campaigns);
-                                       if(index < 0 || index >= 
int(campaigns.size())) {
-                                               continue;
-                                       }
+       if(defines_map_.count("NORMAL")) {
+               defines_map_["MEDIUM"] = preproc_define();
+       }
 
-                                       config request;
-                                       
request.add_child("request_campaign")["name"] = campaigns[index];
-                                       network::send_data(request,sock);
-
-                                       res = 
gui::network_data_dialog(disp,_("Downloading campaign..."),cfg,sock);
-                                       if(!res) {
-                                               continue;
-                                       }
+       //make a new game config item based on the difficulty level
+       std::vector<line_source> line_src;
+       config game_config;
+       
+       try {
+               read_game_cfg(defines_map_,line_src,game_config,use_caching_);
+       } catch(config::error& e) {
+               gui::show_dialog(disp(),NULL,"","Error loading game 
configuration files: '" + e.message + "' (The game will now exit)", 
gui::MESSAGE);
+               throw e;
+       }
 
-                                       if(cfg.child("error") != NULL) {
-                                               
gui::show_dialog(disp,NULL,_("Error"),(*cfg.child("error"))["message"],gui::OK_ONLY);
-                                               continue;
-                                       }
+       const binary_paths_manager bin_paths_manager(game_config);
 
-                                       unarchive_campaign(cfg);
+       const config* const units = game_config.child("units");
+       if(units == NULL) {
+               std::cerr << "ERROR: Could not find game configuration files\n";
+               std::cerr << game_config.write();
+               return;
+       }
 
-                                       gui::show_dialog(disp,NULL,_("Campaign 
Installed"),_("The campaign has been installed. You will have to restart 
Wesnoth before you can play it."),gui::OK_ONLY);
-                                       continue;
-                                       
-                               } catch(config::error& e) {
-                                       
gui::show_dialog(disp,NULL,_("Error"),_("Network communication 
error."),gui::OK_ONLY);
-                                       continue;
-                               } catch(network::error& e) {
-                                       
gui::show_dialog(disp,NULL,_("Error"),_("Remote host 
disconnected."),gui::OK_ONLY);
-                                       continue;
-                               } catch(io_exception& e) {
-                                       
gui::show_dialog(disp,NULL,_("Error"),_("There was a problem creating the files 
necessary to install this campaign."),gui::OK_ONLY);
-                                       continue;
-                               }
-                       }
+       game_data units_data(*units);
 
-                       const config& campaign = *campaigns[res];
+       try {
+               const LEVEL_RESULT result = 
::play_game(disp(),state_,game_config,units_data,video_);
+               if(result == VICTORY) {
+                       the_end(disp());
+                       about::show_about(disp());
+               }
+       } catch(gamestatus::load_game_exception& e) {
+
+               //this will make it so next time through the title screen loop, 
this game is loaded
+               loaded_game_ = e.game;
+               loaded_game_show_replay_ = e.show_replay;
+       }
+}
 
-                       state.scenario = campaign["first_scenario"];
+} //end anon namespace
 
-                       const std::string difficulty_descriptions = 
campaign["difficulty_descriptions"];
-                       std::vector<std::string> difficulty_options = 
config::split(difficulty_descriptions,';');
+int play_game(int argc, char** argv)
+{
+       const int start_ticks = SDL_GetTicks();
 
-                       const std::vector<std::string> difficulties = 
config::split(campaign["difficulties"]);
+       bool use_sound = true;
 
-                       if(difficulties.empty() == false) {
-                               if(difficulty_options.size() != 
difficulties.size()) {
-                                       
difficulty_options.resize(difficulties.size());
-                                       
std::transform(difficulties.begin(),difficulties.end(),difficulty_options.begin(),translate_string);
-                               }
+       //parse arguments that shouldn't require a display device
+       int arg;
+       for(arg = 1; arg != argc; ++arg) {
+               const std::string val(argv[arg]);
+               if(val.empty()) {
+                       continue;
+               }
 
-                               const int res = 
gui::show_dialog(disp,NULL,_("Difficulty"),
-                                                           _("Select 
difficulty level:"),
-                                                           
gui::OK_CANCEL,&difficulty_options);
-                               if(res == -1)
-                                       continue;
-
-                               state.difficulty = difficulties[res];
-                               defines_map.clear();
-                               defines_map[difficulties[res]] = 
preproc_define();
+               if(val == "--help" || val == "-h") {
+                       std::cout << "usage: " << argv[0]
+                   << " [options] [data-directory]\n"
+                       << "  -d, --debug       Shows debugging information 
in-game\n"
+                       << "  -f, --fullscreen  Runs the game in full-screen\n"
+                       << "  -h, --help        Prints this message and exits\n"
+                       << "  --path            Prints the name of the game 
data directory and exits\n"
+                       << "  -t, --test        Runs the game in a small 
example scenario\n"
+                       << "  -w, --windowed    Runs the game in windowed 
mode\n"
+                       << "  -v, --version     Prints the game's version 
number and exits\n"
+                       << "  --nocache         Disables caching of game 
data\n";
+                       return 0;
+               } else if(val == "--version" || val == "-v") {
+                       std::cout << "Battle for Wesnoth " << 
game_config::version
+                                 << "\n";
+                       return 0;
+               } else if(val == "--path") {
+                       std::cout <<  game_config::path
+                                 << "\n";
+                       return 0;
+               } else if(val == "--nosound") {
+                       use_sound = false;
+               } else if(val == "--publish-campaign") {
+                       if(arg+3 != argc && arg+4 != argc && arg+5 != argc) {
+                               std::cerr << "usage: --publish-campaign 
<campaign> <passphrase> [<server> [<port>]]\n";
+                               return 0;
                        }
 
-                       state.campaign_define = campaign["define"];
-               } else if(res == gui::MULTIPLAYER) {
-                       state.campaign_type = "multiplayer";
-                       state.scenario = "";
-                       state.campaign_define = "MULTIPLAYER";
-
-                       std::vector<std::string> host_or_join;
-                       const std::string 
sep(1,gui::menu::HELP_STRING_SEPERATOR);
-                       
host_or_join.push_back(std::string("&icons/icon-server.png,") + _("Join 
Official Server") + sep + _("Log on to the official Wesnoth multiplayer 
server"));
-                       
host_or_join.push_back(std::string("&icons/icon-serverother.png,") + _("Join 
Game") + sep + _("Join a server or hosted game"));
-                       
host_or_join.push_back(std::string("&icons/icon-hostgame.png,") + _("Host 
Multiplayer Game") + sep + _("Host a game without using a server"));
+                       const std::string& campaign = argv[++arg];
+                       const std::string& passphrase = argv[++arg];
+                       std::string host = "campaigns.wesnoth.org", port = 
"15002";
+                       if(++arg != argc) {
+                               host = argv[arg];
+                               if(++arg != argc) {
+                                       port = argv[arg];
+                               }
+                       }
 
-                       std::string login = preferences::login();
-                       const int res = 
gui::show_dialog(disp,NULL,_("Multiplayer"),"",gui::OK_CANCEL,&host_or_join,NULL,_("Login")
 + std::string(": "),&login);
+                       const std::vector<std::string>& campaigns = 
available_campaigns();
+                       
if(std::find(campaigns.begin(),campaigns.end(),campaign) == campaigns.end()) {
+                               std::cerr << "Campaign not found. Available 
campaigns are:\n";
+                               
std::copy(campaigns.begin(),campaigns.end(),std::ostream_iterator<std::string>(std::cerr,"\n"));
+                               return 0;
+                       }
 
-                       if(res >= 0) {
-                               preferences::set_login(login);
+                       if(campaign_name_legal(campaign) == false) {
+                               std::cerr << "Not a legal campaign name.\n";
                        }
-                       
-                       try {
-                               defines_map[state.campaign_define] = 
preproc_define();
-                               std::vector<line_source> line_src;
-                               config game_config;
-                               
read_game_cfg(defines_map,line_src,game_config,use_caching);
-                               
-                               if(res == 2) {
-                                       std::vector<std::string> chat;
-                                       config game_data;
-                                       multiplayer_game_setup_dialog 
mp_dialog(disp,units_data,game_config,state,true);
-                                       lobby::RESULT res = lobby::CONTINUE;
-                                       while(res == lobby::CONTINUE) {
-                                               res = 
lobby::enter(disp,game_data,game_config,&mp_dialog,chat);
-                                       }
 
-                                       if(res == lobby::CREATE) {
-                                               mp_dialog.start_game();
-                                       }
-                               } else if(res == 0 || res == 1) {
-                                       std::string host;
-                                       if(res == 0) {
-                                               host = 
preferences::official_network_host();
-                                       }
+                       config cfg;
+                       archive_campaign(campaign,cfg);
 
-                                       
play_multiplayer_client(disp,units_data,game_config,state,host);
-                               }
-                       } catch(gamestatus::load_game_failed& e) {
-                               gui::show_dialog(disp,NULL,"","error loading 
the game: " + e.message,gui::OK_ONLY);
-                               std::cerr << "error loading the game: " << 
e.message << "\n";
-                               return 0;
-                       } catch(gamestatus::game_error& e) {
-                               gui::show_dialog(disp,NULL,"","error while 
playing the game: " + e.message,gui::OK_ONLY);
-                               std::cerr << "error while playing the game: "
-                                         << e.message << "\n";
+                       std::cerr << "connecting to server...\n";
+                       
+                       const network::manager net_manager;
+                       network::connection sock = 
network::connect(host,lexical_cast_default<int>(port,15002));
+                       if(!sock) {
+                               std::cerr << "Could not connect to server\n";
                                return 0;
-                       } catch(network::error& e) {
-                               std::cerr << "caught network error...\n";
-                               if(e.message != "") {
-                                       
gui::show_dialog(disp,NULL,"",e.message,gui::OK_ONLY);
-                               }
-                       } catch(config::error& e) {
-                               std::cerr << "caught config::error...\n";
-                               if(e.message != "") {
-                                       
gui::show_dialog(disp,NULL,"",e.message,gui::OK_ONLY);
-                               }
-                       } catch(gamemap::incorrect_format_exception& e) {
-                               gui::show_dialog(disp,NULL,"",std::string("The 
game map could not be loaded: ") + e.msg_,gui::OK_ONLY);
-                               std::cerr << "The game map could not be loaded: 
" << e.msg_ << "\n";
-                               continue;
-                       } catch(gamestatus::load_game_exception& e) {
-                               //this will make it so next time through the 
title screen loop, this game is loaded
-                               loaded_game = e.game;
-                               loaded_game_show_replay = e.show_replay;
                        }
 
-                       continue;
-               } else if(res == gui::CHANGE_LANGUAGE) {
-
-                       std::vector<language_def> langdefs = get_languages();
+                       std::cerr << "connected to server. Building 
campaign...\n";
 
-                       //std::sort(langs.begin(),langs.end());
-                       
//std::sort(langdefs.begin(),langdefs.end(),languagedef_lessthan_p);
+                       config data;
+                       config& upload = data.add_child("upload");
+                       upload["name"] = campaign;
+                       upload["passphrase"] = passphrase;
+                       upload.add_child("data",cfg);
 
-                       // this only works because get_languages() returns a 
fresh vector at each calls
-                       // unless show_gui cleans the "*" flag
-                       const std::vector<language_def>::iterator current = 
std::find(langdefs.begin(),langdefs.end(),get_language());
-                       if(current != langdefs.end())
-                               (*current).language = "*" + (*current).language;
-
-                       // prepare a copy with just the labels for the list to 
be displayed
-                       std::vector<std::string> langs;
-                       langs.reserve(langdefs.size());
-                       
std::transform(langdefs.begin(),langdefs.end(),std::back_inserter(langs),languagedef_name);
-
-                       const int res = 
gui::show_dialog(disp,NULL,_("Language"),
-                                                _("Choose your preferred 
language") + std::string(":"),
-                                                gui::OK_CANCEL,&langs);
-                       if(size_t(res) < langs.size()) {
-                               set_language(known_languages[res]);
-                               
preferences::set_locale(known_languages[res].localename);
+                       std::cerr << "uploading campaign...\n";
+                       network::send_data(data,sock);
+                       
+                       sock = network::receive_data(data,sock,60000);
+                       if(!sock) {
+                               std::cerr << "Connection timed out\n";
+                       } else if(data.child("error")) {
+                               std::cerr << "Server responded with an error: 
'" << (*data.child("error"))["message"] << "'\n";
+                       } else if(data.child("message")) {
+                               std::cerr << 
(*data.child("message"))["message"] << "\n";
                        }
-                       continue;
-               } else if(res == gui::EDIT_PREFERENCES) {
-                       const preferences::display_manager disp_manager(&disp);
-                       preferences::show_preferences_dialog(disp);
 
-                       disp.redraw_everything();
-                       continue;
-               } else if(res == gui::SHOW_ABOUT) {
-                       about::show_about(disp);
-                       continue;
+                       return 0;
                }
+       }
 
-               if(state.campaign_define.empty() == false) {
-                       defines_map[state.campaign_define] = preproc_define();
-               }
+       srand(time(NULL));
 
-               if(defines_map.count("NORMAL")) {
-                       defines_map["MEDIUM"] = preproc_define();
-               }
+       game_controller game(argc,argv,use_sound);
+       bool res = game.init_video();
+       if(res == false) {
+               return 0;
+       }
 
+       const cursor::manager cursor_manager;
+#if defined(_X11) && !defined(__APPLE__)
+       SDL_EventState(SDL_SYSWMEVENT, SDL_ENABLE);
+#endif
 
-               //make a new game config item based on the difficulty level
-               std::vector<line_source> line_src;
-               config game_config;
-               
-               try {
-                       
read_game_cfg(defines_map,line_src,game_config,use_caching);
-               } catch(config::error& e) {
-                       gui::show_dialog(disp,NULL,"","Error loading game 
configuration files: '" + e.message + "' (The game will now exit)", 
gui::MESSAGE);
-                       throw e;
-               }
+       res = game.init_config() && game.init_language();
+       if(res == false) {
+               return 0;
+       }
 
-               const binary_paths_manager bin_paths_manager(game_config);
+       for(;;) {
+               statistics::fresh_stats();
+
+               sound::play_music(game_config::title_music);
 
-               const config::child_list& units = 
game_config.get_children("units");
-               if(units.empty()) {
-                       std::cerr << "ERROR: Could not find game configuration 
files\n";
-                       std::cerr << game_config.write();
+               std::cerr << "started music\n";
+               std::cerr << (SDL_GetTicks() - start_ticks) << "\n";
+
+               if(game.play_test() == false) {
                        return 0;
                }
 
-               game_data units_data(*units[0]);
+               if(game.play_multiplayer_mode() == false) {
+                       return 0;
+               }
 
-               try {
-                       const LEVEL_RESULT result = 
play_game(disp,state,game_config,units_data,video);
-                       if(result == VICTORY) {
-                               the_end(disp);
-                               about::show_about(disp);
+               recorder.clear();
+
+               std::cerr << "showing title screen...\n";
+               std::cerr << (SDL_GetTicks() - start_ticks) << "\n";
+               gui::TITLE_RESULT res = game.is_loading() ? gui::LOAD_GAME : 
gui::TITLE_CONTINUE;
+
+               int ntip = -1;
+               while(res == gui::TITLE_CONTINUE) {
+                       res = gui::show_title(game.disp(),&ntip);
+               }
+
+               std::cerr << "title screen returned result\n";
+               if(res == gui::QUIT_GAME) {
+                       std::cerr << "quitting game...\n";
+                       return 0;
+               } else if(res == gui::LOAD_GAME) {
+                       if(game.load_game() == false) {
+                               continue;
                        }
-               } catch(gamestatus::load_game_exception& e) {
+               } else if(res == gui::TUTORIAL) {
+                       game.set_tutorial();
+               } else if(res == gui::NEW_CAMPAIGN) {
+                       if(game.new_campaign() == false) {
+                               continue;
+                       }
+               } else if(res == gui::MULTIPLAYER) {
+                       if(game.play_multiplayer() == false) {
+                               continue;
+                       }
+               } else if(res == gui::CHANGE_LANGUAGE) {
+                       if(game.change_language() == false) {
+                               continue;
+                       }
+               } else if(res == gui::EDIT_PREFERENCES) {
+                       const preferences::display_manager 
disp_manager(&game.disp());
+                       preferences::show_preferences_dialog(game.disp());
 
-                       //this will make it so next time through the title 
screen loop, this game is loaded
-                       loaded_game = e.game;
-                       loaded_game_show_replay = e.show_replay;
+                       game.disp().redraw_everything();
+                       continue;
+               } else if(res == gui::SHOW_ABOUT) {
+                       about::show_about(game.disp());
+                       continue;
                }
+               
+               game.play_game();
        }
 
        return 0;
Index: wesnoth/src/server/Makefile.in
diff -u wesnoth/src/server/Makefile.in:1.49 wesnoth/src/server/Makefile.in:1.50
--- wesnoth/src/server/Makefile.in:1.49 Mon Sep 13 10:47:43 2004
+++ wesnoth/src/server/Makefile.in      Sat Sep 18 21:42:14 2004
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# Makefile.in generated by automake 1.8.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -512,11 +512,9 @@
          done | \
          $(AWK) '    { files[$$0] = 1; } \
               END { for (i in files) print i; }'`; \
-       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
-         test -n "$$unique" || unique=$$empty_fix; \
-         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-           $$tags $$unique; \
-       fi
+       test -z "$(ETAGS_ARGS)$$tags$$unique" \
+         || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+            $$tags $$unique
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
Index: wesnoth/src/tools/Makefile.in
diff -u wesnoth/src/tools/Makefile.in:1.47 wesnoth/src/tools/Makefile.in:1.48
--- wesnoth/src/tools/Makefile.in:1.47  Mon Sep 13 10:47:43 2004
+++ wesnoth/src/tools/Makefile.in       Sat Sep 18 21:42:14 2004
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# Makefile.in generated by automake 1.8.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -628,11 +628,9 @@
          done | \
          $(AWK) '    { files[$$0] = 1; } \
               END { for (i in files) print i; }'`; \
-       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
-         test -n "$$unique" || unique=$$empty_fix; \
-         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-           $$tags $$unique; \
-       fi
+       test -z "$(ETAGS_ARGS)$$tags$$unique" \
+         || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+            $$tags $$unique
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
Index: wesnoth/src/unit_types.cpp
diff -u wesnoth/src/unit_types.cpp:1.64 wesnoth/src/unit_types.cpp:1.65
--- wesnoth/src/unit_types.cpp:1.64     Mon Sep  6 20:50:48 2004
+++ wesnoth/src/unit_types.cpp  Sat Sep 18 21:42:13 2004
@@ -1,4 +1,4 @@
-/* $Id: unit_types.cpp,v 1.64 2004/09/06 20:50:48 Sirp Exp $ */
+/* $Id: unit_types.cpp,v 1.65 2004/09/18 21:42:13 Sirp Exp $ */
 /*
    Copyright (C) 2003 by David White <address@hidden>
    Part of the Battle for Wesnoth Project http://wesnoth.whitevine.net
@@ -1016,8 +1016,16 @@
        return NULL;
 }
 
+game_data::game_data()
+{}
+
 game_data::game_data(const config& cfg)
 {
+       set_config(cfg);
+}
+
+void game_data::set_config(const config& cfg)
+{
        static const std::vector<config*> dummy_traits;
        
        const config::child_list& unit_traits = cfg.get_children("trait");
@@ -1042,3 +1050,10 @@
                
unit_types.insert(std::pair<std::string,unit_type>(u_type.name(),u_type));
        }
 }
+
+void game_data::clear()
+{
+       movement_types.clear();
+       unit_types.clear();
+       races.clear();
+}
Index: wesnoth/src/unit_types.hpp
diff -u wesnoth/src/unit_types.hpp:1.51 wesnoth/src/unit_types.hpp:1.52
--- wesnoth/src/unit_types.hpp:1.51     Mon Sep  6 20:50:48 2004
+++ wesnoth/src/unit_types.hpp  Sat Sep 18 21:42:13 2004
@@ -1,4 +1,4 @@
-/* $Id: unit_types.hpp,v 1.51 2004/09/06 20:50:48 Sirp Exp $ */
+/* $Id: unit_types.hpp,v 1.52 2004/09/18 21:42:13 Sirp Exp $ */
 /*
    Copyright (C) 2003 by David White <address@hidden>
    Part of the Battle for Wesnoth Project http://wesnoth.whitevine.net
@@ -291,7 +291,11 @@
 
 struct game_data
 {
+       game_data();
        game_data(const config& cfg);
+       void set_config(const config& cfg);
+       void clear();
+
        movement_type_map movement_types;
        typedef std::map<std::string,unit_type> unit_type_map;
        unit_type_map unit_types;
Index: wesnoth/src/zip/Makefile.in
diff -u wesnoth/src/zip/Makefile.in:1.32 wesnoth/src/zip/Makefile.in:1.33
--- wesnoth/src/zip/Makefile.in:1.32    Mon Sep 13 10:47:43 2004
+++ wesnoth/src/zip/Makefile.in Sat Sep 18 21:42:14 2004
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# Makefile.in generated by automake 1.8.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -493,11 +493,9 @@
          done | \
          $(AWK) '    { files[$$0] = 1; } \
               END { for (i in files) print i; }'`; \
-       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
-         test -n "$$unique" || unique=$$empty_fix; \
-         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-           $$tags $$unique; \
-       fi
+       test -z "$(ETAGS_ARGS)$$tags$$unique" \
+         || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+            $$tags $$unique
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)




reply via email to

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