Add EGS sheets to shard sheets packer tool
This commit is contained in:
parent
f65a48cc4b
commit
30030220c1
10 changed files with 88 additions and 29 deletions
|
@ -56,6 +56,14 @@ CSheets CSheets::_StaticSheets; // the singleton instance
|
||||||
bool CSheets::_Initialised=false; // - set true by constructor
|
bool CSheets::_Initialised=false; // - set true by constructor
|
||||||
bool CSheets::_Destroyed=false; // - set true by destructor
|
bool CSheets::_Destroyed=false; // - set true by destructor
|
||||||
|
|
||||||
|
#ifndef NO_EGS_VARS
|
||||||
|
static std::string writeDirectory()
|
||||||
|
{
|
||||||
|
return IService::getInstance()->WriteFilesDirectory.toString();
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
extern std::string writeDirectory();
|
||||||
|
#endif
|
||||||
|
|
||||||
//---------------------------------------------------
|
//---------------------------------------------------
|
||||||
// scanDirectoriesForFiles : utility routine for init()
|
// scanDirectoriesForFiles : utility routine for init()
|
||||||
|
@ -82,7 +90,7 @@ void scanGeorgePaths(bool forceFullRescan=false)
|
||||||
NLMISC::CPath::clearMap();
|
NLMISC::CPath::clearMap();
|
||||||
|
|
||||||
// rescan 'Paths' directories
|
// rescan 'Paths' directories
|
||||||
if ((var = IService::getInstance()->ConfigFile.getVarPtr ("Paths")) != NULL)
|
if (IService::isServiceInitialized() && ((var = IService::getInstance()->ConfigFile.getVarPtr ("Paths")) != NULL))
|
||||||
{
|
{
|
||||||
for (uint i = 0; i < var->size(); i++)
|
for (uint i = 0; i < var->size(); i++)
|
||||||
{
|
{
|
||||||
|
@ -91,7 +99,7 @@ void scanGeorgePaths(bool forceFullRescan=false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// rescan 'PathsNoRecurse' directories
|
// rescan 'PathsNoRecurse' directories
|
||||||
if ((var = IService::getInstance()->ConfigFile.getVarPtr ("PathsNoRecurse")) != NULL)
|
if (IService::isServiceInitialized() && ((var = IService::getInstance()->ConfigFile.getVarPtr ("PathsNoRecurse")) != NULL))
|
||||||
{
|
{
|
||||||
for (uint i = 0; i < var->size(); i++)
|
for (uint i = 0; i < var->size(); i++)
|
||||||
{
|
{
|
||||||
|
@ -101,7 +109,7 @@ void scanGeorgePaths(bool forceFullRescan=false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// add any paths listed in the 'GeorgeFiles' config file variable
|
// add any paths listed in the 'GeorgeFiles' config file variable
|
||||||
if ((var = IService::getInstance()->ConfigFile.getVarPtr ("GeorgePaths")) != NULL)
|
if (IService::isServiceInitialized() && ((var = IService::getInstance()->ConfigFile.getVarPtr ("GeorgePaths")) != NULL))
|
||||||
{
|
{
|
||||||
for (uint i = 0; i < var->size(); i++)
|
for (uint i = 0; i < var->size(); i++)
|
||||||
{
|
{
|
||||||
|
@ -123,9 +131,9 @@ template <class C> void loadSheetSet(const char *fileType,const char *sheetFile,
|
||||||
sheetMap.clear();
|
sheetMap.clear();
|
||||||
|
|
||||||
// if the 'GeorgePaths' config file var exists then we try to perform a mini-scan for sheet files
|
// if the 'GeorgePaths' config file var exists then we try to perform a mini-scan for sheet files
|
||||||
if (IService::getInstance()->ConfigFile.getVarPtr(std::string("GeorgePaths"))!=NULL)
|
if (IService::isServiceInitialized() && (IService::getInstance()->ConfigFile.getVarPtr(std::string("GeorgePaths"))!=NULL))
|
||||||
{
|
{
|
||||||
loadForm( fileType, IService::getInstance()->WriteFilesDirectory.toString()+sheetFile, sheetMap, false, false);
|
loadForm( fileType, writeDirectory()+sheetFile, sheetMap, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// if we haven't succeeded in minimal scan (or 'GeorgePaths' wasn't found in config file) then perform standard scan
|
// if we haven't succeeded in minimal scan (or 'GeorgePaths' wasn't found in config file) then perform standard scan
|
||||||
|
@ -133,7 +141,7 @@ template <class C> void loadSheetSet(const char *fileType,const char *sheetFile,
|
||||||
{
|
{
|
||||||
// if the 'GeorgePaths' variable exists and hasn't already been treated then add new paths to CPath singleton
|
// if the 'GeorgePaths' variable exists and hasn't already been treated then add new paths to CPath singleton
|
||||||
scanGeorgePaths();
|
scanGeorgePaths();
|
||||||
loadForm( fileType, IService::getInstance()->WriteFilesDirectory.toString()+sheetFile, sheetMap, true);
|
loadForm( fileType, writeDirectory()+sheetFile, sheetMap, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -148,9 +156,9 @@ template <class C> void loadSheetSet2(const char *fileType,const char *sheetFile
|
||||||
sheetMap.clear();
|
sheetMap.clear();
|
||||||
|
|
||||||
// if the 'GeorgePaths' config file var exists then we try to perform a mini-scan for sheet files
|
// if the 'GeorgePaths' config file var exists then we try to perform a mini-scan for sheet files
|
||||||
if (IService::getInstance()->ConfigFile.getVarPtr(std::string("GeorgePaths"))!=NULL)
|
if (IService::isServiceInitialized() && (IService::getInstance()->ConfigFile.getVarPtr(std::string("GeorgePaths"))!=NULL))
|
||||||
{
|
{
|
||||||
loadForm2( fileType, IService::getInstance()->WriteFilesDirectory.toString()+sheetFile, sheetMap, false, false);
|
loadForm2( fileType, writeDirectory()+sheetFile, sheetMap, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// if we haven't succeeded in minimal scan (or 'GeorgePaths' wasn't found in config file) then perform standard scan
|
// if we haven't succeeded in minimal scan (or 'GeorgePaths' wasn't found in config file) then perform standard scan
|
||||||
|
@ -158,7 +166,7 @@ template <class C> void loadSheetSet2(const char *fileType,const char *sheetFile
|
||||||
{
|
{
|
||||||
// if the 'GeorgePaths' variable exists and hasn't already been treated then add new paths to CPath singleton
|
// if the 'GeorgePaths' variable exists and hasn't already been treated then add new paths to CPath singleton
|
||||||
scanGeorgePaths();
|
scanGeorgePaths();
|
||||||
loadForm2( fileType, IService::getInstance()->WriteFilesDirectory.toString()+sheetFile, sheetMap, true);
|
loadForm2( fileType, writeDirectory()+sheetFile, sheetMap, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -172,9 +180,9 @@ template <class T> void loadSheetSet(const vector<string> &fileTypes,const char
|
||||||
sheetMap.clear();
|
sheetMap.clear();
|
||||||
|
|
||||||
// if the 'GeorgePaths' config file var exists then we try to perform a mini-scan for sheet files
|
// if the 'GeorgePaths' config file var exists then we try to perform a mini-scan for sheet files
|
||||||
if (IService::getInstance()->ConfigFile.getVarPtr(std::string("GeorgePaths"))!=NULL)
|
if (IService::isServiceInitialized() && (IService::getInstance()->ConfigFile.getVarPtr(std::string("GeorgePaths"))!=NULL))
|
||||||
{
|
{
|
||||||
loadForm( fileTypes, IService::getInstance()->WriteFilesDirectory.toString()+sheetFile, sheetMap, false, false);
|
loadForm( fileTypes, writeDirectory()+sheetFile, sheetMap, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// if we haven't succeeded in minimal scan (or 'GeorgePaths' wasn't found in config file) then perform standard scan
|
// if we haven't succeeded in minimal scan (or 'GeorgePaths' wasn't found in config file) then perform standard scan
|
||||||
|
@ -182,7 +190,7 @@ template <class T> void loadSheetSet(const vector<string> &fileTypes,const char
|
||||||
{
|
{
|
||||||
// if the 'GeorgePaths' variable exists and hasn't already been treated then add new paths to CPath singleton
|
// if the 'GeorgePaths' variable exists and hasn't already been treated then add new paths to CPath singleton
|
||||||
scanGeorgePaths();
|
scanGeorgePaths();
|
||||||
loadForm( fileTypes, IService::getInstance()->WriteFilesDirectory.toString()+sheetFile, sheetMap, true);
|
loadForm( fileTypes, writeDirectory()+sheetFile, sheetMap, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -196,9 +204,9 @@ void loadSheetSetForHashMap(const vector<string> &fileTypes,const char *sheetFil
|
||||||
map<CSheetId,T> sheetMap;
|
map<CSheetId,T> sheetMap;
|
||||||
|
|
||||||
// if the 'GeorgePaths' config file var exists then we try to perform a mini-scan for sheet files
|
// if the 'GeorgePaths' config file var exists then we try to perform a mini-scan for sheet files
|
||||||
if (IService::getInstance()->ConfigFile.getVarPtr(std::string("GeorgePaths"))!=NULL)
|
if (IService::isServiceInitialized() && (IService::getInstance()->ConfigFile.getVarPtr(std::string("GeorgePaths"))!=NULL))
|
||||||
{
|
{
|
||||||
loadForm( fileTypes, IService::getInstance()->WriteFilesDirectory.toString()+sheetFile, sheetMap, false, false);
|
loadForm( fileTypes, writeDirectory()+sheetFile, sheetMap, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// if we haven't succeeded in minimal scan (or 'GeorgePaths' wasn't found in config file) then perform standard scan
|
// if we haven't succeeded in minimal scan (or 'GeorgePaths' wasn't found in config file) then perform standard scan
|
||||||
|
@ -206,7 +214,7 @@ void loadSheetSetForHashMap(const vector<string> &fileTypes,const char *sheetFil
|
||||||
{
|
{
|
||||||
// if the 'GeorgePaths' variable exists and hasn't already been treated then add new paths to CPath singleton
|
// if the 'GeorgePaths' variable exists and hasn't already been treated then add new paths to CPath singleton
|
||||||
scanGeorgePaths();
|
scanGeorgePaths();
|
||||||
loadForm( fileTypes, IService::getInstance()->WriteFilesDirectory.toString()+sheetFile, sheetMap, true);
|
loadForm( fileTypes, writeDirectory()+sheetFile, sheetMap, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert map to hash_map
|
// Convert map to hash_map
|
||||||
|
@ -705,11 +713,15 @@ template <class T> void reloadSheetSet(const vector<string> &fileTypes, T &sheet
|
||||||
sheetMap.clear();
|
sheetMap.clear();
|
||||||
|
|
||||||
// if the 'GeorgePaths' config file var exists then we try to perform a mini-scan for sheet files
|
// if the 'GeorgePaths' config file var exists then we try to perform a mini-scan for sheet files
|
||||||
if (IService::getInstance()->ConfigFile.getVarPtr(std::string("GeorgePaths"))!=NULL)
|
if (IService::isServiceInitialized() && (IService::getInstance()->ConfigFile.getVarPtr(std::string("GeorgePaths"))!=NULL))
|
||||||
{
|
{
|
||||||
scanGeorgePaths();
|
scanGeorgePaths();
|
||||||
loadFormNoPackedSheet( fileTypes, sheetMap, wildcardFilter);
|
loadFormNoPackedSheet( fileTypes, sheetMap, wildcardFilter);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
nlwarning("No GeorgePaths in EGS config");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// variant with smart pointers, maintain with function above
|
// variant with smart pointers, maintain with function above
|
||||||
|
@ -719,11 +731,15 @@ template <class T> void reloadSheetSet2(const vector<string> &fileTypes, T &shee
|
||||||
sheetMap.clear();
|
sheetMap.clear();
|
||||||
|
|
||||||
// if the 'GeorgePaths' config file var exists then we try to perform a mini-scan for sheet files
|
// if the 'GeorgePaths' config file var exists then we try to perform a mini-scan for sheet files
|
||||||
if (IService::getInstance()->ConfigFile.getVarPtr(std::string("GeorgePaths"))!=NULL)
|
if (IService::isServiceInitialized() && (IService::getInstance()->ConfigFile.getVarPtr(std::string("GeorgePaths"))!=NULL))
|
||||||
{
|
{
|
||||||
scanGeorgePaths();
|
scanGeorgePaths();
|
||||||
loadFormNoPackedSheet2( fileTypes, sheetMap, wildcardFilter);
|
loadFormNoPackedSheet2( fileTypes, sheetMap, wildcardFilter);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
nlwarning("No GeorgePaths in EGS config");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class T> void reloadSheetSet(const string &fileType, T &sheetMap, const string &wildcardFilter)
|
template <class T> void reloadSheetSet(const string &fileType, T &sheetMap, const string &wildcardFilter)
|
||||||
|
|
|
@ -1878,6 +1878,7 @@ void CStaticItem::reloadSheet(const CStaticItem &o)
|
||||||
const_cast<CStaticItem&>(o).clearPtrs(false);
|
const_cast<CStaticItem&>(o).clearPtrs(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef NO_EGS_VARS
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
float CStaticItem::getBaseWeight() const
|
float CStaticItem::getBaseWeight() const
|
||||||
{
|
{
|
||||||
|
@ -1990,6 +1991,7 @@ float CStaticItem::getBaseWeight() const
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
void CStaticItem::clearPtrs(bool doDelete)
|
void CStaticItem::clearPtrs(bool doDelete)
|
||||||
|
|
|
@ -838,11 +838,13 @@ public:
|
||||||
/// called to copy from another sheet (operator= + care ptrs)
|
/// called to copy from another sheet (operator= + care ptrs)
|
||||||
void reloadSheet(const CStaticItem &o);
|
void reloadSheet(const CStaticItem &o);
|
||||||
|
|
||||||
|
#ifndef NO_EGS_VARS
|
||||||
/** Get the base weigth for an item.
|
/** Get the base weigth for an item.
|
||||||
* This weight must be multiplied by the craft parameter weight value
|
* This weight must be multiplied by the craft parameter weight value
|
||||||
* to obtain the real item weight.
|
* to obtain the real item weight.
|
||||||
*/
|
*/
|
||||||
float getBaseWeight() const;
|
float getBaseWeight() const;
|
||||||
|
#endif
|
||||||
|
|
||||||
std::vector<SItemSpecialEffect> lookForEffects(ITEM_SPECIAL_EFFECT::TItemSpecialEffect effectType) const;
|
std::vector<SItemSpecialEffect> lookForEffects(ITEM_SPECIAL_EFFECT::TItemSpecialEffect effectType) const;
|
||||||
|
|
||||||
|
|
|
@ -2093,7 +2093,7 @@ void CStaticLootTable::readGeorges( const NLMISC::CSmartPtr<NLGEORGES::UForm> &f
|
||||||
|
|
||||||
} // CStaticLootTable::readGeorges //
|
} // CStaticLootTable::readGeorges //
|
||||||
|
|
||||||
|
#ifndef NO_EGS_VARS
|
||||||
/// selectRandomLootSet
|
/// selectRandomLootSet
|
||||||
CSheetId CStaticLootTable::selectRandomLootSet() const
|
CSheetId CStaticLootTable::selectRandomLootSet() const
|
||||||
{
|
{
|
||||||
|
@ -2173,6 +2173,7 @@ const CStaticLootSet *CStaticLootTable::selectRandomCustomLootSet() const
|
||||||
nlwarning("Can't find any lootset rand=%d probabilitySum=%d weightCount=%d",randWeight,probabilitySum,CustomLootSets.size());
|
nlwarning("Can't find any lootset rand=%d probabilitySum=%d weightCount=%d",randWeight,probabilitySum,CustomLootSets.size());
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
///////////////////// Static Race Statistics //////////////////////////////
|
///////////////////// Static Race Statistics //////////////////////////////
|
||||||
|
|
|
@ -868,10 +868,12 @@ public:
|
||||||
/// read the sheet
|
/// read the sheet
|
||||||
virtual void readGeorges( const NLMISC::CSmartPtr<NLGEORGES::UForm> &form, const NLMISC::CSheetId &sheetId );
|
virtual void readGeorges( const NLMISC::CSmartPtr<NLGEORGES::UForm> &form, const NLMISC::CSheetId &sheetId );
|
||||||
|
|
||||||
|
#ifndef NO_EGS_VARS
|
||||||
/// select a loot set
|
/// select a loot set
|
||||||
NLMISC::CSheetId selectRandomLootSet() const;
|
NLMISC::CSheetId selectRandomLootSet() const;
|
||||||
|
|
||||||
const CStaticLootSet *selectRandomCustomLootSet() const;
|
const CStaticLootSet *selectRandomCustomLootSet() const;
|
||||||
|
#endif
|
||||||
|
|
||||||
// return the version of this class, increments this value when the content of this class changed
|
// return the version of this class, increments this value when the content of this class changed
|
||||||
static uint getVersion () { return 1; }
|
static uint getVersion () { return 1; }
|
||||||
|
|
|
@ -31,6 +31,7 @@ const uint8 NbRawMaterials = 10;
|
||||||
|
|
||||||
const float QuarteringForcedQuantities [6] = { 0, 1.0f, 2.0f, 3.0f, 4.0f, 0.5f };
|
const float QuarteringForcedQuantities [6] = { 0, 1.0f, 2.0f, 3.0f, 4.0f, 0.5f };
|
||||||
|
|
||||||
|
#ifndef NO_EGS_VARS
|
||||||
const float *QuarteringQuantityByVariable [NBRMQuantityVariables] =
|
const float *QuarteringQuantityByVariable [NBRMQuantityVariables] =
|
||||||
{
|
{
|
||||||
&QuarteringQuantityAverageForCraftHerbivore.get(),
|
&QuarteringQuantityAverageForCraftHerbivore.get(),
|
||||||
|
@ -46,7 +47,7 @@ const float *QuarteringQuantityByVariable [NBRMQuantityVariables] =
|
||||||
&QuarteringForcedQuantities[4],
|
&QuarteringForcedQuantities[4],
|
||||||
&QuarteringForcedQuantities[5]
|
&QuarteringForcedQuantities[5]
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
CVariable<bool> VerboseQuartering( "egs", "VerboseQuartering", "", false, 0, true );
|
CVariable<bool> VerboseQuartering( "egs", "VerboseQuartering", "", false, 0, true );
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,9 @@ enum TRMUsage { RMUTotalQuantity, RMUFixedQuantity, NbRMUsages };
|
||||||
|
|
||||||
enum TRMQuantityVariable { RMQVHerbivore, RMQVCarnivore, RMQVBoss5, RMQVBossBegin=RMQVBoss5, RMQVBoss7, RMQVBossEnd=RMQVBoss7, RMQVInvasion5, RMQVInvasion7, RMQVForceBase, NBRMQuantityVariables=RMQVForceBase+6 };
|
enum TRMQuantityVariable { RMQVHerbivore, RMQVCarnivore, RMQVBoss5, RMQVBossBegin=RMQVBoss5, RMQVBoss7, RMQVBossEnd=RMQVBoss7, RMQVInvasion5, RMQVInvasion7, RMQVForceBase, NBRMQuantityVariables=RMQVForceBase+6 };
|
||||||
|
|
||||||
|
#ifndef NO_EGS_VARS
|
||||||
extern const float *QuarteringQuantityByVariable [NBRMQuantityVariables];
|
extern const float *QuarteringQuantityByVariable [NBRMQuantityVariables];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -22,8 +22,6 @@
|
||||||
#include "stdpch.h"
|
#include "stdpch.h"
|
||||||
//
|
//
|
||||||
#include "resists.h"
|
#include "resists.h"
|
||||||
#include "player_manager/character.h"
|
|
||||||
#include "game_item_manager/game_item.h"
|
|
||||||
|
|
||||||
//////////////
|
//////////////
|
||||||
// USING //
|
// USING //
|
||||||
|
|
|
@ -1,15 +1,19 @@
|
||||||
FILE(GLOB SRC *.cpp *.h)
|
FILE(GLOB SRC *.cpp *.h)
|
||||||
|
FILE(GLOB EGSSHEETS ${CMAKE_SOURCE_DIR}/ryzom/server/src/entities_game_service/egs_sheets/*.cpp ${CMAKE_SOURCE_DIR}/ryzom/server/src/entities_game_service/egs_sheets/*.h)
|
||||||
|
|
||||||
ADD_EXECUTABLE(sheets_packer_shard ${SRC}
|
ADD_EXECUTABLE(sheets_packer_shard ${SRC} ${EGSSHEETS}
|
||||||
${CMAKE_SOURCE_DIR}/ryzom/server/src/input_output_service/string_manager_sheet.cpp
|
${CMAKE_SOURCE_DIR}/ryzom/server/src/input_output_service/string_manager_sheet.cpp
|
||||||
${CMAKE_SOURCE_DIR}/ryzom/server/src/input_output_service/string_manager.h
|
${CMAKE_SOURCE_DIR}/ryzom/server/src/input_output_service/string_manager.h
|
||||||
${CMAKE_SOURCE_DIR}/ryzom/server/src/gpm_service/sheets.cpp
|
${CMAKE_SOURCE_DIR}/ryzom/server/src/gpm_service/sheets.cpp
|
||||||
${CMAKE_SOURCE_DIR}/ryzom/server/src/gpm_service/sheets.h)
|
${CMAKE_SOURCE_DIR}/ryzom/server/src/gpm_service/sheets.h
|
||||||
|
${CMAKE_SOURCE_DIR}/ryzom/server/src/entities_game_service/entity_structure/resists.cpp
|
||||||
|
${CMAKE_SOURCE_DIR}/ryzom/server/src/entities_game_service/entity_structure/resists.h)
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/ryzom/common/src ${CMAKE_SOURCE_DIR}/ryzom/server/src)
|
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/ryzom/common/src ${CMAKE_SOURCE_DIR}/ryzom/server/src ${CMAKE_SOURCE_DIR}/ryzom/tools/sheets_packer_shard ${CMAKE_SOURCE_DIR}/ryzom/server/src/entities_game_service)
|
||||||
TARGET_LINK_LIBRARIES(sheets_packer_shard
|
TARGET_LINK_LIBRARIES(sheets_packer_shard
|
||||||
ryzom_gameshare
|
ryzom_gameshare
|
||||||
ryzom_servershare
|
ryzom_servershare
|
||||||
|
ryzom_aishare
|
||||||
nelmisc
|
nelmisc
|
||||||
nelgeorges
|
nelgeorges
|
||||||
nelnet
|
nelnet
|
||||||
|
@ -21,4 +25,6 @@ ADD_DEFINITIONS(${LIBXML2_DEFINITIONS})
|
||||||
NL_DEFAULT_PROPS(sheets_packer_shard "Ryzom, Tools: Sheets Packer Shard")
|
NL_DEFAULT_PROPS(sheets_packer_shard "Ryzom, Tools: Sheets Packer Shard")
|
||||||
NL_ADD_RUNTIME_FLAGS(sheets_packer_shard)
|
NL_ADD_RUNTIME_FLAGS(sheets_packer_shard)
|
||||||
|
|
||||||
|
SET_TARGET_PROPERTIES(sheets_packer_shard PROPERTIES COMPILE_FLAGS -DNO_EGS_VARS)
|
||||||
|
|
||||||
INSTALL(TARGETS sheets_packer_shard RUNTIME DESTINATION ${RYZOM_BIN_PREFIX} COMPONENT tools)
|
INSTALL(TARGETS sheets_packer_shard RUNTIME DESTINATION ${RYZOM_BIN_PREFIX} COMPONENT tools)
|
||||||
|
|
|
@ -30,11 +30,13 @@
|
||||||
#include <nel/misc/file.h>
|
#include <nel/misc/file.h>
|
||||||
#include <nel/misc/log.h>
|
#include <nel/misc/log.h>
|
||||||
#include <nel/misc/path.h>
|
#include <nel/misc/path.h>
|
||||||
|
#include <nel/misc/sheet_id.h>
|
||||||
#include <nel/georges/load_form.h>
|
#include <nel/georges/load_form.h>
|
||||||
#include <game_share/data_set_base.h>
|
#include <game_share/data_set_base.h>
|
||||||
#include <input_output_service/string_manager.h>
|
#include <input_output_service/string_manager.h>
|
||||||
#include <gpm_service/sheets.h>
|
#include <gpm_service/sheets.h>
|
||||||
#include <server_share/continent_container.h>
|
#include <server_share/continent_container.h>
|
||||||
|
#include <entities_game_service/egs_sheets/egs_sheets.h>
|
||||||
|
|
||||||
// Project includes
|
// Project includes
|
||||||
// ...
|
// ...
|
||||||
|
@ -43,6 +45,15 @@ namespace {
|
||||||
|
|
||||||
} /* anonymous namespace */
|
} /* anonymous namespace */
|
||||||
|
|
||||||
|
// EGS
|
||||||
|
NLMISC::CVariable<bool> EGSLight("egs","EGSLight", "Load EGS with a minimal set of feature loaded", false, 0, true);
|
||||||
|
NLMISC::CVariable<bool> LoadOutposts("egs", "LoadOutposts", "If false outposts won't be loaded", true, 0, true );
|
||||||
|
static std::string s_WriteDirectory;
|
||||||
|
std::string writeDirectory()
|
||||||
|
{
|
||||||
|
return s_WriteDirectory;
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
// note: *.packed_sheets files are placed in <build_packed_sheets> //
|
// note: *.packed_sheets files are placed in <build_packed_sheets> //
|
||||||
// and will need to be moved to the right location by //
|
// and will need to be moved to the right location by //
|
||||||
|
@ -55,10 +66,12 @@ int main(int nNbArg, char **ppArgs)
|
||||||
NLMISC::createDebug();
|
NLMISC::createDebug();
|
||||||
|
|
||||||
// verify all params
|
// verify all params
|
||||||
if (nNbArg < 5)
|
if (nNbArg < 6)
|
||||||
{
|
{
|
||||||
|
// >sheets_packer_shard.exe L:\leveldesign L:\leveldesign\DFN R:\code\ryzom\server\data_shard\mirror_sheets T:\export\common\leveldesign\visual_slot_tab T:\test_shard
|
||||||
nlinfo("ERROR : Wrong number of arguments\n");
|
nlinfo("ERROR : Wrong number of arguments\n");
|
||||||
nlinfo("USAGE : sheets_packer_shard <leveldesign> <dfn> <datasets> <build_packed_sheets>\n");
|
nlinfo("USAGE : sheets_packer_shard <leveldesign> <dfn> <datasets> <tab> <build_packed_sheets>\n");
|
||||||
|
nlinfo("<tab> : Directory containing visual_slots.tab");
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
std::string leveldesignDir = std::string(ppArgs[1]);
|
std::string leveldesignDir = std::string(ppArgs[1]);
|
||||||
|
@ -79,17 +92,28 @@ int main(int nNbArg, char **ppArgs)
|
||||||
nlerrornoex("Directory datasets '%s' does not exist", datasetsDir.c_str());
|
nlerrornoex("Directory datasets '%s' does not exist", datasetsDir.c_str());
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
std::string exportDir = std::string(ppArgs[4]);
|
std::string tabDir = std::string(ppArgs[4]);
|
||||||
|
if (!NLMISC::CFile::isDirectory(tabDir))
|
||||||
|
{
|
||||||
|
nlerrornoex("Directory tab '%s' does not exist", tabDir.c_str());
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
std::string exportDir = std::string(ppArgs[5]);
|
||||||
if (!NLMISC::CFile::isDirectory(exportDir))
|
if (!NLMISC::CFile::isDirectory(exportDir))
|
||||||
{
|
{
|
||||||
nlerrornoex("Directory build_packed_sheets '%s' does not exist", exportDir.c_str());
|
nlerrornoex("Directory build_packed_sheets '%s' does not exist", exportDir.c_str());
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
s_WriteDirectory = exportDir + "/";
|
||||||
|
|
||||||
// add search paths
|
// add search paths
|
||||||
NLMISC::CPath::addSearchPath(leveldesignDir, true, false);
|
NLMISC::CPath::addSearchPath(leveldesignDir, true, false);
|
||||||
NLMISC::CPath::addSearchPath(dfnDir, true, false);
|
NLMISC::CPath::addSearchPath(dfnDir, true, false);
|
||||||
NLMISC::CPath::addSearchPath(datasetsDir, true, false);
|
NLMISC::CPath::addSearchPath(datasetsDir, false, false);
|
||||||
|
NLMISC::CPath::addSearchPath(tabDir, false, false);
|
||||||
|
|
||||||
|
// init sheet_id.bin
|
||||||
|
NLMISC::CSheetId::init(false);
|
||||||
|
|
||||||
// this here does the magic
|
// this here does the magic
|
||||||
// MS
|
// MS
|
||||||
|
@ -123,7 +147,12 @@ int main(int nNbArg, char **ppArgs)
|
||||||
// CContinentContainer
|
// CContinentContainer
|
||||||
{
|
{
|
||||||
CContinentContainer continents;
|
CContinentContainer continents;
|
||||||
continents.buildSheets(exportDir + "/");
|
continents.buildSheets(s_WriteDirectory);
|
||||||
|
}
|
||||||
|
|
||||||
|
// EGS
|
||||||
|
{
|
||||||
|
CSheets::init();
|
||||||
}
|
}
|
||||||
|
|
||||||
// and that's all folks
|
// and that's all folks
|
||||||
|
|
Loading…
Reference in a new issue