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 @@
-
-
-

API KEY management

+
+
+ API KEY management
- - - + + +
-
-
-

Generate Access Key

+
+
+ Generate Access Key
- - + +
-
+
Generate Key @@ -27,7 +27,7 @@
- +
diff --git a/code/web/private_php/ams/plugins/API_key_management/templates/index.tpl b/code/web/private_php/ams/plugins/API_key_management/templates/index.tpl index b113f417a..37d1c8433 100644 --- a/code/web/private_php/ams/plugins/API_key_management/templates/index.tpl +++ b/code/web/private_php/ams/plugins/API_key_management/templates/index.tpl @@ -3,24 +3,24 @@ {if isset($smarty.get.plugin_action) and $smarty.get.plugin_action eq 'generate_key'}
-
-
-

API KEY management

+
+
+ API KEY management
- - - + + +
-
-

Generate Access Key

+
+ Generate Access Key
- - + +
-
+
Generate Key @@ -29,7 +29,7 @@
- +
@@ -48,9 +48,11 @@
@@ -59,7 +61,7 @@
- +
@@ -81,13 +83,13 @@ {else}
-
-
-

API KEY management

+
+
+ API KEY management
- - - + + +
@@ -95,10 +97,10 @@ {if isset($hook_info.API_key_management['gen_key_validate']) and $hook_info.API_key_management['gen_key_validate'] eq 'false' }

Please enter all the fields

{/if} {if isset($smarty.get.success) and $smarty.get.success eq '1'}

Key added successfully

{/if} {if isset($smarty.get.success) and $smarty.get.success eq '2'}

Key deleted successfully

{/if} -
+
-
+

All the keys you have generated will be shown and you can customize from here.

@@ -114,6 +116,7 @@ + {if isset($hook_info.API_key_management.api_keys)} {foreach from=$hook_info.API_key_management.api_keys item=element} {$element.FrName} @@ -124,6 +127,7 @@ {/foreach} + {/if} diff --git a/code/web/private_php/ams/plugins/Achievements/Achievements.php b/code/web/private_php/ams/plugins/Achievements/Achievements.php index 79c117893..13404598b 100644 --- a/code/web/private_php/ams/plugins/Achievements/Achievements.php +++ b/code/web/private_php/ams/plugins/Achievements/Achievements.php @@ -17,7 +17,7 @@ // Global variable to store the data which is // returned to the templates -$return_set = array(); +$achievements_return_set = array(); // Local variable to store data during // functionalities of the hooks @@ -28,9 +28,10 @@ $var_set = array(); */ function achievements_hook_display() { - global $return_set; + global $achievements_return_set; // to display plugin name in menu bar - $return_set['menu_display'] = 'Achievements'; + $achievements_return_set['menu_display'] = 'Achievements'; + $achievements_return_set['icon'] = 'icon-certificate'; } /** @@ -97,7 +98,7 @@ function hook_get_player_stat( $data ) */ function hook_variable_set() { - global $return_set; + global $achievements_return_set; global $var_set; if ( isset( $_POST['Character'] ) && !empty( $_POST['Character'] ) ) { @@ -132,7 +133,7 @@ function hook_variable_set() } else { - $return_set['no_char'] = "Please Generate key for a character before requesting for achievements"; + $achievements_return_set['no_char'] = "Please Generate key for a character before requesting for achievements"; } } @@ -146,13 +147,13 @@ function hook_variable_set() * appkey --> app key for authentication * host --> host from which request have been sent * - * @return $return_set global array returns the template data + * @return $achievements_return_set global array returns the template data */ function achievements_hook_call_rest() { // defined the variables global $var_set; - global $return_set; + global $achievements_return_set; if ( isset( $_POST['get_data'] ) ) { @@ -161,7 +162,7 @@ function achievements_hook_call_rest() $rest_api = new Rest_Api(); $ach_data = $rest_api -> request( $var_set['url'], $var_set['app_key'], $var_set['host'], $var_set['items'] ); // here we store the response we get from the server - $return_set['char_achievements'] = $ach_data ; + $achievements_return_set['char_achievements'] = $ach_data ; } } @@ -170,11 +171,11 @@ function achievements_hook_call_rest() * the content to use in the smarty templates extracted from * the database * - * @return $return_set global array returns the template data + * @return $achievements_return_set global array returns the template data */ function achievements_hook_get_db() { - global $return_set; + global $achievements_return_set; if ( isset( $_SESSION['user'] ) ) { @@ -183,7 +184,7 @@ function achievements_hook_get_db() // getting content for selecting characters $sth = $db -> selectWithParameter( 'UserCharacter', 'ams_api_keys', array( 'User' => $_SESSION['user'] ) , 'User = :User' ); $row = $sth -> fetch(); - $return_set['Character'] = $row; + $achievements_return_set['Character'] = $row; } } @@ -191,10 +192,10 @@ function achievements_hook_get_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 $achievements_return_set global array returns the template data */ function achievements_hook_return_global() { - global $return_set; - return $return_set; + global $achievements_return_set; + return $achievements_return_set; } diff --git a/code/web/private_php/ams/plugins/Achievements/templates/index.tpl b/code/web/private_php/ams/plugins/Achievements/templates/index.tpl index b88b5730a..884273668 100644 --- a/code/web/private_php/ams/plugins/Achievements/templates/index.tpl +++ b/code/web/private_php/ams/plugins/Achievements/templates/index.tpl @@ -1,13 +1,12 @@ {block name=content} - {if isset($smarty.get.plugin_action) and $smarty.get.plugin_action eq 'get_achievements'}
-
-
-

Achievements

+
+
+ Achievements
-
+
{if isset($hook_info.Achievements.no_char)}

{$hook_info.Achievements.no_char}

{/if}
{$hook_info.Achievements.char_achievements} @@ -19,11 +18,11 @@ {else}
-
-
-

Select your Character

