diff --git a/.hgignore b/.hgignore
index 60b5b19be..16e7f1eef 100644
--- a/.hgignore
+++ b/.hgignore
@@ -257,3 +257,6 @@ code/web/public_php/db_version_tool
code/web/public_php/db_version_web
code/web/public_php/role_service
code/web/public_php/role_support
+code/web/public_php/role_domain
+code/web/public_php/db_version_ring
+code/web/public_php/config_user.php
diff --git a/code/nel/tools/build_gamedata/0_setup.py b/code/nel/tools/build_gamedata/0_setup.py
index 1e1824b2c..aeac30eaf 100755
--- a/code/nel/tools/build_gamedata/0_setup.py
+++ b/code/nel/tools/build_gamedata/0_setup.py
@@ -8,7 +8,7 @@
# Run all setup processes
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -266,7 +266,7 @@ if not args.noconf:
sf.write("# Site configuration.\n")
sf.write("# \n")
sf.write("# NeL - MMORPG Framework \n")
- sf.write("# Copyright (C) 2010 Winch Gate Property Limited\n")
+ sf.write("# Copyright (C) 2009-2014 by authors\n")
sf.write("# \n")
sf.write("# This program is free software: you can redistribute it and/or modify\n")
sf.write("# it under the terms of the GNU Affero General Public License as\n")
diff --git a/code/nel/tools/build_gamedata/1_export.py b/code/nel/tools/build_gamedata/1_export.py
index 1b77d2c23..d9e4670f7 100755
--- a/code/nel/tools/build_gamedata/1_export.py
+++ b/code/nel/tools/build_gamedata/1_export.py
@@ -8,7 +8,7 @@
# Run all export processes
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/2_build.py b/code/nel/tools/build_gamedata/2_build.py
index 79af533fa..4777ad2d1 100755
--- a/code/nel/tools/build_gamedata/2_build.py
+++ b/code/nel/tools/build_gamedata/2_build.py
@@ -8,7 +8,7 @@
# Run all build processes
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/3_install.py b/code/nel/tools/build_gamedata/3_install.py
index edc542bb3..b2584274c 100755
--- a/code/nel/tools/build_gamedata/3_install.py
+++ b/code/nel/tools/build_gamedata/3_install.py
@@ -8,7 +8,7 @@
# Run all install processes
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/a1_worldedit_data.py b/code/nel/tools/build_gamedata/a1_worldedit_data.py
index e69de29bb..f7aae7a04 100755
--- a/code/nel/tools/build_gamedata/a1_worldedit_data.py
+++ b/code/nel/tools/build_gamedata/a1_worldedit_data.py
@@ -0,0 +1,74 @@
+#!/usr/bin/python
+#
+# \file a1_worldedit_data.py
+# \brief Install worldedit data
+# \date 2014-09-10 14:01GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Install worldedit data
+#
+# NeL - MMORPG Framework
+# Copyright (C) 2014 by authors
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+
+import time, sys, os, shutil, subprocess, distutils.dir_util
+sys.path.append("configuration")
+
+if os.path.isfile("log.log"):
+ os.remove("log.log")
+log = open("log.log", "w")
+from scripts import *
+from buildsite import *
+from tools import *
+
+sys.path.append(WorkspaceDirectory)
+from projects import *
+
+# Log error
+printLog(log, "")
+printLog(log, "-------")
+printLog(log, "--- Install worldedit data")
+printLog(log, "-------")
+printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
+printLog(log, "")
+
+for ecosystem in WorldEditEcosystems:
+ ecosystemName = ecosystem[0]
+ srcZoneLigos = ExportBuildDirectory + "/ecosystems/" + ecosystemName + "/ligo_es/zoneligos/"
+ dstZoneLigos = WorldEditInstallDirectory + "/" + ecosystemName + "/zoneligos/"
+ mkPath(log, srcZoneLigos)
+ mkPath(log, dstZoneLigos)
+ copyFilesNoTreeIfNeeded(log, srcZoneLigos, dstZoneLigos)
+ srcZoneBitmaps = DatabaseDirectory + "/landscape/ligo/" + ecosystemName + "/zonebitmaps/"
+ dstZoneBitmaps = WorldEditInstallDirectory + "/" + ecosystemName + "/zonebitmaps/"
+ mkPath(log, srcZoneBitmaps)
+ mkPath(log, dstZoneBitmaps)
+ copyFilesExtNoTreeIfNeeded(log, srcZoneBitmaps, dstZoneBitmaps, ".tga")
+ copyFilesExtNoTreeIfNeeded(log, srcZoneBitmaps, dstZoneBitmaps, ".png")
+ dstCollisionMap = WorldEditInstallDirectory + "/" + ecosystemName + "/collisionmap/"
+ mkPath(log, dstCollisionMap)
+ for continentName in ecosystem[1]:
+ srcCollisionMap = ExportBuildDirectory + "/continents/" + continentName + "/ai_wmap/"
+ mkPath(log, srcCollisionMap)
+ copyFilesExtNoTreeIfNeeded(log, srcCollisionMap, dstCollisionMap, ".tga")
+ copyFilesExtNoTreeIfNeeded(log, srcCollisionMap, dstCollisionMap, ".png")
+printLog(log, "")
+
+log.close()
+if os.path.isfile("a1_worldedit_data.log"):
+ os.remove("a1_worldedit_data.log")
+shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_worldedit_data.log")
+shutil.move("log.log", "a1_worldedit_data.log")
diff --git a/code/nel/tools/build_gamedata/b1_client_dev.py b/code/nel/tools/build_gamedata/b1_client_dev.py
index 9553ed6df..d8c77c1fa 100755
--- a/code/nel/tools/build_gamedata/b1_client_dev.py
+++ b/code/nel/tools/build_gamedata/b1_client_dev.py
@@ -8,7 +8,7 @@
# Install to client dev
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/b2_shard_data.py b/code/nel/tools/build_gamedata/b2_shard_data.py
index 2843769e9..f0a50cfdf 100755
--- a/code/nel/tools/build_gamedata/b2_shard_data.py
+++ b/code/nel/tools/build_gamedata/b2_shard_data.py
@@ -8,7 +8,7 @@
# Install shard data
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/configuration/scripts.py b/code/nel/tools/build_gamedata/configuration/scripts.py
index 02f13139c..9a815a2b9 100755
--- a/code/nel/tools/build_gamedata/configuration/scripts.py
+++ b/code/nel/tools/build_gamedata/configuration/scripts.py
@@ -7,7 +7,7 @@
# Useful scripts
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/configuration/tools.py b/code/nel/tools/build_gamedata/configuration/tools.py
index f9cc54964..1a31d2986 100755
--- a/code/nel/tools/build_gamedata/configuration/tools.py
+++ b/code/nel/tools/build_gamedata/configuration/tools.py
@@ -8,7 +8,7 @@
# Tools configuration.
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/d1_client_patch.py b/code/nel/tools/build_gamedata/d1_client_patch.py
index 861ea8bd0..600347d0b 100755
--- a/code/nel/tools/build_gamedata/d1_client_patch.py
+++ b/code/nel/tools/build_gamedata/d1_client_patch.py
@@ -8,7 +8,7 @@
# Install to client patch
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/d2_client_install.py b/code/nel/tools/build_gamedata/d2_client_install.py
index 26fc4f5c5..febaef656 100755
--- a/code/nel/tools/build_gamedata/d2_client_install.py
+++ b/code/nel/tools/build_gamedata/d2_client_install.py
@@ -8,7 +8,7 @@
# Install to client install
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/export_build_install.py b/code/nel/tools/build_gamedata/export_build_install.py
index 5be6a2dfc..b5e46ba06 100755
--- a/code/nel/tools/build_gamedata/export_build_install.py
+++ b/code/nel/tools/build_gamedata/export_build_install.py
@@ -8,7 +8,7 @@
# Run all processes
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/generators/ecosystem_project_template/directories.py b/code/nel/tools/build_gamedata/generators/ecosystem_project_template/directories.py
index 90c8b5a91..34886120e 100755
--- a/code/nel/tools/build_gamedata/generators/ecosystem_project_template/directories.py
+++ b/code/nel/tools/build_gamedata/generators/ecosystem_project_template/directories.py
@@ -14,7 +14,7 @@
# Directories configuration for '%PreGenEcosystemName%' ecosystem.
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/generators/ecosystem_project_template/process.py b/code/nel/tools/build_gamedata/generators/ecosystem_project_template/process.py
index 2e3d9643a..367ff8feb 100755
--- a/code/nel/tools/build_gamedata/generators/ecosystem_project_template/process.py
+++ b/code/nel/tools/build_gamedata/generators/ecosystem_project_template/process.py
@@ -12,7 +12,7 @@
# Process configuration for '%PreGenEcosystemName%' ecosystem.
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/generators/generate_all.py b/code/nel/tools/build_gamedata/generators/generate_all.py
index cb191e3d9..29060647d 100755
--- a/code/nel/tools/build_gamedata/generators/generate_all.py
+++ b/code/nel/tools/build_gamedata/generators/generate_all.py
@@ -8,7 +8,7 @@
# Run all setup processes
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/generators/generate_ecosystem_projects.py b/code/nel/tools/build_gamedata/generators/generate_ecosystem_projects.py
index b1852565e..0f71f615b 100755
--- a/code/nel/tools/build_gamedata/generators/generate_ecosystem_projects.py
+++ b/code/nel/tools/build_gamedata/generators/generate_ecosystem_projects.py
@@ -8,7 +8,7 @@
# Generate ecosystem projects
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/generators/generate_simple_max_exporters.py b/code/nel/tools/build_gamedata/generators/generate_simple_max_exporters.py
index cd8a9039f..be4867840 100755
--- a/code/nel/tools/build_gamedata/generators/generate_simple_max_exporters.py
+++ b/code/nel/tools/build_gamedata/generators/generate_simple_max_exporters.py
@@ -8,7 +8,7 @@
# Run all setup processes
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/generators/generate_tagged_max_exporters.py b/code/nel/tools/build_gamedata/generators/generate_tagged_max_exporters.py
index 89a65d3fb..99f8cba83 100755
--- a/code/nel/tools/build_gamedata/generators/generate_tagged_max_exporters.py
+++ b/code/nel/tools/build_gamedata/generators/generate_tagged_max_exporters.py
@@ -8,7 +8,7 @@
# Run all setup processes
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/generators/simple_max_exporter_template/0_setup.py b/code/nel/tools/build_gamedata/generators/simple_max_exporter_template/0_setup.py
index 1531f2c89..520eedb03 100755
--- a/code/nel/tools/build_gamedata/generators/simple_max_exporter_template/0_setup.py
+++ b/code/nel/tools/build_gamedata/generators/simple_max_exporter_template/0_setup.py
@@ -8,7 +8,7 @@
# Setup %PreGenProcessName%
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/generators/simple_max_exporter_template/1_export_header.py b/code/nel/tools/build_gamedata/generators/simple_max_exporter_template/1_export_header.py
index 1844e0777..6e857af0d 100755
--- a/code/nel/tools/build_gamedata/generators/simple_max_exporter_template/1_export_header.py
+++ b/code/nel/tools/build_gamedata/generators/simple_max_exporter_template/1_export_header.py
@@ -12,7 +12,7 @@
# Export %PreGenProcessName%
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/generators/simple_max_exporter_template/2_build.py b/code/nel/tools/build_gamedata/generators/simple_max_exporter_template/2_build.py
index 9b84cdf41..9583c04eb 100755
--- a/code/nel/tools/build_gamedata/generators/simple_max_exporter_template/2_build.py
+++ b/code/nel/tools/build_gamedata/generators/simple_max_exporter_template/2_build.py
@@ -8,7 +8,7 @@
# Build %PreGenProcessName%
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/generators/simple_max_exporter_template/3_install.py b/code/nel/tools/build_gamedata/generators/simple_max_exporter_template/3_install.py
index 8406715d7..f2d296d55 100755
--- a/code/nel/tools/build_gamedata/generators/simple_max_exporter_template/3_install.py
+++ b/code/nel/tools/build_gamedata/generators/simple_max_exporter_template/3_install.py
@@ -8,7 +8,7 @@
# Install %PreGenProcessName%
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/generators/tagged_max_exporter_template/0_setup.py b/code/nel/tools/build_gamedata/generators/tagged_max_exporter_template/0_setup.py
index b2340583e..6bd49c40f 100755
--- a/code/nel/tools/build_gamedata/generators/tagged_max_exporter_template/0_setup.py
+++ b/code/nel/tools/build_gamedata/generators/tagged_max_exporter_template/0_setup.py
@@ -8,7 +8,7 @@
# Setup %PreGenProcessName%
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/generators/tagged_max_exporter_template/1_export_header.py b/code/nel/tools/build_gamedata/generators/tagged_max_exporter_template/1_export_header.py
index d16797a40..523001d22 100755
--- a/code/nel/tools/build_gamedata/generators/tagged_max_exporter_template/1_export_header.py
+++ b/code/nel/tools/build_gamedata/generators/tagged_max_exporter_template/1_export_header.py
@@ -12,7 +12,7 @@
# Export %PreGenProcessName%
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/generators/tagged_max_exporter_template/2_build.py b/code/nel/tools/build_gamedata/generators/tagged_max_exporter_template/2_build.py
index 9b84cdf41..9583c04eb 100755
--- a/code/nel/tools/build_gamedata/generators/tagged_max_exporter_template/2_build.py
+++ b/code/nel/tools/build_gamedata/generators/tagged_max_exporter_template/2_build.py
@@ -8,7 +8,7 @@
# Build %PreGenProcessName%
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/generators/tagged_max_exporter_template/3_install.py b/code/nel/tools/build_gamedata/generators/tagged_max_exporter_template/3_install.py
index bc64951a2..65122f3f8 100755
--- a/code/nel/tools/build_gamedata/generators/tagged_max_exporter_template/3_install.py
+++ b/code/nel/tools/build_gamedata/generators/tagged_max_exporter_template/3_install.py
@@ -8,7 +8,7 @@
# Install %PreGenProcessName%
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/0_setup.py b/code/nel/tools/build_gamedata/processes/0_setup.py
index 011c65f7b..6fb354781 100755
--- a/code/nel/tools/build_gamedata/processes/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/0_setup.py
@@ -8,7 +8,7 @@
# Run all setup processes
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/1_export.py b/code/nel/tools/build_gamedata/processes/1_export.py
index 00339aeff..f3ea98ed7 100755
--- a/code/nel/tools/build_gamedata/processes/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/1_export.py
@@ -8,7 +8,7 @@
# Run all export processes
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/2_build.py b/code/nel/tools/build_gamedata/processes/2_build.py
index 80e089b1a..eea528708 100755
--- a/code/nel/tools/build_gamedata/processes/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/2_build.py
@@ -8,7 +8,7 @@
# Run all build processes
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/3_install.py b/code/nel/tools/build_gamedata/processes/3_install.py
index 1d97a4b8c..a34fdbce6 100755
--- a/code/nel/tools/build_gamedata/processes/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/3_install.py
@@ -8,7 +8,7 @@
# Run all install processes
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/_dummy/0_setup.py b/code/nel/tools/build_gamedata/processes/_dummy/0_setup.py
index deefb4f12..e3104979d 100755
--- a/code/nel/tools/build_gamedata/processes/_dummy/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/_dummy/0_setup.py
@@ -8,7 +8,7 @@
# Setup dummy
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/_dummy/1_export.py b/code/nel/tools/build_gamedata/processes/_dummy/1_export.py
index 851dd8077..373f984ae 100755
--- a/code/nel/tools/build_gamedata/processes/_dummy/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/_dummy/1_export.py
@@ -8,7 +8,7 @@
# Export dummy
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/_dummy/2_build.py b/code/nel/tools/build_gamedata/processes/_dummy/2_build.py
index 853858806..6dd48b9e2 100755
--- a/code/nel/tools/build_gamedata/processes/_dummy/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/_dummy/2_build.py
@@ -8,7 +8,7 @@
# Build dummy
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/_dummy/3_install.py b/code/nel/tools/build_gamedata/processes/_dummy/3_install.py
index 9630480cc..d809646b8 100755
--- a/code/nel/tools/build_gamedata/processes/_dummy/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/_dummy/3_install.py
@@ -8,7 +8,7 @@
# Install dummy
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/ai_wmap/0_setup.py b/code/nel/tools/build_gamedata/processes/ai_wmap/0_setup.py
index 03a3acde9..418bb8de3 100755
--- a/code/nel/tools/build_gamedata/processes/ai_wmap/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/ai_wmap/0_setup.py
@@ -8,7 +8,7 @@
# Setup ai_wmap
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/ai_wmap/1_export.py b/code/nel/tools/build_gamedata/processes/ai_wmap/1_export.py
index 5259b3515..de3d108c4 100755
--- a/code/nel/tools/build_gamedata/processes/ai_wmap/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/ai_wmap/1_export.py
@@ -8,7 +8,7 @@
# Export ai_wmap
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/ai_wmap/2_build.py b/code/nel/tools/build_gamedata/processes/ai_wmap/2_build.py
index f32cc4d91..8aa63f62f 100755
--- a/code/nel/tools/build_gamedata/processes/ai_wmap/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/ai_wmap/2_build.py
@@ -8,7 +8,7 @@
# Build ai_wmap
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/ai_wmap/3_install.py b/code/nel/tools/build_gamedata/processes/ai_wmap/3_install.py
index e9e68651e..fb81b991d 100755
--- a/code/nel/tools/build_gamedata/processes/ai_wmap/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/ai_wmap/3_install.py
@@ -8,7 +8,7 @@
# Install ai_wmap
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/anim/0_setup.py b/code/nel/tools/build_gamedata/processes/anim/0_setup.py
index 7261feeeb..1f9cf10d7 100755
--- a/code/nel/tools/build_gamedata/processes/anim/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/anim/0_setup.py
@@ -8,7 +8,7 @@
# Setup anim
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/anim/1_export.py b/code/nel/tools/build_gamedata/processes/anim/1_export.py
index c59056266..4c51fc261 100755
--- a/code/nel/tools/build_gamedata/processes/anim/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/anim/1_export.py
@@ -12,7 +12,7 @@
# Export anim
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/anim/2_build.py b/code/nel/tools/build_gamedata/processes/anim/2_build.py
index 8a2ab5bab..81d968b06 100755
--- a/code/nel/tools/build_gamedata/processes/anim/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/anim/2_build.py
@@ -8,7 +8,7 @@
# Build anim
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/anim/3_install.py b/code/nel/tools/build_gamedata/processes/anim/3_install.py
index 8887ba8fe..896f43db0 100755
--- a/code/nel/tools/build_gamedata/processes/anim/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/anim/3_install.py
@@ -8,7 +8,7 @@
# Install anim
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/cegui/0_setup.py b/code/nel/tools/build_gamedata/processes/cegui/0_setup.py
index 8ce9a3e78..b3f61468c 100755
--- a/code/nel/tools/build_gamedata/processes/cegui/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/cegui/0_setup.py
@@ -7,7 +7,7 @@
# Setup cegui
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/cegui/1_export.py b/code/nel/tools/build_gamedata/processes/cegui/1_export.py
index 71104fb4a..018562c46 100755
--- a/code/nel/tools/build_gamedata/processes/cegui/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/cegui/1_export.py
@@ -7,7 +7,7 @@
# Export cegui
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/cegui/2_build.py b/code/nel/tools/build_gamedata/processes/cegui/2_build.py
index 86afc1ec3..134830547 100755
--- a/code/nel/tools/build_gamedata/processes/cegui/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/cegui/2_build.py
@@ -7,7 +7,7 @@
# Build cegui
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/cegui/3_install.py b/code/nel/tools/build_gamedata/processes/cegui/3_install.py
index 89525b1e8..d1d6547ad 100755
--- a/code/nel/tools/build_gamedata/processes/cegui/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/cegui/3_install.py
@@ -7,7 +7,7 @@
# Install cegui
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/clodbank/0_setup.py b/code/nel/tools/build_gamedata/processes/clodbank/0_setup.py
index 223d5a163..532113523 100755
--- a/code/nel/tools/build_gamedata/processes/clodbank/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/clodbank/0_setup.py
@@ -8,7 +8,7 @@
# Setup clodbank
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/clodbank/1_export.py b/code/nel/tools/build_gamedata/processes/clodbank/1_export.py
index 0046c2a01..64cd875df 100755
--- a/code/nel/tools/build_gamedata/processes/clodbank/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/clodbank/1_export.py
@@ -12,7 +12,7 @@
# Export clodbank
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/clodbank/2_build.py b/code/nel/tools/build_gamedata/processes/clodbank/2_build.py
index 9bd6d2cd6..9146f8c8e 100755
--- a/code/nel/tools/build_gamedata/processes/clodbank/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/clodbank/2_build.py
@@ -8,7 +8,7 @@
# Build clodbank
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/clodbank/3_install.py b/code/nel/tools/build_gamedata/processes/clodbank/3_install.py
index efc3483eb..b8da3d280 100755
--- a/code/nel/tools/build_gamedata/processes/clodbank/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/clodbank/3_install.py
@@ -8,7 +8,7 @@
# Install clodbank
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/copy/0_setup.py b/code/nel/tools/build_gamedata/processes/copy/0_setup.py
index d1dd6a59b..f87f94bc9 100755
--- a/code/nel/tools/build_gamedata/processes/copy/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/copy/0_setup.py
@@ -8,7 +8,7 @@
# Setup copy
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/copy/1_export.py b/code/nel/tools/build_gamedata/processes/copy/1_export.py
index 50922dc75..39fa7fa4e 100755
--- a/code/nel/tools/build_gamedata/processes/copy/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/copy/1_export.py
@@ -8,7 +8,7 @@
# Export copy
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/copy/2_build.py b/code/nel/tools/build_gamedata/processes/copy/2_build.py
index 21b55c1de..796ce3451 100755
--- a/code/nel/tools/build_gamedata/processes/copy/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/copy/2_build.py
@@ -8,7 +8,7 @@
# Build copy
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/copy/3_install.py b/code/nel/tools/build_gamedata/processes/copy/3_install.py
index af988c8a7..7bcacc473 100755
--- a/code/nel/tools/build_gamedata/processes/copy/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/copy/3_install.py
@@ -8,7 +8,7 @@
# Install copy
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/displace/0_setup.py b/code/nel/tools/build_gamedata/processes/displace/0_setup.py
index 9aed98716..6a5e3170e 100755
--- a/code/nel/tools/build_gamedata/processes/displace/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/displace/0_setup.py
@@ -8,7 +8,7 @@
# Setup displace
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/displace/1_export.py b/code/nel/tools/build_gamedata/processes/displace/1_export.py
index edd93f2ea..52ce5e24d 100755
--- a/code/nel/tools/build_gamedata/processes/displace/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/displace/1_export.py
@@ -8,7 +8,7 @@
# Export displace
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/displace/2_build.py b/code/nel/tools/build_gamedata/processes/displace/2_build.py
index 8a443450c..bc7f91aac 100755
--- a/code/nel/tools/build_gamedata/processes/displace/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/displace/2_build.py
@@ -8,7 +8,7 @@
# Build displace
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/displace/3_install.py b/code/nel/tools/build_gamedata/processes/displace/3_install.py
index bdf8b3a30..76c0c03e4 100755
--- a/code/nel/tools/build_gamedata/processes/displace/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/displace/3_install.py
@@ -8,7 +8,7 @@
# Install displace
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/farbank/0_setup.py b/code/nel/tools/build_gamedata/processes/farbank/0_setup.py
index b02191d2a..9761fa8b1 100755
--- a/code/nel/tools/build_gamedata/processes/farbank/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/farbank/0_setup.py
@@ -8,7 +8,7 @@
# Setup farbank
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/farbank/1_export.py b/code/nel/tools/build_gamedata/processes/farbank/1_export.py
index 267b5410e..380a3444e 100755
--- a/code/nel/tools/build_gamedata/processes/farbank/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/farbank/1_export.py
@@ -8,7 +8,7 @@
# Export farbank
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/farbank/2_build.py b/code/nel/tools/build_gamedata/processes/farbank/2_build.py
index aed7e4418..85008bdde 100755
--- a/code/nel/tools/build_gamedata/processes/farbank/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/farbank/2_build.py
@@ -8,7 +8,7 @@
# Build farbank
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/farbank/3_install.py b/code/nel/tools/build_gamedata/processes/farbank/3_install.py
index f786a7850..d9164f84a 100755
--- a/code/nel/tools/build_gamedata/processes/farbank/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/farbank/3_install.py
@@ -8,7 +8,7 @@
# Install farbank
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/font/0_setup.py b/code/nel/tools/build_gamedata/processes/font/0_setup.py
index 9b29962b2..4b2a149da 100755
--- a/code/nel/tools/build_gamedata/processes/font/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/font/0_setup.py
@@ -8,7 +8,7 @@
# setup font
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/font/1_export.py b/code/nel/tools/build_gamedata/processes/font/1_export.py
index 1911aaa0e..f97d3375e 100755
--- a/code/nel/tools/build_gamedata/processes/font/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/font/1_export.py
@@ -8,7 +8,7 @@
# Export font
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/font/2_build.py b/code/nel/tools/build_gamedata/processes/font/2_build.py
index 2f2db281d..bc8794996 100755
--- a/code/nel/tools/build_gamedata/processes/font/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/font/2_build.py
@@ -8,7 +8,7 @@
# Build font
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/font/3_install.py b/code/nel/tools/build_gamedata/processes/font/3_install.py
index 8a7b79e93..c18ae12e3 100755
--- a/code/nel/tools/build_gamedata/processes/font/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/font/3_install.py
@@ -8,7 +8,7 @@
# Install font
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/ig/0_setup.py b/code/nel/tools/build_gamedata/processes/ig/0_setup.py
index 854777f6f..830a32e26 100755
--- a/code/nel/tools/build_gamedata/processes/ig/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/ig/0_setup.py
@@ -8,7 +8,7 @@
# Setup ig
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/ig/1_export.py b/code/nel/tools/build_gamedata/processes/ig/1_export.py
index 6a2958a12..e22e7ec82 100755
--- a/code/nel/tools/build_gamedata/processes/ig/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/ig/1_export.py
@@ -8,7 +8,7 @@
# Export ig
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/ig/2_build.py b/code/nel/tools/build_gamedata/processes/ig/2_build.py
index 50eb1dbfa..afb84c312 100755
--- a/code/nel/tools/build_gamedata/processes/ig/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/ig/2_build.py
@@ -8,7 +8,7 @@
# Build ig
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/ig/3_install.py b/code/nel/tools/build_gamedata/processes/ig/3_install.py
index de4ac592f..7ab5f182d 100755
--- a/code/nel/tools/build_gamedata/processes/ig/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/ig/3_install.py
@@ -8,7 +8,7 @@
# Install ig
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/ig_light/0_setup.py b/code/nel/tools/build_gamedata/processes/ig_light/0_setup.py
index c03ddefad..82bda3129 100755
--- a/code/nel/tools/build_gamedata/processes/ig_light/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/ig_light/0_setup.py
@@ -8,7 +8,7 @@
# Setup ig_light
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/ig_light/1_export.py b/code/nel/tools/build_gamedata/processes/ig_light/1_export.py
index 8423c5738..4880b9d57 100755
--- a/code/nel/tools/build_gamedata/processes/ig_light/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/ig_light/1_export.py
@@ -8,7 +8,7 @@
# Export ig_light
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/ig_light/2_build.py b/code/nel/tools/build_gamedata/processes/ig_light/2_build.py
index cff5766ce..41ae92ff8 100755
--- a/code/nel/tools/build_gamedata/processes/ig_light/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/ig_light/2_build.py
@@ -8,7 +8,7 @@
# Build ig_light
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/ig_light/3_install.py b/code/nel/tools/build_gamedata/processes/ig_light/3_install.py
index 3a94640bf..332d02184 100755
--- a/code/nel/tools/build_gamedata/processes/ig_light/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/ig_light/3_install.py
@@ -8,7 +8,7 @@
# Install ig_light
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/interface/0_setup.py b/code/nel/tools/build_gamedata/processes/interface/0_setup.py
index 9b58eebb1..4a227d364 100755
--- a/code/nel/tools/build_gamedata/processes/interface/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/interface/0_setup.py
@@ -8,7 +8,7 @@
# Setup interface
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/interface/1_export.py b/code/nel/tools/build_gamedata/processes/interface/1_export.py
index d4146db80..b6c0f394c 100755
--- a/code/nel/tools/build_gamedata/processes/interface/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/interface/1_export.py
@@ -8,7 +8,7 @@
# Export interface
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/interface/2_build.py b/code/nel/tools/build_gamedata/processes/interface/2_build.py
index 0e1a0061f..4dfead25b 100755
--- a/code/nel/tools/build_gamedata/processes/interface/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/interface/2_build.py
@@ -8,7 +8,7 @@
# Build interface
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/interface/3_install.py b/code/nel/tools/build_gamedata/processes/interface/3_install.py
index a0800c522..d7f052561 100755
--- a/code/nel/tools/build_gamedata/processes/interface/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/interface/3_install.py
@@ -8,7 +8,7 @@
# Install interface
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/ligo/0_setup.py b/code/nel/tools/build_gamedata/processes/ligo/0_setup.py
index 3343e07ce..32a74bf63 100755
--- a/code/nel/tools/build_gamedata/processes/ligo/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/ligo/0_setup.py
@@ -8,7 +8,7 @@
# Setup ligo
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/ligo/1_export.py b/code/nel/tools/build_gamedata/processes/ligo/1_export.py
index 029121478..09be53494 100755
--- a/code/nel/tools/build_gamedata/processes/ligo/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/ligo/1_export.py
@@ -8,7 +8,7 @@
# Export ligo
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/ligo/2_build.py b/code/nel/tools/build_gamedata/processes/ligo/2_build.py
index 9d51788bb..54f5d75e8 100755
--- a/code/nel/tools/build_gamedata/processes/ligo/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/ligo/2_build.py
@@ -8,7 +8,7 @@
# Build ligo
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/ligo/3_install.py b/code/nel/tools/build_gamedata/processes/ligo/3_install.py
index 5bf59b884..9d9e59b54 100755
--- a/code/nel/tools/build_gamedata/processes/ligo/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/ligo/3_install.py
@@ -8,7 +8,7 @@
# Install ligo
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/map/0_setup.py b/code/nel/tools/build_gamedata/processes/map/0_setup.py
index 10769e968..5cfc189d5 100755
--- a/code/nel/tools/build_gamedata/processes/map/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/map/0_setup.py
@@ -8,7 +8,7 @@
# Setup map
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/map/1_export.py b/code/nel/tools/build_gamedata/processes/map/1_export.py
index 3432eddd6..a77d32082 100755
--- a/code/nel/tools/build_gamedata/processes/map/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/map/1_export.py
@@ -8,7 +8,7 @@
# Export map
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/map/2_build.py b/code/nel/tools/build_gamedata/processes/map/2_build.py
index 91b7ffbb5..82a777410 100755
--- a/code/nel/tools/build_gamedata/processes/map/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/map/2_build.py
@@ -8,7 +8,7 @@
# Build map
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/map/3_install.py b/code/nel/tools/build_gamedata/processes/map/3_install.py
index 29a8cbd2f..a5a56bb94 100755
--- a/code/nel/tools/build_gamedata/processes/map/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/map/3_install.py
@@ -8,7 +8,7 @@
# Install map
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/pacs_prim/0_setup.py b/code/nel/tools/build_gamedata/processes/pacs_prim/0_setup.py
index 5692df9aa..e9bdb5918 100755
--- a/code/nel/tools/build_gamedata/processes/pacs_prim/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/pacs_prim/0_setup.py
@@ -8,7 +8,7 @@
# Setup pacs_prim
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/pacs_prim/1_export.py b/code/nel/tools/build_gamedata/processes/pacs_prim/1_export.py
index 511467d3c..4fb464704 100755
--- a/code/nel/tools/build_gamedata/processes/pacs_prim/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/pacs_prim/1_export.py
@@ -12,7 +12,7 @@
# Export pacs_prim
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/pacs_prim/2_build.py b/code/nel/tools/build_gamedata/processes/pacs_prim/2_build.py
index 455546657..d50aa6b8c 100755
--- a/code/nel/tools/build_gamedata/processes/pacs_prim/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/pacs_prim/2_build.py
@@ -8,7 +8,7 @@
# Build pacs_prim
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/pacs_prim/3_install.py b/code/nel/tools/build_gamedata/processes/pacs_prim/3_install.py
index a696f73ae..da932c469 100755
--- a/code/nel/tools/build_gamedata/processes/pacs_prim/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/pacs_prim/3_install.py
@@ -8,7 +8,7 @@
# Install pacs_prim
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/pacs_prim_list/0_setup.py b/code/nel/tools/build_gamedata/processes/pacs_prim_list/0_setup.py
index c761b033c..6be8fbea3 100755
--- a/code/nel/tools/build_gamedata/processes/pacs_prim_list/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/pacs_prim_list/0_setup.py
@@ -8,7 +8,7 @@
# Setup pacs_prim_list
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/pacs_prim_list/1_export.py b/code/nel/tools/build_gamedata/processes/pacs_prim_list/1_export.py
index 0876366c2..3f250406b 100755
--- a/code/nel/tools/build_gamedata/processes/pacs_prim_list/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/pacs_prim_list/1_export.py
@@ -8,7 +8,7 @@
# Export pacs_prim_list
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/pacs_prim_list/2_build.py b/code/nel/tools/build_gamedata/processes/pacs_prim_list/2_build.py
index 169b8ee76..3c1f3cdbb 100755
--- a/code/nel/tools/build_gamedata/processes/pacs_prim_list/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/pacs_prim_list/2_build.py
@@ -8,7 +8,7 @@
# Build pacs_prim_list
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/pacs_prim_list/3_install.py b/code/nel/tools/build_gamedata/processes/pacs_prim_list/3_install.py
index 50d920fe1..73656122c 100755
--- a/code/nel/tools/build_gamedata/processes/pacs_prim_list/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/pacs_prim_list/3_install.py
@@ -8,7 +8,7 @@
# Install pacs_prim_list
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/properties/0_setup.py b/code/nel/tools/build_gamedata/processes/properties/0_setup.py
index 4118cfeb3..1a0889caf 100755
--- a/code/nel/tools/build_gamedata/processes/properties/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/properties/0_setup.py
@@ -8,7 +8,7 @@
# Setup properties
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/properties/1_export.py b/code/nel/tools/build_gamedata/processes/properties/1_export.py
index 1c91b20db..809dc440c 100755
--- a/code/nel/tools/build_gamedata/processes/properties/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/properties/1_export.py
@@ -8,7 +8,7 @@
# Export properties
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/properties/2_build.py b/code/nel/tools/build_gamedata/processes/properties/2_build.py
index beb9ef8d5..721d58174 100755
--- a/code/nel/tools/build_gamedata/processes/properties/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/properties/2_build.py
@@ -8,7 +8,7 @@
# Build properties
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/properties/3_install.py b/code/nel/tools/build_gamedata/processes/properties/3_install.py
index 5a0321140..79da071c0 100755
--- a/code/nel/tools/build_gamedata/processes/properties/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/properties/3_install.py
@@ -8,7 +8,7 @@
# Install properties
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/ps/0_setup.py b/code/nel/tools/build_gamedata/processes/ps/0_setup.py
index 673cfc976..c602cb8fe 100755
--- a/code/nel/tools/build_gamedata/processes/ps/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/ps/0_setup.py
@@ -8,7 +8,7 @@
# Setup ps
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/ps/1_export.py b/code/nel/tools/build_gamedata/processes/ps/1_export.py
index f1059f7d3..e30385335 100755
--- a/code/nel/tools/build_gamedata/processes/ps/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/ps/1_export.py
@@ -8,7 +8,7 @@
# Export ps
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/ps/2_build.py b/code/nel/tools/build_gamedata/processes/ps/2_build.py
index 205f7bc23..71c45e42b 100755
--- a/code/nel/tools/build_gamedata/processes/ps/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/ps/2_build.py
@@ -8,7 +8,7 @@
# Build ps
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/ps/3_install.py b/code/nel/tools/build_gamedata/processes/ps/3_install.py
index 28efa96b2..56713d999 100755
--- a/code/nel/tools/build_gamedata/processes/ps/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/ps/3_install.py
@@ -8,7 +8,7 @@
# Install ps
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/rbank/0_setup.py b/code/nel/tools/build_gamedata/processes/rbank/0_setup.py
index 4c11c57b1..94bdb1151 100755
--- a/code/nel/tools/build_gamedata/processes/rbank/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/rbank/0_setup.py
@@ -8,7 +8,7 @@
# Setup rbank
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/rbank/1_export.py b/code/nel/tools/build_gamedata/processes/rbank/1_export.py
index ea078d41d..4b5667961 100755
--- a/code/nel/tools/build_gamedata/processes/rbank/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/rbank/1_export.py
@@ -12,7 +12,7 @@
# Export rbank
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/rbank/2_build.py b/code/nel/tools/build_gamedata/processes/rbank/2_build.py
index 0da42fed5..b38aea94b 100755
--- a/code/nel/tools/build_gamedata/processes/rbank/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/rbank/2_build.py
@@ -8,7 +8,7 @@
# Build rbank
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/rbank/3_install.py b/code/nel/tools/build_gamedata/processes/rbank/3_install.py
index 8a548d7c3..c806c79f9 100755
--- a/code/nel/tools/build_gamedata/processes/rbank/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/rbank/3_install.py
@@ -8,7 +8,7 @@
# Install rbank
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/shape/0_setup.py b/code/nel/tools/build_gamedata/processes/shape/0_setup.py
index 941d07531..25eabed9e 100755
--- a/code/nel/tools/build_gamedata/processes/shape/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/shape/0_setup.py
@@ -8,7 +8,7 @@
# Setup shape
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/shape/1_export.py b/code/nel/tools/build_gamedata/processes/shape/1_export.py
index 92bb9c3e9..f30338264 100755
--- a/code/nel/tools/build_gamedata/processes/shape/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/shape/1_export.py
@@ -8,7 +8,7 @@
# Export shape
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/shape/2_build.py b/code/nel/tools/build_gamedata/processes/shape/2_build.py
index 1a9f668f8..f261473fe 100755
--- a/code/nel/tools/build_gamedata/processes/shape/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/shape/2_build.py
@@ -8,7 +8,7 @@
# Build shape
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/shape/3_install.py b/code/nel/tools/build_gamedata/processes/shape/3_install.py
index f6265a1a6..d96770c28 100755
--- a/code/nel/tools/build_gamedata/processes/shape/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/shape/3_install.py
@@ -8,7 +8,7 @@
# Install shape
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/sheet_id/0_setup.py b/code/nel/tools/build_gamedata/processes/sheet_id/0_setup.py
index 521913fbf..94fd8210f 100755
--- a/code/nel/tools/build_gamedata/processes/sheet_id/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/sheet_id/0_setup.py
@@ -8,7 +8,7 @@
# Setup sheet_id
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/sheet_id/1_export.py b/code/nel/tools/build_gamedata/processes/sheet_id/1_export.py
index 4894babf1..29387c55f 100755
--- a/code/nel/tools/build_gamedata/processes/sheet_id/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/sheet_id/1_export.py
@@ -8,7 +8,7 @@
# Export sheet_id
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/sheet_id/2_build.py b/code/nel/tools/build_gamedata/processes/sheet_id/2_build.py
index b29914913..51fdefc0f 100755
--- a/code/nel/tools/build_gamedata/processes/sheet_id/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/sheet_id/2_build.py
@@ -8,7 +8,7 @@
# Build sheet_id
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/sheet_id/3_install.py b/code/nel/tools/build_gamedata/processes/sheet_id/3_install.py
index 914b9863c..9f27b0dae 100755
--- a/code/nel/tools/build_gamedata/processes/sheet_id/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/sheet_id/3_install.py
@@ -8,7 +8,7 @@
# Install sheet_id
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/sheets/0_setup.py b/code/nel/tools/build_gamedata/processes/sheets/0_setup.py
index 7dc36ab9d..0ad1a3655 100755
--- a/code/nel/tools/build_gamedata/processes/sheets/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/sheets/0_setup.py
@@ -8,7 +8,7 @@
# Setup sheets
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/sheets/1_export.py b/code/nel/tools/build_gamedata/processes/sheets/1_export.py
index ca94394c9..1a8cc51af 100755
--- a/code/nel/tools/build_gamedata/processes/sheets/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/sheets/1_export.py
@@ -8,7 +8,7 @@
# Export sheets
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/sheets/2_build.py b/code/nel/tools/build_gamedata/processes/sheets/2_build.py
index d9690f52a..ea8f899d2 100755
--- a/code/nel/tools/build_gamedata/processes/sheets/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/sheets/2_build.py
@@ -8,7 +8,7 @@
# Build sheets
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/sheets/3_install.py b/code/nel/tools/build_gamedata/processes/sheets/3_install.py
index 23f17a6dc..ed6efaffd 100755
--- a/code/nel/tools/build_gamedata/processes/sheets/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/sheets/3_install.py
@@ -8,7 +8,7 @@
# Install sheets
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/skel/0_setup.py b/code/nel/tools/build_gamedata/processes/skel/0_setup.py
index ed4471d9b..7394babdd 100755
--- a/code/nel/tools/build_gamedata/processes/skel/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/skel/0_setup.py
@@ -8,7 +8,7 @@
# Setup skel
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/skel/1_export.py b/code/nel/tools/build_gamedata/processes/skel/1_export.py
index b0c54cb23..5f065fe5d 100755
--- a/code/nel/tools/build_gamedata/processes/skel/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/skel/1_export.py
@@ -12,7 +12,7 @@
# Export skel
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/skel/2_build.py b/code/nel/tools/build_gamedata/processes/skel/2_build.py
index 090b1a774..86bfce1c8 100755
--- a/code/nel/tools/build_gamedata/processes/skel/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/skel/2_build.py
@@ -8,7 +8,7 @@
# Build skel
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/skel/3_install.py b/code/nel/tools/build_gamedata/processes/skel/3_install.py
index fd5bb9aa0..f70a0258f 100755
--- a/code/nel/tools/build_gamedata/processes/skel/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/skel/3_install.py
@@ -8,7 +8,7 @@
# Install skel
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/smallbank/0_setup.py b/code/nel/tools/build_gamedata/processes/smallbank/0_setup.py
index 8f7955d42..751077ba3 100755
--- a/code/nel/tools/build_gamedata/processes/smallbank/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/smallbank/0_setup.py
@@ -8,7 +8,7 @@
# Setup smallbank
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/smallbank/1_export.py b/code/nel/tools/build_gamedata/processes/smallbank/1_export.py
index 82c998eb9..b7d3c6c24 100755
--- a/code/nel/tools/build_gamedata/processes/smallbank/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/smallbank/1_export.py
@@ -8,7 +8,7 @@
# Export smallbank
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/smallbank/2_build.py b/code/nel/tools/build_gamedata/processes/smallbank/2_build.py
index ccebd0f3c..a13d1e843 100755
--- a/code/nel/tools/build_gamedata/processes/smallbank/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/smallbank/2_build.py
@@ -8,7 +8,7 @@
# Build smallbank
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/smallbank/3_install.py b/code/nel/tools/build_gamedata/processes/smallbank/3_install.py
index dd71d226e..310cdaa52 100755
--- a/code/nel/tools/build_gamedata/processes/smallbank/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/smallbank/3_install.py
@@ -8,7 +8,7 @@
# Install smallbank
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/sound/0_setup.py b/code/nel/tools/build_gamedata/processes/sound/0_setup.py
index d668b06b6..178a810ae 100755
--- a/code/nel/tools/build_gamedata/processes/sound/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/sound/0_setup.py
@@ -8,7 +8,7 @@
# Setup sound
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/sound/1_export.py b/code/nel/tools/build_gamedata/processes/sound/1_export.py
index 3d7e17276..4fd98abb4 100755
--- a/code/nel/tools/build_gamedata/processes/sound/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/sound/1_export.py
@@ -8,7 +8,7 @@
# Export sound
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/sound/2_build.py b/code/nel/tools/build_gamedata/processes/sound/2_build.py
index 02e28e42c..56abeedd7 100755
--- a/code/nel/tools/build_gamedata/processes/sound/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/sound/2_build.py
@@ -8,7 +8,7 @@
# Build sound
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/sound/3_install.py b/code/nel/tools/build_gamedata/processes/sound/3_install.py
index e27f02a62..dc32c30e1 100755
--- a/code/nel/tools/build_gamedata/processes/sound/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/sound/3_install.py
@@ -8,7 +8,7 @@
# Install sound
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/swt/0_setup.py b/code/nel/tools/build_gamedata/processes/swt/0_setup.py
index 90a96010c..4b947f496 100755
--- a/code/nel/tools/build_gamedata/processes/swt/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/swt/0_setup.py
@@ -8,7 +8,7 @@
# Setup swt
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/swt/1_export.py b/code/nel/tools/build_gamedata/processes/swt/1_export.py
index 9b1913f36..0803f1246 100755
--- a/code/nel/tools/build_gamedata/processes/swt/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/swt/1_export.py
@@ -12,7 +12,7 @@
# Export swt
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/swt/2_build.py b/code/nel/tools/build_gamedata/processes/swt/2_build.py
index 8359dea29..7ae606a0a 100755
--- a/code/nel/tools/build_gamedata/processes/swt/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/swt/2_build.py
@@ -8,7 +8,7 @@
# Build swt
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/swt/3_install.py b/code/nel/tools/build_gamedata/processes/swt/3_install.py
index b71ed0caa..b70e623f5 100755
--- a/code/nel/tools/build_gamedata/processes/swt/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/swt/3_install.py
@@ -8,7 +8,7 @@
# Install swt
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/tiles/0_setup.py b/code/nel/tools/build_gamedata/processes/tiles/0_setup.py
index 30ddf8d28..e7a093723 100755
--- a/code/nel/tools/build_gamedata/processes/tiles/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/tiles/0_setup.py
@@ -8,7 +8,7 @@
# Setup tiles
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/tiles/1_export.py b/code/nel/tools/build_gamedata/processes/tiles/1_export.py
index 823935c18..9459b81b2 100755
--- a/code/nel/tools/build_gamedata/processes/tiles/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/tiles/1_export.py
@@ -8,7 +8,7 @@
# Export tiles
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/tiles/2_build.py b/code/nel/tools/build_gamedata/processes/tiles/2_build.py
index 9af276464..af1349ccf 100755
--- a/code/nel/tools/build_gamedata/processes/tiles/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/tiles/2_build.py
@@ -8,7 +8,7 @@
# Build tiles
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/tiles/3_install.py b/code/nel/tools/build_gamedata/processes/tiles/3_install.py
index 402fbcdba..a9a31187e 100755
--- a/code/nel/tools/build_gamedata/processes/tiles/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/tiles/3_install.py
@@ -8,7 +8,7 @@
# Install tiles
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/veget/0_setup.py b/code/nel/tools/build_gamedata/processes/veget/0_setup.py
index 7a890560c..222bc39bb 100755
--- a/code/nel/tools/build_gamedata/processes/veget/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/veget/0_setup.py
@@ -8,7 +8,7 @@
# Setup veget
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/veget/1_export.py b/code/nel/tools/build_gamedata/processes/veget/1_export.py
index 04d3dc06b..b2f8a7c57 100755
--- a/code/nel/tools/build_gamedata/processes/veget/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/veget/1_export.py
@@ -12,7 +12,7 @@
# Export veget
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/veget/2_build.py b/code/nel/tools/build_gamedata/processes/veget/2_build.py
index 7fb69e665..e3358fd39 100755
--- a/code/nel/tools/build_gamedata/processes/veget/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/veget/2_build.py
@@ -8,7 +8,7 @@
# Build veget
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/veget/3_install.py b/code/nel/tools/build_gamedata/processes/veget/3_install.py
index 14b8b33bd..5801e6392 100755
--- a/code/nel/tools/build_gamedata/processes/veget/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/veget/3_install.py
@@ -8,7 +8,7 @@
# Install veget
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/vegetset/0_setup.py b/code/nel/tools/build_gamedata/processes/vegetset/0_setup.py
index 2a9364fd8..c46c11b66 100755
--- a/code/nel/tools/build_gamedata/processes/vegetset/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/vegetset/0_setup.py
@@ -8,7 +8,7 @@
# Setup vegetset
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/vegetset/1_export.py b/code/nel/tools/build_gamedata/processes/vegetset/1_export.py
index 5bd7c62fa..03d70f59d 100755
--- a/code/nel/tools/build_gamedata/processes/vegetset/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/vegetset/1_export.py
@@ -8,7 +8,7 @@
# Export vegetset
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/vegetset/2_build.py b/code/nel/tools/build_gamedata/processes/vegetset/2_build.py
index f46ba5f65..0aab2ecee 100755
--- a/code/nel/tools/build_gamedata/processes/vegetset/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/vegetset/2_build.py
@@ -8,7 +8,7 @@
# Build vegetset
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/vegetset/3_install.py b/code/nel/tools/build_gamedata/processes/vegetset/3_install.py
index 107d0e516..25ebd7677 100755
--- a/code/nel/tools/build_gamedata/processes/vegetset/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/vegetset/3_install.py
@@ -8,7 +8,7 @@
# Install vegetset
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/zone/0_setup.py b/code/nel/tools/build_gamedata/processes/zone/0_setup.py
index 7ecfe614c..ab85cb515 100755
--- a/code/nel/tools/build_gamedata/processes/zone/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/zone/0_setup.py
@@ -8,7 +8,7 @@
# Setup zone
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/zone/1_export.py b/code/nel/tools/build_gamedata/processes/zone/1_export.py
index 2897ccc0e..94a90900c 100755
--- a/code/nel/tools/build_gamedata/processes/zone/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/zone/1_export.py
@@ -12,7 +12,7 @@
# Export zone
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/zone/2_build.py b/code/nel/tools/build_gamedata/processes/zone/2_build.py
index 31ad7d6e0..ad2f052fd 100755
--- a/code/nel/tools/build_gamedata/processes/zone/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/zone/2_build.py
@@ -8,7 +8,7 @@
# Build zone
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/zone/3_install.py b/code/nel/tools/build_gamedata/processes/zone/3_install.py
index 6afba7955..0326abf75 100755
--- a/code/nel/tools/build_gamedata/processes/zone/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/zone/3_install.py
@@ -8,7 +8,7 @@
# Install zone
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/zone_light/0_setup.py b/code/nel/tools/build_gamedata/processes/zone_light/0_setup.py
index 58beff27d..44c67935d 100755
--- a/code/nel/tools/build_gamedata/processes/zone_light/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/zone_light/0_setup.py
@@ -8,7 +8,7 @@
# Setup zone_light
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/zone_light/1_export.py b/code/nel/tools/build_gamedata/processes/zone_light/1_export.py
index 615a4dffa..016fe826b 100755
--- a/code/nel/tools/build_gamedata/processes/zone_light/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/zone_light/1_export.py
@@ -8,7 +8,7 @@
# Export zone_light
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/zone_light/2_build.py b/code/nel/tools/build_gamedata/processes/zone_light/2_build.py
index 8de63f4d8..84d2b26a4 100755
--- a/code/nel/tools/build_gamedata/processes/zone_light/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/zone_light/2_build.py
@@ -8,7 +8,7 @@
# Build zone_light
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/tools/build_gamedata/processes/zone_light/3_install.py b/code/nel/tools/build_gamedata/processes/zone_light/3_install.py
index 6b1b14c63..4e4d231a4 100755
--- a/code/nel/tools/build_gamedata/processes/zone_light/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/zone_light/3_install.py
@@ -8,7 +8,7 @@
# Install zone_light
#
# NeL - MMORPG Framework
-# Copyright (C) 2010 Winch Gate Property Limited
+# Copyright (C) 2009-2014 by authors
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/code/ryzom/client/src/interface_v3/action_phrase_faber.cpp b/code/ryzom/client/src/interface_v3/action_phrase_faber.cpp
index 81ae893bc..a1506bd8b 100644
--- a/code/ryzom/client/src/interface_v3/action_phrase_faber.cpp
+++ b/code/ryzom/client/src/interface_v3/action_phrase_faber.cpp
@@ -1688,29 +1688,30 @@ void CActionPhraseFaber::updateItemResult()
craftSuccessModifier = nodeCSM->getValue32();
}
// With the faber plan skill
- sint success= pPM->getCraftPhraseSuccessRate(pPM->getPhrase(phraseSlot), _ExecuteFromItemPlanBrick->getSkill(), minLevel);
+ sint success= pPM->getCraftPhraseSuccessRate(pPM->getPhrase(phraseSlot), _ExecuteFromItemPlanBrick->getSkill(), minLevel, 0);
+ sint bonus = pPM->getCraftPhraseSuccessRate(pPM->getPhrase(phraseSlot), _ExecuteFromItemPlanBrick->getSkill(), minLevel, (sint) craftSuccessModifier) - success;
string successStr;
- if( craftSuccessModifier == 0 )
+ if( bonus == 0 )
{
successStr = toString("@{FFFF}") + toString(success);
}
else
- if( craftSuccessModifier > 0 ) // bonus
+ if( bonus > 0 ) // bonus
{
- successStr = "@{0F0F}" + toString(success+craftSuccessModifier)
+ successStr = "@{0F0F}" + toString(success + bonus)
+ "@{FFFF}("
+ toString( success )
+ "@{0F0F} + "
- + toString( craftSuccessModifier )
+ + toString( bonus )
+ "@{FFFF})";
}
else
{
- successStr = "@{E42F}" + toString(success+craftSuccessModifier)
+ successStr = "@{E42F}" + toString(success + bonus)
+ "@{FFFF}("
+ toString( success )
+ "@{E42F} - "
- + toString( craftSuccessModifier )
+ + toString( abs(bonus) )
+ "@{FFFF})";
}
strFindReplace(text, "%success", successStr );
diff --git a/code/ryzom/client/src/interface_v3/sphrase_manager.cpp b/code/ryzom/client/src/interface_v3/sphrase_manager.cpp
index 7ef59dc1c..790657e2e 100644
--- a/code/ryzom/client/src/interface_v3/sphrase_manager.cpp
+++ b/code/ryzom/client/src/interface_v3/sphrase_manager.cpp
@@ -1428,7 +1428,7 @@ sint CSPhraseManager::getPhraseSuccessRate(const CSPhraseCom &phrase)
}
// ***************************************************************************
-sint CSPhraseManager::getCraftPhraseSuccessRate(const CSPhraseCom &phrase, SKILLS::ESkills skill, uint minMpLevel)
+sint CSPhraseManager::getCraftPhraseSuccessRate(const CSPhraseCom &phrase, SKILLS::ESkills skill, uint minMpLevel, sint successModifier)
{
CSkillManager *pSM= CSkillManager::getInstance();
@@ -1438,6 +1438,9 @@ sint CSPhraseManager::getCraftPhraseSuccessRate(const CSPhraseCom &phrase, SK
// take skill value of the skill
sint skillValue= pSM->getBestSkillValue(skill);
+ // apply success rate modifier from server
+ skillValue += successModifier;
+
// return the sr according to this skill
return getPhraseSuccessRate(STCraft, phrase, skillValue, minMpLevel);
}
diff --git a/code/ryzom/client/src/interface_v3/sphrase_manager.h b/code/ryzom/client/src/interface_v3/sphrase_manager.h
index c14b584ab..d4c1b2092 100644
--- a/code/ryzom/client/src/interface_v3/sphrase_manager.h
+++ b/code/ryzom/client/src/interface_v3/sphrase_manager.h
@@ -338,7 +338,7 @@ public:
// Get the Phrase Success Rate %
sint getPhraseSuccessRate(const CSPhraseCom &phrase);
// Get the Phrase Success Rate %. Manually gives the Skill to do the comparison (for craft)
- sint getCraftPhraseSuccessRate(const CSPhraseCom &phrase, SKILLS::ESkills skill, uint minMpLevel);
+ sint getCraftPhraseSuccessRate(const CSPhraseCom &phrase, SKILLS::ESkills skill, uint minMpLevel, sint successModifier);
// Get the Phrase Success Rate %. Manually gives the Skill to do the comparison (for Forage Extraction)
sint getForageExtractionPhraseSuccessRate(const CSPhraseCom &phrase, SKILLS::ESkills skill);
// return the fmt according to forage terrain specializing
diff --git a/code/ryzom/client/src/network_connection.cpp b/code/ryzom/client/src/network_connection.cpp
index 1fe002648..47d573ca2 100644
--- a/code/ryzom/client/src/network_connection.cpp
+++ b/code/ryzom/client/src/network_connection.cpp
@@ -2936,7 +2936,7 @@ void CNetworkConnection::initTicks()
_CurrentClientTick = 0;
_CurrentServerTick = 0;
_MsPerTick = 100;
- _LCT = 1000;
+ _LCT = LCT;
}
void CNetworkConnection::reinit()
diff --git a/code/ryzom/common/data_common/r2/IslandScreenshots.cfg b/code/ryzom/common/data_common/r2/IslandScreenshots.cfg
deleted file mode 100644
index 1a90df4e7..000000000
--- a/code/ryzom/common/data_common/r2/IslandScreenshots.cfg
+++ /dev/null
@@ -1,27 +0,0 @@
-SearchPaths =
-{
- "r:/code/ryzom/data_common/r2", // entry points file
- "R:/code/ryzom/data_shard/collisions",
- "F:/r2 daily",
-};
-
-Continents = {"r2_jungle", "r2_forest", "r2_lakes", "r2_desert","r2_roots"};
-
-SeasonSuffixes = { "_sp"}; //{ "_sp", "_su", "_au", "_wi" };
-
-MeterPixelSize = 2;
-
-OutDir = "F:/perso/code/HelloWorld/Affichage/Final";
-
-CompleteIslandsFile= "r2_islands.xml";
-
-EntryPointsFile= "ring_map_entry_ponts.txt";
-
-Vegetation = true;
-
-InverseZTest = true;
-
-
-
-
-
diff --git a/code/ryzom/common/data_common/r2/r2_islands.xml b/code/ryzom/common/data_common/r2/r2_islands.xml
deleted file mode 100644
index a8209512d..000000000
--- a/code/ryzom/common/data_common/r2/r2_islands.xml
+++ /dev/null
@@ -1,2847 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/code/ryzom/common/data_common/r2/ring_map_entry_ponts.txt b/code/ryzom/common/data_common/r2/ring_map_entry_ponts.txt
deleted file mode 100644
index 643a416c7..000000000
--- a/code/ryzom/common/data_common/r2/ring_map_entry_ponts.txt
+++ /dev/null
@@ -1,1068 +0,0 @@
-a1 uiR2_Lakes01 uiR2EntryPoint01 31346 -1310 N
-a1 uiR2_Lakes01 uiR2EntryPoint02 31269 -1238 E
-a1 uiR2_Lakes01 uiR2EntryPoint03 31456 -1379 N
-
-a1 uiR2_Lakes07 uiR2EntryPoint01 36264 -1103 S
-a1 uiR2_Lakes07 uiR2EntryPoint02 36208 -1353 N
-a1 uiR2_Lakes07 uiR2EntryPoint03 36478 -1269 W
-a1 uiR2_Lakes07 uiR2EntryPoint04 36478 -1105 SW
-
-a1 uiR2_Lakes22 uiR2EntryPoint01 32250 -2800 W
-a1 uiR2_Lakes22 uiR2EntryPoint02 31920 -3160 N
-a1 uiR2_Lakes22 uiR2EntryPoint03 32080 -3090 N
-a1 uiR2_Lakes22 uiR2EntryPoint04 32250 -3065 NE
-
-l1 uiR2_Lakes15 uiR2EntryPoint01 34634 -1872 SW
-l1 uiR2_Lakes15 uiR2EntryPoint02 34258 -1991 W
-l1 uiR2_Lakes15 uiR2EntryPoint03 34321 -1860 S
-l1 uiR2_Lakes15 uiR2EntryPoint04 34510 -2060 W
-
-l1 uiR2_Lakes17 uiR2EntryPoint01 36150 -2310 NE
-l1 uiR2_Lakes17 uiR2EntryPoint02 35936 -2243 S
-l1 uiR2_Lakes17 uiR2EntryPoint03 35920 -1844 W
-l1 uiR2_Lakes17 uiR2EntryPoint04 36103 -1923 SW
-l1 uiR2_Lakes17 uiR2EntryPoint05 35895 -1935 S
-
-l1 uiR2_Lakes18 uiR2EntryPoint01 36725 -1993 E
-l1 uiR2_Lakes18 uiR2EntryPoint02 36688 -2159 N
-l1 uiR2_Lakes18 uiR2EntryPoint03 36879 -2217 N
-l1 uiR2_Lakes18 uiR2EntryPoint04 36941 -1970 SW
-
-l1 uiR2_Lakes26 uiR2EntryPoint01 34460 -3120 E
-l1 uiR2_Lakes26 uiR2EntryPoint02 34689 -2756 SW
-l1 uiR2_Lakes26 uiR2EntryPoint03 34681 -3111 N
-l1 uiR2_Lakes26 uiR2EntryPoint04 34671 -2931 N
-
-l1 uiR2_Lakes27 uiR2EntryPoint01 35605 -3080 NW
-l1 uiR2_Lakes27 uiR2EntryPoint02 35520 -2780 S
-l1 uiR2_Lakes27 uiR2EntryPoint03 35133 -2663 SE
-l1 uiR2_Lakes27 uiR2EntryPoint04 35283 -3051 N
-
-l1 uiR2_Lakes38 uiR2EntryPoint01 36720 -3740 S
-l1 uiR2_Lakes38 uiR2EntryPoint02 36751 -4024 NW
-l1 uiR2_Lakes38 uiR2EntryPoint03 36230 -3767 E
-l1 uiR2_Lakes38 uiR2EntryPoint04 36481 -3564 S
-
-l1 uiR2_Lakes39 uiR2EntryPoint01 37510 -3900 N
-l1 uiR2_Lakes39 uiR2EntryPoint02 37299 -3575 SE
-l1 uiR2_Lakes39 uiR2EntryPoint03 37861 -3719 W
-
-l2 uiR2_Lakes03 uiR2EntryPoint01 32961 -1388 N
-l2 uiR2_Lakes03 uiR2EntryPoint02 32784 -1507 NE
-l2 uiR2_Lakes03 uiR2EntryPoint03 33390 -1517 NW
-l2 uiR2_Lakes03 uiR2EntryPoint04 33365 -916 SW
-l2 uiR2_Lakes03 uiR2EntryPoint05 33033 -991 S
-
-l2 uiR2_Lakes08 uiR2EntryPoint01 36991 -1311 E
-l2 uiR2_Lakes08 uiR2EntryPoint02 37197 -1547 NW
-l2 uiR2_Lakes08 uiR2EntryPoint03 37230 -1035 S
-l2 uiR2_Lakes08 uiR2EntryPoint04 37111 -1264 SE
-l2 uiR2_Lakes08 uiR2EntryPoint05 37393 -1285 W
-
-l2 uiR2_Lakes16 uiR2EntryPoint01 35330 -2120 W
-l2 uiR2_Lakes16 uiR2EntryPoint02 35180 -2010 S
-l2 uiR2_Lakes16 uiR2EntryPoint03 35145 -2135 NE
-
-l2 uiR2_Lakes19 uiR2EntryPoint01 37681 -2167 N
-l2 uiR2_Lakes19 uiR2EntryPoint02 37367 -2341 NW
-l2 uiR2_Lakes19 uiR2EntryPoint03 37331 -2070 NE
-l2 uiR2_Lakes19 uiR2EntryPoint04 37521 -1929 S
-l2 uiR2_Lakes19 uiR2EntryPoint05 37773 -2008 W
-
-l2 uiR2_Lakes23 uiR2EntryPoint01 32727 -3120 W
-l2 uiR2_Lakes23 uiR2EntryPoint02 32694 -2802 W
-l2 uiR2_Lakes23 uiR2EntryPoint03 32523 -2995 E
-
-l2 uiR2_Lakes10 uiR2EntryPoint01 38531 -1379 NE
-l2 uiR2_Lakes10 uiR2EntryPoint02 38962 -1092 S
-l2 uiR2_Lakes10 uiR2EntryPoint03 38677 -1146 SE
-l2 uiR2_Lakes10 uiR2EntryPoint04 38953 -1444 NW
-
-l2 uiR2_Lakes11 uiR2EntryPoint01 31531 -2280 NW
-l2 uiR2_Lakes11 uiR2EntryPoint02 31517 -1946 SW
-l2 uiR2_Lakes11 uiR2EntryPoint03 31107 -2130 NE
-l2 uiR2_Lakes11 uiR2EntryPoint04 31203 -1938 SE
-l2 uiR2_Lakes11 uiR2EntryPoint05 31358 -2065 NW
-
-l3 uiR2_Lakes14 uiR2EntryPoint01 33438 -2169 E
-l3 uiR2_Lakes14 uiR2EntryPoint02 33562 -2128 SW
-l3 uiR2_Lakes14 uiR2EntryPoint03 33590 -2230 NW
-
-l3 uiR2_Lakes21 uiR2EntryPoint01 31247 -2790 E
-l3 uiR2_Lakes21 uiR2EntryPoint02 31128 -3031 N
-l3 uiR2_Lakes21 uiR2EntryPoint03 31536 -2778 W
-l3 uiR2_Lakes21 uiR2EntryPoint04 31413 -3101 NE
-l3 uiR2_Lakes21 uiR2EntryPoint05 31306 -3168 NW
-
-l3 uiR2_Lakes31 uiR2EntryPoint01 31295 -4080 N
-l3 uiR2_Lakes31 uiR2EntryPoint02 31425 -3724 SW
-l3 uiR2_Lakes31 uiR2EntryPoint03 31258 -3747 SE
-
-l3 uiR2_Lakes04 uiR2EntryPoint01 33740 -1068 E
-l3 uiR2_Lakes04 uiR2EntryPoint02 34268 -1202 W
-l3 uiR2_Lakes04 uiR2EntryPoint03 34145 -1045 SW
-l3 uiR2_Lakes04 uiR2EntryPoint04 33996 -1283 N
-l3 uiR2_Lakes04 uiR2EntryPoint05 33691 -1206 E
-
-l3 uiR2_Lakes06 uiR2EntryPoint01 35468 -1272 N
-l3 uiR2_Lakes06 uiR2EntryPoint02 35954 -1080 SW
-l3 uiR2_Lakes06 uiR2EntryPoint03 35764 -1026 E
-l3 uiR2_Lakes06 uiR2EntryPoint04 35438 -890 SE
-l3 uiR2_Lakes06 uiR2EntryPoint05 35634 -1288 N
-
-l3 uiR2_Lakes09 uiR2EntryPoint01 37916 -1124 S
-l3 uiR2_Lakes09 uiR2EntryPoint02 37709 -1451 NE
-l3 uiR2_Lakes09 uiR2EntryPoint03 38149 -1051 SW
-l3 uiR2_Lakes09 uiR2EntryPoint04 38073 -1412 NW
-
-l3 uiR2_Lakes20 uiR2EntryPoint01 38155 -2000 E
-l3 uiR2_Lakes20 uiR2EntryPoint02 38290 -1813 E
-l3 uiR2_Lakes20 uiR2EntryPoint03 38488 -1996 W
-l3 uiR2_Lakes20 uiR2EntryPoint04 38289 -2183 S
-
-l4 uiR2_Lakes33 uiR2EntryPoint01 32370 -3880 N
-l4 uiR2_Lakes33 uiR2EntryPoint02 32447 -3577 SE
-l4 uiR2_Lakes33 uiR2EntryPoint03 32561 -3774 SW
-l4 uiR2_Lakes33 uiR2EntryPoint04 32716 -3591 S
-l4 uiR2_Lakes33 uiR2EntryPoint05 32721 -3914 N
-
-l4 uiR2_Lakes02 uiR2EntryPoint01 32059 -1392 N
-l4 uiR2_Lakes02 uiR2EntryPoint02 32267 -1181 W
-l4 uiR2_Lakes02 uiR2EntryPoint03 32053 -1159 SE
-
-l4 uiR2_Lakes05 uiR2EntryPoint01 34650 -1133 NE
-l4 uiR2_Lakes05 uiR2EntryPoint02 35018 -1280 SW
-l4 uiR2_Lakes05 uiR2EntryPoint03 34984 -889 SW
-l4 uiR2_Lakes05 uiR2EntryPoint04 34769 -1166 NE
-
-l4 uiR2_Lakes12 uiR2EntryPoint01 32040 -2368 N
-l4 uiR2_Lakes12 uiR2EntryPoint02 32401 -2210 SW
-l4 uiR2_Lakes12 uiR2EntryPoint03 32019 -1939 S
-l4 uiR2_Lakes12 uiR2EntryPoint04 31891 -2241 E
-
-l4 uiR2_Lakes24 uiR2EntryPoint01 33350 -3120 N
-l4 uiR2_Lakes24 uiR2EntryPoint02 33200 -2865 N
-l4 uiR2_Lakes24 uiR2EntryPoint03 33450 -2950 W
-
-l4 uiR2_Lakes34 uiR2EntryPoint01 33520 -3910 N
-l4 uiR2_Lakes34 uiR2EntryPoint02 33206 -3990 W
-l4 uiR2_Lakes34 uiR2EntryPoint03 33276 -3784 N
-l4 uiR2_Lakes34 uiR2EntryPoint04 33619 -3638 NW
-l4 uiR2_Lakes34 uiR2EntryPoint05 33335 -3829 NE
-
-o1 uiR2_Lakes25 uiR2EntryPoint01 33980 -3110 N
-o1 uiR2_Lakes25 uiR2EntryPoint02 33900 -2990 NE
-o1 uiR2_Lakes25 uiR2EntryPoint03 34105 -2760 SW
-
-o1 uiR2_Lakes28 uiR2EntryPoint01 36480 -3100 N
-o1 uiR2_Lakes28 uiR2EntryPoint02 36146 -2679 SE
-o1 uiR2_Lakes28 uiR2EntryPoint03 36324 -2871 S
-
-o1 uiR2_Lakes29 uiR2EntryPoint01 37500 -3110 N
-o1 uiR2_Lakes29 uiR2EntryPoint02 37078 -2937 SW
-o1 uiR2_Lakes29 uiR2EntryPoint03 37389 -2802 S
-
-o1 uiR2_Lakes30 uiR2EntryPoint01 38100 -2850 E
-o1 uiR2_Lakes30 uiR2EntryPoint02 38414 -2715 S
-o1 uiR2_Lakes30 uiR2EntryPoint03 38489 -3116 NW
-
-o1 uiR2_Lakes32 uiR2EntryPoint01 31900 -3600 E
-o1 uiR2_Lakes32 uiR2EntryPoint02 32108 -3832 N
-o1 uiR2_Lakes32 uiR2EntryPoint03 32112 -3672 W
-
-o1 uiR2_Lakes35 uiR2EntryPoint01 34200 -4080 E
-o1 uiR2_Lakes35 uiR2EntryPoint02 34145 -3645 SE
-o1 uiR2_Lakes35 uiR2EntryPoint03 34387 -3988 S
-
-o1 uiR2_Lakes36 uiR2EntryPoint01 34960 -3770 N
-o1 uiR2_Lakes36 uiR2EntryPoint02 35149 -3703 SW
-o1 uiR2_Lakes36 uiR2EntryPoint03 34957 -3586 S
-
-o1 uiR2_Lakes37 uiR2EntryPoint01 35760 -3750 N
-o1 uiR2_Lakes37 uiR2EntryPoint02 35577 -3640 SE
-o1 uiR2_Lakes37 uiR2EntryPoint03 35912 -3874 N
-o1 uiR2_Lakes37 uiR2EntryPoint04 35902 -3589 SE
-
-o1 uiR2_Lakes40 uiR2EntryPoint01 38180 -3470 SE
-o1 uiR2_Lakes40 uiR2EntryPoint01 38416 -3819 NE
-o1 uiR2_Lakes40 uiR2EntryPoint01 38151 -3740 N
-
-
-//z1 uiR2_Lakes13 uiR2EntryPoint01 32479 -2298 E
-//z1 uiR2_Lakes13 uiR2EntryPoint02 32880 -2080 S
-//z1 uiR2_Lakes13 uiR2EntryPoint03 33050 -2265 NW
-
-// Desert
-
-
-a1 uiR2_Deserts03 uiR2EntryPoint01 22791 -1289 N
-a1 uiR2_Deserts03 uiR2EntryPoint02 23041 -1284 NW
-a1 uiR2_Deserts03 uiR2EntryPoint03 22873 -1110 SE
-
-a1 uiR2_Deserts21 uiR2EntryPoint01 25980 -2015 E
-a1 uiR2_Deserts21 uiR2EntryPoint02 26452 -1963 W
-a1 uiR2_Deserts21 uiR2EntryPoint03 26353 -1872 SW
-a1 uiR2_Deserts21 uiR2EntryPoint04 26214 -1961 S
-
-a1 uiR2_Deserts32 uiR2EntryPoint01 28070 -2340 E
-a1 uiR2_Deserts32 uiR2EntryPoint02 28240 -2719 N
-a1 uiR2_Deserts32 uiR2EntryPoint03 28318 -2643 W
-a1 uiR2_Deserts32 uiR2EntryPoint04 28293 -2445 W
-
-d1 uiR2_Deserts02 uiR2EntryPoint01 22383 -1512 N
-d1 uiR2_Deserts02 uiR2EntryPoint02 22454 -1186 SW
-d1 uiR2_Deserts02 uiR2EntryPoint03 22062 -1050 S
-d1 uiR2_Deserts02 uiR2EntryPoint04 22072 -1289 NE
-
-d1 uiR2_Deserts10 uiR2EntryPoint01 28923 -1434 N
-d1 uiR2_Deserts10 uiR2EntryPoint02 29217 -1371 E
-d1 uiR2_Deserts10 uiR2EntryPoint03 28901 -1115 SW
-
-d1 uiR2_Deserts22 uiR2EntryPoint01 26950 -2015 N
-d1 uiR2_Deserts22 uiR2EntryPoint02 26937 -1864 S
-d1 uiR2_Deserts22 uiR2EntryPoint03 27089 -2042 NW
-
-d1 uiR2_Deserts23 uiR2EntryPoint01 27600 -1924 S
-d1 uiR2_Deserts23 uiR2EntryPoint02 27575 -2351 NW
-d1 uiR2_Deserts23 uiR2EntryPoint03 27545 -2211 N
-d1 uiR2_Deserts23 uiR2EntryPoint04 27442 -1866 S
-
-d1 uiR2_Deserts28 uiR2EntryPoint01 25050 -2650 S
-d1 uiR2_Deserts28 uiR2EntryPoint02 24910 -2819 E
-d1 uiR2_Deserts28 uiR2EntryPoint03 24881 -2720 N
-d1 uiR2_Deserts28 uiR2EntryPoint04 24915 -2511 SW
-
-d1 uiR2_Deserts29 uiR2EntryPoint01 25880 -2630 E
-d1 uiR2_Deserts29 uiR2EntryPoint02 26022 -2374 SW
-d1 uiR2_Deserts29 uiR2EntryPoint03 26156 -2560 N
-d1 uiR2_Deserts29 uiR2EntryPoint04 26163 -2402 S
-
-d1 uiR2_Deserts31 uiR2EntryPoint01 27760 -2700 N
-d1 uiR2_Deserts31 uiR2EntryPoint02 27404 -2588 S
-d1 uiR2_Deserts31 uiR2EntryPoint03 27538 -2606 S
-d1 uiR2_Deserts31 uiR2EntryPoint04 27413 -2744 NE
-
-d1 uiR2_Deserts05 uiR2EntryPoint01 24257 -1520 NE
-d1 uiR2_Deserts05 uiR2EntryPoint02 24593 -1447 N
-d1 uiR2_Deserts05 uiR2EntryPoint03 24341 -1184 NE
-d1 uiR2_Deserts05 uiR2EntryPoint04 24535 -1054 S
-
-d1 uiR2_Deserts13 uiR2EntryPoint01 28942 -1919 S
-d1 uiR2_Deserts13 uiR2EntryPoint02 28538 -2241 E
-d1 uiR2_Deserts13 uiR2EntryPoint03 28814 -2251 NW
-d1 uiR2_Deserts13 uiR2EntryPoint04 28956 -2079 W
-d1 uiR2_Deserts13 uiR2EntryPoint05 28794 -1912 S
-
-d1 uiR2_Deserts17 uiR2EntryPoint01 23250 -1840 W
-d1 uiR2_Deserts17 uiR2EntryPoint02 23096 -1943 NE
-d1 uiR2_Deserts17 uiR2EntryPoint03 23034 -1839 E
-d1 uiR2_Deserts17 uiR2EntryPoint04 23096 -1713 S
-
-d1 uiR2_Deserts24 uiR2EntryPoint01 27915 -1875 S
-d1 uiR2_Deserts24 uiR2EntryPoint02 28136 -1960 S
-d1 uiR2_Deserts24 uiR2EntryPoint03 28233 -1746 S
-d1 uiR2_Deserts24 uiR2EntryPoint04 28324 -1841 W
-
-d3 uiR2_Deserts27 uiR2EntryPoint01 23305 -2454 E
-d3 uiR2_Deserts27 uiR2EntryPoint02 23313 -2682 N
-d3 uiR2_Deserts27 uiR2EntryPoint03 23464 -2611 N
-d3 uiR2_Deserts27 uiR2EntryPoint04 23496 -2442 SW
-
-d3 uiR2_Deserts04 uiR2EntryPoint01 23452 -1050 SE
-d3 uiR2_Deserts04 uiR2EntryPoint02 23846 -1435 W
-d3 uiR2_Deserts04 uiR2EntryPoint03 23599 -1418 N
-d3 uiR2_Deserts04 uiR2EntryPoint04 23927 -1163 W
-
-d3 uiR2_Deserts11 uiR2EntryPoint01 29554 -1468 N
-d3 uiR2_Deserts11 uiR2EntryPoint02 29922 -1222 W
-d3 uiR2_Deserts11 uiR2EntryPoint03 29622 -1048 S
-d3 uiR2_Deserts11 uiR2EntryPoint04 29615 -1306 SE
-d3 uiR2_Deserts11 uiR2EntryPoint05 29755 -1447 NW
-
-d3 uiR2_Deserts16 uiR2EntryPoint01 22304 -1856 E
-d3 uiR2_Deserts16 uiR2EntryPoint02 22513 -1995 E
-d3 uiR2_Deserts16 uiR2EntryPoint03 22687 -1891 N
-d3 uiR2_Deserts16 uiR2EntryPoint04 22537 -1877 N
-
-d4 uiR2_Deserts18 uiR2EntryPoint01 23730 -2280 N
-d4 uiR2_Deserts18 uiR2EntryPoint02 23666 -2154 NE
-d4 uiR2_Deserts18 uiR2EntryPoint03 23871 -1977 SE
-d4 uiR2_Deserts18 uiR2EntryPoint04 23570 -2056 NE
-d4 uiR2_Deserts18 uiR2EntryPoint05 23834 -1997 W
-
-d4 uiR2_Deserts19 uiR2EntryPoint01 24560 -2015 N
-d4 uiR2_Deserts19 uiR2EntryPoint02 24267 -1998 E
-d4 uiR2_Deserts19 uiR2EntryPoint03 24841 -2002 W
-d4 uiR2_Deserts19 uiR2EntryPoint04 24562 -1914 S
-
-d4 uiR2_Deserts09 uiR2EntryPoint01 27814 -1375 N
-d4 uiR2_Deserts09 uiR2EntryPoint02 27471 -1503 E
-d4 uiR2_Deserts09 uiR2EntryPoint03 27609 -1197 E
-d4 uiR2_Deserts09 uiR2EntryPoint04 27730 -1088 S
-d4 uiR2_Deserts09 uiR2EntryPoint05 27529 -1014 SE
-
-d4 uiR2_Deserts14 uiR2EntryPoint01 30629 -2300 N
-// d4 uiR2_Deserts14 uiR2EntryPoint04 30747 -2023 SW
-d4 uiR2_Deserts14 uiR2EntryPoint02 30577 -1836 S
-d4 uiR2_Deserts14 uiR2EntryPoint03 30347 -2140 SE
-// d4 uiR2_Deserts14 uiR2EntryPoint05 30407 -1835 SE
-
-d5 uiR2_Deserts15 uiR2EntryPoint01 21500 -1830 E
-d5 uiR2_Deserts15 uiR2EntryPoint02 21933 -1833 W
-d5 uiR2_Deserts15 uiR2EntryPoint03 21763 -1839 E
-d5 uiR2_Deserts15 uiR2EntryPoint04 21515 -1913 N
-
-d5 uiR2_Deserts30 uiR2EntryPoint01 26650 -2650 E
-d5 uiR2_Deserts30 uiR2EntryPoint02 27036 -2638 W
-d5 uiR2_Deserts30 uiR2EntryPoint03 26922 -2433 SE
-d5 uiR2_Deserts30 uiR2EntryPoint04 26779 -2504 S
-
-d5 uiR2_Deserts33 uiR2EntryPoint01 29510 -2040 S
-d5 uiR2_Deserts33 uiR2EntryPoint02 29517 -2239 N
-d5 uiR2_Deserts33 uiR2EntryPoint03 29712 -2523 NW
-d5 uiR2_Deserts33 uiR2EntryPoint04 29920 -2157 W
-d5 uiR2_Deserts33 uiR2EntryPoint05 29758 -2318 W
-
-d5 uiR2_Deserts08 uiR2EntryPoint01 26694 -1485 N
-d5 uiR2_Deserts08 uiR2EntryPoint02 26949 -1512 NW
-d5 uiR2_Deserts08 uiR2EntryPoint03 26482 -1366 E
-d5 uiR2_Deserts08 uiR2EntryPoint04 26875 -1010 S
-d5 uiR2_Deserts08 uiR2EntryPoint05 26460 -1205 NE
-
-d6 uiR2_Deserts06 uiR2EntryPoint01 25523 -1500 NW
-d6 uiR2_Deserts06 uiR2EntryPoint02 25419 -1142 SW
-d6 uiR2_Deserts06 uiR2EntryPoint03 25220 -1416 W
-d6 uiR2_Deserts06 uiR2EntryPoint04 25168 -1168 SW
-
-d6 uiR2_Deserts20 uiR2EntryPoint01 25206 -2118 N
-d6 uiR2_Deserts20 uiR2EntryPoint02 25435 -1997 W
-d6 uiR2_Deserts20 uiR2EntryPoint03 25410 -2177 N
-d6 uiR2_Deserts20 uiR2EntryPoint04 25532 -1942 N
-d6 uiR2_Deserts20 uiR2EntryPoint05 25724 -2192 W
-
-d6 uiR2_Deserts25 uiR2EntryPoint01 21845 -2475 S
-d6 uiR2_Deserts25 uiR2EntryPoint02 21891 -2836 W
-d6 uiR2_Deserts25 uiR2EntryPoint03 21442 -2799 NW
-d6 uiR2_Deserts25 uiR2EntryPoint04 21460 -2447 S
-d6 uiR2_Deserts25 uiR2EntryPoint05 21765 -2480 W
-
-d6 uiR2_Deserts26 uiR2EntryPoint01 22627 -2480 W
-d6 uiR2_Deserts26 uiR2EntryPoint02 22352 -2474 E
-d6 uiR2_Deserts26 uiR2EntryPoint03 22925 -2483 W
-d6 uiR2_Deserts26 uiR2EntryPoint04 22790 -2627 N
-
-
-
-o1 uiR2_Deserts07 uiR2EntryPoint01 26051 -1405 N
-o1 uiR2_Deserts07 uiR2EntryPoint02 26153 -1044 S
-o1 uiR2_Deserts07 uiR2EntryPoint03 25855 -1233 E
-o1 uiR2_Deserts07 uiR2EntryPoint04 25818 -1027 SE
-
-o1 uiR2_Deserts12 uiR2EntryPoint01 30818 -1487 NW
-o1 uiR2_Deserts12 uiR2EntryPoint02 30726 -1023 S
-o1 uiR2_Deserts12 uiR2EntryPoint03 30369 -1083 SE
-o1 uiR2_Deserts12 uiR2EntryPoint04 30389 -1307 E
-o1 uiR2_Deserts12 uiR2EntryPoint05 30539 -1440 NW
-
-
-
-//z1 uiR2_Deserts01 uiR2EntryPoint01 21570 -1363 N
-//z1 uiR2_Deserts01 uiR2EntryPoint02 21340 -1066 SE
-//z1 uiR2_Deserts01 uiR2EntryPoint03 21678 -1129 SW
-//z1 uiR2_Deserts01 uiR2EntryPoint04 21503 -1296 N
-
-
-
-
-// Forest
-
-
-a1 uiR2_Forest04 uiR2EntryPoint01 24213 -11157 W
-a1 uiR2_Forest04 uiR2EntryPoint02 23975 -11225 E
-a1 uiR2_Forest04 uiR2EntryPoint03 23827 -11373 NE
-a1 uiR2_Forest04 uiR2EntryPoint04 24180 -11383 NW
-a1 uiR2_Forest04 uiR2EntryPoint05 23871 -11059 SE
-a1 uiR2_Forest04 uiR2EntryPoint06 24189 -10982 SW
-
-a1 uiR2_Forest05 uiR2EntryPoint01 24752 -11360 N
-a1 uiR2_Forest05 uiR2EntryPoint02 24602 -11060 SE
-a1 uiR2_Forest05 uiR2EntryPoint03 24865 -11100 SW
-a1 uiR2_Forest05 uiR2EntryPoint04 25046 -11197 W
-a1 uiR2_Forest05 uiR2EntryPoint05 24640 -11453 N
-a1 uiR2_Forest05 uiR2EntryPoint06 24537 -11201 E
-
-a1 uiR2_Forest14 uiR2EntryPoint01 21282 -12196 N
-a1 uiR2_Forest14 uiR2EntryPoint02 21276 -11986 S
-a1 uiR2_Forest14 uiR2EntryPoint03 21276 -11766 S
-
-a1 uiR2_Forest27 uiR2EntryPoint01 21173 -12644 W
-a1 uiR2_Forest27 uiR2EntryPoint02 21068 -12561 S
-a1 uiR2_Forest27 uiR2EntryPoint03 21113 -12714 N
-a1 uiR2_Forest27 uiR2EntryPoint04 21119 -12639 S
-
-a1 uiR2_Forest32 uiR2EntryPoint01 24680 -12600 SE
-a1 uiR2_Forest32 uiR2EntryPoint02 24538 -13025 N
-a1 uiR2_Forest32 uiR2EntryPoint03 24822 -13039 N
-a1 uiR2_Forest32 uiR2EntryPoint04 24718 -12889 N
-a1 uiR2_Forest32 uiR2EntryPoint05 24830 -12554 SW
-a1 uiR2_Forest32 uiR2EntryPoint06 24659 -12750 E
-
-f1 uiR2_Forest03 uiR2EntryPoint01 23010 -11209 E
-f1 uiR2_Forest03 uiR2EntryPoint02 23080 -11152 E
-f1 uiR2_Forest03 uiR2EntryPoint03 23400 -11400 NW
-f1 uiR2_Forest03 uiR2EntryPoint04 23400 -11000 SW
-f1 uiR2_Forest03 uiR2EntryPoint05 23000 -11000 SE
-
-f1 uiR2_Forest19 uiR2EntryPoint01 24944 -12220 N
-f1 uiR2_Forest19 uiR2EntryPoint02 25357 -12233 N
-f1 uiR2_Forest19 uiR2EntryPoint03 25265 -12240 W
-f1 uiR2_Forest19 uiR2EntryPoint04 24971 -11947 S
-f1 uiR2_Forest19 uiR2EntryPoint05 25155 -12081 SE
-
-f1 uiR2_Forest23 uiR2EntryPoint01 28465 -12056 W
-f1 uiR2_Forest23 uiR2EntryPoint02 28011 -12082 E
-f1 uiR2_Forest23 uiR2EntryPoint03 28496 -12248 N
-f1 uiR2_Forest23 uiR2EntryPoint04 28375 -11911 SE
-f1 uiR2_Forest23 uiR2EntryPoint05 28194 -12118 E
-f1 uiR2_Forest23 uiR2EntryPoint06 27926 -11988 SE
-
-f1 uiR2_Forest39 uiR2EntryPoint01 30520 -12600 S
-f1 uiR2_Forest39 uiR2EntryPoint02 30143 -12958 E
-f1 uiR2_Forest39 uiR2EntryPoint03 30195 -12559 SE
-f1 uiR2_Forest39 uiR2EntryPoint04 30621 -12958 NW
-f1 uiR2_Forest39 uiR2EntryPoint05 30298 -12694 SE
-f1 uiR2_Forest39 uiR2EntryPoint06 30524 -12799 W
-f1 uiR2_Forest39 uiR2EntryPoint07 30291 -12910 NE
-
-f1 uiR2_Forest41 uiR2EntryPoint01 22140 -13150 SE
-f1 uiR2_Forest41 uiR2EntryPoint02 22401 -13440 NW
-f1 uiR2_Forest41 uiR2EntryPoint03 22263 -13269 S
-f1 uiR2_Forest41 uiR2EntryPoint04 22338 -13133 SW
-f1 uiR2_Forest41 uiR2EntryPoint05 22173 -13476 NE
-
-f1 uiR2_Forest20 uiR2EntryPoint01 26110 -11936 SW
-f1 uiR2_Forest20 uiR2EntryPoint02 25734 -11920 SE
-f1 uiR2_Forest20 uiR2EntryPoint03 25691 -12200 SW
-f1 uiR2_Forest20 uiR2EntryPoint04 26113 -12164 NW
-f1 uiR2_Forest20 uiR2EntryPoint05 25950 -12097 N
-
-f1 uiR2_Forest31 uiR2EntryPoint01 23470 -12600 SE
-f1 uiR2_Forest31 uiR2EntryPoint02 23681 -12712 S
-f1 uiR2_Forest31 uiR2EntryPoint03 23510 -13001 NE
-f1 uiR2_Forest31 uiR2EntryPoint04 23948 -13020 W
-f1 uiR2_Forest31 uiR2EntryPoint05 23598 -12850 SW
-f1 uiR2_Forest31 uiR2EntryPoint06 23995 -12787 W
-f1 uiR2_Forest31 uiR2EntryPoint07 23879 -12573 W
-
-f2 uiR2_Forest34 uiR2EntryPoint01 26220 -12600 SE
-f2 uiR2_Forest34 uiR2EntryPoint02 26613 -12753 NW
-f2 uiR2_Forest34 uiR2EntryPoint03 26413 -12556 S
-f2 uiR2_Forest34 uiR2EntryPoint04 26238 -12888 N
-f2 uiR2_Forest34 uiR2EntryPoint05 26661 -12640 W
-
-f2 uiR2_Forest35 uiR2EntryPoint01 27100 -12600 S
-f2 uiR2_Forest35 uiR2EntryPoint02 27043 -12938 N
-f2 uiR2_Forest35 uiR2EntryPoint03 27222 -12726 W
-
-f2 uiR2_Forest45 uiR2EntryPoint01 26000 -13600 SW
-f2 uiR2_Forest45 uiR2EntryPoint02 25983 -13976 NW
-f2 uiR2_Forest45 uiR2EntryPoint03 25684 -13611 SE
-f2 uiR2_Forest45 uiR2EntryPoint04 25835 -13674 SE
-f2 uiR2_Forest45 uiR2EntryPoint05 26004 -13834 NW
-f2 uiR2_Forest45 uiR2EntryPoint06 25786 -13883 N
-
-f2 uiR2_Forest08 uiR2EntryPoint01 26957 -11364 NE
-f2 uiR2_Forest08 uiR2EntryPoint02 27200 -11178 S
-f2 uiR2_Forest08 uiR2EntryPoint03 27360 -11040 SW
-f2 uiR2_Forest08 uiR2EntryPoint04 27002 -10967 SE
-f2 uiR2_Forest08 uiR2EntryPoint05 27406 -11414 NW
-
-f2 uiR2_Forest12 uiR2EntryPoint01 29919 -11062 N
-f2 uiR2_Forest12 uiR2EntryPoint02 29855 -11111 NE
-f2 uiR2_Forest12 uiR2EntryPoint03 29986 -10996 SW
-
-f2 uiR2_Forest33 uiR2EntryPoint01 25300 -12600 S
-f2 uiR2_Forest33 uiR2EntryPoint02 25598 -13023 N
-f2 uiR2_Forest33 uiR2EntryPoint03 25598 -12632 W
-f2 uiR2_Forest33 uiR2EntryPoint04 25299 -12957 N
-
-f3 uiR2_Forest38 uiR2EntryPoint01 29630 -12600 SW
-f3 uiR2_Forest38 uiR2EntryPoint02 29735 -12939 NW
-f3 uiR2_Forest38 uiR2EntryPoint03 29350 -12779 E
-f3 uiR2_Forest38 uiR2EntryPoint04 29525 -12714 SE
-f3 uiR2_Forest38 uiR2EntryPoint05 29391 -12585 SE
-f3 uiR2_Forest38 uiR2EntryPoint06 29465 -13029 NE
-
-f3 uiR2_Forest46 uiR2EntryPoint01 27000 -13600 S
-f3 uiR2_Forest46 uiR2EntryPoint02 28057 -14465 N
-f3 uiR2_Forest46 uiR2EntryPoint03 26890 -14013 NE
-f3 uiR2_Forest46 uiR2EntryPoint04 27254 -13872 S
-
-f3 uiR2_Forest02 uiR2EntryPoint01 22236 -11281 NE
-f3 uiR2_Forest02 uiR2EntryPoint02 22468 -11198 W
-f3 uiR2_Forest02 uiR2EntryPoint03 22222 -11426 NE
-f3 uiR2_Forest02 uiR2EntryPoint04 22353 -11000 S
-f3 uiR2_Forest02 uiR2EntryPoint05 22446 -11374 NW
-f3 uiR2_Forest02 uiR2EntryPoint06 22137 -11199 E
-f3 uiR2_Forest02 uiR2EntryPoint07 22158 -10990 E
-f3 uiR2_Forest02 uiR2EntryPoint08 22259 -11108 E
-
-f3 uiR2_Forest07 uiR2EntryPoint01 26322 -11348 N
-f3 uiR2_Forest07 uiR2EntryPoint02 26310 -11200 E
-f3 uiR2_Forest07 uiR2EntryPoint03 26545 -11157 W
-f3 uiR2_Forest07 uiR2EntryPoint04 26185 -10967 E
-f3 uiR2_Forest07 uiR2EntryPoint05 26171 -11200 E
-f3 uiR2_Forest07 uiR2EntryPoint06 26446 -11021 SW
-f3 uiR2_Forest07 uiR2EntryPoint07 26222 -11401 NE
-f3 uiR2_Forest07 uiR2EntryPoint08 26498 -11359 W
-
-f3 uiR2_Forest16 uiR2EntryPoint01 23114 -11953 W
-f3 uiR2_Forest16 uiR2EntryPoint02 22883 -11999 E
-f3 uiR2_Forest16 uiR2EntryPoint03 22743 -12136 N
-f3 uiR2_Forest16 uiR2EntryPoint04 22735 -11817 SE
-f3 uiR2_Forest16 uiR2EntryPoint05 23038 -12182 NW
-
-f3 uiR2_Forest18 uiR2EntryPoint01 24326 -11878 SE
-f3 uiR2_Forest18 uiR2EntryPoint02 24390 -12095 N
-f3 uiR2_Forest18 uiR2EntryPoint03 24525 -12090 E
-f3 uiR2_Forest18 uiR2EntryPoint04 24225 -11836 E
-
-f4 uiR2_Forest25 uiR2EntryPoint01 29903 -11886 SO
-f4 uiR2_Forest25 uiR2EntryPoint02 29714 -12046 NE
-f4 uiR2_Forest25 uiR2EntryPoint03 29730 -11826 SE
-f4 uiR2_Forest25 uiR2EntryPoint04 29959 -11791 SW
-
-f4 uiR2_Forest01 uiR2EntryPoint01 21581 -11056 S
-f4 uiR2_Forest01 uiR2EntryPoint02 21733 -11412 NW
-f4 uiR2_Forest01 uiR2EntryPoint03 21648 -11248 S
-f4 uiR2_Forest01 uiR2EntryPoint04 21510 -11443 NE
-f4 uiR2_Forest01 uiR2EntryPoint05 21400 -11247 E
-f4 uiR2_Forest01 uiR2EntryPoint06 21762 -10995 S
-f4 uiR2_Forest01 uiR2EntryPoint07 21855 -11231 W
-f4 uiR2_Forest01 uiR2EntryPoint08 21355 -11040 E
-f4 uiR2_Forest01 uiR2EntryPoint09 21596 -10946 S
-
-f4 uiR2_Forest10 uiR2EntryPoint01 28673 -11191 N
-f4 uiR2_Forest10 uiR2EntryPoint02 28645 -11007 S
-f4 uiR2_Forest10 uiR2EntryPoint03 28566 -11110 E
-
-f4 uiR2_Forest24 uiR2EntryPoint01 29365 -11968 W
-f4 uiR2_Forest24 uiR2EntryPoint02 28963 -11969 E
-f4 uiR2_Forest24 uiR2EntryPoint03 29146 -11817 S
-f4 uiR2_Forest24 uiR2EntryPoint04 29117 -12186 N
-f4 uiR2_Forest24 uiR2EntryPoint05 29139 -12001 N
-
-f4 uiR2_Forest30 uiR2EntryPoint01 22865 -12920 N
-f4 uiR2_Forest30 uiR2EntryPoint02 23068 -12632 W
-f4 uiR2_Forest30 uiR2EntryPoint03 22773 -12782 E
-f4 uiR2_Forest30 uiR2EntryPoint04 22901 -12688 S
-
-f4 uiR2_Forest40 uiR2EntryPoint01 21150 -13350 N
-f4 uiR2_Forest40 uiR2EntryPoint02 21536 -13506 N
-f4 uiR2_Forest40 uiR2EntryPoint03 21359 -13195 S
-f4 uiR2_Forest40 uiR2EntryPoint04 21162 -13553 NE
-f4 uiR2_Forest40 uiR2EntryPoint05 21267 -13280 W
-f4 uiR2_Forest40 uiR2EntryPoint06 21118 -13278 SE
-
-
-
-o1 uiR2_Forest09 uiR2EntryPoint01 28210 -10964 SW
-o1 uiR2_Forest09 uiR2EntryPoint02 28058 -11137 S
-o1 uiR2_Forest09 uiR2EntryPoint03 27855 -11099 E
-
-o1 uiR2_Forest13 uiR2EntryPoint01 30783 -11199 W
-o1 uiR2_Forest13 uiR2EntryPoint02 30569 -10957 S
-o1 uiR2_Forest13 uiR2EntryPoint03 30355 -11071 E
-
-o1 uiR2_Forest21 uiR2EntryPoint01 26547 -12021 E
-o1 uiR2_Forest21 uiR2EntryPoint02 26748 -11980 SW
-o1 uiR2_Forest21 uiR2EntryPoint03 26636 -12215 N
-o1 uiR2_Forest21 uiR2EntryPoint04 26560 -11775 S
-
-o1 uiR2_Forest26 uiR2EntryPoint01 30827 -11803 W
-o1 uiR2_Forest26 uiR2EntryPoint02 30559 -11816 E
-o1 uiR2_Forest26 uiR2EntryPoint03 30347 -11839 E
-
-o1 uiR2_Forest28 uiR2EntryPoint01 21720 -12717 N
-o1 uiR2_Forest28 uiR2EntryPoint02 21559 -12569 S
-o1 uiR2_Forest28 uiR2EntryPoint03 21581 -12739 NE
-o1 uiR2_Forest28 uiR2EntryPoint04 21831 -12579 SW
-o1 uiR2_Forest28 uiR2EntryPoint05 21676 -12643 E
-
-
-
-//z1 uiR2_Forest06 uiR2EntryPoint01 25424 -11251 E
-//z1 uiR2_Forest06 uiR2EntryPoint02 25768 -11068 SW
-//z1 uiR2_Forest06 uiR2EntryPoint03 25616 -11254 NW
-
-//z1 uiR2_Forest11 uiR2EntryPoint01 29400 -11408 NW
-//z1 uiR2_Forest11 uiR2EntryPoint02 29273 -11198 S
-//z1 uiR2_Forest11 uiR2EntryPoint03 29112 -11028 SE
-
-//z1 uiR2_Forest15 uiR2EntryPoint01 22136 -11787 S
-//z1 uiR2_Forest15 uiR2EntryPoint02 21908 -12109 NE
-//z1 uiR2_Forest15 uiR2EntryPoint03 21903 -11855 SE
-//z1 uiR2_Forest15 uiR2EntryPoint04 22206 -12161 NW
-//z1 uiR2_Forest15 uiR2EntryPoint05 22066 -11993 N
-
-//z1 uiR2_Forest17 uiR2EntryPoint01 23533 -11761 SE
-//z1 uiR2_Forest17 uiR2EntryPoint02 23689 -12007 N
-//z1 uiR2_Forest17 uiR2EntryPoint03 23688 -12223 N
-//z1 uiR2_Forest17 uiR2EntryPoint04 23850 -11791 SW
-//z1 uiR2_Forest17 uiR2EntryPoint05 23464 -12000 E
-//z1 uiR2_Forest17 uiR2EntryPoint06 23862 -12143 NW
-
-//z1 uiR2_Forest22 uiR2EntryPoint01 27153 -12009 E
-//z1 uiR2_Forest22 uiR2EntryPoint02 27581 -11992 SW
-//z1 uiR2_Forest22 uiR2EntryPoint03 27374 -12176 N
-//z1 uiR2_Forest22 uiR2EntryPoint04 27381 -11938 S
-//z1 uiR2_Forest22 uiR2EntryPoint05 27260 -12085 E
-//z1 uiR2_Forest22 uiR2EntryPoint06 27444 -12071 W
-
-//z1 uiR2_Forest29 uiR2EntryPoint01 22306 -12674 W
-//z1 uiR2_Forest29 uiR2EntryPoint02 22404 -12746 N
-//z1 uiR2_Forest29 uiR2EntryPoint03 22152 -12719 NE
-
-//z1 uiR2_Forest36 uiR2EntryPoint01 27800 -12770 E
-//z1 uiR2_Forest36 uiR2EntryPoint02 28127 -12573 SW
-//z1 uiR2_Forest36 uiR2EntryPoint03 28218 -13020 NW
-//z1 uiR2_Forest36 uiR2EntryPoint04 27909 -12736 SW
-//z1 uiR2_Forest36 uiR2EntryPoint05 27805 -12614 S
-//z1 uiR2_Forest36 uiR2EntryPoint06 27896 -12855 E
-//z1 uiR2_Forest36 uiR2EntryPoint07 27794 -13005 NW
-//z1 uiR2_Forest36 uiR2EntryPoint08 28058 -12493 SE
-
-//z1 uiR2_Forest37 uiR2EntryPoint01 28980 -12920 W
-//z1 uiR2_Forest37 uiR2EntryPoint02 28880 -12886 SE
-//z1 uiR2_Forest37 uiR2EntryPoint03 28879 -13020 NE
-//z1 uiR2_Forest37 uiR2EntryPoint04 28522 -12562 E
-//z1 uiR2_Forest37 uiR2EntryPoint05 28712 -12686 s
-//z1 uiR2_Forest37 uiR2EntryPoint06 28747 -12911 N
-
-//z1 uiR2_Forest42 uiR2EntryPoint01 22830 -13600 NE
-//z1 uiR2_Forest42 uiR2EntryPoint02 23342 -13475 W
-//z1 uiR2_Forest42 uiR2EntryPoint03 22853 -13394 SE
-//z1 uiR2_Forest42 uiR2EntryPoint04 23099 -13430 S
-
-//z1 uiR2_Forest43 uiR2EntryPoint01 24000 -13600 N
-//z1 uiR2_Forest43 uiR2EntryPoint02 24076 -13838 W
-//z1 uiR2_Forest43 uiR2EntryPoint03 23825 -13411 SE
-//z1 uiR2_Forest43 uiR2EntryPoint04 24208 -13583 W
-//z1 uiR2_Forest43 uiR2EntryPoint05 24000 -13364 S
-//z1 uiR2_Forest43 uiR2EntryPoint06 24039 -13492 W
-
-//z1 uiR2_Forest44 uiR2EntryPoint01 24670 -13600 S
-//z1 uiR2_Forest44 uiR2EntryPoint02 24877 -14823 N
-//z1 uiR2_Forest44 uiR2EntryPoint03 24959 -14224 W
-//z1 uiR2_Forest44 uiR2EntryPoint04 24653 -14092 N
-//z1 uiR2_Forest44 uiR2EntryPoint05 24565 -13357 S
-//z1 uiR2_Forest44 uiR2EntryPoint06 24642 -14325 E
-
-
-
-
-// Jungle
-
-a1 uiR2_Jungle14 uiR2EntryPoint01 40700 -11200 E
-a1 uiR2_Jungle14 uiR2EntryPoint02 40876 -11370 W
-a1 uiR2_Jungle14 uiR2EntryPoint03 40681 -11376 W
-a1 uiR2_Jungle14 uiR2EntryPoint04 40841 -10966 W
-
-a1 uiR2_Jungle23 uiR2EntryPoint01 38200 -12000 N
-a1 uiR2_Jungle23 uiR2EntryPoint02 38163 -11917 W
-a1 uiR2_Jungle23 uiR2EntryPoint03 37956 -12037 E
-a1 uiR2_Jungle23 uiR2EntryPoint04 38356 -11999 NW
-a1 uiR2_Jungle23 uiR2EntryPoint05 38489 -11936 NW
-a1 uiR2_Jungle23 uiR2EntryPoint06 38196 -11782 S
-
-a1 uiR2_Jungle27 uiR2EntryPoint01 31200 -12700 N
-a1 uiR2_Jungle27 uiR2EntryPoint02 31207 -12533 S
-a1 uiR2_Jungle27 uiR2EntryPoint03 31299 -12813 NW
-
-j1 uiR2_Jungle06 uiR2EntryPoint01 34426 -11339 NE
-j1 uiR2_Jungle06 uiR2EntryPoint02 34698 -11060 W
-j1 uiR2_Jungle06 uiR2EntryPoint03 34836 -11243 W
-j1 uiR2_Jungle06 uiR2EntryPoint04 34651 -11405 S
-j1 uiR2_Jungle06 uiR2EntryPoint05 34372 -11029 E
-
-j1 uiR2_Jungle07 uiR2EntryPoint01 35300 -11200 SE
-j1 uiR2_Jungle07 uiR2EntryPoint02 35534 -11057 SW
-j1 uiR2_Jungle07 uiR2EntryPoint03 35424 -11378 N
-j1 uiR2_Jungle07 uiR2EntryPoint04 35100 -11026 SE
-
-j1 uiR2_Jungle15 uiR2EntryPoint01 31300 -12000 N
-j1 uiR2_Jungle15 uiR2EntryPoint02 31181 -11823 SE
-j1 uiR2_Jungle15 uiR2EntryPoint03 31185 -12211 NE
-j1 uiR2_Jungle15 uiR2EntryPoint04 31549 -12148 NW
-j1 uiR2_Jungle15 uiR2EntryPoint05 31549 -11920 W
-
-j1 uiR2_Jungle18 uiR2EntryPoint01 34000 -12000 S
-j1 uiR2_Jungle18 uiR2EntryPoint02 34234 -12243 N
-j1 uiR2_Jungle18 uiR2EntryPoint03 34161 -11953 E
-j1 uiR2_Jungle18 uiR2EntryPoint04 34191 -11792 S
-j1 uiR2_Jungle18 uiR2EntryPoint05 33799 -11882 SE
-j1 uiR2_Jungle18 uiR2EntryPoint06 33832 -12256 N
-
-j1 uiR2_Jungle36 uiR2EntryPoint01 37074 -12782 N
-j1 uiR2_Jungle36 uiR2EntryPoint02 37071 -12878 SW
-j1 uiR2_Jungle36 uiR2EntryPoint03 36896 -12875 E
-j1 uiR2_Jungle36 uiR2EntryPoint04 36934 -12737 S
-j1 uiR2_Jungle36 uiR2EntryPoint05 36978 -13070 N
-j1 uiR2_Jungle36 uiR2EntryPoint06 36800 -13062 NE
-
-j1 uiR2_Jungle41 uiR2EntryPoint01 40648 -12573 N
-j1 uiR2_Jungle41 uiR2EntryPoint02 40696 -12807 E
-j1 uiR2_Jungle41 uiR2EntryPoint03 40771 -13042 N
-
-j1 uiR2_Jungle53 uiR2EntryPoint01 39683 -13678 W
-j1 uiR2_Jungle53 uiR2EntryPoint02 39413 -13784 NE
-j1 uiR2_Jungle53 uiR2EntryPoint03 39514 -13435 SE
-j1 uiR2_Jungle53 uiR2EntryPoint04 39718 -13338 S
-
-j2 uiR2_Jungle01 uiR2EntryPoint01 31300 -11100 S
-j2 uiR2_Jungle01 uiR2EntryPoint02 31257 -10932 E
-j2 uiR2_Jungle01 uiR2EntryPoint03 31594 -11118 N
-j2 uiR2_Jungle01 uiR2EntryPoint04 31080 -11296 NE
-
-j2 uiR2_Jungle28 uiR2EntryPoint01 31600 -12550 N
-j2 uiR2_Jungle28 uiR2EntryPoint02 31788 -12534 S
-
-j2 uiR2_Jungle32 uiR2EntryPoint01 33720 -12700 SW
-j2 uiR2_Jungle32 uiR2EntryPoint02 33855 -12620 W
-j2 uiR2_Jungle32 uiR2EntryPoint03 33646 -12853 SE
-j2 uiR2_Jungle32 uiR2EntryPoint04 33757 -12969 NW
-
-j2 uiR2_Jungle34 uiR2EntryPoint01 35220 -12610 N
-j2 uiR2_Jungle34 uiR2EntryPoint02 35030 -12535 SW
-j2 uiR2_Jungle34 uiR2EntryPoint03 35028 -12728 SE
-j2 uiR2_Jungle34 uiR2EntryPoint04 35304 -12781 W
-j2 uiR2_Jungle34 uiR2EntryPoint05 35419 -12726 S
-
-j2 uiR2_Jungle51 uiR2EntryPoint01 38204 -13916 N
-j2 uiR2_Jungle51 uiR2EntryPoint02 38135 -13696 NW
-j2 uiR2_Jungle51 uiR2EntryPoint03 38032 -13508 E
-
-j2 uiR2_Jungle02 uiR2EntryPoint01 32203 -11283 NW
-j2 uiR2_Jungle02 uiR2EntryPoint02 32062 -10944 E
-j2 uiR2_Jungle02 uiR2EntryPoint03 32396 -11409 N
-j2 uiR2_Jungle02 uiR2EntryPoint04 32557 -11107 S
-j2 uiR2_Jungle02 uiR2EntryPoint05 32533 -10964 W
-
-j2 uiR2_Jungle05 uiR2EntryPoint01 33768 -11278 N
-j2 uiR2_Jungle05 uiR2EntryPoint02 33981 -11292 W
-
-j3 uiR2_Jungle38 uiR2EntryPoint01 38290 -12740 E
-j3 uiR2_Jungle38 uiR2EntryPoint02 38288 -12905 E
-j3 uiR2_Jungle38 uiR2EntryPoint03 38446 -13070 E
-j3 uiR2_Jungle38 uiR2EntryPoint04 38665 -12895 NW
-j3 uiR2_Jungle38 uiR2EntryPoint05 38475 -12755 S
-
-j3 uiR2_Jungle49 uiR2EntryPoint01 36953 -13596 N
-j3 uiR2_Jungle49 uiR2EntryPoint02 36931 -13379 SW
-j3 uiR2_Jungle49 uiR2EntryPoint03 36564 -13630 NE
-j3 uiR2_Jungle49 uiR2EntryPoint04 36901 -13803 N
-
-j3 uiR2_Jungle52 uiR2EntryPoint01 39145 -13665 W
-j3 uiR2_Jungle52 uiR2EntryPoint02 39053 -13517 E
-j3 uiR2_Jungle52 uiR2EntryPoint03 38963 -13387 N
-j3 uiR2_Jungle52 uiR2EntryPoint04 38710 -13477 S
-j3 uiR2_Jungle52 uiR2EntryPoint05 38931 -13723 W
-j3 uiR2_Jungle52 uiR2EntryPoint06 38915 -13580 N
-
-j3 uiR2_Jungle03 uiR2EntryPoint01 33100 -11200 NE
-j3 uiR2_Jungle03 uiR2EntryPoint02 32837 -11458 E
-j3 uiR2_Jungle03 uiR2EntryPoint03 33230 -11343 N
-j3 uiR2_Jungle03 uiR2EntryPoint04 33304 -11015 SW
-
-j3 uiR2_Jungle24 uiR2EntryPoint01 39000 -12000 W
-j3 uiR2_Jungle24 uiR2EntryPoint02 39297 -11888 S
-j3 uiR2_Jungle24 uiR2EntryPoint03 38832 -11886 SE
-j3 uiR2_Jungle24 uiR2EntryPoint04 38847 -12265 NE
-j3 uiR2_Jungle24 uiR2EntryPoint05 39289 -12258 NE
-
-j3 uiR2_Jungle25 uiR2EntryPoint01 39621 -12083 NW
-j3 uiR2_Jungle25 uiR2EntryPoint02 39938 -12037 S
-j3 uiR2_Jungle25 uiR2EntryPoint03 39916 -12213 SE
-j3 uiR2_Jungle25 uiR2EntryPoint04 40114 -11884 W
-j3 uiR2_Jungle25 uiR2EntryPoint05 39955 -11803 W
-j3 uiR2_Jungle25 uiR2EntryPoint06 39786 -11886 W
-
-j3 uiR2_Jungle29 uiR2EntryPoint01 31753 -12934 N
-j3 uiR2_Jungle29 uiR2EntryPoint02 31766 -13034 W
-j3 uiR2_Jungle29 uiR2EntryPoint03 31948 -12894 NW
-j3 uiR2_Jungle29 uiR2EntryPoint04 31574 -12918 N
-
-j4 uiR2_Jungle50 uiR2EntryPoint01 37426 -13620 N
-j4 uiR2_Jungle50 uiR2EntryPoint02 37482 -13875 E
-j4 uiR2_Jungle50 uiR2EntryPoint03 37596 -13682 E
-j4 uiR2_Jungle50 uiR2EntryPoint04 37700 -13544 NE
-j4 uiR2_Jungle50 uiR2EntryPoint05 37685 -13388 NW
-
-j4 uiR2_Jungle08 uiR2EntryPoint01 36200 -11200 SE
-j4 uiR2_Jungle08 uiR2EntryPoint02 36390 -11360 W
-j4 uiR2_Jungle08 uiR2EntryPoint03 36076 -11069 W
-
-j4 uiR2_Jungle12 uiR2EntryPoint01 39235 -11288 N
-j4 uiR2_Jungle12 uiR2EntryPoint02 39448 -10932 W
-j4 uiR2_Jungle12 uiR2EntryPoint03 38946 -11120 E
-j4 uiR2_Jungle12 uiR2EntryPoint04 39153 -11467 N
-j4 uiR2_Jungle12 uiR2EntryPoint05 39130 -11005 NE
-j4 uiR2_Jungle12 uiR2EntryPoint06 39426 -11406 S
-
-j4 uiR2_Jungle16 uiR2EntryPoint01 32200 -12000 E
-j4 uiR2_Jungle16 uiR2EntryPoint02 32017 -11813 S
-j4 uiR2_Jungle16 uiR2EntryPoint03 32332 -12242 N
-j4 uiR2_Jungle16 uiR2EntryPoint04 32459 -11865 W
-j4 uiR2_Jungle16 uiR2EntryPoint05 32047 -12201 N
-
-j4 uiR2_Jungle22 uiR2EntryPoint01 37400 -12000 N
-j4 uiR2_Jungle22 uiR2EntryPoint02 37515 -11789 N
-j4 uiR2_Jungle22 uiR2EntryPoint03 37631 -12105 N
-j4 uiR2_Jungle22 uiR2EntryPoint04 37530 -12275 NE
-j4 uiR2_Jungle22 uiR2EntryPoint05 37339 -12275 NW
-j4 uiR2_Jungle22 uiR2EntryPoint06 37167 -11731 S
-
-j4 uiR2_Jungle42 uiR2EntryPoint01 31103 -13282 E
-j4 uiR2_Jungle42 uiR2EntryPoint02 31352 -13419 W
-j4 uiR2_Jungle42 uiR2EntryPoint03 31285 -13573 S
-j4 uiR2_Jungle42 uiR2EntryPoint04 31307 -13712 N
-j4 uiR2_Jungle42 uiR2EntryPoint05 31420 -13639 SW
-j4 uiR2_Jungle42 uiR2EntryPoint06 31083 -13691 NE
-
-
-o1 uiR2_Jungle11 uiR2EntryPoint01 38400 -11200 N
-o1 uiR2_Jungle11 uiR2EntryPoint02 38565 -11080 W
-o1 uiR2_Jungle11 uiR2EntryPoint03 38389 -11029 E
-
-o1 uiR2_Jungle19 uiR2EntryPoint01 35000 -12000 N
-o1 uiR2_Jungle19 uiR2EntryPoint02 34752 -12146 NE
-o1 uiR2_Jungle19 uiR2EntryPoint03 34749 -11909 SE
-o1 uiR2_Jungle19 uiR2EntryPoint04 35292 -12042 S
-o1 uiR2_Jungle19 uiR2EntryPoint05 35320 -12203 S
-
-o1 uiR2_Jungle21 uiR2EntryPoint01 36600 -12000 N
-o1 uiR2_Jungle21 uiR2EntryPoint02 36833 -11757 SW
-o1 uiR2_Jungle21 uiR2EntryPoint03 36443 -12055 E
-o1 uiR2_Jungle21 uiR2EntryPoint04 36504 -12275 NW
-o1 uiR2_Jungle21 uiR2EntryPoint05 36657 -12265 NW
-
-o1 uiR2_Jungle26 uiR2EntryPoint01 40600 -12000 W
-o1 uiR2_Jungle26 uiR2EntryPoint02 40903 -11996 W
-o1 uiR2_Jungle26 uiR2EntryPoint03 40429 -12233 NE
-
-o1 uiR2_Jungle30 uiR2EntryPoint01 32318 -12599 N
-o1 uiR2_Jungle30 uiR2EntryPoint02 32444 -12765 N
-o1 uiR2_Jungle30 uiR2EntryPoint03 32497 -12629 W
-
-o1 uiR2_Jungle33 uiR2EntryPoint01 34230 -12745 N
-o1 uiR2_Jungle33 uiR2EntryPoint02 34311 -12806 SE
-o1 uiR2_Jungle33 uiR2EntryPoint03 34399 -12967 W
-o1 uiR2_Jungle33 uiR2EntryPoint04 34221 -12959 E
-
-o1 uiR2_Jungle35 uiR2EntryPoint01 35800 -13010 N
-o1 uiR2_Jungle35 uiR2EntryPoint02 36057 -12912 W
-o1 uiR2_Jungle35 uiR2EntryPoint03 35755 -12619 E
-o1 uiR2_Jungle35 uiR2EntryPoint04 36228 -12618 W
-o1 uiR2_Jungle35 uiR2EntryPoint05 35934 -12714 E
-
-o1 uiR2_Jungle44 uiR2EntryPoint01 32799 -13439 N
-o1 uiR2_Jungle44 uiR2EntryPoint02 32628 -13363 SE
-o1 uiR2_Jungle44 uiR2EntryPoint03 32928 -13375 SW
-o1 uiR2_Jungle44 uiR2EntryPoint04 32828 -13484 SE
-o1 uiR2_Jungle44 uiR2EntryPoint05 32954 -13703 N
-
-o1 uiR2_Jungle45 uiR2EntryPoint01 33599 -13741 N
-o1 uiR2_Jungle45 uiR2EntryPoint02 33422 -13656 NE
-o1 uiR2_Jungle45 uiR2EntryPoint03 33762 -13543 NW
-o1 uiR2_Jungle45 uiR2EntryPoint04 33521 -13372 SE
-
-o1 uiR2_Jungle46 uiR2EntryPoint01 34218 -13905 N
-o1 uiR2_Jungle46 uiR2EntryPoint02 34374 -13798 NE
-o1 uiR2_Jungle46 uiR2EntryPoint03 34517 -13771 S
-o1 uiR2_Jungle46 uiR2EntryPoint04 34582 -13541 SE
-o1 uiR2_Jungle46 uiR2EntryPoint05 34311 -13491 N
-o1 uiR2_Jungle46 uiR2EntryPoint06 34194 -13371 NW
-
-o1 uiR2_Jungle47 uiR2EntryPoint01 35624 -13369 N
-o1 uiR2_Jungle47 uiR2EntryPoint02 35613 -13526 W
-o1 uiR2_Jungle47 uiR2EntryPoint03 35446 -13684 E
-o1 uiR2_Jungle47 uiR2EntryPoint04 35162 -13683 W
-o1 uiR2_Jungle47 uiR2EntryPoint05 35118 -13442 E
-o1 uiR2_Jungle47 uiR2EntryPoint06 35379 -13426 SE
-
-o1 uiR2_Jungle48 uiR2EntryPoint01 35989 -13425 N
-o1 uiR2_Jungle48 uiR2EntryPoint02 36122 -13469 SW
-o1 uiR2_Jungle48 uiR2EntryPoint03 36107 -13750 N
-
-
-
-//z1 uiR2_Jungle04 uiR2EntryPoint01 33840 -11000 N
-
-//z1 uiR2_Jungle09 uiR2EntryPoint01 36694 -11144 E
-//z1 uiR2_Jungle09 uiR2EntryPoint02 36947 -11190 N
-//z1 uiR2_Jungle09 uiR2EntryPoint03 36698 -10954 S
-//z1 uiR2_Jungle09 uiR2EntryPoint04 36679 -11467 N
-//z1 uiR2_Jungle09 uiR2EntryPoint05 36880 -11041 S
-//z1 uiR2_Jungle09 uiR2EntryPoint06 36870 -11253 E
-//z1 uiR2_Jungle09 uiR2EntryPoint07 37203 -11179 N
-
-//z1 uiR2_Jungle10 uiR2EntryPoint01 37790 -11080 E
-//z1 uiR2_Jungle10 uiR2EntryPoint02 37909 -11413 N
-//z1 uiR2_Jungle10 uiR2EntryPoint03 37530 -11208 NE
-//z1 uiR2_Jungle10 uiR2EntryPoint04 37588 -11375 N
-
-//z1 uiR2_Jungle13 uiR2EntryPoint01 40000 -11200 W
-//z1 uiR2_Jungle13 uiR2EntryPoint02 40187 -11030 S
-//z1 uiR2_Jungle13 uiR2EntryPoint03 39771 -10957 E
-//z1 uiR2_Jungle13 uiR2EntryPoint04 39793 -11177 E
-//z1 uiR2_Jungle13 uiR2EntryPoint05 40057 -11356 E
-
-//z1 uiR2_Jungle17 uiR2EntryPoint01 33000 -12000 N
-//z1 uiR2_Jungle17 uiR2EntryPoint02 33158 -12149 N
-//z1 uiR2_Jungle17 uiR2EntryPoint03 33211 -11895 N
-//z1 uiR2_Jungle17 uiR2EntryPoint04 33199 -12007 W
-//z1 uiR2_Jungle17 uiR2EntryPoint05 32971 -11754 S
-//z1 uiR2_Jungle17 uiR2EntryPoint06 33038 -11926 E
-
-//z1 uiR2_Jungle20 uiR2EntryPoint01 35650 -12140 N
-
-//z1 uiR2_Jungle31 uiR2EntryPoint01 33149 -12874 N
-//z1 uiR2_Jungle31 uiR2EntryPoint02 33066 -13037 S
-//z1 uiR2_Jungle31 uiR2EntryPoint03 33043 -12726 NW
-
-//z1 uiR2_Jungle37 uiR2EntryPoint01 37929 -12925 N
-
-//z1 uiR2_Jungle39 uiR2EntryPoint01 38971 -12788 N
-//z1 uiR2_Jungle39 uiR2EntryPoint02 39024 -13072 NE
-//z1 uiR2_Jungle39 uiR2EntryPoint03 39159 -12877 E
-//z1 uiR2_Jungle39 uiR2EntryPoint04 39432 -13045 N
-//z1 uiR2_Jungle39 uiR2EntryPoint05 39280 -12841 N
-//z1 uiR2_Jungle39 uiR2EntryPoint06 39255 -12682 N
-//z1 uiR2_Jungle39 uiR2EntryPoint07 39433 -12707 E
-
-//z1 uiR2_Jungle40 uiR2EntryPoint01 40132 -12610 N
-
-//z1 uiR2_Jungle43 uiR2EntryPoint01 31767 -13391 N
-
-
-// Prime Roots
-
-p1 uiR2_Primes04 uiR2EntryPoint01 33300 -21200 S
-p1 uiR2_Primes04 uiR2EntryPoint02 33454 -21456 NW
-p1 uiR2_Primes04 uiR2EntryPoint03 33029 -21522 E
-
-p1 uiR2_Primes06 uiR2EntryPoint01 34700 -21070 SE
-p1 uiR2_Primes06 uiR2EntryPoint02 34905 -21093 SW
-p1 uiR2_Primes06 uiR2EntryPoint03 34733 -21359 N
-
-p1 uiR2_Primes22 uiR2EntryPoint01 37500 -21960 S
-p1 uiR2_Primes22 uiR2EntryPoint02 37524 -22163 N
-p1 uiR2_Primes22 uiR2EntryPoint03 37394 -22286 NE
-
-p1 uiR2_Primes09 uiR2EntryPoint01 36950 -21200 E
-p1 uiR2_Primes09 uiR2EntryPoint02 37532 -21366 W
-p1 uiR2_Primes09 uiR2EntryPoint03 37208 -21170 S
-
-p3 uiR2_Primes29 uiR2EntryPoint01 33140 -22910 W
-p3 uiR2_Primes29 uiR2EntryPoint02 33016 -22602 S
-p3 uiR2_Primes29 uiR2EntryPoint03 32776 -23057 NE
-
-p3 uiR2_Primes01 uiR2EntryPoint01 31110 -21520 E
-p3 uiR2_Primes01 uiR2EntryPoint02 31198 -21061 S
-p3 uiR2_Primes01 uiR2EntryPoint03 31132 -21312 E
-
-p3 uiR2_Primes05 uiR2EntryPoint01 34250 -21300 W
-p3 uiR2_Primes05 uiR2EntryPoint02 33891 -21271 E
-p3 uiR2_Primes05 uiR2EntryPoint03 34151 -21558 N
-
-p5 uiR2_Primes16 uiR2EntryPoint01 32970 -22100 NW
-p5 uiR2_Primes16 uiR2EntryPoint02 32763 -21871 SE
-p5 uiR2_Primes16 uiR2EntryPoint03 32890 -21990 S
-
-p5 uiR2_Primes18 uiR2EntryPoint01 34600 -22075 W
-p5 uiR2_Primes18 uiR2EntryPoint02 34205 -22078 E
-p5 uiR2_Primes18 uiR2EntryPoint03 34651 -21825 S
-
-p5 uiR2_Primes25 uiR2EntryPoint01 39910 -22320 E
-p5 uiR2_Primes25 uiR2EntryPoint02 39757 -22077 E
-p5 uiR2_Primes25 uiR2EntryPoint03 39979 -22132 NW
-
-p6 uiR2_Primes03 uiR2EntryPoint01 32300 -21100 SE
-p6 uiR2_Primes03 uiR2EntryPoint02 32288 -21484 N
-p6 uiR2_Primes03 uiR2EntryPoint03 32691 -21085 SW
-
-p6 uiR2_Primes07 uiR2EntryPoint01 35350 -21300 NE
-p6 uiR2_Primes07 uiR2EntryPoint02 35519 -21067 S
-p6 uiR2_Primes07 uiR2EntryPoint03 35601 -21405 N
-
-p6 uiR2_Primes13 uiR2EntryPoint01 40330 -21600 N
-p6 uiR2_Primes13 uiR2EntryPoint02 40127 -21438 E
-p6 uiR2_Primes13 uiR2EntryPoint03 40537 -21438 W
-
-p7 uiR2_Primes19 uiR2EntryPoint01 35000 -22300 N
-p7 uiR2_Primes19 uiR2EntryPoint02 35456 -22007 W
-p7 uiR2_Primes19 uiR2EntryPoint03 35022 -21891 SE
-
-p7 uiR2_Primes26 uiR2EntryPoint01 40500 -22100 N
-p7 uiR2_Primes26 uiR2EntryPoint02 40694 -22284 NW
-p7 uiR2_Primes26 uiR2EntryPoint03 40426 -22298 NE
-
-p7 uiR2_Primes08 uiR2EntryPoint01 36200 -21100 E
-p7 uiR2_Primes08 uiR2EntryPoint02 36393 -21558 N
-p7 uiR2_Primes08 uiR2EntryPoint03 36077 -21345 S
-
-p8 uiR2_Primes10 uiR2EntryPoint01 38002 -21293 N
-p8 uiR2_Primes10 uiR2EntryPoint02 38006 -21532 N
-p8 uiR2_Primes10 uiR2EntryPoint03 38094 -21040 S
-
-p8 uiR2_Primes11 uiR2EntryPoint01 38970 -21520 W
-p8 uiR2_Primes11 uiR2EntryPoint02 38721 -21047 S
-p8 uiR2_Primes11 uiR2EntryPoint03 38577 -21350 NW
-
-p8 uiR2_Primes15 uiR2EntryPoint01 31980 -21880 SE
-p8 uiR2_Primes15 uiR2EntryPoint02 32365 -22121 NW
-p8 uiR2_Primes15 uiR2EntryPoint03 32159 -22032 N
-
-p11 uiR2_Primes30 uiR2EntryPoint01 33730 -22860 N
-p11 uiR2_Primes30 uiR2EntryPoint02 33656 -22604 E
-p11 uiR2_Primes30 uiR2EntryPoint03 33843 -22997 E
-
-p11 uiR2_Primes12 uiR2EntryPoint01 39500 -21280 NE
-p11 uiR2_Primes12 uiR2EntryPoint02 39240 -21197 E
-p11 uiR2_Primes12 uiR2EntryPoint03 39800 -21352 W
-
-p11 uiR2_Primes14 uiR2EntryPoint01 31350 -21960 S
-p11 uiR2_Primes14 uiR2EntryPoint02 31373 -22074 S
-p11 uiR2_Primes14 uiR2EntryPoint03 31166 -22272 NE
-
-p12 uiR2_Primes17 uiR2EntryPoint01 33660 -22000 SW
-p12 uiR2_Primes17 uiR2EntryPoint02 33397 -21879 SE
-p12 uiR2_Primes17 uiR2EntryPoint03 33347 -22331 N
-
-p12 uiR2_Primes21 uiR2EntryPoint01 37000 -22150 W
-p12 uiR2_Primes21 uiR2EntryPoint02 36645 -21864 SE
-p12 uiR2_Primes21 uiR2EntryPoint03 36964 -21813 SE
-
-p12 uiR2_Primes27 uiR2EntryPoint01 31530 -22700 SW
-p12 uiR2_Primes27 uiR2EntryPoint02 31533 -23080 NW
-p12 uiR2_Primes27 uiR2EntryPoint03 31078 -22800 N
-
-
-
-o1 uiR2_Primes02 uiR2EntryPoint01 31640 -21140 SE
-o1 uiR2_Primes02 uiR2EntryPoint02 31593 -21374 N
-o1 uiR2_Primes02 uiR2EntryPoint03 31818 -21204 W
-
-o1 uiR2_Primes28 uiR2EntryPoint01 32270 -23000 N
-o1 uiR2_Primes28 uiR2EntryPoint02 32316 -22662 S
-o1 uiR2_Primes28 uiR2EntryPoint03 31933 -22734 SE
-
-
-
-//z1 uiR2_Primes20 uiR2EntryPoint01 35790 -22100 N
-
-//z1 uiR2_Primes23 uiR2EntryPoint01 38360 -21970 N
-
-//z1 uiR2_Primes24 uiR2EntryPoint02 38906 -21891 SE
-
-//z1 uiR2_Primes24 uiR2EntryPoint03 39086 -22287 NW
diff --git a/code/ryzom/common/src/game_share/entity_types.h b/code/ryzom/common/src/game_share/entity_types.h
index 6298ff64f..aad2d94e9 100644
--- a/code/ryzom/common/src/game_share/entity_types.h
+++ b/code/ryzom/common/src/game_share/entity_types.h
@@ -81,7 +81,8 @@ const uint32 NB_FAKE_DISC_PROPERTIES_UPDATED_PER_CYCLE=2;
typedef uint16 TProperty;
typedef uint8 TPropIndex;
-const uint32 NB_PROPERTIES = 256; //number of TProperty elements (if you change this, change the ids of special properties in the Front-end Service!)
+// KAE: Commented because not used
+//const uint32 NB_PROPERTIES = 256; //number of TProperty elements (if you change this, change the ids of special properties in the Front-end Service!)
/// Main type for positions/distances. Unit: millimeter
diff --git a/code/ryzom/common/src/game_share/generate_module_interface.xslt b/code/ryzom/common/src/game_share/generate_module_interface.xslt
index 425e699a4..ee87f6ae4 100644
--- a/code/ryzom/common/src/game_share/generate_module_interface.xslt
+++ b/code/ryzom/common/src/game_share/generate_module_interface.xslt
@@ -28,9 +28,7 @@
#ifndef
#define
#include "nel/misc/types_nl.h"
-#ifdef NL_COMP_VC8
- #include <memory>
-#endif
+#include <memory>
#include "nel/misc/hierarchical_timer.h"
#include "nel/misc/string_conversion.h"
#include "nel/net/message.h"
@@ -45,7 +43,7 @@
#include "nel/misc/string_common.h"
-#include "game_share/mysql_wrapper.h"
+#include "server_share/mysql_wrapper.h"
#include "game_share/synchronised_message.h"
diff --git a/code/ryzom/common/src/game_share/mirror.cpp b/code/ryzom/common/src/game_share/mirror.cpp
index ff0ed0b2c..0e634afaf 100644
--- a/code/ryzom/common/src/game_share/mirror.cpp
+++ b/code/ryzom/common/src/game_share/mirror.cpp
@@ -2871,7 +2871,7 @@ NLMISC_CATEGORISED_DYNVARIABLE(mirror, sint32, MainNbEntities, "Number of online
// We can only read the value
if ( get )
{
- if ( MirrorInstance->mirrorIsReady() )
+ if ( MirrorInstance && MirrorInstance->mirrorIsReady() )
{
try
{
@@ -2892,7 +2892,7 @@ NLMISC_CATEGORISED_DYNVARIABLE(mirror, sint32, LocalEntities, "Number of online
// We can only read the value
if ( get )
{
- if ( MirrorInstance->mirrorIsReady() )
+ if ( MirrorInstance && MirrorInstance->mirrorIsReady() )
{
try
{
diff --git a/code/ryzom/common/src/game_share/ryzom_entity_id.h b/code/ryzom/common/src/game_share/ryzom_entity_id.h
index 9fc2682ef..0cb2981ab 100644
--- a/code/ryzom/common/src/game_share/ryzom_entity_id.h
+++ b/code/ryzom/common/src/game_share/ryzom_entity_id.h
@@ -30,12 +30,17 @@ namespace RYZOMID
{
// warning: respect separation with creature /object, it's used in front-end vision prioritizer
// creature part (include player)
- player = 0,
- npc, //1
- creature, //2
- mount, //3
- pack_animal, //4
- flora, //5
+ creature_begin = 0,
+ player = creature_begin,
+ bot_ai_begin,
+ npc = bot_ai_begin, //1
+ creature, //2
+ mount, //3
+ pack_animal, //4
+ flora, //5
+ bot_ai_end = flora,
+ creature_end = bot_ai_end,
+
// objects part
object, // 6
building, // 7
diff --git a/code/ryzom/common/src/game_share/scenario_entry_points.cpp b/code/ryzom/common/src/game_share/scenario_entry_points.cpp
index f68b1d6f8..7c01af145 100644
--- a/code/ryzom/common/src/game_share/scenario_entry_points.cpp
+++ b/code/ryzom/common/src/game_share/scenario_entry_points.cpp
@@ -56,23 +56,8 @@ CScenarioEntryPoints::CScenarioEntryPoints()
void CScenarioEntryPoints::init()
{
- CConfigFile cf;
-
- cf.load("IslandScreenshots.cfg", true);
-
- // get the scenario entry points file
- CConfigFile::CVar * ciFile = cf.getVarPtr("CompleteIslandsFile");
- if(ciFile)
- {
- _CompleteIslandsFilename = ciFile->asString();
- }
-
- // get the scenario entry points file
- CConfigFile::CVar * epFile = cf.getVarPtr("EntryPointsFile");
- if(epFile)
- {
- _EntryPointsFilename = epFile->asString();
- }
+ _CompleteIslandsFilename = "r2_islands.xml";
+ _EntryPointsFilename = "r2_entry_points.txt";
}
//-----------------------------------------------------------------------------
diff --git a/code/ryzom/server/data_shard/mirror_sheets/pet.dataset b/code/ryzom/server/data_shard/mirror_sheets/pet.dataset
deleted file mode 100644
index 238a38dbd..000000000
--- a/code/ryzom/server/data_shard/mirror_sheets/pet.dataset
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
diff --git a/code/ryzom/server/src/dynamic_scenario_service/dynamic_scenario_service.h b/code/ryzom/server/src/dynamic_scenario_service/dynamic_scenario_service.h
index 8d1685796..8e5efb487 100644
--- a/code/ryzom/server/src/dynamic_scenario_service/dynamic_scenario_service.h
+++ b/code/ryzom/server/src/dynamic_scenario_service/dynamic_scenario_service.h
@@ -54,14 +54,6 @@ public:
// Release the service
void release ();
- void addTestClient(const std::string & clientId);
-
- void removeTestClient(const std::string & clientId);
-
- void listTestClient() const;
-
- void runTestClientLuaScript(const std::string & clientId, const std::string & cmd);
-
static R2::CDynamicScenarioService & instance() { return (CDynamicScenarioService&)*IService::getInstance(); }
diff --git a/code/ryzom/server/src/entities_game_service/game_item_manager/game_item_manager.cpp b/code/ryzom/server/src/entities_game_service/game_item_manager/game_item_manager.cpp
index 830c45d7c..16258192c 100644
--- a/code/ryzom/server/src/entities_game_service/game_item_manager/game_item_manager.cpp
+++ b/code/ryzom/server/src/entities_game_service/game_item_manager/game_item_manager.cpp
@@ -845,9 +845,9 @@ void CGameItemManager::buildNpcSpecificItems()
//-----------------------------------------------
// createItem :
//-----------------------------------------------
-NLMISC_COMMAND(createItem,"create a new item","")
+NLMISC_COMMAND(createItem,"create a new item","")
{
- if( args.size() < 3 )
+ if( args.size() < 2 )
{
return false;
}
@@ -859,9 +859,9 @@ NLMISC_COMMAND(createItem,"create a new item","")
uint16 quality;
NLMISC::fromString(args[1], quality);
- uint32 ownerIdTmp;
- NLMISC::fromString(args[2], ownerIdTmp);
- CEntityId ownerId(RYZOMID::object,ownerIdTmp);
+ //uint32 ownerIdTmp;
+ //NLMISC::fromString(args[2], ownerIdTmp);
+ //CEntityId ownerId(RYZOMID::object,ownerIdTmp);
// CGameItemPtr item = GameItemManager.createItem( sheetId, quality, ownerId, -1, true,true );
CGameItemPtr item = GameItemManager.createItem( sheetId, quality, true, true );
diff --git a/code/ryzom/server/src/entities_game_service/player_manager/character.cpp b/code/ryzom/server/src/entities_game_service/player_manager/character.cpp
index 5518042ed..5f0e980b4 100644
--- a/code/ryzom/server/src/entities_game_service/player_manager/character.cpp
+++ b/code/ryzom/server/src/entities_game_service/player_manager/character.cpp
@@ -16324,13 +16324,7 @@ void CCharacter::sendEmote( const NLMISC::CEntityId& id, MBEHAV::EBehaviour beha
}
CEntityId targetId = getTarget();
- if ( targetId.getType() != RYZOMID::npc &&
- targetId.getType() != RYZOMID::player &&
- targetId.getType() != RYZOMID::creature &&
- targetId.getType() != RYZOMID::mount &&
- targetId.getType() != RYZOMID::pack_animal &&
- targetId.getType() != RYZOMID::flora
- )
+ if (targetId.getType() > RYZOMID::creature_end)
targetId = CEntityId::Unknown;
TDataSetRow targetRow = TheDataset.getDataSetRow( targetId );
diff --git a/code/ryzom/server/src/frontend_service/distance_prioritizer.cpp b/code/ryzom/server/src/frontend_service/distance_prioritizer.cpp
index 305adb992..04bf990cd 100644
--- a/code/ryzom/server/src/frontend_service/distance_prioritizer.cpp
+++ b/code/ryzom/server/src/frontend_service/distance_prioritizer.cpp
@@ -915,7 +915,7 @@ inline void CDistancePrioritizer::serialSlotHeader( CClientHost& client, CEntit
timestampDelta = 15;
timestampDelta |= 0x10; // 'timestampIsThere bit': first bit is bit 5 (high to low order)
}
- else if ( seenEntityId.getType() >= RYZOMID::object )
+ else if ( seenEntityId.getType() > RYZOMID::creature_end )
{
// For non-players/non-bots types (e.g. bags), set the timestamp delta if entity is being spawned to the client
//if ( _VisualPropertyTreeRoot->B->B->getSHEETnode()->BranchHasPayload ) // assumes this is done after arbitrateDiscreetProperties() // CHANGED BEN
diff --git a/code/ryzom/server/src/frontend_service/distance_prioritizer.h b/code/ryzom/server/src/frontend_service/distance_prioritizer.h
index b7a69a1d6..ad59bc12e 100644
--- a/code/ryzom/server/src/frontend_service/distance_prioritizer.h
+++ b/code/ryzom/server/src/frontend_service/distance_prioritizer.h
@@ -227,7 +227,7 @@ public:
{
outbox.serialBitAndLog( BranchHasPayload );
if ( a() ) a()->fillDiscreetProperties( outbox );
- if ( a() ) b()->fillDiscreetProperties( outbox );
+ if ( b() ) b()->fillDiscreetProperties( outbox );
}
}
else
diff --git a/code/ryzom/server/src/gpm_service/world_entity.cpp b/code/ryzom/server/src/gpm_service/world_entity.cpp
index d9976a1c4..6debb6284 100644
--- a/code/ryzom/server/src/gpm_service/world_entity.cpp
+++ b/code/ryzom/server/src/gpm_service/world_entity.cpp
@@ -161,7 +161,7 @@ void CWorldEntity::init( const CEntityId& id, const TDataSetRow &index )
{
_Type = Trigger;
}
- else if ( (id.getType() >= RYZOMID::npc ) || ( id.getType() <= RYZOMID::flora) )
+ else if ((id.getType() >= RYZOMID::bot_ai_begin) && (id.getType() <= RYZOMID::bot_ai_end))
{
_Type = AI;
}
diff --git a/code/ryzom/server/src/input_output_service/chat_manager.cpp b/code/ryzom/server/src/input_output_service/chat_manager.cpp
index 50c58fce6..fbc38ead5 100644
--- a/code/ryzom/server/src/input_output_service/chat_manager.cpp
+++ b/code/ryzom/server/src/input_output_service/chat_manager.cpp
@@ -477,9 +477,9 @@ void CChatManager::chat( const TDataSetRow& sender, const ucstring& ucstr )
{
// if( itCl->second->isMuted() )
CEntityId eid = TheDataset.getEntityId(sender);
- if(_MutedUsers.find( eid ) != _MutedUsers.end())
+ if(_MutedUniverseUsers.find( eid ) != _MutedUniverseUsers.end())
{
- nldebug("IOSCM: chat The player %s:%x is muted",
+ nldebug("IOSCM: chat The player %s:%x is universe muted",
TheDataset.getEntityId(sender).toString().c_str(),
sender.getIndex());
return;
diff --git a/code/ryzom/server/src/patchman_service/spa_server_patch_applier.cpp b/code/ryzom/server/src/patchman_service/spa_server_patch_applier.cpp
index 63d5eced8..cd3703766 100644
--- a/code/ryzom/server/src/patchman_service/spa_server_patch_applier.cpp
+++ b/code/ryzom/server/src/patchman_service/spa_server_patch_applier.cpp
@@ -62,9 +62,9 @@ NLMISC::CVariable SpaLaunchAESCmdLine("spa","SpaLaunchAESCmdLine","Comma
// some handy utils
//-----------------------------------------------------------------------------
-static NLMISC::CSString defaultAdminExecutorServiceCfgFileName()
+static NLMISC::CSString defaultAdminExecutorServiceCfgFileName(const NLMISC::CSString& domainName)
{
- return NLMISC::CPath::standardizePath(DeploymentRootDirectory)+"admin_executor_service_default.cfg";
+ return NLMISC::CPath::standardizePath(DeploymentRootDirectory)+"admin_executor_service_default."+domainName+".cfg";
}
static NLMISC::CSString defaultScreenCfgFileName()
@@ -572,7 +572,7 @@ void CServerPatchApplier::cbDeploymentConfigurationSynchronised(NLNET::IModulePr
// setup the base for the admin_executor_service config file
CSString adminExecutorConfig;
- adminExecutorConfig.readFromFile(defaultAdminExecutorServiceCfgFileName());
+ adminExecutorConfig.readFromFile(defaultAdminExecutorServiceCfgFileName(*dit));
adminExecutorConfig+="\n\nShardName=\""+*dit+"\";\n";
CSString aesRegisteredServices;
CSString aesAddRegisteredServices;
diff --git a/code/ryzom/server/src/shard_unifier_service/nel_database_mapping.cpp b/code/ryzom/server/src/shard_unifier_service/nel_database_mapping.cpp
index 25cf56504..9e81798dc 100644
--- a/code/ryzom/server/src/shard_unifier_service/nel_database_mapping.cpp
+++ b/code/ryzom/server/src/shard_unifier_service/nel_database_mapping.cpp
@@ -1,18 +1,3 @@
-// Ryzom - MMORPG Framework
-// Copyright (C) 2010 Winch Gate Property Limited
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see .
/////////////////////////////////////////////////////////////////
// WARNING : this is a generated file, don't change it !
@@ -99,7 +84,7 @@ namespace RSMGR
{
nlwarning("ERROR : someone try to delete this object, but there are still ptr on it !");
CNelUserPtr *ptr = _PtrList;
- do
+ do
{
nlwarning(" Pointer created from '%s', line %u", ptr->_FileName, ptr->_LineNum);
ptr = _PtrList->getNextPtr();
@@ -107,7 +92,7 @@ namespace RSMGR
nlstop;
}
// remove object from cache map
- if (_UserId != NOPE::INVALID_OBJECT_ID
+ if (_UserId != NOPE::INVALID_OBJECT_ID
&& _ObjectState != NOPE::os_removed
&& _ObjectState != NOPE::os_transient)
{
@@ -318,7 +303,7 @@ namespace RSMGR
}
else if (cmd == NOPE::cc_instance_count)
{
- return (uint32)_ObjectCache.size();
+ return _ObjectCache.size();
}
// default return value
@@ -336,7 +321,7 @@ namespace RSMGR
TReleasedObject::iterator first(_ReleasedObject.begin()), last(_ReleasedObject.end());
for (; first != last; ++first)
{
- nbReleased += (uint32)first->second.size();
+ nbReleased += first->second.size();
}
nlinfo(" There are %u object instances in cache not referenced (waiting deletion or re-use))", nbReleased);
@@ -424,7 +409,7 @@ namespace RSMGR
if(_ObjectState == NOPE::os_released && state == NOPE::os_removed)
{
// a release object gets removed (e.g. by remove by id)
-
+
// delete the object
delete this;
@@ -578,7 +563,7 @@ namespace RSMGR
{
nlwarning("ERROR : someone try to delete this object, but there are still ptr on it !");
CNelPermissionPtr *ptr = _PtrList;
- do
+ do
{
nlwarning(" Pointer created from '%s', line %u", ptr->_FileName, ptr->_LineNum);
ptr = _PtrList->getNextPtr();
@@ -586,16 +571,16 @@ namespace RSMGR
nlstop;
}
// remove object from cache map
- if (_Prim != NOPE::INVALID_OBJECT_ID
+ if (_PermissionId != NOPE::INVALID_OBJECT_ID
&& _ObjectState != NOPE::os_removed
&& _ObjectState != NOPE::os_transient)
{
- nldebug("NOPE: clearing CNelPermission @%p from cache with id %u", this, static_cast(_Prim));
- nlverify(_ObjectCache.erase(_Prim) == 1);
+ nldebug("NOPE: clearing CNelPermission @%p from cache with id %u", this, static_cast(_PermissionId));
+ nlverify(_ObjectCache.erase(_PermissionId) == 1);
}
else if (_ObjectState != NOPE::os_transient)
{
- nlassert(_ObjectCache.find(_Prim) == _ObjectCache.end());
+ nlassert(_ObjectCache.find(_PermissionId) == _ObjectCache.end());
}
if (_ObjectState == NOPE::os_released)
{
@@ -626,18 +611,18 @@ namespace RSMGR
{
nlassert(getPersistentState() == NOPE::os_transient);
- nlassert(_Prim != 0);
+ nlassert(_PermissionId != 0);
std::string qs;
qs = "INSERT INTO permission (";
- qs += "prim, UId, ClientApplication, ShardId, AccessPrivilege";
+ qs += "PermissionId, UId, DomainId, ShardId, AccessPrivilege";
qs += ") VALUES (";
- qs += "'"+MSW::escapeString(NLMISC::toString(_Prim), connection)+"'";
+ qs += "'"+MSW::escapeString(NLMISC::toString(_PermissionId), connection)+"'";
qs += ", ";
qs += "'"+MSW::escapeString(NLMISC::toString(_UserId), connection)+"'";
qs += ", ";
- qs += "'"+MSW::escapeString(NLMISC::toString(_DomainName), connection)+"'";
+ qs += "'"+MSW::escapeString(NLMISC::toString(_DomainId), connection)+"'";
qs += ", ";
qs += "'"+MSW::escapeString(NLMISC::toString(_ShardId), connection)+"'";
qs += ", ";
@@ -670,17 +655,17 @@ namespace RSMGR
std::string qs;
qs = "UPDATE permission SET ";
- qs += "prim = '"+MSW::escapeString(NLMISC::toString(_Prim), connection)+"'";
+ qs += "PermissionId = '"+MSW::escapeString(NLMISC::toString(_PermissionId), connection)+"'";
qs += ", ";
qs += "UId = '"+MSW::escapeString(NLMISC::toString(_UserId), connection)+"'";
qs += ", ";
- qs += "ClientApplication = '"+MSW::escapeString(NLMISC::toString(_DomainName), connection)+"'";
+ qs += "DomainId = '"+MSW::escapeString(NLMISC::toString(_DomainId), connection)+"'";
qs += ", ";
qs += "ShardId = '"+MSW::escapeString(NLMISC::toString(_ShardId), connection)+"'";
qs += ", ";
qs += "AccessPrivilege = '"+MSW::escapeString(NLMISC::toString(_AccessPriv), connection)+"'";
- qs += " WHERE prim = '"+NLMISC::toString(_Prim)+"'";
+ qs += " WHERE PermissionId = '"+NLMISC::toString(_PermissionId)+"'";
if (connection.query(qs))
@@ -702,7 +687,7 @@ namespace RSMGR
std::string qs;
qs = "DELETE FROM permission ";
- qs += " WHERE prim = '"+NLMISC::toString(_Prim)+"'";
+ qs += " WHERE PermissionId = '"+NLMISC::toString(_PermissionId)+"'";
if (connection.query(qs))
@@ -736,7 +721,7 @@ namespace RSMGR
std::string qs;
qs = "DELETE FROM permission ";
- qs += " WHERE prim = '"+NLMISC::toString(id)+"'";
+ qs += " WHERE PermissionId = '"+NLMISC::toString(id)+"'";
if (connection.query(qs))
@@ -796,7 +781,7 @@ namespace RSMGR
}
else if (cmd == NOPE::cc_instance_count)
{
- return (uint32)_ObjectCache.size();
+ return _ObjectCache.size();
}
// default return value
@@ -814,7 +799,7 @@ namespace RSMGR
TReleasedObject::iterator first(_ReleasedObject.begin()), last(_ReleasedObject.end());
for (; first != last; ++first)
{
- nbReleased += (uint32)first->second.size();
+ nbReleased += first->second.size();
}
nlinfo(" There are %u object instances in cache not referenced (waiting deletion or re-use))", nbReleased);
@@ -902,7 +887,7 @@ namespace RSMGR
if(_ObjectState == NOPE::os_released && state == NOPE::os_removed)
{
// a release object gets removed (e.g. by remove by id)
-
+
// delete the object
delete this;
@@ -912,12 +897,12 @@ namespace RSMGR
if (_ObjectState == NOPE::os_transient && state != NOPE::os_transient)
{
- nldebug("NOPE: inserting CNelPermission @%p in cache with id %u", this, static_cast(_Prim));
- nlverify(_ObjectCache.insert(std::make_pair(_Prim, this)).second);
+ nldebug("NOPE: inserting CNelPermission @%p in cache with id %u", this, static_cast(_PermissionId));
+ nlverify(_ObjectCache.insert(std::make_pair(_PermissionId, this)).second);
}
if (_ObjectState != NOPE::os_transient)
- nlassert(_ObjectCache.find(_Prim) != _ObjectCache.end());
+ nlassert(_ObjectCache.find(_PermissionId) != _ObjectCache.end());
_ObjectState = state;
@@ -928,8 +913,8 @@ namespace RSMGR
}
else if (state == NOPE::os_removed)
{
- nldebug("NOPE: erasing CNelPermission @%p in cache with id %u", this, static_cast(_Prim));
- nlverify(_ObjectCache.erase(_Prim) == 1);
+ nldebug("NOPE: erasing CNelPermission @%p in cache with id %u", this, static_cast(_PermissionId));
+ nlverify(_ObjectCache.erase(_PermissionId) == 1);
}
}
@@ -945,11 +930,11 @@ namespace RSMGR
std::string qs;
qs = "SELECT ";
- qs += "prim, UId, ClientApplication, ShardId, AccessPrivilege";
+ qs += "PermissionId, UId, DomainId, ShardId, AccessPrivilege";
qs += " FROM permission";
- qs += " WHERE prim = '"+NLMISC::toString(id)+"'";
+ qs += " WHERE PermissionId = '"+NLMISC::toString(id)+"'";
CNelPermissionPtr ret;
if (!connection.query(qs))
{
@@ -965,9 +950,9 @@ namespace RSMGR
// ok, we have an object
result->fetchRow();
- result->getField(0, ret->_Prim);
+ result->getField(0, ret->_PermissionId);
result->getField(1, ret->_UserId);
- result->getField(2, ret->_DomainName);
+ result->getField(2, ret->_DomainId);
result->getField(3, ret->_ShardId);
result->getField(4, ret->_AccessPriv);
diff --git a/code/ryzom/server/src/shard_unifier_service/nel_database_mapping.h b/code/ryzom/server/src/shard_unifier_service/nel_database_mapping.h
index 7ddd3de74..50ef8e823 100644
--- a/code/ryzom/server/src/shard_unifier_service/nel_database_mapping.h
+++ b/code/ryzom/server/src/shard_unifier_service/nel_database_mapping.h
@@ -1,18 +1,3 @@
-// Ryzom - MMORPG Framework
-// Copyright (C) 2010 Winch Gate Property Limited
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see .
/////////////////////////////////////////////////////////////////
// WARNING : this is a generated file, don't change it !
@@ -107,7 +92,7 @@ namespace RSMGR
_PrevPtr(NULL)
{
_Ptr = objectPtr;
-
+
linkPtr();
}
@@ -247,7 +232,7 @@ namespace RSMGR
_PrevPtr(NULL)
{
_Ptr = objectPtr;
-
+
linkPtr();
}
@@ -556,7 +541,7 @@ namespace RSMGR
time_t _ReleaseDate;
/// The linked list of pointer on this object
- CNelUserPtr *_PtrList;
+ CNelUserPtr *_PtrList;
// Try to load the specified object from the memory cache, return NULL if the object is not in the cache
static CNelUser *loadFromCache(uint32 objectId, bool unrelease);
@@ -583,7 +568,7 @@ namespace RSMGR
}
public:
-
+
/** Return the object identifier (witch is unique)
* You can only call this method on a persistent instance.
* (because transient instance can have invalid id)
@@ -632,11 +617,11 @@ namespace RSMGR
{
protected:
//
- uint32 _Prim;
+ uint32 _PermissionId;
//
uint32 _UserId;
//
- std::string _DomainName;
+ uint32 _DomainId;
//
uint32 _ShardId;
//
@@ -662,25 +647,21 @@ namespace RSMGR
}
//
- const std::string &getDomainName() const
+ uint32 getDomainId() const
{
- return _DomainName;
+ return _DomainId;
}
-
-
- void setDomainName(const std::string &value)
+ void setDomainId(uint32 value)
{
- if (_DomainName != value)
+ if (_DomainId != value)
{
if (getPersistentState() != NOPE::os_transient)
setPersistentState(NOPE::os_dirty);
+ _DomainId = value;
- _DomainName = value;
-
-
}
}
@@ -729,9 +710,9 @@ namespace RSMGR
bool operator == (const CNelPermission &other) const
{
- return _Prim == other._Prim
+ return _PermissionId == other._PermissionId
&& _UserId == other._UserId
- && _DomainName == other._DomainName
+ && _DomainId == other._DomainId
&& _ShardId == other._ShardId
&& _AccessPriv == other._AccessPriv;
}
@@ -742,7 +723,7 @@ namespace RSMGR
CNelPermission()
: _PtrList(NULL),
_ObjectState(NOPE::os_transient),
- _Prim(NOPE::INVALID_OBJECT_ID)
+ _PermissionId(NOPE::INVALID_OBJECT_ID)
{
// register the cache for this class (if not already done)
@@ -825,7 +806,7 @@ namespace RSMGR
time_t _ReleaseDate;
/// The linked list of pointer on this object
- CNelPermissionPtr *_PtrList;
+ CNelPermissionPtr *_PtrList;
// Try to load the specified object from the memory cache, return NULL if the object is not in the cache
static CNelPermission *loadFromCache(uint32 objectId, bool unrelease);
@@ -852,7 +833,7 @@ namespace RSMGR
}
public:
-
+
/** Return the object identifier (witch is unique)
* You can only call this method on a persistent instance.
* (because transient instance can have invalid id)
@@ -860,7 +841,7 @@ namespace RSMGR
uint32 getObjectId() const
{
- return _Prim;
+ return _PermissionId;
}
/** Set the object unique ID.
@@ -874,8 +855,8 @@ namespace RSMGR
// can only be set when in transient state
nlassert(getPersistentState() == NOPE::os_transient);
// can only be set once
- nlassert(_Prim == NOPE::INVALID_OBJECT_ID);
- _Prim = objectId;
+ nlassert(_PermissionId == NOPE::INVALID_OBJECT_ID);
+ _PermissionId = objectId;
}
/** Return the current persistent state of the object.*/
diff --git a/code/ryzom/server/src/shard_unifier_service/nel_database_mapping.xml b/code/ryzom/server/src/shard_unifier_service/nel_database_mapping.xml
index 02642eb11..cd85c2fd5 100644
--- a/code/ryzom/server/src/shard_unifier_service/nel_database_mapping.xml
+++ b/code/ryzom/server/src/shard_unifier_service/nel_database_mapping.xml
@@ -17,16 +17,16 @@
-
+
-
+
-
+
diff --git a/code/ryzom/server/src/shard_unifier_service/readme.txt b/code/ryzom/server/src/shard_unifier_service/readme.txt
new file mode 100644
index 000000000..6d45d7556
--- /dev/null
+++ b/code/ryzom/server/src/shard_unifier_service/readme.txt
@@ -0,0 +1,2 @@
+xsltproc -o nel_database_mapping.cpp --stringparam output cpp --stringparam filename nel_database_mapping ../../../common/src/game_share/generate_module_interface.xslt nel_database_mapping.xml
+xsltproc -o nel_database_mapping.h --stringparam output header --stringparam filename nel_database_mapping ../../../common/src/game_share/generate_module_interface.xslt nel_database_mapping.xml
diff --git a/code/ryzom/server/src/shard_unifier_service/ring_session_manager.cpp b/code/ryzom/server/src/shard_unifier_service/ring_session_manager.cpp
index 8d6c2a91f..2ed06065b 100644
--- a/code/ryzom/server/src/shard_unifier_service/ring_session_manager.cpp
+++ b/code/ryzom/server/src/shard_unifier_service/ring_session_manager.cpp
@@ -58,7 +58,7 @@ CVariable PrivilegeForSessionAccess("su", "PrivilegeForSessionAccess", "
namespace RSMGR
{
- class CRingSessionManager :
+ class CRingSessionManager :
public CEmptyModuleServiceBehav > >,
public CRingSessionManagerSkel,
public CRingSessionManagerWebItf,
@@ -74,10 +74,10 @@ namespace RSMGR
// mysql nel database connection
MSW::CConnection _NelDb;
-
+
struct TSessionServerInfo
{
- /// Shard id
+ /// Shard id
TShardId ShardId;
/// Total number of player in the sessions hosted by this server
uint32 NbTotalPlayingChars;
@@ -97,7 +97,7 @@ namespace RSMGR
TSessionServers _SessionServers;
typedef map TSessionServersIdx;
- // index of sessionId to session server
+ // index of sessionId to session server
TSessionServersIdx _SessionIndex;
struct TWelcomeServiceInfo
@@ -147,7 +147,7 @@ namespace RSMGR
};
typedef map TTemporaryShardAssocs;
- /** A table of session owner and the ring shard on witch they are
+ /** A table of session owner and the ring shard on witch they are
* currently stuck. This allow the RSM to assign edit and anim session
* of a character to the same DSS to use the DSS session ID masquerading
* that allow reuse of the same session for editing and animating without
@@ -184,7 +184,7 @@ namespace RSMGR
struct TPendingJoinSession
{
/// The user ID
- uint32 UserId;
+ uint32 UserId;
/// the session id
TSessionId SessionId;
/// The web connection
@@ -206,7 +206,7 @@ namespace RSMGR
/// Pointer to character sync speaker
ICharacterSync *_CharSync;
public:
- CRingSessionManager()
+ CRingSessionManager()
: _DontUsePerm(false),
_CharSync(NULL)
{
@@ -284,7 +284,7 @@ namespace RSMGR
nlwarning("Missing 'web' param in module init string");
return false;
}
-
+
const TParsedCommandLine *portParam = web->getParam("port");
if (portParam == NULL)
{
@@ -399,7 +399,7 @@ namespace RSMGR
{
nldebug("RSM : receive module down for session server '%s'", proxy->getModuleName().c_str());
- // lock any sessions that belong to this module (because we don't now if
+ // lock any sessions that belong to this module (because we don't now if
// the session server if just unreachable or really dead)
TSessionServerInfo &ssi = it->second;
{
@@ -433,7 +433,7 @@ namespace RSMGR
else
++it;
}
-
+
}
{
@@ -457,7 +457,7 @@ namespace RSMGR
}
}
}
-
+
}
// remove session info
@@ -625,11 +625,11 @@ namespace RSMGR
// query << " WHERE shard.domain_id = domain.domain_id";
// query << " AND domain_name = '" << DomainName << "'";
// query << " AND ShardId = " << shardId;
-//
+//
// BOMB_IF(!_NelDb.query(query), "registerWS : Failed to request into the NeL database", return CNelShardPtr());
// auto_ptr result = auto_ptr(_NelDb.storeResult());
// BOMB_IF(result.get() == NULL, "registerWS : Failed to retrieve request result", return CNelShardPtr());
-//
+//
// if (result->getNumRows() == 0)
// {
// return CNelShardPtr();
@@ -639,7 +639,7 @@ namespace RSMGR
// // load the data
// uint32 prim;
// result->getField(0, prim);
-//
+//
// return CNelShard::load(_NelDb, prim, __FILE__, __LINE__);
// }
@@ -648,8 +648,8 @@ namespace RSMGR
userAccessPriv.clear();
CSString query;
query << "SELECT AccessPrivilege FROM permission";
- query << " WHERE UId = " << userId << " AND permission.ClientApplication = '"< &runningSessions)
{
- nldebug("RSM : receive DSS registration from '%s'",
+ nldebug("RSM : receive DSS registration from '%s'",
sender->getModuleName().c_str());
if (_SessionServers.find(sender) != _SessionServers.end())
@@ -696,13 +696,13 @@ namespace RSMGR
for (uint i=0; i(rsi.getSessionId()),
+ nlwarning("registerDSS : can't load the session %u hosted by '%s, closing it",
+ static_cast(rsi.getSessionId()),
sender->getModuleName().c_str());
CRingSessionManagerClientProxy smc(sender);
@@ -718,7 +718,7 @@ namespace RSMGR
if (session->getState() != TSessionState::ss_open && session->getState() != TSessionState::ss_locked)
{
nlwarning("registerDSS : The session %u open hosted by '%s' is '%s', asking DSS to close it",
- static_cast(rsi.getSessionId()),
+ static_cast(rsi.getSessionId()),
sender->getModuleName().c_str(),
session->getState().toString().c_str());
@@ -790,7 +790,7 @@ restartLoop:
_TemporaryLockedSession.erase(sessionId);
sessionToClose.pop_front();
}
-
+
}
_SessionServers[sender] = ssi;
@@ -829,7 +829,7 @@ restartLoop:
invokeResult(from, (it3->CharId) >> 4, 5, "Session server failure");
return;
}
-
+
TSessionServerInfo &ssi = it->second;
TSessionServerInfo::THostedSessions::iterator it2(ssi.HostedSessions.find(sessionInfo.getSessionId()));
@@ -875,7 +875,7 @@ restartLoop:
_PendingSessions.erase(it3);
}
-
+
// that all
}
@@ -898,7 +898,7 @@ restartLoop:
sender->getModuleName().c_str());
return;
}
-
+
TSessionServerInfo &ssi = it->second;
TSessionServerInfo::THostedSessions::iterator it2(ssi.HostedSessions.find(sessionId));
@@ -1049,7 +1049,7 @@ restartLoop:
sessionLog->setScenarioPointScored(0);
sessionLog->setTimeTaken(0);
sessionLog->setGuildName("");
-
+
sessionLog->create(_RingDb);
}
@@ -1095,12 +1095,12 @@ restartLoop:
// provides a bunch of data about the session life.
// The DSS report the end of an animation session and
// provides a bunch of data about the session life.
- virtual void scenarioEnded(NLNET::IModuleProxy *sender,
- TSessionId sessionId,
- const R2::TRunningScenarioInfo &scenarioInfo,
- uint32 rrpScored,
- uint32 scenarioPointScored,
- uint32 timeTaken,
+ virtual void scenarioEnded(NLNET::IModuleProxy *sender,
+ TSessionId sessionId,
+ const R2::TRunningScenarioInfo &scenarioInfo,
+ uint32 rrpScored,
+ uint32 scenarioPointScored,
+ uint32 timeTaken,
const std::vector < uint32 > &participants)
{
H_AUTO(SessionManager_scenarioEnded);
@@ -1171,7 +1171,7 @@ restartLoop:
// build the participants string
for (uint i=0; isetObjectId(shardId);
- // new WS are always inserted in restricted mode
+ // new WS are always inserted in restricted mode
wsInfo.ShardInfo->setWSOnline(false);
wsInfo.ShardInfo->setRequiredState(TAccessLevel::ds_restricted);
wsInfo.ShardInfo->setMOTD("Shard up, access restricted");
@@ -1286,7 +1286,7 @@ restartLoop:
if (isOnline && wsInfo.ShardInfo->getRequiredState() != TAccessLevel::ds_close)
{
- // the WS is online, check the previous known state of the
+ // the WS is online, check the previous known state of the
// WS and put it in restricted if it was previously close.
if (!wsInfo.ShardInfo->getWSOnline())
{
@@ -1322,8 +1322,8 @@ restartLoop:
{
TWelcomeServiceInfo &wsi = itw->second;
- if (isOnline
- && wsi.ShardInfo->getRequiredState() != TAccessLevel::ds_close
+ if (isOnline
+ && wsi.ShardInfo->getRequiredState() != TAccessLevel::ds_close
&& !wsi.ShardInfo->getWSOnline())
{
// unclose this shard
@@ -1388,7 +1388,7 @@ restartLoop:
// retrieve the session participant
character->loadSessionParticipants(_RingDb, __FILE__, __LINE__);
TSessionPartStatus status;
-
+
// vector::iterator first(character->getSessionParticipants().begin()), last(character->getSessionParticipants().end());
// for (; first != last; ++first)
uint i;
@@ -1479,7 +1479,7 @@ restartLoop:
joinSessionResult(pjs.From, pjs.UserId, pjs.SessionId, 8, string("Welcome refused entry in shard with error : '")+errorMsg+"'", TSessionPartStatus::invalid_val);
}
-endOfWelcomeUserResult:
+endOfWelcomeUserResult:
if (ok)
{
// update the 'ring_user' table to signal which session we're entering and with which character
@@ -1494,7 +1494,7 @@ endOfWelcomeUserResult:
return;
}
}
-
+
nlwarning("welcomeUserResult : received a result for unexpected userId %u from WS '%s'",
userId,
sender->getModuleName().c_str());
@@ -1559,37 +1559,37 @@ endOfWelcomeUserResult:
}
}
- virtual void on_setSessionStartParams(NLNET::TSockId from,
+ virtual void on_setSessionStartParams(NLNET::TSockId from,
uint32 charId, TSessionId sessionId, const std::string &initialIslandLocation, const std::string &initialEntryPointLocation, const std::string &initialSeason)
{
CSessionPtr session = CSession::load(_RingDb, sessionId.asInt(), __FILE__, __LINE__);
if (session == NULL) { return; }
if (session->getSessionType() == TSessionType::st_mainland) { return;}
-
+
TSessionServersIdx::iterator it(_SessionIndex.find(sessionId));
if (it == _SessionIndex.end()) { return; }
CRingSessionManagerClientProxy ss(it->second);
ss.setSessionStartParams(this, charId, sessionId, initialIslandLocation, initialEntryPointLocation, initialSeason);
-
+
}
- virtual void on_scheduleSession(NLNET::TSockId from,
- uint32 charId,
- const TSessionType &sessionType,
- const std::string &sessionTitle,
- const std::string &sessionDesc,
- const TSessionLevel &sessionLevel,
-// const TAccessType &accessType,
- const TRuleType &ruleType,
- const TEstimatedDuration &estimatedDuration,
- uint32 subscriptionSlot,
+ virtual void on_scheduleSession(NLNET::TSockId from,
+ uint32 charId,
+ const TSessionType &sessionType,
+ const std::string &sessionTitle,
+ const std::string &sessionDesc,
+ const TSessionLevel &sessionLevel,
+// const TAccessType &accessType,
+ const TRuleType &ruleType,
+ const TEstimatedDuration &estimatedDuration,
+ uint32 subscriptionSlot,
const TAnimMode &animMode,
- const TRaceFilter &raceFilter,
- const TReligionFilter &religionFilter,
- const TGuildFilter &guildFilter,
+ const TRaceFilter &raceFilter,
+ const TReligionFilter &religionFilter,
+ const TGuildFilter &guildFilter,
const TShardFilter &shardFilter,
const TLevelFilter &levelFilter,
const std::string &language,
@@ -1636,7 +1636,7 @@ endOfWelcomeUserResult:
CCharacterPtr character = CCharacter::load(_RingDb, charId, __FILE__, __LINE__);
if (character == NULL)
{
- // failed !, invalid character
+ // failed !, invalid character
scheduleSessionResult(from, charId, TSessionId(0), 3, "Invalid character");
return;
}
@@ -1646,13 +1646,13 @@ endOfWelcomeUserResult:
{
CNelUserPtr nelUser = CNelUser::load(_NelDb, userId, __FILE__, __LINE__);
BOMB_IF(nelUser == NULL, "Failed to load nel user "<getExtendedPrivilege().find(":TRIAL:") != string::npos)
{
// this account is free trial, no anim session allowed
- scheduleSessionResult(from, charId, TSessionId(0), 9, "Forbidden for free trial");
+ scheduleSessionResult(from, charId, TSessionId(0), 9, "Forbidden for free trial");
return;
}
*/
@@ -1704,7 +1704,7 @@ endOfWelcomeUserResult:
// store the session
session->create(_RingDb);
-
+
// ok, return the result to web
scheduleSessionResult(from, charId, TSessionId(session->getObjectId()), 0, "");
}
@@ -1730,7 +1730,7 @@ endOfWelcomeUserResult:
}
// ok, return the result to web
- sessionInfoResult(from, charId, TSessionId(session->getObjectId()),
+ sessionInfoResult(from, charId, TSessionId(session->getObjectId()),
session->getRaceFilter(), session->getReligionFilter(), session->getGuildFilter(),
session->getShardFilter(), session->getLevelFilter(), session->getSubscriptionClosed(),
(session->getAccessType()==TAccessType::at_public), session->getLang(), session->getOrientation(), session->getDescription());
@@ -1743,21 +1743,21 @@ endOfWelcomeUserResult:
// 3 : char don't own the session
// 4 : session is closed, no update allowed
// 5 : invalid parameter
- virtual void on_updateSessionInfo(NLNET::TSockId from,
- uint32 charId,
- TSessionId sessionId,
- const std::string &sessionTitle,
- uint32 plannedDate,
- const std::string &sessionDesc,
- const TSessionLevel &sessionLevel,
-// const TAccessType &accessType,
- const TEstimatedDuration &estimatedDuration,
- uint32 subscriptionSlot,
- const TRaceFilter &raceFilter,
- const TReligionFilter &religionFilter,
- const TGuildFilter &guildFilter,
- const TShardFilter &shardFilter,
- const TLevelFilter &levelFilter,
+ virtual void on_updateSessionInfo(NLNET::TSockId from,
+ uint32 charId,
+ TSessionId sessionId,
+ const std::string &sessionTitle,
+ uint32 plannedDate,
+ const std::string &sessionDesc,
+ const TSessionLevel &sessionLevel,
+// const TAccessType &accessType,
+ const TEstimatedDuration &estimatedDuration,
+ uint32 subscriptionSlot,
+ const TRaceFilter &raceFilter,
+ const TReligionFilter &religionFilter,
+ const TGuildFilter &guildFilter,
+ const TShardFilter &shardFilter,
+ const TLevelFilter &levelFilter,
bool subscriptionClosed,
bool autoInvite,
const std::string &language,
@@ -1833,7 +1833,7 @@ endOfWelcomeUserResult:
invokeResult(from, charId>>4, 0, "");
}
-
+
// Cancel a planned session
// Return 'invokeResult' : 0 : ok, session canceled
// 1 : unknown char
@@ -1867,14 +1867,14 @@ endOfWelcomeUserResult:
return;
}
- if (session->getState() != TSessionState::ss_planned
+ if (session->getState() != TSessionState::ss_planned
&& session->getState() != TSessionState::ss_locked)
{
// not planned
invokeResult(from, charId>>4, 4, "Session not in planned state");
return;
}
-
+
// remove the session from database
session->remove(_RingDb);
@@ -1928,7 +1928,7 @@ endOfWelcomeUserResult:
// look for the best server
TSessionServers::iterator best(_SessionServers.end());
-
+
// check if the user has a open edit session, if so, lauch the session on the same shard
if (session->getSessionType() == TSessionType::st_anim)
@@ -1944,7 +1944,7 @@ endOfWelcomeUserResult:
TSessionServersIdx::iterator it(_SessionIndex.find(s->getObjectId()));
if (it != _SessionIndex.end())
best = _SessionServers.find(it->second);
-
+
break;
}
}
@@ -2134,7 +2134,7 @@ endOfWelcomeUserResult:
if (session->getState() != TSessionState::ss_closed
&& session->getState() != TSessionState::ss_planned)
- {
+ {
// ask the session server to close this session
TSessionServersIdx::iterator it(_SessionIndex.find(sessionId));
if (it != _SessionIndex.end())
@@ -2142,7 +2142,7 @@ endOfWelcomeUserResult:
TModuleProxyPtr proxy = it->second;
CRingSessionManagerClientProxy ss(proxy);
-
+
ss.closeSession(this, sessionId);
// ok, we have closed the session
@@ -2162,7 +2162,7 @@ endOfWelcomeUserResult:
// use the first server in the list
TModuleProxyPtr proxy = _SessionServers.begin()->first;
CRingSessionManagerClientProxy ss(proxy);
-
+
ss.stopHibernation(this, TSessionId(sessionId), charId);
}
@@ -2171,7 +2171,7 @@ endOfWelcomeUserResult:
}
// Close a running session
- // Return 'invokeResult' : 0 : ok,
+ // Return 'invokeResult' : 0 : ok,
// 1 : not ok
//:TODO: change the name to Cloase or hibernate previous sessions
virtual void on_hibernateEditSession(NLNET::TSockId from, uint32 charId)
@@ -2186,12 +2186,12 @@ endOfWelcomeUserResult:
CCharacterPtr character = CCharacter::load(_RingDb, charId, __FILE__, __LINE__);
if (character == NULL)
{
- invokeResult(from, charId>>4, 1, "Character not found");
+ invokeResult(from, charId>>4, 1, "Character not found");
return;
}
// Hiberning edit sessions
{
-
+
CSString query;
query << "SELECT session_id FROM sessions";
query << " WHERE owner = "<getNumRows() != 0)
{
-
+
if (result->getNumRows() > 1)
{
@@ -2214,13 +2214,13 @@ endOfWelcomeUserResult:
uint32 sessionNum;
result->getField(0, sessionNum);
TSessionId sessionId(sessionNum);
-
+
CSessionPtr session = CSession::load(_RingDb, sessionId.asInt(), __FILE__, __LINE__);
if (session != NULL)
{
if (session->getState() != TSessionState::ss_closed
&& session->getState() != TSessionState::ss_planned)
- {
+ {
// ask the session server to close this session
TSessionServersIdx::iterator it(_SessionIndex.find(sessionId));
if (it != _SessionIndex.end())
@@ -2228,7 +2228,7 @@ endOfWelcomeUserResult:
TModuleProxyPtr proxy = it->second;
CRingSessionManagerClientProxy ss(proxy);
-
+
ss.hibernateSession(this, sessionId);
}
}
@@ -2238,7 +2238,7 @@ endOfWelcomeUserResult:
// Close anim sessions
{
-
+
CSString query;
query << "SELECT session_id FROM sessions";
query << " WHERE owner = "<getNumRows());
}
-
+
unsigned int firstSession = 0;
unsigned int lastSession = result->getNumRows();
for (;firstSession != lastSession; ++firstSession)
- {
+ {
result->fetchRow();
- // get the session id
-
+ // get the session id
+
uint32 sessionNum;
result->getField(0, sessionNum);
TSessionId sessionId(sessionNum);
-
+
CSessionPtr session = CSession::load(_RingDb, sessionId.asInt(), __FILE__, __LINE__);
if (session != NULL)
{
-
- if ( session->getState() != TSessionState::ss_closed && session->getState() != TSessionState::ss_planned)
- {
+
+ if ( session->getState() != TSessionState::ss_closed && session->getState() != TSessionState::ss_planned)
+ {
// ask the session server to close this session
TSessionServersIdx::iterator it(_SessionIndex.find(sessionId));
if (it == _SessionIndex.end())
@@ -2335,8 +2335,8 @@ endOfWelcomeUserResult:
uint i;
for (i=0; igetKnownUsers().size(); ++i)
{
- const CKnownUserPtr &ku = ru->getKnownUsers()[i];
- if (ku->getTargetCharacter() == friendCharId
+ const CKnownUserPtr &ku = ru->getKnownUsers()[i];
+ if (ku->getTargetCharacter() == friendCharId
&& (ku->getRelation() == TKnownUserRelation::rt_friend || ku->getRelation() == TKnownUserRelation::rt_banned))
break;
}
@@ -2411,7 +2411,7 @@ endOfWelcomeUserResult:
uint i;
for (i=0; igetKnownUsers().size(); ++i)
{
- const CKnownUserPtr &ku = ru->getKnownUsers()[i];
+ const CKnownUserPtr &ku = ru->getKnownUsers()[i];
if (ku->getTargetCharacter() == friendCharId && ku->getRelation() == TKnownUserRelation::rt_friend)
break;
}
@@ -2468,7 +2468,7 @@ endOfWelcomeUserResult:
uint i;
for (i=0; igetKnownUsers().size(); ++i)
{
- const CKnownUserPtr &ku = ru->getKnownUsers()[i];
+ const CKnownUserPtr &ku = ru->getKnownUsers()[i];
if (ku->getTargetCharacter() == bannedCharId && ku->getRelation() == TKnownUserRelation::rt_banned)
break;
}
@@ -2487,14 +2487,14 @@ endOfWelcomeUserResult:
}
else
{
- // the character is already banned
+ // the character is already banned
}
vector removeList;
// remove any friend or DM friend record
for (i=0; igetKnownUsers().size(); ++i)
{
- const CKnownUserPtr &ku = ru->getKnownUsers()[i];
+ const CKnownUserPtr &ku = ru->getKnownUsers()[i];
if (ku->getTargetCharacter() == bannedCharId && ku->getRelation() != TKnownUserRelation::rt_banned)
removeList.push_back(ku);
}
@@ -2545,7 +2545,7 @@ endOfWelcomeUserResult:
uint i;
for (i=0; igetKnownUsers().size(); ++i)
{
- const CKnownUserPtr &ku = ru->getKnownUsers()[i];
+ const CKnownUserPtr &ku = ru->getKnownUsers()[i];
if (ku->getTargetCharacter() == bannedCharId && ku->getRelation() == TKnownUserRelation::rt_banned)
break;
}
@@ -2562,7 +2562,7 @@ endOfWelcomeUserResult:
// invokeResult(from, userId, 3, "character not flagged as banned");
// return;
// }
-
+
// ok, remove the know user record
ku->remove(_RingDb);
@@ -2606,8 +2606,8 @@ endOfWelcomeUserResult:
uint i;
for (i=0; igetKnownUsers().size(); ++i)
{
- const CKnownUserPtr &ku = ru->getKnownUsers()[i];
- if (ku->getTargetCharacter() == friendDMCharId
+ const CKnownUserPtr &ku = ru->getKnownUsers()[i];
+ if (ku->getTargetCharacter() == friendDMCharId
&& (ku->getRelation() == TKnownUserRelation::rt_friend_dm || ku->getRelation() == TKnownUserRelation::rt_banned))
break;
}
@@ -2681,7 +2681,7 @@ endOfWelcomeUserResult:
uint i;
for (i=0; igetKnownUsers().size(); ++i)
{
- const CKnownUserPtr &ku = ru->getKnownUsers()[i];
+ const CKnownUserPtr &ku = ru->getKnownUsers()[i];
if (ku->getTargetCharacter() == friendDMCharId && ku->getRelation() == TKnownUserRelation::rt_friend_dm)
break;
}
@@ -2698,7 +2698,7 @@ endOfWelcomeUserResult:
// invokeResult(from, userId, 3, "character not flagged as friend");
// return;
// }
-
+
// ok, remove the know user record
ku->remove(_RingDb);
@@ -2715,9 +2715,9 @@ endOfWelcomeUserResult:
// 5 : invalid param
virtual void on_setKnownCharacterComments(NLNET::TSockId from, uint32 userId, uint32 charId, const std::string &relation, const std::string &comments)
{
- nldebug("RSM : setKnownCharacterComments set comment '%s' on char %u knowns as '%s' of user %u",
+ nldebug("RSM : setKnownCharacterComments set comment '%s' on char %u knowns as '%s' of user %u",
comments.c_str(),
- charId,
+ charId,
relation.c_str(),
userId);
@@ -2739,7 +2739,7 @@ endOfWelcomeUserResult:
bool foundARelation = false;
for (uint i=0; igetKnownUsers().size(); ++i)
{
- CKnownUserPtr &ku = ru->getKnownUsersByIndex(i);
+ CKnownUserPtr &ku = ru->getKnownUsersByIndex(i);
if (ku->getTargetCharacter() == charId && ku->getRelation() == rel)
{
// we found the relation, update the comment
@@ -2772,7 +2772,7 @@ endOfWelcomeUserResult:
// A user invite a character to help or play in his session
// charRole is from enum TSessionPartStatus
// invokeReturn : 0 : ok, character invited
- // 1 : char not found
+ // 1 : char not found
// 2 : session not found
// 3 : invited char not found
// 4 : char not own the session
@@ -2842,17 +2842,17 @@ endOfWelcomeUserResult:
invokeResult(from, ownerCharId>>4, 13, "scenario not started, can't validate invitation now");
return;
}
-
+
CScenarioPtr scenario = CScenario::load(_RingDb, sessionLog->getScenarioId(), __FILE__, __LINE__);
BOMB_IF(invitedNelUser == NULL, "Failed to load scenario for id "<getScenarioId()<<" for session "<>4, 8, "Can not load scenario associated with session log"); return);
-
- if (invitedNelUser->getExtendedPrivilege().find(":TRIAL:") != string::npos
+
+ if (invitedNelUser->getExtendedPrivilege().find(":TRIAL:") != string::npos
&& !scenario->getAllowFreeTrial())
{
// free trial are not allowed in this scenario
invokeResult(from, ownerCharId>>4, 14, "free trial character are not allowed in user scenario");
return;
-
+
}
// check that the character is not already participating
@@ -2877,18 +2877,18 @@ endOfWelcomeUserResult:
invokeResult(from, ownerCharId>>4, 4, "Animator can't invite other animator (only session owner can)");
return;
}
- else if (session->getOwnerId() != ownerCharId)
+ else if (session->getOwnerId() != ownerCharId)
{
// the character that request the invitation is not the session owner,
// check that he is animator in the session/
BOMB_IF(!ownerChar->loadSessionParticipants(_RingDb, __FILE__, __LINE__), "Failed to load participation for host character "<>4, 8, "Failed to load participation for host character"); return);
-
+
uint i=0;
for (; igetSessionParticipants().size(); ++i)
{
CSessionParticipantPtr sp = ownerChar->getSessionParticipantsByIndex(i);
-
+
if (sp->getSessionId() == sessionId.asInt())
{
// we found it
@@ -2899,12 +2899,12 @@ endOfWelcomeUserResult:
invokeResult(from, ownerCharId>>4, 11, "Invitation requester char is not animator in the session");
return;
}
-
+
// ok, stop the loop
break;
}
}
-
+
if (i == ownerChar->getSessionParticipants().size())
{
// no participation found !
@@ -3059,7 +3059,7 @@ endOfWelcomeUserResult:
{
const CKnownUserPtr &ku = ru->getKnownUsersByIndex(i);
- if (ku->getRelation() == TKnownUserRelation::rt_banned
+ if (ku->getRelation() == TKnownUserRelation::rt_banned
&& ku->getTargetUser() == character->getUserId())
{
// this character is banned !
@@ -3170,7 +3170,7 @@ endOfWelcomeUserResult:
{
BOMB_IF (!loadUserAccessPrivileges(userId, userAccessPriv), "RSM:on_joinSession : failed to load privileges for user "<getOwnerId() != charId
+ if (session->getOwnerId() != charId
&& nelUser->getExtendedPrivilege().find(":TRIAL:") != string::npos)
{
// check that the scenario launched allow free trials players
@@ -3277,7 +3277,7 @@ endOfWelcomeUserResult:
sessionPart->setCharId(charId);
sessionPart->setSessionId(session->getObjectId());
sessionPart->setStatus(TSessionPartStatus::sps_play_invited);
-
+
// store the participation
sessionPart->create(_RingDb);
}
@@ -3344,7 +3344,7 @@ endOfWelcomeUserResult:
// warn the session server that an editor come in
enterAs = WS::TUserRole::ur_editor;
ss.addCharacterInSession(this, sessionId, charId, enterAs, charac->getRingAccess(), charac->getNewcomer());
-
+
// update the participant status
sessionPart->setStatus(TSessionPartStatus::sps_editing);
@@ -3352,8 +3352,8 @@ endOfWelcomeUserResult:
else if ( sessionPart->getStatus() == TSessionPartStatus::sps_anim_invited
|| sessionPart->getStatus() == TSessionPartStatus::sps_animating)
{
- // warn the session server that an animator come in
- enterAs = WS::TUserRole::ur_animator;
+ // warn the session server that an animator come in
+ enterAs = WS::TUserRole::ur_animator;
ss.addCharacterInSession(this, sessionId, charId, enterAs, charac->getRingAccess(), charac->getNewcomer());
// update the participant status
sessionPart->setStatus(TSessionPartStatus::sps_animating);
@@ -3406,7 +3406,7 @@ endOfWelcomeUserResult:
if (wspSwitch == NULL)
{
// can't find a welcome service for this shard
-
+
// try to read a shard status in the database
CShardPtr shard = CShard::load(_RingDb, sessionId.asInt(), __FILE__, __LINE__);
if (shard != NULL)
@@ -3455,13 +3455,13 @@ endOfWelcomeUserResult:
_PendingJoins.push_back(pjs);
// reserve an entry place on the welcome service of the shard and wait for the response
- wsp.welcomeUser(this,
- charId,
- nelUser->getLoginName(),
- cookie,
- nelUser->getPrivilege(),
- nelUser->getExtendedPrivilege(),
- enterAs,
+ wsp.welcomeUser(this,
+ charId,
+ nelUser->getLoginName(),
+ cookie,
+ nelUser->getPrivilege(),
+ nelUser->getExtendedPrivilege(),
+ enterAs,
instanceId);
// the rest of the code is done in 'welcomeUserResult' returned by the WS.
@@ -3566,7 +3566,7 @@ endOfWelcomeUserResult:
uint32 sessionNum;
result->getField(0, sessionNum);
TSessionId sessionId(sessionNum);
-
+
// 2 : check that the character is invited in his session
BOMB_IF(!character->loadSessionParticipants(_RingDb, __FILE__, __LINE__), "on_joinEditSession : failed to load session participants for char "<>4, TSessionId(0), 3, "Error loading partipation", TSessionPartStatus::invalid_val); return);
uint i;
@@ -3612,7 +3612,7 @@ endOfWelcomeUserResult:
// ok, now call the normal join session
_joinSessionCommon(from, charId, sessionId, clientApplication, true);
}
-
+
// Request to have the list of accessible shards with their attributes.
virtual void on_getShards(NLNET::TSockId from, uint32 charId)
{
@@ -3645,7 +3645,7 @@ endOfWelcomeUserResult:
}
}
}
-
+
}
getShardsResult(from, charId>>4, result);
}
@@ -3673,11 +3673,11 @@ endOfWelcomeUserResult:
if (!hasSessionAccessPrivilege(userId))
{
STOP("RSM : on_kickCharacter : char "<>4, 5, "Owner char don't own the session");
+ invokeResult(from, ownerCharId>>4, 5, "Owner char don't own the session");
return;
}
}
-
+
// load the participants
BOMB_IF(!session->loadSessionParticipants(_RingDb, __FILE__, __LINE__), "RSM : on_kickCharacter : failed to load session participants for session "<>4, 4, "Failed to load session participants"); return);
@@ -3733,7 +3733,7 @@ endOfWelcomeUserResult:
if (!hasSessionAccessPrivilege(userId))
{
STOP("RSM : on_unkickCharacter : char "<>4, 5, "Owner char don't own the session");
+ invokeResult(from, ownerCharId>>4, 5, "Owner char don't own the session");
return;
}
}
@@ -3775,7 +3775,7 @@ endOfWelcomeUserResult:
// 5 : char don't own the session
virtual void on_inviteGuild(NLNET::TSockId from, uint32 charId, TSessionId sessionId, uint32 guildId)
{
- nldebug("RSM : onInviteGuild char %u invite guild %u in session %u",
+ nldebug("RSM : onInviteGuild char %u invite guild %u in session %u",
charId,
guildId,
sessionId.asInt());
@@ -3830,10 +3830,10 @@ endOfWelcomeUserResult:
invite->setGuildId(guildId);
invite->setSessionId(sessionId.asInt());
-
+
// store the new invite
invite->create(_RingDb);
-
+
// result ok
invokeResult(from, charId>>4, 0, "");
}
@@ -3847,7 +3847,7 @@ endOfWelcomeUserResult:
// 5 : char don't own the session
virtual void on_removeInvitedGuild(NLNET::TSockId from, uint32 charId, TSessionId sessionId, uint32 guildId)
{
- nldebug("RSM : removeInvitedGuild char %u revoke invitattion for guild %u in session %u",
+ nldebug("RSM : removeInvitedGuild char %u revoke invitattion for guild %u in session %u",
charId,
guildId,
sessionId.asInt());
@@ -3919,13 +3919,13 @@ endOfWelcomeUserResult:
// 2 : user not owner of session
// 3 : user not found
// 4 : session not found
-// virtual void on_setScenarioInfo(NLNET::TSockId from,
-// uint32 userId,
-// TSessionId sessionId,
-// const std::string &title,
-// const std::string &journal,
-// const std::string &credits,
-// uint32 numPlayer,
+// virtual void on_setScenarioInfo(NLNET::TSockId from,
+// uint32 userId,
+// TSessionId sessionId,
+// const std::string &title,
+// const std::string &journal,
+// const std::string &credits,
+// uint32 numPlayer,
// const std::string &playType)
virtual void on_setScenarioInfo(NLNET::TSockId from, uint32 charId, TSessionId sessionId, const std::string &title, uint32 numPlayer, const std::string &playType)
{
@@ -3955,7 +3955,7 @@ endOfWelcomeUserResult:
// invokeResult(from, charId>>4, 2, "Character don't own the session");
// return;
// }
-//
+//
// // load the scenario desc
// CScenarioDescPtr scenario = CScenarioDesc::load(_RingDb, sessionId.asInt(), __FILE__, __LINE__);
// if (scenario == NULL)
@@ -3968,7 +3968,7 @@ endOfWelcomeUserResult:
// scenario->setTitle(title);
// //oups, data do not matchs
// nlstop;
-//
+//
invokeResult(from, charId>>4, 100, "Deprecatted");
};
@@ -3982,10 +3982,10 @@ endOfWelcomeUserResult:
// 5 : user participation not found
// 6 : character not found
// 7 : invalid params
- virtual void on_addJournalEntry(NLNET::TSockId from,
- uint32 charId,
- TSessionId sessionId,
- const std::string &entryType,
+ virtual void on_addJournalEntry(NLNET::TSockId from,
+ uint32 charId,
+ TSessionId sessionId,
+ const std::string &entryType,
const std::string &text)
{
nldebug("RSM : addJournalEntry char %u add an entry in journal of session %u", charId, sessionId.asInt());
@@ -4075,11 +4075,11 @@ endOfWelcomeUserResult:
// 6 : session not found
// 7 : scenario not found
// 8 : internal error
- virtual void on_setPlayerRating(NLNET::TSockId from, uint32 charId, TSessionId sessionId,
- uint32 rateFun,
- uint32 rateDifficulty,
- uint32 rateAccessibility,
- uint32 rateOriginality,
+ virtual void on_setPlayerRating(NLNET::TSockId from, uint32 charId, TSessionId sessionId,
+ uint32 rateFun,
+ uint32 rateDifficulty,
+ uint32 rateAccessibility,
+ uint32 rateOriginality,
uint32 rateDirection)
{
nldebug("Web set player rating from char %u to session %u as %u,%u,%u,%u, %u",
@@ -4106,14 +4106,14 @@ endOfWelcomeUserResult:
if (sp->getKicked() == true)
{
- invokeResult(from, charId>>4, 5, "Char is banned from the session");
+ invokeResult(from, charId>>4, 5, "Char is banned from the session");
return;
}
break;
}
}
- BOMB_IF(i == character->getSessionParticipants().size(),
+ BOMB_IF(i == character->getSessionParticipants().size(),
"No participation found for char "<>4, 3, "No participation found in session"); return);
// retrieve the scenario data
@@ -4216,7 +4216,7 @@ endOfWelcomeUserResult:
}
-
+
NLMISC_COMMAND_HANDLER_TABLE_EXTEND_BEGIN(CRingSessionManager, CModuleBase)
NLMISC_COMMAND_HANDLER_ADD(CRingSessionManager, dump, "dump the session manager internal state", "no param");
NLMISC_COMMAND_HANDLER_ADD(CRingSessionManager, forceSessionCleanup, "force a database synchronisation with current running session", "no param");
@@ -4245,7 +4245,7 @@ endOfWelcomeUserResult:
log.displayNL("failed to load session %u", sessionId);
return true;
}
-
+
// load the participants
if (!session->loadSessionParticipants(_RingDb, __FILE__, __LINE__))
{
@@ -4355,19 +4355,19 @@ endOfWelcomeUserResult:
if (args.size() > 2)
{
shard->setMOTD(args[2]);
- log.displayNL("Shard %u set required state to '%s' with message '%s'",
+ log.displayNL("Shard %u set required state to '%s' with message '%s'",
shardId,
al.toString().c_str(),
args[2].c_str());
}
else
{
- log.displayNL("Shard %u set required state to '%s'",
+ log.displayNL("Shard %u set required state to '%s'",
shardId,
al.toString().c_str());
shard->setMOTD("");
}
-
+
// update WSState if possible
@@ -4376,7 +4376,7 @@ endOfWelcomeUserResult:
return true;
}
-
+
NLMISC_CLASS_COMMAND_DECL(forceSessionCleanup)
{
if (!_RingDb.query(string("SELECT session_id FROM sessions WHERE state = ")+toString(uint32(TSessionState::ss_open))))
@@ -4437,8 +4437,8 @@ endOfWelcomeUserResult:
log.displayNL(" + Welcome service '%s' for shard %u", wsInfo.WSModuleProxy->getModuleName().c_str(), shardId);
if (wsInfo.FixedSessionId.asInt() != 0)
log.displayNL(" Mainland sessionId: %u", wsInfo.FixedSessionId.asInt());
- log.displayNL(" Access State = '%s', online = %s, message = '%s'",
- wsInfo.ShardInfo->getRequiredState().toString().c_str(),
+ log.displayNL(" Access State = '%s', online = %s, message = '%s'",
+ wsInfo.ShardInfo->getRequiredState().toString().c_str(),
wsInfo.ShardInfo->getWSOnline() ? "true" : "false",
wsInfo.ShardInfo->getMOTD().c_str());
log.displayNL(" %u online players", wsInfo.NbOnlinePlayers);
@@ -4455,7 +4455,7 @@ endOfWelcomeUserResult:
{
IModuleProxy *server = first->first;
TSessionServerInfo &ssi = first->second;
-
+
log.displayNL(" + Session server '%s' :", server->getModuleName().c_str());
log.displayNL(" Shard ID = %u", ssi.ShardId);
log.displayNL(" Total player = %u", ssi.NbTotalPlayingChars);
@@ -4479,9 +4479,9 @@ endOfWelcomeUserResult:
return true;
}
-
- };
+
+ };
NLNET_REGISTER_MODULE_FACTORY(CRingSessionManager, RingSessionManagerClassName);
diff --git a/code/ryzom/tools/server/ryzom_ams/drupal_module/oldmodule/ryzommanage.module b/code/ryzom/tools/server/ryzom_ams/drupal_module/oldmodule/ryzommanage.module
index e5e184556..f09b06a37 100644
--- a/code/ryzom/tools/server/ryzom_ams/drupal_module/oldmodule/ryzommanage.module
+++ b/code/ryzom/tools/server/ryzom_ams/drupal_module/oldmodule/ryzommanage.module
@@ -659,12 +659,12 @@ function createPermissions($values) {
$sth = $dbh->prepare("SELECT UId FROM user WHERE Login='" . $values[0] . "';");
$sth->execute();
$result = $sth->fetchAll();
- foreach ($result as $UId) {
+ /*foreach ($result as $UId) {
$statement = $dbh->prepare("INSERT INTO permission (UId, ClientApplication, AccessPrivilege) VALUES ('" . $UId['UId'] . "', 'r2', 'OPEN');");
$statement->execute($values);
$statement = $dbh->prepare("INSERT INTO permission (UId, ClientApplication, AccessPrivilege) VALUES ('" . $UId['UId'] . "', 'ryzom_open', 'OPEN');");
$statement->execute($values);
- }
+ }*///FIXME: GARBAGE
}
catch (PDOException $e) {
watchdog('ryzommanage', $e->getMessage(), NULL, WATCHDOG_ERROR);
diff --git a/code/studio/src/plugins/object_viewer/object_viewer.cpp b/code/studio/src/plugins/object_viewer/object_viewer.cpp
index 2cf803d3d..566869e84 100644
--- a/code/studio/src/plugins/object_viewer/object_viewer.cpp
+++ b/code/studio/src/plugins/object_viewer/object_viewer.cpp
@@ -115,7 +115,7 @@ void CObjectViewer::init( NL3D::UDriver *driver )
// create the text context
nlassert(!_TextContext);
- _TextContext = _Driver->createTextContext(_FontName);
+ _TextContext = _Driver->createTextContext(NLMISC::CPath::lookup(_FontName));
nlassert(_TextContext);
NL3D::CBloomEffect::instance().setDriver(_Driver);
diff --git a/code/web/private_php/ams/autoload/dblayer.php b/code/web/private_php/ams/autoload/dblayer.php
index 140f6bfd1..d14e48e84 100644
--- a/code/web/private_php/ams/autoload/dblayer.php
+++ b/code/web/private_php/ams/autoload/dblayer.php
@@ -29,13 +29,13 @@
*
*/
-// $PDOCache = array();
+$PDOCache = array();
class DBLayer {
private $PDO;
- // private $host;
- // private $dbname;
+ private $host;
+ private $dbname;
/**
* The PDO object, instantiated by the constructor
@@ -48,31 +48,45 @@ class DBLayer {
* @param $db String, the name of the databases entry in the $cfg global var.
* @param $dbn String, the name of the databases entry in the $cfg global var if $db referenced to an action(install etc).
*/
- function __construct($db, $dbn = null)
- {
+ function __construct($db, $dbn = null) {
+ if ($db == "ring" && $dbn == null) {
+ throw new Exception("Domain database access from AMS must have database name specified");
+ }
+
global $cfg;
- // $this->host = $cfg['db'][$db]['host'];
- // $this->dbname = $cfg['db'][$db]['name'];
- /*global $PDOCache;
+ $this->host = $cfg['db'][$db]['host'];
+ $this->dbname = $cfg['db'][$db]['name'];
+ global $PDOCache;
if (isset($PDOCache[$this->host])) {
+ if (isset($PDOCache[$this->host]['exception'])) {
+ throw $PDOCache[$this->host]['exception'];
+ }
$this->PDO = $PDOCache[$this->host]['pdo'];
- } else {*/
+ } else {
$dsn = "mysql:";
$dsn .= "host=" . $cfg['db'][$db]['host'] . ";";
- $dsn .= "dbname=" . $cfg['db'][$db]['name'] . ";"; // Comment this out when using the cache
+ // $dsn .= "dbname=" . $cfg['db'][$db]['name'] . ";"; // Comment this out when using the cache
$dsn .= "port=" . $cfg['db'][$db]['port'] . ";";
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
- PDO::ATTR_PERSISTENT => true
+ // PDO::ATTR_PERSISTENT => true,
+ PDO::ATTR_TIMEOUT => 5
);
- $this->PDO = new PDO($dsn, $cfg['db'][$db]['user'], $cfg['db'][$db]['pass'], $opt);
- /* $PDOCache[$this->host] = array();
+ $PDOCache[$this->host] = array();
+ try {
+ $this->PDO = new PDO($dsn, $cfg['db'][$db]['user'], $cfg['db'][$db]['pass'], $opt);
+ } catch (PDOException $e) {
+ $exception = new PDOException("Failed to connect to the '" . $db . "' database server", $e->getCode());
+ $PDOCache[$this->host]['exception'] = $exception;
+ throw $exception;
+ return;
+ }
$PDOCache[$this->host]['pdo'] = $this->PDO;
$PDOCache[$this->host]['use'] = $this->dbname;
- */ //$this->PDO->query('USE ' . $this->dbname . ';'); // FIXME safety
- /*}*/
+ $this->PDO->query('USE ' . $this->dbname . ';'); // FIXME safety
+ }
}
function __destruct() {
@@ -80,11 +94,11 @@ class DBLayer {
}
function useDb() {
- /*global $PDOCache;
+ global $PDOCache;
if ($PDOCache[$this->host]['use'] != $this->dbname) {
$PDOCache[$this->host]['use'] = $this->dbname;
$this->PDO->query('USE ' . $this->dbname . ';'); // FIXME safety
- }*/
+ }
}
/**
@@ -201,7 +215,6 @@ class DBLayer {
$field_option_values = ltrim($field_option_values, ',');
try {
$sth = $this->PDO->prepare("UPDATE $tb_name SET $field_option_values WHERE $where ");
- error_log("UPDATE $tb_name SET $field_option_values WHERE $where ");
foreach ($data as $key => $value) {
$sth->bindValue(":$key", $value);
diff --git a/code/web/private_php/ams/autoload/helpers.php b/code/web/private_php/ams/autoload/helpers.php
index 6c80813c2..0ebc6d8fc 100644
--- a/code/web/private_php/ams/autoload/helpers.php
+++ b/code/web/private_php/ams/autoload/helpers.php
@@ -23,6 +23,8 @@ class Helpers {
global $AMS_TRANS;
global $INGAME_LAYOUT;
global $AMS_CACHEDIR;
+ global $AMS_PLUGINS;
+
// define('SMARTY_SPL_AUTOLOAD',1);
require_once $AMS_LIB . '/smarty/libs/Smarty.class.php';
spl_autoload_register( '__autoload' );
@@ -37,9 +39,13 @@ class Helpers {
$smarty -> caching = false;
$smarty -> cache_lifetime = 300;
+ $smarty->addPluginsDir($AMS_PLUGINS);
+
if (function_exists('apc_cache_info')) {
// production
- $smarty->compile_check = false;
+ //$smarty->caching = true;
+ //$smarty->setCachingType("apc");
+ //$smarty->compile_check = false;
}
// needed by smarty.
diff --git a/code/web/private_php/ams/autoload/mail_handler.php b/code/web/private_php/ams/autoload/mail_handler.php
index 66cb0f95d..643b57076 100644
--- a/code/web/private_php/ams/autoload/mail_handler.php
+++ b/code/web/private_php/ams/autoload/mail_handler.php
@@ -16,7 +16,11 @@ class Mail_Handler{
*/
private function mail_fork() {
//Start a new child process and return the process id!
- $pid = pcntl_fork();
+ if (function_exists('pcntl_fork')) {
+ $pid = pcntl_fork();
+ } else {
+ $pid = getmypid ();
+ }
return $pid;
}
@@ -118,6 +122,7 @@ class Mail_Handler{
$id_user = $recipient;
$recipient = NULL;
}
+ $db = new DBLayer($db);
$db->insert("email", array('Recipient' => $recipient, 'Subject' => $subject, 'Body' => $body, 'Status' => 'NEW', 'Attempts'=> 0, 'Sender' => $from,'UserId' => $id_user, 'MessageId' => 0, 'TicketId'=> $ticket_id));
}
diff --git a/code/web/private_php/ams/autoload/plugincache.php b/code/web/private_php/ams/autoload/plugincache.php
index 29a2172cb..7150e2087 100644
--- a/code/web/private_php/ams/autoload/plugincache.php
+++ b/code/web/private_php/ams/autoload/plugincache.php
@@ -261,8 +261,14 @@ class Plugincache {
$arr = get_defined_functions();
foreach ($arr['user'] as $key => $value) {
- if (stristr( $value, $plugin_name) == true) {
- $content['hook_info'][$plugin_name] = call_user_func($value);
+ switch (strtolower($value)) {
+ case strtolower($plugin_name).'_hook_display':
+ case strtolower($plugin_name).'_hook_call_rest':
+ case strtolower($plugin_name).'_hook_get_db':
+ case strtolower($plugin_name).'_hook_return_global':
+ case strtolower($plugin_name).'_hook_activate':
+ $content['hook_info'][$plugin_name] = call_user_func($value);
+ break;
}
}
// path for the template
diff --git a/code/web/private_php/ams/autoload/support_group.php b/code/web/private_php/ams/autoload/support_group.php
index ed3c5daf5..f776471ae 100644
--- a/code/web/private_php/ams/autoload/support_group.php
+++ b/code/web/private_php/ams/autoload/support_group.php
@@ -60,10 +60,10 @@ class Support_Group{
* @return a string that specifies if it was a success or not (SUCCESS, SIZE_ERROR, NAME_TAKEN or TAG_TAKEN )
*/
public static function createSupportGroup( $name, $tag, $groupemail, $imap_mailserver, $imap_username, $imap_password) {
- error_log( "Error at line " . __LINE__ . " in file " . __FILE__);
+ //error_log( "Error at line " . __LINE__ . " in file " . __FILE__);
if(strlen($name) <= 21 && strlen($name) >= 4 &&strlen($tag) <= 8 && strlen($tag) >= 2 ){
$notExists = self::supportGroup_EntryNotExists($name, $tag);
- error_log( "Error at line " . __LINE__ . " in file " . __FILE__);
+ //error_log( "Error at line " . __LINE__ . " in file " . __FILE__);
if ( $notExists == "SUCCESS" ){
$sGroup = new self();
$values = array('Name' => $name, 'Tag' => $tag, 'GroupEmail' => $groupemail, 'IMAP_MailServer' => $imap_mailserver, 'IMAP_Username' => $imap_username, 'IMAP_Password' => $imap_password);
@@ -80,14 +80,14 @@ class Support_Group{
$sGroup->setIMAP_Password($enc_password);
$sGroup->create();
- error_log( "Error at line " . __LINE__ . " in file " . __FILE__);
+ //error_log( "Error at line " . __LINE__ . " in file " . __FILE__);
}else{
- error_log( "Error at line " . __LINE__ . " in file " . __FILE__);
+ //error_log( "Error at line " . __LINE__ . " in file " . __FILE__);
//return NAME_TAKEN or TAG_TAKEN
return $notExists;
}
}else{
- error_log( "Error at line " . __LINE__ . " in file " . __FILE__);
+ //error_log( "Error at line " . __LINE__ . " in file " . __FILE__);
//RETURN ERROR that indicates SIZE
return "SIZE_ERROR";
}
diff --git a/code/web/private_php/ams/autoload/sync.php b/code/web/private_php/ams/autoload/sync.php
index 47d6cb61b..1160b91b5 100644
--- a/code/web/private_php/ams/autoload/sync.php
+++ b/code/web/private_php/ams/autoload/sync.php
@@ -6,7 +6,12 @@
* @author Daan Janssens, mentored by Matthew Lagoe
*/
class Sync{
-
+
+ const OS_UNKNOWN = 1;
+ const OS_WIN = 2;
+ const OS_LINUX = 3;
+ const OS_OSX = 4;
+
/**
* performs the actions listed in the querycache.
* All entries in the querycache will be read and performed depending on their type.
@@ -14,29 +19,33 @@ class Sync{
* These changes are: createPermissions, createUser, change_pass, change_mail
*/
static public function syncdata ($display = false) {
-
+
if (function_exists('pcntl_fork')) {
$pid = pcntl_fork();
}
global $AMS_TMPDIR;
$pidfile = $AMS_TMPDIR.'/ams_cron_pid';
-
+
if(isset($pid) and function_exists('pcntl_fork') ) {
// We're the main process.
} else {
- if(!file_exists($pidfile)) {
- $pid = getmypid();
+ $pid = getmypid();
+ if(Sync::check_for_pid(@file_get_contents($pidfile))) {
$file = fopen($pidfile, 'w+');
-
+ if (!$file) {
+ echo $pidfile.' is not writeable.';
+ error_log($pidfile.' is not writeable.');
+ throw new SystemExit();
+ }
fwrite($file, $pid);
fclose($file);
try {
$dbl = new DBLayer("lib");
$statement = $dbl->executeWithoutParams("SELECT * FROM ams_querycache");
- $rows = $statement->fetchAll();
+ $rows = $statement->fetchAll();
foreach ($rows as $record) {
-
+
$db = new DBLayer($record['db']);
switch($record['type']) {
case 'createPermissions':
@@ -45,32 +54,32 @@ class Sync{
//make connection with and put into shard db & delete from the lib
$sth=$db->selectWithParameter("UId", "user", $values, "Login= :username" );
$result = $sth->fetchAll();
- foreach ($result as $UId) {
+ /*foreach ($result as $UId) {
$ins_values = array('UId' => $UId['UId']);
$ins_values['ClientApplication'] = "r2";
$ins_values['AccessPrivilege'] = "OPEN";
$db->insert("permission", $ins_values);
$ins_values['ClientApplication'] = 'ryzom_open';
$db->insert("permission",$ins_values);
- }
+ }*/ // FIXME: GARBAGE
break;
case 'change_pass':
$decode = json_decode($record['query']);
$values = array('Password' => $decode[1]);
//make connection with and put into shard db & delete from the lib
- $db->update("user", $values, "Login = '$decode[0]'");
+ $db->update("user", $values, "Login = '$decode[0]'");
break;
case 'change_mail':
$decode = json_decode($record['query']);
$values = array('Email' => $decode[1]);
//make connection with and put into shard db & delete from the lib
- $db->update("user", $values, "Login = '$decode[0]'");
+ $db->update("user", $values, "Login = '$decode[0]'");
break;
- case 'createUser':
+ case 'createUser':
$decode = json_decode($record['query']);
$values = array('Login' => $decode[0], 'Password' => $decode[1], 'Email' => $decode[2] );
//make connection with and put into shard db & delete from the lib
- $db->insert("user", $values);
+ $db->insert("user", $values);
break;
}
$dbl->delete("ams_querycache", array('SID' => $record['SID']), "SID=:SID");
@@ -90,4 +99,34 @@ class Sync{
}
}
+
+ public static function check_for_pid($pid){
+
+ $OS = Sync::getOS();
+
+ if ($OS == 2) {
+ $processes = explode( "\n", shell_exec( "tasklist.exe" ));
+ foreach( $processes as $key => $value )
+ {
+ if( empty($value) != '1' && strpos( "Image Name", $value ) === 0
+ || empty($value) != '1' && strpos( "===", $value ) === 0 )
+ continue;
+ $matches = false;
+ preg_match( "/(.*?)\s+(\d+).*$/", $value, $matches );
+ if (isset($matches[ 2 ]) && $pid = $matches[ 2 ]) {
+ return true;
+ }
+ }
+ } else {
+ return file_exists( "/proc/".$pid );
+ }
+ }
+ static public function getOS() {
+ switch (true) {
+ case stristr(PHP_OS, 'DAR'): return self::OS_OSX;
+ case stristr(PHP_OS, 'WIN'): return self::OS_WIN;
+ case stristr(PHP_OS, 'LINUX'): return self::OS_LINUX;
+ default : return self::OS_UNKNOWN;
+ }
+ }
}
diff --git a/code/web/private_php/ams/autoload/ticket.php b/code/web/private_php/ams/autoload/ticket.php
index e6af8e188..a47a61659 100644
--- a/code/web/private_php/ams/autoload/ticket.php
+++ b/code/web/private_php/ams/autoload/ticket.php
@@ -606,27 +606,40 @@ class Ticket{
public static function add_Attachment($TId,$filename,$author,$tempFile){
global $FILE_STORAGE_PATH;
- $length = 20;
- $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_';
+ $length = mt_rand(20, 25);
+ $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$-_.+!*\'(),';
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, strlen($characters) - 1)];
}
$targetFile = $FILE_STORAGE_PATH . $randomString . "/" . $filename;
+ if(file_exists($targetFile)) { return self::add_Attachment($TId,$filename,$author,$tempFile); }
+
$ticket = new Ticket();
$ticket->load_With_TId($TId);
//create the attachment!
- $dbl = new DBLayer("lib");
- $dbl->insert("`ticket_attachments`", Array('ticket_TId' => $TId, 'Filename' => $filename, 'Filesize' => filesize($tempFile), 'Uploader' => $author, 'Path' => $randomString . "/" . $filename));
+ try {
+ $dbl = new DBLayer("lib");
+ $dbl->insert("`ticket_attachments`", Array('ticket_TId' => $TId, 'Filename' => $filename, 'Filesize' => filesize($tempFile), 'Uploader' => $author, 'Path' => $randomString . "/" . $filename));
+ }
+ catch (Exception $e) {
+ return $false;
+ }
+
+
mkdir($FILE_STORAGE_PATH . $randomString);
- move_uploaded_file($tempFile,$targetFile);
+ $return = move_uploaded_file($tempFile,$targetFile);
+
+ if ($return == false) {
+ $dbl->delete("`ticket_attachments`", array('Path' => $randomString . "/" . $filename), "`Path` = :Path");
+ }
//write a log entry
Ticket_Log::createLogEntry( $TId, $author, 10);
- return true;
+ return $return;
}
}
diff --git a/code/web/private_php/ams/autoload/users.php b/code/web/private_php/ams/autoload/users.php
index 1754a4f05..cde30cf63 100644
--- a/code/web/private_php/ams/autoload/users.php
+++ b/code/web/private_php/ams/autoload/users.php
@@ -25,7 +25,7 @@ class Users{
$cpass = "";
$email = "";
}
-
+
if ( helpers :: check_if_game_client() or isset($FORCE_INGAME) ) {
if ( isset( $_POST["TaC"] )) {
$tac="success";
@@ -336,12 +336,12 @@ class Users{
$dbs = new DBLayer("shard");
$sth = $dbs->selectWithParameter("UId", "user", $values, "Login= :username");
$result = $sth->fetchAll();
- foreach ($result as $UId) {
+ /*foreach ($result as $UId) {
$ins_values = array('UId' => $UId['UId'], 'clientApplication' => 'r2', 'AccessPrivilege' => 'OPEN');
$dbs->insert("permission", $ins_values);
$ins_values['clientApplication'] = 'ryzom_open';
$dbs->insert("permission", $ins_values);
- }
+ }*/ // FIXME: GARBAGE
}
catch (PDOException $e) {
//oh noooz, the shard is offline! Put it in query queue at ams_lib db!
diff --git a/code/web/private_php/ams/mail/placeholder b/code/web/private_php/ams/mail/placeholder
new file mode 100644
index 000000000..e69de29bb
diff --git a/code/web/private_php/ams/plugins/API_key_management/API_key_management.php b/code/web/private_php/ams/plugins/API_key_management/API_key_management.php
index 8f2e6158b..b8dc965fc 100644
--- a/code/web/private_php/ams/plugins/API_key_management/API_key_management.php
+++ b/code/web/private_php/ams/plugins/API_key_management/API_key_management.php
@@ -13,7 +13,7 @@
// Global variable to store the data which is
// returned to the templates
-$return_set = array();
+$API_key_management_return_set = array();
// Local variable to store data during
// functionalities of the hooks
@@ -24,9 +24,10 @@ $var_set = array();
*/
function api_key_management_hook_display()
{
- global $return_set;
+ global $API_key_management_return_set;
// to display plugin name in menu bar
- $return_set['menu_display'] = 'API Key Management';
+ $API_key_management_return_set['menu_display'] = 'API Key Management';
+ $API_key_management_return_set['icon'] = 'icon-download-alt';
}
/**
@@ -50,7 +51,7 @@ function hook_validate( $var )
function hook_variables()
{
global $var_set;
- global $return_set;
+ global $API_key_management_return_set;
if ( hook_validate( $_POST['expDate'] ) && hook_validate( $_POST['sp_name'] ) && hook_validate( $_POST['api_type'] )
&& hook_validate( $_POST['character_name'] ) )
@@ -62,11 +63,11 @@ function hook_variables()
$var_set['User'] = $_SESSION['user'];
$var_set['AddedOn'] = date( "Y-m-d H:i:s" );
$var_set['Items'] = '';
- $return_set['gen_key_validate'] = 'true';
+ $API_key_management_return_set['gen_key_validate'] = 'true';
}
else
{
- $return_set['gen_key_validate'] = 'false';
+ $API_key_management_return_set['gen_key_validate'] = 'false';
}
}
@@ -75,7 +76,7 @@ function hook_variables()
* if not created.
* Contains the sql code
*/
-function api_key_management_hook_create_tb()
+function api_key_management_hook_activate()
{
$dbl = new DBLayer( "lib" );
$sql = "
@@ -120,7 +121,7 @@ function api_key_management_hook_create_tb()
function api_key_management_hook_store_db()
{
global $var_set;
- global $return_set;
+ global $API_key_management_return_set;
// if the form been submited move forward
if ( @hook_validate( $_POST['gen_key'] ) ) {
@@ -129,7 +130,7 @@ function api_key_management_hook_store_db()
hook_variables();
// if validation successfull move forward
- if ( $return_set['gen_key_validate'] == 'true' && $_GET['plugin_action'] == 'generate_key' )
+ if ( $API_key_management_return_set['gen_key_validate'] == 'true' && $_GET['plugin_action'] == 'generate_key' )
{
// this part generated the access token
include 'generate_key.php';
@@ -155,7 +156,7 @@ function api_key_management_hook_store_db()
function api_key_management_hook_load_db()
{
global $var_set;
- global $return_set;
+ global $API_key_management_return_set;
$dbl = new DBLayer("lib");
@@ -164,10 +165,10 @@ function api_key_management_hook_load_db()
// returns the registered keys
$sth = $dbl -> select( 'ams_api_keys', array( 'user' => $_SESSION['user'] ), 'User = :user' );
$row = $sth -> fetchAll();
- $return_set['api_keys'] = $row;
+ $API_key_management_return_set['api_keys'] = $row;
// fetch the character from the array to compare
- $com = array_column( $return_set['api_keys'], 'UserCharacter' );
+ $com = array_column( $API_key_management_return_set['api_keys'], 'UserCharacter' );
// returns the characters with respect to the user id in the ring_tool->characters
try {
@@ -176,7 +177,7 @@ function api_key_management_hook_load_db()
$row = $sth -> fetch();
// loop through the character list and remove the character if already have an api key
- $return_set['characters'] = array_diff( $row, $com );
+ $API_key_management_return_set['characters'] = array_diff( $row, $com );
}catch( PDOException $e ) {
error_log($e->getMessage());
}
@@ -189,7 +190,7 @@ function api_key_management_hook_load_db()
function api_key_management_hook_update_db()
{
global $var_set;
- global $return_set;
+ global $API_key_management_return_set;
$db = new DBLayer( 'lib' );
if ( isset( $_GET['delete_id'] ) )
@@ -208,10 +209,10 @@ function api_key_management_hook_update_db()
* Global Hook to return global variables which contains
* the content to use in the smarty templates
*
- * @return $return_set global array returns the template data
+ * @return $API_key_management_return_set global array returns the template data
*/
function api_key_management_hook_return_global()
{
- global $return_set;
- return $return_set;
+ global $API_key_management_return_set;
+ return $API_key_management_return_set;
}
diff --git a/code/web/private_php/ams/plugins/API_key_management/templates/gen_key.tpl b/code/web/private_php/ams/plugins/API_key_management/templates/gen_key.tpl
index 1aaaef1a9..1f474481d 100644
--- a/code/web/private_php/ams/plugins/API_key_management/templates/gen_key.tpl
+++ b/code/web/private_php/ams/plugins/API_key_management/templates/gen_key.tpl
@@ -1,24 +1,24 @@