mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-11-10 09:19:01 +00:00
Merge with develop
This commit is contained in:
parent
8bda57bf89
commit
6995adfbc7
8 changed files with 98 additions and 33 deletions
|
@ -30,7 +30,9 @@ script:
|
|||
- cmake --build build -- -j 2
|
||||
|
||||
notifications:
|
||||
irc: "chat.freenode.net#ryzom"
|
||||
irc:
|
||||
channels:
|
||||
- "chat.freenode.net#ryzom"
|
||||
template:
|
||||
- "%{repository}#%{build_number} (%{branch} - %{commit} : %{author}): %{message}"
|
||||
- "Description : %{commit_message}"
|
||||
|
|
|
@ -31,6 +31,11 @@ IF(COMMAND cmake_policy)
|
|||
# Works around warnings about escaped quotes in ADD_DEFINITIONS
|
||||
# statements
|
||||
cmake_policy(SET CMP0005 OLD)
|
||||
|
||||
# allow to link to qtmain automatically under Windows
|
||||
IF(POLICY CMP0020)
|
||||
CMAKE_POLICY(SET CMP0020 NEW)
|
||||
ENDIF()
|
||||
ENDIF(COMMAND cmake_policy)
|
||||
|
||||
INCLUDE(nel)
|
||||
|
|
|
@ -253,7 +253,9 @@ inline lua_Integer CLuaState::toInteger(int index)
|
|||
{
|
||||
//H_AUTO(Lua_CLuaState_toInteger)
|
||||
checkIndex(index);
|
||||
#if LUA_VERSION_NUM >= 503
|
||||
sint isnum = 0;
|
||||
// lua_tointeger fails with decimal numbers under Lua 5.3
|
||||
lua_Integer res = lua_tointegerx(_State, index, &isnum);
|
||||
if (!isnum)
|
||||
{
|
||||
|
@ -262,6 +264,9 @@ inline lua_Integer CLuaState::toInteger(int index)
|
|||
res = (lua_Integer)d;
|
||||
}
|
||||
return res;
|
||||
#else
|
||||
return lua_tointeger(_State, index);
|
||||
#endif
|
||||
}
|
||||
|
||||
//================================================================================
|
||||
|
|
|
@ -70,7 +70,7 @@ void CCmdArgs::addArg(const std::string &helpName, const std::string &helpDescri
|
|||
bool CCmdArgs::haveArg(const std::string &argName) const
|
||||
{
|
||||
// process each argument
|
||||
for(uint i = 0; i < _Args.size(); i)
|
||||
for(uint i = 0; i < _Args.size(); ++i)
|
||||
{
|
||||
const TArg &arg = _Args[i];
|
||||
|
||||
|
|
|
@ -15,7 +15,6 @@ SET(CMAKE_AUTOMOC ON)
|
|||
|
||||
QT5_ADD_RESOURCES(RESOURCE_ADDED ${RESOURCES})
|
||||
|
||||
CMAKE_POLICY(SET CMP0020 NEW)
|
||||
ADD_EXECUTABLE(nl_panoply_preview WIN32 ${SRC}
|
||||
${SRCS}
|
||||
${HDRS}
|
||||
|
|
|
@ -11,7 +11,6 @@ SET(CMAKE_AUTOMOC ON)
|
|||
|
||||
QT5_ADD_RESOURCES(RESOURCE_ADDED ${RESOURCES})
|
||||
|
||||
CMAKE_POLICY(SET CMP0020 NEW)
|
||||
NL_TARGET_LIB(shared_widgets ${SRCS} ${HDRS} ${RSRC} ${RESOURCE_ADDED})
|
||||
|
||||
TARGET_LINK_LIBRARIES(shared_widgets nelmisc nel3d Qt5::Widgets)
|
||||
|
|
|
@ -59,19 +59,19 @@ struct CSheetWordListBuilder : public IWordListBuilder
|
|||
virtual bool buildWordList(std::vector<string> &allWords, string workSheetFileName)
|
||||
{
|
||||
SheetExt= toLower(SheetExt);
|
||||
|
||||
|
||||
// verify the directory is correct
|
||||
if(!CFile::isDirectory(SheetPath))
|
||||
{
|
||||
nlwarning("Error: Directory '%s' not found. '%s' Aborted", SheetPath.c_str(), workSheetFileName.c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// list all files.
|
||||
std::vector<string> allFiles;
|
||||
allFiles.reserve(100000);
|
||||
CPath::getPathContent(SheetPath, true, false, true, allFiles, NULL);
|
||||
|
||||
|
||||
// Keep only the extension we want, and remove "_" (parent)
|
||||
allWords.clear();
|
||||
allWords.reserve(allFiles.size());
|
||||
|
@ -91,7 +91,7 @@ struct CSheetWordListBuilder : public IWordListBuilder
|
|||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
@ -103,7 +103,7 @@ struct CRegionPrimWordListBuilder : public IWordListBuilder
|
|||
{
|
||||
string PrimPath;
|
||||
vector<string> PrimFilter;
|
||||
|
||||
|
||||
virtual bool buildWordList(std::vector<string> &allWords, string workSheetFileName)
|
||||
{
|
||||
// verify the directory is correct
|
||||
|
@ -112,12 +112,12 @@ struct CRegionPrimWordListBuilder : public IWordListBuilder
|
|||
nlwarning("Error: Directory '%s' not found. '%s' Aborted", PrimPath.c_str(), workSheetFileName.c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// list all files.
|
||||
std::vector<string> allFiles;
|
||||
allFiles.reserve(100000);
|
||||
CPath::getPathContent(PrimPath, true, false, true, allFiles, NULL);
|
||||
|
||||
|
||||
// parse all primitive that match the filter
|
||||
allWords.clear();
|
||||
allWords.reserve(100000);
|
||||
|
@ -146,11 +146,11 @@ struct CRegionPrimWordListBuilder : public IWordListBuilder
|
|||
return false;
|
||||
}
|
||||
CPrimitiveContext::instance().CurrentPrimitive = NULL;
|
||||
|
||||
|
||||
// For all primitives of interest
|
||||
const char *listClass[]= {"continent", "region", "place", "stable",
|
||||
const char *listClass[]= {"continent", "region", "place", "stable",
|
||||
"teleport_destination", "room_template"};
|
||||
const char *listProp[]= {"name", "name", "name", "name",
|
||||
const char *listProp[]= {"name", "name", "name", "name",
|
||||
"place_name", "place_name"};
|
||||
const uint numListClass= sizeof(listClass)/sizeof(listClass[0]);
|
||||
const uint numListProp= sizeof(listProp)/sizeof(listProp[0]);
|
||||
|
@ -178,7 +178,7 @@ struct CRegionPrimWordListBuilder : public IWordListBuilder
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
@ -199,7 +199,7 @@ void extractNewWords(string workSheetFileName, string columnId, IWordListBuilder
|
|||
}
|
||||
// get the key column index
|
||||
uint keyColIndex = 0;
|
||||
|
||||
|
||||
if(!workSheet.findCol(columnId, keyColIndex))
|
||||
{
|
||||
nlwarning("Error: Don't find the column '%s'. '%s' Aborted", columnId.c_str(), workSheetFileName.c_str());
|
||||
|
@ -220,7 +220,7 @@ void extractNewWords(string workSheetFileName, string columnId, IWordListBuilder
|
|||
ucstring key= workSheetLwr.getData(i, keyColIndex);
|
||||
workSheetLwr.setData(i, keyColIndex, toLower(key));
|
||||
}
|
||||
|
||||
|
||||
|
||||
// **** List all words with the builder given
|
||||
std::vector<string> allWords;
|
||||
|
@ -247,7 +247,7 @@ void extractNewWords(string workSheetFileName, string columnId, IWordListBuilder
|
|||
workSheet.resize(workSheet.size()+1);
|
||||
workSheet.setData(rowIdx, keyColIndex, keyName);
|
||||
workSheet.setData(rowIdx, nameColIndex, string("<GEN>")+keyName);
|
||||
|
||||
|
||||
nbAdd++;
|
||||
}
|
||||
}
|
||||
|
@ -284,7 +284,7 @@ void extractNewWords(string workSheetFileName, string columnId, IWordListBuilder
|
|||
{
|
||||
nbRemove++;
|
||||
// log
|
||||
NLMISC::InfoLog->displayRawNL("'%s': '%s' entry erased at line '%d'.", workSheetFileName.c_str(),
|
||||
NLMISC::InfoLog->displayRawNL("'%s': '%s' entry erased at line '%d'.", workSheetFileName.c_str(),
|
||||
keyStr.c_str(), i);
|
||||
}
|
||||
}
|
||||
|
@ -343,12 +343,12 @@ int extractNewSheetNames(int argc, char *argv[])
|
|||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// **** avoid some flood
|
||||
NLMISC::createDebug();
|
||||
NLMISC::DebugLog->addNegativeFilter("numCol changed to");
|
||||
NLMISC::InfoLog->addNegativeFilter("CPath::addSearchPath");
|
||||
|
||||
|
||||
|
||||
// **** read the configuration file
|
||||
CConfigFile cf;
|
||||
|
@ -368,21 +368,19 @@ int extractNewSheetNames(int argc, char *argv[])
|
|||
CPath::addSearchPath(NLMISC::expandEnvironmentVariables(pathNoRecurse.asString(i)), false, false);
|
||||
}
|
||||
|
||||
std::string leveldesignDataPath = NLMISC::expandEnvironmentVariables(leveldesignDataPathVar.asString());
|
||||
|
||||
std::string leveldesignDataPath = CPath::standardizePath(NLMISC::expandEnvironmentVariables(leveldesignDataPathVar.asString()));
|
||||
|
||||
// init ligo config once
|
||||
string ligoPath = CPath::lookup(NLMISC::expandEnvironmentVariables(ligoClassFile.asString()), true, true);
|
||||
LigoConfig.readPrimitiveClass(ligoPath.c_str(), false);
|
||||
NLLIGO::Register();
|
||||
CPrimitiveContext::instance().CurrentLigoConfig = &LigoConfig;
|
||||
|
||||
|
||||
|
||||
|
||||
// **** Parse all the different type of sheets
|
||||
const char *sheetDefs[]=
|
||||
{
|
||||
// 1st is the name of the worksheet file.
|
||||
// 2nd is the Key column identifier.
|
||||
// 1st is the name of the worksheet file.
|
||||
// 2nd is the Key column identifier.
|
||||
// 3rd is the sheet extension
|
||||
// 4th is the directory where to find new sheets
|
||||
"work/item_words_wk.txt", "item ID", "sitem", "leveldesign/game_element/sitem",
|
||||
|
@ -391,28 +389,26 @@ int extractNewSheetNames(int argc, char *argv[])
|
|||
"work/sphrase_words_wk.txt", "sphrase ID", "sphrase", "leveldesign/game_element/sphrase",
|
||||
};
|
||||
uint numSheetDefs= sizeof(sheetDefs) / (4*sizeof(sheetDefs[0]));
|
||||
|
||||
|
||||
// For all different type of sheet
|
||||
for(uint i=0;i<numSheetDefs;i++)
|
||||
{
|
||||
CSheetWordListBuilder builder;
|
||||
builder.SheetExt= sheetDefs[i*4+2];
|
||||
builder.SheetPath= CPath::standardizePath(leveldesignDataPath) + sheetDefs[i*4+3];
|
||||
builder.SheetPath= leveldesignDataPath + sheetDefs[i*4+3];
|
||||
extractNewWords(sheetDefs[i*4+0], sheetDefs[i*4+1], builder);
|
||||
}
|
||||
|
||||
|
||||
// **** Parse place and region names
|
||||
{
|
||||
// build place names
|
||||
CRegionPrimWordListBuilder builder;
|
||||
builder.PrimPath= leveldesignDataPath;
|
||||
builder.PrimPath= leveldesignDataPath + "primitives";
|
||||
builder.PrimFilter.push_back("region_*.primitive");
|
||||
builder.PrimFilter.push_back("indoors_*.primitive");
|
||||
extractNewWords("work/place_words_wk.txt", "placeId", builder);
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
59
code/ryzom/tools/translation_tools/translation_tools.cfg
Normal file
59
code/ryzom/tools/translation_tools/translation_tools.cfg
Normal file
|
@ -0,0 +1,59 @@
|
|||
// This cfg is used for bot names extraction
|
||||
|
||||
|
||||
// This paths are recursives
|
||||
Paths =
|
||||
{
|
||||
// word editor class config file are here
|
||||
"$RYZOM_LEVELDESIGN/leveldesign/world_editor_files",
|
||||
// all the primitives we want to parse are here
|
||||
"$RYZOM_LEVELDESIGN/primitives"
|
||||
};
|
||||
|
||||
// This paths are non recursives
|
||||
PathsNoRecurse =
|
||||
{
|
||||
// allow the prog to load the sheet_id.bin file.
|
||||
"$RYZOM_LEVELDESIGN/leveldesign/Game_elem",
|
||||
// path for world_editor_class.xml
|
||||
"$RYZOM_LEVELDESIGN/leveldesign/world_editor_files",
|
||||
};
|
||||
|
||||
LeveldesignDataPath = "$RYZOM_LEVELDESIGN";
|
||||
|
||||
// This paths are recursive and parsed only if the creature data packed sheet is not found (this take time)
|
||||
GeorgesPaths =
|
||||
{
|
||||
// the DFNs
|
||||
"$RYZOM_LEVELDESIGN/leveldesign/DFN",
|
||||
// All the creature and npc sheets
|
||||
"$RYZOM_LEVELDESIGN/leveldesign/Game_elem/creature"
|
||||
};
|
||||
|
||||
// The filters, if the fullpath to a file contains a part of this filter, it is rejected
|
||||
Filters =
|
||||
{
|
||||
// we don't want backuped primitives !
|
||||
"backup_old",
|
||||
// nor the test primitives !
|
||||
"test_",
|
||||
|
||||
/* "botobject",
|
||||
"deposit",
|
||||
"dynfauna",
|
||||
"dynnpc",
|
||||
"invasion",
|
||||
"staticfauna",
|
||||
"task"
|
||||
*/
|
||||
};
|
||||
|
||||
// This is the name of the world_editor_classes.xml file.
|
||||
LigoClassFile = "world_editor_classes.xml";
|
||||
|
||||
// Path to the working bot name file
|
||||
WorkBotNamesFile = "work/bot_names.txt";
|
||||
// Path to the translated bot names file
|
||||
TransBotNamesFile = "translated/bot_names.txt";
|
||||
// Path to the work title file
|
||||
WorkTitleFile = "work/title_words_wk.txt";
|
Loading…
Reference in a new issue