+
+
+ Select your Character
-
+
diff --git a/code/web/private_php/ams/plugins/Domain_Management/.info b/code/web/private_php/ams/plugins/Domain_Management/.info new file mode 100644 index 000000000..502846e4f --- /dev/null +++ b/code/web/private_php/ams/plugins/Domain_Management/.info @@ -0,0 +1,8 @@ +PluginName = Domain_Management +Description = Plug-in for Domain Management. +Version = 1.0.0 +TemplatePath = ../../../private_php/ams/plugins/Domain_Management/templates/index.tpl +Type = Manual + + + diff --git a/code/web/private_php/ams/plugins/Domain_Management/Domain_Management.php b/code/web/private_php/ams/plugins/Domain_Management/Domain_Management.php new file mode 100644 index 000000000..6fb933b68 --- /dev/null +++ b/code/web/private_php/ams/plugins/Domain_Management/Domain_Management.php @@ -0,0 +1,106 @@ + on which request is to be made + * appkey --> app key for authentication + * host --> host from which request have been sent + * + * @return $domain_management_return_set global array returns the template data + */ +function domain_management_hook_call_rest() + { + + global $domain_management_return_set; + global $WEBPATH; + + $domain_management_return_set['path'] = $WEBPATH; + + } + +/** + * Global Hook to return global variables which contains + * the content to use in the smarty templates extracted from + * the database + * + * @return $domain_management_return_set global array returns the template data + */ +function domain_management_hook_get_db() + { + global $domain_management_return_set; + + $db = new DBLayer( 'shard' ); + + //get all domains + $statement = $db->executeWithoutParams("SELECT * FROM domain"); + $rows = $statement->fetchAll(); + $domain_management_return_set['domains'] = $rows; + + if (isset($_GET['edit_domain'])){ + //get permissions + $statement = $db->executeWithoutParams("SELECT * FROM `domain` WHERE `domain_id` = '".$_GET['edit_domain']."'"); + $rows = $statement->fetchAll(); + $domain_management_return_set['domains'] = $rows; + + $statement = $db->executeWithoutParams("SELECT * FROM `permission` WHERE `DomainId` = '".$_GET['edit_domain']."'"); + $rows = $statement->fetchAll(); + $domain_management_return_set['permissions'] = $rows; + + //get all users + $pagination = new Pagination(WebUsers::getAllUsersQuery(),"web",10,"WebUsers"); + $domain_management_return_set['userlist'] = Gui_Elements::make_table($pagination->getElements() , Array("getUId","getUsername","getEmail"), Array("id","username","email")); + + } + + return $rows; + } + +/** + * Global Hook to return global variables which contains + * the content to use in the smarty templates + * + * @return $domain_management_return_set global array returns the template data + */ +function domain_management_hook_return_global() + { + global $domain_management_return_set; + return $domain_management_return_set; + } diff --git a/code/web/private_php/ams/plugins/Domain_Management/templates/index.tpl b/code/web/private_php/ams/plugins/Domain_Management/templates/index.tpl new file mode 100644 index 000000000..2e818591c --- /dev/null +++ b/code/web/private_php/ams/plugins/Domain_Management/templates/index.tpl @@ -0,0 +1,241 @@ +{block name=content} + +{if $permission eq 3} + {if isset($smarty.get.edit_domain)} +
+
+
+
+ Domain: {$hook_info['Domain_Management']['domains']['0']['domain_name']} +
+
+
+ Users with permissions in domain + + + + + + + + + + + {assign var=val value=0} + {foreach from=$hook_info['Domain_Management']['userlist'] item=element name=loop} + + + + + + + {/foreach} + +
User IDUsernamePermissions
{$element.id}{$element.username} + {if isset($hook_info['Domain_Management']['permissions'][{$val}]['UId']) and $smarty.foreach.loop.iteration eq $hook_info['Domain_Management']['permissions'][{$val}]['UId']} + {if $hook_info['Domain_Management']['permissions'][{$val}]['AccessPrivilege'] eq ''} + BANNED! + {else} + {$hook_info['Domain_Management']['permissions'][{$val}]['AccessPrivilege']} + {/if} + {assign var=val value=$val+1} + {else} + NO PERMISSIONS + {/if} + + +
+
+
+
+
+ +
+
+
+ Modify Domain Settings +
+
+
+ + + + Domain Settings of '{$hook_info['Domain_Management']['domains']['0']['domain_name']}' + +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+ +
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+ +
+
+ + {if isset($RESULT_OF_MODIFYING) and $RESULT_OF_MODIFYING eq "SUCCESS"} +
+ {$modify_mail_of_group_success} +
+ {/if} + + +
+
+
+
+ +
+ {else} + +
+
+
+
+ + +Domains + +
+
+ + + + + + + + + + + + {if isset($hook_info['Domain_Management']['domains'][0])} + {foreach from=$hook_info['Domain_Management']['domains'] item=array} + + + + + + + + {/foreach} + {/if} + +
Domain IDDomain NameStatusPatch VersionDescription
{$array['domain_id']}{$array['domain_name']}{$array['status']}{$array['patch_version']}{$array['description']|truncate}
+
+
+
+ +
+ {/if} +{/if} +{/block} diff --git a/code/web/private_php/ams/smarty/README b/code/web/private_php/ams/smarty/README index bf03403aa..50e0d60e5 100644 --- a/code/web/private_php/ams/smarty/README +++ b/code/web/private_php/ams/smarty/README @@ -1,4 +1,4 @@ -Smarty 3.1.13 +Smarty 3.1.19 Author: Monte Ohrt Author: Uwe Tews @@ -120,7 +120,7 @@ $smarty->unregisterObject($object_name) $smarty->unregisterFilter($type, $function_name) $smarty->unregisterResource($resource_type) -$smarty->compileAllTemplates($extention = '.tpl', $force_compile = false, $time_limit = 0, $max_errors = null) +$smarty->compileAllTemplates($extension = '.tpl', $force_compile = false, $time_limit = 0, $max_errors = null) $smarty->clearCompiledTemplate($resource_name = null, $compile_id = null, $exp_time = null) $smarty->testInstall() diff --git a/code/web/private_php/ams/smarty/SMARTY_3.1_NOTES.txt b/code/web/private_php/ams/smarty/SMARTY_3.1_NOTES.txt index e56e56f67..57709f0d7 100644 --- a/code/web/private_php/ams/smarty/SMARTY_3.1_NOTES.txt +++ b/code/web/private_php/ams/smarty/SMARTY_3.1_NOTES.txt @@ -199,7 +199,7 @@ Relative paths are available with {include file="..."} and $smarty->fetch('./foo.tpl') cannot be relative to a template, an exception is thrown. - Adressing a specific $template_dir + Addressing a specific $template_dir Smarty 3.1 introduces the $template_dir index notation. $smarty->fetch('[foo]bar.tpl') and {include file="[foo]bar.tpl"} diff --git a/code/web/private_php/ams/smarty/change_log.txt b/code/web/private_php/ams/smarty/change_log.txt index 69642e276..7eb58320d 100644 --- a/code/web/private_php/ams/smarty/change_log.txt +++ b/code/web/private_php/ams/smarty/change_log.txt @@ -1,9 +1,227 @@ -===== Smarty-3.1.13 ===== + ===== 3.1.20-dev ===== (xx.xx.2014) + ===== 3.1.19 ===== (06.30.2014) + 20.06.2014 + - bugfix template variables could not be passed as paramter in {include} when the include was in a {nocache} section (topic 25131) + + 17.06.2014 + - bugfix large template text of some charsets could cause parsing errors (topic 24630) + + 08.06.2014 + - bugfix registered objects did not work after spelling fixes of 06.06.2014 + - bugfix {block} tags within {literal} .. {/literal} got not displayed correctly (topic 25024) + - bugfix UNC WINDOWS PATH like "\\psf\path\to\dir" did not work as template directory (Issue 192) + - bugfix {html_image} security check did fail on files relative to basedir (Issue 191) + + 06.06.2014 + - fixed PHPUnit outputFilterTrimWhitespaceTests.php assertion of test result + - fixed spelling, PHPDoc , minor errors, code cleanup + + 02.06.2014 + - using multiple cwd with relative template dirs could result in identical compiled file names. (issue 194 and topic 25099) + + 19.04.2014 + - bugfix calling createTemplate(template, data) with empty data array caused notice of array to string conversion (Issue 189) + - bugfix clearCompiledTemplate() did not delete files on WINDOWS when a compile_id was specified + + 18.04.2014 + - revert bugfix of 5.4.2014 because %-e date format is not supported on all operating systems + + ===== 3.1.18 ===== (07.04.2014) + 06.04.2014 + - bugfix template inheritance fail when using custom resource after patch of 8.3.2014 (Issue 187) + - bugfix update of composer file (Issue 168 and 184) + + 05.04.2014 + - bugfix default date format leads to extra spaces when displaying dates with single digit days (Issue 165) + + 26.03.2014 + - bugfix Smart_Resource_Custom should not lowercase the resource name (Issue 183) + + 24.03.2014 + - bugfix using a {foreach} property like @iteration could fail when used in inheritance parent templates (Issue 182) + + 20.03.2014 + - bugfix $smarty->auto_literal and mbsting.func_overload 2, 6 or 7 did fail (forum topic 24899) + + 18.03.2014 + - revert change of 17.03.2014 + +17.03.2014 + - bugfix $smarty->auto_literal and mbsting.func_overload 2, 6 or 7 did fail (forum topic 24899) + + 15.03.2014 + - bugfix Smarty_CacheResource_Keyvaluestore did use different keys on read/writes and clearCache() calls (Issue 169) + + 13.03.2014 + - bugfix clearXxx() change of 27.1.2014 did not work when specifing cache_id or compile_id (forum topic 24868 and 24867) + + ===== 3.1.17 ===== + 08.03.2014 + - bugfix relative file path {include} within {block} of child templates did throw exception on first call (Issue 177) + + 17.02.2014 + - bugfix Smarty failed when executing PHP on HHVM (Hip Hop 2.4) because uniqid('',true) does return string with ',' (forum topic 20343) + + 16.02.2014 + - bugfix a '//' or '\\' in template_dir path could produce wrong path on relative filepath in {include} (Issue 175) + + 05.02.2014 + - bugfix shared.literal_compiler_param.php did throw an exception when literal did contain a '-' (smarty-developers group) + + 27.01.2014 + - bugfix $smarty->debugging = true; did show the variable of the $smarty object not the variables used in display() call (forum topic 24764) + - bugfix clearCompiledTemplate(), clearAll() and clear() should use realpath to avoid possible exception from RecursiveDirectoryIterator (Issue 171) + + 26.01.2014 + - bugfix undo block nesting checks for {nocache} for reasons like forum topic 23280 (forum topic 24762) + + 18.01.2014 + - bugfix the compiler did fail when using template inheritance and recursive {include} (smarty-developers group) + + 11.01.2014 + - bugfix "* }" (spaces before right delimiter) was interpreted by mistake as comment end tag (Issue 170) + - internals content cache should be clear when updating cache file + + 08.01.2014 + - bugfix Smarty_CacheResource_Custom did not handle template resource type specifications on clearCache() calls (Issue 169) + - bugfix SmartyBC.class.php should use require_once to load Smarty.class.php (forum topic 24683) + + ===== 3.1.16 ===== + 15.12.2013 + - bugfix {include} with {block} tag handling (forum topic 24599, 24594, 24682) (Issue 161) + Read 3.1.16_RELEASE_NOTES for more details + - enhancement additional debug output at $smarty->_parserdebug = true; + + 07.11.2013 + - bugfix too restrictive handling of {include} within {block} tags. 3.1.15 did throw errors where 3.1.14 did not (forum topic 24599) + - bugfix compiler could fail if PHP mbstring.func_overload is enabled (Issue 164) + + 28.10.2013 + - bugfix variable resource name at custom resource plugin did not work within {block} tags (Issue 163) + - bugfix notice "Trying to get property of non-object" removed (Issue 163) + - bugfix correction of modifier capitalize fix from 3.10.2013 (issue 159) + - bugfix multiple {block}s with same name in parent did not work (forum topic 24631) + + 20.10.2013 + - bugfix a variable file name at {extends} tag did fail (forum topic 24618) + + 14.10.2013 + - bugfix yesterdays fix could result in an undefined variable + + 13.10.2013 + - bugfix variable names on {include} in template inheritance did unextepted error message (forum topic 24594) (Issue 161) +.- bugfix relative includes with same name like {include './foo.tpl'} from different folder failed (forum topic 24590)(Issue 161) + + 04.10.2013 + - bugfix variable file names at {extends} had been disbabled by mistake with the rewrite of + template inheritance of 24.08.2013 (forum topic 24585) + +03.10.2013 + - bugfix loops using modifier capitalize did eat up memory (issue 159) + + ===== Smarty 3.1.15 ===== +01.10.2013 + - use current delimiters in compiler error messages (issue 157) + - improvement on performance when using error handler and multiple template folders (issue 152) + +17.09.2013 + - improvement added patch for additional SmartyCompilerException properties for better access to scource information (forum topic 24559) + +16.09.2013 + - bugfix recompiled templates did not show on first request with zend opcache cache (forum topic 24320) + +13.09.2013 + - bugfix html_select_time defaulting error for the Meridian dropdown (forum topic 24549) + +09.09.2012 +- bugfix incorrect compiled code with array(object,method) callback at registered Variable Filter (forum topic 24542) + +27.08.2013 +- bugfix delimiter followed by linebreak did not work as auto literal after update from 24.08.2013 (forum topic 24518) + +24.08.2013 +- bugfix and enhancement + Because several recent problems with template inheritance the {block} tag compiler has been rewriten + - Error messages shown now the correct child template file and line number + - The compiler could fail on some larger UTF-8 text block (forum topic 24455) + - The {strip} tag can now be placed outside {block} tags in child templates (forum topic 24289) +- change SmartyException::$escape is now false by default +- change PHP traceback has been remove for SmartyException and SmartyCompilerException + +14.08.2013 +- bugfix compiled filepath of config file did not observe different config_dir (forum topic 24493) + +13.08.2013 +- bugfix the internal resource cache did not observe config_dir changes (forum topic 24493) + +12.08.2013 +- bugfix internal $tmpx variables must be unique over all inheritance templates (Issue 149) + +10.08.2013 +- bugfix a newline was eaten when a was passed by a Smarty variable and caching was enabled (forum topic 24482) + +29.07.2013 +- bugfix headers already send warning thrown when using 'SMARTY_DEBUG=on' from URL (Issue 148) + +27.07.2013 +- enhancement allow access to properties of registered opjects for Smarty2 BC (forum topic 24344) + +26.07.2013 +- bugfix template inheritance nesting problem (forum topic 24387) + +15.7.2013 +- update code generated by PSR-2 standards fixer which introduced PHP 5.4 incompatibilities of 14.7.2013 + +14.7.2013 +- bugfix increase of internal maximum parser stacksize to allow more complex tag code {forum topic 24426} +- update for PHP 5.4 compatibility +- reformat source to PSR-2 standard + +12.7.2013 +- bugfix Do not remove '//' from file path at normalization (Issue 142) + +2.7.2013 +- bugfix trimwhitespace would replace captured items in wrong order (forum topic 24387) + +===== Smarty-3.1.14 ===== +27.06.2013 +- bugfix removed PHP 5.5 deprecated preg_replace /e option in modifier capitalize (forum topic 24389) + +17.06.2013 +- fixed spelling in sources and documentation (from smarty-developers forum Veres Lajos) +- enhancement added constant SMARTY::CLEAR_EXPIRED for the change of 26.05.2013 (forum topic 24310) +- bugfix added smarty_security.php to composer.json (Issue 135) + +26.05.2013 +- enhancement an expire_time of -1 in clearCache() and clearAllCache() will delete outdated cache files + by their individual cache_lifetime used at creation (forum topic 24310) + +21.05.2013 +- bugfix modifier strip_tags:true was compiled into wrong code (Forum Topic 24287) +- bugfix /n after ?> in Smarty.class.php did start output buffering (Issue 138) + +25.04.2013 +- bugfix escape and wordrap modifier could be compiled into wrong code when used in {nocache}{/nocache} + section but caching is disabled (Forum Topic 24260) + +05.04.2013 +- bugfix post filter must not run when compiling inheritance child blocks (Forum Topic 24094) +- bugfix after the fix for Issue #130 compiler exceptions got double escaped (Forum Topic 24199) + +28.02.2013 +- bugfix nocache blocks could be lost when using CACHING_LIFETIME_SAVED (Issue #133) +- bugfix Compile ID gets nulled when compiling child blocks (Issue #134) + + +24.01.2013 +- bugfix wrong tag type in smarty_internal_templatecompilerbase.php could cause wrong plugin search order (Forum Topic 24028) + +===== Smarty-3.1.13 ===== 13.01.2013 - enhancement allow to disable exception message escaping by SmartyException::$escape = false; (Issue #130) 09.01.2013 -- bugfix compilation did fail when a prefilter did modify an {extends} tag (Forum Topic 23966) +- bugfix compilation did fail when a prefilter did modify an {extends} tag c - bugfix template inheritance could fail if nested {block} tags in childs did contain {$smarty.block.child} (Issue #127) - bugfix template inheritance could fail if {block} tags in childs did have similar name as used plugins (Issue #128) - added abstract method declaration doCompile() in Smarty_Internal_TemplateCompilerBase (Forum Topic 23969) @@ -417,7 +635,7 @@ 03/09/2011 - bugfix createTemplate() must default to cache_id and compile_id of Smarty object - bugfix Smarty_CacheResource_KeyValueStore must include $source->uid in cache filepath to keep templates with same - name but different folders seperated + name but different folders separated - added cacheresource.apc.php example in demo folder 02/09/2011 @@ -608,7 +826,7 @@ - changed ./ and ../ behaviour 14/02/2011 -- added {block ... hide} option to supress block if no child is defined +- added {block ... hide} option to suppress block if no child is defined 13/02/2011 - update handling of recursive subtemplate calls @@ -722,7 +940,7 @@ - bugfix on compiler object destruction. compiler_object property was by mistake unset. 09/03/2011 --bugfix a variable filter should run before modifers on an output tag (see change of 23/07/2010) +-bugfix a variable filter should run before modifiers on an output tag (see change of 23/07/2010) 08/03/2011 - bugfix loading config file without section should load only defaults @@ -1026,10 +1244,10 @@ request_use_auto_globals - bugfix passing scope attributes in doublequoted strings did not work at {include} {assign} and {append} 25/07/2010 -- another bugfix of change from 23/07/2010 when compiling modifer +- another bugfix of change from 23/07/2010 when compiling modifier 24/07/2010 -- bugfix of change from 23/07/2010 when compiling modifer +- bugfix of change from 23/07/2010 when compiling modifier 23/07/2010 - changed execution order. A variable filter does now run before modifiers on output of variables @@ -1336,7 +1554,7 @@ request_use_auto_globals - bugfix on {if} tags 01/12/2010 -- changed back modifer handling in parser. Some restrictions still apply: +- changed back modifier handling in parser. Some restrictions still apply: if modifiers are used in side {if...} expression or in mathematical expressions parentheses must be used. - bugfix the {function..} tag did not accept the name attribute in double quotes @@ -1948,7 +2166,7 @@ NOTICE: existing compiled template and cache files must be deleted - fixed exceptions in function plugins - fixed notice error in Smarty.class.php - allow chained objects to span multiple lines -- fixed error in modifers +- fixed error in modifiers 03/20/2009 - moved /plugins folder into /libs folder @@ -1956,7 +2174,7 @@ NOTICE: existing compiled template and cache files must be deleted - autoappend a directory separator if the xxxxx_dir definition have no trailing one 03/19/2009 -- allow array definition as modifer parameter +- allow array definition as modifier parameter - changed modifier to use multi byte string funktions. 03/17/2009 diff --git a/code/web/private_php/ams/smarty/libs/Smarty.class.php b/code/web/private_php/ams/smarty/libs/Smarty.class.php index 40532fc2a..6291e4cd5 100644 --- a/code/web/private_php/ams/smarty/libs/Smarty.class.php +++ b/code/web/private_php/ams/smarty/libs/Smarty.class.php @@ -2,33 +2,29 @@ /** * Project: Smarty: the PHP compiling template engine * File: Smarty.class.php - * SVN: $Id: Smarty.class.php 4694 2013-01-13 21:13:14Z uwe.tews@googlemail.com $ - * + * SVN: $Id: Smarty.class.php 4848 2014-06-08 18:12:09Z Uwe.Tews@googlemail.com $ * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. - * * This library 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 * Lesser General Public License for more details. - * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * * For questions, help, comments, discussion, etc., please join the * Smarty mailing list. Send a blank e-mail to * smarty-discussion-subscribe@googlegroups.com * - * @link http://www.smarty.net/ + * @link http://www.smarty.net/ * @copyright 2008 New Digital Group, Inc. - * @author Monte Ohrt - * @author Uwe Tews - * @author Rodney Rehm - * @package Smarty - * @version 3.1.13 + * @author Monte Ohrt + * @author Uwe Tews + * @author Rodney Rehm + * @package Smarty + * @version 3.1.19 */ /** @@ -92,20 +88,21 @@ if (SMARTY_SPL_AUTOLOAD && set_include_path(get_include_path() . PATH_SEPARATOR /** * Load always needed external class files */ -include_once SMARTY_SYSPLUGINS_DIR.'smarty_internal_data.php'; -include_once SMARTY_SYSPLUGINS_DIR.'smarty_internal_templatebase.php'; -include_once SMARTY_SYSPLUGINS_DIR.'smarty_internal_template.php'; -include_once SMARTY_SYSPLUGINS_DIR.'smarty_resource.php'; -include_once SMARTY_SYSPLUGINS_DIR.'smarty_internal_resource_file.php'; -include_once SMARTY_SYSPLUGINS_DIR.'smarty_cacheresource.php'; -include_once SMARTY_SYSPLUGINS_DIR.'smarty_internal_cacheresource_file.php'; +include_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_data.php'; +include_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_templatebase.php'; +include_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_template.php'; +include_once SMARTY_SYSPLUGINS_DIR . 'smarty_resource.php'; +include_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_resource_file.php'; +include_once SMARTY_SYSPLUGINS_DIR . 'smarty_cacheresource.php'; +include_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_cacheresource_file.php'; /** * This is the main Smarty class + * * @package Smarty */ -class Smarty extends Smarty_Internal_TemplateBase { - +class Smarty extends Smarty_Internal_TemplateBase +{ /**#@+ * constant definitions */ @@ -113,7 +110,7 @@ class Smarty extends Smarty_Internal_TemplateBase { /** * smarty version */ - const SMARTY_VERSION = 'Smarty-3.1.13'; + const SMARTY_VERSION = 'Smarty-3.1.19'; /** * define variable scopes @@ -128,6 +125,11 @@ class Smarty extends Smarty_Internal_TemplateBase { const CACHING_OFF = 0; const CACHING_LIFETIME_CURRENT = 1; const CACHING_LIFETIME_SAVED = 2; + /** + * define constant for clearing cache files be saved expiration datees + */ + const CLEAR_EXPIRED = - 1; + /** * define compile check modes */ @@ -201,106 +203,133 @@ class Smarty extends Smarty_Internal_TemplateBase { /** * auto literal on delimiters with whitspace + * * @var boolean */ public $auto_literal = true; /** * display error on not assigned variables + * * @var boolean */ public $error_unassigned = false; /** * look up relative filepaths in include_path + * * @var boolean */ public $use_include_path = false; /** * template directory + * * @var array */ private $template_dir = array(); /** * joined template directory string used in cache keys + * * @var string */ public $joined_template_dir = null; /** * joined config directory string used in cache keys + * * @var string */ public $joined_config_dir = null; /** * default template handler + * * @var callable */ public $default_template_handler_func = null; /** * default config handler + * * @var callable */ public $default_config_handler_func = null; /** * default plugin handler + * * @var callable */ public $default_plugin_handler_func = null; /** * compile directory + * * @var string */ private $compile_dir = null; /** * plugins directory + * * @var array */ private $plugins_dir = array(); /** * cache directory + * * @var string */ private $cache_dir = null; /** * config directory + * * @var array */ private $config_dir = array(); /** * force template compiling? + * * @var boolean */ public $force_compile = false; /** * check template for modifications? + * * @var boolean */ public $compile_check = true; /** * use sub dirs for compiled/cached files? + * * @var boolean */ public $use_sub_dirs = false; /** * allow ambiguous resources (that are made unique by the resource handler) + * * @var boolean */ public $allow_ambiguous_resources = false; /** * caching enabled + * * @var boolean */ public $caching = false; /** * merge compiled includes + * * @var boolean */ public $merge_compiled_includes = false; + /** + * template inheritance merge compiled includes + * + * @var boolean + */ + public $inheritance_merge_compiled_includes = true; /** * cache lifetime in seconds + * * @var integer */ public $cache_lifetime = 3600; /** * force cache file creation + * * @var boolean */ public $force_cache = false; @@ -320,11 +349,13 @@ class Smarty extends Smarty_Internal_TemplateBase { public $compile_id = null; /** * template left-delimiter + * * @var string */ public $left_delimiter = "{"; /** * template right-delimiter + * * @var string */ public $right_delimiter = "}"; @@ -333,7 +364,6 @@ class Smarty extends Smarty_Internal_TemplateBase { */ /** * class name - * * This should be instance of Smarty_Security. * * @var string @@ -360,7 +390,6 @@ class Smarty extends Smarty_Internal_TemplateBase { public $allow_php_templates = false; /** * Should compiled-templates be prevented from being called directly? - * * {@internal * Currently used by Smarty_Internal_Template only. * }} @@ -371,7 +400,6 @@ class Smarty extends Smarty_Internal_TemplateBase { /**#@-*/ /** * debug mode - * * Setting this to true enables the debug-console. * * @var boolean @@ -383,12 +411,12 @@ class Smarty extends Smarty_Internal_TemplateBase { *
  • NONE => no debugging control allowed
  • *
  • URL => enable debugging when SMARTY_DEBUG is found in the URL.
  • * + * * @var string */ public $debugging_ctrl = 'NONE'; /** * Name of debugging URL-param. - * * Only used when $debugging_ctrl is set to 'URL'. * The name of the URL-parameter that activates debugging. * @@ -397,16 +425,19 @@ class Smarty extends Smarty_Internal_TemplateBase { public $smarty_debug_id = 'SMARTY_DEBUG'; /** * Path of debug template. + * * @var string */ public $debug_tpl = null; /** * When set, smarty uses this value as error_reporting-level. + * * @var int */ public $error_reporting = null; /** * Internal flag for getTags() + * * @var boolean */ public $get_used_tags = false; @@ -417,16 +448,19 @@ class Smarty extends Smarty_Internal_TemplateBase { /** * Controls whether variables with the same name overwrite each other. + * * @var boolean */ public $config_overwrite = true; /** * Controls whether config values of on/true/yes and off/false/no get converted to boolean. + * * @var boolean */ public $config_booleanize = true; /** * Controls whether hidden config sections/vars are read from the file. + * * @var boolean */ public $config_read_hidden = false; @@ -439,16 +473,19 @@ class Smarty extends Smarty_Internal_TemplateBase { /** * locking concurrent compiles + * * @var boolean */ public $compile_locking = true; /** * Controls whether cache resources should emply locking mechanism + * * @var boolean */ public $cache_locking = false; /** * seconds to wait for acquiring a lock before ignoring the write lock + * * @var float */ public $locking_timeout = 10; @@ -457,19 +494,19 @@ class Smarty extends Smarty_Internal_TemplateBase { /** * global template functions + * * @var array */ public $template_functions = array(); /** * resource type used if none given - * * Must be an valid key of $registered_resources. + * * @var string */ public $default_resource_type = 'file'; /** * caching type - * * Must be an element of $cache_resource_types. * * @var string @@ -477,121 +514,145 @@ class Smarty extends Smarty_Internal_TemplateBase { public $caching_type = 'file'; /** * internal config properties + * * @var array */ public $properties = array(); /** * config type + * * @var string */ public $default_config_type = 'file'; /** * cached template objects + * * @var array */ public $template_objects = array(); /** * check If-Modified-Since headers + * * @var boolean */ public $cache_modified_check = false; /** * registered plugins + * * @var array */ public $registered_plugins = array(); /** * plugin search order + * * @var array */ public $plugin_search_order = array('function', 'block', 'compiler', 'class'); /** * registered objects + * * @var array */ public $registered_objects = array(); /** * registered classes + * * @var array */ public $registered_classes = array(); /** * registered filters + * * @var array */ public $registered_filters = array(); /** * registered resources + * * @var array */ public $registered_resources = array(); /** * resource handler cache + * * @var array */ public $_resource_handlers = array(); /** * registered cache resources + * * @var array */ public $registered_cache_resources = array(); /** * cache resource handler cache + * * @var array */ public $_cacheresource_handlers = array(); /** * autoload filter + * * @var array */ public $autoload_filters = array(); /** * default modifier + * * @var array */ public $default_modifiers = array(); /** * autoescape variable output + * * @var boolean */ public $escape_html = false; /** * global internal smarty vars + * * @var array */ public static $_smarty_vars = array(); /** * start time for execution time calculation + * * @var int */ public $start_time = 0; /** * default file permissions + * * @var int */ public $_file_perms = 0644; /** * default dir permissions + * * @var int */ public $_dir_perms = 0771; /** * block tag hierarchy + * * @var array */ public $_tag_stack = array(); /** * self pointer to Smarty object + * * @var Smarty */ public $smarty; /** * required by the compiler for BC + * * @var string */ public $_current_file = null; /** * internal flag to enable parser debugging + * * @var bool */ public $_parserdebug = false; @@ -605,7 +666,7 @@ class Smarty extends Smarty_Internal_TemplateBase { /** * Initialize new Smarty object - * + */ public function __construct() { @@ -628,7 +689,6 @@ class Smarty extends Smarty_Internal_TemplateBase { } } - /** * Class destructor */ @@ -645,36 +705,34 @@ class Smarty extends Smarty_Internal_TemplateBase { $this->smarty = $this; } - /** * <> Generic getter. - * * Calls the appropriate getter function. * Issues an E_USER_NOTICE if no valid getter is found. * - * @param string $name property name + * @param string $name property name + * * @return mixed */ public function __get($name) { $allowed = array( - 'template_dir' => 'getTemplateDir', - 'config_dir' => 'getConfigDir', - 'plugins_dir' => 'getPluginsDir', - 'compile_dir' => 'getCompileDir', - 'cache_dir' => 'getCacheDir', + 'template_dir' => 'getTemplateDir', + 'config_dir' => 'getConfigDir', + 'plugins_dir' => 'getPluginsDir', + 'compile_dir' => 'getCompileDir', + 'cache_dir' => 'getCacheDir', ); if (isset($allowed[$name])) { return $this->{$allowed[$name]}(); } else { - trigger_error('Undefined property: '. get_class($this) .'::$'. $name, E_USER_NOTICE); + trigger_error('Undefined property: ' . get_class($this) . '::$' . $name, E_USER_NOTICE); } } /** * <> Generic setter. - * * Calls the appropriate setter function. * Issues an E_USER_NOTICE if no valid setter is found. * @@ -684,11 +742,11 @@ class Smarty extends Smarty_Internal_TemplateBase { public function __set($name, $value) { $allowed = array( - 'template_dir' => 'setTemplateDir', - 'config_dir' => 'setConfigDir', - 'plugins_dir' => 'setPluginsDir', - 'compile_dir' => 'setCompileDir', - 'cache_dir' => 'setCacheDir', + 'template_dir' => 'setTemplateDir', + 'config_dir' => 'setConfigDir', + 'plugins_dir' => 'setPluginsDir', + 'compile_dir' => 'setCompileDir', + 'cache_dir' => 'setCacheDir', ); if (isset($allowed[$name])) { @@ -701,7 +759,8 @@ class Smarty extends Smarty_Internal_TemplateBase { /** * Check if a template resource exists * - * @param string $resource_name template name + * @param string $resource_name template name + * * @return boolean status */ public function templateExists($resource_name) @@ -712,14 +771,15 @@ class Smarty extends Smarty_Internal_TemplateBase { // check if it does exists $result = $tpl->source->exists; $this->template_objects = $save; + return $result; } /** * Returns a single or all global variables * - * @param object $smarty - * @param string $varname variable name or null + * @param string $varname variable name or null + * * @return string variable value or or array of variables */ public function getGlobal($varname = null) @@ -735,6 +795,7 @@ class Smarty extends Smarty_Internal_TemplateBase { foreach (self::$global_tpl_vars AS $key => $var) { $_result[$key] = $var->value; } + return $_result; } } @@ -742,26 +803,29 @@ class Smarty extends Smarty_Internal_TemplateBase { /** * Empty cache folder * - * @param integer $exp_time expiration time - * @param string $type resource type + * @param integer $exp_time expiration time + * @param string $type resource type + * * @return integer number of cache files deleted */ - function clearAllCache($exp_time = null, $type = null) + public function clearAllCache($exp_time = null, $type = null) { // load cache resource and call clearAll $_cache_resource = Smarty_CacheResource::load($this, $type); Smarty_CacheResource::invalidLoadedCache($this); + return $_cache_resource->clearAll($this, $exp_time); } /** * Empty cache for a specific template * - * @param string $template_name template name - * @param string $cache_id cache id - * @param string $compile_id compile id - * @param integer $exp_time expiration time - * @param string $type resource type + * @param string $template_name template name + * @param string $cache_id cache id + * @param string $compile_id compile id + * @param integer $exp_time expiration time + * @param string $type resource type + * * @return integer number of cache files deleted */ public function clearCache($template_name, $cache_id = null, $compile_id = null, $exp_time = null, $type = null) @@ -769,20 +833,23 @@ class Smarty extends Smarty_Internal_TemplateBase { // load cache resource and call clear $_cache_resource = Smarty_CacheResource::load($this, $type); Smarty_CacheResource::invalidLoadedCache($this); + return $_cache_resource->clear($this, $template_name, $cache_id, $compile_id, $exp_time); } /** * Loads security class and enables security * - * @param string|Smarty_Security $security_class if a string is used, it must be class-name - * @return Smarty current Smarty instance for chaining - * @throws SmartyException when an invalid class name is provided + * @param string|Smarty_Security $security_class if a string is used, it must be class-name + * + * @return Smarty current Smarty instance for chaining + * @throws SmartyException when an invalid class name is provided */ public function enableSecurity($security_class = null) { if ($security_class instanceof Smarty_Security) { $this->security_policy = $security_class; + return $this; } elseif (is_object($security_class)) { throw new SmartyException("Class '" . get_class($security_class) . "' must extend Smarty_Security."); @@ -803,6 +870,7 @@ class Smarty extends Smarty_Internal_TemplateBase { /** * Disable security + * * @return Smarty current Smarty instance for chaining */ public function disableSecurity() @@ -815,145 +883,164 @@ class Smarty extends Smarty_Internal_TemplateBase { /** * Set template directory * - * @param string|array $template_dir directory(s) of template sources - * @return Smarty current Smarty instance for chaining + * @param string|array $template_dir directory(s) of template sources + * + * @return Smarty current Smarty instance for chaining */ public function setTemplateDir($template_dir) { $this->template_dir = array(); foreach ((array) $template_dir as $k => $v) { - $this->template_dir[$k] = rtrim($v, '/\\') . DS; + $this->template_dir[$k] = preg_replace('#(\w+)(/|\\\\){1,}#', '$1$2', rtrim($v, '/\\')) . DS; } $this->joined_template_dir = join(DIRECTORY_SEPARATOR, $this->template_dir); + return $this; } /** * Add template directory(s) * - * @param string|array $template_dir directory(s) of template sources - * @param string $key of the array element to assign the template dir to - * @return Smarty current Smarty instance for chaining + * @param string|array $template_dir directory(s) of template sources + * @param string $key of the array element to assign the template dir to + * + * @return Smarty current Smarty instance for chaining * @throws SmartyException when the given template directory is not valid */ - public function addTemplateDir($template_dir, $key=null) + public function addTemplateDir($template_dir, $key = null) { // make sure we're dealing with an array $this->template_dir = (array) $this->template_dir; if (is_array($template_dir)) { foreach ($template_dir as $k => $v) { + $v = preg_replace('#(\w+)(/|\\\\){1,}#', '$1$2', rtrim($v, '/\\')) . DS; if (is_int($k)) { // indexes are not merged but appended - $this->template_dir[] = rtrim($v, '/\\') . DS; + $this->template_dir[] = $v; } else { // string indexes are overridden - $this->template_dir[$k] = rtrim($v, '/\\') . DS; + $this->template_dir[$k] = $v; } } - } elseif ($key !== null) { - // override directory at specified index - $this->template_dir[$key] = rtrim($template_dir, '/\\') . DS; } else { - // append new directory - $this->template_dir[] = rtrim($template_dir, '/\\') . DS; + $v = preg_replace('#(\w+)(/|\\\\){1,}#', '$1$2', rtrim($template_dir, '/\\')) . DS; + if ($key !== null) { + // override directory at specified index + $this->template_dir[$key] = $v; + } else { + // append new directory + $this->template_dir[] = $v; + } } $this->joined_template_dir = join(DIRECTORY_SEPARATOR, $this->template_dir); + return $this; } /** * Get template directories * - * @param mixed index of directory to get, null to get all + * @param mixed $index index of directory to get, null to get all + * * @return array|string list of template directories, or directory of $index */ - public function getTemplateDir($index=null) + public function getTemplateDir($index = null) { if ($index !== null) { return isset($this->template_dir[$index]) ? $this->template_dir[$index] : null; } - return (array)$this->template_dir; + return (array) $this->template_dir; } /** * Set config directory * - * @param string|array $template_dir directory(s) of configuration sources - * @return Smarty current Smarty instance for chaining + * @param $config_dir + * + * @return Smarty current Smarty instance for chaining */ public function setConfigDir($config_dir) { $this->config_dir = array(); foreach ((array) $config_dir as $k => $v) { - $this->config_dir[$k] = rtrim($v, '/\\') . DS; + $this->config_dir[$k] = preg_replace('#(\w+)(/|\\\\){1,}#', '$1$2', rtrim($v, '/\\')) . DS; } $this->joined_config_dir = join(DIRECTORY_SEPARATOR, $this->config_dir); + return $this; } /** * Add config directory(s) * - * @param string|array $config_dir directory(s) of config sources - * @param string key of the array element to assign the config dir to + * @param string|array $config_dir directory(s) of config sources + * @param mixed $key key of the array element to assign the config dir to + * * @return Smarty current Smarty instance for chaining */ - public function addConfigDir($config_dir, $key=null) + public function addConfigDir($config_dir, $key = null) { // make sure we're dealing with an array $this->config_dir = (array) $this->config_dir; if (is_array($config_dir)) { foreach ($config_dir as $k => $v) { + $v = preg_replace('#(\w+)(/|\\\\){1,}#', '$1$2', rtrim($v, '/\\')) . DS; if (is_int($k)) { // indexes are not merged but appended - $this->config_dir[] = rtrim($v, '/\\') . DS; + $this->config_dir[] = $v; } else { // string indexes are overridden - $this->config_dir[$k] = rtrim($v, '/\\') . DS; + $this->config_dir[$k] = $v; } } - } elseif( $key !== null ) { - // override directory at specified index - $this->config_dir[$key] = rtrim($config_dir, '/\\') . DS; } else { - // append new directory - $this->config_dir[] = rtrim($config_dir, '/\\') . DS; + $v = preg_replace('#(\w+)(/|\\\\){1,}#', '$1$2', rtrim($config_dir, '/\\')) . DS; + if ($key !== null) { + // override directory at specified index + $this->config_dir[$key] = rtrim($v, '/\\') . DS; + } else { + // append new directory + $this->config_dir[] = rtrim($v, '/\\') . DS; + } } $this->joined_config_dir = join(DIRECTORY_SEPARATOR, $this->config_dir); + return $this; } /** * Get config directory * - * @param mixed index of directory to get, null to get all + * @param mixed $index index of directory to get, null to get all + * * @return array|string configuration directory */ - public function getConfigDir($index=null) + public function getConfigDir($index = null) { if ($index !== null) { return isset($this->config_dir[$index]) ? $this->config_dir[$index] : null; } - return (array)$this->config_dir; + return (array) $this->config_dir; } /** * Set plugins directory * - * @param string|array $plugins_dir directory(s) of plugins - * @return Smarty current Smarty instance for chaining + * @param string|array $plugins_dir directory(s) of plugins + * + * @return Smarty current Smarty instance for chaining */ public function setPluginsDir($plugins_dir) { $this->plugins_dir = array(); - foreach ((array)$plugins_dir as $k => $v) { + foreach ((array) $plugins_dir as $k => $v) { $this->plugins_dir[$k] = rtrim($v, '/\\') . DS; } @@ -963,8 +1050,8 @@ class Smarty extends Smarty_Internal_TemplateBase { /** * Adds directory of plugin files * - * @param object $smarty - * @param string $ |array $ plugins folder + * @param $plugins_dir + * * @return Smarty current Smarty instance for chaining */ public function addPluginsDir($plugins_dir) @@ -988,6 +1075,7 @@ class Smarty extends Smarty_Internal_TemplateBase { } $this->plugins_dir = array_unique($this->plugins_dir); + return $this; } @@ -998,13 +1086,14 @@ class Smarty extends Smarty_Internal_TemplateBase { */ public function getPluginsDir() { - return (array)$this->plugins_dir; + return (array) $this->plugins_dir; } /** * Set compile directory * - * @param string $compile_dir directory to store compiled templates in + * @param string $compile_dir directory to store compiled templates in + * * @return Smarty current Smarty instance for chaining */ public function setCompileDir($compile_dir) @@ -1013,6 +1102,7 @@ class Smarty extends Smarty_Internal_TemplateBase { if (!isset(Smarty::$_muted_directories[$this->compile_dir])) { Smarty::$_muted_directories[$this->compile_dir] = null; } + return $this; } @@ -1029,7 +1119,8 @@ class Smarty extends Smarty_Internal_TemplateBase { /** * Set cache directory * - * @param string $cache_dir directory to store cached templates in + * @param string $cache_dir directory to store cached templates in + * * @return Smarty current Smarty instance for chaining */ public function setCacheDir($cache_dir) @@ -1038,6 +1129,7 @@ class Smarty extends Smarty_Internal_TemplateBase { if (!isset(Smarty::$_muted_directories[$this->cache_dir])) { Smarty::$_muted_directories[$this->cache_dir] = null; } + return $this; } @@ -1054,20 +1146,23 @@ class Smarty extends Smarty_Internal_TemplateBase { /** * Set default modifiers * - * @param array|string $modifiers modifier or list of modifiers to set - * @return Smarty current Smarty instance for chaining + * @param array|string $modifiers modifier or list of modifiers to set + * + * @return Smarty current Smarty instance for chaining */ public function setDefaultModifiers($modifiers) { $this->default_modifiers = (array) $modifiers; + return $this; } /** * Add default modifiers * - * @param array|string $modifiers modifier or list of modifiers to add - * @return Smarty current Smarty instance for chaining + * @param array|string $modifiers modifier or list of modifiers to add + * + * @return Smarty current Smarty instance for chaining */ public function addDefaultModifiers($modifiers) { @@ -1090,15 +1185,15 @@ class Smarty extends Smarty_Internal_TemplateBase { return $this->default_modifiers; } - /** * Set autoload filters * - * @param array $filters filters to load automatically - * @param string $type "pre", "output", … specify the filter type to set. Defaults to none treating $filters' keys as the appropriate types + * @param array $filters filters to load automatically + * @param string $type "pre", "output", … specify the filter type to set. Defaults to none treating $filters' keys as the appropriate types + * * @return Smarty current Smarty instance for chaining */ - public function setAutoloadFilters($filters, $type=null) + public function setAutoloadFilters($filters, $type = null) { if ($type !== null) { $this->autoload_filters[$type] = (array) $filters; @@ -1112,11 +1207,12 @@ class Smarty extends Smarty_Internal_TemplateBase { /** * Add autoload filters * - * @param array $filters filters to load automatically - * @param string $type "pre", "output", … specify the filter type to set. Defaults to none treating $filters' keys as the appropriate types + * @param array $filters filters to load automatically + * @param string $type "pre", "output", … specify the filter type to set. Defaults to none treating $filters' keys as the appropriate types + * * @return Smarty current Smarty instance for chaining */ - public function addAutoloadFilters($filters, $type=null) + public function addAutoloadFilters($filters, $type = null) { if ($type !== null) { if (!empty($this->autoload_filters[$type])) { @@ -1140,10 +1236,11 @@ class Smarty extends Smarty_Internal_TemplateBase { /** * Get autoload filters * - * @param string $type type of filter to get autoloads for. Defaults to all autoload filters - * @return array array( 'type1' => array( 'filter1', 'filter2', … ) ) or array( 'filter1', 'filter2', …) if $type was specified + * @param string $type type of filter to get autoloads for. Defaults to all autoload filters + * + * @return array array( 'type1' => array( 'filter1', 'filter2', … ) ) or array( 'filter1', 'filter2', …) if $type was specified */ - public function getAutoloadFilters($type=null) + public function getAutoloadFilters($type = null) { if ($type !== null) { return isset($this->autoload_filters[$type]) ? $this->autoload_filters[$type] : array(); @@ -1165,8 +1262,9 @@ class Smarty extends Smarty_Internal_TemplateBase { /** * set the debug template * - * @param string $tpl_name - * @return Smarty current Smarty instance for chaining + * @param string $tpl_name + * + * @return Smarty current Smarty instance for chaining * @throws SmartyException if file is not readable */ public function setDebugTemplate($tpl_name) @@ -1182,20 +1280,21 @@ class Smarty extends Smarty_Internal_TemplateBase { /** * creates a template object * - * @param string $template the resource handle of the template file - * @param mixed $cache_id cache id to be used with this template - * @param mixed $compile_id compile id to be used with this template - * @param object $parent next higher level of Smarty variables - * @param boolean $do_clone flag is Smarty object shall be cloned - * @return object template object + * @param string $template the resource handle of the template file + * @param mixed $cache_id cache id to be used with this template + * @param mixed $compile_id compile id to be used with this template + * @param object $parent next higher level of Smarty variables + * @param boolean $do_clone flag is Smarty object shall be cloned + * + * @return object template object */ public function createTemplate($template, $cache_id = null, $compile_id = null, $parent = null, $do_clone = true) { - if (!empty($cache_id) && (is_object($cache_id) || is_array($cache_id))) { + if ($cache_id !== null && (is_object($cache_id) || is_array($cache_id))) { $parent = $cache_id; $cache_id = null; } - if (!empty($parent) && is_array($parent)) { + if ($parent !== null && is_array($parent)) { $data = $parent; $parent = null; } else { @@ -1242,17 +1341,19 @@ class Smarty extends Smarty_Internal_TemplateBase { $tpl->tpl_vars[$_key] = new Smarty_variable($_val); } } + return $tpl; } - /** * Takes unknown classes and loads plugin files for them * class name format: Smarty_PluginType_PluginName * plugin filename format: plugintype.pluginname.php * - * @param string $plugin_name class plugin name to load - * @param bool $check check if already loaded + * @param string $plugin_name class plugin name to load + * @param bool $check check if already loaded + * + * @throws SmartyException * @return string |boolean filepath of loaded file or false */ public function loadPlugin($plugin_name, $check = true) @@ -1267,13 +1368,13 @@ class Smarty extends Smarty_Internal_TemplateBase { // count($_name_parts) < 3 === !isset($_name_parts[2]) if (!isset($_name_parts[2]) || strtolower($_name_parts[0]) !== 'smarty') { throw new SmartyException("plugin {$plugin_name} is not a valid name format"); - return false; } // if type is "internal", get plugin from sysplugins if (strtolower($_name_parts[1]) == 'internal') { $file = SMARTY_SYSPLUGINS_DIR . strtolower($plugin_name) . '.php'; if (file_exists($file)) { require_once($file); + return $file; } else { return false; @@ -1285,7 +1386,7 @@ class Smarty extends Smarty_Internal_TemplateBase { $_stream_resolve_include_path = function_exists('stream_resolve_include_path'); // loop through plugin dirs and find the plugin - foreach($this->getPluginsDir() as $_plugin_dir) { + foreach ($this->getPluginsDir() as $_plugin_dir) { $names = array( $_plugin_dir . $_plugin_filename, $_plugin_dir . strtolower($_plugin_filename), @@ -1293,6 +1394,7 @@ class Smarty extends Smarty_Internal_TemplateBase { foreach ($names as $file) { if (file_exists($file)) { require_once($file); + return $file; } if ($this->use_include_path && !preg_match('/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/', $_plugin_dir)) { @@ -1305,6 +1407,7 @@ class Smarty extends Smarty_Internal_TemplateBase { if ($file !== false) { require_once($file); + return $file; } } @@ -1317,37 +1420,40 @@ class Smarty extends Smarty_Internal_TemplateBase { /** * Compile all template files * - * @param string $extension file extension - * @param bool $force_compile force all to recompile - * @param int $time_limit - * @param int $max_errors + * @param string $extension file extension + * @param bool $force_compile force all to recompile + * @param int $time_limit + * @param int $max_errors + * * @return integer number of template files recompiled */ - public function compileAllTemplates($extention = '.tpl', $force_compile = false, $time_limit = 0, $max_errors = null) + public function compileAllTemplates($extension = '.tpl', $force_compile = false, $time_limit = 0, $max_errors = null) { - return Smarty_Internal_Utility::compileAllTemplates($extention, $force_compile, $time_limit, $max_errors, $this); + return Smarty_Internal_Utility::compileAllTemplates($extension, $force_compile, $time_limit, $max_errors, $this); } /** * Compile all config files * - * @param string $extension file extension - * @param bool $force_compile force all to recompile - * @param int $time_limit - * @param int $max_errors + * @param string $extension file extension + * @param bool $force_compile force all to recompile + * @param int $time_limit + * @param int $max_errors + * * @return integer number of template files recompiled */ - public function compileAllConfig($extention = '.conf', $force_compile = false, $time_limit = 0, $max_errors = null) + public function compileAllConfig($extension = '.conf', $force_compile = false, $time_limit = 0, $max_errors = null) { - return Smarty_Internal_Utility::compileAllConfig($extention, $force_compile, $time_limit, $max_errors, $this); + return Smarty_Internal_Utility::compileAllConfig($extension, $force_compile, $time_limit, $max_errors, $this); } /** * Delete compiled template file * - * @param string $resource_name template name - * @param string $compile_id compile id - * @param integer $exp_time expiration time + * @param string $resource_name template name + * @param string $compile_id compile id + * @param integer $exp_time expiration time + * * @return integer number of template files deleted */ public function clearCompiledTemplate($resource_name = null, $compile_id = null, $exp_time = null) @@ -1355,12 +1461,12 @@ class Smarty extends Smarty_Internal_TemplateBase { return Smarty_Internal_Utility::clearCompiledTemplate($resource_name, $compile_id, $exp_time, $this); } - /** * Return array of tag/attributes of all tags used by an template * - * @param object $templae template object - * @return array of tag/attributes + * @param Smarty_Internal_Template $template + * + * @return array of tag/attributes */ public function getTags(Smarty_Internal_Template $template) { @@ -1370,10 +1476,11 @@ class Smarty extends Smarty_Internal_TemplateBase { /** * Run installation test * - * @param array $errors Array to write errors into, rather than outputting them + * @param array $errors Array to write errors into, rather than outputting them + * * @return boolean true if setup is fine, false if something is wrong */ - public function testInstall(&$errors=null) + public function testInstall(&$errors = null) { return Smarty_Internal_Utility::testInstall($this, $errors); } @@ -1382,7 +1489,13 @@ class Smarty extends Smarty_Internal_TemplateBase { * Error Handler to mute expected messages * * @link http://php.net/set_error_handler - * @param integer $errno Error level + * + * @param integer $errno Error level + * @param $errstr + * @param $errfile + * @param $errline + * @param $errcontext + * * @return boolean */ public static function mutingErrorHandler($errno, $errstr, $errfile, $errline, $errcontext) @@ -1394,7 +1507,7 @@ class Smarty extends Smarty_Internal_TemplateBase { $smarty_dir = realpath(SMARTY_DIR); if ($smarty_dir !== false) { Smarty::$_muted_directories[SMARTY_DIR] = array( - 'file' => $smarty_dir, + 'file' => $smarty_dir, 'length' => strlen($smarty_dir), ); } @@ -1411,7 +1524,7 @@ class Smarty extends Smarty_Internal_TemplateBase { continue; } $dir = array( - 'file' => $file, + 'file' => $file, 'length' => strlen($file), ); } @@ -1485,20 +1598,55 @@ if (Smarty::$_CHARSET !== 'UTF-8') { /** * Smarty exception class + * * @package Smarty */ -class SmartyException extends Exception { - public static $escape = true; - public function __construct($message) { - $this->message = self::$escape ? htmlentities($message) : $message; +class SmartyException extends Exception +{ + public static $escape = false; + + public function __toString() + { + return ' --> Smarty: ' . (self::$escape ? htmlentities($this->message) : $this->message) . ' <-- '; } } /** * Smarty compiler exception class + * * @package Smarty */ -class SmartyCompilerException extends SmartyException { +class SmartyCompilerException extends SmartyException +{ + public function __toString() + { + return ' --> Smarty Compiler: ' . $this->message . ' <-- '; + } + + /** + * The line number of the template error + * + * @type int|null + */ + public $line = null; + /** + * The template source snippet relating to the error + * + * @type string|null + */ + public $source = null; + /** + * The raw text of the error message + * + * @type string|null + */ + public $desc = null; + /** + * The resource identifier or template name + * + * @type string|null + */ + public $template = null; } /** @@ -1507,22 +1655,20 @@ class SmartyCompilerException extends SmartyException { function smartyAutoload($class) { $_class = strtolower($class); - $_classes = array( - 'smarty_config_source' => true, - 'smarty_config_compiled' => true, - 'smarty_security' => true, - 'smarty_cacheresource' => true, - 'smarty_cacheresource_custom' => true, + static $_classes = array( + 'smarty_config_source' => true, + 'smarty_config_compiled' => true, + 'smarty_security' => true, + 'smarty_cacheresource' => true, + 'smarty_cacheresource_custom' => true, 'smarty_cacheresource_keyvaluestore' => true, - 'smarty_resource' => true, - 'smarty_resource_custom' => true, - 'smarty_resource_uncompiled' => true, - 'smarty_resource_recompiled' => true, + 'smarty_resource' => true, + 'smarty_resource_custom' => true, + 'smarty_resource_uncompiled' => true, + 'smarty_resource_recompiled' => true, ); if (!strncmp($_class, 'smarty_internal_', 16) || isset($_classes[$_class])) { include SMARTY_SYSPLUGINS_DIR . $_class . '.php'; } } - -?> diff --git a/code/web/private_php/ams/smarty/libs/SmartyBC.class.php b/code/web/private_php/ams/smarty/libs/SmartyBC.class.php index f8f0a138f..cec946746 100644 --- a/code/web/private_php/ams/smarty/libs/SmartyBC.class.php +++ b/code/web/private_php/ams/smarty/libs/SmartyBC.class.php @@ -1,460 +1,467 @@ - - * @author Uwe Tews - * @author Rodney Rehm - * @package Smarty - */ -/** - * @ignore - */ -require(dirname(__FILE__) . '/Smarty.class.php'); - -/** - * Smarty Backward Compatability Wrapper Class - * - * @package Smarty - */ -class SmartyBC extends Smarty { - - /** - * Smarty 2 BC - * @var string - */ - public $_version = self::SMARTY_VERSION; - - /** - * Initialize new SmartyBC object - * - * @param array $options options to set during initialization, e.g. array( 'forceCompile' => false ) - */ - public function __construct(array $options=array()) - { - parent::__construct($options); - // register {php} tag - $this->registerPlugin('block', 'php', 'smarty_php_tag'); - } - - /** - * wrapper for assign_by_ref - * - * @param string $tpl_var the template variable name - * @param mixed &$value the referenced value to assign - */ - public function assign_by_ref($tpl_var, &$value) - { - $this->assignByRef($tpl_var, $value); - } - - /** - * wrapper for append_by_ref - * - * @param string $tpl_var the template variable name - * @param mixed &$value the referenced value to append - * @param boolean $merge flag if array elements shall be merged - */ - public function append_by_ref($tpl_var, &$value, $merge = false) - { - $this->appendByRef($tpl_var, $value, $merge); - } - - /** - * clear the given assigned template variable. - * - * @param string $tpl_var the template variable to clear - */ - public function clear_assign($tpl_var) - { - $this->clearAssign($tpl_var); - } - - /** - * Registers custom function to be used in templates - * - * @param string $function the name of the template function - * @param string $function_impl the name of the PHP function to register - * @param bool $cacheable - * @param mixed $cache_attrs - */ - public function register_function($function, $function_impl, $cacheable=true, $cache_attrs=null) - { - $this->registerPlugin('function', $function, $function_impl, $cacheable, $cache_attrs); - } - - /** - * Unregisters custom function - * - * @param string $function name of template function - */ - public function unregister_function($function) - { - $this->unregisterPlugin('function', $function); - } - - /** - * Registers object to be used in templates - * - * @param string $object name of template object - * @param object $object_impl the referenced PHP object to register - * @param array $allowed list of allowed methods (empty = all) - * @param boolean $smarty_args smarty argument format, else traditional - * @param array $block_functs list of methods that are block format - */ - public function register_object($object, $object_impl, $allowed = array(), $smarty_args = true, $block_methods = array()) - { - settype($allowed, 'array'); - settype($smarty_args, 'boolean'); - $this->registerObject($object, $object_impl, $allowed, $smarty_args, $block_methods); - } - - /** - * Unregisters object - * - * @param string $object name of template object - */ - public function unregister_object($object) - { - $this->unregisterObject($object); - } - - /** - * Registers block function to be used in templates - * - * @param string $block name of template block - * @param string $block_impl PHP function to register - * @param bool $cacheable - * @param mixed $cache_attrs - */ - public function register_block($block, $block_impl, $cacheable=true, $cache_attrs=null) - { - $this->registerPlugin('block', $block, $block_impl, $cacheable, $cache_attrs); - } - - /** - * Unregisters block function - * - * @param string $block name of template function - */ - public function unregister_block($block) - { - $this->unregisterPlugin('block', $block); - } - - /** - * Registers compiler function - * - * @param string $function name of template function - * @param string $function_impl name of PHP function to register - * @param bool $cacheable - */ - public function register_compiler_function($function, $function_impl, $cacheable=true) - { - $this->registerPlugin('compiler', $function, $function_impl, $cacheable); - } - - /** - * Unregisters compiler function - * - * @param string $function name of template function - */ - public function unregister_compiler_function($function) - { - $this->unregisterPlugin('compiler', $function); - } - - /** - * Registers modifier to be used in templates - * - * @param string $modifier name of template modifier - * @param string $modifier_impl name of PHP function to register - */ - public function register_modifier($modifier, $modifier_impl) - { - $this->registerPlugin('modifier', $modifier, $modifier_impl); - } - - /** - * Unregisters modifier - * - * @param string $modifier name of template modifier - */ - public function unregister_modifier($modifier) - { - $this->unregisterPlugin('modifier', $modifier); - } - - /** - * Registers a resource to fetch a template - * - * @param string $type name of resource - * @param array $functions array of functions to handle resource - */ - public function register_resource($type, $functions) - { - $this->registerResource($type, $functions); - } - - /** - * Unregisters a resource - * - * @param string $type name of resource - */ - public function unregister_resource($type) - { - $this->unregisterResource($type); - } - - /** - * Registers a prefilter function to apply - * to a template before compiling - * - * @param callable $function - */ - public function register_prefilter($function) - { - $this->registerFilter('pre', $function); - } - - /** - * Unregisters a prefilter function - * - * @param callable $function - */ - public function unregister_prefilter($function) - { - $this->unregisterFilter('pre', $function); - } - - /** - * Registers a postfilter function to apply - * to a compiled template after compilation - * - * @param callable $function - */ - public function register_postfilter($function) - { - $this->registerFilter('post', $function); - } - - /** - * Unregisters a postfilter function - * - * @param callable $function - */ - public function unregister_postfilter($function) - { - $this->unregisterFilter('post', $function); - } - - /** - * Registers an output filter function to apply - * to a template output - * - * @param callable $function - */ - public function register_outputfilter($function) - { - $this->registerFilter('output', $function); - } - - /** - * Unregisters an outputfilter function - * - * @param callable $function - */ - public function unregister_outputfilter($function) - { - $this->unregisterFilter('output', $function); - } - - /** - * load a filter of specified type and name - * - * @param string $type filter type - * @param string $name filter name - */ - public function load_filter($type, $name) - { - $this->loadFilter($type, $name); - } - - /** - * clear cached content for the given template and cache id - * - * @param string $tpl_file name of template file - * @param string $cache_id name of cache_id - * @param string $compile_id name of compile_id - * @param string $exp_time expiration time - * @return boolean - */ - public function clear_cache($tpl_file = null, $cache_id = null, $compile_id = null, $exp_time = null) - { - return $this->clearCache($tpl_file, $cache_id, $compile_id, $exp_time); - } - - /** - * clear the entire contents of cache (all templates) - * - * @param string $exp_time expire time - * @return boolean - */ - public function clear_all_cache($exp_time = null) - { - return $this->clearCache(null, null, null, $exp_time); - } - - /** - * test to see if valid cache exists for this template - * - * @param string $tpl_file name of template file - * @param string $cache_id - * @param string $compile_id - * @return boolean - */ - public function is_cached($tpl_file, $cache_id = null, $compile_id = null) - { - return $this->isCached($tpl_file, $cache_id, $compile_id); - } - - /** - * clear all the assigned template variables. - */ - public function clear_all_assign() - { - $this->clearAllAssign(); - } - - /** - * clears compiled version of specified template resource, - * or all compiled template files if one is not specified. - * This function is for advanced use only, not normally needed. - * - * @param string $tpl_file - * @param string $compile_id - * @param string $exp_time - * @return boolean results of {@link smarty_core_rm_auto()} - */ - public function clear_compiled_tpl($tpl_file = null, $compile_id = null, $exp_time = null) - { - return $this->clearCompiledTemplate($tpl_file, $compile_id, $exp_time); - } - - /** - * Checks whether requested template exists. - * - * @param string $tpl_file - * @return boolean - */ - public function template_exists($tpl_file) - { - return $this->templateExists($tpl_file); - } - - /** - * Returns an array containing template variables - * - * @param string $name - * @return array - */ - public function get_template_vars($name=null) - { - return $this->getTemplateVars($name); - } - - /** - * Returns an array containing config variables - * - * @param string $name - * @return array - */ - public function get_config_vars($name=null) - { - return $this->getConfigVars($name); - } - - /** - * load configuration values - * - * @param string $file - * @param string $section - * @param string $scope - */ - public function config_load($file, $section = null, $scope = 'global') - { - $this->ConfigLoad($file, $section, $scope); - } - - /** - * return a reference to a registered object - * - * @param string $name - * @return object - */ - public function get_registered_object($name) - { - return $this->getRegisteredObject($name); - } - - /** - * clear configuration values - * - * @param string $var - */ - public function clear_config($var = null) - { - $this->clearConfig($var); - } - - /** - * trigger Smarty error - * - * @param string $error_msg - * @param integer $error_type - */ - public function trigger_error($error_msg, $error_type = E_USER_WARNING) - { - trigger_error("Smarty error: $error_msg", $error_type); - } - -} - -/** - * Smarty {php}{/php} block function - * - * @param array $params parameter list - * @param string $content contents of the block - * @param object $template template object - * @param boolean &$repeat repeat flag - * @return string content re-formatted - */ -function smarty_php_tag($params, $content, $template, &$repeat) -{ - eval($content); - return ''; -} - -?> \ No newline at end of file + + * @author Uwe Tews + * @author Rodney Rehm + * @package Smarty + */ +/** + * @ignore + */ +require_once(dirname(__FILE__) . '/Smarty.class.php'); + +/** + * Smarty Backward Compatability Wrapper Class + * + * @package Smarty + */ +class SmartyBC extends Smarty +{ + /** + * Smarty 2 BC + * + * @var string + */ + public $_version = self::SMARTY_VERSION; + + /** + * Initialize new SmartyBC object + * + * @param array $options options to set during initialization, e.g. array( 'forceCompile' => false ) + */ + public function __construct(array $options = array()) + { + parent::__construct($options); + // register {php} tag + $this->registerPlugin('block', 'php', 'smarty_php_tag'); + } + + /** + * wrapper for assign_by_ref + * + * @param string $tpl_var the template variable name + * @param mixed &$value the referenced value to assign + */ + public function assign_by_ref($tpl_var, &$value) + { + $this->assignByRef($tpl_var, $value); + } + + /** + * wrapper for append_by_ref + * + * @param string $tpl_var the template variable name + * @param mixed &$value the referenced value to append + * @param boolean $merge flag if array elements shall be merged + */ + public function append_by_ref($tpl_var, &$value, $merge = false) + { + $this->appendByRef($tpl_var, $value, $merge); + } + + /** + * clear the given assigned template variable. + * + * @param string $tpl_var the template variable to clear + */ + public function clear_assign($tpl_var) + { + $this->clearAssign($tpl_var); + } + + /** + * Registers custom function to be used in templates + * + * @param string $function the name of the template function + * @param string $function_impl the name of the PHP function to register + * @param bool $cacheable + * @param mixed $cache_attrs + */ + public function register_function($function, $function_impl, $cacheable = true, $cache_attrs = null) + { + $this->registerPlugin('function', $function, $function_impl, $cacheable, $cache_attrs); + } + + /** + * Unregisters custom function + * + * @param string $function name of template function + */ + public function unregister_function($function) + { + $this->unregisterPlugin('function', $function); + } + + /** + * Registers object to be used in templates + * + * @param string $object name of template object + * @param object $object_impl the referenced PHP object to register + * @param array $allowed list of allowed methods (empty = all) + * @param boolean $smarty_args smarty argument format, else traditional + * @param array $block_methods list of methods that are block format + * + * @throws SmartyException + * @internal param array $block_functs list of methods that are block format + */ + public function register_object($object, $object_impl, $allowed = array(), $smarty_args = true, $block_methods = array()) + { + settype($allowed, 'array'); + settype($smarty_args, 'boolean'); + $this->registerObject($object, $object_impl, $allowed, $smarty_args, $block_methods); + } + + /** + * Unregisters object + * + * @param string $object name of template object + */ + public function unregister_object($object) + { + $this->unregisterObject($object); + } + + /** + * Registers block function to be used in templates + * + * @param string $block name of template block + * @param string $block_impl PHP function to register + * @param bool $cacheable + * @param mixed $cache_attrs + */ + public function register_block($block, $block_impl, $cacheable = true, $cache_attrs = null) + { + $this->registerPlugin('block', $block, $block_impl, $cacheable, $cache_attrs); + } + + /** + * Unregisters block function + * + * @param string $block name of template function + */ + public function unregister_block($block) + { + $this->unregisterPlugin('block', $block); + } + + /** + * Registers compiler function + * + * @param string $function name of template function + * @param string $function_impl name of PHP function to register + * @param bool $cacheable + */ + public function register_compiler_function($function, $function_impl, $cacheable = true) + { + $this->registerPlugin('compiler', $function, $function_impl, $cacheable); + } + + /** + * Unregisters compiler function + * + * @param string $function name of template function + */ + public function unregister_compiler_function($function) + { + $this->unregisterPlugin('compiler', $function); + } + + /** + * Registers modifier to be used in templates + * + * @param string $modifier name of template modifier + * @param string $modifier_impl name of PHP function to register + */ + public function register_modifier($modifier, $modifier_impl) + { + $this->registerPlugin('modifier', $modifier, $modifier_impl); + } + + /** + * Unregisters modifier + * + * @param string $modifier name of template modifier + */ + public function unregister_modifier($modifier) + { + $this->unregisterPlugin('modifier', $modifier); + } + + /** + * Registers a resource to fetch a template + * + * @param string $type name of resource + * @param array $functions array of functions to handle resource + */ + public function register_resource($type, $functions) + { + $this->registerResource($type, $functions); + } + + /** + * Unregisters a resource + * + * @param string $type name of resource + */ + public function unregister_resource($type) + { + $this->unregisterResource($type); + } + + /** + * Registers a prefilter function to apply + * to a template before compiling + * + * @param callable $function + */ + public function register_prefilter($function) + { + $this->registerFilter('pre', $function); + } + + /** + * Unregisters a prefilter function + * + * @param callable $function + */ + public function unregister_prefilter($function) + { + $this->unregisterFilter('pre', $function); + } + + /** + * Registers a postfilter function to apply + * to a compiled template after compilation + * + * @param callable $function + */ + public function register_postfilter($function) + { + $this->registerFilter('post', $function); + } + + /** + * Unregisters a postfilter function + * + * @param callable $function + */ + public function unregister_postfilter($function) + { + $this->unregisterFilter('post', $function); + } + + /** + * Registers an output filter function to apply + * to a template output + * + * @param callable $function + */ + public function register_outputfilter($function) + { + $this->registerFilter('output', $function); + } + + /** + * Unregisters an outputfilter function + * + * @param callable $function + */ + public function unregister_outputfilter($function) + { + $this->unregisterFilter('output', $function); + } + + /** + * load a filter of specified type and name + * + * @param string $type filter type + * @param string $name filter name + */ + public function load_filter($type, $name) + { + $this->loadFilter($type, $name); + } + + /** + * clear cached content for the given template and cache id + * + * @param string $tpl_file name of template file + * @param string $cache_id name of cache_id + * @param string $compile_id name of compile_id + * @param string $exp_time expiration time + * + * @return boolean + */ + public function clear_cache($tpl_file = null, $cache_id = null, $compile_id = null, $exp_time = null) + { + return $this->clearCache($tpl_file, $cache_id, $compile_id, $exp_time); + } + + /** + * clear the entire contents of cache (all templates) + * + * @param string $exp_time expire time + * + * @return boolean + */ + public function clear_all_cache($exp_time = null) + { + return $this->clearCache(null, null, null, $exp_time); + } + + /** + * test to see if valid cache exists for this template + * + * @param string $tpl_file name of template file + * @param string $cache_id + * @param string $compile_id + * + * @return boolean + */ + public function is_cached($tpl_file, $cache_id = null, $compile_id = null) + { + return $this->isCached($tpl_file, $cache_id, $compile_id); + } + + /** + * clear all the assigned template variables. + */ + public function clear_all_assign() + { + $this->clearAllAssign(); + } + + /** + * clears compiled version of specified template resource, + * or all compiled template files if one is not specified. + * This function is for advanced use only, not normally needed. + * + * @param string $tpl_file + * @param string $compile_id + * @param string $exp_time + * + * @return boolean results of {@link smarty_core_rm_auto()} + */ + public function clear_compiled_tpl($tpl_file = null, $compile_id = null, $exp_time = null) + { + return $this->clearCompiledTemplate($tpl_file, $compile_id, $exp_time); + } + + /** + * Checks whether requested template exists. + * + * @param string $tpl_file + * + * @return boolean + */ + public function template_exists($tpl_file) + { + return $this->templateExists($tpl_file); + } + + /** + * Returns an array containing template variables + * + * @param string $name + * + * @return array + */ + public function get_template_vars($name = null) + { + return $this->getTemplateVars($name); + } + + /** + * Returns an array containing config variables + * + * @param string $name + * + * @return array + */ + public function get_config_vars($name = null) + { + return $this->getConfigVars($name); + } + + /** + * load configuration values + * + * @param string $file + * @param string $section + * @param string $scope + */ + public function config_load($file, $section = null, $scope = 'global') + { + $this->ConfigLoad($file, $section, $scope); + } + + /** + * return a reference to a registered object + * + * @param string $name + * + * @return object + */ + public function get_registered_object($name) + { + return $this->getRegisteredObject($name); + } + + /** + * clear configuration values + * + * @param string $var + */ + public function clear_config($var = null) + { + $this->clearConfig($var); + } + + /** + * trigger Smarty error + * + * @param string $error_msg + * @param integer $error_type + */ + public function trigger_error($error_msg, $error_type = E_USER_WARNING) + { + trigger_error("Smarty error: $error_msg", $error_type); + } +} + +/** + * Smarty {php}{/php} block function + * + * @param array $params parameter list + * @param string $content contents of the block + * @param object $template template object + * @param boolean &$repeat repeat flag + * + * @return string content re-formatted + */ +function smarty_php_tag($params, $content, $template, &$repeat) +{ + eval($content); + + return ''; +} diff --git a/code/web/private_php/ams/smarty/libs/debug.tpl b/code/web/private_php/ams/smarty/libs/debug.tpl index 12eef0ffd..61b8876a4 100644 --- a/code/web/private_php/ams/smarty/libs/debug.tpl +++ b/code/web/private_php/ams/smarty/libs/debug.tpl @@ -1,133 +1,137 @@ {capture name='_smarty_debug' assign=debug_output} - - - - Smarty Debug Console - - - - -

    Smarty Debug Console - {if isset($template_name)}{$template_name|debug_print_var nofilter}{else}Total Time {$execution_time|string_format:"%.5f"}{/if}

    - -{if !empty($template_data)} -

    included templates & config files (load time in seconds)

    - -
    -{foreach $template_data as $template} - {$template.name} - - (compile {$template['compile_time']|string_format:"%.5f"}) (render {$template['render_time']|string_format:"%.5f"}) (cache {$template['cache_time']|string_format:"%.5f"}) + + + + Smarty Debug Console + + + + +

    Smarty Debug Console + - {if isset($template_name)}{$template_name|debug_print_var nofilter}{else}Total Time {$execution_time|string_format:"%.5f"}{/if}

    + + {if !empty($template_data)} +

    included templates & config files (load time in seconds)

    +
    + {foreach $template_data as $template} + {$template.name} + + (compile {$template['compile_time']|string_format:"%.5f"}) (render {$template['render_time']|string_format:"%.5f"}) (cache {$template['cache_time']|string_format:"%.5f"} + ) -
    -{/foreach} -
    -{/if} - -

    assigned template variables

    - - - {foreach $assigned_vars as $vars} - - - - {/foreach} -
    ${$vars@key|escape:'html'}{$vars|debug_print_var nofilter}
    - -

    assigned config file variables (outer template scope)

    - - - {foreach $config_vars as $vars} - - - - {/foreach} - -
    {$vars@key|escape:'html'}{$vars|debug_print_var nofilter}
    - - +
    + {/foreach} +
    + {/if} + +

    assigned template variables

    + + + {foreach $assigned_vars as $vars} + + + + + {/foreach} +
    ${$vars@key|escape:'html'}{$vars|debug_print_var nofilter}
    + +

    assigned config file variables (outer template scope)

    + + + {foreach $config_vars as $vars} + + + + + {/foreach} + +
    {$vars@key|escape:'html'}{$vars|debug_print_var nofilter}
    + + {/capture} diff --git a/code/web/private_php/ams/smarty/libs/plugins/block.textformat.php b/code/web/private_php/ams/smarty/libs/plugins/block.textformat.php index b22b104a5..abf544939 100644 --- a/code/web/private_php/ams/smarty/libs/plugins/block.textformat.php +++ b/code/web/private_php/ams/smarty/libs/plugins/block.textformat.php @@ -2,13 +2,12 @@ /** * Smarty plugin to format text blocks * - * @package Smarty + * @package Smarty * @subpackage PluginsBlock */ /** * Smarty {textformat}{/textformat} block plugin - * * Type: block function
    * Name: textformat
    * Purpose: format text a certain way with preset styles @@ -23,12 +22,14 @@ * - wrap_boundary - boolean (true) * * - * @link http://www.smarty.net/manual/en/language.function.textformat.php {textformat} - * (Smarty online manual) + * @link http://www.smarty.net/manual/en/language.function.textformat.php {textformat} + * (Smarty online manual) + * * @param array $params parameters * @param string $content contents of the block * @param Smarty_Internal_Template $template template object * @param boolean &$repeat repeat flag + * * @return string content re-formatted * @author Monte Ohrt */ @@ -53,17 +54,17 @@ function smarty_block_textformat($params, $content, $template, &$repeat) case 'indent_char': case 'wrap_char': case 'assign': - $$_key = (string)$_val; + $$_key = (string) $_val; break; case 'indent': case 'indent_first': case 'wrap': - $$_key = (int)$_val; + $$_key = (int) $_val; break; case 'wrap_cut': - $$_key = (bool)$_val; + $$_key = (bool) $_val; break; default: @@ -76,8 +77,6 @@ function smarty_block_textformat($params, $content, $template, &$repeat) } // split into paragraphs $_paragraphs = preg_split('![\r\n]{2}!', $content); - $_output = ''; - foreach ($_paragraphs as &$_paragraph) { if (!$_paragraph) { @@ -102,12 +101,10 @@ function smarty_block_textformat($params, $content, $template, &$repeat) } } $_output = implode($wrap_char . $wrap_char, $_paragraphs); - + if ($assign) { $template->assign($assign, $_output); } else { return $_output; } } - -?> \ No newline at end of file diff --git a/code/web/private_php/ams/smarty/libs/plugins/function.counter.php b/code/web/private_php/ams/smarty/libs/plugins/function.counter.php index 3906badf0..4da85a14e 100644 --- a/code/web/private_php/ams/smarty/libs/plugins/function.counter.php +++ b/code/web/private_php/ams/smarty/libs/plugins/function.counter.php @@ -1,22 +1,24 @@ * Name: counter
    * Purpose: print out a counter value * * @author Monte Ohrt - * @link http://www.smarty.net/manual/en/language.function.counter.php {counter} - * (Smarty online manual) + * @link http://www.smarty.net/manual/en/language.function.counter.php {counter} + * (Smarty online manual) + * * @param array $params parameters * @param Smarty_Internal_Template $template template object + * * @return string|null */ function smarty_function_counter($params, $template) @@ -26,16 +28,16 @@ function smarty_function_counter($params, $template) $name = (isset($params['name'])) ? $params['name'] : 'default'; if (!isset($counters[$name])) { $counters[$name] = array( - 'start'=>1, - 'skip'=>1, - 'direction'=>'up', - 'count'=>1 - ); + 'start' => 1, + 'skip' => 1, + 'direction' => 'up', + 'count' => 1 + ); } $counter =& $counters[$name]; if (isset($params['start'])) { - $counter['start'] = $counter['count'] = (int)$params['start']; + $counter['start'] = $counter['count'] = (int) $params['start']; } if (!empty($params['assign'])) { @@ -45,9 +47,9 @@ function smarty_function_counter($params, $template) if (isset($counter['assign'])) { $template->assign($counter['assign'], $counter['count']); } - + if (isset($params['print'])) { - $print = (bool)$params['print']; + $print = (bool) $params['print']; } else { $print = empty($counter['assign']); } @@ -61,18 +63,16 @@ function smarty_function_counter($params, $template) if (isset($params['skip'])) { $counter['skip'] = $params['skip']; } - + if (isset($params['direction'])) { $counter['direction'] = $params['direction']; } - if ($counter['direction'] == "down") + if ($counter['direction'] == "down") { $counter['count'] -= $counter['skip']; - else + } else { $counter['count'] += $counter['skip']; - + } + return $retval; - } - -?> \ No newline at end of file diff --git a/code/web/private_php/ams/smarty/libs/plugins/function.cycle.php b/code/web/private_php/ams/smarty/libs/plugins/function.cycle.php index 1778ffb53..8dc5cd9d5 100644 --- a/code/web/private_php/ams/smarty/libs/plugins/function.cycle.php +++ b/code/web/private_php/ams/smarty/libs/plugins/function.cycle.php @@ -2,13 +2,12 @@ /** * Smarty plugin * - * @package Smarty + * @package Smarty * @subpackage PluginsFunction */ /** * Smarty {cycle} function plugin - * * Type: function
    * Name: cycle
    * Date: May 3, 2002
    @@ -31,15 +30,17 @@ * {cycle name=row} * * - * @link http://www.smarty.net/manual/en/language.function.cycle.php {cycle} - * (Smarty online manual) - * @author Monte Ohrt - * @author credit to Mark Priatel - * @author credit to Gerard - * @author credit to Jason Sweat + * @link http://www.smarty.net/manual/en/language.function.cycle.php {cycle} + * (Smarty online manual) + * @author Monte Ohrt + * @author credit to Mark Priatel + * @author credit to Gerard + * @author credit to Jason Sweat * @version 1.3 + * * @param array $params parameters * @param Smarty_Internal_Template $template template object + * * @return string|null */ @@ -48,18 +49,20 @@ function smarty_function_cycle($params, $template) static $cycle_vars; $name = (empty($params['name'])) ? 'default' : $params['name']; - $print = (isset($params['print'])) ? (bool)$params['print'] : true; - $advance = (isset($params['advance'])) ? (bool)$params['advance'] : true; - $reset = (isset($params['reset'])) ? (bool)$params['reset'] : false; + $print = (isset($params['print'])) ? (bool) $params['print'] : true; + $advance = (isset($params['advance'])) ? (bool) $params['advance'] : true; + $reset = (isset($params['reset'])) ? (bool) $params['reset'] : false; if (!isset($params['values'])) { - if(!isset($cycle_vars[$name]['values'])) { + if (!isset($cycle_vars[$name]['values'])) { trigger_error("cycle: missing 'values' parameter"); + return; } } else { - if(isset($cycle_vars[$name]['values']) - && $cycle_vars[$name]['values'] != $params['values'] ) { + if (isset($cycle_vars[$name]['values']) + && $cycle_vars[$name]['values'] != $params['values'] + ) { $cycle_vars[$name]['index'] = 0; } $cycle_vars[$name]['values'] = $params['values']; @@ -71,13 +74,13 @@ function smarty_function_cycle($params, $template) $cycle_vars[$name]['delimiter'] = ','; } - if(is_array($cycle_vars[$name]['values'])) { + if (is_array($cycle_vars[$name]['values'])) { $cycle_array = $cycle_vars[$name]['values']; } else { - $cycle_array = explode($cycle_vars[$name]['delimiter'],$cycle_vars[$name]['values']); + $cycle_array = explode($cycle_vars[$name]['delimiter'], $cycle_vars[$name]['values']); } - if(!isset($cycle_vars[$name]['index']) || $reset ) { + if (!isset($cycle_vars[$name]['index']) || $reset) { $cycle_vars[$name]['index'] = 0; } @@ -86,21 +89,19 @@ function smarty_function_cycle($params, $template) $template->assign($params['assign'], $cycle_array[$cycle_vars[$name]['index']]); } - if($print) { + if ($print) { $retval = $cycle_array[$cycle_vars[$name]['index']]; } else { $retval = null; } - if($advance) { - if ( $cycle_vars[$name]['index'] >= count($cycle_array) -1 ) { + if ($advance) { + if ($cycle_vars[$name]['index'] >= count($cycle_array) - 1) { $cycle_vars[$name]['index'] = 0; } else { - $cycle_vars[$name]['index']++; + $cycle_vars[$name]['index'] ++; } } return $retval; } - -?> \ No newline at end of file diff --git a/code/web/private_php/ams/smarty/libs/plugins/function.fetch.php b/code/web/private_php/ams/smarty/libs/plugins/function.fetch.php index eca1182d5..3506d4a8d 100644 --- a/code/web/private_php/ams/smarty/libs/plugins/function.fetch.php +++ b/code/web/private_php/ams/smarty/libs/plugins/function.fetch.php @@ -2,50 +2,53 @@ /** * Smarty plugin * - * @package Smarty + * @package Smarty * @subpackage PluginsFunction */ /** * Smarty {fetch} plugin - * * Type: function
    * Name: fetch
    * Purpose: fetch file, web or ftp data and display results * - * @link http://www.smarty.net/manual/en/language.function.fetch.php {fetch} - * (Smarty online manual) + * @link http://www.smarty.net/manual/en/language.function.fetch.php {fetch} + * (Smarty online manual) * @author Monte Ohrt + * * @param array $params parameters * @param Smarty_Internal_Template $template template object + * + * @throws SmartyException * @return string|null if the assign parameter is passed, Smarty assigns the result to a template variable */ function smarty_function_fetch($params, $template) { if (empty($params['file'])) { - trigger_error("[plugin] fetch parameter 'file' cannot be empty",E_USER_NOTICE); + trigger_error("[plugin] fetch parameter 'file' cannot be empty", E_USER_NOTICE); + return; } - + // strip file protocol if (stripos($params['file'], 'file://') === 0) { $params['file'] = substr($params['file'], 7); } - + $protocol = strpos($params['file'], '://'); if ($protocol !== false) { $protocol = strtolower(substr($params['file'], 0, $protocol)); } - + if (isset($template->smarty->security_policy)) { if ($protocol) { // remote resource (or php stream, …) - if(!$template->smarty->security_policy->isTrustedUri($params['file'])) { + if (!$template->smarty->security_policy->isTrustedUri($params['file'])) { return; } } else { // local file - if(!$template->smarty->security_policy->isTrustedResourceDir($params['file'])) { + if (!$template->smarty->security_policy->isTrustedResourceDir($params['file'])) { return; } } @@ -54,53 +57,54 @@ function smarty_function_fetch($params, $template) $content = ''; if ($protocol == 'http') { // http fetch - if($uri_parts = parse_url($params['file'])) { + if ($uri_parts = parse_url($params['file'])) { // set defaults $host = $server_name = $uri_parts['host']; $timeout = 30; $accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*"; - $agent = "Smarty Template Engine ". Smarty::SMARTY_VERSION; + $agent = "Smarty Template Engine " . Smarty::SMARTY_VERSION; $referer = ""; $uri = !empty($uri_parts['path']) ? $uri_parts['path'] : '/'; $uri .= !empty($uri_parts['query']) ? '?' . $uri_parts['query'] : ''; $_is_proxy = false; - if(empty($uri_parts['port'])) { + if (empty($uri_parts['port'])) { $port = 80; } else { $port = $uri_parts['port']; } - if(!empty($uri_parts['user'])) { + if (!empty($uri_parts['user'])) { $user = $uri_parts['user']; } - if(!empty($uri_parts['pass'])) { + if (!empty($uri_parts['pass'])) { $pass = $uri_parts['pass']; } // loop through parameters, setup headers - foreach($params as $param_key => $param_value) { - switch($param_key) { + foreach ($params as $param_key => $param_value) { + switch ($param_key) { case "file": case "assign": case "assign_headers": break; case "user": - if(!empty($param_value)) { + if (!empty($param_value)) { $user = $param_value; } break; case "pass": - if(!empty($param_value)) { + if (!empty($param_value)) { $pass = $param_value; } break; case "accept": - if(!empty($param_value)) { + if (!empty($param_value)) { $accept = $param_value; } break; case "header": - if(!empty($param_value)) { - if(!preg_match('![\w\d-]+: .+!',$param_value)) { - trigger_error("[plugin] invalid header format '".$param_value."'",E_USER_NOTICE); + if (!empty($param_value)) { + if (!preg_match('![\w\d-]+: .+!', $param_value)) { + trigger_error("[plugin] invalid header format '" . $param_value . "'", E_USER_NOTICE); + return; } else { $extra_headers[] = $param_value; @@ -108,99 +112,104 @@ function smarty_function_fetch($params, $template) } break; case "proxy_host": - if(!empty($param_value)) { + if (!empty($param_value)) { $proxy_host = $param_value; } break; case "proxy_port": - if(!preg_match('!\D!', $param_value)) { + if (!preg_match('!\D!', $param_value)) { $proxy_port = (int) $param_value; } else { - trigger_error("[plugin] invalid value for attribute '".$param_key."'",E_USER_NOTICE); + trigger_error("[plugin] invalid value for attribute '" . $param_key . "'", E_USER_NOTICE); + return; } break; case "agent": - if(!empty($param_value)) { + if (!empty($param_value)) { $agent = $param_value; } break; case "referer": - if(!empty($param_value)) { + if (!empty($param_value)) { $referer = $param_value; } break; case "timeout": - if(!preg_match('!\D!', $param_value)) { + if (!preg_match('!\D!', $param_value)) { $timeout = (int) $param_value; } else { - trigger_error("[plugin] invalid value for attribute '".$param_key."'",E_USER_NOTICE); + trigger_error("[plugin] invalid value for attribute '" . $param_key . "'", E_USER_NOTICE); + return; } break; default: - trigger_error("[plugin] unrecognized attribute '".$param_key."'",E_USER_NOTICE); + trigger_error("[plugin] unrecognized attribute '" . $param_key . "'", E_USER_NOTICE); + return; } } - if(!empty($proxy_host) && !empty($proxy_port)) { + if (!empty($proxy_host) && !empty($proxy_port)) { $_is_proxy = true; - $fp = fsockopen($proxy_host,$proxy_port,$errno,$errstr,$timeout); + $fp = fsockopen($proxy_host, $proxy_port, $errno, $errstr, $timeout); } else { - $fp = fsockopen($server_name,$port,$errno,$errstr,$timeout); + $fp = fsockopen($server_name, $port, $errno, $errstr, $timeout); } - if(!$fp) { - trigger_error("[plugin] unable to fetch: $errstr ($errno)",E_USER_NOTICE); + if (!$fp) { + trigger_error("[plugin] unable to fetch: $errstr ($errno)", E_USER_NOTICE); + return; } else { - if($_is_proxy) { + if ($_is_proxy) { fputs($fp, 'GET ' . $params['file'] . " HTTP/1.0\r\n"); } else { fputs($fp, "GET $uri HTTP/1.0\r\n"); } - if(!empty($host)) { + if (!empty($host)) { fputs($fp, "Host: $host\r\n"); } - if(!empty($accept)) { + if (!empty($accept)) { fputs($fp, "Accept: $accept\r\n"); } - if(!empty($agent)) { + if (!empty($agent)) { fputs($fp, "User-Agent: $agent\r\n"); } - if(!empty($referer)) { + if (!empty($referer)) { fputs($fp, "Referer: $referer\r\n"); } - if(isset($extra_headers) && is_array($extra_headers)) { - foreach($extra_headers as $curr_header) { - fputs($fp, $curr_header."\r\n"); + if (isset($extra_headers) && is_array($extra_headers)) { + foreach ($extra_headers as $curr_header) { + fputs($fp, $curr_header . "\r\n"); } } - if(!empty($user) && !empty($pass)) { - fputs($fp, "Authorization: BASIC ".base64_encode("$user:$pass")."\r\n"); + if (!empty($user) && !empty($pass)) { + fputs($fp, "Authorization: BASIC " . base64_encode("$user:$pass") . "\r\n"); } fputs($fp, "\r\n"); - while(!feof($fp)) { - $content .= fgets($fp,4096); + while (!feof($fp)) { + $content .= fgets($fp, 4096); } fclose($fp); - $csplit = preg_split("!\r\n\r\n!",$content,2); + $csplit = preg_split("!\r\n\r\n!", $content, 2); $content = $csplit[1]; - if(!empty($params['assign_headers'])) { - $template->assign($params['assign_headers'],preg_split("!\r\n!",$csplit[0])); + if (!empty($params['assign_headers'])) { + $template->assign($params['assign_headers'], preg_split("!\r\n!", $csplit[0])); } } } else { - trigger_error("[plugin fetch] unable to parse URL, check syntax",E_USER_NOTICE); + trigger_error("[plugin fetch] unable to parse URL, check syntax", E_USER_NOTICE); + return; } } else { $content = @file_get_contents($params['file']); if ($content === false) { - throw new SmartyException("{fetch} cannot read resource '" . $params['file'] ."'"); + throw new SmartyException("{fetch} cannot read resource '" . $params['file'] . "'"); } } @@ -210,5 +219,3 @@ function smarty_function_fetch($params, $template) return $content; } } - -?> \ No newline at end of file diff --git a/code/web/private_php/ams/smarty/libs/plugins/function.html_checkboxes.php b/code/web/private_php/ams/smarty/libs/plugins/function.html_checkboxes.php index 1866bc2f3..d78680368 100644 --- a/code/web/private_php/ams/smarty/libs/plugins/function.html_checkboxes.php +++ b/code/web/private_php/ams/smarty/libs/plugins/function.html_checkboxes.php @@ -2,13 +2,12 @@ /** * Smarty plugin * - * @package Smarty + * @package Smarty * @subpackage PluginsFunction */ /** * Smarty {html_checkboxes} function plugin - * * File: function.html_checkboxes.php
    * Type: function
    * Name: html_checkboxes
    @@ -32,15 +31,17 @@ * - escape (optional) - escape the content (not value), defaults to true * * - * @link http://www.smarty.net/manual/en/language.function.html.checkboxes.php {html_checkboxes} - * (Smarty online manual) + * @link http://www.smarty.net/manual/en/language.function.html.checkboxes.php {html_checkboxes} + * (Smarty online manual) * @author Christopher Kvarme - * @author credits to Monte Ohrt + * @author credits to Monte Ohrt * @version 1.0 - * @param array $params parameters + * + * @param array $params parameters * @param object $template template object + * * @return string - * @uses smarty_function_escape_special_chars() + * @uses smarty_function_escape_special_chars() */ function smarty_function_html_checkboxes($params, $template) { @@ -58,8 +59,8 @@ function smarty_function_html_checkboxes($params, $template) $extra = ''; - foreach($params as $_key => $_val) { - switch($_key) { + foreach ($params as $_key => $_val) { + switch ($_key) { case 'name': case 'separator': $$_key = (string) $_val; @@ -89,7 +90,7 @@ function smarty_function_html_checkboxes($params, $template) if (method_exists($_sel, "__toString")) { $_sel = smarty_function_escape_special_chars((string) $_sel->__toString()); } else { - trigger_error("html_checkboxes: selected attribute contains an object of class '". get_class($_sel) ."' without __toString() method", E_USER_NOTICE); + trigger_error("html_checkboxes: selected attribute contains an object of class '" . get_class($_sel) . "' without __toString() method", E_USER_NOTICE); continue; } } else { @@ -101,7 +102,7 @@ function smarty_function_html_checkboxes($params, $template) if (method_exists($_val, "__toString")) { $selected = smarty_function_escape_special_chars((string) $_val->__toString()); } else { - trigger_error("html_checkboxes: selected attribute is an object of class '". get_class($_val) ."' without __toString() method", E_USER_NOTICE); + trigger_error("html_checkboxes: selected attribute is an object of class '" . get_class($_val) . "' without __toString() method", E_USER_NOTICE); } } else { $selected = smarty_function_escape_special_chars((string) $_val); @@ -116,7 +117,8 @@ function smarty_function_html_checkboxes($params, $template) case 'assign': break; - case 'strict': break; + case 'strict': + break; case 'disabled': case 'readonly': @@ -131,11 +133,11 @@ function smarty_function_html_checkboxes($params, $template) break; } - // omit break; to fall through! + // omit break; to fall through! default: - if(!is_array($_val)) { - $extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"'; + if (!is_array($_val)) { + $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"'; } else { trigger_error("html_checkboxes: extra attribute '$_key' cannot be an array", E_USER_NOTICE); } @@ -143,76 +145,79 @@ function smarty_function_html_checkboxes($params, $template) } } - if (!isset($options) && !isset($values)) - return ''; /* raise error here? */ + if (!isset($options) && !isset($values)) { + return ''; + } /* raise error here? */ $_html_result = array(); if (isset($options)) { - foreach ($options as $_key=>$_val) { + foreach ($options as $_key => $_val) { $_html_result[] = smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels, $label_ids, $escape); } } else { - foreach ($values as $_i=>$_key) { + foreach ($values as $_i => $_key) { $_val = isset($output[$_i]) ? $output[$_i] : ''; $_html_result[] = smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels, $label_ids, $escape); } } - if(!empty($params['assign'])) { + if (!empty($params['assign'])) { $template->assign($params['assign'], $_html_result); } else { return implode("\n", $_html_result); } - } -function smarty_function_html_checkboxes_output($name, $value, $output, $selected, $extra, $separator, $labels, $label_ids, $escape=true) { +function smarty_function_html_checkboxes_output($name, $value, $output, $selected, $extra, $separator, $labels, $label_ids, $escape = true) +{ $_output = ''; - + if (is_object($value)) { if (method_exists($value, "__toString")) { $value = (string) $value->__toString(); } else { - trigger_error("html_options: value is an object of class '". get_class($value) ."' without __toString() method", E_USER_NOTICE); + trigger_error("html_options: value is an object of class '" . get_class($value) . "' without __toString() method", E_USER_NOTICE); + return ''; } } else { $value = (string) $value; } - + if (is_object($output)) { if (method_exists($output, "__toString")) { $output = (string) $output->__toString(); } else { - trigger_error("html_options: output is an object of class '". get_class($output) ."' without __toString() method", E_USER_NOTICE); + trigger_error("html_options: output is an object of class '" . get_class($output) . "' without __toString() method", E_USER_NOTICE); + return ''; } } else { $output = (string) $output; } - + if ($labels) { if ($label_ids) { $_id = smarty_function_escape_special_chars(preg_replace('![^\w\-\.]!' . Smarty::$_UTF8_MODIFIER, '_', $name . '_' . $value)); $_output .= '