Merge with develop

--HG--
branch : compatibility-develop
This commit is contained in:
kervala 2016-02-21 13:22:22 +01:00
commit 5284bd37f1
5 changed files with 113 additions and 111 deletions

View file

@ -257,11 +257,6 @@ IF(WITH_QT5)
FIND_PACKAGE(Qt5LinguistTools)
FIND_PACKAGE(Qt5Network)
IF(WIN32)
# Please add option to switch off
# FIND_PACKAGE(Qt5WinExtras)
ENDIF()
IF(QT_STATIC)
ADD_DEFINITIONS(-DQT_STATICPLUGIN)

View file

@ -152,6 +152,7 @@ FILE(GLOB NLMISC_BITMAP
FILE(GLOB NLMISC_CRYPT
md5.cpp ../../include/nel/misc/md5.h
sha1.cpp ../../include/nel/misc/sha1.h
../../include/nel/misc/wang_hash.h
)
SOURCE_GROUP("" FILES ${SRC} ${HEADERS})

View file

@ -3,7 +3,7 @@ ADD_SUBDIRECTORY(misc)
IF(WITH_NEL_TOOLS)
ADD_SUBDIRECTORY(memory)
ENDIF(WITH_NEL_TOOLS)
ENDIF()
# Max plugins are under the 3d directory as well.
# Allow to compile only max plugins without other tools.
@ -15,21 +15,21 @@ ENDIF()
IF(WITH_NEL_TOOLS)
IF(WITH_PACS)
ADD_SUBDIRECTORY(pacs)
ENDIF(WITH_PACS)
ENDIF()
IF(WITH_LOGIC)
ADD_SUBDIRECTORY(logic)
ENDIF(WITH_LOGIC)
ENDIF()
IF(WITH_GEORGES)
ADD_SUBDIRECTORY(georges)
ENDIF(WITH_GEORGES)
ENDIF()
IF(WITH_SOUND)
ADD_SUBDIRECTORY(sound)
ENDIF(WITH_SOUND)
ENDIF()
ENDIF()
IF(WITH_NEL_TESTS)
ADD_SUBDIRECTORY(nel_unit_test)
ENDIF(WITH_NEL_TESTS)
ENDIF(WITH_NEL_TOOLS)
IF(WITH_NEL_TESTS)
ADD_SUBDIRECTORY(nel_unit_test)
ENDIF()

View file

@ -739,34 +739,28 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool
const CBNPCategorySet &rDescCats = descFile.getCategories();
OptionalCat.clear();
string SrcPath = ClientPatchPath;
string DstPath = ClientRootPath;
#ifdef NL_OS_WINDOWS
// only fix backslashes for .bat
string batchSrcPath = CPath::standardizeDosPath(SrcPath);
string batchDstPath = CPath::standardizeDosPath(DstPath);
#else
string batchSrcPath = SrcPath;
string batchDstPath = DstPath;
#endif
for (uint32 i = 0; i < rDescCats.categoryCount(); ++i)
{
// For all optional categories check if there is a 'file to patch' in it
const CBNPCategory &rCat = rDescCats.getCategory(i);
nlwarning("Category = %s", rCat.getName().c_str());
nlinfo("Category = %s", rCat.getName().c_str());
if (!rCat.getUnpackTo().empty())
for (uint32 j = 0; j < rCat.fileCount(); ++j)
{
string rFilename = SrcPath + rCat.getFile(j);
nlwarning("\tFileName = %s", rFilename.c_str());
string rFilename = ClientPatchPath + rCat.getFile(j);
nlinfo("\tFileName = %s", rFilename.c_str());
// Extract to patch
vector<string> vFilenames;
bool result = false;
try
{
result = bnpUnpack(rFilename, SrcPath, vFilenames);
result = bnpUnpack(rFilename, ClientPatchPath, vFilenames);
}
catch(...)
{
@ -798,7 +792,7 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool
CFile::deleteFile(fullDstPath + FileName);
// try to move it, if fails move it later in a script
if (CFile::moveFile(fullDstPath + FileName, SrcPath + FileName))
if (CFile::moveFile(fullDstPath + FileName, ClientPatchPath + FileName))
succeeded = true;
}
@ -807,23 +801,23 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool
{
string batchRelativeDstPath;
if (fullDstPath.compare(0, DstPath.length(), DstPath) == 0)
// should be always true
if (fullDstPath.compare(0, ClientRootPath.length(), ClientRootPath) == 0)
{
batchRelativeDstPath = fullDstPath.substr(DstPath.length()) + FileName;
batchRelativeDstPath = fullDstPath.substr(ClientRootPath.length()) + FileName;
}
else
{
batchRelativeDstPath = fullDstPath + FileName;
}
#ifdef NL_OS_WINDOWS
// only fix backslashes for .bat
batchRelativeDstPath = CPath::standardizeDosPath(batchRelativeDstPath);
#endif
// write windows .bat format else write sh format
#ifdef NL_OS_WINDOWS
string realDstPath = toString("\"%%DSTPATH%%\\%s\"", batchRelativeDstPath.c_str());
string realSrcPath = toString("\"%%SRCPATH%%\\%s\"", FileName.c_str());
// use DSTPATH and SRCPATH variables and append filenames
string realDstPath = toString("\"%%ROOTPATH%%\\%s\"", batchRelativeDstPath.c_str());
string realSrcPath = toString("\"%%UNPACKPATH%%\\%s\"", FileName.c_str());
content += toString(":loop%u\n", nblab);
content += toString("attrib -r -a -s -h %s\n", realDstPath.c_str());
@ -831,8 +825,11 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool
content += toString("if exist %s goto loop%u\n", realDstPath.c_str(), nblab);
content += toString("move %s %s\n", realSrcPath.c_str(), realDstPath.c_str());
#else
// use DSTPATH and SRCPATH variables and append filenames
string realDstPath = toString("\"$ROOTPATH\\%s\"", batchRelativeDstPath.c_str());
string realSrcPath = toString("\"$UNPACKPATH\\%s\"", FileName.c_str());
content += toString("rm -rf %s\n", realDstPath.c_str());
// TODO: add test of returned $?
content += toString("mv %s %s\n", realSrcPath.c_str(), realDstPath.c_str());
#endif
@ -845,7 +842,7 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool
}
}
std::string patchDirectory = CPath::standardizeDosPath(ClientRootPath + "patch");
std::string patchDirectory = CPath::standardizePath(ClientRootPath + "patch");
// Finalize batch file
if (NLMISC::CFile::isExists(patchDirectory) && NLMISC::CFile::isDirectory(patchDirectory))
@ -869,9 +866,9 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool
if (!succeeded)
{
#ifdef NL_OS_WINDOWS
patchContent += toString("del \"%s\"\n", CPath::standardizeDosPath(vFileList[i]).c_str());
patchContent += toString("del \"%%ROOTPATH%%\\patch\\%s\"\n", vFileList[i].c_str());
#else
patchContent += toString("rm -f \"%s\"\n", CPath::standardizePath(vFileList[i]).c_str());
patchContent += toString("rm -f \"$ROOTPATH/patch/%s\"\n", vFileList[i].c_str());
#endif
}
}
@ -879,14 +876,14 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool
if (!patchContent.empty())
{
#ifdef NL_OS_WINDOWS
content += toString(":looppatch\n");
content += ":looppatch\n";
content += patchContent;
content += toString("rd /Q /S \"%s\"\n", patchDirectory.c_str());
content += toString("if exist \"%s\" goto looppatch\n", patchDirectory.c_str());
content += "rd /Q /S \"%%ROOTPATH%%\\patch\"\n";
content += "if exist \"%%ROOTPATH%%\\patch\" goto looppatch\n";
#else
content += toString("rm -rf \"%s\"\n", patchDirectory.c_str());
content += "rm -rf \"$ROOTPATH/patch\"\n");
#endif
}
else
@ -899,8 +896,10 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool
{
deleteBatchFile();
// batch full path
std::string batchFilename = ClientRootPath + UpdateBatchFilename;
// write windows .bat format else write sh format
FILE *fp = nlfopen (batchFilename, "wt");
if (fp == NULL)
@ -914,30 +913,29 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool
//use bat if windows if not use sh
#ifdef NL_OS_WINDOWS
contentPrefix += "@echo off\n";
contentPrefix += "set RYZOM_CLIENT=%1\n";
contentPrefix += "set SRCPATH=%2\n";
contentPrefix += "set DSTPATH=%3\n";
contentPrefix += "set RYZOM_CLIENT=\"%1\"\n";
contentPrefix += "set UNPACKPATH=\"%2\"\n";
contentPrefix += "set ROOTPATH=\"%3\"\n";
contentPrefix += "set LOGIN=%4\n";
contentPrefix += "set PASSWORD=%5\n";
contentPrefix += "set SHARDID=%6\n";
contentPrefix += toString("set UPGRADE_FILE=%%DSTPATH%%\\%s\n", UpgradeBatchFilename.c_str());
contentPrefix += toString("set UPGRADE_FILE=\"%%ROOTPATH%%\\%s\"\n", UpgradeBatchFilename.c_str());
#else
contentPrefix += "#!/bin/sh\n";
contentPrefix += "RYZOM_CLIENT=$1\n";
contentPrefix += "SRCPATH=$2\n";
contentPrefix += "DSTPATH=$3\n";
contentPrefix += "RYZOM_CLIENT=\"$1\"\n";
contentPrefix += "UNPACKPATH=\"$2\"\n";
contentPrefix += "ROOTPATH=\"$3\"\n";
contentPrefix += "LOGIN=$4\n";
contentPrefix += "PASSWORD=$5\n";
contentPrefix += "SHARDID=$6\n";
contentPrefix += toString("UPGRADE_FILE=$DSTPATH\\%s\n", UpgradeBatchFilename.c_str());
contentPrefix += toString("UPGRADE_FILE=\"$ROOTPATH\\%s\"\n", UpgradeBatchFilename.c_str());
#endif
contentPrefix += "\n";
// append content of script
fputs(contentPrefix.c_str(), fp);
fputs(content.c_str(), fp);
string contentSuffix;
// if we need to restart Ryzom, we need to launch it in batch
std::string additionalParams;
if (Args.haveLongArg("profile"))
@ -945,35 +943,42 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool
additionalParams = "--profile " + Args.getLongArg("profile").front();
}
#ifdef NL_OS_WINDOWS
// launch upgrade script if present (it'll execute additional steps like moving or deleting files)
contentSuffix += "if exist \"%UPGRADE_FILE%\" call \"%UPGRADE_FILE%\"\n";
if (wantRyzomRestart)
{
string contentSuffix;
#ifdef NL_OS_WINDOWS
// launch upgrade script if present (it'll execute additional steps like moving or deleting files)
contentSuffix += "if exist \"%UPGRADE_FILE%\" call \"%UPGRADE_FILE%\"\n";
// client shouldn't be in memory anymore else it couldn't be overwritten
contentSuffix += toString("start \"\" /D \"%%DSTPATH%%\" \"%%RYZOM_CLIENT%%\" %s %%LOGIN%% %%PASSWORD%% %%SHARDID%%\n", additionalParams.c_str());
contentSuffix += toString("start \"\" /D \"%%ROOTPATH%%\" \"%%RYZOM_CLIENT%%\" %s %%LOGIN%% %%PASSWORD%% %%SHARDID%%\n", additionalParams.c_str());
}
#else
if (wantRyzomRestart)
{
// wait until client not in memory anymore
contentSuffix += toString("until ! pgrep %s > /dev/null; do sleep 1; done\n", CFile::getFilename(RyzomFilename).c_str());
}
// launch upgrade script if present (it'll execute additional steps like moving or deleting files)
contentSuffix += "if [ -e \"$UPGRADE_FILE\" ]; then chmod +x \"$UPGRADE_FILE\" && \"$UPGRADE_FILE\"; fi\n";
// launch upgrade script if present (it'll execute additional steps like moving or deleting files)
contentSuffix += "if [ -e \"$UPGRADE_FILE\" ]; then chmod +x \"$UPGRADE_FILE\" && \"$UPGRADE_FILE\"; fi\n";
// be sure file is executable
contentSuffix += "chmod +x \"$RYZOM_CLIENT\"\n");
// be sure file is executable
contentSuffix += "chmod +x \"$RYZOM_CLIENT\"\n";
if (wantRyzomRestart)
{
// change to previous client directory
contentSuffix += "cd \"$DSTPATH\"\n");
contentSuffix += "cd \"$ROOTPATH\"\n";
// launch new client
contentSuffix += toString("\"$RYZOM_CLIENT\" %s $LOGIN $PASSWORD $SHARDID\n", additionalParams.c_str());
}
#endif
fputs(contentSuffix.c_str(), fp);
}
// append content of script
fputs(contentPrefix.c_str(), fp);
fputs(content.c_str(), fp);
fputs(contentSuffix.c_str(), fp);
bool writeError = ferror(fp) != 0;
bool diskFull = ferror(fp) && errno == 28 /* ENOSPC */;
@ -3157,7 +3162,8 @@ bool CPatchManager::extract(const std::string& patchPath,
fprintf(fp, "@echo off\n");
fprintf(fp, "ping 127.0.0.1 -n 7 -w 1000 > nul\n"); // wait
#else
// TODO: for Linux and OS X
fprintf(fp, "#!/bin/sh\n");
fprintf(fp, "sleep 7\n"); // wait
#endif
// Unpack files with category ExtractPath non empty

View file

@ -98,7 +98,7 @@
</PARAMETER>
<PARAMETER NAME="properties" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="zone" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/fauna_zone_properties"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/fauna_zone_properties"/>
<COMBO_FILES CONTEXT_NAME="default" PRIM_PATH="//"/>
<COMBO_FILES CONTEXT_NAME="default" PRIM_PATH="//root"/>
<COMBO_FILES CONTEXT_NAME="default" PRIM_PATH="//property_rep"/>
@ -128,7 +128,7 @@
<!-- For now, fauna don't have AI profile-->
<!-- <PARAMETER NAME= "ai_movement" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default"
PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/npc/ai_movement"/> </PARAMETER>
PATH="l:/leveldesign/world_editor_files/npc/ai_movement"/> </PARAMETER>
-->
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
<DYNAMIC_CHILD CLASS_NAME="state_event_handler"/>
@ -147,7 +147,7 @@
<PARAMETER NAME="group_keyword_filter" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="groups_by_name" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="event" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/npc/event_type"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc/event_type"/>
</PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
<DYNAMIC_CHILD CLASS_NAME="event_handler_action"/>
@ -159,7 +159,7 @@
<DEFAULT_VALUE VALUE="ACTION_ZONE"/>
</PARAMETER>
<PARAMETER NAME="params" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="zone" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/fauna_zone_properties"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/fauna_zone_properties"/>
</PARAMETER>
</PRIMITIVE>
@ -175,7 +175,7 @@
</PARAMETER>
<PARAMETER NAME="parameters" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="500" SHOW_HS="true" FILE_EXTENSION="cs"/>
<PARAMETER NAME="action" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/npc/action_type"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc/action_type"/>
</PARAMETER>
<DYNAMIC_CHILD CLASS_NAME="event_handler_action"/>
<DYNAMIC_CHILD CLASS_NAME="action_zone"/>
@ -2100,7 +2100,7 @@
<PARAMETER NAME="group_keyword_filter" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="groups_by_name" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="event" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="l:\leveldesign\world_editor_files/npc/event_type"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc/event_type"/>
</PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
<DYNAMIC_CHILD CLASS_NAME="fauna_event_handler_action"/>
@ -2140,7 +2140,7 @@
<PARAMETER NAME="group_keyword_filter" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="groups_by_name" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="event" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="l:\leveldesign\world_editor_files/npc/event_type"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc/event_type"/>
</PARAMETER>
<DYNAMIC_CHILD CLASS_NAME="fauna_event_handler_action"/>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
@ -2155,7 +2155,7 @@
<!-- <PARAMETER NAME="params" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> -->
<PARAMETER NAME="params" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="zone" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="l:\leveldesign\world_editor_files/fauna_zone_properties"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/fauna_zone_properties"/>
</PARAMETER>
</PRIMITIVE>
@ -2169,7 +2169,7 @@
<!-- <PARAMETER NAME="params" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> -->
<PARAMETER NAME="params" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="zone" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="l:\leveldesign\world_editor_files/npc_zone_properties"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc_zone_properties"/>
</PARAMETER>
</PRIMITIVE>
@ -2185,7 +2185,7 @@
</PARAMETER>
<PARAMETER NAME="parameters" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="500" SHOW_HS="true" FILE_EXTENSION="cs"/>
<PARAMETER NAME="action" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="l:\leveldesign\world_editor_files/npc/action_type"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc/action_type"/>
</PARAMETER>
<DYNAMIC_CHILD CLASS_NAME="fauna_event_handler_action"/>
<DYNAMIC_CHILD CLASS_NAME="fauna_action_zone"/>
@ -2513,10 +2513,10 @@
-->
<!-- <PARAMETER NAME= "keywords" TYPE="string_array" VISIBLE="true"/> -->
<PARAMETER NAME="ai_movement" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/npc/ai_movement"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc/ai_movement"/>
</PARAMETER>
<PARAMETER NAME="ai_activity" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/npc/ai_activity"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc/ai_activity"/>
<DEFAULT_VALUE VALUE="no_change"/>
</PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
@ -2720,10 +2720,10 @@
-->
<PARAMETER NAME="keywords" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="ai_movement" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/npc/ai_movement"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc/ai_movement"/>
</PARAMETER>
<PARAMETER NAME="ai_activity" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/npc/ai_activity"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc/ai_activity"/>
<DEFAULT_VALUE VALUE="no_change"/>
</PARAMETER>
<PARAMETER NAME="ai_profile_params" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
@ -2761,10 +2761,10 @@
-->
<PARAMETER NAME="keywords" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="ai_movement" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/npc/ai_movement"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc/ai_movement"/>
</PARAMETER>
<PARAMETER NAME="ai_activity" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/npc/ai_activity"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc/ai_activity"/>
<DEFAULT_VALUE VALUE="no_change"/>
</PARAMETER>
<PARAMETER NAME="ai_profile_params" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
@ -2802,10 +2802,10 @@
-->
<PARAMETER NAME="keywords" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="ai_movement" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/npc/ai_movement"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc/ai_movement"/>
</PARAMETER>
<PARAMETER NAME="ai_activity" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/npc/ai_activity"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc/ai_activity"/>
<DEFAULT_VALUE VALUE="no_change"/>
</PARAMETER>
<PARAMETER NAME="ai_profile_params" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
@ -2828,10 +2828,10 @@
<PARAMETER NAME="grp_keyword_filter" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="grps_by_name" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="ai_movement" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/npc/ai_movement"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc/ai_movement"/>
</PARAMETER>
<PARAMETER NAME="ai_activity" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/npc/ai_activity"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc/ai_activity"/>
<DEFAULT_VALUE VALUE="no_change"/>
</PARAMETER>
<PARAMETER NAME="ai_profile_params" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
@ -2869,7 +2869,7 @@
<PARAMETER NAME="group_keyword_filter" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="groups_by_name" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="event" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/npc/event_type"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc/event_type"/>
</PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
<DYNAMIC_CHILD CLASS_NAME="npc_event_handler_action"/>
@ -2888,7 +2888,7 @@
<PARAMETER NAME="group_keyword_filter" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="groups_by_name" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="event" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/npc/event_type"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc/event_type"/>
</PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
<DYNAMIC_CHILD CLASS_NAME="npc_event_handler_action"/>
@ -2907,7 +2907,7 @@
<PARAMETER NAME="state_keyword_filter" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="states_by_name" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="event" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/npc/event_type"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc/event_type"/>
</PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
<DYNAMIC_CHILD CLASS_NAME="npc_event_handler_action"/>
@ -2924,7 +2924,7 @@
</PARAMETER>
<PARAMETER NAME="parameters" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="500" SHOW_HS="true" FILE_EXTENSION="cs"/>
<PARAMETER NAME="action" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/npc/action_type"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc/action_type"/>
</PARAMETER>
<DYNAMIC_CHILD CLASS_NAME="npc_event_handler_action"/>
<DYNAMIC_CHILD CLASS_NAME="fauna_action_zone"/>
@ -3662,7 +3662,7 @@
<DEFAULT_VALUE VALUE="OUTPOST"/>
</PARAMETER>
<PARAMETER NAME="owner_tribe" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/families"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/families"/>
</PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
@ -3751,7 +3751,7 @@
<DEFAULT_VALUE VALUE="OUTPOST_MANAGER_EVENT"/>
</PARAMETER>
<PARAMETER NAME="event" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/outpost/manager/event_type"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/outpost/manager/event_type"/>
</PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
<DYNAMIC_CHILD CLASS_NAME="npc_event_handler_action"/>
@ -3765,7 +3765,7 @@
<DEFAULT_VALUE VALUE="OUTPOST_MANAGER_EVENT_ACTION"/>
</PARAMETER>
<PARAMETER NAME="action" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/outpost/manager/action_type"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/outpost/manager/action_type"/>
</PARAMETER>
<DYNAMIC_CHILD CLASS_NAME="outpost_manager_event_handler_action"/>
</PRIMITIVE>
@ -3866,7 +3866,7 @@
</PARAMETER>
-->
<PARAMETER NAME="continent_name" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/continents"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/continents"/>
</PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
@ -3991,7 +3991,7 @@
-->
<PARAMETER NAME="family" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/families"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/families"/>
</PARAMETER>
<!-- Sample ..
@ -4019,10 +4019,10 @@
</PARAMETER>
-->
<PARAMETER NAME="food" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="zone" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/fauna_zone_properties"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/fauna_zone_properties"/>
</PARAMETER>
<PARAMETER NAME="rest" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="zone" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/fauna_zone_properties"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/fauna_zone_properties"/>
</PARAMETER>
<PARAMETER NAME="energy_0_25" TYPE="string" VISIBLE="true" FILENAME="false">
@ -4052,7 +4052,7 @@
</PARAMETER>
-->
<PARAMETER NAME="family" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/families"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/families"/>
</PARAMETER>
<PARAMETER NAME="energy_0_25" TYPE="string" VISIBLE="true" FILENAME="false">
@ -4098,7 +4098,7 @@
<DYNAMIC_CHILD CLASS_NAME="group_template_npc_ml"/>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
<PARAMETER NAME="flags" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="zone" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/npc_zone_properties"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc_zone_properties"/>
</PARAMETER>
</PRIMITIVE>
@ -4493,7 +4493,7 @@
-->
<PARAMETER NAME="family" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/families"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/families"/>
</PARAMETER>
<PARAMETER NAME="energy" TYPE="string" VISIBLE="true" FILENAME="false">
@ -4635,7 +4635,7 @@
</PARAMETER>
<PARAMETER NAME="properties" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="zone" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/fauna_zone_properties"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/fauna_zone_properties"/>
</PARAMETER>
<PARAMETER NAME="vertical_pos" TYPE="const_string" VISIBLE="true">
@ -4670,7 +4670,7 @@
</PARAMETER>
<PARAMETER NAME="properties" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="zone" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/npc_zone_properties"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc_zone_properties"/>
<COMBO_FILES CONTEXT_NAME="default" PRIM_PATH="//property_rep"/>
</PARAMETER>
@ -4704,7 +4704,7 @@
-->
<PARAMETER NAME="properties" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="zone" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/npc_zone_properties"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc_zone_properties"/>
<COMBO_FILES CONTEXT_NAME="default" PRIM_PATH="//property_rep"/>
</PARAMETER>
@ -4738,7 +4738,7 @@
-->
<PARAMETER NAME="properties" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="zone" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/npc_zone_properties"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/world_editor_files/npc_zone_properties"/>
<COMBO_FILES CONTEXT_NAME="default" PRIM_PATH="//property_rep"/>
</PARAMETER>