diff --git a/code/nel/tools/build_gamedata/0_setup.py b/code/nel/tools/build_gamedata/0_setup.py
index 9aa00a685..d921d03f4 100644
--- a/code/nel/tools/build_gamedata/0_setup.py
+++ b/code/nel/tools/build_gamedata/0_setup.py
@@ -31,9 +31,105 @@ if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
-from buildsite import *
+try:
+ from buildsite import *
+except ImportError:
+ printLog(log, "*** FIRST RUN ***")
from tools import *
+try:
+ BuildQuality
+except NameError:
+ BuildQuality = 1
+try:
+ ToolDirectories
+except NameError:
+ ToolDirectories = [ 'R:/code/nel', 'R:/code/ryzom/tools' ]
+try:
+ ToolSuffix
+except NameError:
+ ToolSuffix = "_r.exe"
+try:
+ ScriptDirectory
+except NameError:
+ ScriptDirectory = "R:/code/nel/tools/build_gamedata"
+try:
+ WorkspaceDirectory
+except NameError:
+ WorkspaceDirectory = "R:/code/ryzom/tools/build_gamedata/workspace"
+try:
+ DatabaseDirectory
+except NameError:
+ DatabaseDirectory = "W:/database"
+try:
+ ExportBuildDirectory
+except NameError:
+ ExportBuildDirectory = "W:/export"
+try:
+ InstallDirectory
+except NameError:
+ InstallDirectory = "W:/install"
+try:
+ DataShardDirectory
+except NameError:
+ DataShardDirectory = "R:/code/ryzom/server/data_shard"
+try:
+ ClientDevDirectory
+except NameError:
+ ClientDevDirectory = "W:/client_dev"
+try:
+ ClientPatchDirectory
+except NameError:
+ ClientPatchDirectory = "W:/client_patch"
+try:
+ ClientInstallDirectory
+except NameError:
+ ClientInstallDirectory = "W:/client_install"
+try:
+ LeveldesignDirectory
+except NameError:
+ LeveldesignDirectory = "L:/leveldesign"
+try:
+ LeveldesignDfnDirectory
+except NameError:
+ LeveldesignDfnDirectory = "L:/leveldesign/dfn"
+try:
+ LeveldesignWorldDirectory
+except NameError:
+ LeveldesignWorldDirectory = "L:/leveldesign/world"
+try:
+ PrimitivesDirectory
+except NameError:
+ PrimitivesDirectory = "L:/primitives"
+try:
+ GamedevDirectory
+except NameError:
+ GamedevDirectory = "R:/code/ryzom/client/data/gamedev"
+try:
+ DataCommonDirectory
+except NameError:
+ DataCommonDirectory = "R:/code/ryzom/common/data_common"
+try:
+ WindowsExeDllCfgDirectories
+except NameError:
+ WindowsExeDllCfgDirectories = [ 'C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/redist/x86', 'D:/source/external_local/bin/x86', 'D:/source/external_shared/bin/x86', 'R:/code/nel/lib', 'R:/code/ryzom/bin', 'R:/code/ryzom/client', 'R:/code/ryzom/tools/client/client_config/bin' ]
+try:
+ MaxAvailable
+except NameError:
+ MaxAvailable = 1
+try:
+ MaxDirectory
+except NameError:
+ MaxDirectory = "C:/Program Files (x86)/Autodesk/3ds Max 2010"
+try:
+ MaxUserDirectory
+except NameError:
+ MaxUserDirectory = "C:/Users/Kaetemi/AppData/Local/Autodesk/3dsMax/2010 - 32bit/enu"
+try:
+ MaxExecutable
+except NameError:
+ MaxExecutable = "3dsmax.exe"
+
printLog(log, "")
printLog(log, "-------")
printLog(log, "--- Setup build site")
@@ -52,10 +148,24 @@ ScriptDirectory = askVar(log, "Script Directory", os.getcwd().replace("\\", "/")
WorkspaceDirectory = askVar(log, "Workspace Directory", WorkspaceDirectory).replace("\\", "/")
DatabaseDirectory = askVar(log, "Database Directory", DatabaseDirectory).replace("\\", "/")
ExportBuildDirectory = askVar(log, "Export Build Directory", ExportBuildDirectory).replace("\\", "/")
-ClientDataDirectory = askVar(log, "Client Data Directory", ClientDataDirectory).replace("\\", "/")
+InstallDirectory = askVar(log, "Install Directory", InstallDirectory).replace("\\", "/")
+DataShardDirectory = askVar(log, "Data Shard Directory", DataShardDirectory).replace("\\", "/")
+ClientDevDirectory = askVar(log, "Client Dev Directory", ClientDevDirectory).replace("\\", "/")
+ClientPatchDirectory = askVar(log, "Client Patch Directory", ClientPatchDirectory).replace("\\", "/")
+ClientInstallDirectory = askVar(log, "Client Install Directory", ClientInstallDirectory).replace("\\", "/")
LeveldesignDirectory = askVar(log, "Leveldesign Directory", LeveldesignDirectory).replace("\\", "/")
LeveldesignDfnDirectory = askVar(log, "Leveldesign DFN Directory", LeveldesignDfnDirectory).replace("\\", "/")
LeveldesignWorldDirectory = askVar(log, "Leveldesign World Directory", LeveldesignWorldDirectory).replace("\\", "/")
+PrimitivesDirectory = askVar(log, "Primitives Directory", PrimitivesDirectory).replace("\\", "/")
+GamedevDirectory = askVar(log, "Gamedev Directory", GamedevDirectory).replace("\\", "/")
+DataCommonDirectory = askVar(log, "Data Common Directory", DataCommonDirectory).replace("\\", "/")
+WindowsExeDllCfgDirectories[0] = askVar(log, "Primary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[0]).replace("\\", "/")
+WindowsExeDllCfgDirectories[1] = askVar(log, "Secondary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[1]).replace("\\", "/")
+WindowsExeDllCfgDirectories[2] = askVar(log, "Tertiary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[2]).replace("\\", "/")
+WindowsExeDllCfgDirectories[3] = askVar(log, "Quaternary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[3]).replace("\\", "/")
+WindowsExeDllCfgDirectories[4] = askVar(log, "Quinary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[4]).replace("\\", "/")
+WindowsExeDllCfgDirectories[5] = askVar(log, "Senary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[5]).replace("\\", "/")
+WindowsExeDllCfgDirectories[6] = askVar(log, "Septenary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[6]).replace("\\", "/")
MaxAvailable = int(askVar(log, "3dsMax Available", str(MaxAvailable)))
if MaxAvailable:
MaxDirectory = askVar(log, "3dsMax Directory", MaxDirectory).replace("\\", "/")
@@ -111,8 +221,12 @@ sf.write("# Data build directories\n")
sf.write("DatabaseDirectory = \"" + str(DatabaseDirectory) + "\"\n")
sf.write("ExportBuildDirectory = \"" + str(ExportBuildDirectory) + "\"\n")
sf.write("\n")
-sf.write("# Client data install directory (client/data)\n")
-sf.write("ClientDataDirectory = \"" + str(ClientDataDirectory) + "\"\n")
+sf.write("# Install directories\n")
+sf.write("InstallDirectory = \"" + str(InstallDirectory) + "\"\n")
+sf.write("DataShardDirectory = \"" + str(DataShardDirectory) + "\"\n")
+sf.write("ClientDevDirectory = \"" + str(ClientDevDirectory) + "\"\n")
+sf.write("ClientPatchDirectory = \"" + str(ClientPatchDirectory) + "\"\n")
+sf.write("ClientInstallDirectory = \"" + str(ClientInstallDirectory) + "\"\n")
sf.write("\n")
sf.write("# TODO: NETWORK RECONNECT NOT IMPLEMENTED :)\n")
sf.write("\n")
@@ -120,6 +234,12 @@ sf.write("# Leveldesign directories\n")
sf.write("LeveldesignDirectory = \"" + str(LeveldesignDirectory) + "\"\n")
sf.write("LeveldesignDfnDirectory = \"" + str(LeveldesignDfnDirectory) + "\"\n")
sf.write("LeveldesignWorldDirectory = \"" + str(LeveldesignWorldDirectory) + "\"\n")
+sf.write("PrimitivesDirectory = \"" + str(PrimitivesDirectory) + "\"\n")
+sf.write("\n")
+sf.write("# Misc data directories\n")
+sf.write("GamedevDirectory = \"" + str(GamedevDirectory) + "\"\n")
+sf.write("DataCommonDirectory = \"" + str(DataCommonDirectory) + "\"\n")
+sf.write("WindowsExeDllCfgDirectories = " + str(WindowsExeDllCfgDirectories) + "\n")
sf.write("\n")
sf.write("# 3dsMax directives\n")
sf.write("MaxAvailable = " + str(MaxAvailable) + "\n")
diff --git a/code/nel/tools/build_gamedata/4_data_shard.py b/code/nel/tools/build_gamedata/4_data_shard.py
new file mode 100644
index 000000000..d138242c6
--- /dev/null
+++ b/code/nel/tools/build_gamedata/4_data_shard.py
@@ -0,0 +1,64 @@
+#!/usr/bin/python
+#
+# \file 4_data_shard.py
+# \brief Install to data shard
+# \date 2009-02-18 16:19GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Install to data shard
+#
+# NeL - 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 .
+#
+
+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 to data shard")
+printLog(log, "-------")
+printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
+printLog(log, "")
+
+for dir in InstallShardDataDirectories:
+ printLog(log, "SHARD DIRECTORY " + dir)
+ mkPath(log, InstallDirectory + "/" + dir)
+ mkPath(log, DataShardDirectory + "/" + dir)
+ copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + dir, DataShardDirectory + "/" + dir)
+for dir in InstallShardDataCollisionsDirectories:
+ printLog(log, "SHARD COLLISIONS " + dir)
+ mkPath(log, InstallDirectory + "/" + dir)
+ mkPath(log, DataShardDirectory + "/collisions/" + dir)
+ copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + dir, DataShardDirectory + "/collisions/" + dir)
+printLog(log, "")
+
+log.close()
+if os.path.isfile("4_data_shard.log"):
+ os.remove("4_data_shard.log")
+shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_data_shard.log")
+shutil.move("log.log", "4_data_shard.log")
diff --git a/code/nel/tools/build_gamedata/5_client_dev.py b/code/nel/tools/build_gamedata/5_client_dev.py
new file mode 100644
index 000000000..d807ebf38
--- /dev/null
+++ b/code/nel/tools/build_gamedata/5_client_dev.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python
+#
+# \file 5_client_dev.py
+# \brief Install to client dev
+# \date 2009-02-18 16:19GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Install to client dev
+#
+# NeL - 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 .
+#
+
+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 to client dev")
+printLog(log, "-------")
+printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
+printLog(log, "")
+
+if not os.path.isfile(ClientDevDirectory + "/client.cfg"):
+ printLog(log, ">>> Generate client.cfg <<<")
+ cfg = open(ClientDevDirectory + "/client.cfg", "w")
+ cfg.write("RootConfigFilename = \"client_default.cfg\";\n")
+ cfg.write("PreDataPath = {\n")
+ cfg.write("\t\"W:/install\", \"user\", \"patch\", \"data\", \"examples\" \n")
+ cfg.write("};\n")
+ printLog(log, "")
+
+printLog(log, ">>> Install data <<<")
+for category in InstallClientData:
+ if (category["UnpackTo"] != None):
+ printLog(log, "CATEGORY " + category["Name"])
+ targetPath = ClientDevDirectory
+ if (category["UnpackTo"] != ""):
+ targetPath += "/" + category["UnpackTo"]
+ mkPath(log, targetPath)
+ for package in category["Packages"]:
+ printLog(log, "PACKAGE " + package[0])
+ mkPath(log, InstallDirectory + "/" + package[0])
+ copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + package[0], targetPath)
+printLog(log, "")
+
+log.close()
+if os.path.isfile("5_client_dev.log"):
+ os.remove("5_client_dev.log")
+shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_client_dev.log")
+shutil.move("log.log", "5_client_dev.log")
diff --git a/code/nel/tools/build_gamedata/6_client_patch.py b/code/nel/tools/build_gamedata/6_client_patch.py
new file mode 100644
index 000000000..7689cc404
--- /dev/null
+++ b/code/nel/tools/build_gamedata/6_client_patch.py
@@ -0,0 +1,149 @@
+#!/usr/bin/python
+#
+# \file 6_client_patch.py
+# \brief Install to client patch
+# \date 2009-02-18 16:19GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Install to client patch
+#
+# NeL - 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 .
+#
+
+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 to client patch")
+printLog(log, "-------")
+printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
+printLog(log, "")
+
+# Find tools
+BnpMake = findTool(log, ToolDirectories, BnpMakeTool, ToolSuffix)
+PatchGen = findTool(log, ToolDirectories, PatchGenTool, ToolSuffix)
+printLog(log, "")
+
+# Find **** HARDCODED **** WINDOWS **** tools ... TODO: fix patch_gen tool !!!
+Lzma = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, "lzma.exe")
+printLog(log, "LZMA " + Lzma)
+XDelta = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, "xdelta.exe")
+printLog(log, "XDELTA " + XDelta)
+printLog(log, "")
+
+if BnpMake == "":
+ toolLogFail(log, BnpMakeTool, ToolSuffix)
+elif PatchGen == "":
+ toolLogFail(log, PatchGenTool, ToolSuffix)
+elif Lzma == "":
+ toolLogFail(log, "LZMA", ToolSuffix)
+elif XDelta == "":
+ toolLogFail(log, "XDELTA", ToolSuffix)
+elif os.path.dirname(Lzma) != os.path.dirname(XDelta):
+ printLog(log, "FAIL lzma.exe and xdelta.exe must be in the same directory")
+else:
+ mkPath(log, ClientPatchDirectory)
+ productXml = ClientPatchDirectory + "/" + ProductName + ".xml"
+ if not os.path.isfile(productXml):
+ printLog(log, ">>> Create new product <<<")
+ subprocess.call([ PatchGen, "createNewProduct", productXml ])
+ printLog(log, "")
+ printLog(log, ">>> Rewrite " + ProductName + ".xml <<<") # because we know better.
+ shutil.move(productXml, productXml + ".old")
+ oldCfg = open(productXml + ".old", "r")
+ cfg = open(productXml, "w")
+ inCategories = 0
+ for line in oldCfg:
+ if not inCategories:
+ if line.strip() == "<_Categories>":
+ inCategories = 1
+ cfg.write("\t<_Categories>\n")
+ for category in InstallClientData:
+ cfg.write("\t\t<_Category>\n")
+ cfg.write("\t\t\t<_Name type=\"STRING\" value=\"" + category["Name"] + "\"/>\n")
+ if category["UnpackTo"] != None:
+ if category["UnpackTo"] != "":
+ cfg.write("\t\t\t<_UnpackTo type=\"STRING\" value=\"./" + category["UnpackTo"] + "/\"/>\n")
+ else:
+ cfg.write("\t\t\t<_UnpackTo type=\"SINT32\" value=\"./\"/>\n")
+ cfg.write("\t\t\t<_IsOptional type=\"SINT32\" value=\"" + str(category["IsOptional"]) + "\"/>\n")
+ cfg.write("\t\t\t<_IsIncremental type=\"SINT32\" value=\"" + str(category["IsIncremental"]) + "\"/>\n")
+ for package in category["Packages"]:
+ if (len(package[1]) > 0):
+ cfg.write("\t\t\t<_Files type=\"STRING\" value=\"" + package[1][0] + "\"/>\n")
+ else:
+ cfg.write("\t\t\t<_Files type=\"STRING\" value=\"" + package[0] + ".bnp\"/>\n")
+ cfg.write("\t\t\n")
+ cfg.write("\t\n")
+ else:
+ cfg.write(line)
+ else:
+ if line.strip() == "":
+ inCategories = 0
+ oldCfg.close()
+ cfg.close()
+ os.remove(productXml + ".old")
+ printLog(log, "")
+ printLog(log, ">>> Make bnp <<<")
+ targetPath = ClientPatchDirectory + "/bnp"
+ mkPath(log, targetPath)
+ for category in InstallClientData:
+ for package in category["Packages"]:
+ printLog(log, "PACKAGE " + package[0])
+ sourcePath = InstallDirectory + "/" + package[0]
+ mkPath(log, sourcePath)
+ targetBnp = targetPath + "/" + package[0] + ".bnp"
+ if (len(package[1]) > 0):
+ targetBnp = targetPath + "/" + package[1][0]
+ printLog(log, "TARGET " + package[1][0])
+ needUpdateBnp = 1
+ if (len(package) > 2):
+ needUpdateBnp = needUpdate(log, sourcePath + "/" + package[2], targetBnp)
+ else:
+ needUpdateBnp = needUpdateDirNoSubdirFile(log, sourcePath, targetBnp)
+ if (needUpdateBnp):
+ printLog(log, "BNP " + targetBnp)
+ subprocess.call([ BnpMake, "/p", sourcePath, targetPath ] + package[1])
+ else:
+ printLog(log, "SKIP " + targetBnp)
+ printLog(log, "")
+ printLog(log, ">>> Update product <<<")
+ cwDir = os.getcwd().replace("\\", "/")
+ toolDir = os.path.dirname(Lzma).replace("\\", "/")
+ os.chdir(toolDir)
+ subprocess.call([ PatchGen, "updateProduct", productXml ])
+ os.chdir(cwDir)
+ printLog(log, "")
+
+
+log.close()
+if os.path.isfile("6_client_patch.log"):
+ os.remove("6_client_patch.log")
+shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_client_patch.log")
+shutil.move("log.log", "6_client_patch.log")
diff --git a/code/nel/tools/build_gamedata/7_client_install.py b/code/nel/tools/build_gamedata/7_client_install.py
new file mode 100644
index 000000000..b5a5bab1f
--- /dev/null
+++ b/code/nel/tools/build_gamedata/7_client_install.py
@@ -0,0 +1,93 @@
+#!/usr/bin/python
+#
+# \file 7_client_install.py
+# \brief Install to client install
+# \date 2009-02-18 16:19GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Install to client install
+#
+# NeL - 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 .
+#
+
+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 to client install")
+printLog(log, "-------")
+printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
+printLog(log, "")
+
+# Find tools
+BnpMake = findTool(log, ToolDirectories, BnpMakeTool, ToolSuffix)
+printLog(log, "")
+
+if BnpMake == "":
+ toolLogFail(log, BnpMakeTool, ToolSuffix)
+else:
+ for category in InstallClientData:
+ printLog(log, "CATEGORY " + category["Name"])
+ if (category["UnpackTo"] != None):
+ targetPath = ClientInstallDirectory
+ if (category["UnpackTo"] != ""):
+ targetPath += "/" + category["UnpackTo"]
+ mkPath(log, targetPath)
+ for package in category["Packages"]:
+ printLog(log, "PACKAGE " + package[0])
+ mkPath(log, InstallDirectory + "/" + package[0])
+ copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + package[0], targetPath)
+ else:
+ targetPath = ClientInstallDirectory + "/data"
+ mkPath(log, targetPath)
+ for package in category["Packages"]:
+ printLog(log, "PACKAGE " + package[0])
+ sourcePath = InstallDirectory + "/" + package[0]
+ mkPath(log, sourcePath)
+ targetBnp = targetPath + "/" + package[0] + ".bnp"
+ if (len(package[1]) > 0):
+ targetBnp = targetPath + "/" + package[1][0]
+ printLog(log, "TARGET " + package[1][0])
+ needUpdateBnp = 1
+ if (len(package) > 2):
+ needUpdateBnp = needUpdate(log, sourcePath + "/" + package[2], targetBnp)
+ else:
+ needUpdateBnp = needUpdateDirNoSubdirFile(log, sourcePath, targetBnp)
+ if (needUpdateBnp):
+ printLog(log, "BNP " + targetBnp)
+ subprocess.call([ BnpMake, "/p", sourcePath, targetPath ] + package[1])
+ else:
+ printLog(log, "SKIP " + targetBnp)
+printLog(log, "")
+
+log.close()
+if os.path.isfile("7_client_install.log"):
+ os.remove("7_client_install.log")
+shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_client_install.log")
+shutil.move("log.log", "7_client_install.log")
diff --git a/code/nel/tools/build_gamedata/configuration/buildsite.py b/code/nel/tools/build_gamedata/configuration/buildsite.py
deleted file mode 100644
index 35b585057..000000000
--- a/code/nel/tools/build_gamedata/configuration/buildsite.py
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/usr/bin/python
-#
-# \file site.py
-# \brief Site configuration
-# \date 2010-06-04-21-25-GMT
-# \author Jan Boon (Kaetemi)
-# Python port of game data build pipeline.
-# Site configuration.
-#
-# NeL - 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 .
-#
-
-
-# *** SITE INSTALLATION ***
-
-# Use '/' in path name, not ''
-# Don't put '/' at the end of a directory name
-
-
-# Quality option for this site (1 for BEST, 0 for DRAFT)
-BuildQuality = 1
-
-ToolDirectories = ['R:/code/nel', 'R:/code/ryzom/tools']
-ToolSuffix = "_r.exe"
-
-# Build script directory
-ScriptDirectory = "W:/build_gamedata"
-WorkspaceDirectory = "R:/code/ryzom/tools/build_gamedata/workspace"
-
-# Data build directories
-DatabaseDirectory = "W:/database"
-ExportBuildDirectory = "W:/export"
-
-# Client data install directory (client/data)
-ClientDataDirectory = "S:/ryzom_client_open/user"
-
-# TODO: NETWORK RECONNECT NOT IMPLEMENTED :)
-
-# Leveldesign directories
-LeveldesignDirectory = "L:/leveldesign"
-LeveldesignDfnDirectory = "L:/leveldesign/dfn"
-LeveldesignWorldDirectory = "L:/leveldesign/world"
-
-# 3dsMax directives
-MaxAvailable = 1
-MaxDirectory = "C:/Program Files (x86)/Autodesk/3ds Max 2010"
-MaxUserDirectory = "C:/Users/Kaetemi/AppData/Local/Autodesk/3dsMax/2010 - 32bit/enu"
-MaxExecutable = "3dsmax.exe"
-
-
-# end of file
diff --git a/code/nel/tools/build_gamedata/configuration/scripts.py b/code/nel/tools/build_gamedata/configuration/scripts.py
index a913815db..57eee98cb 100644
--- a/code/nel/tools/build_gamedata/configuration/scripts.py
+++ b/code/nel/tools/build_gamedata/configuration/scripts.py
@@ -44,7 +44,7 @@ def needUpdate(log, source, dest):
else:
return 0
return 1
- printLog(log, "needUpdate: source doest not exist?! " + source)
+ printLog(log, "MISSING " + source)
return 0
def needUpdateRemoveDest(log, source, dest):
@@ -56,7 +56,7 @@ def needUpdateRemoveDest(log, source, dest):
else:
return 0
return 1
- printLog(log, "needUpdate: source doest not exist?! " + source)
+ printLog(log, "MISSING " + source)
return 0
def needUpdateLogRemoveDest(log, source, dest):
@@ -71,45 +71,60 @@ def needUpdateLogRemoveDest(log, source, dest):
return 0
printLog(log, source + " -> " + dest)
return 1
- printLog(log, "needUpdate: source doest not exist?! " + source)
+ printLog(log, "MISSING " + source)
printLog(log, "SKIP " + dest)
return 0
def copyFileList(log, dir_source, dir_target, files):
for fileName in files:
- if fileName != ".svn":
- printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + fileName)
- shutil.copy(dir_source + "/" + fileName, dir_target + "/" + fileName)
+ if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
+ if (os.path.isfile(dir_source + "/" + fileName)):
+ if needUpdateLogRemoveDest(log, dir_source + "/" + fileName, dir_target + "/" + fileName):
+ shutil.copy(dir_source + "/" + fileName, dir_target + "/" + fileName)
def copyFileListNoTree(log, dir_source, dir_target, files):
for fileName in files:
- if fileName != ".svn":
- printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + os.path.basename(fileName))
- shutil.copy(dir_source + "/" + fileName, dir_target + "/" + os.path.basename(fileName))
+ if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
+ if (os.path.isfile(dir_source + "/" + fileName)):
+ printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + os.path.basename(fileName))
+ shutil.copy(dir_source + "/" + fileName, dir_target + "/" + os.path.basename(fileName))
def copyFileListNoTreeIfNeeded(log, dir_source, dir_target, files):
for fileName in files:
- if fileName != ".svn" and fileName != "*.*":
- srcFile = dir_source + "/" + fileName
- destFile = dir_target + "/" + os.path.basename(fileName)
- if needUpdateLogRemoveDest(log, srcFile, destFile):
- shutil.copy(srcFile, destFile)
+ if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
+ if (os.path.isfile(dir_source + "/" + fileName)):
+ srcFile = dir_source + "/" + fileName
+ destFile = dir_target + "/" + os.path.basename(fileName)
+ if needUpdateLogRemoveDest(log, srcFile, destFile):
+ shutil.copy(srcFile, destFile)
def removeFilesRecursive(log, dir_files):
files = os.listdir(dir_files)
for fileName in files:
- if (fileName != ".svn"):
+ if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*"):
if os.path.isdir(dir_files + "/" + fileName):
removeFilesRecursive(log, dir_files + "/" + fileName)
else:
printLog(log, "RM " + dir_files + "/" + fileName)
os.remove(dir_files + "/" + fileName)
+def removeFilesDirsRecursive(log, dir_files):
+ files = os.listdir(dir_files)
+ for fileName in files:
+ if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*"):
+ if os.path.isdir(dir_files + "/" + fileName):
+ removeFilesRecursive(log, dir_files + "/" + fileName)
+ else:
+ printLog(log, "RM " + dir_files + "/" + fileName)
+ os.remove(dir_files + "/" + fileName)
+ printLog(log, "RMDIR " + dir_files)
+ os.rmdir(dir_files)
+
def removeFilesRecursiveExt(log, dir_files, file_ext):
files = os.listdir(dir_files)
len_file_ext = len(file_ext)
for fileName in files:
- if (fileName != ".svn"):
+ if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*"):
if os.path.isdir(dir_files + "/" + fileName):
removeFilesRecursiveExt(log, dir_files + "/" + fileName, file_ext)
elif (fileName[-len_file_ext:].lower() == file_ext.lower()):
@@ -120,7 +135,7 @@ def copyFilesRecursive(log, dir_source, dir_target):
files = os.listdir(dir_source)
mkPath(log, dir_target)
for fileName in files:
- if (fileName != ".svn"):
+ if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*"):
if os.path.isdir(dir_source + "/" + fileName):
copyFilesRecursive(log, dir_source + "/" + fileName, dir_target + "/" + fileName)
else:
@@ -134,18 +149,20 @@ def copyFilesExt(log, dir_source, dir_target, file_ext):
files = os.listdir(dir_source)
len_file_ext = len(file_ext)
for fileName in files:
- if (fileName != ".svn") and (fileName[-len_file_ext:].lower() == file_ext.lower()):
- printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + fileName)
- shutil.copy(dir_source + "/" + fileName, dir_target + "/" + fileName)
+ if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*") and (fileName[-len_file_ext:].lower() == file_ext.lower()):
+ if (os.path.isfile(dir_source + "/" + fileName)):
+ printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + fileName)
+ shutil.copy(dir_source + "/" + fileName, dir_target + "/" + fileName)
def copyFilesRenamePrefixExt(log, dir_source, dir_target, old_prefix, new_prefix, file_ext):
files = os.listdir(dir_source)
len_file_ext = len(file_ext)
len_prefix = len(old_prefix)
for fileName in files:
- if (fileName != ".svn") and (fileName[-len_file_ext:].lower() == file_ext.lower()) and ((fileName[:len_prefix].lower() == old_prefix.lower())):
- printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + new_prefix + fileName[-(len(fileName) - len_prefix):])
- shutil.copy(dir_source + "/" + fileName, dir_target + "/" + new_prefix + fileName[-(len(fileName) - len_prefix):])
+ if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*") and (fileName[-len_file_ext:].lower() == file_ext.lower()) and ((fileName[:len_prefix].lower() == old_prefix.lower())):
+ if (os.path.isfile(dir_source + "/" + fileName)):
+ printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + new_prefix + fileName[-(len(fileName) - len_prefix):])
+ shutil.copy(dir_source + "/" + fileName, dir_target + "/" + new_prefix + fileName[-(len(fileName) - len_prefix):])
def copyFilesExtNoSubdir(log, dir_source, dir_target, file_ext):
files = findFilesNoSubdir(log, dir_source, file_ext)
@@ -166,13 +183,18 @@ def copyFilesExtNoSubdirIfNeeded(log, dir_source, dir_target, file_ext):
def copyFilesNoTreeIfNeeded(log, dir_source, dir_target):
copyFileListNoTreeIfNeeded(log, dir_source, dir_target, os.listdir(dir_source))
+def copyFilesRecursiveNoTreeIfNeeded(log, dir_source, dir_target):
+ files = findFilesRecursive(log, dir_source, "")
+ copyFileListNoTreeIfNeeded(log, dir_source, dir_target, files)
+
def copyFileListExtReplaceNoTreeIfNeeded(log, dir_source, dir_target, files, file_ext, target_ext):
for fileName in files:
- if fileName != ".svn" and fileName != "*.*":
- srcFile = dir_source + "/" + fileName
- destFile = dir_target + "/" + os.path.basename(fileName)[0:-len(file_ext)] + target_ext
- if needUpdateLogRemoveDest(log, srcFile, destFile):
- shutil.copy(srcFile, destFile)
+ if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
+ if (os.path.isfile(dir_source + "/" + fileName)):
+ srcFile = dir_source + "/" + fileName
+ destFile = dir_target + "/" + os.path.basename(fileName)[0:-len(file_ext)] + target_ext
+ if needUpdateLogRemoveDest(log, srcFile, destFile):
+ shutil.copy(srcFile, destFile)
def copyFilesExtReplaceNoTreeIfNeeded(log, dir_source, dir_target, file_ext, target_ext):
files = findFiles(log, dir_source, "", file_ext)
@@ -184,20 +206,44 @@ def copyFileIfNeeded(log, srcFile, destFile):
def moveFileListNoTree(log, dir_source, dir_target, files):
for fileName in files:
- if fileName != ".svn":
- printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + os.path.basename(fileName))
- shutil.move(dir_source + "/" + fileName, dir_target + "/" + os.path.basename(fileName))
+ if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
+ if (os.path.isfile(dir_source + "/" + fileName)):
+ printLog(log, "MOVE " + dir_source + "/" + fileName + " -> " + dir_target + "/" + os.path.basename(fileName))
+ shutil.move(dir_source + "/" + fileName, dir_target + "/" + os.path.basename(fileName))
def moveFilesExtNoTree(log, dir_source, dir_target, file_ext):
files = findFiles(log, dir_source, "", file_ext)
moveFileListNoTree(log, dir_source, dir_target, files)
+def moveFilesNoSubdir(log, dir_source, dir_target):
+ files = os.listdir(dir_source)
+ moveFileListNoTree(log, dir_source, dir_target, files)
+
+def moveDir(log, dir_source, dir_target):
+ printLog(log, "MOVE " + dir_source + " -> " + dir_target)
+ shutil.move(dir_source, dir_target)
+
+def findFilesRecursive(log, dir_where, dir_sub):
+ result = [ ]
+ files = os.listdir(dir_where + "/" + dir_sub)
+ for fileName in files:
+ if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
+ filePath = dir_sub + fileName
+ fileFull = dir_where + "/" + dir_sub + fileName
+ if os.path.isfile(fileFull):
+ result += [ filePath ]
+ elif os.path.isdir(fileFull):
+ result += findFilesRecursive(log, dir_where, filePath + "/")
+ else:
+ printLog(log, "findFilesRecursive: file not dir or file?!" + filePath)
+ return result
+
def findFiles(log, dir_where, dir_sub, file_ext):
result = [ ]
files = os.listdir(dir_where + "/" + dir_sub)
len_file_ext = len(file_ext)
for fileName in files:
- if fileName != ".svn" and fileName != "*.*":
+ if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
filePath = dir_sub + fileName
fileFull = dir_where + "/" + dir_sub + fileName
if os.path.isfile(fileFull):
@@ -209,12 +255,15 @@ def findFiles(log, dir_where, dir_sub, file_ext):
printLog(log, "findFiles: file not dir or file?!" + filePath)
return result
+def isLegalFileName(fileName):
+ return fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*"
+
def findFilesNoSubdir(log, dir_where, file_ext):
result = [ ]
files = os.listdir(dir_where)
len_file_ext = len(file_ext)
for fileName in files:
- if fileName != ".svn" and fileName != "*.*":
+ if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
fileFull = dir_where + "/" + fileName
if os.path.isfile(fileFull):
if fileName[-len_file_ext:].lower() == file_ext.lower():
@@ -226,7 +275,7 @@ def findFilesNoSubdir(log, dir_where, file_ext):
def findFile(log, dir_where, file_name):
files = os.listdir(dir_where)
for fileName in files:
- if fileName != ".svn" and fileName != "*.*":
+ if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
filePath = dir_where + "/" + fileName
if os.path.isfile(filePath):
if fileName == file_name:
@@ -264,6 +313,26 @@ def needUpdateDirByTagLog(log, dir_source, ext_source, dir_dest, ext_dest):
printLog(log, "SKIP " + str(skipCount) + " / " + str(len(sourceFiles)) + "; DEST " + str(len(destFiles)))
return 0
+def needUpdateDirNoSubdirFile(log, dir_source, file_dest):
+ if not os.path.isfile(file_dest):
+ return 1
+ destTime = os.stat(file_dest).st_mtime
+ sourceFiles = os.listdir(dir_source)
+ for file in sourceFiles:
+ filePath = dir_source + "/" + file
+ if os.path.isfile(filePath):
+ fileTime = os.stat(filePath).st_mtime
+ if fileTime > destTime:
+ return 1
+ else:
+ return 0
+
+def needUpdateMultiDirNoSubdirFile(log, root_dir, dirs_source, file_dest):
+ for dir_source in dirs_source:
+ if needUpdateDirNoSubdirFile(log, root_dir + "/" + dir_source, file_dest):
+ return 1
+ return 0
+
def needUpdateDirNoSubdir(log, dir_source, dir_dest):
latestSourceFile = 0
oldestDestFile = 0
@@ -329,6 +398,17 @@ def needUpdateDirNoSubdirLogExtMultidir(log, all_dir_base, all_dir_source, dir_s
printLog(log, "SKIP *")
return 0
+def findFileMultiDir(log, dirs_where, file_name):
+ try:
+ for dir in dirs_where:
+ file = findFile(log, dir, file_name)
+ if file != "":
+ return file
+ except Exception, e:
+ printLog(log, "EXCEPTION " + str(e))
+ printLog(log, "FILE NOT FOUND " + file_name)
+ return ""
+
def findTool(log, dirs_where, file_name, suffix):
try:
for dir in dirs_where:
diff --git a/code/nel/tools/build_gamedata/configuration/tools.py b/code/nel/tools/build_gamedata/configuration/tools.py
index f099dffe0..e533270c1 100644
--- a/code/nel/tools/build_gamedata/configuration/tools.py
+++ b/code/nel/tools/build_gamedata/configuration/tools.py
@@ -37,7 +37,6 @@ SmallbankBuildTimeout = 60000
FarbankBuildTimeout = 180000
AnimExportTimeout = 1800000
IgExportTimeout = 600000
-MapsBuildTimeout = 10000
CmbExportTimeout = 60000
RbankBuildTesselTimeout = 6000000
RbankBuildSmoothTimeout = 6000000
@@ -49,6 +48,7 @@ LigoExportTimeout = 3600000
LigoBuildTimeout = 1800000
PacsPrimExportTimeout = 600000
+MapsBuildTimeout = 60000 # 1min
MaxShapeExportTimeout = 600000 # 10min
# *** TOOLS CONFIGURATION ***
@@ -63,7 +63,6 @@ ZoneWelderTool = "zone_welder"
BuildRbankTool = "build_rbank"
BuildIndoorRbankTool = "build_indoor_rbank"
BuildIgBoxesTool = "build_ig_boxes"
-AiBuildWmapTool = "ai_build_wmap"
GetNeighborsTool = "get_neighbors"
ZoneLighterTool = "zone_lighter"
ZoneIgLighterTool = "zone_ig_lighter"
@@ -85,3 +84,8 @@ PrimExportTool = "prim_export"
IgElevationTool = "ig_elevation"
IgAddTool = "ig_add"
BuildClodBankTool = "build_clod_bank"
+SheetsPackerTool = "sheets_packer"
+BnpMakeTool = "bnp_make"
+AiBuildWmapTool = "ai_build_wmap"
+TgaCutTool = "tga_cut"
+PatchGenTool = "patch_gen"
diff --git a/code/nel/tools/build_gamedata/export_build_install.py b/code/nel/tools/build_gamedata/export_build_install.py
index 8fab529c5..4cce78ced 100644
--- a/code/nel/tools/build_gamedata/export_build_install.py
+++ b/code/nel/tools/build_gamedata/export_build_install.py
@@ -26,7 +26,7 @@
import shutil, subprocess
-# subprocess.call([ "python", "0_setup.py" ])
subprocess.call([ "python", "1_export.py" ])
subprocess.call([ "python", "2_build.py" ])
subprocess.call([ "python", "3_install.py" ])
+
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 e5a91741c..769b11b9d 100644
--- a/code/nel/tools/build_gamedata/generators/ecosystem_project_template/directories.py
+++ b/code/nel/tools/build_gamedata/generators/ecosystem_project_template/directories.py
@@ -99,6 +99,22 @@ PacsPrimSourceDirectories = [ ]
PacsPrimSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
+# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
+
+# Ig lookup directories used by rbank
+IgLookupDirectories = [ ]
+
+# Shape lookup directories used by rbank
+ShapeLookupDirectories = [ ]
+ShapeLookupDirectories += [ EcosystemPath + "/shape_clodtex_build" ]
+ShapeLookupDirectories += [ EcosystemPath + "/shape_with_coarse_mesh" ]
+
+# Map lookup directories not yet used
+MapLookupDirectories = [ ]
+MapLookupDirectories += [ EcosystemPath + "/map_export" ]
+MapLookupDirectories += [ EcosystemPath + "/map_uncompressed" ]
+
+
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
# Map directories
@@ -148,6 +164,10 @@ PacsPrimExportDirectory = CommonPath + "/pacs_prim"
# Map directories
MapBuildDirectory = CommonPath + "/map"
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
+MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
+MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
+MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
+MapTagBuildDirectory = CommonPath + "/map_tag"
# Shape directories
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
@@ -171,29 +191,29 @@ RbankOutputBuildDirectory = "_invalid"
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
# Map directory
-MapClientDirectory = CommonName + "_maps"
-BitmapClientDirectory = MapClientDirectory
+MapInstallDirectory = CommonName + "_maps"
+BitmapInstallDirectory = MapInstallDirectory
# Shape directory
-ShapeClientDirectory = CommonName + "_shapes"
+ShapeInstallDirectory = CommonName + "_shapes"
# Lightmap directory
-LightmapClientDirectory = CommonName + "_lightmaps"
+LightmapInstallDirectory = CommonName + "_lightmaps"
# Tile directory
-TilesClientDirectory = CommonName + "_tiles"
+TilesInstallDirectory = CommonName + "_tiles"
# Displace directory
-DisplaceClientDirectory = CommonName + "_displaces"
+DisplaceInstallDirectory = CommonName + "_displaces"
# Bank directory
-BankClientDirectory = CommonName + "_bank"
+BankInstallDirectory = CommonName + "_bank"
# Vegetable set directory
-VegetSetClientDirectory = CommonName + "_vegetable_sets"
+VegetSetInstallDirectory = CommonName + "_vegetable_sets"
# Vegetable shape directory
-VegetClientDirectory = CommonName + "_vegetables"
+VegetInstallDirectory = CommonName + "_vegetables"
# PACS primitives directories
-PacsPrimClientDirectory = CommonName + "_pacs_prim"
+PacsPrimInstallDirectory = CommonName + "_pacs_prim"
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 7a7478b99..6b567708e 100644
--- a/code/nel/tools/build_gamedata/generators/ecosystem_project_template/process.py
+++ b/code/nel/tools/build_gamedata/generators/ecosystem_project_template/process.py
@@ -110,6 +110,10 @@ LigoExportOnePass = 0
# *** MAPS OPTIONS ***
ReduceBitmapFactor = 0
+# list all panoply files
+MapPanoplyFileList = None
+# name of the .hlsbank to build.
+MapHlsBankFileName = None
# *** SHAPE BUILD OPTIONS *
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 d6d65d689..46dbe5d0a 100644
--- a/code/nel/tools/build_gamedata/generators/generate_simple_max_exporters.py
+++ b/code/nel/tools/build_gamedata/generators/generate_simple_max_exporters.py
@@ -47,7 +47,7 @@ def processLine(line, processName, fileExtension, sourceDirectoriesVariable, exp
newline = newline.replace("%PreGenFileExtension%", fileExtension)
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
- newline = newline.replace("%PreGenClientDirectoryVariable%", clientDirectoryVariable)
+ newline = newline.replace("%PreGenInstallDirectoryVariable%", clientDirectoryVariable)
return newline
def generateSimpleMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
@@ -88,15 +88,15 @@ def generateSimpleMaxExporter(processName, fileExtension, sourceDirectoriesVaria
-generateSimpleMaxExporter("pacs_prim", "pacs_prim", "PacsPrimSourceDirectories", "PacsPrimExportDirectory", "PacsPrimClientDirectory")
+generateSimpleMaxExporter("pacs_prim", "pacs_prim", "PacsPrimSourceDirectories", "PacsPrimExportDirectory", "PacsPrimInstallDirectory")
-generateSimpleMaxExporter("anim", "anim", "AnimSourceDirectories", "AnimExportDirectory", "AnimClientDirectory")
+generateSimpleMaxExporter("anim", "anim", "AnimSourceDirectories", "AnimExportDirectory", "AnimInstallDirectory")
-generateSimpleMaxExporter("skel", "skel", "SkelSourceDirectories", "SkelExportDirectory", "SkelClientDirectory")
+generateSimpleMaxExporter("skel", "skel", "SkelSourceDirectories", "SkelExportDirectory", "SkelInstallDirectory")
-generateSimpleMaxExporter("swt", "swt", "SwtSourceDirectories", "SwtExportDirectory", "SwtClientDirectory")
+generateSimpleMaxExporter("swt", "swt", "SwtSourceDirectories", "SwtExportDirectory", "SwtInstallDirectory")
-generateSimpleMaxExporter("zone", "zone", "ZoneSourceDirectory", "ZoneExportDirectory", "ZoneClientDirectory")
+generateSimpleMaxExporter("zone", "zone", "ZoneSourceDirectory", "ZoneExportDirectory", "ZoneInstallDirectory")
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 d7a62a478..a7b1d8ac1 100644
--- a/code/nel/tools/build_gamedata/generators/generate_tagged_max_exporters.py
+++ b/code/nel/tools/build_gamedata/generators/generate_tagged_max_exporters.py
@@ -53,7 +53,7 @@ def processLine(line, processName, fileExtension, sourceDirectoriesVariable, exp
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
newline = newline.replace("%PreGenTagExportDirectoryVariable%", tagExportDirectoryVariable)
- newline = newline.replace("%PreGenClientDirectoryVariable%", clientDirectoryVariable)
+ newline = newline.replace("%PreGenInstallDirectoryVariable%", clientDirectoryVariable)
return newline
def generateTaggedMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
@@ -100,13 +100,13 @@ def generateTaggedMaxExporter(processName, fileExtension, sourceDirectoriesVaria
-generateTaggedMaxExporter("clodbank", "clod", "ClodSourceDirectories", "ClodExportDirectory", "ClodTagExportDirectory", "ClodClientDirectory")
+generateTaggedMaxExporter("clodbank", "clod", "ClodSourceDirectories", "ClodExportDirectory", "ClodTagExportDirectory", "ClodInstallDirectory")
generateTaggedMaxScript("ig", "ig")
-generateTaggedMaxExporter("rbank", "cmb", "RBankCmbSourceDirectories", "RBankCmbExportDirectory", "RBankCmbTagExportDirectory", "PacsClientDirectory")
+generateTaggedMaxExporter("rbank", "cmb", "RBankCmbSourceDirectories", "RBankCmbExportDirectory", "RBankCmbTagExportDirectory", "PacsInstallDirectory")
-generateTaggedMaxExporter("veget", "veget", "VegetSourceDirectories", "VegetExportDirectory", "VegetTagExportDirectory", "VegetClientDirectory")
+generateTaggedMaxExporter("veget", "veget", "VegetSourceDirectories", "VegetExportDirectory", "VegetTagExportDirectory", "VegetInstallDirectory")
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 a2c6ef2b2..6afe3d077 100644
--- 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
@@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + %PreGenClientDirectoryVariable%)
+mkPath(log, InstallDirectory + "/" + %PreGenInstallDirectoryVariable%)
log.close()
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 c9486b77f..ba496ac8f 100644
--- 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
@@ -46,9 +46,9 @@ printLog(log, "")
printLog(log, ">>> Install %PreGenProcessName% <<<")
exportPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
mkPath(log, exportPath)
-clientPath = ClientDataDirectory + "/" + %PreGenClientDirectoryVariable%
-mkPath(log, clientPath)
-copyFilesExtNoSubdirIfNeeded(log, exportPath, clientPath, ".%PreGenFileExtension%")
+installPath = InstallDirectory + "/" + %PreGenInstallDirectoryVariable%
+mkPath(log, installPath)
+copyFilesExtNoSubdirIfNeeded(log, exportPath, installPath, ".%PreGenFileExtension%")
printLog(log, "")
log.close()
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 d572c1f43..5554a2d4a 100644
--- 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
@@ -58,7 +58,7 @@ printLog(log, ">>> Setup build directories <<<")
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + %PreGenClientDirectoryVariable%)
+mkPath(log, InstallDirectory + "/" + %PreGenInstallDirectoryVariable%)
log.close()
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 f3dde5aa2..277d66022 100644
--- 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
@@ -46,9 +46,9 @@ printLog(log, "")
printLog(log, ">>> Install %PreGenProcessName% <<<")
exportPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
mkPath(log, exportPath)
-clientPath = ClientDataDirectory + "/" + %PreGenClientDirectoryVariable%
-mkPath(log, clientPath)
-copyFilesNoTreeIfNeeded(log, exportPath, clientPath)
+installPath = InstallDirectory + "/" + %PreGenInstallDirectoryVariable%
+mkPath(log, installPath)
+copyFilesNoTreeIfNeeded(log, exportPath, installPath)
printLog(log, "")
log.close()
diff --git a/code/nel/tools/build_gamedata/install_client_dev.py b/code/nel/tools/build_gamedata/install_client_dev.py
new file mode 100644
index 000000000..63d8268d6
--- /dev/null
+++ b/code/nel/tools/build_gamedata/install_client_dev.py
@@ -0,0 +1,31 @@
+#!/usr/bin/python
+#
+# \file export_build_install.py
+# \brief Run all processes
+# \date 2009-02-18 15:28GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Run all processes
+#
+# NeL - 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 .
+#
+
+import shutil, subprocess
+
+subprocess.call([ "python", "3_install.py" ])
+subprocess.call([ "python", "5_client_dev.py" ])
+
diff --git a/code/nel/tools/build_gamedata/install_data_shard.py b/code/nel/tools/build_gamedata/install_data_shard.py
new file mode 100644
index 000000000..46b6697b9
--- /dev/null
+++ b/code/nel/tools/build_gamedata/install_data_shard.py
@@ -0,0 +1,31 @@
+#!/usr/bin/python
+#
+# \file export_build_install.py
+# \brief Run all processes
+# \date 2009-02-18 15:28GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Run all processes
+#
+# NeL - 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 .
+#
+
+import shutil, subprocess
+
+subprocess.call([ "python", "3_install.py" ])
+subprocess.call([ "python", "4_data_shard.py" ])
+
diff --git a/code/nel/tools/build_gamedata/processes/0_setup.py b/code/nel/tools/build_gamedata/processes/0_setup.py
index 8a853bb50..cb6de2abb 100644
--- a/code/nel/tools/build_gamedata/processes/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/0_setup.py
@@ -49,7 +49,7 @@ from directories import *
#printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
#printLog(log, "")
#for dir in ClientSetupDirectories:
-# mkPath(log, ClientDataDirectory + "/" + dir)
+# mkPath(log, InstallDirectory + "/" + dir)
#printLog(log, "")
printLog(log, "")
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 80bf39ac6..5ec3438a2 100644
--- a/code/nel/tools/build_gamedata/processes/_dummy/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/_dummy/0_setup.py
@@ -58,7 +58,7 @@ printLog(log, ">>> Setup build directories <<<")
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-#mkPath(log, ClientDataDirectory + "/" + DummyClientDirectory)
+#mkPath(log, InstallDirectory + "/" + DummyInstallDirectory)
log.close()
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 ba92a6bba..2a3789e28 100644
--- a/code/nel/tools/build_gamedata/processes/_dummy/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/_dummy/3_install.py
@@ -43,18 +43,18 @@ printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "")
-#clientPath = ClientDataDirectory + "/" + DummyClientDirectory
-#mkPath(log, clientPath)
+#installPath = InstallDirectory + "/" + DummyInstallDirectory
+#mkPath(log, installPath)
printLog(log, ">>> Install dummy <<<")
#mkPath(log, ExportBuildDirectory + "/" + DummyExportDirectory)
-#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyExportDirectory, clientPath, ".dummy")
+#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyExportDirectory, installPath, ".dummy")
#mkPath(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory)
-#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, clientPath, ".dummy")
-#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, clientPath, ".dds")
+#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, installPath, ".dummy")
+#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, installPath, ".dds")
#mkPath(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory)
-#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory, clientPath, ".anim")
+#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory, installPath, ".anim")
printLog(log, "")
log.close()
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
new file mode 100644
index 000000000..d70a5f75f
--- /dev/null
+++ b/code/nel/tools/build_gamedata/processes/ai_wmap/0_setup.py
@@ -0,0 +1,98 @@
+#!/usr/bin/python
+#
+# \file 0_setup.py
+# \brief setup ai_wmap
+# \date 2010-05-24 13:42GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Setup ai_wmap
+#
+# NeL - 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 .
+#
+
+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 process import *
+from tools import *
+from directories import *
+
+printLog(log, "")
+printLog(log, "-------")
+printLog(log, "--- Setup ai_wmap")
+printLog(log, "-------")
+printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
+printLog(log, "")
+
+# Setup build directories
+printLog(log, ">>> Setup build directories <<<")
+mkPath(log, ExportBuildDirectory + "/" + RbankOutputBuildDirectory)
+mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory)
+mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildTagDirectory)
+
+# Setup lookup directories
+printLog(log, ">>> Setup lookup directories <<<")
+for dir in IgLookupDirectories:
+ mkPath(log, ExportBuildDirectory + "/" + dir)
+for dir in PacsPrimLookupDirectories:
+ mkPath(log, ExportBuildDirectory + "/" + dir)
+
+# Setup client directories
+printLog(log, ">>> Setup install directories <<<")
+mkPath(log, InstallDirectory + "/" + AiWmapInstallDirectory)
+
+# Setup client directories
+printLog(log, ">>> Setup configuration <<<")
+mkPath(log, InstallDirectory + "/" + AiWmapInstallDirectory)
+mkPath(log, ActiveProjectDirectory + "/generated")
+cfg = open(ActiveProjectDirectory + "/generated/ai_build_wmap.cfg", "w")
+cfg.write("\n")
+cfg.write("// AI BUILD WMAP CONFIGURATION\n")
+cfg.write("\n")
+cfg.write("Paths = {\n")
+for dir in IgLookupDirectories:
+ cfg.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
+cfg.write("\t\"" + ExportBuildDirectory + "/" + RbankOutputBuildDirectory + "\", \n")
+cfg.write("\t\"" + LeveldesignDirectory + "\", \n")
+cfg.write("};\n")
+cfg.write("\n")
+cfg.write("NoRecursePaths = { };\n")
+cfg.write("\n")
+cfg.write("PacsPrimPaths = {\n")
+for dir in PacsPrimLookupDirectories:
+ cfg.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
+cfg.write("};\n")
+cfg.write("\n")
+cfg.write("OutputPath = \"" + ExportBuildDirectory + "/" + AiWmapBuildDirectory + "\";\n")
+cfg.write("\n")
+cfg.write("Commands = {\n")
+cfg.write("\t\"Verbose " + str(AiWmapVerbose) + "\", \n")
+for startPoint in AiWmapStartPoints:
+ cfg.write("\t\"setStartPoint " + startPoint + "\", \n")
+cfg.write("};\n")
+cfg.write("\n")
+cfg.close()
+
+log.close()
+
+
+# end of file
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
new file mode 100644
index 000000000..cdd4dad97
--- /dev/null
+++ b/code/nel/tools/build_gamedata/processes/ai_wmap/1_export.py
@@ -0,0 +1,49 @@
+#!/usr/bin/python
+#
+# \file 1_export.py
+# \brief Export ai_wmap
+# \date 2010-05-24 13:42GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Export ai_wmap
+#
+# NeL - 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 .
+#
+
+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 process import *
+from tools import *
+from directories import *
+
+printLog(log, "")
+printLog(log, "-------")
+printLog(log, "--- Export ai_wmap")
+printLog(log, "-------")
+printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
+printLog(log, "")
+
+log.close()
+
+
+# end of file
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
new file mode 100644
index 000000000..df3202249
--- /dev/null
+++ b/code/nel/tools/build_gamedata/processes/ai_wmap/2_build.py
@@ -0,0 +1,95 @@
+#!/usr/bin/python
+#
+# \file 2_build.py
+# \brief Build ai_wmap
+# \date 2010-05-24 13:42GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Build ai_wmap
+#
+# NeL - 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 .
+#
+
+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 process import *
+from tools import *
+from directories import *
+
+printLog(log, "")
+printLog(log, "-------")
+printLog(log, "--- Build ai_wmap")
+printLog(log, "-------")
+printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
+printLog(log, "")
+
+# Find tools
+AiBuildWmap = findTool(log, ToolDirectories, AiBuildWmapTool, ToolSuffix)
+TgaCut = findTool(log, ToolDirectories, TgaCutTool, ToolSuffix)
+
+if AiBuildWmap == "":
+ toolLogFail(log, AiBuildWmapTool, ToolSuffix)
+if TgaCut == "":
+ toolLogFail(log, TgaCutTool, ToolSuffix)
+else:
+ printLog(log, ">>> Copy ai_build_wmap.cfg <<<")
+ cfgPath = ActiveProjectDirectory + "/generated/ai_build_wmap.cfg"
+ tagPath = ExportBuildDirectory + "/" + AiWmapBuildTagDirectory + "/ai_wmap_build.tag"
+ shutil.copy(cfgPath, "ai_build_wmap.cfg")
+ printLog(log, ">>> Check up packed sheets <<<")
+ subprocess.call([ AiBuildWmap, "checkPackedSheets" ])
+ printLog(log, ">>> Build ai_wmap <<<")
+ mkPath(log, ExportBuildDirectory + "/" + RbankOutputBuildDirectory)
+ mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory)
+ mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildTagDirectory)
+ if (needUpdate(log, "continents.packed_sheets", tagPath) or needUpdateMultiDirNoSubdirFile(log, ExportBuildDirectory, [ RbankOutputBuildDirectory ] + IgLookupDirectories + PacsPrimLookupDirectories, tagPath)):
+ printLog(log, ">>> Generate wmap <<<")
+ subprocess.call([ AiBuildWmap, "pacsCrunch " + AiWmapContinentName ])
+ printLog(log, ">>> Generate sized wmap <<<")
+ subprocess.call([ AiBuildWmap, "pacsBuildGabarit " + AiWmapContinentName ])
+ printLog(log, ">>> Generate cwmaps for each size <<<")
+ subprocess.call([ AiBuildWmap, "pacsBuildWmap " + AiWmapContinentName + "_0" ])
+ subprocess.call([ AiBuildWmap, "pacsBuildWmap " + AiWmapContinentName + "_1" ])
+ subprocess.call([ AiBuildWmap, "pacsBuildWmap " + AiWmapContinentName + "_2" ])
+ printLog(log, ">>> Generate bitmap for each size <<<")
+ subprocess.call([ AiBuildWmap, "pacsBuildBitmap " + AiWmapContinentName + "_0" ])
+ subprocess.call([ AiBuildWmap, "pacsBuildBitmap " + AiWmapContinentName + "_1" ])
+ subprocess.call([ AiBuildWmap, "pacsBuildBitmap " + AiWmapContinentName + "_2" ])
+ printLog(log, ">>> Clear height maps for size 1 and 2 <<<")
+ subprocess.call([ AiBuildWmap, "pacsClearHeightmap " + AiWmapContinentName ])
+ printLog(log, ">>> Cut tga for world editor <<<")
+ subprocess.call([ TgaCut, ExportBuildDirectory + "/" + AiWmapBuildDirectory + "/" + AiWmapContinentName + "_0.tga" ])
+ moveFilesExtNoTree(log, ".", ExportBuildDirectory + "/" + AiWmapBuildDirectory, ".tga")
+ printLog(log, ">>> Remove wmap <<<")
+ removeFilesRecursiveExt(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory, ".wmap")
+ tagFile = open(tagPath, "w")
+ tagFile.write(time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())) + "\n")
+ tagFile.close()
+ else:
+ printLog("SKIP *")
+printLog(log, "")
+
+log.close()
+
+
+# end of file
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
new file mode 100644
index 000000000..c5508830b
--- /dev/null
+++ b/code/nel/tools/build_gamedata/processes/ai_wmap/3_install.py
@@ -0,0 +1,57 @@
+#!/usr/bin/python
+#
+# \file 3_install.py
+# \brief Install ai_wmap
+# \date 2010-05-24 13:42GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Install ai_wmap
+#
+# NeL - 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 .
+#
+
+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 process import *
+from tools import *
+from directories import *
+
+printLog(log, "")
+printLog(log, "-------")
+printLog(log, "--- Install ai_wmap")
+printLog(log, "-------")
+printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
+printLog(log, "")
+
+installPath = InstallDirectory + "/" + AiWmapInstallDirectory
+mkPath(log, installPath)
+
+printLog(log, ">>> Install ai_wmap <<<")
+mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory)
+copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory, installPath)
+
+printLog(log, "")
+log.close()
+
+
+# end of file
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 5722b4238..87d4fc711 100644
--- a/code/nel/tools/build_gamedata/processes/anim/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/anim/0_setup.py
@@ -58,7 +58,7 @@ mkPath(log, ExportBuildDirectory + "/" + AnimBuildDirectory)
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + AnimClientDirectory)
+mkPath(log, InstallDirectory + "/" + AnimInstallDirectory)
log.close()
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 48f674fba..2ab46263a 100644
--- a/code/nel/tools/build_gamedata/processes/anim/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/anim/1_export.py
@@ -6,7 +6,7 @@
#
# \file 1_export.py
# \brief Export anim
-# \date 2010-09-03-12-46-GMT
+# \date 2010-09-19-14-19-GMT
# \author Jan Boon (Kaetemi)
# Python port of game data build pipeline.
# Export anim
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 c9b3c6875..2b410544e 100644
--- a/code/nel/tools/build_gamedata/processes/anim/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/anim/3_install.py
@@ -46,7 +46,7 @@ printLog(log, "")
printLog(log, ">>> Install anim <<<")
srcDir = ExportBuildDirectory + "/" + AnimBuildDirectory
mkPath(log, srcDir)
-destDir = ClientDataDirectory + "/" + AnimClientDirectory
+destDir = InstallDirectory + "/" + AnimInstallDirectory
mkPath(log, destDir)
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
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 94b227869..6a6faf525 100644
--- a/code/nel/tools/build_gamedata/processes/cegui/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/cegui/0_setup.py
@@ -57,7 +57,7 @@ mkPath(log, ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory)
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + CeguiImagesetClientDirectory)
+mkPath(log, InstallDirectory + "/" + CeguiImagesetInstallDirectory)
log.close()
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 02ffe9a27..b76322183 100644
--- a/code/nel/tools/build_gamedata/processes/cegui/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/cegui/3_install.py
@@ -45,7 +45,7 @@ printLog(log, "")
printLog(log, ">>> Install cegui imagesets <<<")
srcDir = ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory
mkPath(log, srcDir)
-destDir = ClientDataDirectory + "/" + CeguiImagesetClientDirectory
+destDir = InstallDirectory + "/" + CeguiImagesetInstallDirectory
mkPath(log, destDir)
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
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 e28f629d9..07bdd207f 100644
--- a/code/nel/tools/build_gamedata/processes/clodbank/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/clodbank/0_setup.py
@@ -61,7 +61,7 @@ mkPath(log, ExportBuildDirectory + "/" + AnimBuildDirectory)
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + ShapeClientDirectory)
+mkPath(log, InstallDirectory + "/" + ShapeInstallDirectory)
# Setup configuration files
printLog(log, ">>> Setup configuration files <<<")
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 5e52e0375..99e9f85ea 100644
--- a/code/nel/tools/build_gamedata/processes/clodbank/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/clodbank/1_export.py
@@ -6,7 +6,7 @@
#
# \file 1_export.py
# \brief Export clodbank
-# \date 2010-09-03-12-46-GMT
+# \date 2010-09-19-14-19-GMT
# \author Jan Boon (Kaetemi)
# Python port of game data build pipeline.
# Export clodbank
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 6879f3da8..b75ef21d7 100644
--- a/code/nel/tools/build_gamedata/processes/clodbank/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/clodbank/3_install.py
@@ -46,7 +46,7 @@ printLog(log, "")
printLog(log, ">>> Install clodbank <<<")
srcDir = ExportBuildDirectory + "/" + ClodBankBuildDirectory
mkPath(log, srcDir)
-destDir = ClientDataDirectory + "/" + ShapeClientDirectory
+destDir = InstallDirectory + "/" + ShapeInstallDirectory
mkPath(log, destDir)
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
diff --git a/code/nel/tools/build_gamedata/processes/copy/0_setup.py b/code/nel/tools/build_gamedata/processes/copy/0_setup.py
new file mode 100644
index 000000000..6ae63631b
--- /dev/null
+++ b/code/nel/tools/build_gamedata/processes/copy/0_setup.py
@@ -0,0 +1,76 @@
+#!/usr/bin/python
+#
+# \file 0_setup.py
+# \brief setup copy
+# \date 2010-05-24 13:42GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Setup copy
+#
+# NeL - 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 .
+#
+
+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 process import *
+from tools import *
+from directories import *
+
+printLog(log, "")
+printLog(log, "-------")
+printLog(log, "--- Setup copy")
+printLog(log, "-------")
+printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
+printLog(log, "")
+
+# Setup source directories
+printLog(log, ">>> Setup source directories <<<")
+for dir in CopyDirectSourceDirectories:
+ mkPath(log, dir)
+for file in CopyDirectSourceFiles:
+ mkPath(log, os.path.dirname(file))
+for dir in CopyLeveldesignSourceDirectories:
+ mkPath(log, LeveldesignDirectory + "/" + dir)
+for file in CopyLeveldesignSourceFiles:
+ mkPath(log, os.path.dirname(LeveldesignDirectory + "/" + file))
+for dir in CopyLeveldesignWorldSourceDirectories:
+ mkPath(log, LeveldesignWorldDirectory + "/" + dir)
+for file in CopyLeveldesignWorldSourceFiles:
+ mkPath(log, os.path.dirname(LeveldesignWorldDirectory + "/" + file))
+for dir in CopyLeveldesignDfnSourceDirectories:
+ mkPath(log, LeveldesignDfnDirectory + "/" + dir)
+for file in CopyLeveldesignDfnSourceFiles:
+ mkPath(log, os.path.dirname(LeveldesignDfnDirectory + "/" + file))
+for dir in CopyDatabaseSourceDirectories:
+ mkPath(log, DatabaseDirectory + "/" + dir)
+for file in CopyDatabaseSourceFiles:
+ mkPath(log, os.path.dirname(DatabaseDirectory + "/" + file))
+
+# Setup client directories
+printLog(log, ">>> Setup client directories <<<")
+mkPath(log, InstallDirectory + "/" + CopyInstallDirectory)
+
+log.close()
+
+
+# end of file
diff --git a/code/nel/tools/build_gamedata/processes/copy/1_export.py b/code/nel/tools/build_gamedata/processes/copy/1_export.py
new file mode 100644
index 000000000..c2e7ef229
--- /dev/null
+++ b/code/nel/tools/build_gamedata/processes/copy/1_export.py
@@ -0,0 +1,49 @@
+#!/usr/bin/python
+#
+# \file 1_export.py
+# \brief Export copy
+# \date 2010-05-24 13:42GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Export copy
+#
+# NeL - 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 .
+#
+
+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 process import *
+from tools import *
+from directories import *
+
+printLog(log, "")
+printLog(log, "-------")
+printLog(log, "--- Export copy")
+printLog(log, "-------")
+printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
+printLog(log, "")
+
+log.close()
+
+
+# end of file
diff --git a/code/nel/tools/build_gamedata/processes/copy/2_build.py b/code/nel/tools/build_gamedata/processes/copy/2_build.py
new file mode 100644
index 000000000..bd3ff2f50
--- /dev/null
+++ b/code/nel/tools/build_gamedata/processes/copy/2_build.py
@@ -0,0 +1,49 @@
+#!/usr/bin/python
+#
+# \file 2_build.py
+# \brief Build copy
+# \date 2010-05-24 13:42GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Build copy
+#
+# NeL - 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 .
+#
+
+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 process import *
+from tools import *
+from directories import *
+
+printLog(log, "")
+printLog(log, "-------")
+printLog(log, "--- Build copy")
+printLog(log, "-------")
+printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
+printLog(log, "")
+
+log.close()
+
+
+# end of file
diff --git a/code/nel/tools/build_gamedata/processes/copy/3_install.py b/code/nel/tools/build_gamedata/processes/copy/3_install.py
new file mode 100644
index 000000000..9d597a987
--- /dev/null
+++ b/code/nel/tools/build_gamedata/processes/copy/3_install.py
@@ -0,0 +1,85 @@
+#!/usr/bin/python
+#
+# \file 3_install.py
+# \brief Install copy
+# \date 2010-05-24 13:42GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Install copy
+#
+# NeL - 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 .
+#
+
+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 process import *
+from tools import *
+from directories import *
+
+printLog(log, "")
+printLog(log, "-------")
+printLog(log, "--- Install copy")
+printLog(log, "-------")
+printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
+printLog(log, "")
+
+installPath = InstallDirectory + "/" + CopyInstallDirectory
+mkPath(log, installPath)
+
+printLog(log, ">>> Install copy <<<")
+for dir in CopyDirectSourceDirectories:
+ copyFilesRecursiveNoTreeIfNeeded(log, dir, installPath)
+for file in CopyDirectSourceFiles:
+ copyFileIfNeeded(log, file, installPath + "/" + os.path.basename(file))
+for dir in CopyLeveldesignSourceDirectories:
+ copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignDirectory + "/" + dir, installPath)
+for file in CopyLeveldesignSourceFiles:
+ copyFileIfNeeded(log, LeveldesignDirectory + "/" + file, installPath + "/" + os.path.basename(file))
+for dir in CopyLeveldesignWorldSourceDirectories:
+ copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignWorldDirectory + "/" + dir, installPath)
+for file in CopyLeveldesignWorldSourceFiles:
+ copyFileIfNeeded(log, LeveldesignWorldDirectory + "/" + file, installPath + "/" + os.path.basename(file))
+for dir in CopyLeveldesignDfnSourceDirectories:
+ copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignDfnDirectory + "/" + dir, installPath)
+for file in CopyLeveldesignDfnSourceFiles:
+ copyFileIfNeeded(log, LeveldesignDfnDirectory + "/" + file, installPath + "/" + os.path.basename(file))
+for dir in CopyDatabaseSourceDirectories:
+ copyFilesRecursiveNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, installPath)
+for file in CopyDatabaseSourceFiles:
+ copyFileIfNeeded(log, DatabaseDirectory + "/" + file, installPath + "/" + os.path.basename(file))
+
+try:
+ CopyWindowsExeDllCfgSourceFiles
+except NameError:
+ CopyWindowsExeDllCfgSourceFiles = [ ]
+for file in CopyWindowsExeDllCfgSourceFiles:
+ filePath = findFileMultiDir(log, WindowsExeDllCfgDirectories, file)
+ if (filePath != ""):
+ copyFileIfNeeded(log, filePath, installPath + "/" + os.path.basename(file))
+
+printLog(log, "")
+
+log.close()
+
+
+# end of file
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 27ba463ef..ef647efa6 100644
--- a/code/nel/tools/build_gamedata/processes/displace/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/displace/0_setup.py
@@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + DisplaceClientDirectory)
+mkPath(log, InstallDirectory + "/" + DisplaceInstallDirectory)
log.close()
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 2e6fb48f7..edbbf92c9 100644
--- a/code/nel/tools/build_gamedata/processes/displace/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/displace/3_install.py
@@ -44,11 +44,11 @@ printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "")
printLog(log, ">>> Install displace <<<")
-clientPath = ClientDataDirectory + "/" + DisplaceClientDirectory
-mkPath(log, clientPath)
+installPath = InstallDirectory + "/" + DisplaceInstallDirectory
+mkPath(log, installPath)
mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory)
-copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DisplaceExportDirectory, clientPath, ".tga")
-copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DisplaceExportDirectory, clientPath, ".png")
+copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DisplaceExportDirectory, installPath, ".tga")
+copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DisplaceExportDirectory, installPath, ".png")
printLog(log, "")
log.close()
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 8f160a579..d8b93d355 100644
--- a/code/nel/tools/build_gamedata/processes/farbank/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/farbank/0_setup.py
@@ -58,7 +58,7 @@ mkPath(log, ExportBuildDirectory + "/" + FarbankBuildDirectory)
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + BankClientDirectory)
+mkPath(log, InstallDirectory + "/" + BankInstallDirectory)
log.close()
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 334c165c4..b12c77ef9 100644
--- a/code/nel/tools/build_gamedata/processes/farbank/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/farbank/3_install.py
@@ -45,8 +45,8 @@ printLog(log, "")
printLog(log, ">>> Install farbank <<<")
mkPath(log, ExportBuildDirectory + "/" + FarbankBuildDirectory)
-mkPath(log, ClientDataDirectory + "/" + BankClientDirectory)
-copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + FarbankBuildDirectory, ClientDataDirectory + "/" + BankClientDirectory, ".farbank")
+mkPath(log, InstallDirectory + "/" + BankInstallDirectory)
+copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + FarbankBuildDirectory, InstallDirectory + "/" + BankInstallDirectory, ".farbank")
printLog(log, "")
log.close()
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 3eb5a97fd..4d05d3370 100644
--- a/code/nel/tools/build_gamedata/processes/font/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/font/0_setup.py
@@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + FontClientDirectory)
+mkPath(log, InstallDirectory + "/" + FontInstallDirectory)
log.close()
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 4415c1195..30f2e136c 100644
--- a/code/nel/tools/build_gamedata/processes/font/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/font/3_install.py
@@ -43,16 +43,16 @@ printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "")
-clientPath = ClientDataDirectory + "/" + FontClientDirectory
-mkPath(log, clientPath)
+installPath = InstallDirectory + "/" + FontInstallDirectory
+mkPath(log, installPath)
fontExportDir = ExportBuildDirectory + "/" + FontExportDirectory
mkPath(log, fontExportDir)
printLog(log, ">>> Install font <<<")
-copyFilesExtNoTreeIfNeeded(log, fontExportDir, clientPath, ".ttf")
-copyFilesExtNoTreeIfNeeded(log, fontExportDir, clientPath, ".afm")
-copyFilesExtNoTreeIfNeeded(log, fontExportDir, clientPath, ".pfb")
-copyFilesExtNoTreeIfNeeded(log, fontExportDir, clientPath, ".pfm")
+copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".ttf")
+copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".afm")
+copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".pfb")
+copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".pfm")
printLog(log, "")
log.close()
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 7ff7d4281..232c6df9f 100644
--- a/code/nel/tools/build_gamedata/processes/ig/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/ig/0_setup.py
@@ -70,7 +70,7 @@ mkPath(log, ExportBuildDirectory + "/" + IgOtherBuildDirectory)
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-#mkPath(log, ClientDataDirectory + "/" + IgClientDirectory)
+#mkPath(log, InstallDirectory + "/" + IgInstallDirectory)
log.close()
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 219344789..f568645d3 100644
--- a/code/nel/tools/build_gamedata/processes/ig/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/ig/3_install.py
@@ -43,7 +43,7 @@ printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "")
-clientPathIg = ClientDataDirectory + "/" + IgClientDirectory
+clientPathIg = InstallDirectory + "/" + IgInstallDirectory
mkPath(log, clientPathIg)
printLog(log, ">>> Install ig <<<")
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 78c5df79f..77487976d 100644
--- a/code/nel/tools/build_gamedata/processes/ig_light/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/ig_light/0_setup.py
@@ -56,7 +56,7 @@ mkPath(log, ExportBuildDirectory + "/" + IgOtherLightedBuildDirectory)
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + IgClientDirectory)
+mkPath(log, InstallDirectory + "/" + IgInstallDirectory)
log.close()
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 37aba90a7..c510d9263 100644
--- a/code/nel/tools/build_gamedata/processes/ig_light/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/ig_light/3_install.py
@@ -46,7 +46,7 @@ printLog(log, "")
printLog(log, ">>> Install ig_light <<<")
srcDir = ExportBuildDirectory + "/" + IgOtherLightedBuildDirectory
mkPath(log, srcDir)
-destDir = ClientDataDirectory + "/" + IgClientDirectory
+destDir = InstallDirectory + "/" + IgInstallDirectory
mkPath(log, destDir)
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
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 d77614701..3ed0feeed 100644
--- a/code/nel/tools/build_gamedata/processes/interface/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/interface/0_setup.py
@@ -69,7 +69,7 @@ mkPath(log, ExportBuildDirectory + "/" + InterfaceDxtcBuildDirectory)
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + InterfaceClientDirectory)
+mkPath(log, InstallDirectory + "/" + InterfaceInstallDirectory)
log.close()
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 37911ba7e..ed7806f7c 100644
--- a/code/nel/tools/build_gamedata/processes/interface/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/interface/1_export.py
@@ -56,8 +56,8 @@ for dirs in InterfaceSourceDirectories:
mkPath(log, newpath)
for dir in dirs:
mkPath(log, DatabaseDirectory + "/" + dir)
- copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, newpath, ".tga")
- copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, newpath, ".png")
+ copyFilesExtNoSubdirIfNeeded(log, DatabaseDirectory + "/" + dir, newpath, ".tga")
+ copyFilesExtNoSubdirIfNeeded(log, DatabaseDirectory + "/" + dir, newpath, ".png")
printLog(log, "")
# For each interface directory to compress in one DXTC
@@ -65,8 +65,8 @@ printLog(log, ">>> Export interface dxtc <<<")
mkPath(log, ExportBuildDirectory + "/" + InterfaceDxtcExportDirectory)
for dir in InterfaceDxtcSourceDirectories:
mkPath(log, DatabaseDirectory + "/" + dir)
- copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + InterfaceDxtcExportDirectory, ".tga")
- copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + InterfaceDxtcExportDirectory, ".png")
+ copyFilesExtNoSubdirIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + InterfaceDxtcExportDirectory, ".tga")
+ copyFilesExtNoSubdirIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + InterfaceDxtcExportDirectory, ".png")
printLog(log, "")
# For each interface fullscreen directory compress independently all in dds
@@ -96,8 +96,7 @@ printLog(log, ">>> Export interface 3d <<<")
mkPath(log, ExportBuildDirectory + "/" + Interface3DExportDirectory)
for dir in Interface3DSourceDirectories:
mkPath(log, DatabaseDirectory + "/" + dir)
- copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + Interface3DExportDirectory, ".tga")
- copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + Interface3DExportDirectory, ".png")
+ copyFiles(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + Interface3DExportDirectory)
printLog(log, "")
log.close()
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 e8b6ef832..a920c9384 100644
--- a/code/nel/tools/build_gamedata/processes/interface/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/interface/3_install.py
@@ -43,24 +43,24 @@ printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "")
-clientPath = ClientDataDirectory + "/" + InterfaceClientDirectory
-mkPath(log, clientPath)
+installPath = InstallDirectory + "/" + InterfaceInstallDirectory
+mkPath(log, installPath)
printLog(log, ">>> Install interface <<<")
mkPath(log, ExportBuildDirectory + "/" + InterfaceBuildDirectory)
-copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + InterfaceBuildDirectory, clientPath)
+copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + InterfaceBuildDirectory, installPath)
printLog(log, ">>> Install interface dxtc <<<")
mkPath(log, ExportBuildDirectory + "/" + InterfaceDxtcBuildDirectory)
-copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + InterfaceDxtcBuildDirectory, clientPath)
+copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + InterfaceDxtcBuildDirectory, installPath)
printLog(log, ">>> Install interface fullscreen <<<")
mkPath(log, ExportBuildDirectory + "/" + InterfaceFullscreenExportDirectory)
-copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + InterfaceFullscreenExportDirectory, clientPath)
+copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + InterfaceFullscreenExportDirectory, installPath)
printLog(log, ">>> Install interface 3d <<<")
mkPath(log, ExportBuildDirectory + "/" + Interface3DExportDirectory)
-copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + Interface3DExportDirectory, clientPath)
+copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + Interface3DExportDirectory, installPath)
printLog(log, "")
log.close()
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 555226840..a41ec9658 100644
--- a/code/nel/tools/build_gamedata/processes/map/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/map/0_setup.py
@@ -49,6 +49,10 @@ for dir in MapSourceDirectories:
mkPath(log, DatabaseDirectory + "/" + dir)
for dir in MapUncompressedSourceDirectories:
mkPath(log, DatabaseDirectory + "/" + dir)
+if MapHlsBankFileName != None or MapPanoplyFileList != None:
+ for panoplyCfg in MapPanoplySourceDirectories:
+ mkPath(log, DatabaseDirectory + "/" + panoplyCfg[2])
+ mkPath(log, DatabaseDirectory + "/" + panoplyCfg[3])
# Setup export directories
printLog(log, ">>> Setup export directories <<<")
@@ -58,11 +62,16 @@ mkPath(log, ExportBuildDirectory + "/" + MapUncompressedExportDirectory)
# Setup build directories
printLog(log, ">>> Setup build directories <<<")
mkPath(log, ExportBuildDirectory + "/" + MapBuildDirectory)
-mkPath(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory)
+mkPath(log, ExportBuildDirectory + "/" + MapTagBuildDirectory)
+if MapHlsBankFileName != None or MapPanoplyFileList != None:
+ mkPath(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory)
+ mkPath(log, ExportBuildDirectory + "/" + MapPanoplyHlsInfoBuildDirectory)
+ mkPath(log, ExportBuildDirectory + "/" + MapPanoplyHlsBankBuildDirectory)
+ mkPath(log, ExportBuildDirectory + "/" + MapPanoplyCacheBuildDirectory)
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + MapClientDirectory)
+mkPath(log, InstallDirectory + "/" + MapInstallDirectory)
log.close()
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 8a1ba5711..338e1b114 100644
--- a/code/nel/tools/build_gamedata/processes/map/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/map/2_build.py
@@ -50,10 +50,61 @@ PanoplyMaker = findTool(log, ToolDirectories, PanoplyMakerTool, ToolSuffix)
HlsBankMaker = findTool(log, ToolDirectories, HlsBankMakerTool, ToolSuffix)
printLog(log, "")
-printLog(log, ">>> Panoply <<<")
-printLog(log, "********************************")
-printLog(log, "******** TODO ********")
-printLog(log, "********************************")
+buildPanoplyTagPath = ExportBuildDirectory + "/" + MapTagBuildDirectory + "/build_panoply.tag"
+buildCompressTagPath = ExportBuildDirectory + "/" + MapTagBuildDirectory + "/build_compress.tag"
+
+if MapPanoplyFileList != None:
+ printLog(log, ">>> Panoply build <<<")
+ mkPath(log, ExportBuildDirectory + "/" + MapTagBuildDirectory)
+ directoriesCheck = [ ]
+ for panoplyCfg in MapPanoplySourceDirectories:
+ directoriesCheck += [ panoplyCfg[2] ]
+ directoriesCheck += [ panoplyCfg[3] ]
+ if (needUpdateMultiDirNoSubdirFile(log, DatabaseDirectory, directoriesCheck, buildPanoplyTagPath)):
+ mkPath(log, ActiveProjectDirectory + "/generated")
+ mkPath(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory)
+ mkPath(log, ExportBuildDirectory + "/" + MapPanoplyHlsInfoBuildDirectory)
+ mkPath(log, ExportBuildDirectory + "/" + MapPanoplyCacheBuildDirectory)
+ printLog(log, "")
+ printLog(log, ">>> Move panoply and hls to cache <<<")
+ removeFilesDirsRecursive(log, ExportBuildDirectory + "/" + MapPanoplyCacheBuildDirectory)
+ moveDir(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory, ExportBuildDirectory + "/" + MapPanoplyCacheBuildDirectory)
+ mkPath(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory)
+ moveFilesNoSubdir(log, ExportBuildDirectory + "/" + MapPanoplyHlsInfoBuildDirectory, ExportBuildDirectory + "/" + MapPanoplyCacheBuildDirectory)
+ printLog(log, "")
+ for panoplyCfg in MapPanoplySourceDirectories:
+ printLog(log, ">>> Panoply " + panoplyCfg[1] + " <<<")
+ mkPath(log, DatabaseDirectory + "/" + panoplyCfg[2])
+ mkPath(log, DatabaseDirectory + "/" + panoplyCfg[3])
+ cfg = open(ActiveProjectDirectory + "/generated/current_panoply.cfg", "w")
+ cfgCommon = open(ActiveProjectDirectory + "/" + panoplyCfg[0], "r")
+ cfgRace = open(ActiveProjectDirectory + "/" + panoplyCfg[1], "r")
+ cfg.write("\n")
+ cfg.write("// CURRENT PANOPLY CONFIGURATION\n")
+ cfg.write("\n")
+ cfg.write("input_path = \"" + DatabaseDirectory + "/" + panoplyCfg[2] + "\";\n")
+ cfg.write("additionnal_paths = \"" + DatabaseDirectory + "/" + panoplyCfg[3] + "\";\n")
+ cfg.write("output_path = \"" + ExportBuildDirectory + "/" + MapPanoplyBuildDirectory + "\";\n")
+ cfg.write("hls_info_path = \"" + ExportBuildDirectory + "/" + MapPanoplyHlsInfoBuildDirectory + "\";\n")
+ cfg.write("cache_path = \"" + ExportBuildDirectory + "/" + MapPanoplyCacheBuildDirectory + "\";\n")
+ cfg.write("\n")
+ cfg.write("/////////////////////////////////////////////\n")
+ cfg.write("\n")
+ for line in cfgCommon:
+ cfg.write(line)
+ for line in cfgRace:
+ cfg.write(line)
+ cfg.close()
+ cfgCommon.close()
+ cfgRace.close()
+ subprocess.call([ PanoplyMaker, ActiveProjectDirectory + "/generated/current_panoply.cfg" ])
+ printLog(log, "")
+ tagFile = open(buildPanoplyTagPath, "w")
+ tagFile.write(time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())) + "\n")
+ tagFile.close()
+ else:
+ printLog(log, "SKIP *.*")
+ printLog(log, "")
printLog(log, ">>> Compress TGA and PNG maps to DDS <<<")
if TgaToDds == "":
@@ -61,34 +112,55 @@ if TgaToDds == "":
elif ExecTimeout == "":
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
else:
- sourcePath = ExportBuildDirectory + "/" + MapExportDirectory
- mkPath(log, sourcePath)
destPath = ExportBuildDirectory + "/" + MapBuildDirectory
mkPath(log, destPath)
- files = findFilesNoSubdir(log, sourcePath, ".tga")
- for file in files:
- sourceFile = sourcePath + "/" + file
- destFile = destPath + "/" + os.path.basename(file)[0:-len(".tga")] + ".dds"
- if needUpdateLogRemoveDest(log, sourceFile, destFile):
- subprocess.call([ ExecTimeout, str(MapsBuildTimeout), TgaToDds, sourceFile, "-o", destFile, "-m", "-r" + str(ReduceBitmapFactor) ])
- files = findFilesNoSubdir(log, sourcePath, ".png")
- for file in files:
- sourceFile = sourcePath + "/" + file
- destFile = destPath + "/" + os.path.basename(file)[0:-len(".png")] + ".dds"
- if needUpdateLogRemoveDest(log, sourceFile, destFile):
- subprocess.call([ ExecTimeout, str(MapsBuildTimeout), TgaToDds, sourceFile, "-o", destFile, "-m", "-r" + str(ReduceBitmapFactor) ])
- copyFilesExtNoSubdirIfNeeded(log, sourcePath, destPath, ".dds")
+ sourcePaths = [ ExportBuildDirectory + "/" + MapExportDirectory ]
+ writeTag = 0
+ if MapPanoplyFileList != None:
+ if needUpdate(log, buildPanoplyTagPath, buildCompressTagPath):
+ sourcePaths += [ ExportBuildDirectory + "/" + MapPanoplyBuildDirectory ]
+ else:
+ printLog(log, "SKIP " + ExportBuildDirectory + "/" + MapPanoplyBuildDirectory + "/*.*")
+ for sourcePath in sourcePaths:
+ mkPath(log, sourcePath)
+ files = os.listdir(sourcePath)
+ len_tga_png = len(".tga")
+ len_dds = len(".dds")
+ for fileName in files:
+ if isLegalFileName(fileName):
+ sourceFile = sourcePath + "/" + fileName
+ if os.path.isfile(sourceFile):
+ if (fileName[-len_tga_png:].lower() == ".tga") or (fileName[-len_tga_png:].lower() == ".png"):
+ destFile = destPath + "/" + os.path.basename(fileName)[0:-len_tga_png] + ".dds"
+ if needUpdateLogRemoveDest(log, sourceFile, destFile):
+ subprocess.call([ ExecTimeout, str(MapsBuildTimeout), TgaToDds, sourceFile, "-o", destFile, "-m", "-r" + str(ReduceBitmapFactor) ])
+ writeTag = 1
+ elif fileName[-len_dds:].lower() == ".dds":
+ copyFileIfNeeded(log, sourceFile, destPath + "/" + os.path.basename(fileName))
+ writeTag = 1
+ elif not os.path.isdir(sourceFile):
+ printLog(log, "FAIL ?! file not dir or file ?! " + sourceFile)
+ if writeTag:
+ tagFile = open(buildCompressTagPath, "w")
+ tagFile.write(time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())) + "\n")
+ tagFile.close()
printLog(log, "")
-printLog(log, ">>> Compress panoply maps to DDS <<<")
-printLog(log, "********************************")
-printLog(log, "******** TODO ********")
-printLog(log, "********************************")
-
-printLog(log, ">>> Build the HLSBank (if hlsInfo present, and if build wanted) <<<")
-printLog(log, "********************************")
-printLog(log, "******** TODO ********")
-printLog(log, "********************************")
+if MapHlsBankFileName != None:
+ printLog(log, ">>> Build the HLSBank <<<")
+ if HlsBankMaker == "":
+ toolLogFail(log, HlsBankMakerTool, ToolSuffix)
+ else:
+ mkPath(log, ExportBuildDirectory + "/" + MapPanoplyHlsInfoBuildDirectory)
+ mkPath(log, ExportBuildDirectory + "/" + MapPanoplyHlsBankBuildDirectory)
+ hlsBankPath = ExportBuildDirectory + "/" + MapPanoplyHlsBankBuildDirectory + "/" + MapHlsBankFileName
+ if (needUpdate(log, buildPanoplyTagPath, hlsBankPath) or needUpdate(log, buildCompressTagPath, hlsBankPath)):
+ if os.path.isfile(hlsBankPath):
+ os.remove(hlsBankPath)
+ subprocess.call([ HlsBankMaker, ExportBuildDirectory + "/" + MapPanoplyHlsInfoBuildDirectory, hlsBankPath ])
+ else:
+ printLog(log,"SKIP " + hlsBankPath)
+ printLog(log, "")
log.close()
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 4c0a86360..ffcefdf07 100644
--- a/code/nel/tools/build_gamedata/processes/map/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/map/3_install.py
@@ -43,32 +43,46 @@ printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "")
-clientPath = ClientDataDirectory + "/" + MapClientDirectory
-mkPath(log, clientPath)
+installPath = InstallDirectory + "/" + MapInstallDirectory
+mkPath(log, installPath)
printLog(log, ">>> Install map <<<")
-sourcePath = ExportBuildDirectory + "/" + MapBuildDirectory
-mkPath(log, sourcePath)
-copyFilesExtNoSubdirIfNeeded(log, sourcePath, clientPath, ".dds")
-copyFilesExtNoSubdirIfNeeded(log, sourcePath, clientPath, ".png")
-copyFilesExtNoSubdirIfNeeded(log, sourcePath, clientPath, ".tga")
-sourcePath = ExportBuildDirectory + "/" + MapUncompressedExportDirectory
-mkPath(log, sourcePath)
-copyFilesExtNoSubdirIfNeeded(log, sourcePath, clientPath, ".dds")
-copyFilesExtNoSubdirIfNeeded(log, sourcePath, clientPath, ".png")
-copyFilesExtNoSubdirIfNeeded(log, sourcePath, clientPath, ".tga")
+sourcePaths = [ ExportBuildDirectory + "/" + MapBuildDirectory ] + [ ExportBuildDirectory + "/" + MapUncompressedExportDirectory ]
+for sourcePath in sourcePaths:
+ mkPath(log, sourcePath)
+ files = os.listdir(sourcePath)
+ len_ext = 4
+ for fileName in files:
+ if isLegalFileName(fileName):
+ sourceFile = sourcePath + "/" + fileName
+ if os.path.isfile(sourceFile):
+ if (fileName[-len_ext:].lower() == ".tga") or (fileName[-len_ext:].lower() == ".png") or (fileName[-len_ext:].lower() == ".dds"):
+ copyFileIfNeeded(log, sourceFile, installPath + "/" + os.path.basename(fileName))
+ elif not os.path.isdir(sourceFile):
+ printLog(log, "FAIL ?! file not dir or file ?! " + sourceFile)
-printLog(log, ">>> Install map panoply <<<")
-printLog(log, "********************************")
-printLog(log, "******** TODO ********")
-printLog(log, "********************************")
-mkPath(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory)
-copyFilesExtNoSubdirIfNeeded(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory, clientPath, ".dds")
+if MapPanoplyFileList != None:
+ printLog(log, ">>> Install panoply file list <<<")
+ buildPanoplyTagPath = ExportBuildDirectory + "/" + MapTagBuildDirectory + "/build_panoply.tag"
+ mkPath(log, ExportBuildDirectory + "/" + MapTagBuildDirectory)
+ if needUpdate(log, buildPanoplyTagPath, installPath + "/" + MapPanoplyFileList):
+ sourcePath = ExportBuildDirectory + "/" + MapPanoplyBuildDirectory
+ mkPath(log, sourcePath)
+ printLog(log, "WRITE " + installPath + "/" + MapPanoplyFileList)
+ lf = open(installPath + "/" + MapPanoplyFileList, "w")
+ files = os.listdir(sourcePath)
+ for file in files:
+ if isLegalFileName(file):
+ lf.write(file + "\n")
+ lf.close()
+ else:
+ printLog(log, "SKIP " + installPath + "/" + MapPanoplyBuildDirectory)
-printLog(log, ">>> Install map hlsbank <<<")
-printLog(log, "********************************")
-printLog(log, "******** TODO ********")
-printLog(log, "********************************")
+if MapHlsBankFileName != None:
+ printLog(log, ">>> Install map hlsbank <<<")
+ sourcePath = ExportBuildDirectory + "/" + MapPanoplyHlsBankBuildDirectory
+ mkPath(log, sourcePath)
+ copyFilesExtNoSubdirIfNeeded(log, sourcePath, installPath, ".hlsbank")
printLog(log, "")
log.close()
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 db68c6484..ae06f1147 100644
--- a/code/nel/tools/build_gamedata/processes/pacs_prim/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/pacs_prim/0_setup.py
@@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + PacsPrimClientDirectory)
+mkPath(log, InstallDirectory + "/" + PacsPrimInstallDirectory)
log.close()
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 b598d84bf..5779a8cd7 100644
--- a/code/nel/tools/build_gamedata/processes/pacs_prim/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/pacs_prim/1_export.py
@@ -6,7 +6,7 @@
#
# \file 1_export.py
# \brief Export pacs_prim
-# \date 2010-09-03-12-46-GMT
+# \date 2010-09-19-14-19-GMT
# \author Jan Boon (Kaetemi)
# Python port of game data build pipeline.
# Export pacs_prim
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 abd174652..ae5a741ac 100644
--- a/code/nel/tools/build_gamedata/processes/pacs_prim/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/pacs_prim/3_install.py
@@ -43,12 +43,12 @@ printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "")
-clientPath = ClientDataDirectory + "/" + PacsPrimClientDirectory
-mkPath(log, clientPath)
+installPath = InstallDirectory + "/" + PacsPrimInstallDirectory
+mkPath(log, installPath)
printLog(log, ">>> Install pacs_prim <<<")
mkPath(log, ExportBuildDirectory + "/" + PacsPrimExportDirectory)
-copyFilesExtNoSubdirIfNeeded(log, ExportBuildDirectory + "/" + PacsPrimExportDirectory, clientPath, ".pacs_prim")
+copyFilesExtNoSubdirIfNeeded(log, ExportBuildDirectory + "/" + PacsPrimExportDirectory, installPath, ".pacs_prim")
printLog(log, "")
log.close()
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 54c1ee692..7de51f437 100644
--- a/code/nel/tools/build_gamedata/processes/ps/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/ps/0_setup.py
@@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + PsClientDirectory)
+mkPath(log, InstallDirectory + "/" + PsInstallDirectory)
log.close()
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 67671d031..a49f4dfc2 100644
--- a/code/nel/tools/build_gamedata/processes/ps/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/ps/3_install.py
@@ -46,7 +46,7 @@ printLog(log, "")
printLog(log, ">>> Install ps <<<")
srcDir = ExportBuildDirectory + "/" + PsExportDirectory
mkPath(log, srcDir)
-destDir = ClientDataDirectory + "/" + PsClientDirectory
+destDir = InstallDirectory + "/" + PsInstallDirectory
mkPath(log, destDir)
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
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 042dde26c..96295f2b3 100644
--- a/code/nel/tools/build_gamedata/processes/rbank/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/rbank/0_setup.py
@@ -74,7 +74,7 @@ mkPath(log, ExportBuildDirectory + "/" + RbankOutputBuildDirectory)
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + PacsClientDirectory)
+mkPath(log, InstallDirectory + "/" + PacsInstallDirectory)
log.close()
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 5540c0a43..54679a28a 100644
--- a/code/nel/tools/build_gamedata/processes/rbank/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/rbank/1_export.py
@@ -6,7 +6,7 @@
#
# \file 1_export.py
# \brief Export rbank
-# \date 2010-09-03-12-46-GMT
+# \date 2010-09-19-14-19-GMT
# \author Jan Boon (Kaetemi)
# Python port of game data build pipeline.
# Export rbank
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 363afc3b2..ad79019c8 100644
--- a/code/nel/tools/build_gamedata/processes/rbank/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/rbank/3_install.py
@@ -44,21 +44,21 @@ printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "")
printLog(log, ">>> Install rbank <<<")
-clientPath = ClientDataDirectory + "/" + PacsClientDirectory
-mkPath(log, clientPath)
+installPath = InstallDirectory + "/" + PacsInstallDirectory
+mkPath(log, installPath)
srcPath = ExportBuildDirectory + "/" + RbankOutputBuildDirectory
mkPath(log, srcPath)
-copyFilesNoTreeIfNeeded(log, srcPath, clientPath)
-#clientPath = ClientDataDirectory + "/" + PacsClientDirectory
-#mkPath(log, clientPath)
+copyFilesNoTreeIfNeeded(log, srcPath, installPath)
+#installPath = InstallDirectory + "/" + PacsInstallDirectory
+#mkPath(log, installPath)
#srcPath = ExportBuildDirectory + "/" + RbankRetrieversBuildDirectory
#mkPath(log, srcPath)
-#copyFileIfNeeded(log, srcPath + "/tempMerged.rbank", clientPath + "/" + RbankRbankName + ".rbank")
-#copyFileIfNeeded(log, srcPath + "/tempMerged.gr", clientPath + "/" + RbankRbankName + ".gr")
+#copyFileIfNeeded(log, srcPath + "/tempMerged.rbank", installPath + "/" + RbankRbankName + ".rbank")
+#copyFileIfNeeded(log, srcPath + "/tempMerged.gr", installPath + "/" + RbankRbankName + ".gr")
#for file in findFiles(log, srcPath, "", ".lr"):
-# copyFileIfNeeded(log, srcPath + "/" + file, clientPath + "/" + file.replace("tempMerged", RbankRbankName))
+# copyFileIfNeeded(log, srcPath + "/" + file, installPath + "/" + file.replace("tempMerged", RbankRbankName))
# mkPath(log, ExportBuildDirectory + "/" + rbankBuildDirectory)
-# copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + rbankBuildDirectory, clientPath)
+# copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + rbankBuildDirectory, installPath)
#copyFileIfNeeded
printLog(log, "")
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 5183c38de..0f93e1574 100644
--- a/code/nel/tools/build_gamedata/processes/shape/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/shape/0_setup.py
@@ -47,8 +47,11 @@ printLog(log, "")
printLog(log, ">>> Setup source directories <<<")
for dir in ShapeSourceDirectories:
mkPath(log, DatabaseDirectory + "/" + dir)
-for dir in MapSourceDirectories:
- mkPath(log, DatabaseDirectory + "/" + dir)
+
+# Setup pipeline lookup directories
+printLog(log, ">>> Setup pipeline lookup directories <<<")
+for dir in MapLookupDirectories:
+ mkPath(log, ExportBuildDirectory + "/" + dir)
# Setup export directories
printLog(log, ">>> Setup export directories <<<")
@@ -69,8 +72,8 @@ mkPath(log, ExportBuildDirectory + "/" + ShapeLightmap16BitsBuildDirectory)
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + ShapeClientDirectory)
-mkPath(log, ClientDataDirectory + "/" + LightmapClientDirectory)
+mkPath(log, InstallDirectory + "/" + ShapeInstallDirectory)
+mkPath(log, InstallDirectory + "/" + LightmapInstallDirectory)
log.close()
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 60873e12a..25f421ad1 100644
--- a/code/nel/tools/build_gamedata/processes/shape/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/shape/2_build.py
@@ -111,8 +111,8 @@ if len(CoarseMeshTextureNames) > 0:
cf.write("search_path = \n")
cf.write("{\n")
cf.write("\t\"" + shapeWithCoarseMesh + "\", \n")
- for dir in MapSourceDirectories:
- cf.write("\t\"" + DatabaseDirectory + "/" + dir + "\", \n")
+ for dir in MapLookupDirectories:
+ cf.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
cf.write("};\n")
cf.write("\n")
cf.write("list_mesh = \n")
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 393216e8f..0d206f530 100644
--- a/code/nel/tools/build_gamedata/processes/shape/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/shape/3_install.py
@@ -44,24 +44,24 @@ printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "")
printLog(log, ">>> Install shape <<<")
-clientPath = ClientDataDirectory + "/" + ShapeClientDirectory
-mkPath(log, clientPath)
+installPath = InstallDirectory + "/" + ShapeInstallDirectory
+mkPath(log, installPath)
mkPath(log, ExportBuildDirectory + "/" + ShapeClodtexBuildDirectory)
-copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeClodtexBuildDirectory, clientPath, ".shape")
+copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeClodtexBuildDirectory, installPath, ".shape")
mkPath(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory)
-copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory, clientPath, ".shape")
-copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory, clientPath, ".dds")
+copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory, installPath, ".shape")
+copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory, installPath, ".dds")
mkPath(log, ExportBuildDirectory + "/" + ShapeAnimExportDirectory)
-copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeAnimExportDirectory, clientPath, ".anim")
+copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeAnimExportDirectory, installPath, ".anim")
# ls anim | grep ".anim" >> $client_directory/auto_animations_list.txt
printLog(log, ">>> Install shape lightmaps <<<")
-clientPath = ClientDataDirectory + "/" + LightmapClientDirectory
-mkPath(log, clientPath)
+installPath = InstallDirectory + "/" + LightmapInstallDirectory
+mkPath(log, installPath)
mkPath(log, ExportBuildDirectory + "/" + ShapeLightmap16BitsBuildDirectory)
-copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeLightmap16BitsBuildDirectory, clientPath, ".tga")
+copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeLightmap16BitsBuildDirectory, installPath, ".tga")
printLog(log, "")
log.close()
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 e72948c6f..deffd0d9d 100644
--- a/code/nel/tools/build_gamedata/processes/sheet_id/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/sheet_id/0_setup.py
@@ -46,18 +46,16 @@ printLog(log, "")
# Setup source directories
printLog(log, ">>> Setup source directories <<<")
mkPath(log, LeveldesignDirectory)
-mkPath(log, LeveldesignDfnDirectory)
+mkPath(log, LeveldesignWorldDirectory)
# Setup export directories
printLog(log, ">>> Setup export directories <<<")
# Setup build directories
printLog(log, ">>> Setup build directories <<<")
-mkPath(log, ExportBuildDirectory + "/" + SheetIdBuildDirectory)
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + SheetIdClientDirectory)
log.close()
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 aebadb110..f935a4500 100644
--- a/code/nel/tools/build_gamedata/processes/sheet_id/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/sheet_id/2_build.py
@@ -53,9 +53,8 @@ if MakeSheetId == "":
toolLogFail(log, MakeSheetIdTool, ToolSuffix)
else:
mkPath(log, LeveldesignDirectory)
- mkPath(log, LeveldesignDfnDirectory)
- mkPath(log, ExportBuildDirectory + "/" + SheetIdBuildDirectory)
- subprocess.call([ MakeSheetId, "-c" + ScriptDirectory + "/configuration/make_sheet_id.cfg", "-o" + ExportBuildDirectory + "/" + SheetIdBuildDirectory + "/" + "sheet_id.bin", LeveldesignDirectory ])
+ mkPath(log, LeveldesignWorldDirectory)
+ subprocess.call([ MakeSheetId, "-o" + LeveldesignDirectory + "/game_elem/sheet_id.bin", LeveldesignDirectory + "/game_elem", LeveldesignDirectory + "/game_element", LeveldesignWorldDirectory ])
printLog(log, "")
log.close()
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 72ef526aa..736db921c 100644
--- a/code/nel/tools/build_gamedata/processes/sheet_id/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/sheet_id/3_install.py
@@ -43,13 +43,6 @@ printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "")
-clientPath = ClientDataDirectory + "/" + SheetIdClientDirectory
-mkPath(log, clientPath)
-
-printLog(log, ">>> Install sheet_id <<<")
-mkPath(log, ExportBuildDirectory + "/" + SheetIdBuildDirectory)
-copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SheetIdBuildDirectory, clientPath, ".bin")
-
printLog(log, "")
log.close()
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 3f13ff715..4cee78e17 100644
--- a/code/nel/tools/build_gamedata/processes/sheets/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/sheets/0_setup.py
@@ -47,18 +47,20 @@ printLog(log, "")
printLog(log, ">>> Setup source directories <<<")
mkPath(log, LeveldesignDirectory)
mkPath(log, LeveldesignDfnDirectory)
+mkPath(log, DataCommonDirectory)
+mkPath(log, GamedevDirectory)
+mkPath(log, PrimitivesDirectory)
# Setup export directories
printLog(log, ">>> Setup export directories <<<")
# Setup build directories
printLog(log, ">>> Setup build directories <<<")
-mkPath(log, ExportBuildDirectory + "/" + SheetIdBuildDirectory)
mkPath(log, ExportBuildDirectory + "/" + SheetsBuildDirectory)
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + SheetsClientDirectory)
+mkPath(log, InstallDirectory + "/" + SheetsInstallDirectory)
log.close()
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 0b439ab4b..511b05004 100644
--- a/code/nel/tools/build_gamedata/processes/sheets/2_build.py
+++ b/code/nel/tools/build_gamedata/processes/sheets/2_build.py
@@ -44,19 +44,39 @@ printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "")
# Find tools
-BuildSheets = findTool(log, ToolDirectories, BuildSheetsTool, ToolSuffix)
+SheetsPacker = findTool(log, ToolDirectories, SheetsPackerTool, ToolSuffix)
printLog(log, "")
# For each sheets directory
printLog(log, ">>> Build sheets <<<")
-if BuildSheets == "":
- toolLogFail(log, BuildSheetsTool, ToolSuffix)
+if SheetsPacker == "":
+ toolLogFail(log, SheetsPackerTool, ToolSuffix)
else:
mkPath(log, LeveldesignDirectory)
mkPath(log, LeveldesignDfnDirectory)
- mkPath(log, ExportBuildDirectory + "/" + SheetIdBuildDirectory)
+ mkPath(log, DataCommonDirectory)
+ mkPath(log, GamedevDirectory)
+ mkPath(log, PrimitivesDirectory)
mkPath(log, ExportBuildDirectory + "/" + SheetsBuildDirectory)
- subprocess.call([ BuildSheets, LeveldesignDirectory, LeveldesignDfnDirectory, ExportBuildDirectory + "/" + SheetIdBuildDirectory, ExportBuildDirectory + "/" + SheetsBuildDirectory ])
+ cf = open("sheets_packer.cfg", "w")
+ cf.write("\n")
+ cf.write("// SHEETS PACKER CONFIG FILE\n")
+ cf.write("\n")
+ cf.write("DataPath = \n")
+ cf.write("{\n")
+ cf.write("\t\"" + LeveldesignDirectory + "\", \n")
+ cf.write("\t\"" + LeveldesignDfnDirectory + "\", \n")
+ cf.write("\t\"" + DataCommonDirectory + "\", \n")
+ cf.write("\t\"" + GamedevDirectory + "\", \n")
+ cf.write("\t\"" + PrimitivesDirectory + "\", \n")
+ cf.write("};\n")
+ cf.write("WorldSheet = \"" + WorldSheet + "\";\n")
+ cf.write("PrimitivesPath = \"" + PrimitivesDirectory + "\";\n")
+ cf.write("OutputDataPath = \"" + ExportBuildDirectory + "/" + SheetsBuildDirectory + "\";\n")
+ cf.write("LigoPrimitiveClass = \"" + LigoPrimitiveClass + "\";\n")
+ cf.write("\n")
+ cf.close()
+ subprocess.call([ SheetsPacker ])
printLog(log, "")
log.close()
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 9ea39b797..98b5cb825 100644
--- a/code/nel/tools/build_gamedata/processes/sheets/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/sheets/3_install.py
@@ -43,12 +43,12 @@ printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "")
-clientPath = ClientDataDirectory + "/" + SheetsClientDirectory
-mkPath(log, clientPath)
+installPath = InstallDirectory + "/" + SheetsInstallDirectory
+mkPath(log, installPath)
printLog(log, ">>> Install sheets <<<")
mkPath(log, ExportBuildDirectory + "/" + SheetsBuildDirectory)
-copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SheetsBuildDirectory, clientPath, ".packed_sheets")
+copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SheetsBuildDirectory, installPath, ".packed_sheets")
printLog(log, "")
log.close()
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 c45805523..5b55bce40 100644
--- a/code/nel/tools/build_gamedata/processes/skel/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/skel/0_setup.py
@@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + SkelClientDirectory)
+mkPath(log, InstallDirectory + "/" + SkelInstallDirectory)
log.close()
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 b468ed7d8..af73024c5 100644
--- a/code/nel/tools/build_gamedata/processes/skel/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/skel/1_export.py
@@ -6,7 +6,7 @@
#
# \file 1_export.py
# \brief Export skel
-# \date 2010-09-03-12-46-GMT
+# \date 2010-09-19-14-19-GMT
# \author Jan Boon (Kaetemi)
# Python port of game data build pipeline.
# Export skel
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 a3b2c874d..b705f482c 100644
--- a/code/nel/tools/build_gamedata/processes/skel/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/skel/3_install.py
@@ -43,12 +43,12 @@ printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "")
-clientPath = ClientDataDirectory + "/" + SkelClientDirectory
-mkPath(log, clientPath)
+installPath = InstallDirectory + "/" + SkelInstallDirectory
+mkPath(log, installPath)
printLog(log, ">>> Install skel <<<")
mkPath(log, ExportBuildDirectory + "/" + SkelExportDirectory)
-copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SkelExportDirectory, clientPath)
+copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SkelExportDirectory, installPath)
printLog(log, "")
log.close()
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 9ed9ad5a0..4b2b65be5 100644
--- a/code/nel/tools/build_gamedata/processes/smallbank/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/smallbank/0_setup.py
@@ -56,7 +56,7 @@ printLog(log, ">>> Setup build directories <<<")
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + BankClientDirectory)
+mkPath(log, InstallDirectory + "/" + BankInstallDirectory)
log.close()
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 b1093c043..ae3d3b8c7 100644
--- a/code/nel/tools/build_gamedata/processes/smallbank/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/smallbank/3_install.py
@@ -43,12 +43,12 @@ printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "")
-clientPath = ClientDataDirectory + "/" + BankClientDirectory
-mkPath(log, clientPath)
+installPath = InstallDirectory + "/" + BankInstallDirectory
+mkPath(log, installPath)
printLog(log, ">>> Install smallbank <<<")
mkPath(log, ExportBuildDirectory + "/" + SmallbankExportDirectory)
-copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SmallbankExportDirectory, clientPath, ".smallbank")
+copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SmallbankExportDirectory, installPath, ".smallbank")
printLog(log, "")
log.close()
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 ec039517a..b3e9ada60 100644
--- a/code/nel/tools/build_gamedata/processes/sound/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/sound/0_setup.py
@@ -59,8 +59,8 @@ mkPath(log, ExportBuildDirectory + "/" + SoundSamplebanksBuildDirectory)
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + SoundSheetsClientDirectory)
-mkPath(log, ClientDataDirectory + "/" + SoundSamplebanksClientDirectory)
+mkPath(log, InstallDirectory + "/" + SoundSheetsInstallDirectory)
+mkPath(log, InstallDirectory + "/" + SoundSamplebanksInstallDirectory)
log.close()
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 90bd31d42..6184c48be 100644
--- a/code/nel/tools/build_gamedata/processes/sound/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/sound/3_install.py
@@ -45,13 +45,13 @@ printLog(log, "")
printLog(log, ">>> Install sound packed_sheets <<<")
mkPath(log, ExportBuildDirectory + "/" + SoundSheetsBuildDirectory)
-mkPath(log, ClientDataDirectory + "/" + SoundSheetsClientDirectory)
-copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SoundSheetsBuildDirectory, ClientDataDirectory + "/" + SoundSheetsClientDirectory, ".packed_sheets")
+mkPath(log, InstallDirectory + "/" + SoundSheetsInstallDirectory)
+copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SoundSheetsBuildDirectory, InstallDirectory + "/" + SoundSheetsInstallDirectory, ".packed_sheets")
printLog(log, ">>> Install sound samplebanks <<<")
mkPath(log, ExportBuildDirectory + "/" + SoundSamplebanksBuildDirectory)
-mkPath(log, ClientDataDirectory + "/" + SoundSamplebanksClientDirectory)
-copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SoundSamplebanksBuildDirectory, ClientDataDirectory + "/" + SoundSamplebanksClientDirectory, ".sample_bank")
+mkPath(log, InstallDirectory + "/" + SoundSamplebanksInstallDirectory)
+copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SoundSamplebanksBuildDirectory, InstallDirectory + "/" + SoundSamplebanksInstallDirectory, ".sample_bank")
printLog(log, "")
log.close()
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 28da85a07..d00e67eed 100644
--- a/code/nel/tools/build_gamedata/processes/swt/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/swt/0_setup.py
@@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + SwtClientDirectory)
+mkPath(log, InstallDirectory + "/" + SwtInstallDirectory)
log.close()
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 9ac863866..3b8da1d0f 100644
--- a/code/nel/tools/build_gamedata/processes/swt/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/swt/1_export.py
@@ -6,7 +6,7 @@
#
# \file 1_export.py
# \brief Export swt
-# \date 2010-09-03-12-46-GMT
+# \date 2010-09-19-14-19-GMT
# \author Jan Boon (Kaetemi)
# Python port of game data build pipeline.
# Export swt
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 76ce2edaf..912af9625 100644
--- a/code/nel/tools/build_gamedata/processes/swt/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/swt/3_install.py
@@ -43,12 +43,12 @@ printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "")
-clientPath = ClientDataDirectory + "/" + SwtClientDirectory
-mkPath(log, clientPath)
+installPath = InstallDirectory + "/" + SwtInstallDirectory
+mkPath(log, installPath)
printLog(log, ">>> Install skeleton weigths <<<")
mkPath(log, ExportBuildDirectory + "/" + SwtExportDirectory)
-copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SwtExportDirectory, clientPath)
+copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SwtExportDirectory, installPath)
printLog(log, "")
log.close()
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 8657a63cb..83673e4e1 100644
--- a/code/nel/tools/build_gamedata/processes/tiles/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/tiles/0_setup.py
@@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + TilesClientDirectory)
+mkPath(log, InstallDirectory + "/" + TilesInstallDirectory)
log.close()
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 39b8ac141..c8ee504e2 100644
--- a/code/nel/tools/build_gamedata/processes/tiles/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/tiles/3_install.py
@@ -44,9 +44,9 @@ printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "")
printLog(log, ">>> Install tiles <<<")
-mkPath(log, ClientDataDirectory + "/" + TilesClientDirectory)
+mkPath(log, InstallDirectory + "/" + TilesInstallDirectory)
mkPath(log, ExportBuildDirectory + "/" + TilesExportDirectory)
-copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + TilesExportDirectory, ClientDataDirectory + "/" + TilesClientDirectory)
+copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + TilesExportDirectory, InstallDirectory + "/" + TilesInstallDirectory)
printLog(log, "")
log.close()
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 5c41088e8..67f7211aa 100644
--- a/code/nel/tools/build_gamedata/processes/veget/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/veget/0_setup.py
@@ -58,7 +58,7 @@ printLog(log, ">>> Setup build directories <<<")
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + VegetClientDirectory)
+mkPath(log, InstallDirectory + "/" + VegetInstallDirectory)
log.close()
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 9dec2c5e4..86a9d770b 100644
--- a/code/nel/tools/build_gamedata/processes/veget/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/veget/1_export.py
@@ -6,7 +6,7 @@
#
# \file 1_export.py
# \brief Export veget
-# \date 2010-09-03-12-46-GMT
+# \date 2010-09-19-14-19-GMT
# \author Jan Boon (Kaetemi)
# Python port of game data build pipeline.
# Export veget
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 69a2ec539..a772e4d53 100644
--- a/code/nel/tools/build_gamedata/processes/veget/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/veget/3_install.py
@@ -46,9 +46,9 @@ printLog(log, "")
printLog(log, ">>> Install veget <<<")
exportPath = ExportBuildDirectory + "/" + VegetExportDirectory
mkPath(log, exportPath)
-clientPath = ClientDataDirectory + "/" + VegetClientDirectory
-mkPath(log, clientPath)
-copyFilesNoTreeIfNeeded(log, exportPath, clientPath)
+installPath = InstallDirectory + "/" + VegetInstallDirectory
+mkPath(log, installPath)
+copyFilesNoTreeIfNeeded(log, exportPath, installPath)
printLog(log, "")
log.close()
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 8fd055f3c..5b820b133 100644
--- a/code/nel/tools/build_gamedata/processes/vegetset/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/vegetset/0_setup.py
@@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + VegetSetClientDirectory)
+mkPath(log, InstallDirectory + "/" + VegetSetInstallDirectory)
log.close()
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 94a3e4c0b..fffb0e204 100644
--- a/code/nel/tools/build_gamedata/processes/vegetset/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/vegetset/3_install.py
@@ -43,12 +43,12 @@ printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "")
-clientPath = ClientDataDirectory + "/" + VegetSetClientDirectory
-mkPath(log, clientPath)
+installPath = InstallDirectory + "/" + VegetSetInstallDirectory
+mkPath(log, installPath)
printLog(log, ">>> Install vegetset <<<")
mkPath(log, ExportBuildDirectory + "/" + VegetSetExportDirectory)
-copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + VegetSetExportDirectory, clientPath, ".vegetset")
+copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + VegetSetExportDirectory, installPath, ".vegetset")
printLog(log, "")
log.close()
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 e6dc014d9..3f5fd835f 100644
--- a/code/nel/tools/build_gamedata/processes/zone/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/zone/0_setup.py
@@ -58,7 +58,7 @@ mkPath(log, ExportBuildDirectory + "/" + ZoneWeldBuildDirectory)
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + ZoneClientDirectory)
+mkPath(log, InstallDirectory + "/" + ZoneInstallDirectory)
log.close()
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 d8b936d2a..8b34753c9 100644
--- a/code/nel/tools/build_gamedata/processes/zone/1_export.py
+++ b/code/nel/tools/build_gamedata/processes/zone/1_export.py
@@ -6,7 +6,7 @@
#
# \file 1_export.py
# \brief Export zone
-# \date 2010-09-03-12-46-GMT
+# \date 2010-09-19-14-19-GMT
# \author Jan Boon (Kaetemi)
# Python port of game data build pipeline.
# Export zone
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 7ce53d05c..4b9b62cc2 100644
--- a/code/nel/tools/build_gamedata/processes/zone_light/0_setup.py
+++ b/code/nel/tools/build_gamedata/processes/zone_light/0_setup.py
@@ -63,9 +63,9 @@ mkPath(log, ExportBuildDirectory + "/" + IgLandBuildDirectory)
# Setup client directories
printLog(log, ">>> Setup client directories <<<")
-mkPath(log, ClientDataDirectory + "/" + ZoneClientDirectory)
-mkPath(log, ClientDataDirectory + "/" + IgClientDirectory)
-mkPath(log, ClientDataDirectory + "/" + WaterMapsClientDirectory)
+mkPath(log, InstallDirectory + "/" + ZoneInstallDirectory)
+mkPath(log, InstallDirectory + "/" + IgInstallDirectory)
+mkPath(log, InstallDirectory + "/" + WaterMapsInstallDirectory)
log.close()
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 0edfe83dc..062031bb4 100644
--- a/code/nel/tools/build_gamedata/processes/zone_light/3_install.py
+++ b/code/nel/tools/build_gamedata/processes/zone_light/3_install.py
@@ -46,21 +46,21 @@ printLog(log, "")
printLog(log, ">>> Install zone_light zones <<<")
srcDir = ExportBuildDirectory + "/" + ZoneLightBuildDirectory
mkPath(log, srcDir)
-destDir = ClientDataDirectory + "/" + ZoneClientDirectory
+destDir = InstallDirectory + "/" + ZoneInstallDirectory
mkPath(log, destDir)
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
printLog(log, ">>> Install zone_light water maps <<<")
srcDir = ExportBuildDirectory + "/" + ZoneLightWaterShapesLightedExportDirectory
mkPath(log, srcDir)
-destDir = ClientDataDirectory + "/" + WaterMapsClientDirectory
+destDir = InstallDirectory + "/" + WaterMapsInstallDirectory
mkPath(log, destDir)
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
printLog(log, ">>> Install zone_light igs <<<")
srcDir = ExportBuildDirectory + "/" + ZoneLightIgLandBuildDirectory
mkPath(log, srcDir)
-destDir = ClientDataDirectory + "/" + IgClientDirectory
+destDir = InstallDirectory + "/" + IgInstallDirectory
mkPath(log, destDir)
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
diff --git a/code/nel/tools/build_gamedata/work_in_progress b/code/nel/tools/build_gamedata/work_in_progress
deleted file mode 100644
index e69de29bb..000000000
diff --git a/code/ryzom/tools/build_gamedata/work_in_progress b/code/ryzom/tools/build_gamedata/work_in_progress
deleted file mode 100644
index e69de29bb..000000000
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/cfg/directories.py b/code/ryzom/tools/build_gamedata/workspace/common/cfg/directories.py
new file mode 100644
index 000000000..7ed25452c
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/common/cfg/directories.py
@@ -0,0 +1,82 @@
+#!/usr/bin/python
+#
+# \file directories.py
+# \brief Directories configuration
+# \date 2010-08-27 17:13GMT
+# \author Jan Boon (Kaetemi)
+# \date 2001-2005
+# \author Nevrax
+# Python port of game data build pipeline.
+# Directories configuration.
+#
+# NeL - 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 .
+#
+
+
+# *** COMMON NAMES AND PATHS ***
+CommonName = "cfg"
+CommonPath = "common/" + CommonName
+
+
+# *** DIRECT SOURCE DIRECTORIES ***
+
+# Copy dir directories
+CopyDirectSourceDirectories = [ ]
+CopyDirectSourceFiles = [ ]
+
+
+# *** SOURCE DIRECTORIES IN LEVELDESIGN ***
+CopyLeveldesignSourceDirectories = [ ]
+CopyLeveldesignSourceFiles = [ ]
+CopyLeveldesignWorldSourceDirectories = [ ]
+CopyLeveldesignWorldSourceFiles = [ ]
+CopyLeveldesignDfnSourceDirectories = [ ]
+CopyLeveldesignDfnSourceFiles = [ ]
+
+
+# *** SOURCE DIRECTORIES IN THE DATABASE ***
+
+# Copy dir directories
+CopyDatabaseSourceDirectories = [ ]
+CopyDatabaseSourceFiles = [ ]
+
+
+# *** SPECIAL SOURCES ***
+
+# Copy dir directories
+CopyWindowsExeDllCfgSourceFiles = [ ]
+
+CopyWindowsExeDllCfgSourceFiles += [ "client_cpu_1.cfg" ]
+CopyWindowsExeDllCfgSourceFiles += [ "client_cpu_2.cfg" ]
+CopyWindowsExeDllCfgSourceFiles += [ "client_cpu_3.cfg" ]
+CopyWindowsExeDllCfgSourceFiles += [ "client_cpu_4.cfg" ]
+CopyWindowsExeDllCfgSourceFiles += [ "client_gpu_1.cfg" ]
+CopyWindowsExeDllCfgSourceFiles += [ "client_gpu_2.cfg" ]
+CopyWindowsExeDllCfgSourceFiles += [ "client_gpu_3.cfg" ]
+CopyWindowsExeDllCfgSourceFiles += [ "client_gpu_4.cfg" ]
+CopyWindowsExeDllCfgSourceFiles += [ "client_ram_256.cfg" ]
+CopyWindowsExeDllCfgSourceFiles += [ "client_ram_512.cfg" ]
+CopyWindowsExeDllCfgSourceFiles += [ "client_sound_buffer.cfg" ]
+CopyWindowsExeDllCfgSourceFiles += [ "client_vram_32.cfg" ]
+CopyWindowsExeDllCfgSourceFiles += [ "client_vram_64.cfg" ]
+CopyWindowsExeDllCfgSourceFiles += [ "client_vram_128.cfg" ]
+
+
+# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
+
+# Copy
+CopyInstallDirectory = CommonName
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/cfg/process.py b/code/ryzom/tools/build_gamedata/workspace/common/cfg/process.py
new file mode 100644
index 000000000..5a8279c05
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/common/cfg/process.py
@@ -0,0 +1,37 @@
+#!/usr/bin/python
+#
+# \file config.py
+# \brief Process configuration
+# \date 2010-08-27 17:02GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Process configuration.
+#
+# NeL - 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 .
+#
+
+# *** PROCESS CONFIGURATION ***
+
+# *** PROCESS CONFIG ***
+ProcessToComplete = [ ]
+ProcessToComplete += [ "copy" ]
+
+
+# *** COMMON NAMES AND PATHS ***
+CommonName = "cfg"
+CommonPath = "common/" + CommonName
+
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/characters/anim_builder.cfg b/code/ryzom/tools/build_gamedata/workspace/common/characters/anim_builder.cfg
new file mode 100644
index 000000000..08128b23e
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/common/characters/anim_builder.cfg
@@ -0,0 +1,15 @@
+
+// ***************************
+// Animation Optimizer
+// ***************************
+
+// Tracks which contain one of those name (eg "Bip01 Finger11.rotquat") will be mark as "Low Precision".
+// Usefull for memory optimisation. Avoid setting legs or root bones. Warning: case sensitive.
+anim_low_precision_tracks=
+{
+"Finger",
+"Ponytail",
+};
+
+// The Sample Rate.
+anim_sample_rate= 30;
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/characters/directories.py b/code/ryzom/tools/build_gamedata/workspace/common/characters/directories.py
new file mode 100644
index 000000000..b2a63d5fb
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/common/characters/directories.py
@@ -0,0 +1,188 @@
+#!/usr/bin/python
+#
+# \file directories.py
+# \brief Directories configuration
+# \date 2010-08-27 17:13GMT
+# \author Jan Boon (Kaetemi)
+# \date 2001-2005
+# \author Nevrax
+# Python port of game data build pipeline.
+# Directories configuration.
+#
+# NeL - 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 .
+#
+
+
+# *** COMMON NAMES AND PATHS ***
+EcosystemName = "characters"
+EcosystemPath = "common/" + EcosystemName
+ContinentName = EcosystemName
+ContinentPath = EcosystemPath
+CommonName = ContinentName
+CommonPath = ContinentPath
+
+
+# *** SOURCE DIRECTORIES IN THE DATABASE ***
+
+# Skeleton directories
+SkelSourceDirectories = [ ]
+SkelSourceDirectories += [ "stuff/fyros/agents/actors/male/animation/skeletons" ]
+SkelSourceDirectories += [ "stuff/fyros/agents/actors/female/animation/skeletons" ]
+SkelSourceDirectories += [ "stuff/tryker/agents/actors/male/animation/skeletons" ]
+SkelSourceDirectories += [ "stuff/tryker/agents/actors/female/animation/skeletons" ]
+SkelSourceDirectories += [ "stuff/zorai/agents/actors/male/animation/skeletons" ]
+SkelSourceDirectories += [ "stuff/zorai/agents/actors/female/animation/skeletons" ]
+SkelSourceDirectories += [ "stuff/matis/agents/actors/male/animation/skeletons" ]
+SkelSourceDirectories += [ "stuff/matis/agents/actors/female/animation/skeletons" ]
+SkelSourceDirectories += [ "stuff/matis/agents/actors/roadsign/animation/skeletons" ]
+SkelSourceDirectories += [ "stuff/caravan/agents/actors/male/animation/skeletons" ]
+SkelSourceDirectories += [ "stuff/caravan/agents/actors/female/animation/skeletons" ]
+SkelSourceDirectories += [ "stuff/caravan/agents/actors/ship/animation/skeletons" ]
+
+# Skeleton template weight directories
+SwtSourceDirectories = [ ]
+SwtSourceDirectories += [ "stuff/fyros/agents/actors/male/animation/swt" ]
+SwtSourceDirectories += [ "stuff/fyros/agents/actors/female/animation/swt" ]
+SwtSourceDirectories += [ "stuff/tryker/agents/actors/male/animation/swt" ]
+SwtSourceDirectories += [ "stuff/tryker/agents/actors/female/animation/swt" ]
+SwtSourceDirectories += [ "stuff/matis/agents/actors/male/animation/swt" ]
+SwtSourceDirectories += [ "stuff/matis/agents/actors/female/animation/swt" ]
+SwtSourceDirectories += [ "stuff/zorai/agents/actors/male/animation/swt" ]
+SwtSourceDirectories += [ "stuff/zorai/agents/actors/female/animation/swt" ]
+SwtSourceDirectories += [ "stuff/caravan/agents/actors/male/animation/swt" ]
+SwtSourceDirectories += [ "stuff/caravan/agents/actors/female/animation/swt" ]
+
+# Shape directories
+ShapeSourceDirectories = [ ]
+ShapeSourceDirectories += [ "stuff/fyros/agents/actors/male" ]
+ShapeSourceDirectories += [ "stuff/fyros/agents/actors/female" ]
+ShapeSourceDirectories += [ "stuff/fyros/agents/actors/visages" ]
+ShapeSourceDirectories += [ "stuff/fyros/agents/actors/bots" ]
+ShapeSourceDirectories += [ "stuff/tryker/agents/actors/male" ]
+ShapeSourceDirectories += [ "stuff/tryker/agents/actors/female" ]
+ShapeSourceDirectories += [ "stuff/tryker/agents/actors/visages" ]
+ShapeSourceDirectories += [ "stuff/tryker/agents/actors/bots" ]
+ShapeSourceDirectories += [ "stuff/matis/agents/actors/male" ]
+ShapeSourceDirectories += [ "stuff/matis/agents/actors/female" ]
+ShapeSourceDirectories += [ "stuff/matis/agents/actors/visages" ]
+ShapeSourceDirectories += [ "stuff/matis/agents/actors/bots" ]
+ShapeSourceDirectories += [ "stuff/matis/agents/actors/roadsign" ]
+ShapeSourceDirectories += [ "stuff/zorai/agents/actors/male" ]
+ShapeSourceDirectories += [ "stuff/zorai/agents/actors/female" ]
+ShapeSourceDirectories += [ "stuff/zorai/agents/actors/visages" ]
+ShapeSourceDirectories += [ "stuff/zorai/agents/actors/bots" ]
+ShapeSourceDirectories += [ "stuff/caravan/agents/actors/female" ]
+ShapeSourceDirectories += [ "stuff/caravan/agents/actors/male" ]
+ShapeSourceDirectories += [ "stuff/caravan/agents/actors/visages" ]
+ShapeSourceDirectories += [ "stuff/caravan/agents/actors/ship" ]
+ShapeSourceDirectories += [ "stuff/generique/agents/actors/female" ]
+ShapeSourceDirectories += [ "stuff/generique/agents/actors/male" ]
+
+# Animation directories
+AnimSourceDirectories = [ ]
+AnimSourceDirectories += [ "stuff/fyros/agents/actors/male/animation/anims" ]
+AnimSourceDirectories += [ "stuff/fyros/agents/actors/female/animation/anims" ]
+AnimSourceDirectories += [ "stuff/tryker/agents/actors/male/animation/anims" ]
+AnimSourceDirectories += [ "stuff/tryker/agents/actors/female/animation/anims" ]
+AnimSourceDirectories += [ "stuff/matis/agents/actors/male/animation/anims" ]
+AnimSourceDirectories += [ "stuff/matis/agents/actors/female/animation/anims" ]
+AnimSourceDirectories += [ "stuff/matis/agents/actors/roadsign/animation/anims" ]
+AnimSourceDirectories += [ "stuff/zorai/agents/actors/male/animation/anims" ]
+AnimSourceDirectories += [ "stuff/zorai/agents/actors/female/animation/anims" ]
+AnimSourceDirectories += [ "stuff/caravan/agents/actors/male/animation/anims" ]
+AnimSourceDirectories += [ "stuff/caravan/agents/actors/female/animation/anims" ]
+AnimSourceDirectories += [ "stuff/caravan/agents/actors/ship/animation/anims" ]
+
+# cLoD shape directories
+ClodSourceDirectories = [ ]
+ClodSourceDirectories += [ "stuff/lod_actors/lod_" + CommonName ]
+
+
+# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
+
+# Ig lookup directories used by rbank
+IgLookupDirectories = [ ]
+
+# Shape lookup directories used by rbank
+ShapeLookupDirectories = [ ]
+ShapeLookupDirectories += [ CommonPath + "/shape_clodtex_build" ]
+ShapeLookupDirectories += [ CommonPath + "/shape_with_coarse_mesh" ]
+
+# Map lookup directories used by shape
+MapLookupDirectories = [ ]
+
+
+# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
+
+# Skeleton directories
+SkelExportDirectory = CommonPath + "/skel"
+
+# Skeleton template weight directories
+SwtExportDirectory = CommonPath + "/swt"
+
+# Shape directories
+ShapeTagExportDirectory = CommonPath + "/shape_tag"
+ShapeNotOptimizedExportDirectory = CommonPath + "/shape_not_optimized"
+ShapeWithCoarseMeshExportDirectory = CommonPath + "/shape_with_coarse_mesh"
+ShapeLightmapNotOptimizedExportDirectory = CommonPath + "/shape_lightmap_not_optimized"
+ShapeAnimExportDirectory = CommonPath + "/shape_anim"
+
+# Animation directories
+AnimExportDirectory = CommonPath + "/anim_export"
+
+# cLoD directories
+ClodExportDirectory = CommonPath + "/clod_export"
+ClodTagExportDirectory = CommonPath + "/clod_tag_export"
+
+
+# *** BUILD DIRECTORIES FOR THE BUILD PIPELINE ***
+
+# Map directories
+MapBuildDirectory = CommonPath + "/map"
+MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
+MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
+MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
+MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
+MapTagBuildDirectory = CommonPath + "/map_tag"
+
+# Shape directories
+ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
+ShapeWithCoarseMeshBuildDirectory = CommonPath + "/shape_with_coarse_mesh_builded"
+ShapeLightmapBuildDirectory = CommonPath + "/shape_lightmap"
+ShapeLightmap16BitsBuildDirectory = CommonPath + "/shape_lightmap_16_bits"
+
+# Animation directories
+AnimBuildDirectory = CommonPath + "/anim"
+
+# cLoD directories
+ClodBankBuildDirectory = CommonPath + "/clod_bank"
+
+
+# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
+
+# Shape directory
+ShapeInstallDirectory = CommonName + "_shapes"
+LightmapInstallDirectory = ShapeInstallDirectory
+
+# Animation directory
+AnimInstallDirectory = CommonName + "_animations"
+
+# Skeleton directory
+SkelInstallDirectory = CommonName + "_skeletons"
+
+# Skeleton directory
+SwtInstallDirectory = CommonName + "_swt"
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/characters/process.py b/code/ryzom/tools/build_gamedata/workspace/common/characters/process.py
new file mode 100644
index 000000000..89dbf1d89
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/common/characters/process.py
@@ -0,0 +1,108 @@
+#!/usr/bin/python
+#
+# \file config.py
+# \brief Process configuration
+# \date 2010-08-27 17:02GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Process configuration.
+#
+# NeL - 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 .
+#
+
+# *** PROCESS CONFIGURATION ***
+
+# *** PROCESS CONFIG ***
+ProcessToComplete = [ ]
+ProcessToComplete += [ "skel" ]
+ProcessToComplete += [ "swt" ]
+ProcessToComplete += [ "shape" ]
+ProcessToComplete += [ "anim" ]
+ProcessToComplete += [ "clodbank" ]
+
+
+# *** COMMON NAMES AND PATHS ***
+EcosystemName = "characters"
+EcosystemPath = "common/" + EcosystemName
+ContinentName = EcosystemName
+ContinentPath = EcosystemPath
+CommonName = ContinentName
+CommonPath = ContinentPath
+
+
+# *** SHAPE EXPORT OPTIONS ***
+
+# Compute lightmaps ?
+ShapeExportOptExportLighting = "true"
+
+# Cast shadow in lightmap ?
+ShapeExportOptShadow = "true"
+
+# Lighting limits. 0 : normal, 1 : soft shadows
+ShapeExportOptLightingLimit = 0
+
+# Lightmap lumel size
+ShapeExportOptLumelSize = "0.25"
+
+# Oversampling value. Can be 1, 2, 4 or 8
+ShapeExportOptOversampling = 1
+
+# Does the lightmap must be generated in 8 bits format ?
+ShapeExportOpt8BitsLightmap = "false"
+
+# Does the lightmaps export must generate logs ?
+ShapeExportOptLightmapLog = "true"
+
+# Coarse mesh texture mul size
+TextureMulSizeValue = "1.5"
+
+DoBuildShadowSkin = 0
+
+
+#panoply_file_list = panoply_files.txt ???
+#hls_bank_file_name = characters.hlsbank ???
+
+
+
+# *** CLODBANK OPTIONS ***
+
+ClodConfigFile = "stuff/lod_actors/lod_" + CommonName + "/clod_char_script.cfg"
+ClodBankFileName = CommonName + ".clodbank"
+
+
+# *** COARSE MESH TEXTURE NAME ***
+CoarseMeshTextureNames = [ ]
+
+
+# *** POSTFIX USED BY THE MULTIPLE TILES SYSTEM ***
+MultipleTilesPostfix = [ ]
+MultipleTilesPostfix += [ "_sp" ]
+MultipleTilesPostfix += [ "_su" ]
+MultipleTilesPostfix += [ "_au" ]
+MultipleTilesPostfix += [ "_wi" ]
+
+
+# *** SHADOW SKIN OPTIONS ***
+# Characters are made of approx 4000 polys with multiple Skins binded (legs, short, torso...). 35% => 1400 polys.
+BuildShadowSkin = 1
+BuildShadowSkinRatio = 35
+BuildShadowSkinMaxface = 2000
+
+
+# *** ANIMATIONS OPTIONS ***
+
+DoOptimizeAnimations = 1
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/characters_maps_hr/directories.py b/code/ryzom/tools/build_gamedata/workspace/common/characters_maps_hr/directories.py
new file mode 100644
index 000000000..2e516872f
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/common/characters_maps_hr/directories.py
@@ -0,0 +1,78 @@
+#!/usr/bin/python
+#
+# \file directories.py
+# \brief Directories configuration
+# \date 2010-08-27 17:13GMT
+# \author Jan Boon (Kaetemi)
+# \date 2001-2005
+# \author Nevrax
+# Python port of game data build pipeline.
+# Directories configuration.
+#
+# NeL - 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 .
+#
+
+
+# *** COMMON NAMES AND PATHS ***
+EcosystemName = "characters_maps_hr"
+EcosystemPath = "common/" + EcosystemName
+ContinentName = EcosystemName
+ContinentPath = EcosystemPath
+CommonName = ContinentName
+CommonPath = ContinentPath
+
+
+# *** SOURCE DIRECTORIES IN THE DATABASE ***
+
+# Maps directories
+MapSourceDirectories = [ ]
+MapSourceDirectories += [ "stuff/caravan/agents/_textures/actors" ]
+MapSourceDirectories += [ "stuff/caravan/agents/_textures/actors/visages" ]
+
+MapUncompressedSourceDirectories = [ ]
+
+MapPanoplySourceDirectories = [ ]
+MapPanoplySourceDirectories += [ [ "panoply_common.cfg" ] + [ "panoply_matis.cfg" ] + [ "stuff/matis/agents/_textures/actors" ] + [ "stuff/matis/agents/_textures/actors/mask" ] ]
+MapPanoplySourceDirectories += [ [ "panoply_common.cfg" ] + [ "panoply_tryker.cfg" ] + [ "stuff/tryker/agents/_textures/actors" ] + [ "stuff/tryker/agents/_textures/actors/mask" ] ]
+MapPanoplySourceDirectories += [ [ "panoply_common.cfg" ] + [ "panoply_fyros.cfg" ] + [ "stuff/fyros/agents/_textures/actors" ] + [ "stuff/fyros/agents/_textures/actors/mask" ] ]
+MapPanoplySourceDirectories += [ [ "panoply_common.cfg" ] + [ "panoply_zorai.cfg" ] + [ "stuff/zorai/agents/_textures/actors" ] + [ "stuff/zorai/agents/_textures/actors/mask" ] ]
+MapPanoplySourceDirectories += [ [ "panoply_common.cfg" ] + [ "panoply_generique.cfg" ] + [ "stuff/generique/agents/_textures/actors" ] + [ "stuff/generique/agents/_textures/actors/mask" ] ]
+
+
+# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
+
+# Map directories
+MapExportDirectory = CommonPath + "/map_export"
+MapUncompressedExportDirectory = CommonPath + "/map_uncompressed"
+
+
+# *** BUILD DIRECTORIES FOR THE BUILD PIPELINE ***
+
+# Map directories
+MapBuildDirectory = CommonPath + "/map"
+MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
+MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
+MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
+MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
+MapTagBuildDirectory = CommonPath + "/map_tag"
+
+
+# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
+
+# Map directory
+MapInstallDirectory = CommonName
+BitmapInstallDirectory = MapInstallDirectory
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/characters_maps_hr/panoply_common.cfg b/code/ryzom/tools/build_gamedata/workspace/common/characters_maps_hr/panoply_common.cfg
new file mode 100644
index 000000000..ad93114b0
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/common/characters_maps_hr/panoply_common.cfg
@@ -0,0 +1,64 @@
+
+// A character that is used to generate output names when a mask is not defined for a texture.
+default_col_char = "_";
+// default ascii character for unused masks
+default_separator = "_";
+
+// output format
+output_format = "tga";
+
+// the types of bitmaps that must be loaded from the source folder
+bitmap_extensions = { "TGA", "tga", "PNG", "png" };
+
+// tranform 512*512 to 64*64 by default
+// low_def_shift = 3;
+
+/////////////////////////////////////////////
+
+// Let's define colors for mask1
+// hues are in the [0, 360] range and are interpreted as an absolute value
+// 0 Red
+// 60 Yellow
+// 120 Green
+// 180 Cyan
+// 240 Blue
+// 300 Magenta
+
+// lightness are in the [-1, 1] range and are interpreted as a relative value
+// brightness are in the [-1, 1] range and are interpreted as a relative value
+
+// luminosities is interpreted as an added gray level. It usually ranges from -100 to 100 (like with photoshop)
+// A luminositie of 0 means it is unmodified
+// contrasts modulate the distance between colors components and the avg grey in the bitmap
+// If the contrasts is 0 we got unmodified color.
+// If the contrast is 100 the colors becomes pure
+// If the contrast is -100 the colors becomes grey
+
+/////////////////////////////////////////////
+
+//skin_hues = { 30, 40, 35, 220 };
+skin_hues = { 23, 28, 27, 220 };
+skin_lightness = { -0.1, 0.1, 0.0, -0.2 };
+skin_saturations = { 0.05, -0.15, 0.0, -0.3 };
+
+skin_luminosities = { 0.0, 0.0, 0.0, 0.0 };
+skin_constrasts = { 0.0, 0.0, 0.0, 0.0 };
+
+// the color ids define the letters that are used to build the file
+skin_color_id = { "FY", "MA", "TR", "ZO" };
+
+/////////////////////////////////////////////
+
+//user_hues = { 0, 35, 80, 150, 210, 250, 0, 0 };
+user_hues = { 10, 30, 78, 153, 212, 345, 35, 235 };
+user_lightness = { 0.0, 0.0, 0.0, -0.05, 0.0, 0.0, 0.1, -0.1 };
+user_saturations = { 0.3, 0.2, 0.1, 0.25, -0.02, 0.0, -0.2, -0.25 };
+
+user_luminosities = { -20, 0, -10, -20, -30, -35, 50, -30 };
+user_constrasts = { 0, 0, 5, 5, 7, 10, 40, -10 };
+
+// the color ids define the letters that are used to build the file
+//user_color_id = { "_A", "_B", "_C", "_D", "_E", "_F", "blanc", "noir" };
+user_color_id = { "U1", "U2", "U3", "U4", "U5", "U6", "U7", "U8" };
+
+/////////////////////////////////////////////
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/characters_maps_hr/panoply_fyros.cfg b/code/ryzom/tools/build_gamedata/workspace/common/characters_maps_hr/panoply_fyros.cfg
new file mode 100644
index 000000000..83240b242
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/common/characters_maps_hr/panoply_fyros.cfg
@@ -0,0 +1,31 @@
+
+// the extension for the masks of the texture
+// If "mask1" is a extension, and that there's a bitmap name "tex_mask1", it is a "mask1" mask for tex
+// Each mask has its own set of colors
+mask_extensions = { "skin" , "user" , "hair" ,"eyes" };
+
+/////////////////////////////////////////////
+
+hair_hues = { 18, 42, 25, 10, 20, 240 };
+hair_lightness = { 0.1, 0.1, 0.1, 0.0, -0.1, -0.2 };
+hair_saturations = { -0.3, 0.2, 0.2, 0.4, 0.1, -0.3 };
+
+hair_luminosities = { 25.0, 10.0, 10.0, 10.0, 1.0, 20.0 };
+hair_constrasts = {40.0, 65.0, 40.0, 20.0, 20.0, 50.0 };
+
+// the color ids define the letters that are used to build the file
+hair_color_id = { "H1", "H2", "H3", "H4", "H5", "H6" };
+
+/////////////////////////////////////////////
+
+eyes_hues = { 50, 40, 10, 02, 250, 180, 90, 130 };
+eyes_lightness = { 0.2, 0.0, -0.1, -0.2, -0.1, -0.1, -0.1, -0.2 };
+eyes_saturations = { -0.4, 0.2, 0.2, 0.1, -0.1, -0.2, -0.1, -0.2 };
+
+eyes_luminosities = { 10.0, 5.0, 10.0, 00.0, 10.0, 30.0, 10.0, 0.0 };
+eyes_constrasts = { 20.0, 20.0, 20.0, 50.0, 40.0, 50.0, 40.0, 40.0 };
+
+// the color ids define the letters that are used to build the file
+eyes_color_id = { "E1", "E2", "E3", "E4", "E5", "E6", "E7", "E8" };
+
+/////////////////////////////////////////////
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/characters_maps_hr/panoply_matis.cfg b/code/ryzom/tools/build_gamedata/workspace/common/characters_maps_hr/panoply_matis.cfg
new file mode 100644
index 000000000..c1f394fbc
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/common/characters_maps_hr/panoply_matis.cfg
@@ -0,0 +1,31 @@
+
+// the extension for the masks of the texture
+// If "mask1" is a extension, and that there's a bitmap name "tex_mask1", it is a "mask1" mask for tex
+// Each mask has its own set of colors
+mask_extensions = { "skin" , "user" , "hair" ,"eyes" };
+
+/////////////////////////////////////////////
+
+hair_hues = { 30, 35, 15, 20, 140, 240 };
+hair_lightness = { 0.1, 0.1, 0.1, 0.1, 0.0, -0.1 };
+hair_saturations = { -0.2, 0.2, -0.1, 0.1, -0.2, -0.3 };
+
+hair_luminosities = { 25.0, 25.0, 20.0, 0.0, 40.0, 0.0 };
+hair_constrasts = {40.0, 60.0, 60.0, 40.0, 25.0, 10.0 };
+
+// the color ids define the letters that are used to build the file
+hair_color_id = { "H1", "H2", "H3", "H4", "H5", "H6" };
+
+/////////////////////////////////////////////
+
+eyes_hues = { 20, 30, 20, 200, 70, 130, 320, 200 };
+eyes_lightness = { 0.1, 0.0, -0.1, 0.0, 0.0, -0.1, -0.2, -0.2 };
+eyes_saturations = { -0.4, 0.2, 0.1, -0.2, -0.1, -0.2, -0.1, -0.3 };
+
+eyes_luminosities = { 50.0, 5.0, 0.0, 20.0, 10.0, 20.0, 0.0, 0.0 };
+eyes_constrasts = { 40.0, 20.0, 50.0, 50.0, 40.0, 40.0, 20.0, 40.0 };
+
+// the color ids define the letters that are used to build the file
+eyes_color_id = { "E1", "E2", "E3", "E4", "E5", "E6", "E7", "E8" };
+
+/////////////////////////////////////////////
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/characters_maps_hr/panoply_tryker.cfg b/code/ryzom/tools/build_gamedata/workspace/common/characters_maps_hr/panoply_tryker.cfg
new file mode 100644
index 000000000..4e87ecd01
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/common/characters_maps_hr/panoply_tryker.cfg
@@ -0,0 +1,31 @@
+
+// the extension for the masks of the texture
+// If "mask1" is a extension, and that there's a bitmap name "tex_mask1", it is a "mask1" mask for tex
+// Each mask has its own set of colors
+mask_extensions = { "skin" , "user" , "hair" ,"eyes" };
+
+/////////////////////////////////////////////
+
+hair_hues = { 140, 40, 20, 330, 300, 175 };
+hair_lightness = { 0.1, 0.1, -0.1, 0.0, -0.1, -0.2 };
+hair_saturations = { -0.3, 0.2, 0.1, 0.3, 0.1, 0.3 };
+
+hair_luminosities = { 30.0, 20.0, 0.0, 10.0, 10.0, 0.0 };
+hair_constrasts = {40.0, 60.0, 30.0, 40.0, 40.0, 10.0 };
+
+// the color ids define the letters that are used to build the file
+hair_color_id = { "H1", "H2", "H3", "H4", "H5", "H6" };
+
+/////////////////////////////////////////////
+
+eyes_hues = { 60, 40, 10, 250, 70, 320, 10, 200 };
+eyes_lightness = { 0.2, 0.0, -0.1, 0.1, -0.1, -0.1, -0.2, -0.2 };
+eyes_saturations = { -0.4, 0.1, 0.1, 0.0, -0.1, 0.0, -0.1, -0.3 };
+
+eyes_luminosities = { 10.0, 5.0, 0.0, 20.0, 10.0, 10.0, 0.0, 0.0 };
+eyes_constrasts = { 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 20.0, 40.0 };
+
+// the color ids define the letters that are used to build the file
+eyes_color_id = { "E1", "E2", "E3", "E4", "E5", "E6", "E7", "E8" };
+
+/////////////////////////////////////////////
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/characters_maps_hr/panoply_zorai.cfg b/code/ryzom/tools/build_gamedata/workspace/common/characters_maps_hr/panoply_zorai.cfg
new file mode 100644
index 000000000..ec0da6045
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/common/characters_maps_hr/panoply_zorai.cfg
@@ -0,0 +1,19 @@
+
+// the extension for the masks of the texture
+// If "mask1" is a extension, and that there's a bitmap name "tex_mask1", it is a "mask1" mask for tex
+// Each mask has its own set of colors
+mask_extensions = { "skin" , "user" , "hair" };
+
+/////////////////////////////////////////////
+
+hair_hues = { 40, 70, 100, 20, 200, 280 };
+hair_lightness = { 0.1, 0.0, -0.1, 0.0, 0.0, 0.0 };
+hair_saturations = { 0.3, 0.3, 0.3, 0.5, 0.3, 0.3 };
+
+hair_luminosities = { 0.0, 0.0, 20.0, 0.0, 20.0, 20.0 };
+hair_constrasts = {50.0, 40.0, 30.0, 40.0, 40.0, 40.0 };
+
+// the color ids define the letters that are used to build the file
+hair_color_id = { "H1", "H2", "H3", "H4", "H5", "H6" };
+
+/////////////////////////////////////////////
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/characters_maps_hr/process.py b/code/ryzom/tools/build_gamedata/workspace/common/characters_maps_hr/process.py
new file mode 100644
index 000000000..7ce7af501
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/common/characters_maps_hr/process.py
@@ -0,0 +1,81 @@
+#!/usr/bin/python
+#
+# \file config.py
+# \brief Process configuration
+# \date 2010-08-27 17:02GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Process configuration.
+#
+# NeL - 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 .
+#
+
+# *** PROCESS CONFIGURATION ***
+
+
+# *** PROCESS CONFIG ***
+ProcessToComplete = [ ]
+ProcessToComplete += [ "map" ]
+
+
+# *** COMMON NAMES AND PATHS ***
+EcosystemName = "characters_maps_hr"
+EcosystemPath = "common/" + EcosystemName
+ContinentName = EcosystemName
+ContinentPath = EcosystemPath
+CommonName = ContinentName
+CommonPath = ContinentPath
+
+
+# *** SHAPE EXPORT OPTIONS ***
+
+# Compute lightmaps ?
+ShapeExportOptExportLighting = "true"
+# Cast shadow in lightmap ?
+ShapeExportOptShadow = "true"
+# Lighting limits. 0 : normal, 1 : soft shadows
+ShapeExportOptLightingLimit = 0
+# Lightmap lumel size
+ShapeExportOptLumelSize = "0.25"
+# Oversampling value. Can be 1, 2, 4 or 8
+ShapeExportOptOversampling = 1
+# Does the lightmap must be generated in 8 bits format ?
+ShapeExportOpt8BitsLightmap = "false"
+# Does the lightmaps export must generate logs ?
+ShapeExportOptLightmapLog = "true"
+# Coarse mesh texture mul size
+TextureMulSizeValue = "1.5"
+
+DoBuildShadowSkin = 0
+ClodConfigFile = ""
+
+# *** COARSE MESH TEXTURE NAME ***
+CoarseMeshTextureNames = [ ]
+
+# *** POSTFIX USED BY THE MULTIPLE TILES SYSTEM ***
+MultipleTilesPostfix = [ ]
+MultipleTilesPostfix += [ "_sp" ]
+MultipleTilesPostfix += [ "_su" ]
+MultipleTilesPostfix += [ "_au" ]
+MultipleTilesPostfix += [ "_wi" ]
+
+# *** MAPS OPTIONS ***
+ReduceBitmapFactor = 0
+# list all panoply files
+MapPanoplyFileList = "panoply_files.txt"
+# name of the .hlsbank to build.
+MapHlsBankFileName = "characters.hlsbank"
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/construction/directories.py b/code/ryzom/tools/build_gamedata/workspace/common/construction/directories.py
index 43e2095ee..68bf17aa7 100644
--- a/code/ryzom/tools/build_gamedata/workspace/common/construction/directories.py
+++ b/code/ryzom/tools/build_gamedata/workspace/common/construction/directories.py
@@ -68,6 +68,25 @@ TileRootSourceDirectory = "landscape/_texture_tiles"
DisplaceSourceDirectory = "landscape/_texture_tiles/displace"
+# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
+
+# Ig lookup directories used by rbank
+IgLookupDirectories = [ ]
+IgLookupDirectories += [ CommonPath + "/ig_land" ]
+IgLookupDirectories += [ CommonPath + "/ig_other" ]
+
+# Shape lookup directories used by rbank
+ShapeLookupDirectories = [ ]
+# ShapeLookupDirectories += [ CommonPath + "/ps" ]
+ShapeLookupDirectories += [ CommonPath + "/shape_clodtex_build" ]
+ShapeLookupDirectories += [ CommonPath + "/shape_with_coarse_mesh" ]
+
+# Map lookup directories not yet used
+MapLookupDirectories = [ ]
+MapLookupDirectories += [ CommonPath + "/map_export" ]
+MapLookupDirectories += [ CommonPath + "/map_uncompressed" ]
+
+
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
# Map directories
@@ -100,6 +119,10 @@ ZoneLightIgLandBuildDirectory = CommonPath + "/zone_lighted_ig_land" #fixme
# Map directories
MapBuildDirectory = CommonPath + "/map"
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
+MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
+MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
+MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
+MapTagBuildDirectory = CommonPath + "/map_tag"
# Shape directories
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
@@ -129,17 +152,17 @@ LigoIgOtherBuildDirectory = CommonPath + "/ligo_ig_other" # Village or construct
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
# Map directory
-MapClientDirectory = CommonName
-BitmapClientDirectory = MapClientDirectory
+MapInstallDirectory = CommonName
+BitmapInstallDirectory = MapInstallDirectory
# Shape directory
-ShapeClientDirectory = CommonName
+ShapeInstallDirectory = CommonName
# Lightmap directory
-LightmapClientDirectory = CommonName
+LightmapInstallDirectory = CommonName
# Animation directory
-AnimClientDirectory = CommonName
+AnimInstallDirectory = CommonName
# Ig directory
-IgClientDirectory = CommonName
+IgInstallDirectory = CommonName
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/construction/process.py b/code/ryzom/tools/build_gamedata/workspace/common/construction/process.py
index 5d36f4c5c..4a72136e3 100644
--- a/code/ryzom/tools/build_gamedata/workspace/common/construction/process.py
+++ b/code/ryzom/tools/build_gamedata/workspace/common/construction/process.py
@@ -104,6 +104,10 @@ LigoTileBankFile = ""
# *** MAPS OPTIONS ***
ReduceBitmapFactor = 0
+# list all panoply files
+MapPanoplyFileList = None
+# name of the .hlsbank to build.
+MapHlsBankFileName = None
# *** ANIMATIONS OPTIONS ***
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/data_common/directories.py b/code/ryzom/tools/build_gamedata/workspace/common/data_common/directories.py
new file mode 100644
index 000000000..4cf2384e9
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/common/data_common/directories.py
@@ -0,0 +1,63 @@
+#!/usr/bin/python
+#
+# \file directories.py
+# \brief Directories configuration
+# \date 2010-08-27 17:13GMT
+# \author Jan Boon (Kaetemi)
+# \date 2001-2005
+# \author Nevrax
+# Python port of game data build pipeline.
+# Directories configuration.
+#
+# NeL - 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 .
+#
+
+from buildsite import *
+
+# *** COMMON NAMES AND PATHS ***
+CommonName = "data_common"
+CommonPath = "common/" + CommonName
+
+
+# *** DIRECT SOURCE DIRECTORIES ***
+
+# Copy dir directories
+CopyDirectSourceDirectories = [ ]
+CopyDirectSourceDirectories += [ DataCommonDirectory ]
+CopyDirectSourceFiles = [ ]
+
+
+# *** SOURCE DIRECTORIES IN LEVELDESIGN ***
+CopyLeveldesignSourceDirectories = [ ]
+CopyLeveldesignSourceFiles = [ ]
+CopyLeveldesignWorldSourceDirectories = [ ]
+CopyLeveldesignWorldSourceFiles = [ ]
+CopyLeveldesignDfnSourceDirectories = [ ]
+CopyLeveldesignDfnSourceFiles = [ ]
+
+
+# *** SOURCE DIRECTORIES IN THE DATABASE ***
+
+# Copy dir directories
+CopyDatabaseSourceDirectories = [ ]
+CopyDatabaseSourceFiles = [ ]
+
+
+# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
+
+# Particule system directory
+CopyInstallDirectory = CommonName
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/data_common/process.py b/code/ryzom/tools/build_gamedata/workspace/common/data_common/process.py
new file mode 100644
index 000000000..f868e1f94
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/common/data_common/process.py
@@ -0,0 +1,41 @@
+#!/usr/bin/python
+#
+# \file config.py
+# \brief Process configuration
+# \date 2010-08-27 17:02GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Process configuration.
+#
+# NeL - 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 .
+#
+
+# *** PROCESS CONFIGURATION ***
+
+# *** PROCESS CONFIG ***
+ProcessToComplete = [ ]
+ProcessToComplete += [ "copy" ]
+
+
+# *** COMMON NAMES AND PATHS ***
+CommonName = "data_common"
+CommonPath = "common/" + CommonName
+
+
+# *** COPY DIR OPTIONS ***
+
+
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/exedll/directories.py b/code/ryzom/tools/build_gamedata/workspace/common/exedll/directories.py
new file mode 100644
index 000000000..967111b05
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/common/exedll/directories.py
@@ -0,0 +1,85 @@
+#!/usr/bin/python
+#
+# \file directories.py
+# \brief Directories configuration
+# \date 2010-08-27 17:13GMT
+# \author Jan Boon (Kaetemi)
+# \date 2001-2005
+# \author Nevrax
+# Python port of game data build pipeline.
+# Directories configuration.
+#
+# NeL - 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 .
+#
+
+
+# *** COMMON NAMES AND PATHS ***
+CommonName = "exedll"
+CommonPath = "common/" + CommonName
+
+
+# *** DIRECT SOURCE DIRECTORIES ***
+
+# Copy dir directories
+CopyDirectSourceDirectories = [ ]
+CopyDirectSourceFiles = [ ]
+
+
+# *** SOURCE DIRECTORIES IN LEVELDESIGN ***
+CopyLeveldesignSourceDirectories = [ ]
+CopyLeveldesignSourceFiles = [ ]
+CopyLeveldesignWorldSourceDirectories = [ ]
+CopyLeveldesignWorldSourceFiles = [ ]
+CopyLeveldesignDfnSourceDirectories = [ ]
+CopyLeveldesignDfnSourceFiles = [ ]
+
+
+# *** SOURCE DIRECTORIES IN THE DATABASE ***
+
+# Copy dir directories
+CopyDatabaseSourceDirectories = [ ]
+CopyDatabaseSourceFiles = [ ]
+
+
+# *** SPECIAL SOURCES ***
+
+# Copy dir directories
+CopyWindowsExeDllCfgSourceFiles = [ ]
+
+CopyWindowsExeDllCfgSourceFiles += [ "Microsoft.VC90.CRT.manifest" ]
+CopyWindowsExeDllCfgSourceFiles += [ "msvcp90.dll" ]
+CopyWindowsExeDllCfgSourceFiles += [ "msvcr90.dll" ]
+
+CopyWindowsExeDllCfgSourceFiles += [ "fmod.dll" ]
+
+CopyWindowsExeDllCfgSourceFiles += [ "client_default.cfg" ]
+
+CopyWindowsExeDllCfgSourceFiles += [ "nel_drv_direct3d_win_r.dll" ]
+CopyWindowsExeDllCfgSourceFiles += [ "nel_drv_dsound_win_r.dll" ]
+CopyWindowsExeDllCfgSourceFiles += [ "nel_drv_fmod_win_r.dll" ]
+CopyWindowsExeDllCfgSourceFiles += [ "nel_drv_openal_win_r.dll" ]
+CopyWindowsExeDllCfgSourceFiles += [ "nel_drv_opengl_win_r.dll" ]
+CopyWindowsExeDllCfgSourceFiles += [ "nel_drv_xaudio2_win_r.dll" ]
+
+CopyWindowsExeDllCfgSourceFiles += [ "client_ryzom_r.exe" ]
+CopyWindowsExeDllCfgSourceFiles += [ "ryzom_configuration_r.exe" ]
+
+
+# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
+
+# Copy
+CopyInstallDirectory = CommonName
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/exedll/process.py b/code/ryzom/tools/build_gamedata/workspace/common/exedll/process.py
new file mode 100644
index 000000000..7503248ee
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/common/exedll/process.py
@@ -0,0 +1,37 @@
+#!/usr/bin/python
+#
+# \file config.py
+# \brief Process configuration
+# \date 2010-08-27 17:02GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Process configuration.
+#
+# NeL - 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 .
+#
+
+# *** PROCESS CONFIGURATION ***
+
+# *** PROCESS CONFIG ***
+ProcessToComplete = [ ]
+ProcessToComplete += [ "copy" ]
+
+
+# *** COMMON NAMES AND PATHS ***
+CommonName = "exedll"
+CommonPath = "common/" + CommonName
+
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/fauna/directories.py b/code/ryzom/tools/build_gamedata/workspace/common/fauna/directories.py
index bdaf079b7..5730a76a2 100644
--- a/code/ryzom/tools/build_gamedata/workspace/common/fauna/directories.py
+++ b/code/ryzom/tools/build_gamedata/workspace/common/fauna/directories.py
@@ -215,6 +215,23 @@ ClodSourceDirectories = [ ]
ClodSourceDirectories += [ "stuff/lod_actors/lod_fauna" ]
+# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
+
+# Ig lookup directories used by rbank
+IgLookupDirectories = [ ]
+
+# Shape lookup directories used by rbank
+ShapeLookupDirectories = [ ]
+# ShapeLookupDirectories += [ CommonPath + "/ps" ]
+ShapeLookupDirectories += [ CommonPath + "/shape_clodtex_build" ]
+ShapeLookupDirectories += [ CommonPath + "/shape_with_coarse_mesh" ]
+
+# Map lookup directories not yet used
+MapLookupDirectories = [ ]
+MapLookupDirectories += [ CommonPath + "/map_export" ]
+MapLookupDirectories += [ CommonPath + "/map_uncompressed" ]
+
+
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
# Map directories
@@ -247,6 +264,10 @@ ClodTagExportDirectory = CommonPath + "/clod_tag_export"
# Map directories
MapBuildDirectory = CommonPath + "/map"
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
+MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
+MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
+MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
+MapTagBuildDirectory = CommonPath + "/map_tag"
# Shape directories
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
@@ -264,18 +285,18 @@ ClodBankBuildDirectory = CommonPath + "/clod_bank"
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
# Map directory
-MapClientDirectory = CommonName + "_maps"
-BitmapClientDirectory = MapClientDirectory
+MapInstallDirectory = CommonName + "_maps"
+BitmapInstallDirectory = MapInstallDirectory
# Shape directory
-ShapeClientDirectory = CommonName + "_shapes"
-LightmapClientDirectory = ShapeClientDirectory
+ShapeInstallDirectory = CommonName + "_shapes"
+LightmapInstallDirectory = ShapeInstallDirectory
# Animation directory
-AnimClientDirectory = CommonName + "_animations"
+AnimInstallDirectory = CommonName + "_animations"
# Skeleton directory
-SkelClientDirectory = CommonName + "_skeletons"
+SkelInstallDirectory = CommonName + "_skeletons"
# Skeleton directory
-SwtClientDirectory = CommonName + "_swt"
+SwtInstallDirectory = CommonName + "_swt"
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/fauna/process.py b/code/ryzom/tools/build_gamedata/workspace/common/fauna/process.py
index 76e2cfc32..bf59b3165 100644
--- a/code/ryzom/tools/build_gamedata/workspace/common/fauna/process.py
+++ b/code/ryzom/tools/build_gamedata/workspace/common/fauna/process.py
@@ -95,6 +95,10 @@ MultipleTilesPostfix += [ "_wi" ]
# *** MAPS OPTIONS ***
ReduceBitmapFactor = 0
+# list all panoply files
+MapPanoplyFileList = None
+# name of the .hlsbank to build.
+MapHlsBankFileName = None
# *** SHADOW SKIN OPTIONS ***
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/fonts/directories.py b/code/ryzom/tools/build_gamedata/workspace/common/fonts/directories.py
index 7840625f8..b8c3f0110 100644
--- a/code/ryzom/tools/build_gamedata/workspace/common/fonts/directories.py
+++ b/code/ryzom/tools/build_gamedata/workspace/common/fonts/directories.py
@@ -52,7 +52,7 @@ FontExportDirectory = CommonPath + "/font"
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
# Font directory
-FontClientDirectory = CommonName
+FontInstallDirectory = CommonName
# end of file
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/gamedev/directories.py b/code/ryzom/tools/build_gamedata/workspace/common/gamedev/directories.py
new file mode 100644
index 000000000..cc8af2ee0
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/common/gamedev/directories.py
@@ -0,0 +1,63 @@
+#!/usr/bin/python
+#
+# \file directories.py
+# \brief Directories configuration
+# \date 2010-08-27 17:13GMT
+# \author Jan Boon (Kaetemi)
+# \date 2001-2005
+# \author Nevrax
+# Python port of game data build pipeline.
+# Directories configuration.
+#
+# NeL - 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 .
+#
+
+from buildsite import *
+
+# *** COMMON NAMES AND PATHS ***
+CommonName = "gamedev"
+CommonPath = "common/" + CommonName
+
+
+# *** DIRECT SOURCE DIRECTORIES ***
+
+# Copy dir directories
+CopyDirectSourceDirectories = [ ]
+CopyDirectSourceDirectories += [ GamedevDirectory ]
+CopyDirectSourceFiles = [ ]
+
+
+# *** SOURCE DIRECTORIES IN LEVELDESIGN ***
+CopyLeveldesignSourceDirectories = [ ]
+CopyLeveldesignSourceFiles = [ ]
+CopyLeveldesignWorldSourceDirectories = [ ]
+CopyLeveldesignWorldSourceFiles = [ ]
+CopyLeveldesignDfnSourceDirectories = [ ]
+CopyLeveldesignDfnSourceFiles = [ ]
+
+
+# *** SOURCE DIRECTORIES IN THE DATABASE ***
+
+# Copy dir directories
+CopyDatabaseSourceDirectories = [ ]
+CopyDatabaseSourceFiles = [ ]
+
+
+# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
+
+# Particule system directory
+CopyInstallDirectory = CommonName
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/gamedev/process.py b/code/ryzom/tools/build_gamedata/workspace/common/gamedev/process.py
new file mode 100644
index 000000000..adf040877
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/common/gamedev/process.py
@@ -0,0 +1,41 @@
+#!/usr/bin/python
+#
+# \file config.py
+# \brief Process configuration
+# \date 2010-08-27 17:02GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Process configuration.
+#
+# NeL - 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 .
+#
+
+# *** PROCESS CONFIGURATION ***
+
+# *** PROCESS CONFIG ***
+ProcessToComplete = [ ]
+ProcessToComplete += [ "copy" ]
+
+
+# *** COMMON NAMES AND PATHS ***
+CommonName = "gamedev"
+CommonPath = "common/" + CommonName
+
+
+# *** COPY DIR OPTIONS ***
+
+
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/interface/directories.py b/code/ryzom/tools/build_gamedata/workspace/common/interface/directories.py
index e733bea15..3ecf20b5d 100644
--- a/code/ryzom/tools/build_gamedata/workspace/common/interface/directories.py
+++ b/code/ryzom/tools/build_gamedata/workspace/common/interface/directories.py
@@ -40,7 +40,7 @@ CommonPath = ContinentPath
#Interface directories
InterfaceSourceDirectories = [ ]
-InterfaceSourceDirectories += [ [ "interfaces/v3" ] + [ "interfaces/ring_interface" ] ]
+InterfaceSourceDirectories += [ [ "interfaces/v3" ] + [ "interfaces/r2_interface" ] ]
InterfaceSourceDirectories += [ [ "interfaces/v3_outgame/ui" ] ]
InterfaceSourceDirectories += [ [ "interfaces/v3_login" ] ]
@@ -62,12 +62,14 @@ InterfaceFullscreenSourceDirectories += [ "interfaces/v3_doc/graph/spell" ]
InterfaceFullscreenSourceDirectories += [ "interfaces/v3_doc/graph/talk_bot" ]
InterfaceFullscreenSourceDirectories += [ "interfaces/v3_doc/graph/abilities_items" ]
InterfaceFullscreenSourceDirectories += [ "interfaces/v3_quick_help/graph" ]
+InterfaceFullscreenSourceDirectories += [ "interfaces/r2_decals" ]
Interface3DSourceDirectories = [ ]
Interface3DSourceDirectories += [ "interfaces/v3_outgame/3d" ]
Interface3DSourceDirectories += [ "interfaces/v3_doc/htm" ]
Interface3DSourceDirectories += [ "interfaces/v3_doc" ]
Interface3DSourceDirectories += [ "interfaces/v3_quick_help" ]
+Interface3DSourceDirectories += [ "interfaces/r2_3d" ]
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
@@ -89,4 +91,4 @@ InterfaceDxtcBuildDirectory = CommonPath + "/interface_dxtc_build"
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
# Lightmap directory
-InterfaceClientDirectory = "interfaces"
+InterfaceInstallDirectory = "interfaces"
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/interface/process.py b/code/ryzom/tools/build_gamedata/workspace/common/interface/process.py
index 29585bdcd..5e6b2fd0c 100644
--- a/code/ryzom/tools/build_gamedata/workspace/common/interface/process.py
+++ b/code/ryzom/tools/build_gamedata/workspace/common/interface/process.py
@@ -43,3 +43,7 @@ CommonPath = ContinentPath
# *** MAPS OPTIONS ***
ReduceBitmapFactor = 0
+# list all panoply files
+MapPanoplyFileList = None
+# name of the .hlsbank to build.
+MapHlsBankFileName = None
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/leveldesign/directories.py b/code/ryzom/tools/build_gamedata/workspace/common/leveldesign/directories.py
new file mode 100644
index 000000000..b8ca09aa3
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/common/leveldesign/directories.py
@@ -0,0 +1,77 @@
+#!/usr/bin/python
+#
+# \file directories.py
+# \brief Directories configuration
+# \date 2010-08-27 17:13GMT
+# \author Jan Boon (Kaetemi)
+# \date 2001-2005
+# \author Nevrax
+# Python port of game data build pipeline.
+# Directories configuration.
+#
+# NeL - 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 .
+#
+
+
+# *** COMMON NAMES AND PATHS ***
+CommonName = "leveldesign"
+CommonPath = "common/" + CommonName
+
+
+# *** DIRECT SOURCE DIRECTORIES ***
+
+# Copy dir directories
+CopyDirectSourceDirectories = [ ]
+CopyDirectSourceFiles = [ ]
+
+
+# *** SOURCE DIRECTORIES IN LEVELDESIGN ***
+CopyLeveldesignSourceDirectories = [ ]
+CopyLeveldesignSourceFiles = [ ]
+CopyLeveldesignSourceFiles += [ "game_element/anim/mode2animset.string_array" ]
+CopyLeveldesignSourceFiles += [ "game_elem/sheet_id.bin" ]
+CopyLeveldesignWorldSourceDirectories = [ ]
+CopyLeveldesignWorldSourceFiles = [ ]
+CopyLeveldesignWorldSourceFiles += [ "static_fame.txt" ]
+CopyLeveldesignDfnSourceDirectories = [ ]
+CopyLeveldesignDfnSourceFiles = [ ]
+CopyLeveldesignDfnSourceFiles += [ "game_elem/_creature/_creature_3d_eyes_color.typ" ]
+CopyLeveldesignDfnSourceFiles += [ "game_elem/_creature/_creature_3d_hair_color.typ" ]
+CopyLeveldesignDfnSourceFiles += [ "basics/string.typ" ]
+CopyLeveldesignDfnSourceFiles += [ "game_elem/_anim/string_array.dfn" ]
+
+
+# *** SOURCE DIRECTORIES IN THE DATABASE ***
+
+# Copy dir directories
+CopyDatabaseSourceDirectories = [ ]
+CopyDatabaseSourceFiles = [ ]
+
+
+# *** BUILD DIRECTORIES ***
+
+# Sheets
+SheetsBuildDirectory = CommonPath + "/sheets"
+
+
+# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
+
+# Stuff
+CopyInstallDirectory = CommonName
+
+# Sheets
+SheetsInstallDirectory = "packedsheets"
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/leveldesign/process.py b/code/ryzom/tools/build_gamedata/workspace/common/leveldesign/process.py
new file mode 100644
index 000000000..bdc196c7e
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/common/leveldesign/process.py
@@ -0,0 +1,44 @@
+#!/usr/bin/python
+#
+# \file config.py
+# \brief Process configuration
+# \date 2010-08-27 17:02GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Process configuration.
+#
+# NeL - 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 .
+#
+
+# *** PROCESS CONFIGURATION ***
+
+# *** PROCESS CONFIG ***
+ProcessToComplete = [ ]
+ProcessToComplete += [ "sheet_id" ]
+ProcessToComplete += [ "sheets" ]
+ProcessToComplete += [ "copy" ]
+
+
+# *** COMMON NAMES AND PATHS ***
+CommonName = "leveldesign"
+CommonPath = "common/" + CommonName
+
+
+# *** SHEETS OPTIONS ***
+WorldSheet = "ryzom.world"
+LigoPrimitiveClass = "world_editor_classes.xml"
+
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/objects/directories.py b/code/ryzom/tools/build_gamedata/workspace/common/objects/directories.py
index 16497a95d..109ba59f7 100644
--- a/code/ryzom/tools/build_gamedata/workspace/common/objects/directories.py
+++ b/code/ryzom/tools/build_gamedata/workspace/common/objects/directories.py
@@ -56,6 +56,23 @@ MapSourceDirectories += [ "stuff/caravan/agents/_textures/accessories" ]
MapUncompressedSourceDirectories = [ ]
+# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
+
+# Ig lookup directories used by rbank
+IgLookupDirectories = [ ]
+
+# Shape lookup directories used by rbank
+ShapeLookupDirectories = [ ]
+# ShapeLookupDirectories += [ CommonPath + "/ps" ]
+ShapeLookupDirectories += [ CommonPath + "/shape_clodtex_build" ]
+ShapeLookupDirectories += [ CommonPath + "/shape_with_coarse_mesh" ]
+
+# Map lookup directories not yet used
+MapLookupDirectories = [ ]
+MapLookupDirectories += [ CommonPath + "/map_export" ]
+MapLookupDirectories += [ CommonPath + "/map_uncompressed" ]
+
+
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
# Map directories
@@ -75,6 +92,10 @@ ShapeAnimExportDirectory = CommonPath + "/shape_anim"
# Map directories
MapBuildDirectory = CommonPath + "/map"
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
+MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
+MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
+MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
+MapTagBuildDirectory = CommonPath + "/map_tag"
# Shape directories
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
@@ -86,13 +107,13 @@ ShapeLightmap16BitsBuildDirectory = CommonPath + "/shape_lightmap_16_bits"
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
# Map directory
-MapClientDirectory = "objects"
+MapInstallDirectory = "objects"
# Map directory
-BitmapClientDirectory = MapClientDirectory
+BitmapInstallDirectory = MapInstallDirectory
# Shape directory
-ShapeClientDirectory = "objects"
+ShapeInstallDirectory = "objects"
# Lightmap directory
-LightmapClientDirectory = "objects"
+LightmapInstallDirectory = "objects"
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/objects/process.py b/code/ryzom/tools/build_gamedata/workspace/common/objects/process.py
index cdd53ce02..4134bfc80 100644
--- a/code/ryzom/tools/build_gamedata/workspace/common/objects/process.py
+++ b/code/ryzom/tools/build_gamedata/workspace/common/objects/process.py
@@ -75,3 +75,7 @@ MultipleTilesPostfix += [ "_wi" ]
# *** MAPS OPTIONS ***
ReduceBitmapFactor = 0
+# list all panoply files
+MapPanoplyFileList = None
+# name of the .hlsbank to build.
+MapHlsBankFileName = None
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/outgame/directories.py b/code/ryzom/tools/build_gamedata/workspace/common/outgame/directories.py
index 500f9ac0c..e0b643561 100644
--- a/code/ryzom/tools/build_gamedata/workspace/common/outgame/directories.py
+++ b/code/ryzom/tools/build_gamedata/workspace/common/outgame/directories.py
@@ -68,6 +68,25 @@ TileRootSourceDirectory = "landscape/_texture_tiles"
DisplaceSourceDirectory = "landscape/_texture_tiles/displace"
+# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
+
+# Ig lookup directories used by rbank
+IgLookupDirectories = [ ]
+IgLookupDirectories += [ CommonPath + "/ig_land" ]
+IgLookupDirectories += [ CommonPath + "/ig_other" ]
+
+# Shape lookup directories used by rbank
+ShapeLookupDirectories = [ ]
+# ShapeLookupDirectories += [ CommonPath + "/ps" ]
+ShapeLookupDirectories += [ CommonPath + "/shape_clodtex_build" ]
+ShapeLookupDirectories += [ CommonPath + "/shape_with_coarse_mesh" ]
+
+# Map lookup directories not yet used
+MapLookupDirectories = [ ]
+MapLookupDirectories += [ CommonPath + "/map_export" ]
+MapLookupDirectories += [ CommonPath + "/map_uncompressed" ]
+
+
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
# Map directories
@@ -100,6 +119,10 @@ ZoneLightIgLandBuildDirectory = CommonPath + "/zone_lighted_ig_land" #fixme
# Map directories
MapBuildDirectory = CommonPath + "/map"
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
+MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
+MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
+MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
+MapTagBuildDirectory = CommonPath + "/map_tag"
# Shape directories
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
@@ -129,17 +152,17 @@ LigoIgOtherBuildDirectory = CommonPath + "/ligo_ig_other" # Village or construct
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
# Map directory
-MapClientDirectory = CommonName
-BitmapClientDirectory = MapClientDirectory
+MapInstallDirectory = CommonName
+BitmapInstallDirectory = MapInstallDirectory
# Shape directory
-ShapeClientDirectory = CommonName
+ShapeInstallDirectory = CommonName
# Lightmap directory
-LightmapClientDirectory = CommonName
+LightmapInstallDirectory = CommonName
# Animation directory
-AnimClientDirectory = CommonName
+AnimInstallDirectory = CommonName
# Ig directory
-IgClientDirectory = CommonName
+IgInstallDirectory = CommonName
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/outgame/process.py b/code/ryzom/tools/build_gamedata/workspace/common/outgame/process.py
index 37950fd34..d6fd63919 100644
--- a/code/ryzom/tools/build_gamedata/workspace/common/outgame/process.py
+++ b/code/ryzom/tools/build_gamedata/workspace/common/outgame/process.py
@@ -104,6 +104,10 @@ LigoTileBankFile = ""
# *** MAPS OPTIONS ***
ReduceBitmapFactor = 0
+# list all panoply files
+MapPanoplyFileList = None
+# name of the .hlsbank to build.
+MapHlsBankFileName = None
# *** ANIMATIONS OPTIONS ***
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/sfx/directories.py b/code/ryzom/tools/build_gamedata/workspace/common/sfx/directories.py
index e32efbf13..d2397ce50 100644
--- a/code/ryzom/tools/build_gamedata/workspace/common/sfx/directories.py
+++ b/code/ryzom/tools/build_gamedata/workspace/common/sfx/directories.py
@@ -60,6 +60,23 @@ ShapeSourceDirectories += [ "sfx/meshtoparticle" ]
MapUncompressedSourceDirectories = [ ]
+# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
+
+# Ig lookup directories used by rbank
+IgLookupDirectories = [ ]
+
+# Shape lookup directories used by rbank
+ShapeLookupDirectories = [ ]
+ShapeLookupDirectories += [ CommonPath + "/ps" ]
+ShapeLookupDirectories += [ CommonPath + "/shape_clodtex_build" ]
+ShapeLookupDirectories += [ CommonPath + "/shape_with_coarse_mesh" ]
+
+# Map lookup directories not yet used
+MapLookupDirectories = [ ]
+MapLookupDirectories += [ CommonPath + "/map_export" ]
+MapLookupDirectories += [ CommonPath + "/map_uncompressed" ]
+
+
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
# Map directories
@@ -82,6 +99,10 @@ PsExportDirectory = CommonPath + "/ps"
# Map directories
MapBuildDirectory = CommonPath + "/map"
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
+MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
+MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
+MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
+MapTagBuildDirectory = CommonPath + "/map_tag"
# Shape directories
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
@@ -93,14 +114,14 @@ ShapeLightmap16BitsBuildDirectory = CommonPath + "/shape_lightmap_16_bits"
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
# Particule system directory
-PsClientDirectory = "sfx"
+PsInstallDirectory = "sfx"
# Map directory
-MapClientDirectory = "sfx"
-BitmapClientDirectory = MapClientDirectory
+MapInstallDirectory = "sfx"
+BitmapInstallDirectory = MapInstallDirectory
# Shape directory
-ShapeClientDirectory = "sfx"
+ShapeInstallDirectory = "sfx"
# Lightmap directory
-LightmapClientDirectory = "sfx"
+LightmapInstallDirectory = "sfx"
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/sfx/process.py b/code/ryzom/tools/build_gamedata/workspace/common/sfx/process.py
index a2f63c1ef..ccbecb9b7 100644
--- a/code/ryzom/tools/build_gamedata/workspace/common/sfx/process.py
+++ b/code/ryzom/tools/build_gamedata/workspace/common/sfx/process.py
@@ -85,3 +85,7 @@ MultipleTilesPostfix += [ "_wi" ]
# *** MAPS OPTIONS ***
ReduceBitmapFactor = 0
+# list all panoply files
+MapPanoplyFileList = None
+# name of the .hlsbank to build.
+MapHlsBankFileName = None
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/sky/directories.py b/code/ryzom/tools/build_gamedata/workspace/common/sky/directories.py
index eac798b0d..b1c52fefe 100644
--- a/code/ryzom/tools/build_gamedata/workspace/common/sky/directories.py
+++ b/code/ryzom/tools/build_gamedata/workspace/common/sky/directories.py
@@ -81,6 +81,25 @@ AnimSourceDirectories = [ ]
AnimSourceDirectories += [ "sky_v2/max" ]
+# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
+
+# Ig lookup directories used by rbank
+IgLookupDirectories = [ ]
+IgLookupDirectories += [ CommonPath + "/ig_land" ]
+IgLookupDirectories += [ CommonPath + "/ig_other" ]
+
+# Shape lookup directories used by rbank
+ShapeLookupDirectories = [ ]
+# ShapeLookupDirectories += [ CommonPath + "/ps" ]
+ShapeLookupDirectories += [ CommonPath + "/shape_clodtex_build" ]
+ShapeLookupDirectories += [ CommonPath + "/shape_with_coarse_mesh" ]
+
+# Map lookup directories not yet used
+MapLookupDirectories = [ ]
+MapLookupDirectories += [ CommonPath + "/map_export" ]
+MapLookupDirectories += [ CommonPath + "/map_uncompressed" ]
+
+
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
# Map directories
@@ -116,6 +135,10 @@ AnimExportDirectory = CommonPath + "/anim_export"
# Map directories
MapBuildDirectory = CommonPath + "/map"
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
+MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
+MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
+MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
+MapTagBuildDirectory = CommonPath + "/map_tag"
# Shape directories
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
@@ -148,17 +171,17 @@ AnimBuildDirectory = CommonPath + "/anim"
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
# Map directory
-MapClientDirectory = CommonName
-BitmapClientDirectory = MapClientDirectory
+MapInstallDirectory = CommonName
+BitmapInstallDirectory = MapInstallDirectory
# Shape directory
-ShapeClientDirectory = CommonName
+ShapeInstallDirectory = CommonName
# Lightmap directory
-LightmapClientDirectory = CommonName
+LightmapInstallDirectory = CommonName
# Animation directory
-AnimClientDirectory = CommonName
+AnimInstallDirectory = CommonName
# Ig directory
-IgClientDirectory = CommonName
+IgInstallDirectory = CommonName
diff --git a/code/ryzom/tools/build_gamedata/workspace/common/sky/process.py b/code/ryzom/tools/build_gamedata/workspace/common/sky/process.py
index 7dcffade5..e32a883d9 100644
--- a/code/ryzom/tools/build_gamedata/workspace/common/sky/process.py
+++ b/code/ryzom/tools/build_gamedata/workspace/common/sky/process.py
@@ -110,6 +110,10 @@ LigoTileBankFile = ""
# *** MAPS OPTIONS ***
ReduceBitmapFactor = 0
+# list all panoply files
+MapPanoplyFileList = None
+# name of the .hlsbank to build.
+MapHlsBankFileName = None
# *** ANIMATIONS OPTIONS ***
diff --git a/code/ryzom/tools/build_gamedata/workspace/continents/fyros/directories.py b/code/ryzom/tools/build_gamedata/workspace/continents/fyros/directories.py
new file mode 100644
index 000000000..7ca2c5eea
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/continents/fyros/directories.py
@@ -0,0 +1,131 @@
+#!/usr/bin/python
+#
+# \file directories.py
+# \brief Directories configuration
+# \date 2010-05-24 06:34GMT
+# \author Jan Boon (Kaetemi)
+# \date 2001-2005
+# \author Nevrax
+# Python port of game data build pipeline.
+# Directories configuration.
+#
+# NeL - 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 .
+#
+
+
+# *** ECOSYSTEM AND CONTINENT NAMES ***
+
+EcosystemName = "desert"
+EcosystemPath = "ecosystems/" + EcosystemName
+ContinentName = "fyros"
+ContinentPath = "continents/" + ContinentName
+CommonName = ContinentName
+CommonPath = ContinentPath
+
+
+# *** SOURCE DIRECTORIES LEVELDESIGN/WORLD ***
+ContinentLeveldesignWorldDirectory = ContinentName
+
+
+# *** SOURCE DIRECTORIES IN THE DATABASE ***
+
+# Shape directories
+ShapeSourceDirectories = [ ]
+ShapeSourceDirectories += [ "stuff/fyros/decors/constructions" ]
+ShapeSourceDirectories += [ "stuff/fyros/city" ]
+ShapeSourceDirectories += [ "stuff/fyros/sky" ]
+ShapeSourceDirectories += [ "landscape/water/meshes/desert" ]
+ShapeSourceDirectories += [ "stuff/fyros/decors/constructions/fy_cn_mairie" ]
+
+# Maps directories
+MapSourceDirectories = [ ]
+MapSourceDirectories += [ "stuff/fyros/decors/_textures/batiments" ]
+MapSourceDirectories += [ "stuff/fyros/city/_textures" ]
+MapSourceDirectories += [ "stuff/fyros/sky" ]
+MapSourceDirectories += [ "landscape/water/meshes/desert" ]
+MapUncompressedSourceDirectories = [ ]
+
+
+# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
+
+# Shape lookup directories used by rbank
+ShapeLookupDirectories = [ ]
+ShapeLookupDirectories += [ "common/sfx/ps" ]
+ShapeLookupDirectories += [ "common/sfx/shape_clodtex_build" ]
+ShapeLookupDirectories += [ "common/sfx/shape_with_coarse_mesh" ]
+ShapeLookupDirectories += [ "common/construction/shape_clodtex_build" ]
+ShapeLookupDirectories += [ "common/construction/shape_with_coarse_mesh" ]
+ShapeLookupDirectories += [ EcosystemPath + "/shape_clodtex_build" ]
+ShapeLookupDirectories += [ EcosystemPath + "/shape_with_coarse_mesh" ]
+ShapeLookupDirectories += [ ContinentPath + "/shape_clodtex_build" ]
+ShapeLookupDirectories += [ ContinentPath + "/shape_with_coarse_mesh" ]
+# ShapeLookupDirectories += [ ContinentName + "/zone_light/water_shapes_lighted" ] huh?
+
+# Map lookup directories used by shape
+MapLookupDirectories = [ ]
+MapLookupDirectories += [ "common/sfx/map_export" ]
+MapLookupDirectories += [ "common/sfx/map_uncompressed" ]
+MapLookupDirectories += [ "common/construction/map_export" ]
+MapLookupDirectories += [ "common/construction/map_uncompressed" ]
+MapLookupDirectories += [ EcosystemPath + "/map_export" ]
+MapLookupDirectories += [ EcosystemPath + "/map_uncompressed" ]
+MapLookupDirectories += [ ContinentPath + "/map_export" ]
+MapLookupDirectories += [ ContinentPath + "/map_uncompressed" ]
+
+
+# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
+
+# Map directories
+MapExportDirectory = CommonPath + "/map_export"
+MapUncompressedExportDirectory = CommonPath + "/map_uncompressed"
+
+# Shape directories
+ShapeTagExportDirectory = CommonPath + "/shape_tag"
+ShapeNotOptimizedExportDirectory = CommonPath + "/shape_not_optimized"
+ShapeWithCoarseMeshExportDirectory = CommonPath + "/shape_with_coarse_mesh"
+ShapeLightmapNotOptimizedExportDirectory = CommonPath + "/shape_lightmap_not_optimized"
+ShapeAnimExportDirectory = CommonPath + "/shape_anim"
+
+
+# *** BUILD DIRECTORIES FOR THE BUILD PIPELINE ***
+
+# Map directories
+MapBuildDirectory = CommonPath + "/map"
+MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
+MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
+MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
+MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
+MapTagBuildDirectory = CommonPath + "/map_tag"
+
+# Shape directories
+ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
+ShapeWithCoarseMeshBuildDirectory = CommonPath + "/shape_with_coarse_mesh_builded"
+ShapeLightmapBuildDirectory = CommonPath + "/shape_lightmap"
+ShapeLightmap16BitsBuildDirectory = CommonPath + "/shape_lightmap_16_bits"
+
+
+# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
+
+# Map directory
+MapInstallDirectory = CommonName + "_maps"
+BitmapInstallDirectory = MapInstallDirectory
+
+# Shape directory
+ShapeInstallDirectory = CommonName + "_shapes"
+
+# Shape lightmaps directory
+LightmapInstallDirectory = ShapeInstallDirectory
diff --git a/code/ryzom/tools/build_gamedata/workspace/continents/fyros/process.py b/code/ryzom/tools/build_gamedata/workspace/continents/fyros/process.py
new file mode 100644
index 000000000..570c4d04f
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/continents/fyros/process.py
@@ -0,0 +1,81 @@
+#!/usr/bin/python
+#
+# \file config.py
+# \brief Process configuration
+# \date 2010-05-24 06:30GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Process configuration.
+#
+# NeL - 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 .
+#
+
+# *** PROCESS CONFIGURATION ***
+
+
+# *** PROCESS CONFIG ***
+ProcessToComplete = [ ]
+ProcessToComplete += [ "map" ]
+ProcessToComplete += [ "shape" ]
+
+
+# *** ECOSYSTEM AND CONTINENT NAMES ***
+
+EcosystemName = "desert"
+EcosystemPath = "ecosystems/" + EcosystemName
+ContinentName = "fyros"
+ContinentPath = "continents/" + ContinentName
+CommonName = ContinentName
+CommonPath = ContinentPath
+
+
+# *** SHAPE EXPORT OPTIONS ***
+# Compute lightmaps ?
+ShapeExportOptExportLighting = "true"
+# Cast shadow in lightmap ?
+ShapeExportOptShadow = "true"
+# Lighting limits. 0 : normal, 1 : soft shadows
+ShapeExportOptLightingLimit = 1
+# Lightmap lumel size
+ShapeExportOptLumelSize = "0.25"
+# Oversampling value. Can be 1, 2, 4 or 8
+ShapeExportOptOversampling = 1
+# Does the lightmap must be generated in 8 bits format ?
+ShapeExportOpt8BitsLightmap = "false"
+# Does the lightmaps export must generate logs ?
+ShapeExportOptLightmapLog = "true"
+# Coarse mesh texture mul size
+TextureMulSizeValue = "1.5"
+DoBuildShadowSkin = 0
+ClodConfigFile = ""
+
+# *** COARSE MESH TEXTURE NAME ***
+CoarseMeshTextureNames = [ ]
+
+# *** POSTFIX USED BY THE MULTIPLE TILES SYSTEM ***
+MultipleTilesPostfix = [ ]
+MultipleTilesPostfix += [ "_sp" ]
+MultipleTilesPostfix += [ "_su" ]
+MultipleTilesPostfix += [ "_au" ]
+MultipleTilesPostfix += [ "_wi" ]
+
+# *** MAPS OPTIONS ***
+ReduceBitmapFactor = 0
+# list all panoply files
+MapPanoplyFileList = None
+# name of the .hlsbank to build.
+MapHlsBankFileName = None
diff --git a/code/ryzom/tools/build_gamedata/workspace/continents/indoors/directories.py b/code/ryzom/tools/build_gamedata/workspace/continents/indoors/directories.py
new file mode 100644
index 000000000..778567df8
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/continents/indoors/directories.py
@@ -0,0 +1,262 @@
+#!/usr/bin/python
+#
+# \file directories.py
+# \brief Directories configuration
+# \date 2010-05-24 06:34GMT
+# \author Jan Boon (Kaetemi)
+# \date 2001-2005
+# \author Nevrax
+# Python port of game data build pipeline.
+# Directories configuration.
+#
+# NeL - 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 .
+#
+
+
+# *** ECOSYSTEM AND CONTINENT NAMES ***
+
+EcosystemName = "desert"
+EcosystemPath = "ecosystems/" + EcosystemName
+ContinentName = "indoors"
+ContinentPath = "continents/" + ContinentName
+CommonName = ContinentName
+CommonPath = ContinentPath
+
+
+# *** SOURCE DIRECTORIES LEVELDESIGN/WORLD ***
+ContinentLeveldesignWorldDirectory = ContinentName
+
+
+# *** SOURCE DIRECTORIES IN THE DATABASE ***
+
+# Shape directories
+ShapeSourceDirectories = [ ]
+ShapeSourceDirectories += [ "stuff/fyros/decors/constructions/fy_cn_appart_joueur" ]
+ShapeSourceDirectories += [ "stuff/fyros/decors/constructions/fy_cn_hall_conseil" ]
+ShapeSourceDirectories += [ "stuff/fyros/decors/constructions/fy_cn_hall_reunion_vitrine" ]
+ShapeSourceDirectories += [ "stuff/fyros/decors/constructions/fy_cn_salle_npc" ]
+ShapeSourceDirectories += [ "stuff/matis/decors/constructions/appart_joueur" ]
+ShapeSourceDirectories += [ "stuff/matis/decors/constructions/hall_du_conseil" ]
+ShapeSourceDirectories += [ "stuff/matis/decors/constructions/hall_vitrine_hall_reunion" ]
+ShapeSourceDirectories += [ "stuff/matis/decors/constructions/salle_npc" ]
+ShapeSourceDirectories += [ "stuff/tryker/decors/constructions/hall_conseil" ]
+ShapeSourceDirectories += [ "stuff/tryker/decors/constructions/hall_vitrine_reunion" ]
+ShapeSourceDirectories += [ "stuff/tryker/decors/constructions/piece_npc" ]
+ShapeSourceDirectories += [ "stuff/tryker/decors/constructions/tr_appart" ]
+ShapeSourceDirectories += [ "stuff/zorai/decors/constructions/Appart_joueur" ]
+ShapeSourceDirectories += [ "stuff/zorai/decors/constructions/hall_conseil" ]
+ShapeSourceDirectories += [ "stuff/zorai/decors/constructions/hall_reunion_vitrine" ]
+ShapeSourceDirectories += [ "stuff/zorai/decors/constructions/salle_npc" ]
+
+# Ligo directories
+LigoBaseSourceDirectory = "landscape/ligo/" + EcosystemName
+LigoMaxSourceDirectory = LigoBaseSourceDirectory + "/max"
+
+# Zone directories
+ZoneSourceDirectory = [ "landscape/zones/" + ContinentName ] # For old snowballs style landscape when not using ligo
+
+# Ig directories
+IgLandSourceDirectories = [ ]
+IgOtherSourceDirectories = [ ]
+for dir in ShapeSourceDirectories:
+ IgOtherSourceDirectories += [ dir ]
+IgPrimitiveSourceDirectories = [ ]
+
+# RBank directories
+RBankCmbSourceDirectories = [ ]
+for dir in ShapeSourceDirectories:
+ RBankCmbSourceDirectories += [ dir ]
+
+# Tiles root directory
+TileRootSourceDirectory = "landscape/_texture_tiles/" + EcosystemName
+
+# Displace directory
+DisplaceSourceDirectory = "landscape/_texture_tiles/" + EcosystemName + "/displace"
+
+# Ligo primitive directory used in the client
+PsSourceDirectories = [ ]
+PsSourceDirectories += [ "primitive_microlife/" + ContinentName ]
+
+
+# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
+
+# Ig lookup directories used by rbank
+IgLookupDirectories = [ ]
+IgLookupDirectories += [ ContinentPath + "/ig_land" ]
+IgLookupDirectories += [ ContinentPath + "/ig_other" ]
+
+# Shape lookup directories used by rbank
+ShapeLookupDirectories = [ ]
+ShapeLookupDirectories += [ "common/sfx/ps" ]
+ShapeLookupDirectories += [ "common/sfx/shape_clodtex_build" ]
+ShapeLookupDirectories += [ "common/sfx/shape_with_coarse_mesh" ]
+ShapeLookupDirectories += [ "common/construction/shape_clodtex_build" ]
+ShapeLookupDirectories += [ "common/construction/shape_with_coarse_mesh" ]
+ShapeLookupDirectories += [ "ecosystems/desert/shape_clodtex_build" ]
+ShapeLookupDirectories += [ "ecosystems/desert/shape_with_coarse_mesh" ]
+ShapeLookupDirectories += [ "ecosystems/jungle/shape_clodtex_build" ]
+ShapeLookupDirectories += [ "ecosystems/jungle/shape_with_coarse_mesh" ]
+ShapeLookupDirectories += [ "ecosystems/lacustre/shape_clodtex_build" ]
+ShapeLookupDirectories += [ "ecosystems/lacustre/shape_with_coarse_mesh" ]
+ShapeLookupDirectories += [ ContinentPath + "/shape_clodtex_build" ]
+ShapeLookupDirectories += [ ContinentPath + "/shape_with_coarse_mesh" ]
+ShapeLookupDirectories += [ "continents/fyros/shape_clodtex_build" ]
+ShapeLookupDirectories += [ "continents/fyros/shape_with_coarse_mesh" ]
+ShapeLookupDirectories += [ "continents/matis/shape_clodtex_build" ]
+ShapeLookupDirectories += [ "continents/matis/shape_with_coarse_mesh" ]
+ShapeLookupDirectories += [ "continents/zorai/shape_clodtex_build" ]
+ShapeLookupDirectories += [ "continents/zorai/shape_with_coarse_mesh" ]
+ShapeLookupDirectories += [ "continents/tryker/shape_clodtex_build" ]
+ShapeLookupDirectories += [ "continents/tryker/shape_with_coarse_mesh" ]
+
+# Map lookup directories not yet used
+MapLookupDirectories = [ ]
+MapLookupDirectories += [ "common/sfx/map_export" ]
+MapLookupDirectories += [ "common/sfx/map_uncompressed" ]
+MapLookupDirectories += [ "common/construction/map_export" ]
+MapLookupDirectories += [ "common/construction/map_uncompressed" ]
+MapLookupDirectories += [ "ecosystems/desert/map_export" ]
+MapLookupDirectories += [ "ecosystems/desert/map_uncompressed" ]
+MapLookupDirectories += [ "ecosystems/jungle/map_export" ]
+MapLookupDirectories += [ "ecosystems/jungle/map_uncompressed" ]
+MapLookupDirectories += [ "ecosystems/lacustre/map_export" ]
+MapLookupDirectories += [ "ecosystems/lacustre/map_uncompressed" ]
+MapLookupDirectories += [ ContinentPath + "/map_export" ]
+MapLookupDirectories += [ ContinentPath + "/map_uncompressed" ]
+MapLookupDirectories += [ "continents/fyros/map_export" ]
+MapLookupDirectories += [ "continents/fyros/map_uncompressed" ]
+MapLookupDirectories += [ "continents/matis/map_export" ]
+MapLookupDirectories += [ "continents/matis/map_uncompressed" ]
+MapLookupDirectories += [ "continents/zorai/map_export" ]
+MapLookupDirectories += [ "continents/zorai/map_uncompressed" ]
+MapLookupDirectories += [ "continents/tryker/map_export" ]
+MapLookupDirectories += [ "continents/tryker/map_uncompressed" ]
+
+# PacsPrim lookup directories used by ai_wmap
+PacsPrimLookupDirectories = [ ]
+PacsPrimLookupDirectories += [ "ecosystems/desert/pacs_prim" ]
+PacsPrimLookupDirectories += [ "ecosystems/jungle/pacs_prim" ]
+PacsPrimLookupDirectories += [ "ecosystems/lacustre/pacs_prim" ]
+
+
+# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
+
+# Shape directories
+ShapeTagExportDirectory = CommonPath + "/shape_tag"
+ShapeNotOptimizedExportDirectory = CommonPath + "/shape_not_optimized"
+ShapeWithCoarseMeshExportDirectory = CommonPath + "/shape_with_coarse_mesh"
+ShapeLightmapNotOptimizedExportDirectory = CommonPath + "/shape_lightmap_not_optimized"
+ShapeAnimExportDirectory = CommonPath + "/shape_anim"
+
+# Ligo directories
+LigoDatabaseExportDirectory = "landscape/ligo/" + EcosystemName
+LigoDatabaseIgExportDirectory = LigoDatabaseExportDirectory + "/igs"
+LigoDatabaseZoneExportDirectory = LigoDatabaseExportDirectory + "/zones"
+LigoDatabaseZoneLigoExportDirectory = LigoDatabaseExportDirectory + "/zoneligos"
+LigoDatabaseCmbExportDirectory = LigoDatabaseExportDirectory + "/cmb"
+LigoTagExportDirectory = "ecosystems/" + EcosystemName + "/ligo_tag"
+
+# Zone directories
+ZoneExportDirectory = ContinentPath + "/zone"
+WaterMapSourceDirectories = [ ]
+
+# RBank directories
+RBankCmbExportDirectory = CommonPath + "/rbank_cmb_export"
+RBankCmbTagExportDirectory = CommonPath + "/rbank_cmb_tag_export"
+
+# Smallbank directories
+SmallbankExportDirectory = EcosystemPath + "/smallbank"
+
+# Tiles directories
+DisplaceExportDirectory = EcosystemPath + "/diplace"
+
+# Ig directories
+IgStaticLandExportDirectory = ContinentPath + "/ig_static_land" # Landscape IG eported from 3dsmax not elevated by the heightmap
+IgStaticOtherExportDirectory = ContinentPath + "/ig_static_other" # Village or construction IGs exported from 3dsmax
+IgStaticTagExportDirectory = ContinentPath + "/ig_static_tag" # Tag for exported 3dsmax files
+
+# PS directories
+PsExportDirectory = CommonPath + "/ps"
+
+
+# *** BUILD DIRECTORIES FOR THE BUILD PIPELINE ***
+
+# Shape directories
+ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
+ShapeWithCoarseMeshBuildDirectory = CommonPath + "/shape_with_coarse_mesh_builded"
+ShapeLightmapBuildDirectory = CommonPath + "/shape_lightmap"
+ShapeLightmap16BitsBuildDirectory = CommonPath + "/shape_lightmap_16_bits"
+
+# Ligo directories
+LigoZoneBuildDirectory = CommonPath + "/ligo_zones"
+LigoIgLandBuildDirectory = CommonPath + "/ligo_ig_land" # Landscape IG found in ligo bricks not elevated by the heightmap
+LigoIgOtherBuildDirectory = CommonPath + "/ligo_ig_other" # Village or construction IGs exported from ligo landscape
+
+# Zone directories
+ZoneWeldBuildDirectory = CommonPath + "/zone_weld"
+ZoneDependBuildDirectory = CommonPath + "/zone_depend"
+ZoneLightWaterShapesLightedExportDirectory = CommonPath + "/zone_lwsl_temp" #fixme
+ZoneLightBuildDirectory = CommonPath + "/zone_lighted" #fixme
+ZoneLightDependBuildDirectory = CommonPath + "/zone_lighted_depend" #fixme
+ZoneLightIgLandBuildDirectory = CommonPath + "/zone_lighted_ig_land" #fixme
+
+# Farbank directories
+FarbankBuildDirectory = EcosystemPath + "/farbank"
+
+# Ig directories
+IgElevLandPrimBuildDirectory = CommonPath + "/ig_elev_land_prim" # landscape IG generated by the prim exporter (already elevated by the land exporter)
+IgElevLandLigoBuildDirectory = CommonPath + "/ig_elev_land_ligo" # Landscape IG found in ligo bricks from 3dsmax elevated by the heightmap
+IgElevLandStaticBuildDirectory = CommonPath + "/ig_elev_land_static" # Landscape IG eported from 3dsmax elevated by the heightmap
+IgTempLandMergeBuildDirectory = CommonPath + "/ig_temp_land_merge"
+IgTempLandCompareBuildDirectory = CommonPath + "/ig_temp_land_compare" # Tmp final IG directory for landscape IGs before comparison
+IgLandBuildDirectory = CommonPath + "/ig_land" # Final IG directory for landscape IGs
+IgOtherBuildDirectory = CommonPath + "/ig_other" # Final IG directory for village or construction IGs
+IgOtherLightedBuildDirectory = CommonPath + "/ig_other_lighted"
+
+# Rbank directories
+RbankBboxBuildDirectory = CommonPath + "/rbank_bbox"
+RbankTessellationBuildDirectory = CommonPath + "/rbank_tessellation"
+RbankSmoothBuildDirectory = CommonPath + "/rbank_smooth"
+RbankRawBuildDirectory = CommonPath + "/rbank_raw"
+RbankPreprocBuildDirectory = CommonPath + "/rbank_preproc"
+RbankRetrieversBuildDirectory = CommonPath + "/rbank_retrievers"
+RbankOutputBuildDirectory = CommonPath + "/rbank_output"
+
+# AI Wmap directories
+AiWmapBuildDirectory = CommonPath + "/ai_wmap"
+AiWmapBuildTagDirectory = CommonPath + "/ai_wmap_tag"
+
+
+# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
+
+# Shape directory
+ShapeInstallDirectory = CommonName + "_shapes"
+
+# Shape lightmaps directory
+LightmapInstallDirectory = CommonName + "_lightmaps"
+
+# Ig directory
+IgInstallDirectory = CommonName + "_ig"
+
+# PACS directory
+PacsInstallDirectory = CommonName + "_pacs"
+
+# PS directory
+PsInstallDirectory = CommonName + "_ig"
+
+# AI Wmap directory
+AiWmapInstallDirectory = CommonName + "_ai"
diff --git a/code/ryzom/tools/build_gamedata/workspace/continents/indoors/process.py b/code/ryzom/tools/build_gamedata/workspace/continents/indoors/process.py
new file mode 100644
index 000000000..5b8f2a309
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/continents/indoors/process.py
@@ -0,0 +1,167 @@
+#!/usr/bin/python
+#
+# \file config.py
+# \brief Process configuration
+# \date 2010-05-24 06:30GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Process configuration.
+#
+# NeL - 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 .
+#
+
+# *** PROCESS CONFIGURATION ***
+
+
+# *** PROCESS CONFIG ***
+ProcessToComplete = [ ]
+ProcessToComplete += [ "properties" ]
+ProcessToComplete += [ "shape" ]
+ProcessToComplete += [ "ig" ]
+ProcessToComplete += [ "rbank" ]
+ProcessToComplete += [ "ig_light" ]
+ProcessToComplete += [ "ps" ]
+ProcessToComplete += [ "ai_wmap" ]
+
+
+# *** ECOSYSTEM AND CONTINENT NAMES ***
+
+EcosystemName = "desert"
+EcosystemPath = "ecosystems/" + EcosystemName
+ContinentName = "indoors"
+ContinentPath = "continents/" + ContinentName
+CommonName = ContinentName
+CommonPath = ContinentPath
+
+
+# *** LANDSCAPE NAME ***
+LandscapeName = ContinentName
+
+# *** CONTINENT FILE ***
+ContinentFile = ContinentName + "/" + ContinentName + ".continent"
+
+
+
+# *** SHAPE EXPORT OPTIONS ***
+
+# Compute lightmaps ?
+ShapeExportOptExportLighting = "true"
+
+# Cast shadow in lightmap ?
+ShapeExportOptShadow = "true"
+
+# Lighting limits. 0 : normal, 1 : soft shadows
+ShapeExportOptLightingLimit = 0
+
+# Lightmap lumel size
+ShapeExportOptLumelSize = "0.25"
+
+# Oversampling value. Can be 1, 2, 4 or 8
+ShapeExportOptOversampling = 1
+
+# Does the lightmap must be generated in 8 bits format ?
+ShapeExportOpt8BitsLightmap = "false"
+
+# Does the lightmaps export must generate logs ?
+ShapeExportOptLightmapLog = "true"
+
+# Coarse mesh texture mul size
+TextureMulSizeValue = "1.5"
+
+DoBuildShadowSkin = 0
+
+ClodConfigFile = ""
+
+# *** COARSE MESH TEXTURE NAME ***
+CoarseMeshTextureNames = [ ]
+
+# *** BANK EXPORT OPTIONS ***
+
+# *** POSTFIX USED BY THE MULTIPLE TILES SYSTEM ***
+MultipleTilesPostfix = [ ]
+MultipleTilesPostfix += [ "_sp" ]
+MultipleTilesPostfix += [ "_su" ]
+MultipleTilesPostfix += [ "_au" ]
+MultipleTilesPostfix += [ "_wi" ]
+
+# Name of the tilebank to use
+BankTileBankName = EcosystemName
+
+
+# *** LIGO OPTIONS ***
+LigoExportLand = ""
+LigoExportOnePass = 0
+LigoExportColormap = "colormap_" + ContinentName + ".png"
+LigoExportHeightmap1 = "big_" + ContinentName + ".png"
+LigoExportZFactor1 = "1.0"
+LigoExportHeightmap2 = "noise_" + ContinentName + ".png"
+LigoExportZFactor2 = "0.5"
+LigoTileBankFile = "landscape/_texture_tiles/" + EcosystemName + "/" + EcosystemName + ".bank"
+
+# *** ZONE REGIONS ( up-left, down-right ) ***
+#ZoneRegions = [ ]
+#ZoneRegions += [ [ "1_aa" ] + [ "2_ai" ] ]
+
+# *** RBANK OPTIONS ***
+
+# Options
+RBankVerbose = 0
+RBankConsistencyCheck = 0
+RbankReduceSurfaces = 1
+RbankSmoothBorders = 1
+RbankComputeElevation = 0
+RbankComputeLevels = 1
+RbankLinkElements = 1
+RbankCutEdges = 1
+RbankUseZoneSquare = 0
+
+# Region to compute ( ALPHA UPPER CASE! )
+RbankZoneUl = "1_AA"
+RbankZoneDr = "2_AI"
+
+# Output names
+RbankRbankName = LandscapeName
+
+
+# *** AI WMAP OPTIONS ***
+AiWmapContinentName = ContinentName
+AiWmapVerbose = 0
+AiWmapStartPoints = [ ]
+
+# matis
+AiWmapStartPoints += [ ContinentName + " 20025 -432" ] # player room
+AiWmapStartPoints += [ ContinentName + " 20120 -439" ] # hall room
+AiWmapStartPoints += [ ContinentName + " 20190 -454" ] # guild room
+AiWmapStartPoints += [ ContinentName + " 20281 -439" ] # role master/npc room
+
+# zorai
+AiWmapStartPoints += [ ContinentName + " 20363 -439" ] # player room
+AiWmapStartPoints += [ ContinentName + " 20440 -444" ] # hall room
+AiWmapStartPoints += [ ContinentName + " 20519 -466" ] # guild room
+AiWmapStartPoints += [ ContinentName + " 20591 -442" ] # role master/npc room
+
+# tryker
+AiWmapStartPoints += [ ContinentName + " 20682 -439" ] # player room
+AiWmapStartPoints += [ ContinentName + " 20755 -440" ] # hall room
+# AiWmapStartPoints += [ ContinentName + " 20833 -439" ] # guild room
+AiWmapStartPoints += [ ContinentName + " 20920 -439" ] # role master/npc room
+
+# fyros
+AiWmapStartPoints += [ ContinentName + " 20998 -441" ] # player room
+AiWmapStartPoints += [ ContinentName + " 21079 -443" ] # hall room
+AiWmapStartPoints += [ ContinentName + " 21162 -443" ] # guild room
+AiWmapStartPoints += [ ContinentName + " 21239 -439" ] # role master/npc room
diff --git a/code/ryzom/tools/build_gamedata/workspace/continents/indoors/properties_base.cfg b/code/ryzom/tools/build_gamedata/workspace/continents/indoors/properties_base.cfg
new file mode 100644
index 000000000..468e8edc0
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/continents/indoors/properties_base.cfg
@@ -0,0 +1,98 @@
+
+// Continent name
+continent_name = "%ContinentName%";
+
+// Level design directory
+level_design_directory = "%LeveldesignDirectory%";
+
+// World directory
+level_design_world_directory = "%LeveldesignWorldDirectory%";
+
+// DFN directory
+level_design_dfn_directory = "%LeveldesignDfnDirectory%";
+
+// Bank file name
+bank_name = "%ExportBuildDirectory%/%SmallbankExportDirectory%/%EcosystemName%.smallbank";
+bankfar_name = "%ExportBuildDirectory%/%FarbankBuildDirectory%/%EcosystemName%.farbank";
+
+// Search pathes
+search_pathes =
+{
+ "%ExportBuildDirectory%/common/sfx/ps", // Sfx directory
+ "%ExportBuildDirectory%/common/sfx/shape_clodtex_build", // Sfx directory
+ "%ExportBuildDirectory%/common/sfx/shape_with_coarse_mesh", // Sfx directory
+ "%ExportBuildDirectory%/common/sfx/map_export", // Sfx directory
+ "%ExportBuildDirectory%/common/sfx/map_uncompressed", // Sfx directory
+ "%ExportBuildDirectory%/common/construction/shape_clodtex_build", // Construction directory
+ "%ExportBuildDirectory%/common/construction/shape_with_coarse_mesh", // Construction directory
+ "%ExportBuildDirectory%/common/construction/map_export", // Construction directory
+ "%ExportBuildDirectory%/common/construction/map_uncompressed", // Construction directory
+ "%ExportBuildDirectory%/ecosystems/desert/shape_clodtex_build", // Shape directory
+ "%ExportBuildDirectory%/ecosystems/desert/shape_with_coarse_mesh", // Shape directory
+ "%ExportBuildDirectory%/ecosystems/desert/map_export", // Map directory
+ "%ExportBuildDirectory%/ecosystems/desert/map_uncompressed", // Map directory
+ "%ExportBuildDirectory%/ecosystems/jungle/shape_clodtex_build", // Shape directory
+ "%ExportBuildDirectory%/ecosystems/jungle/shape_with_coarse_mesh", // Shape directory
+ "%ExportBuildDirectory%/ecosystems/jungle/map_export", // Map directory
+ "%ExportBuildDirectory%/ecosystems/jungle/map_uncompressed", // Map directory
+ "%ExportBuildDirectory%/ecosystems/lacustre/shape_clodtex_build", // Shape directory
+ "%ExportBuildDirectory%/ecosystems/lacustre/shape_with_coarse_mesh", // Shape directory
+ "%ExportBuildDirectory%/ecosystems/lacustre/map_export", // Map directory
+ "%ExportBuildDirectory%/ecosystems/lacustre/map_uncompressed", // Map directory
+ "%ExportBuildDirectory%/continents/%ContinentName%/ig_land", // Instance group directory
+ "%ExportBuildDirectory%/continents/%ContinentName%/ig_other", // Instance group directory
+ "%ExportBuildDirectory%/continents/%ContinentName%/shape_clodtex_build", // Shape directory
+ "%ExportBuildDirectory%/continents/%ContinentName%/shape_with_coarse_mesh", // Shape directory
+ "%ExportBuildDirectory%/continents/%ContinentName%/map_export", // Map directory
+ "%ExportBuildDirectory%/continents/%ContinentName%/map_uncompressed", // Map directory
+ "%ExportBuildDirectory%/continents/fyros/shape_clodtex_build", // Shape directory
+ "%ExportBuildDirectory%/continents/fyros/shape_with_coarse_mesh", // Shape directory
+ "%ExportBuildDirectory%/continents/fyros/map_export", // Map directory
+ "%ExportBuildDirectory%/continents/fyros/map_uncompressed", // Map directory
+ "%ExportBuildDirectory%/continents/matis/shape_clodtex_build", // Shape directory
+ "%ExportBuildDirectory%/continents/matis/shape_with_coarse_mesh", // Shape directory
+ "%ExportBuildDirectory%/continents/matis/map_export", // Map directory
+ "%ExportBuildDirectory%/continents/matis/map_uncompressed", // Map directory
+ "%ExportBuildDirectory%/continents/zorai/shape_clodtex_build", // Shape directory
+ "%ExportBuildDirectory%/continents/zorai/shape_with_coarse_mesh", // Shape directory
+ "%ExportBuildDirectory%/continents/zorai/map_export", // Map directory
+ "%ExportBuildDirectory%/continents/zorai/map_uncompressed", // Map directory
+ "%ExportBuildDirectory%/continents/tryker/shape_clodtex_build", // Shape directory
+ "%ExportBuildDirectory%/continents/tryker/shape_with_coarse_mesh", // Shape directory
+ "%ExportBuildDirectory%/continents/tryker/map_export", // Map directory
+ "%ExportBuildDirectory%/continents/tryker/map_uncompressed", // Map directory
+};
+
+// Additional ig file name
+additionnal_ig =
+{
+
+};
+
+// Sun direction.
+sun_direction = { -0.776685, +0.216619, -0.59147 };
+
+// Center of the landscape pointed by the sun
+sun_center = {9954, -11017, 0};
+
+// Distance of the sun
+sun_distance = 50000;
+
+// FOV of the sun in radian
+sun_fov = 0.52359877; // Pi / 6
+
+// Sun radius, (for softshadow sampling)
+sun_radius = 5000;
+
+// GlobalRetriever bank file.gr. Empty string to disable SurfaceLighting
+grbank= "%ExportBuildDirectory%/%RbankOutputBuildDirectory%/%RbankRbankName%.gr";
+
+// LocalRetriever bank file .rbank. Empty string to disable SurfaceLighting
+rbank= "%ExportBuildDirectory%/%RbankOutputBuildDirectory%/%RbankRbankName%.rbank";
+
+// The lighter search in rbank any retriever with identifier ---igname*** as substring
+// where --- is col_identifier_prefix and *** is col_identifier_suffix
+// eg: if igname= "street", col_identifier_prefix= "col_", col_identifier_suffix= "_",
+// then "col_street_1" and "col_street_2" are valid and are used to build LightSurface infos in the Ig.
+col_identifier_prefix= "";
+col_identifier_suffix= "";
diff --git a/code/ryzom/tools/build_gamedata/workspace/continents/indoors/properties_draft.cfg b/code/ryzom/tools/build_gamedata/workspace/continents/indoors/properties_draft.cfg
new file mode 100644
index 000000000..07fad2f60
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/continents/indoors/properties_draft.cfg
@@ -0,0 +1,93 @@
+
+// Load instance group. 0 disable, 1 enable
+load_ig = 0;
+
+// Use ig to compute dependencies 0 disable, 1 enable
+compute_dependencies_with_igs = 0;
+
+// Enable shadows. 0 disable, 1 enable
+shadow = 0;
+
+// Landscape ZBuffers size for all the landscape. There is one zbuffer like this one per softshadow sample.
+zbuffer_landscape_size = 32768;
+
+// Object ZBuffers size for all the landscape. This zbuffer is typically finer. There is only one zbuffer like this.
+zbuffer_object_size = 98304;
+
+// Square root of the number of soft shadow samples
+soft_shadow_samples_sqrt = 4;
+
+// Soft shadow jitter (0 ~ 1) to smooth softshadow aliasing when sampling number is small
+soft_shadow_jitter = 0.4;
+
+// Enable the sun contribution. 0 disable, 1 enable
+sun_contribution = 1;
+
+// Enable the sky global illumaniation. 0 disable, 1 enable
+sky_contribution = 0;
+
+// The sky global illumaniation intensity . [0 ~ 1]
+sky_intensity = 0.20;
+
+// Accuracy of the sky global illumaniation algorithm in meter
+global_illumination_cell_size = 5;
+
+// shadow bias for water surfaces
+water_shadow_bias = 0.8;
+
+// ambient lighting for water. [0 ~ 1]
+water_ambient = 0.3;
+
+// diffuse lighting for water. [0 ~ 1]
+water_diffuse = 1.0;
+
+// true if the water color should be modulated with the source diffuse map
+modulate_water_color = 0;
+
+// 1 if the water should receive sky lighting contribution
+sky_contribution_for_water = 0;
+
+// Side length of landscape used to compute the sky global illumaniation in meter
+global_illumination_length = 600;
+
+// Size of the quad grid side in meter. Should be a power of 2. (optimisation)
+quad_grid_size = 512;
+
+// Size of a cell of the quad grid in meter. (optimisation)
+quad_grid_cell_size = 1;
+
+// Number of CPU used to calculate the lightmaps. 0 for automatic detection.
+cpu_num = 0;
+
+/// Evaluation the max vegetable height in meters. This is used to decide wether vegetable of a tile
+/// are above, below, or intersect a water surface (rough approximation).
+/// As a matter of fact, these flags are processed during hte lighting as well.
+vegetable_height = 2;
+
+
+
+
+// ***************************
+// Ig Lighting.
+// ***************************
+// Ig lighting shares also above parameters: sun_direction, shadow, quad_grid_size, quad_grid_cell_size, shapes_path
+
+
+// Oversampling value, must be 0 (disable), 2, 4, 8, 16
+// This apply to surface cells and instances.
+ig_oversampling = 16;
+
+
+// IG Surface Lighting (for ig_light process only)
+
+// If SurfaceLighting enabled, define size of a cell (in meters) in a surface.
+cell_surface_light_size = 1.5;
+
+// If SurfaceLighting enabled, define a deltaZ before raytracing cellPos against lights. Usefull to skip shadow errors like stairs
+cell_raytrace_delta_z = 0.2;
+
+
+// Build debug surface shapes (slows the process)
+build_debug_surface_shape= 0;
+
+
diff --git a/code/ryzom/tools/build_gamedata/workspace/continents/indoors/properties_final.cfg b/code/ryzom/tools/build_gamedata/workspace/continents/indoors/properties_final.cfg
new file mode 100644
index 000000000..522c15d44
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/continents/indoors/properties_final.cfg
@@ -0,0 +1,93 @@
+
+// Load instance group. 0 disable, 1 enable
+load_ig = 1;
+
+// Use ig to compute dependencies 0 disable, 1 enable
+compute_dependencies_with_igs = 1;
+
+// Enable shadows. 0 disable, 1 enable
+shadow = 1;
+
+// Landscape ZBuffers size for all the landscape. There is one zbuffer like this one per softshadow sample.
+zbuffer_landscape_size = 32768;
+
+// Object ZBuffers size for all the landscape. This zbuffer is typically finer. There is only one zbuffer like this.
+zbuffer_object_size = 98304;
+
+// Square root of the number of soft shadow samples
+soft_shadow_samples_sqrt = 4;
+
+// Soft shadow jitter (0 ~ 1) to smooth softshadow aliasing when sampling number is small
+soft_shadow_jitter = 0.4;
+
+// Enable the sun contribution. 0 disable, 1 enable
+sun_contribution = 1;
+
+// Enable the sky global illumaniation. 0 disable, 1 enable
+sky_contribution = 1;
+
+// The sky global illumaniation intensity . [0 ~ 1]
+sky_intensity = 0.20;
+
+// Accuracy of the sky global illumaniation algorithm in meter
+global_illumination_cell_size = 5;
+
+// shadow bias for water surfaces
+water_shadow_bias = 0.8;
+
+// ambient lighting for water. [0 ~ 1]
+water_ambient = 0.3;
+
+// diffuse lighting for water. [0 ~ 1]
+water_diffuse = 1.0;
+
+// true if the water color should be modulated with the source diffuse map
+modulate_water_color = 0;
+
+// 1 if the water should receive sky lighting contribution
+sky_contribution_for_water = 0;
+
+// Side length of landscape used to compute the sky global illumaniation in meter
+global_illumination_length = 600;
+
+// Size of the quad grid side in meter. Should be a power of 2. (optimisation)
+quad_grid_size = 64;
+
+// Size of a cell of the quad grid in meter. (optimisation)
+quad_grid_cell_size = 2;
+
+// Number of CPU used to calculate the lightmaps. 0 for automatic detection.
+cpu_num = 0;
+
+/// Evaluation the max vegetable height in meters. This is used to decide wether vegetable of a tile
+/// are above, below, or intersect a water surface (rough approximation).
+/// As a matter of fact, these flags are processed during hte lighting as well.
+vegetable_height = 2;
+
+
+
+
+// ***************************
+// Ig Lighting.
+// ***************************
+// Ig lighting shares also above parameters: sun_direction, shadow, quad_grid_size, quad_grid_cell_size, shapes_path
+
+
+// Oversampling value, must be 0 (disable), 2, 4, 8, 16
+// This apply to surface cells and instances.
+ig_oversampling = 16;
+
+
+// IG Surface Lighting (for ig_light process only)
+
+// If SurfaceLighting enabled, define size of a cell (in meters) in a surface.
+cell_surface_light_size = 1.5;
+
+// If SurfaceLighting enabled, define a deltaZ before raytracing cellPos against lights. Usefull to skip shadow errors like stairs
+cell_raytrace_delta_z = 0.2;
+
+
+// Build debug surface shapes (slows the process)
+build_debug_surface_shape= 0;
+
+
diff --git a/code/ryzom/tools/build_gamedata/workspace/continents/matis/directories.py b/code/ryzom/tools/build_gamedata/workspace/continents/matis/directories.py
new file mode 100644
index 000000000..d6acd91fc
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/continents/matis/directories.py
@@ -0,0 +1,124 @@
+#!/usr/bin/python
+#
+# \file directories.py
+# \brief Directories configuration
+# \date 2010-05-24 06:34GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Directories configuration.
+#
+# NeL - 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 .
+#
+
+
+# *** ECOSYSTEM AND CONTINENT NAMES ***
+
+EcosystemName = "jungle"
+EcosystemPath = "ecosystems/" + EcosystemName
+ContinentName = "matis"
+ContinentPath = "continents/" + ContinentName
+CommonName = ContinentName
+CommonPath = ContinentPath
+
+
+# *** SOURCE DIRECTORIES LEVELDESIGN/WORLD ***
+ContinentLeveldesignWorldDirectory = ContinentName
+
+
+# *** SOURCE DIRECTORIES IN THE DATABASE ***
+
+# Shape directories
+ShapeSourceDirectories = [ ]
+ShapeSourceDirectories += [ "stuff/matis/decors/constructions" ]
+ShapeSourceDirectories += [ "stuff/matis/sky" ]
+
+# Maps directories
+MapSourceDirectories = [ ]
+MapSourceDirectories += [ "stuff/matis/decors/_textures/batiments" ]
+MapSourceDirectories += [ "stuff/matis/sky" ]
+MapUncompressedSourceDirectories = [ ]
+
+
+# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
+
+# Shape lookup directories used by rbank
+ShapeLookupDirectories = [ ]
+ShapeLookupDirectories += [ "common/sfx/ps" ]
+ShapeLookupDirectories += [ "common/sfx/shape_clodtex_build" ]
+ShapeLookupDirectories += [ "common/sfx/shape_with_coarse_mesh" ]
+ShapeLookupDirectories += [ "common/construction/shape_clodtex_build" ]
+ShapeLookupDirectories += [ "common/construction/shape_with_coarse_mesh" ]
+ShapeLookupDirectories += [ EcosystemPath + "/shape_clodtex_build" ]
+ShapeLookupDirectories += [ EcosystemPath + "/shape_with_coarse_mesh" ]
+ShapeLookupDirectories += [ ContinentPath + "/shape_clodtex_build" ]
+ShapeLookupDirectories += [ ContinentPath + "/shape_with_coarse_mesh" ]
+# ShapeLookupDirectories += [ ContinentName + "/zone_light/water_shapes_lighted" ] huh?
+
+# Map lookup directories used by shape
+MapLookupDirectories = [ ]
+MapLookupDirectories += [ "common/sfx/map_export" ]
+MapLookupDirectories += [ "common/sfx/map_uncompressed" ]
+MapLookupDirectories += [ "common/construction/map_export" ]
+MapLookupDirectories += [ "common/construction/map_uncompressed" ]
+MapLookupDirectories += [ EcosystemPath + "/map_export" ]
+MapLookupDirectories += [ EcosystemPath + "/map_uncompressed" ]
+MapLookupDirectories += [ ContinentPath + "/map_export" ]
+MapLookupDirectories += [ ContinentPath + "/map_uncompressed" ]
+
+
+# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
+
+# Map directories
+MapExportDirectory = CommonPath + "/map_export"
+MapUncompressedExportDirectory = CommonPath + "/map_uncompressed"
+
+# Shape directories
+ShapeTagExportDirectory = CommonPath + "/shape_tag"
+ShapeNotOptimizedExportDirectory = CommonPath + "/shape_not_optimized"
+ShapeWithCoarseMeshExportDirectory = CommonPath + "/shape_with_coarse_mesh"
+ShapeLightmapNotOptimizedExportDirectory = CommonPath + "/shape_lightmap_not_optimized"
+ShapeAnimExportDirectory = CommonPath + "/shape_anim"
+
+
+# *** BUILD DIRECTORIES FOR THE BUILD PIPELINE ***
+
+# Map directories
+MapBuildDirectory = CommonPath + "/map"
+MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
+MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
+MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
+MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
+MapTagBuildDirectory = CommonPath + "/map_tag"
+
+# Shape directories
+ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
+ShapeWithCoarseMeshBuildDirectory = CommonPath + "/shape_with_coarse_mesh_builded"
+ShapeLightmapBuildDirectory = CommonPath + "/shape_lightmap"
+ShapeLightmap16BitsBuildDirectory = CommonPath + "/shape_lightmap_16_bits"
+
+
+# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
+
+# Map directory
+MapInstallDirectory = CommonName + "_maps"
+BitmapInstallDirectory = MapInstallDirectory
+
+# Shape directory
+ShapeInstallDirectory = CommonName + "_shapes"
+
+# Shape lightmaps directory
+LightmapInstallDirectory = ShapeInstallDirectory
diff --git a/code/ryzom/tools/build_gamedata/workspace/continents/matis/process.py b/code/ryzom/tools/build_gamedata/workspace/continents/matis/process.py
new file mode 100644
index 000000000..fabc58b4f
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/continents/matis/process.py
@@ -0,0 +1,81 @@
+#!/usr/bin/python
+#
+# \file config.py
+# \brief Process configuration
+# \date 2010-05-24 06:30GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Process configuration.
+#
+# NeL - 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 .
+#
+
+# *** PROCESS CONFIGURATION ***
+
+
+# *** PROCESS CONFIG ***
+ProcessToComplete = [ ]
+ProcessToComplete += [ "map" ]
+ProcessToComplete += [ "shape" ]
+
+
+# *** ECOSYSTEM AND CONTINENT NAMES ***
+
+EcosystemName = "jungle"
+EcosystemPath = "ecosystems/" + EcosystemName
+ContinentName = "matis"
+ContinentPath = "continents/" + ContinentName
+CommonName = ContinentName
+CommonPath = ContinentPath
+
+
+# *** SHAPE EXPORT OPTIONS ***
+# Compute lightmaps ?
+ShapeExportOptExportLighting = "true"
+# Cast shadow in lightmap ?
+ShapeExportOptShadow = "true"
+# Lighting limits. 0 : normal, 1 : soft shadows
+ShapeExportOptLightingLimit = 0
+# Lightmap lumel size
+ShapeExportOptLumelSize = "0.25"
+# Oversampling value. Can be 1, 2, 4 or 8
+ShapeExportOptOversampling = 1
+# Does the lightmap must be generated in 8 bits format ?
+ShapeExportOpt8BitsLightmap = "false"
+# Does the lightmaps export must generate logs ?
+ShapeExportOptLightmapLog = "true"
+# Coarse mesh texture mul size
+TextureMulSizeValue = "1.5"
+DoBuildShadowSkin = 0
+ClodConfigFile = ""
+
+# *** COARSE MESH TEXTURE NAME ***
+CoarseMeshTextureNames = [ ]
+
+# *** POSTFIX USED BY THE MULTIPLE TILES SYSTEM ***
+MultipleTilesPostfix = [ ]
+MultipleTilesPostfix += [ "_sp" ]
+MultipleTilesPostfix += [ "_su" ]
+MultipleTilesPostfix += [ "_au" ]
+MultipleTilesPostfix += [ "_wi" ]
+
+# *** MAPS OPTIONS ***
+ReduceBitmapFactor = 0
+# list all panoply files
+MapPanoplyFileList = None
+# name of the .hlsbank to build.
+MapHlsBankFileName = None
diff --git a/code/ryzom/tools/build_gamedata/workspace/continents/newbieland/directories.py b/code/ryzom/tools/build_gamedata/workspace/continents/newbieland/directories.py
index 3b477843a..35cf3b286 100644
--- a/code/ryzom/tools/build_gamedata/workspace/continents/newbieland/directories.py
+++ b/code/ryzom/tools/build_gamedata/workspace/continents/newbieland/directories.py
@@ -101,18 +101,25 @@ ShapeLookupDirectories += [ EcosystemPath + "/shape_with_coarse_mesh" ]
ShapeLookupDirectories += [ ContinentPath + "/shape_clodtex_build" ]
ShapeLookupDirectories += [ ContinentPath + "/shape_with_coarse_mesh" ]
# ShapeLookupDirectories += [ ContinentName + "/zone_light/water_shapes_lighted" ] huh?
+ShapeLookupDirectories += [ "ecosystems/lacustre/shape_clodtex_build" ] # additional
+ShapeLookupDirectories += [ "ecosystems/lacustre/shape_with_coarse_mesh" ] # additional
-# Map lookup directories not yet used
+# Map lookup directories used by shape
MapLookupDirectories = [ ]
-ShapeLookupDirectories += [ "common/sfx/map_export" ]
-ShapeLookupDirectories += [ "common/sfx/map_uncompressed" ]
-ShapeLookupDirectories += [ "common/construction/map_export" ]
-ShapeLookupDirectories += [ "common/construction/map_uncompressed" ]
-ShapeLookupDirectories += [ EcosystemPath + "/map_export" ]
-ShapeLookupDirectories += [ EcosystemPath + "/map_uncompressed" ]
-ShapeLookupDirectories += [ ContinentPath + "/map_export" ]
-ShapeLookupDirectories += [ ContinentPath + "/map_uncompressed" ]
+MapLookupDirectories += [ "common/sfx/map_export" ]
+MapLookupDirectories += [ "common/sfx/map_uncompressed" ]
+MapLookupDirectories += [ "common/construction/map_export" ]
+MapLookupDirectories += [ "common/construction/map_uncompressed" ]
+MapLookupDirectories += [ EcosystemPath + "/map_export" ]
+MapLookupDirectories += [ EcosystemPath + "/map_uncompressed" ]
+MapLookupDirectories += [ ContinentPath + "/map_export" ]
+MapLookupDirectories += [ ContinentPath + "/map_uncompressed" ]
+MapLookupDirectories += [ "ecosystems/lacustre/map_export" ] # additional
+MapLookupDirectories += [ "ecosystems/lacustre/map_uncompressed" ] # additional
+# PacsPrim lookup directories used by ai_wmap
+PacsPrimLookupDirectories = [ ]
+PacsPrimLookupDirectories += [ EcosystemPath + "/pacs_prim" ]
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
@@ -164,6 +171,10 @@ PsExportDirectory = CommonPath + "/ps"
# Map directories
MapBuildDirectory = CommonPath + "/map"
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
+MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
+MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
+MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
+MapTagBuildDirectory = CommonPath + "/map_tag"
# Shape directories
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
@@ -206,28 +217,35 @@ RbankPreprocBuildDirectory = CommonPath + "/rbank_preproc"
RbankRetrieversBuildDirectory = CommonPath + "/rbank_retrievers"
RbankOutputBuildDirectory = CommonPath + "/rbank_output"
+# AI Wmap directories
+AiWmapBuildDirectory = CommonPath + "/ai_wmap"
+AiWmapBuildTagDirectory = CommonPath + "/ai_wmap_tag"
+
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
# Map directory
-MapClientDirectory = CommonName + "_maps"
-BitmapClientDirectory = MapClientDirectory
+MapInstallDirectory = CommonName + "_maps"
+BitmapInstallDirectory = MapInstallDirectory
# Shape directory
-ShapeClientDirectory = CommonName + "_shapes"
+ShapeInstallDirectory = CommonName + "_shapes"
# Shape lightmaps directory
-LightmapClientDirectory = ShapeClientDirectory
+LightmapInstallDirectory = ShapeInstallDirectory
# Ig directory
-IgClientDirectory = CommonName + "_ig"
+IgInstallDirectory = CommonName + "_ig"
# Zone directory
-ZoneClientDirectory = CommonName + "_zones"
-WaterMapsClientDirectory = ZoneClientDirectory
+ZoneInstallDirectory = CommonName + "_zones"
+WaterMapsInstallDirectory = ZoneInstallDirectory
# PACS directory
-PacsClientDirectory = CommonName + "_pacs"
+PacsInstallDirectory = CommonName + "_pacs"
# PS directory
-PsClientDirectory = CommonName + "_ig"
+PsInstallDirectory = CommonName + "_ig"
+
+# AI Wmap directory
+AiWmapInstallDirectory = CommonName + "_ai"
diff --git a/code/ryzom/tools/build_gamedata/workspace/continents/newbieland/process.py b/code/ryzom/tools/build_gamedata/workspace/continents/newbieland/process.py
index 33b9f5bb9..0473db765 100644
--- a/code/ryzom/tools/build_gamedata/workspace/continents/newbieland/process.py
+++ b/code/ryzom/tools/build_gamedata/workspace/continents/newbieland/process.py
@@ -39,6 +39,7 @@ ProcessToComplete += [ "zone_light" ] # works, need to check completeness
ProcessToComplete += [ "rbank" ]
ProcessToComplete += [ "ig_light" ] # fully implemented
ProcessToComplete += [ "ps" ]
+ProcessToComplete += [ "ai_wmap" ]
# *** ECOSYSTEM AND CONTINENT NAMES ***
@@ -154,6 +155,15 @@ RbankRbankName = LandscapeName
# RbankShapePaths += [ "l:/leveldesign/world_edit_files" ]
# *** MAPS OPTIONS ***
-
ReduceBitmapFactor = 0
+# list all panoply files
+MapPanoplyFileList = None
+# name of the .hlsbank to build.
+MapHlsBankFileName = None
+# *** AI WMAP OPTIONS ***
+AiWmapContinentName = ContinentName
+AiWmapVerbose = 0
+AiWmapStartPoints = [ ]
+AiWmapStartPoints += [ ContinentName + " 8523 -10846" ]
+AiWmapStartPoints += [ ContinentName + " 10314 -11743" ]
diff --git a/code/ryzom/tools/build_gamedata/workspace/continents/newbieland/properties_base.cfg b/code/ryzom/tools/build_gamedata/workspace/continents/newbieland/properties_base.cfg
index 8bb47d4dd..fb71eb185 100644
--- a/code/ryzom/tools/build_gamedata/workspace/continents/newbieland/properties_base.cfg
+++ b/code/ryzom/tools/build_gamedata/workspace/continents/newbieland/properties_base.cfg
@@ -31,6 +31,10 @@ search_pathes =
"%ExportBuildDirectory%/ecosystems/%EcosystemName%/shape_with_coarse_mesh", // Shape directory
"%ExportBuildDirectory%/ecosystems/%EcosystemName%/map_export", // Map directory
"%ExportBuildDirectory%/ecosystems/%EcosystemName%/map_uncompressed", // Map directory
+ "%ExportBuildDirectory%/ecosystems/lacustre/shape_clodtex_build", // Shape directory
+ "%ExportBuildDirectory%/ecosystems/lacustre/shape_with_coarse_mesh", // Shape directory
+ "%ExportBuildDirectory%/ecosystems/lacustre/map_export", // Map directory
+ "%ExportBuildDirectory%/ecosystems/lacustre/map_uncompressed", // Map directory
"%ExportBuildDirectory%/continents/%ContinentName%/zone_light/water_shapes_lighted", // Water shape lighted directory
"%ExportBuildDirectory%/continents/%ContinentName%/ig_land", // Instance group directory
"%ExportBuildDirectory%/continents/%ContinentName%/ig_other", // Instance group directory
diff --git a/code/ryzom/tools/build_gamedata/workspace/continents/tryker/directories.py b/code/ryzom/tools/build_gamedata/workspace/continents/tryker/directories.py
new file mode 100644
index 000000000..5a7ebfef1
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/continents/tryker/directories.py
@@ -0,0 +1,126 @@
+#!/usr/bin/python
+#
+# \file directories.py
+# \brief Directories configuration
+# \date 2010-05-24 06:34GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Directories configuration.
+#
+# NeL - 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 .
+#
+
+
+# *** ECOSYSTEM AND CONTINENT NAMES ***
+
+EcosystemName = "lacustre"
+EcosystemPath = "ecosystems/" + EcosystemName
+ContinentName = "tryker"
+ContinentPath = "continents/" + ContinentName
+CommonName = ContinentName
+CommonPath = ContinentPath
+
+
+# *** SOURCE DIRECTORIES LEVELDESIGN/WORLD ***
+ContinentLeveldesignWorldDirectory = ContinentName
+
+
+# *** SOURCE DIRECTORIES IN THE DATABASE ***
+
+# Shape directories
+ShapeSourceDirectories = [ ]
+ShapeSourceDirectories += [ "stuff/tryker/decors/constructions" ]
+ShapeSourceDirectories += [ "stuff/tryker/sky" ]
+ShapeSourceDirectories += [ "landscape/water/Meshes/lacustre" ]
+
+# Maps directories
+MapSourceDirectories = [ ]
+MapSourceDirectories += [ "stuff/tryker/decors/_textures/batiments" ]
+MapSourceDirectories += [ "stuff/tryker/sky" ]
+MapSourceDirectories += [ "landscape/water/Meshes/lacustre" ]
+MapUncompressedSourceDirectories = [ ]
+
+
+# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
+
+# Shape lookup directories used by rbank
+ShapeLookupDirectories = [ ]
+ShapeLookupDirectories += [ "common/sfx/ps" ]
+ShapeLookupDirectories += [ "common/sfx/shape_clodtex_build" ]
+ShapeLookupDirectories += [ "common/sfx/shape_with_coarse_mesh" ]
+ShapeLookupDirectories += [ "common/construction/shape_clodtex_build" ]
+ShapeLookupDirectories += [ "common/construction/shape_with_coarse_mesh" ]
+ShapeLookupDirectories += [ EcosystemPath + "/shape_clodtex_build" ]
+ShapeLookupDirectories += [ EcosystemPath + "/shape_with_coarse_mesh" ]
+ShapeLookupDirectories += [ ContinentPath + "/shape_clodtex_build" ]
+ShapeLookupDirectories += [ ContinentPath + "/shape_with_coarse_mesh" ]
+# ShapeLookupDirectories += [ ContinentName + "/zone_light/water_shapes_lighted" ] huh?
+
+# Map lookup directories used by shape
+MapLookupDirectories = [ ]
+MapLookupDirectories += [ "common/sfx/map_export" ]
+MapLookupDirectories += [ "common/sfx/map_uncompressed" ]
+MapLookupDirectories += [ "common/construction/map_export" ]
+MapLookupDirectories += [ "common/construction/map_uncompressed" ]
+MapLookupDirectories += [ EcosystemPath + "/map_export" ]
+MapLookupDirectories += [ EcosystemPath + "/map_uncompressed" ]
+MapLookupDirectories += [ ContinentPath + "/map_export" ]
+MapLookupDirectories += [ ContinentPath + "/map_uncompressed" ]
+
+
+# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
+
+# Map directories
+MapExportDirectory = CommonPath + "/map_export"
+MapUncompressedExportDirectory = CommonPath + "/map_uncompressed"
+
+# Shape directories
+ShapeTagExportDirectory = CommonPath + "/shape_tag"
+ShapeNotOptimizedExportDirectory = CommonPath + "/shape_not_optimized"
+ShapeWithCoarseMeshExportDirectory = CommonPath + "/shape_with_coarse_mesh"
+ShapeLightmapNotOptimizedExportDirectory = CommonPath + "/shape_lightmap_not_optimized"
+ShapeAnimExportDirectory = CommonPath + "/shape_anim"
+
+
+# *** BUILD DIRECTORIES FOR THE BUILD PIPELINE ***
+
+# Map directories
+MapBuildDirectory = CommonPath + "/map"
+MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
+MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
+MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
+MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
+MapTagBuildDirectory = CommonPath + "/map_tag"
+
+# Shape directories
+ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
+ShapeWithCoarseMeshBuildDirectory = CommonPath + "/shape_with_coarse_mesh_builded"
+ShapeLightmapBuildDirectory = CommonPath + "/shape_lightmap"
+ShapeLightmap16BitsBuildDirectory = CommonPath + "/shape_lightmap_16_bits"
+
+
+# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
+
+# Map directory
+MapInstallDirectory = CommonName + "_maps"
+BitmapInstallDirectory = MapInstallDirectory
+
+# Shape directory
+ShapeInstallDirectory = CommonName + "_shapes"
+
+# Shape lightmaps directory
+LightmapInstallDirectory = ShapeInstallDirectory
diff --git a/code/ryzom/tools/build_gamedata/workspace/continents/tryker/process.py b/code/ryzom/tools/build_gamedata/workspace/continents/tryker/process.py
new file mode 100644
index 000000000..bffdb684b
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/continents/tryker/process.py
@@ -0,0 +1,81 @@
+#!/usr/bin/python
+#
+# \file config.py
+# \brief Process configuration
+# \date 2010-05-24 06:30GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Process configuration.
+#
+# NeL - 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 .
+#
+
+# *** PROCESS CONFIGURATION ***
+
+
+# *** PROCESS CONFIG ***
+ProcessToComplete = [ ]
+ProcessToComplete += [ "map" ]
+ProcessToComplete += [ "shape" ]
+
+
+# *** ECOSYSTEM AND CONTINENT NAMES ***
+
+EcosystemName = "lacustre"
+EcosystemPath = "ecosystems/" + EcosystemName
+ContinentName = "tryker"
+ContinentPath = "continents/" + ContinentName
+CommonName = ContinentName
+CommonPath = ContinentPath
+
+
+# *** SHAPE EXPORT OPTIONS ***
+# Compute lightmaps ?
+ShapeExportOptExportLighting = "true"
+# Cast shadow in lightmap ?
+ShapeExportOptShadow = "true"
+# Lighting limits. 0 : normal, 1 : soft shadows
+ShapeExportOptLightingLimit = 0
+# Lightmap lumel size
+ShapeExportOptLumelSize = "0.25"
+# Oversampling value. Can be 1, 2, 4 or 8
+ShapeExportOptOversampling = 1
+# Does the lightmap must be generated in 8 bits format ?
+ShapeExportOpt8BitsLightmap = "false"
+# Does the lightmaps export must generate logs ?
+ShapeExportOptLightmapLog = "true"
+# Coarse mesh texture mul size
+TextureMulSizeValue = "1.5"
+DoBuildShadowSkin = 0
+ClodConfigFile = ""
+
+# *** COARSE MESH TEXTURE NAME ***
+CoarseMeshTextureNames = [ ]
+
+# *** POSTFIX USED BY THE MULTIPLE TILES SYSTEM ***
+MultipleTilesPostfix = [ ]
+MultipleTilesPostfix += [ "_sp" ]
+MultipleTilesPostfix += [ "_su" ]
+MultipleTilesPostfix += [ "_au" ]
+MultipleTilesPostfix += [ "_wi" ]
+
+# *** MAPS OPTIONS ***
+ReduceBitmapFactor = 0
+# list all panoply files
+MapPanoplyFileList = None
+# name of the .hlsbank to build.
+MapHlsBankFileName = None
diff --git a/code/ryzom/tools/build_gamedata/workspace/continents/zorai/directories.py b/code/ryzom/tools/build_gamedata/workspace/continents/zorai/directories.py
new file mode 100644
index 000000000..e8951ba70
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/continents/zorai/directories.py
@@ -0,0 +1,124 @@
+#!/usr/bin/python
+#
+# \file directories.py
+# \brief Directories configuration
+# \date 2010-05-24 06:34GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Directories configuration.
+#
+# NeL - 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 .
+#
+
+
+# *** ECOSYSTEM AND CONTINENT NAMES ***
+
+EcosystemName = "jungle"
+EcosystemPath = "ecosystems/" + EcosystemName
+ContinentName = "zorai"
+ContinentPath = "continents/" + ContinentName
+CommonName = ContinentName
+CommonPath = ContinentPath
+
+
+# *** SOURCE DIRECTORIES LEVELDESIGN/WORLD ***
+ContinentLeveldesignWorldDirectory = ContinentName
+
+
+# *** SOURCE DIRECTORIES IN THE DATABASE ***
+
+# Shape directories
+ShapeSourceDirectories = [ ]
+ShapeSourceDirectories += [ "stuff/zorai/decors/constructions" ]
+ShapeSourceDirectories += [ "stuff/zorai/sky" ]
+
+# Maps directories
+MapSourceDirectories = [ ]
+MapSourceDirectories += [ "stuff/zorai/decors/_textures/batiments" ]
+MapSourceDirectories += [ "stuff/zorai/sky" ]
+MapUncompressedSourceDirectories = [ ]
+
+
+# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
+
+# Shape lookup directories used by rbank
+ShapeLookupDirectories = [ ]
+ShapeLookupDirectories += [ "common/sfx/ps" ]
+ShapeLookupDirectories += [ "common/sfx/shape_clodtex_build" ]
+ShapeLookupDirectories += [ "common/sfx/shape_with_coarse_mesh" ]
+ShapeLookupDirectories += [ "common/construction/shape_clodtex_build" ]
+ShapeLookupDirectories += [ "common/construction/shape_with_coarse_mesh" ]
+ShapeLookupDirectories += [ EcosystemPath + "/shape_clodtex_build" ]
+ShapeLookupDirectories += [ EcosystemPath + "/shape_with_coarse_mesh" ]
+ShapeLookupDirectories += [ ContinentPath + "/shape_clodtex_build" ]
+ShapeLookupDirectories += [ ContinentPath + "/shape_with_coarse_mesh" ]
+# ShapeLookupDirectories += [ ContinentName + "/zone_light/water_shapes_lighted" ] huh?
+
+# Map lookup directories used by shape
+MapLookupDirectories = [ ]
+MapLookupDirectories += [ "common/sfx/map_export" ]
+MapLookupDirectories += [ "common/sfx/map_uncompressed" ]
+MapLookupDirectories += [ "common/construction/map_export" ]
+MapLookupDirectories += [ "common/construction/map_uncompressed" ]
+MapLookupDirectories += [ EcosystemPath + "/map_export" ]
+MapLookupDirectories += [ EcosystemPath + "/map_uncompressed" ]
+MapLookupDirectories += [ ContinentPath + "/map_export" ]
+MapLookupDirectories += [ ContinentPath + "/map_uncompressed" ]
+
+
+# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
+
+# Map directories
+MapExportDirectory = CommonPath + "/map_export"
+MapUncompressedExportDirectory = CommonPath + "/map_uncompressed"
+
+# Shape directories
+ShapeTagExportDirectory = CommonPath + "/shape_tag"
+ShapeNotOptimizedExportDirectory = CommonPath + "/shape_not_optimized"
+ShapeWithCoarseMeshExportDirectory = CommonPath + "/shape_with_coarse_mesh"
+ShapeLightmapNotOptimizedExportDirectory = CommonPath + "/shape_lightmap_not_optimized"
+ShapeAnimExportDirectory = CommonPath + "/shape_anim"
+
+
+# *** BUILD DIRECTORIES FOR THE BUILD PIPELINE ***
+
+# Map directories
+MapBuildDirectory = CommonPath + "/map"
+MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
+MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
+MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
+MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
+MapTagBuildDirectory = CommonPath + "/map_tag"
+
+# Shape directories
+ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
+ShapeWithCoarseMeshBuildDirectory = CommonPath + "/shape_with_coarse_mesh_builded"
+ShapeLightmapBuildDirectory = CommonPath + "/shape_lightmap"
+ShapeLightmap16BitsBuildDirectory = CommonPath + "/shape_lightmap_16_bits"
+
+
+# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
+
+# Map directory
+MapInstallDirectory = CommonName + "_maps"
+BitmapInstallDirectory = MapInstallDirectory
+
+# Shape directory
+ShapeInstallDirectory = CommonName + "_shapes"
+
+# Shape lightmaps directory
+LightmapInstallDirectory = ShapeInstallDirectory
diff --git a/code/ryzom/tools/build_gamedata/workspace/continents/zorai/process.py b/code/ryzom/tools/build_gamedata/workspace/continents/zorai/process.py
new file mode 100644
index 000000000..c32cffd5a
--- /dev/null
+++ b/code/ryzom/tools/build_gamedata/workspace/continents/zorai/process.py
@@ -0,0 +1,81 @@
+#!/usr/bin/python
+#
+# \file config.py
+# \brief Process configuration
+# \date 2010-05-24 06:30GMT
+# \author Jan Boon (Kaetemi)
+# Python port of game data build pipeline.
+# Process configuration.
+#
+# NeL - 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 .
+#
+
+# *** PROCESS CONFIGURATION ***
+
+
+# *** PROCESS CONFIG ***
+ProcessToComplete = [ ]
+ProcessToComplete += [ "map" ]
+ProcessToComplete += [ "shape" ]
+
+
+# *** ECOSYSTEM AND CONTINENT NAMES ***
+
+EcosystemName = "jungle"
+EcosystemPath = "ecosystems/" + EcosystemName
+ContinentName = "zorai"
+ContinentPath = "continents/" + ContinentName
+CommonName = ContinentName
+CommonPath = ContinentPath
+
+
+# *** SHAPE EXPORT OPTIONS ***
+# Compute lightmaps ?
+ShapeExportOptExportLighting = "true"
+# Cast shadow in lightmap ?
+ShapeExportOptShadow = "true"
+# Lighting limits. 0 : normal, 1 : soft shadows
+ShapeExportOptLightingLimit = 0
+# Lightmap lumel size
+ShapeExportOptLumelSize = "0.25"
+# Oversampling value. Can be 1, 2, 4 or 8
+ShapeExportOptOversampling = 1
+# Does the lightmap must be generated in 8 bits format ?
+ShapeExportOpt8BitsLightmap = "false"
+# Does the lightmaps export must generate logs ?
+ShapeExportOptLightmapLog = "true"
+# Coarse mesh texture mul size
+TextureMulSizeValue = "1.5"
+DoBuildShadowSkin = 0
+ClodConfigFile = ""
+
+# *** COARSE MESH TEXTURE NAME ***
+CoarseMeshTextureNames = [ ]
+
+# *** POSTFIX USED BY THE MULTIPLE TILES SYSTEM ***
+MultipleTilesPostfix = [ ]
+MultipleTilesPostfix += [ "_sp" ]
+MultipleTilesPostfix += [ "_su" ]
+MultipleTilesPostfix += [ "_au" ]
+MultipleTilesPostfix += [ "_wi" ]
+
+# *** MAPS OPTIONS ***
+ReduceBitmapFactor = 0
+# list all panoply files
+MapPanoplyFileList = None
+# name of the .hlsbank to build.
+MapHlsBankFileName = None
diff --git a/code/ryzom/tools/build_gamedata/workspace/ecosystems/desert/directories.py b/code/ryzom/tools/build_gamedata/workspace/ecosystems/desert/directories.py
index 7617e1b67..b378249a2 100644
--- a/code/ryzom/tools/build_gamedata/workspace/ecosystems/desert/directories.py
+++ b/code/ryzom/tools/build_gamedata/workspace/ecosystems/desert/directories.py
@@ -6,7 +6,7 @@
#
# \file directories.py
# \brief Directories configuration
-# \date 2010-09-03-14-50-GMT
+# \date 2010-09-19-14-19-GMT
# \author Jan Boon (Kaetemi)
# \date 2001-2005
# \author Nevrax
@@ -148,6 +148,22 @@ PacsPrimSourceDirectories = [ ]
PacsPrimSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
+# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
+
+# Ig lookup directories used by rbank
+IgLookupDirectories = [ ]
+
+# Shape lookup directories used by rbank
+ShapeLookupDirectories = [ ]
+ShapeLookupDirectories += [ EcosystemPath + "/shape_clodtex_build" ]
+ShapeLookupDirectories += [ EcosystemPath + "/shape_with_coarse_mesh" ]
+
+# Map lookup directories not yet used
+MapLookupDirectories = [ ]
+MapLookupDirectories += [ EcosystemPath + "/map_export" ]
+MapLookupDirectories += [ EcosystemPath + "/map_uncompressed" ]
+
+
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
# Map directories
@@ -197,6 +213,10 @@ PacsPrimExportDirectory = CommonPath + "/pacs_prim"
# Map directories
MapBuildDirectory = CommonPath + "/map"
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
+MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
+MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
+MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
+MapTagBuildDirectory = CommonPath + "/map_tag"
# Shape directories
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
@@ -220,29 +240,29 @@ RbankOutputBuildDirectory = "_invalid"
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
# Map directory
-MapClientDirectory = CommonName + "_maps"
-BitmapClientDirectory = MapClientDirectory
+MapInstallDirectory = CommonName + "_maps"
+BitmapInstallDirectory = MapInstallDirectory
# Shape directory
-ShapeClientDirectory = CommonName + "_shapes"
+ShapeInstallDirectory = CommonName + "_shapes"
# Lightmap directory
-LightmapClientDirectory = CommonName + "_lightmaps"
+LightmapInstallDirectory = CommonName + "_lightmaps"
# Tile directory
-TilesClientDirectory = CommonName + "_tiles"
+TilesInstallDirectory = CommonName + "_tiles"
# Displace directory
-DisplaceClientDirectory = CommonName + "_displaces"
+DisplaceInstallDirectory = CommonName + "_displaces"
# Bank directory
-BankClientDirectory = CommonName + "_bank"
+BankInstallDirectory = CommonName + "_bank"
# Vegetable set directory
-VegetSetClientDirectory = CommonName + "_vegetable_sets"
+VegetSetInstallDirectory = CommonName + "_vegetable_sets"
# Vegetable shape directory
-VegetClientDirectory = CommonName + "_vegetables"
+VegetInstallDirectory = CommonName + "_vegetables"
# PACS primitives directories
-PacsPrimClientDirectory = CommonName + "_pacs_prim"
+PacsPrimInstallDirectory = CommonName + "_pacs_prim"
diff --git a/code/ryzom/tools/build_gamedata/workspace/ecosystems/desert/process.py b/code/ryzom/tools/build_gamedata/workspace/ecosystems/desert/process.py
index dfc4e0c65..99c7d5d5b 100644
--- a/code/ryzom/tools/build_gamedata/workspace/ecosystems/desert/process.py
+++ b/code/ryzom/tools/build_gamedata/workspace/ecosystems/desert/process.py
@@ -6,7 +6,7 @@
#
# \file config.py
# \brief Process configuration
-# \date 2010-09-03-14-50-GMT
+# \date 2010-09-19-14-19-GMT
# \author Jan Boon (Kaetemi)
# Python port of game data build pipeline.
# Process configuration for 'desert' ecosystem.
@@ -118,6 +118,10 @@ LigoExportOnePass = 0
# *** MAPS OPTIONS ***
ReduceBitmapFactor = 0
+# list all panoply files
+MapPanoplyFileList = None
+# name of the .hlsbank to build.
+MapHlsBankFileName = None
# *** SHAPE BUILD OPTIONS *
diff --git a/code/ryzom/tools/build_gamedata/workspace/ecosystems/jungle/directories.py b/code/ryzom/tools/build_gamedata/workspace/ecosystems/jungle/directories.py
index 9b4069598..f5bad0f9a 100644
--- a/code/ryzom/tools/build_gamedata/workspace/ecosystems/jungle/directories.py
+++ b/code/ryzom/tools/build_gamedata/workspace/ecosystems/jungle/directories.py
@@ -6,7 +6,7 @@
#
# \file directories.py
# \brief Directories configuration
-# \date 2010-09-03-14-50-GMT
+# \date 2010-09-19-14-19-GMT
# \author Jan Boon (Kaetemi)
# \date 2001-2005
# \author Nevrax
@@ -152,6 +152,22 @@ PacsPrimSourceDirectories = [ ]
PacsPrimSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
+# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
+
+# Ig lookup directories used by rbank
+IgLookupDirectories = [ ]
+
+# Shape lookup directories used by rbank
+ShapeLookupDirectories = [ ]
+ShapeLookupDirectories += [ EcosystemPath + "/shape_clodtex_build" ]
+ShapeLookupDirectories += [ EcosystemPath + "/shape_with_coarse_mesh" ]
+
+# Map lookup directories not yet used
+MapLookupDirectories = [ ]
+MapLookupDirectories += [ EcosystemPath + "/map_export" ]
+MapLookupDirectories += [ EcosystemPath + "/map_uncompressed" ]
+
+
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
# Map directories
@@ -201,6 +217,10 @@ PacsPrimExportDirectory = CommonPath + "/pacs_prim"
# Map directories
MapBuildDirectory = CommonPath + "/map"
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
+MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
+MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
+MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
+MapTagBuildDirectory = CommonPath + "/map_tag"
# Shape directories
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
@@ -224,29 +244,29 @@ RbankOutputBuildDirectory = "_invalid"
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
# Map directory
-MapClientDirectory = CommonName + "_maps"
-BitmapClientDirectory = MapClientDirectory
+MapInstallDirectory = CommonName + "_maps"
+BitmapInstallDirectory = MapInstallDirectory
# Shape directory
-ShapeClientDirectory = CommonName + "_shapes"
+ShapeInstallDirectory = CommonName + "_shapes"
# Lightmap directory
-LightmapClientDirectory = CommonName + "_lightmaps"
+LightmapInstallDirectory = CommonName + "_lightmaps"
# Tile directory
-TilesClientDirectory = CommonName + "_tiles"
+TilesInstallDirectory = CommonName + "_tiles"
# Displace directory
-DisplaceClientDirectory = CommonName + "_displaces"
+DisplaceInstallDirectory = CommonName + "_displaces"
# Bank directory
-BankClientDirectory = CommonName + "_bank"
+BankInstallDirectory = CommonName + "_bank"
# Vegetable set directory
-VegetSetClientDirectory = CommonName + "_vegetable_sets"
+VegetSetInstallDirectory = CommonName + "_vegetable_sets"
# Vegetable shape directory
-VegetClientDirectory = CommonName + "_vegetables"
+VegetInstallDirectory = CommonName + "_vegetables"
# PACS primitives directories
-PacsPrimClientDirectory = CommonName + "_pacs_prim"
+PacsPrimInstallDirectory = CommonName + "_pacs_prim"
diff --git a/code/ryzom/tools/build_gamedata/workspace/ecosystems/jungle/process.py b/code/ryzom/tools/build_gamedata/workspace/ecosystems/jungle/process.py
index d0a378e9a..5bdc3b982 100644
--- a/code/ryzom/tools/build_gamedata/workspace/ecosystems/jungle/process.py
+++ b/code/ryzom/tools/build_gamedata/workspace/ecosystems/jungle/process.py
@@ -6,7 +6,7 @@
#
# \file config.py
# \brief Process configuration
-# \date 2010-09-03-14-50-GMT
+# \date 2010-09-19-14-19-GMT
# \author Jan Boon (Kaetemi)
# Python port of game data build pipeline.
# Process configuration for 'jungle' ecosystem.
@@ -118,6 +118,10 @@ LigoExportOnePass = 0
# *** MAPS OPTIONS ***
ReduceBitmapFactor = 0
+# list all panoply files
+MapPanoplyFileList = None
+# name of the .hlsbank to build.
+MapHlsBankFileName = None
# *** SHAPE BUILD OPTIONS *
diff --git a/code/ryzom/tools/build_gamedata/workspace/ecosystems/lacustre/directories.py b/code/ryzom/tools/build_gamedata/workspace/ecosystems/lacustre/directories.py
index 9b2f1f87f..d1f388c66 100644
--- a/code/ryzom/tools/build_gamedata/workspace/ecosystems/lacustre/directories.py
+++ b/code/ryzom/tools/build_gamedata/workspace/ecosystems/lacustre/directories.py
@@ -6,7 +6,7 @@
#
# \file directories.py
# \brief Directories configuration
-# \date 2010-09-03-14-50-GMT
+# \date 2010-09-19-14-19-GMT
# \author Jan Boon (Kaetemi)
# \date 2001-2005
# \author Nevrax
@@ -160,6 +160,22 @@ PacsPrimSourceDirectories = [ ]
PacsPrimSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
+# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
+
+# Ig lookup directories used by rbank
+IgLookupDirectories = [ ]
+
+# Shape lookup directories used by rbank
+ShapeLookupDirectories = [ ]
+ShapeLookupDirectories += [ EcosystemPath + "/shape_clodtex_build" ]
+ShapeLookupDirectories += [ EcosystemPath + "/shape_with_coarse_mesh" ]
+
+# Map lookup directories not yet used
+MapLookupDirectories = [ ]
+MapLookupDirectories += [ EcosystemPath + "/map_export" ]
+MapLookupDirectories += [ EcosystemPath + "/map_uncompressed" ]
+
+
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
# Map directories
@@ -209,6 +225,10 @@ PacsPrimExportDirectory = CommonPath + "/pacs_prim"
# Map directories
MapBuildDirectory = CommonPath + "/map"
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
+MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
+MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
+MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
+MapTagBuildDirectory = CommonPath + "/map_tag"
# Shape directories
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
@@ -232,29 +252,29 @@ RbankOutputBuildDirectory = "_invalid"
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
# Map directory
-MapClientDirectory = CommonName + "_maps"
-BitmapClientDirectory = MapClientDirectory
+MapInstallDirectory = CommonName + "_maps"
+BitmapInstallDirectory = MapInstallDirectory
# Shape directory
-ShapeClientDirectory = CommonName + "_shapes"
+ShapeInstallDirectory = CommonName + "_shapes"
# Lightmap directory
-LightmapClientDirectory = CommonName + "_lightmaps"
+LightmapInstallDirectory = CommonName + "_lightmaps"
# Tile directory
-TilesClientDirectory = CommonName + "_tiles"
+TilesInstallDirectory = CommonName + "_tiles"
# Displace directory
-DisplaceClientDirectory = CommonName + "_displaces"
+DisplaceInstallDirectory = CommonName + "_displaces"
# Bank directory
-BankClientDirectory = CommonName + "_bank"
+BankInstallDirectory = CommonName + "_bank"
# Vegetable set directory
-VegetSetClientDirectory = CommonName + "_vegetable_sets"
+VegetSetInstallDirectory = CommonName + "_vegetable_sets"
# Vegetable shape directory
-VegetClientDirectory = CommonName + "_vegetables"
+VegetInstallDirectory = CommonName + "_vegetables"
# PACS primitives directories
-PacsPrimClientDirectory = CommonName + "_pacs_prim"
+PacsPrimInstallDirectory = CommonName + "_pacs_prim"
diff --git a/code/ryzom/tools/build_gamedata/workspace/ecosystems/lacustre/process.py b/code/ryzom/tools/build_gamedata/workspace/ecosystems/lacustre/process.py
index 791c668ef..3d040f956 100644
--- a/code/ryzom/tools/build_gamedata/workspace/ecosystems/lacustre/process.py
+++ b/code/ryzom/tools/build_gamedata/workspace/ecosystems/lacustre/process.py
@@ -6,7 +6,7 @@
#
# \file config.py
# \brief Process configuration
-# \date 2010-09-03-14-50-GMT
+# \date 2010-09-19-14-19-GMT
# \author Jan Boon (Kaetemi)
# Python port of game data build pipeline.
# Process configuration for 'lacustre' ecosystem.
@@ -118,6 +118,10 @@ LigoExportOnePass = 0
# *** MAPS OPTIONS ***
ReduceBitmapFactor = 0
+# list all panoply files
+MapPanoplyFileList = None
+# name of the .hlsbank to build.
+MapHlsBankFileName = None
# *** SHAPE BUILD OPTIONS *
diff --git a/code/ryzom/tools/build_gamedata/workspace/ecosystems/primes_racines/directories.py b/code/ryzom/tools/build_gamedata/workspace/ecosystems/primes_racines/directories.py
index 1e03bde60..efcfc2465 100644
--- a/code/ryzom/tools/build_gamedata/workspace/ecosystems/primes_racines/directories.py
+++ b/code/ryzom/tools/build_gamedata/workspace/ecosystems/primes_racines/directories.py
@@ -6,7 +6,7 @@
#
# \file directories.py
# \brief Directories configuration
-# \date 2010-09-03-14-50-GMT
+# \date 2010-09-19-14-19-GMT
# \author Jan Boon (Kaetemi)
# \date 2001-2005
# \author Nevrax
@@ -145,6 +145,22 @@ PacsPrimSourceDirectories = [ ]
PacsPrimSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
+# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
+
+# Ig lookup directories used by rbank
+IgLookupDirectories = [ ]
+
+# Shape lookup directories used by rbank
+ShapeLookupDirectories = [ ]
+ShapeLookupDirectories += [ EcosystemPath + "/shape_clodtex_build" ]
+ShapeLookupDirectories += [ EcosystemPath + "/shape_with_coarse_mesh" ]
+
+# Map lookup directories not yet used
+MapLookupDirectories = [ ]
+MapLookupDirectories += [ EcosystemPath + "/map_export" ]
+MapLookupDirectories += [ EcosystemPath + "/map_uncompressed" ]
+
+
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
# Map directories
@@ -194,6 +210,10 @@ PacsPrimExportDirectory = CommonPath + "/pacs_prim"
# Map directories
MapBuildDirectory = CommonPath + "/map"
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
+MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
+MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
+MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
+MapTagBuildDirectory = CommonPath + "/map_tag"
# Shape directories
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
@@ -217,29 +237,29 @@ RbankOutputBuildDirectory = "_invalid"
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
# Map directory
-MapClientDirectory = CommonName + "_maps"
-BitmapClientDirectory = MapClientDirectory
+MapInstallDirectory = CommonName + "_maps"
+BitmapInstallDirectory = MapInstallDirectory
# Shape directory
-ShapeClientDirectory = CommonName + "_shapes"
+ShapeInstallDirectory = CommonName + "_shapes"
# Lightmap directory
-LightmapClientDirectory = CommonName + "_lightmaps"
+LightmapInstallDirectory = CommonName + "_lightmaps"
# Tile directory
-TilesClientDirectory = CommonName + "_tiles"
+TilesInstallDirectory = CommonName + "_tiles"
# Displace directory
-DisplaceClientDirectory = CommonName + "_displaces"
+DisplaceInstallDirectory = CommonName + "_displaces"
# Bank directory
-BankClientDirectory = CommonName + "_bank"
+BankInstallDirectory = CommonName + "_bank"
# Vegetable set directory
-VegetSetClientDirectory = CommonName + "_vegetable_sets"
+VegetSetInstallDirectory = CommonName + "_vegetable_sets"
# Vegetable shape directory
-VegetClientDirectory = CommonName + "_vegetables"
+VegetInstallDirectory = CommonName + "_vegetables"
# PACS primitives directories
-PacsPrimClientDirectory = CommonName + "_pacs_prim"
+PacsPrimInstallDirectory = CommonName + "_pacs_prim"
diff --git a/code/ryzom/tools/build_gamedata/workspace/ecosystems/primes_racines/process.py b/code/ryzom/tools/build_gamedata/workspace/ecosystems/primes_racines/process.py
index 2cf5635ef..cc237589a 100644
--- a/code/ryzom/tools/build_gamedata/workspace/ecosystems/primes_racines/process.py
+++ b/code/ryzom/tools/build_gamedata/workspace/ecosystems/primes_racines/process.py
@@ -6,7 +6,7 @@
#
# \file config.py
# \brief Process configuration
-# \date 2010-09-03-14-50-GMT
+# \date 2010-09-19-14-19-GMT
# \author Jan Boon (Kaetemi)
# Python port of game data build pipeline.
# Process configuration for 'primes_racines' ecosystem.
@@ -118,6 +118,10 @@ LigoExportOnePass = 0
# *** MAPS OPTIONS ***
ReduceBitmapFactor = 0
+# list all panoply files
+MapPanoplyFileList = None
+# name of the .hlsbank to build.
+MapHlsBankFileName = None
# *** SHAPE BUILD OPTIONS *
diff --git a/code/ryzom/tools/build_gamedata/workspace/projects.py b/code/ryzom/tools/build_gamedata/workspace/projects.py
index dc55909cf..b1f93eabd 100644
--- a/code/ryzom/tools/build_gamedata/workspace/projects.py
+++ b/code/ryzom/tools/build_gamedata/workspace/projects.py
@@ -25,10 +25,12 @@
#
+ProductName = "ryzom"
+
+
ProjectsToProcess = [ ]
-# Common projects
-ProjectsToProcess += [ "common/fonts" ]
+# Common asset export and build projects
ProjectsToProcess += [ "common/interface" ]
ProjectsToProcess += [ "common/objects" ]
ProjectsToProcess += [ "common/sfx" ]
@@ -36,9 +38,16 @@ ProjectsToProcess += [ "common/fauna" ]
ProjectsToProcess += [ "common/construction" ]
ProjectsToProcess += [ "common/outgame" ]
ProjectsToProcess += [ "common/sky" ]
-#ProjectsToProcess += [ "common/characters" ] # TODO
-#ProjectsToProcess += [ "common/characters_maps_hr" ] # TODO
-#ProjectsToProcess += [ "common/characters_maps_lr" ] # TODO
+ProjectsToProcess += [ "common/characters" ]
+ProjectsToProcess += [ "common/characters_maps_hr" ]
+
+# Common client data and leveldesign projects
+ProjectsToProcess += [ "common/fonts" ]
+ProjectsToProcess += [ "common/gamedev" ]
+ProjectsToProcess += [ "common/data_common" ]
+ProjectsToProcess += [ "common/leveldesign" ]
+ProjectsToProcess += [ "common/exedll" ]
+ProjectsToProcess += [ "common/cfg" ]
# Ecosystem projects
ProjectsToProcess += [ "ecosystems/desert" ]
@@ -47,10 +56,457 @@ ProjectsToProcess += [ "ecosystems/primes_racines" ]
ProjectsToProcess += [ "ecosystems/lacustre" ]
# Continent projects
-ProjectsToProcess += [ "continents/newbieland" ]
-#ProjectsToProcess += [ "continents/indoors" ] # TODO Note: must be after all other continents due to dependencies on fy/ma/zo/tr
+ProjectsToProcess += [ "continents/fyros" ] # Note: dummy for shape and map export
+ProjectsToProcess += [ "continents/matis" ] # Note: dummy for shape and map export
+ProjectsToProcess += [ "continents/zorai" ] # Note: dummy for shape and map export
+ProjectsToProcess += [ "continents/tryker" ] # Note: dummy for shape and map export
+ProjectsToProcess += [ "continents/newbieland" ] # Note: must be after other continents due to dependencies on fy/ma/zo/tr
+ProjectsToProcess += [ "continents/indoors" ] # Note: must be after other continents due to dependencies on fy/ma/zo/tr
-# TODO
+
+InstallShardDataDirectories = [ ]
+
+InstallShardDataCollisionsDirectories = [ ]
+InstallShardDataCollisionsDirectories += [ "newbieland_ai" ]
+InstallShardDataCollisionsDirectories += [ "newbieland_ig" ]
+InstallShardDataCollisionsDirectories += [ "newbieland_pacs" ]
+InstallShardDataCollisionsDirectories += [ "indoors_ai" ]
+InstallShardDataCollisionsDirectories += [ "indoors_ig" ]
+InstallShardDataCollisionsDirectories += [ "indoors_pacs" ]
+
+
+InstallClientData = [ ]
+
+ICMainCfg = { }
+ICMainCfg["Name"] = "main_cfg"
+ICMainCfg["UnpackTo"] = "cfg" # -> = "./cfg/"
+ICMainCfg["IsOptional"] = 0
+ICMainCfg["IsIncremental"] = 0
+ICMainCfg["Packages"] = [ [ "cfg", [ ] ] ]
+InstallClientData += [ ICMainCfg ]
+
+ICMainExedll = { }
+ICMainExedll["Name"] = "main_exedll"
+ICMainExedll["UnpackTo"] = "" # -> "./", to not unpack set to None
+ICMainExedll["IsOptional"] = 0
+ICMainExedll["IsIncremental"] = 0
+ICMainExedll["Packages"] = [ [ "exedll", [ ] ] ]
+InstallClientData += [ ICMainExedll ]
+
+ICMainFonts = { }
+ICMainFonts["Name"] = "main_fonts"
+ICMainFonts["UnpackTo"] = "data/fonts"
+ICMainFonts["IsOptional"] = 0
+ICMainFonts["IsIncremental"] = 0
+ICMainFonts["Packages"] = [ [ "fonts", [ ] ] ]
+InstallClientData += [ ICMainFonts ]
+
+ICMainPacked = { }
+ICMainPacked["Name"] = "main_packed"
+ICMainPacked["UnpackTo"] = "data"
+ICMainPacked["IsOptional"] = 0
+ICMainPacked["IsIncremental"] = 0
+ICMainPacked["Packages"] = [ [ "packedsheets", [ ] ] ]
+InstallClientData += [ ICMainPacked ]
+
+ICUser = { }
+ICUser["Name"] = "user"
+ICUser["UnpackTo"] = "user"
+ICUser["IsOptional"] = 0
+ICUser["IsIncremental"] = 0
+ICUser["Packages"] = [ [ "user", [ ] ] ]
+InstallClientData += [ ICUser ]
+
+ICExamples = { }
+ICExamples["Name"] = "examples"
+ICExamples["UnpackTo"] = "examples"
+ICExamples["IsOptional"] = 0
+ICExamples["IsIncremental"] = 0
+ICExamples["Packages"] = [ [ "examples", [ ] ] ]
+InstallClientData += [ ICExamples ]
+
+ICCommon = { }
+ICCommon["Name"] = "common"
+ICCommon["UnpackTo"] = None
+ICCommon["IsOptional"] = 0
+ICCommon["IsIncremental"] = 1
+ICCommon["Packages"] = [ ]
+ICCommon["Packages"] += [ [ "sound", [ ] ] ]
+ICCommon["Packages"] += [ [ "sky", [ ] ] ]
+ICCommon["Packages"] += [ [ "sfx", [ ] ] ]
+ICCommon["Packages"] += [ [ "objects", [ ] ] ]
+ICCommon["Packages"] += [ [ "construction", [ ] ] ]
+ICCommon["Packages"] += [ [ "outgame", [ ] ] ]
+ICCommon["Packages"] += [ [ "leveldesign", [ ] ] ]
+ICCommon["Packages"] += [ [ "interfaces", [ ] ] ]
+ICCommon["Packages"] += [ [ "gamedev", [ ] ] ]
+ICCommon["Packages"] += [ [ "data_common", [ ] ] ]
+ICCommon["Packages"] += [ [ "fauna_swt", [ ] ] ]
+ICCommon["Packages"] += [ [ "fauna_skeletons", [ ] ] ]
+ICCommon["Packages"] += [ [ "fauna_shapes", [ ] ] ]
+ICCommon["Packages"] += [ [ "fauna_maps", [ ] ] ]
+ICCommon["Packages"] += [ [ "fauna_animations", [ ] ] ]
+InstallClientData += [ ICCommon ]
+
+ICCharacterArmors = [ ]
+ICCharacterArmors += [ "zo_hom_visage" ]
+ICCharacterArmors += [ "zo_hom_underwear" ]
+ICCharacterArmors += [ "zo_hom_civil01" ]
+ICCharacterArmors += [ "zo_hom_cheveux" ]
+ICCharacterArmors += [ "zo_hom_caster01" ]
+ICCharacterArmors += [ "zo_hom_armor01" ]
+ICCharacterArmors += [ "zo_hom_armor00" ]
+ICCharacterArmors += [ "zo_hof_visage" ]
+ICCharacterArmors += [ "zo_hof_underwear" ]
+ICCharacterArmors += [ "zo_hof_civil01" ]
+ICCharacterArmors += [ "zo_hof_cheveux" ]
+ICCharacterArmors += [ "zo_hof_caster01" ]
+ICCharacterArmors += [ "zo_hof_armor01" ]
+ICCharacterArmors += [ "zo_hof_armor00" ]
+ICCharacterArmors += [ "zo_casque01" ]
+ICCharacterArmors += [ "tr_hom_visage" ]
+ICCharacterArmors += [ "tr_hom_underwear" ]
+ICCharacterArmors += [ "tr_hom_refugee" ]
+ICCharacterArmors += [ "tr_hom_civil01" ]
+ICCharacterArmors += [ "tr_hom_cheveux" ]
+ICCharacterArmors += [ "tr_hom_caster01" ]
+ICCharacterArmors += [ "tr_hom_armor01" ]
+ICCharacterArmors += [ "tr_hom_armor00" ]
+ICCharacterArmors += [ "tr_hof_visage" ]
+ICCharacterArmors += [ "tr_hof_underwear" ]
+ICCharacterArmors += [ "tr_hof_refugee" ]
+ICCharacterArmors += [ "tr_hof_civil01" ]
+ICCharacterArmors += [ "tr_hof_cheveux" ]
+ICCharacterArmors += [ "tr_hof_caster01" ]
+ICCharacterArmors += [ "tr_hof_armor01" ]
+ICCharacterArmors += [ "tr_hof_armor00" ]
+ICCharacterArmors += [ "tr_casque01" ]
+ICCharacterArmors += [ "ma_hom_visage" ]
+ICCharacterArmors += [ "ma_hom_underwear" ]
+ICCharacterArmors += [ "ma_hom_civil01" ]
+ICCharacterArmors += [ "ma_hom_cheveux" ]
+ICCharacterArmors += [ "ma_hom_caster01" ]
+ICCharacterArmors += [ "ma_hom_armor01" ]
+ICCharacterArmors += [ "ma_hom_armor00" ]
+ICCharacterArmors += [ "ma_hof_visage" ]
+ICCharacterArmors += [ "ma_hof_underwear" ]
+ICCharacterArmors += [ "ma_hof_civil01" ]
+ICCharacterArmors += [ "ma_hof_cheveux" ]
+ICCharacterArmors += [ "ma_hof_caster01" ]
+ICCharacterArmors += [ "ma_hof_casque01" ]
+ICCharacterArmors += [ "ma_hof_armor04" ]
+ICCharacterArmors += [ "ma_hof_armor01" ]
+ICCharacterArmors += [ "ma_hof_armor00" ]
+ICCharacterArmors += [ "fy_hom_visage" ]
+ICCharacterArmors += [ "fy_hom_underwear" ]
+ICCharacterArmors += [ "fy_hom_ruflaket" ]
+ICCharacterArmors += [ "fy_hom_civil01" ]
+ICCharacterArmors += [ "fy_hom_cheveux" ]
+ICCharacterArmors += [ "fy_hom_caster01" ]
+ICCharacterArmors += [ "fy_hom_barman" ]
+ICCharacterArmors += [ "fy_hom_armor01" ]
+ICCharacterArmors += [ "fy_hom_armor00" ]
+ICCharacterArmors += [ "fy_hof_visage" ]
+ICCharacterArmors += [ "fy_hof_underwear" ]
+ICCharacterArmors += [ "fy_hof_civil01" ]
+ICCharacterArmors += [ "fy_hof_cheveux" ]
+ICCharacterArmors += [ "fy_hof_caster01" ]
+ICCharacterArmors += [ "fy_hof_armor01" ]
+ICCharacterArmors += [ "fy_hof_armor00" ]
+ICCharacterArmors += [ "ge_hof_armor02" ]
+ICCharacterArmors += [ "ge_hof_armor03" ]
+ICCharacterArmors += [ "ge_hof_armor04" ]
+ICCharacterArmors += [ "ge_hof_caster00" ]
+ICCharacterArmors += [ "ge_hom_armor02" ]
+ICCharacterArmors += [ "ge_hom_armor03" ]
+ICCharacterArmors += [ "ge_hom_armor04" ]
+ICCharacterArmors += [ "ge_hom_caster00" ]
+ICCharacter = { }
+ICCharacter["Name"] = "character"
+ICCharacter["UnpackTo"] = None
+ICCharacter["IsOptional"] = 0
+ICCharacter["IsIncremental"] = 1
+ICCharacter["Packages"] = [ ]
+ICCharacter["Packages"] += [ [ "characters_swt", [ ] ] ]
+ICCharacter["Packages"] += [ [ "characters_skeletons", [ ] ] ]
+ICCharacter["Packages"] += [ [ "characters_shapes", [ ] ] ]
+ICCharacter["Packages"] += [ [ "characters_animations", [ ] ] ]
+ICCharacterMapsConditions = [ ]
+for armor in ICCharacterArmors:
+ ICCharacterMapsConditions += [ "-ifnot" ]
+ ICCharacterMapsConditions += [ armor + "*" ]
+ICCharacter["Packages"] += [ [ "characters_maps_hr", [ "characters_maps_hr.bnp" ] + ICCharacterMapsConditions, "characters.hlsbank" ] ]
+for armor in ICCharacterArmors:
+ ICCharacter["Packages"] += [ [ "characters_maps_hr", [ "characters_maps_" + armor + "_hr.bnp", "-if", armor + "*" ], "characters.hlsbank" ] ]
+InstallClientData += [ ICCharacter ]
+
+ICEsPrimesRacines = { }
+ICEsPrimesRacines["Name"] = "es_primes_racines"
+ICEsPrimesRacines["UnpackTo"] = None
+ICEsPrimesRacines["IsOptional"] = 0
+ICEsPrimesRacines["IsIncremental"] = 1
+ICEsPrimesRacines["Packages"] = [ ]
+ICEsPrimesRacines["Packages"] += [ [ "primes_racines_vegetable_sets", [ ] ] ]
+ICEsPrimesRacines["Packages"] += [ [ "primes_racines_vegetables", [ ] ] ]
+ICEsPrimesRacines["Packages"] += [ [ "primes_racines_tiles", [ ] ] ]
+ICEsPrimesRacines["Packages"] += [ [ "primes_racines_shapes", [ ] ] ]
+ICEsPrimesRacines["Packages"] += [ [ "primes_racines_pacs_prim", [ ] ] ]
+ICEsPrimesRacines["Packages"] += [ [ "primes_racines_maps", [ ] ] ]
+ICEsPrimesRacines["Packages"] += [ [ "primes_racines_lightmaps", [ ] ] ]
+ICEsPrimesRacines["Packages"] += [ [ "primes_racines_displaces", [ ] ] ]
+ICEsPrimesRacines["Packages"] += [ [ "primes_racines_bank", [ ] ] ]
+InstallClientData += [ ICEsPrimesRacines ]
+
+ICEsDesert = { }
+ICEsDesert["Name"] = "es_desert"
+ICEsDesert["UnpackTo"] = None
+ICEsDesert["IsOptional"] = 1
+ICEsDesert["IsIncremental"] = 1
+ICEsDesert["Packages"] = [ ]
+ICEsDesert["Packages"] += [ [ "desert_vegetable_sets", [ ] ] ]
+ICEsDesert["Packages"] += [ [ "desert_vegetables", [ ] ] ]
+ICEsDesert["Packages"] += [ [ "desert_tiles", [ ] ] ]
+ICEsDesert["Packages"] += [ [ "desert_shapes", [ ] ] ]
+ICEsDesert["Packages"] += [ [ "desert_pacs_prim", [ ] ] ]
+ICEsDesert["Packages"] += [ [ "desert_maps", [ ] ] ]
+ICEsDesert["Packages"] += [ [ "desert_lightmaps", [ ] ] ]
+ICEsDesert["Packages"] += [ [ "desert_displaces", [ ] ] ]
+ICEsDesert["Packages"] += [ [ "desert_bank", [ ] ] ]
+InstallClientData += [ ICEsDesert ]
+
+ICEsLacustre = { }
+ICEsLacustre["Name"] = "es_lacustre"
+ICEsLacustre["UnpackTo"] = None
+ICEsLacustre["IsOptional"] = 1
+ICEsLacustre["IsIncremental"] = 1
+ICEsLacustre["Packages"] = [ ]
+ICEsLacustre["Packages"] += [ [ "lacustre_vegetable_sets", [ ] ] ]
+ICEsLacustre["Packages"] += [ [ "lacustre_vegetables", [ ] ] ]
+ICEsLacustre["Packages"] += [ [ "lacustre_tiles", [ ] ] ]
+ICEsLacustre["Packages"] += [ [ "lacustre_shapes", [ ] ] ]
+ICEsLacustre["Packages"] += [ [ "lacustre_pacs_prim", [ ] ] ]
+ICEsLacustre["Packages"] += [ [ "lacustre_maps", [ ] ] ]
+ICEsLacustre["Packages"] += [ [ "lacustre_lightmaps", [ ] ] ]
+ICEsLacustre["Packages"] += [ [ "lacustre_displaces", [ ] ] ]
+ICEsLacustre["Packages"] += [ [ "lacustre_bank", [ ] ] ]
+InstallClientData += [ ICEsLacustre ]
+
+ICEsJungle = { }
+ICEsJungle["Name"] = "es_jungle"
+ICEsJungle["UnpackTo"] = None
+ICEsJungle["IsOptional"] = 1
+ICEsJungle["IsIncremental"] = 1
+ICEsJungle["Packages"] = [ ]
+ICEsJungle["Packages"] += [ [ "jungle_vegetable_sets", [ ] ] ]
+ICEsJungle["Packages"] += [ [ "jungle_vegetables", [ ] ] ]
+ICEsJungle["Packages"] += [ [ "jungle_tiles", [ ] ] ]
+ICEsJungle["Packages"] += [ [ "jungle_shapes", [ ] ] ]
+ICEsJungle["Packages"] += [ [ "jungle_pacs_prim", [ ] ] ]
+ICEsJungle["Packages"] += [ [ "jungle_maps", [ ] ] ]
+ICEsJungle["Packages"] += [ [ "jungle_lightmaps", [ ] ] ]
+ICEsJungle["Packages"] += [ [ "jungle_displaces", [ ] ] ]
+ICEsJungle["Packages"] += [ [ "jungle_bank", [ ] ] ]
+InstallClientData += [ ICEsJungle ]
+
+ICFyros = { }
+ICFyros["Name"] = "fyros"
+ICFyros["UnpackTo"] = None
+ICFyros["IsOptional"] = 1
+ICFyros["IsIncremental"] = 1
+ICFyros["Packages"] = [ ]
+ICFyros["Packages"] += [ [ "fyros_zones", [ ] ] ]
+ICFyros["Packages"] += [ [ "fyros_shapes", [ ] ] ]
+ICFyros["Packages"] += [ [ "fyros_pacs", [ ] ] ]
+ICFyros["Packages"] += [ [ "fyros_maps", [ ] ] ]
+ICFyros["Packages"] += [ [ "fyros_lightmaps", [ ] ] ]
+ICFyros["Packages"] += [ [ "fyros_ig", [ ] ] ]
+ICFyros["Packages"] += [ [ "fyros_newbie_zones", [ ] ] ]
+ICFyros["Packages"] += [ [ "fyros_newbie_pacs", [ ] ] ]
+ICFyros["Packages"] += [ [ "fyros_newbie_ig", [ ] ] ]
+ICFyros["Packages"] += [ [ "fyros_island_zones", [ ] ] ]
+ICFyros["Packages"] += [ [ "fyros_island_pacs", [ ] ] ]
+ICFyros["Packages"] += [ [ "fyros_island_ig", [ ] ] ]
+InstallClientData += [ ICFyros ]
+
+ICMatis = { }
+ICMatis["Name"] = "matis"
+ICMatis["UnpackTo"] = None
+ICMatis["IsOptional"] = 1
+ICMatis["IsIncremental"] = 1
+ICMatis["Packages"] = [ ]
+ICMatis["Packages"] += [ [ "matis_zones", [ ] ] ]
+ICMatis["Packages"] += [ [ "matis_shapes", [ ] ] ]
+ICMatis["Packages"] += [ [ "matis_pacs", [ ] ] ]
+ICMatis["Packages"] += [ [ "matis_maps", [ ] ] ]
+ICMatis["Packages"] += [ [ "matis_lightmaps", [ ] ] ]
+ICMatis["Packages"] += [ [ "matis_ig", [ ] ] ]
+ICMatis["Packages"] += [ [ "matis_island_zones", [ ] ] ]
+ICMatis["Packages"] += [ [ "matis_island_pacs", [ ] ] ]
+ICMatis["Packages"] += [ [ "matis_island_ig", [ ] ] ]
+InstallClientData += [ ICMatis ]
+
+ICZorai = { }
+ICZorai["Name"] = "zorai"
+ICZorai["UnpackTo"] = None
+ICZorai["IsOptional"] = 1
+ICZorai["IsIncremental"] = 1
+ICZorai["Packages"] = [ ]
+ICZorai["Packages"] += [ [ "zorai_zones", [ ] ] ]
+ICZorai["Packages"] += [ [ "zorai_shapes", [ ] ] ]
+ICZorai["Packages"] += [ [ "zorai_pacs", [ ] ] ]
+ICZorai["Packages"] += [ [ "zorai_maps", [ ] ] ]
+ICZorai["Packages"] += [ [ "zorai_lightmaps", [ ] ] ]
+ICZorai["Packages"] += [ [ "zorai_ig", [ ] ] ]
+ICZorai["Packages"] += [ [ "zorai_island_zones", [ ] ] ]
+ICZorai["Packages"] += [ [ "zorai_island_pacs", [ ] ] ]
+ICZorai["Packages"] += [ [ "zorai_island_ig", [ ] ] ]
+InstallClientData += [ ICZorai ]
+
+ICTryker = { }
+ICTryker["Name"] = "tryker"
+ICTryker["UnpackTo"] = None
+ICTryker["IsOptional"] = 1
+ICTryker["IsIncremental"] = 1
+ICTryker["Packages"] = [ ]
+ICTryker["Packages"] += [ [ "tryker_zones", [ ] ] ]
+ICTryker["Packages"] += [ [ "tryker_shapes", [ ] ] ]
+ICTryker["Packages"] += [ [ "tryker_pacs", [ ] ] ]
+ICTryker["Packages"] += [ [ "tryker_maps", [ ] ] ]
+ICTryker["Packages"] += [ [ "tryker_lightmaps", [ ] ] ]
+ICTryker["Packages"] += [ [ "tryker_ig", [ ] ] ]
+ICTryker["Packages"] += [ [ "tryker_newbie_zones", [ ] ] ]
+ICTryker["Packages"] += [ [ "tryker_newbie_shapes", [ ] ] ]
+ICTryker["Packages"] += [ [ "tryker_newbie_pacs", [ ] ] ]
+ICTryker["Packages"] += [ [ "tryker_newbie_ig", [ ] ] ]
+ICTryker["Packages"] += [ [ "tryker_island_zones", [ ] ] ]
+ICTryker["Packages"] += [ [ "tryker_island_shapes", [ ] ] ]
+ICTryker["Packages"] += [ [ "tryker_island_pacs", [ ] ] ]
+ICTryker["Packages"] += [ [ "tryker_island_ig", [ ] ] ]
+InstallClientData += [ ICTryker ]
+
+ICSources = { }
+ICSources["Name"] = "sources"
+ICSources["UnpackTo"] = None
+ICSources["IsOptional"] = 1
+ICSources["IsIncremental"] = 1
+ICSources["Packages"] = [ ]
+ICSources["Packages"] += [ [ "sources_zones", [ ] ] ]
+ICSources["Packages"] += [ [ "sources_shapes", [ ] ] ]
+ICSources["Packages"] += [ [ "sources_pacs", [ ] ] ]
+ICSources["Packages"] += [ [ "sources_maps", [ ] ] ]
+ICSources["Packages"] += [ [ "sources_lightmaps", [ ] ] ]
+ICSources["Packages"] += [ [ "sources_ig", [ ] ] ]
+InstallClientData += [ ICSources ]
+
+ICRouteGouffre = { }
+ICRouteGouffre["Name"] = "route_gouffre"
+ICRouteGouffre["UnpackTo"] = None
+ICRouteGouffre["IsOptional"] = 1
+ICRouteGouffre["IsIncremental"] = 1
+ICRouteGouffre["Packages"] = [ ]
+ICRouteGouffre["Packages"] += [ [ "route_gouffre_zones", [ ] ] ]
+ICRouteGouffre["Packages"] += [ [ "route_gouffre_shapes", [ ] ] ]
+ICRouteGouffre["Packages"] += [ [ "route_gouffre_pacs", [ ] ] ]
+ICRouteGouffre["Packages"] += [ [ "route_gouffre_maps", [ ] ] ]
+ICRouteGouffre["Packages"] += [ [ "route_gouffre_lightmaps", [ ] ] ]
+ICRouteGouffre["Packages"] += [ [ "route_gouffre_ig", [ ] ] ]
+InstallClientData += [ ICRouteGouffre ]
+
+ICBagne = { }
+ICBagne["Name"] = "bagne"
+ICBagne["UnpackTo"] = None
+ICBagne["IsOptional"] = 1
+ICBagne["IsIncremental"] = 1
+ICBagne["Packages"] = [ ]
+ICBagne["Packages"] += [ [ "bagne_zones", [ ] ] ]
+ICBagne["Packages"] += [ [ "bagne_shapes", [ ] ] ]
+ICBagne["Packages"] += [ [ "bagne_pacs", [ ] ] ]
+ICBagne["Packages"] += [ [ "bagne_maps", [ ] ] ]
+ICBagne["Packages"] += [ [ "bagne_lightmaps", [ ] ] ]
+ICBagne["Packages"] += [ [ "bagne_ig", [ ] ] ]
+InstallClientData += [ ICBagne ]
+
+ICTerre = { }
+ICTerre["Name"] = "terre"
+ICTerre["UnpackTo"] = None
+ICTerre["IsOptional"] = 1
+ICTerre["IsIncremental"] = 1
+ICTerre["Packages"] = [ ]
+ICTerre["Packages"] += [ [ "terre_zones", [ ] ] ]
+ICTerre["Packages"] += [ [ "terre_shapes", [ ] ] ]
+ICTerre["Packages"] += [ [ "terre_pacs", [ ] ] ]
+ICTerre["Packages"] += [ [ "terre_maps", [ ] ] ]
+ICTerre["Packages"] += [ [ "terre_lightmaps", [ ] ] ]
+ICTerre["Packages"] += [ [ "terre_ig", [ ] ] ]
+InstallClientData += [ ICTerre ]
+
+ICNexus = { }
+ICNexus["Name"] = "nexus"
+ICNexus["UnpackTo"] = None
+ICNexus["IsOptional"] = 1
+ICNexus["IsIncremental"] = 1
+ICNexus["Packages"] = [ ]
+ICNexus["Packages"] += [ [ "nexus_zones", [ ] ] ]
+ICNexus["Packages"] += [ [ "nexus_shapes", [ ] ] ]
+ICNexus["Packages"] += [ [ "nexus_pacs", [ ] ] ]
+ICNexus["Packages"] += [ [ "nexus_maps", [ ] ] ]
+ICNexus["Packages"] += [ [ "nexus_lightmaps", [ ] ] ]
+ICNexus["Packages"] += [ [ "nexus_ig", [ ] ] ]
+InstallClientData += [ ICNexus ]
+
+ICNewbieland = { }
+ICNewbieland["Name"] = "newbieland"
+ICNewbieland["UnpackTo"] = None
+ICNewbieland["IsOptional"] = 1
+ICNewbieland["IsIncremental"] = 1
+ICNewbieland["Packages"] = [ ]
+ICNewbieland["Packages"] += [ [ "newbieland_zones", [ ] ] ]
+ICNewbieland["Packages"] += [ [ "newbieland_shapes", [ ] ] ]
+ICNewbieland["Packages"] += [ [ "newbieland_pacs", [ ] ] ]
+ICNewbieland["Packages"] += [ [ "newbieland_maps", [ ] ] ]
+ICNewbieland["Packages"] += [ [ "newbieland_ig", [ ] ] ]
+InstallClientData += [ ICNewbieland ]
+
+ICIndoors = { }
+ICIndoors["Name"] = "indoors"
+ICIndoors["UnpackTo"] = None
+ICIndoors["IsOptional"] = 1
+ICIndoors["IsIncremental"] = 1
+ICIndoors["Packages"] = [ ]
+ICIndoors["Packages"] += [ [ "indoors_shapes", [ ] ] ]
+ICIndoors["Packages"] += [ [ "indoors_pacs", [ ] ] ]
+ICIndoors["Packages"] += [ [ "indoors_lightmaps", [ ] ] ]
+ICIndoors["Packages"] += [ [ "indoors_ig", [ ] ] ]
+InstallClientData += [ ICIndoors ]
+
+ICR2 = { }
+ICR2["Name"] = "r2"
+ICR2["UnpackTo"] = None
+ICR2["IsOptional"] = 1
+ICR2["IsIncremental"] = 1
+ICR2["Packages"] = [ ]
+ICR2["Packages"] += [ [ "r2_misc", [ ] ] ]
+ICR2["Packages"] += [ [ "r2_jungle", [ ] ] ]
+ICR2["Packages"] += [ [ "r2_lakes", [ ] ] ]
+ICR2["Packages"] += [ [ "r2_desert", [ ] ] ]
+ICR2["Packages"] += [ [ "r2_roots", [ ] ] ]
+ICR2["Packages"] += [ [ "r2_forest", [ ] ] ]
+ICR2["Packages"] += [ [ "r2_lakes2", [ ] ] ]
+ICR2["Packages"] += [ [ "r2_jungle2", [ ] ] ]
+ICR2["Packages"] += [ [ "r2_forest2", [ ] ] ]
+ICR2["Packages"] += [ [ "r2_desert2", [ ] ] ]
+ICR2["Packages"] += [ [ "r2_roots2", [ ] ] ]
+ICR2["Packages"] += [ [ "r2_forest_maps", [ ] ] ]
+ICR2["Packages"] += [ [ "r2_desert_maps", [ ] ] ]
+ICR2["Packages"] += [ [ "r2_roots_maps", [ ] ] ]
+ICR2["Packages"] += [ [ "r2_lakes_maps", [ ] ] ]
+ICR2["Packages"] += [ [ "r2_jungle_maps", [ ] ] ]
+ICR2["Packages"] += [ [ "r2_roots_pz", [ ] ] ]
+ICR2["Packages"] += [ [ "r2_lakes_pz", [ ] ] ]
+ICR2["Packages"] += [ [ "r2_jungle_pz", [ ] ] ]
+ICR2["Packages"] += [ [ "r2_forest_pz", [ ] ] ]
+ICR2["Packages"] += [ [ "r2_desert_pz", [ ] ] ]
+InstallClientData += [ ICR2 ]
# end of file