Merge remote-tracking branch 'origin/develop' into feature/code-to-root-atys

feature/develop-atys
kaetemi 5 years ago
commit 39d6ca285a

@ -33,7 +33,48 @@ jobs:
mkdir build mkdir build
cmake --version cmake --version
cd build cd build
cmake -DWITH_STATIC=ON -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=ON -DWITH_LUA51=ON -DWITH_RYZOM=ON -DWITH_RYZOM_SERVER=ON -DWITH_RYZOM_CLIENT=ON -DWITH_RYZOM_TOOLS=ON -DWITH_NEL_TOOLS=ON -DWITH_NELNS=ON -DWITH_NELNS_LOGIN_SYSTEM=ON -DWITH_NELNS_SERVER=ON -DWITH_QT5=ON -DWITH_LIBGSF=ON ../code cmake -DWITH_STATIC=ON -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=ON -DWITH_LUA51=ON -DWITH_RYZOM=ON -DWITH_RYZOM_SERVER=ON -DWITH_RYZOM_CLIENT=ON -DWITH_RYZOM_TOOLS=ON -DWITH_NEL_TOOLS=ON -DWITH_NELNS=ON -DWITH_NELNS_LOGIN_SYSTEM=ON -DWITH_NELNS_SERVER=ON -DWITH_QT5=ON -DWITH_LIBGSF=ON ..
cat CMakeCache.txt
displayName: 'CMake'
- script: |
cd build
make -j`nproc`
displayName: 'Make'
- job: ubuntu18
timeoutInMinutes: 120
pool:
vmImage: 'ubuntu-18.04'
steps:
- script: |
sudo apt update
sudo apt install -y software-properties-common
# sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install cmake build-essential -y
sudo apt install gcc-8 g++-8 -y
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 60
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 60
sudo apt install bison autoconf automake -y
sudo apt install libpng-dev -y
sudo apt install libjpeg-dev -y
sudo apt install libgif-dev libfreetype6-dev -y
sudo apt install freeglut3-dev -y
sudo apt install liblua5.2-dev libluabind-dev libcpptest-dev -y
sudo apt install libogg-dev libvorbis-dev libopenal-dev -y
sudo apt install libavcodec-dev libavformat-dev libavdevice-dev libswscale-dev libpostproc-dev -y
sudo apt install libmysqlclient-dev -y
sudo apt install libxml2-dev -y
sudo apt install libcurl4-openssl-dev libssl-dev -y
sudo apt install libsquish-dev -y
sudo apt install liblzma-dev -y
sudo apt install libgsf-1-dev -y
sudo apt install qtbase5-dev qttools5-dev qttools5-dev-tools
displayName: 'Dependencies'
- script: |
mkdir build
cmake --version
cd build
cmake -DWITH_STATIC=ON -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=ON -DWITH_LUA51=OFF -DWITH_LUA52=ON -DWITH_RYZOM=ON -DWITH_RYZOM_SERVER=ON -DWITH_RYZOM_CLIENT=ON -DWITH_RYZOM_TOOLS=ON -DWITH_NEL_TOOLS=ON -DWITH_NELNS=ON -DWITH_NELNS_LOGIN_SYSTEM=ON -DWITH_NELNS_SERVER=ON -DWITH_QT5=ON -DWITH_LIBGSF=ON ..
cat CMakeCache.txt cat CMakeCache.txt
displayName: 'CMake' displayName: 'CMake'
- script: | - script: |

@ -89,6 +89,9 @@ void createDebug (const char *logPath = NULL, bool logInFile = true, bool eraseL
/// Do not call this, unless you know what you're trying to do (it kills debug)! /// Do not call this, unless you know what you're trying to do (it kills debug)!
void destroyDebug(); void destroyDebug();
/// Attach exception handler, for new threads and fibers
void attachExceptionHandler();
// call this if you want to change the dir of the log.log file // call this if you want to change the dir of the log.log file
void changeLogDirectory(const std::string &dir); void changeLogDirectory(const std::string &dir);
@ -352,7 +355,7 @@ void setCrashAlreadyReported(bool state);
* Same as nlassertex(false,exp); * Same as nlassertex(false,exp);
*/ */
// removed because we always check assert (even in release mode) #if defined (NL_OS_WINDOWS) && defined (NL_DEBUG) #if defined(NL_DEBUG) /* Debug break is only useful in debug builds */
#if defined(NL_OS_WINDOWS) #if defined(NL_OS_WINDOWS)
#define NLMISC_BREAKPOINT __debugbreak() #define NLMISC_BREAKPOINT __debugbreak()
#elif defined(NL_OS_UNIX) && defined(NL_COMP_GCC) #elif defined(NL_OS_UNIX) && defined(NL_COMP_GCC)
@ -360,6 +363,9 @@ void setCrashAlreadyReported(bool state);
#else #else
#define NLMISC_BREAKPOINT abort() #define NLMISC_BREAKPOINT abort()
#endif #endif
#else
#define NLMISC_BREAKPOINT do { } while (0)
#endif
// Internal, don't use it (make smaller assert code) // Internal, don't use it (make smaller assert code)
extern bool _assert_stop(bool &ignoreNextTime, sint line, const char *file, const char *funcName, const char *exp); extern bool _assert_stop(bool &ignoreNextTime, sint line, const char *file, const char *funcName, const char *exp);

@ -290,6 +290,14 @@ inline bool endsWith(const char *str, const char *suffix) { return endsWith(str,
inline bool endsWith(const std::string &str, const char *suffix) { return endsWith(str.c_str(), str.size(), suffix, strlen(suffix)); } inline bool endsWith(const std::string &str, const char *suffix) { return endsWith(str.c_str(), str.size(), suffix, strlen(suffix)); }
inline bool endsWith(const std::string &str, const std::string &suffix) { return endsWith(str.c_str(), str.size(), suffix.c_str(), suffix.size()); } inline bool endsWith(const std::string &str, const std::string &suffix) { return endsWith(str.c_str(), str.size(), suffix.c_str(), suffix.size()); }
// ****************************************************************************
// Conversion of strings between
// - UTF-8
// - Local codepage (UTF-8 on Linux)
// - TString (Local codepage or wide on Windows)
// - Wide (wchar_t *, UTF-16 on Windows, UTF-32 on Linux)
// ****************************************************************************
// Convert local codepage to UTF-8 // Convert local codepage to UTF-8
// On Windows, the local codepage is undetermined // On Windows, the local codepage is undetermined
// On Linux, the local codepage is always UTF-8 (no-op) // On Linux, the local codepage is always UTF-8 (no-op)

@ -108,7 +108,7 @@ public:
bool play(const std::string &filepath, uint xFadeTime = 0, bool async = true, bool loop = true); bool play(const std::string &filepath, uint xFadeTime = 0, bool async = true, bool loop = true);
/// Stop the music previously loaded and played (the Memory is also freed) /// Stop the music previously loaded and played (the Memory is also freed)
void stop(uint xFadeTime = 0); bool stop(uint xFadeTime = 0);
/// Pause the music previously loaded and played (the Memory is not freed) /// Pause the music previously loaded and played (the Memory is not freed)
void pause(); void pause();

@ -96,6 +96,8 @@ private:
IAudioDecoder *m_AudioDecoder; IAudioDecoder *m_AudioDecoder;
std::string m_LookupPath;
bool m_Paused; bool m_Paused;
bool m_DecodingEnded; bool m_DecodingEnded;

@ -34,7 +34,7 @@ class CCurlHttpClient
public: public:
/// Constructor /// Constructor
CCurlHttpClient() {} CCurlHttpClient() : _CurlStruct(NULL) {}
/// Connect to an http server (string by val is intended). If you specify a whole URL, an attempt will be made to determine the server. /// Connect to an http server (string by val is intended). If you specify a whole URL, an attempt will be made to determine the server.
bool connect(const std::string &server); bool connect(const std::string &server);

@ -323,7 +323,7 @@
<PARAMETER NAME="Array3" TYPE="string_array" VISIBLE="true" FILENAME="false" AUTONAME="Autoname-$Array$-$Array2$-" WIDGET_HEIGHT="100"> <PARAMETER NAME="Array3" TYPE="string_array" VISIBLE="true" FILENAME="false" AUTONAME="Autoname-$Array$-$Array2$-" WIDGET_HEIGHT="100">
</PARAMETER>--> </PARAMETER>-->
<PARAMETER NAME="ConstArray" TYPE="const_string_array" VISIBLE="true" FILENAME="true" WIDGET_HEIGHT="100" FILE_EXTENSION="flora" LOOKUP="true"> <PARAMETER NAME="ConstArray" TYPE="const_string_array" VISIBLE="true" FILENAME="true" WIDGET_HEIGHT="100" FILE_EXTENSION="flora" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/game_elem/plant/flora_template/forest"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/game_elem/plant/flora_template/forest"/>
<COMBO_VALUES CONTEXT_NAME="jungle"> <COMBO_VALUES CONTEXT_NAME="jungle">
<CONTEXT_VALUE VALUE="jungle0"/> <CONTEXT_VALUE VALUE="jungle0"/>
</COMBO_VALUES> </COMBO_VALUES>
@ -343,7 +343,7 @@
</PARAMETER> </PARAMETER>
<PARAMETER NAME="ConstArray2" TYPE="const_string_array" VISIBLE="true" FILENAME="true" WIDGET_HEIGHT="100" FILE_EXTENSION="flora" LOOKUP="true" AUTONAME="$ConstArray$"> <PARAMETER NAME="ConstArray2" TYPE="const_string_array" VISIBLE="true" FILENAME="true" WIDGET_HEIGHT="100" FILE_EXTENSION="flora" LOOKUP="true" AUTONAME="$ConstArray$">
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/game_elem/plant/flora_template/forest"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/game_elem/plant/flora_template/forest"/>
<COMBO_VALUES CONTEXT_NAME="jungle"> <COMBO_VALUES CONTEXT_NAME="jungle">
<CONTEXT_VALUE VALUE="jungle0"/> <CONTEXT_VALUE VALUE="jungle0"/>
</COMBO_VALUES> </COMBO_VALUES>

@ -323,7 +323,7 @@
<PARAMETER NAME="Array3" TYPE="string_array" VISIBLE="true" FILENAME="false" AUTONAME="Autoname-$Array$-$Array2$-" WIDGET_HEIGHT="100"> <PARAMETER NAME="Array3" TYPE="string_array" VISIBLE="true" FILENAME="false" AUTONAME="Autoname-$Array$-$Array2$-" WIDGET_HEIGHT="100">
</PARAMETER>--> </PARAMETER>-->
<PARAMETER NAME="ConstArray" TYPE="const_string_array" VISIBLE="true" FILENAME="true" WIDGET_HEIGHT="100" FILE_EXTENSION="flora" LOOKUP="true"> <PARAMETER NAME="ConstArray" TYPE="const_string_array" VISIBLE="true" FILENAME="true" WIDGET_HEIGHT="100" FILE_EXTENSION="flora" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/game_elem/plant/flora_template/forest"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/game_elem/plant/flora_template/forest"/>
<COMBO_VALUES CONTEXT_NAME="jungle"> <COMBO_VALUES CONTEXT_NAME="jungle">
<CONTEXT_VALUE VALUE="jungle0"/> <CONTEXT_VALUE VALUE="jungle0"/>
</COMBO_VALUES> </COMBO_VALUES>
@ -343,7 +343,7 @@
</PARAMETER> </PARAMETER>
<PARAMETER NAME="ConstArray2" TYPE="const_string_array" VISIBLE="true" FILENAME="true" WIDGET_HEIGHT="100" FILE_EXTENSION="flora" LOOKUP="true" AUTONAME="$ConstArray$"> <PARAMETER NAME="ConstArray2" TYPE="const_string_array" VISIBLE="true" FILENAME="true" WIDGET_HEIGHT="100" FILE_EXTENSION="flora" LOOKUP="true" AUTONAME="$ConstArray$">
<COMBO_FILES CONTEXT_NAME="default" PATH="l:/leveldesign/game_elem/plant/flora_template/forest"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/game_elem/plant/flora_template/forest"/>
<COMBO_VALUES CONTEXT_NAME="jungle"> <COMBO_VALUES CONTEXT_NAME="jungle">
<CONTEXT_VALUE VALUE="jungle0"/> <CONTEXT_VALUE VALUE="jungle0"/>
</COMBO_VALUES> </COMBO_VALUES>

@ -3830,9 +3830,15 @@ void CDriverD3D::CLightState::apply(CDriverD3D *driver)
void CDriverD3D::CRenderTargetState::apply(CDriverD3D *driver) void CDriverD3D::CRenderTargetState::apply(CDriverD3D *driver)
{ {
H_AUTO_D3D(CDriverD3D_CRenderTargetState); H_AUTO_D3D(CDriverD3D_CRenderTargetState);
driver->_DeviceInterface->SetRenderTarget (0, Target); nlassert(TargetOwned); // Can only apply once!
driver->_DeviceInterface->SetRenderTarget(0, Target);
driver->setupViewport(driver->_Viewport); driver->setupViewport(driver->_Viewport);
driver->setupScissor(driver->_Scissor); driver->setupScissor(driver->_Scissor);
if (TargetOwned)
{
Target->Release();
TargetOwned = false;
}
} }
// *************************************************************************** // ***************************************************************************

@ -1546,11 +1546,13 @@ public:
Texture = NULL; Texture = NULL;
Level = 0; Level = 0;
CubeFace = 0; CubeFace = 0;
TargetOwned = false;
} }
IDirect3DSurface9 *Target; IDirect3DSurface9 *Target;
ITexture *Texture; ITexture *Texture;
uint8 Level; uint8 Level;
uint8 CubeFace; uint8 CubeFace;
bool TargetOwned;
virtual void apply(CDriverD3D *driver); virtual void apply(CDriverD3D *driver);
}; };
@ -2076,10 +2078,17 @@ public:
NL_D3D_CACHE_TEST(CacheTest_RenderTarget, _RenderTarget.Target != target) NL_D3D_CACHE_TEST(CacheTest_RenderTarget, _RenderTarget.Target != target)
#endif // NL_D3D_USE_RENDER_STATE_CACHE #endif // NL_D3D_USE_RENDER_STATE_CACHE
{ {
if (_RenderTarget.TargetOwned)
{
nlassert(_RenderTarget.Target);
_RenderTarget.Target->Release();
}
_RenderTarget.Target = target; _RenderTarget.Target = target;
_RenderTarget.Texture = texture; _RenderTarget.Texture = texture;
_RenderTarget.Level = level; _RenderTarget.Level = level;
_RenderTarget.CubeFace = cubeFace; _RenderTarget.CubeFace = cubeFace;
_RenderTarget.TargetOwned = target;
target->AddRef();
touchRenderVariable (&_RenderTarget); touchRenderVariable (&_RenderTarget);

@ -706,9 +706,13 @@ bool CDriverD3D::setupMaterial(CMaterial &mat)
// Set the texture states // Set the texture states
if (text || (stage == 0)) if (text || (stage == 0))
{ {
// Doesn't use a pixel shader ? Set the textures stages if (matShader == CMaterial::Program)
if (pShader->PixelShader == NULL)
{ {
// Do nothing for user pixel shader
}
else if (!pShader->PixelShader)
{
// Doesn't use a pixel shader ? Set the textures stages
if (pShader->RGBPipe[stage]) if (pShader->RGBPipe[stage])
{ {
setTextureState (stage, D3DTSS_COLOROP, pShader->ColorOp[stage]); setTextureState (stage, D3DTSS_COLOROP, pShader->ColorOp[stage]);
@ -1145,7 +1149,7 @@ bool CDriverD3D::setupMaterial(CMaterial &mat)
} }
break; break;
case CMaterial::Cloud: case CMaterial::Cloud:
{ {
H_AUTO_D3D(CDriverD3D_setupMaterial_setupCloudShader) H_AUTO_D3D(CDriverD3D_setupMaterial_setupCloudShader)
activeShader (&_ShaderCloud); activeShader (&_ShaderCloud);
@ -1167,7 +1171,7 @@ bool CDriverD3D::setupMaterial(CMaterial &mat)
return false; return false;
} }
break; break;
case CMaterial::Water: case CMaterial::Water:
{ {
H_AUTO_D3D(CDriverD3D_setupMaterial_setupWaterShader) H_AUTO_D3D(CDriverD3D_setupMaterial_setupWaterShader)
activeShader(mat.getTexture(3) ? &_ShaderWaterDiffuse : &_ShaderWaterNoDiffuse); activeShader(mat.getTexture(3) ? &_ShaderWaterDiffuse : &_ShaderWaterNoDiffuse);
@ -1296,7 +1300,14 @@ bool CDriverD3D::setupMaterial(CMaterial &mat)
} }
} }
} }
// CMaterial::Water break; // CMaterial::Water
case CMaterial::Program:
{
H_AUTO_D3D(CDriverD3D_setupMaterial_setupProgramshader)
// No material shader
activeShader(NULL);
}
break;
} }
// New material setuped // New material setuped

@ -1084,6 +1084,7 @@ void CDriverD3D::swapTextureHandle(ITexture &tex0, ITexture &tex1)
swap(t0->Height, t1->Height); swap(t0->Height, t1->Height);
swap(t0->SrcCompressed, t1->SrcCompressed); swap(t0->SrcCompressed, t1->SrcCompressed);
swap(t0->IsCube, t1->IsCube); swap(t0->IsCube, t1->IsCube);
swap(t0->RenderTarget, t1->RenderTarget);
swap(t0->Levels, t1->Levels); swap(t0->Levels, t1->Levels);
swap(t0->FirstMipMap, t1->FirstMipMap); swap(t0->FirstMipMap, t1->FirstMipMap);
swap(t0->TextureMemory, t1->TextureMemory); swap(t0->TextureMemory, t1->TextureMemory);

@ -246,6 +246,7 @@ void CFXAA::applyEffect()
// create render target // create render target
CTextureUser *otherRenderTarget = m_Driver->getRenderTargetManager().getRenderTarget(width, height, mode2D); CTextureUser *otherRenderTarget = m_Driver->getRenderTargetManager().getRenderTarget(width, height, mode2D);
nlassert(otherRenderTarget);
// swap render target // swap render target
CTextureUser texNull; CTextureUser texNull;

@ -979,6 +979,9 @@ void CLodCharacterManager::addTextureCompute(CLodCharacterInstance &instance,
// get lookup ptr. // get lookup ptr.
nlassert(lodTexture.Texture.size()==NL3D_CLOD_TEXT_SIZE); nlassert(lodTexture.Texture.size()==NL3D_CLOD_TEXT_SIZE);
if (lodTexture.Texture.size() < NL3D_CLOD_TEXT_SIZE)
return;
const CLodCharacterTexture::CTUVQ *lookUpPtr= &lodTexture.Texture[0]; const CLodCharacterTexture::CTUVQ *lookUpPtr= &lodTexture.Texture[0];
// apply the lodTexture, taking only better quality (ie nearer 0) // apply the lodTexture, taking only better quality (ie nearer 0)

@ -143,6 +143,9 @@ namespace NLMISC
NL_CT_DEBUG("CoTask : task %p start func called", task); NL_CT_DEBUG("CoTask : task %p start func called", task);
// Attach exception handler
attachExceptionHandler();
try try
{ {
// run the task // run the task
@ -151,6 +154,7 @@ namespace NLMISC
catch(...) catch(...)
{ {
nlwarning("CCoTask::startFunc : the task has generated an unhandled exeption and will terminate"); nlwarning("CCoTask::startFunc : the task has generated an unhandled exeption and will terminate");
NLMISC_BREAKPOINT;
} }
task->_Finished = true; task->_Finished = true;

@ -1157,6 +1157,15 @@ void destroyDebug()
} }
} }
void attachExceptionHandler()
{
#ifndef NL_COMP_MINGW
# ifdef NL_OS_WINDOWS
_set_se_translator(exceptionTranslator);
# endif // NL_OS_WINDOWS
#endif //!NL_COMP_MINGW
}
void createDebug (const char *logPath, bool logInFile, bool eraseLastLog) void createDebug (const char *logPath, bool logInFile, bool eraseLastLog)
{ {
// Do some basic compiler time check on type size // Do some basic compiler time check on type size

@ -171,15 +171,16 @@ bool CIXml::init (IStream &stream)
// Try binary mode // Try binary mode
if (_TryBinaryMode) if (_TryBinaryMode)
{ {
char header[4]; char header[5];
header[0] = buffer[0]; header[0] = buffer[0];
header[1] = buffer[1]; header[1] = buffer[1];
header[2] = buffer[2]; header[2] = buffer[2];
header[3] = buffer[3]; header[3] = buffer[3];
header[4] = '\0';
toLower(header); toLower(header);
// Does it a xml stream ? // Does it a xml stream ?
if (!strcmp(header, "<?xm")) if (strcmp(header, "<?xm"))
{ {
// NO ! Go in binary mode // NO ! Go in binary mode
_BinaryStream = &stream; _BinaryStream = &stream;

@ -67,6 +67,9 @@ static unsigned long __stdcall ProxyFunc (void *arg)
// Set the thread pointer in TLS memory // Set the thread pointer in TLS memory
nlverify (TlsSetValue (TLSThreadPointer, (void*)parent) != 0); nlverify (TlsSetValue (TLSThreadPointer, (void*)parent) != 0);
// Attach exception handler
attachExceptionHandler();
// Run the thread // Run the thread
parent->Runnable->run(); parent->Runnable->run();

@ -56,18 +56,12 @@ IAudioDecoder::~IAudioDecoder()
IAudioDecoder *IAudioDecoder::createAudioDecoder(const std::string &filepath, bool async, bool loop) IAudioDecoder *IAudioDecoder::createAudioDecoder(const std::string &filepath, bool async, bool loop)
{ {
std::string lookup = CPath::lookup(filepath, false);
if (lookup.empty())
{
nlwarning("Music file %s does not exist!", filepath.c_str());
return NULL;
}
std::string type = CFile::getExtension(filepath); std::string type = CFile::getExtension(filepath);
CIFile *ifile = new CIFile(); CIFile *ifile = new CIFile();
ifile->setCacheFileOnOpen(!async); ifile->setCacheFileOnOpen(!async);
ifile->allowBNPCacheFileOnOpen(!async); ifile->allowBNPCacheFileOnOpen(!async);
ifile->open(lookup); ifile->open(filepath);
IAudioDecoder *mb = createAudioDecoder(type, ifile, loop); IAudioDecoder *mb = createAudioDecoder(type, ifile, loop);

@ -147,7 +147,7 @@ void CMusicChannelFader::updateVolume()
*/ */
bool CMusicChannelFader::play(const std::string &filepath, uint xFadeTime, bool async, bool loop) bool CMusicChannelFader::play(const std::string &filepath, uint xFadeTime, bool async, bool loop)
{ {
stop(xFadeTime); bool stopped = stop(xFadeTime);
// Find the next best free music channel // Find the next best free music channel
uint nextFader = _MaxMusicFader; uint nextFader = _MaxMusicFader;
@ -164,7 +164,7 @@ bool CMusicChannelFader::play(const std::string &filepath, uint xFadeTime, bool
// Play a song in it :) // Play a song in it :)
_CMusicFader &fader = _MusicFader[_ActiveMusicFader]; _CMusicFader &fader = _MusicFader[_ActiveMusicFader];
if (xFadeTime) fader.fadeIn(xFadeTime); if (xFadeTime && !stopped) fader.fadeIn(xFadeTime); // only fade in when fading out
else fader.XFadeVolume = 1.0f; else fader.XFadeVolume = 1.0f;
fader.Playing = true; fader.Playing = true;
updateVolume(); // make sure at ok volume to start :) updateVolume(); // make sure at ok volume to start :)
@ -173,12 +173,17 @@ bool CMusicChannelFader::play(const std::string &filepath, uint xFadeTime, bool
} }
/// Stop the music previously loaded and played (the Memory is also freed) /// Stop the music previously loaded and played (the Memory is also freed)
void CMusicChannelFader::stop(uint xFadeTime) bool CMusicChannelFader::stop(uint xFadeTime)
{ {
if (xFadeTime) if (xFadeTime)
{ {
bool stopped = true;
for (uint i = 0; i < _MaxMusicFader; ++i) if (_MusicFader[i].Playing) for (uint i = 0; i < _MaxMusicFader; ++i) if (_MusicFader[i].Playing)
{
_MusicFader[i].fadeOut(xFadeTime); _MusicFader[i].fadeOut(xFadeTime);
stopped = false; // fading
}
return stopped;
} }
else else
{ {
@ -188,6 +193,7 @@ void CMusicChannelFader::stop(uint xFadeTime)
_MusicFader[i].Fade = false; _MusicFader[i].Fade = false;
_MusicFader[i].Playing = false; _MusicFader[i].Playing = false;
} }
return true;
} }
} }

@ -108,6 +108,13 @@ void CStreamFileSource::play()
//{ //{
// nlwarning("Already waiting for play"); // nlwarning("Already waiting for play");
//} //}
std::string filepath = getStreamFileSound()->getFilePath();
m_LookupPath = NLMISC::CPath::lookup(filepath, false, false);
if (m_LookupPath.empty())
{
nlwarning("Music file %s does not exist!", filepath.c_str());
return;
}
if (!getStreamFileSound()->getAsync()) if (!getStreamFileSound()->getAsync())
{ {
if (!prepareDecoder()) if (!prepareDecoder())
@ -272,7 +279,8 @@ bool CStreamFileSource::prepareDecoder()
if (!m_AudioDecoder) if (!m_AudioDecoder)
{ {
// load the file // load the file
m_AudioDecoder = IAudioDecoder::createAudioDecoder(getStreamFileSound()->getFilePath(), getStreamFileSound()->getAsync(), getStreamFileSound()->getLooping()); nlassert(!m_LookupPath.empty());
m_AudioDecoder = IAudioDecoder::createAudioDecoder(m_LookupPath, getStreamFileSound()->getAsync(), getStreamFileSound()->getLooping());
if (!m_AudioDecoder) if (!m_AudioDecoder)
{ {
nlwarning("Failed to create IAudioDecoder, likely invalid format"); nlwarning("Failed to create IAudioDecoder, likely invalid format");

@ -192,6 +192,7 @@ bool CCurlHttpClient::receive(string &res, bool verbose)
void CCurlHttpClient::disconnect() void CCurlHttpClient::disconnect()
{ {
curl_easy_cleanup(_Curl); curl_easy_cleanup(_Curl);
_CurlStruct = NULL;
curl_global_cleanup(); curl_global_cleanup();
} }

@ -135,6 +135,9 @@ bool CLodTextureBuilder::computeTexture(const CMeshMRM &meshMRM, NL3D::CLodCha
const uint8 *srcPos= (const uint8*)vba.getVertexCoordPointer(); const uint8 *srcPos= (const uint8*)vba.getVertexCoordPointer();
const uint8 *srcNormal= (const uint8*)vba.getNormalCoordPointer(); const uint8 *srcNormal= (const uint8*)vba.getNormalCoordPointer();
const uint8 *srcUV= (const uint8*)vba.getTexCoordPointer(); const uint8 *srcUV= (const uint8*)vba.getTexCoordPointer();
nlassert(srcPos);
nlassert(srcNormal);
nlassert(srcUV);
uint vertexSize = VB.getVertexSize(); uint vertexSize = VB.getVertexSize();
// For the more precise lod // For the more precise lod
uint lodId= meshMRM.getNbLod()-1; uint lodId= meshMRM.getNbLod()-1;

@ -22,4 +22,4 @@ database_server =
client_directory = R:/code/snowballs2/client/data/3d client_directory = R:/code/snowballs2/client/data/3d
# DFN directories # DFN directories
dfn_directory = L:\leveldesign\DFN dfn_directory = R:\leveldesign\DFN

@ -7,7 +7,7 @@ BanksPath = "../smallbank/smallbank/";
Bank = "rbank_bank_name"; Bank = "rbank_bank_name";
ZoneExt = ".zonew"; ZoneExt = ".zonew";
IGBoxes = "bbox/temp.bbox"; IGBoxes = "bbox/temp.bbox";
LevelDesignWorldPath = "l:/leveldesign/World"; LevelDesignWorldPath = "R:/leveldesign/world";
IgLandPath = "../ig/ig_land"; IgLandPath = "../ig/ig_land";
IgVillagePath = "../ig/ig_other"; IgVillagePath = "../ig/ig_other";

@ -7,7 +7,7 @@ BanksPath = "../smallbank/smallbank/";
Bank = "rbank_bank_name"; Bank = "rbank_bank_name";
ZoneExt = ".zonew"; ZoneExt = ".zonew";
IGBoxes = "bbox/temp.bbox"; IGBoxes = "bbox/temp.bbox";
LevelDesignWorldPath = "l:/leveldesign/World"; LevelDesignWorldPath = "R:/leveldesign/world";
IgLandPath = "../ig/ig_land"; IgLandPath = "../ig/ig_land";
IgVillagePath = "../ig/ig_other"; IgVillagePath = "../ig/ig_other";

@ -256,9 +256,9 @@ int main(int nNbArg, char**ppArgs)
printf ("InputIGDir = \"ig_land_max\";\n"); printf ("InputIGDir = \"ig_land_max\";\n");
printf ("OutputIGDir = \"ig_land_max_elev\";\n"); printf ("OutputIGDir = \"ig_land_max_elev\";\n");
printf ("CellSize = 160.0;\n"); printf ("CellSize = 160.0;\n");
printf ("HeightMapFile1 = \"w:/database/landscape/ligo/jungle/big.tga\";\n"); printf ("HeightMapFile1 = \"R:/graphics/landscape/ligo/jungle/big.tga\";\n");
printf ("ZFactor1 = 1.0;\n"); printf ("ZFactor1 = 1.0;\n");
printf ("HeightMapFile2 = \"w:/database/landscape/ligo/jungle/noise.tga\";\n"); printf ("HeightMapFile2 = \"R:/graphics/landscape/ligo/jungle/noise.tga\";\n");
printf ("ZFactor2 = 0.5;\n"); printf ("ZFactor2 = 0.5;\n");
printf ("LandFile = \"w:/matis.land\";\n"); printf ("LandFile = \"w:/matis.land\";\n");

@ -3,29 +3,29 @@
// your searhc pathes, (where to find textures, shapes, tiles, zones ...) // your searhc pathes, (where to find textures, shapes, tiles, zones ...)
search_pathes = search_pathes =
{ {
"w:\database\stuff\fyros\agents\_textures\actors", "R:\graphics\stuff\fyros\agents\_textures\actors",
"w:\database\stuff\tryker\agents\_textures\actors", "R:\graphics\stuff\tryker\agents\_textures\actors",
"w:\database\stuff\matis\agents\_textures\actors", "R:\graphics\stuff\matis\agents\_textures\actors",
"w:\database\stuff\zorai\agents\_textures\actors", "R:\graphics\stuff\zorai\agents\_textures\actors",
"w:\database\stuff\fyros\agents\_textures\monster", "R:\graphics\stuff\fyros\agents\_textures\monster",
"w:\database\stuff\tryker\agents\_textures\monster", "R:\graphics\stuff\tryker\agents\_textures\monster",
"w:\database\stuff\matis\agents\_textures\monster", "R:\graphics\stuff\matis\agents\_textures\monster",
"w:\database\stuff\zorai\agents\_textures\monster", "R:\graphics\stuff\zorai\agents\_textures\monster",
"w:\database\stuff\fyros\agents\_textures\accessories", "R:\graphics\stuff\fyros\agents\_textures\accessories",
"w:\database\stuff\tryker\agents\_textures\accessories", "R:\graphics\stuff\tryker\agents\_textures\accessories",
"w:\database\stuff\matis\agents\_textures\accessories", "R:\graphics\stuff\matis\agents\_textures\accessories",
"w:\database\stuff\zorai\agents\_textures\accessories", "R:\graphics\stuff\zorai\agents\_textures\accessories",
"W:\Database\Stuff\Matis\Decors\_textures\batiments", "R:\graphics\Stuff\Matis\Decors\_textures\batiments",
"W:\Database\Stuff\zorai\Decors\_textures\batiments", "R:\graphics\Stuff\zorai\Decors\_textures\batiments",
"W:\Database\Stuff\tryker\Decors\_textures\batiments", "R:\graphics\Stuff\tryker\Decors\_textures\batiments",
"W:\Database\Stuff\fyros\Decors\_textures\batiments", "R:\graphics\Stuff\fyros\Decors\_textures\batiments",
"W:\Database\Stuff\fyros\Decors\_textures", "R:\graphics\Stuff\fyros\Decors\_textures",
"W:\Database\SFX\maps", "R:\graphics\SFX\maps",
"W:\Database\SFX\old_shapes", "R:\graphics\SFX\old_shapes",
"W:\Database\Stuff\Primes_Racines\Agents\_textures\Monster", "R:\graphics\Stuff\Primes_Racines\Agents\_textures\Monster",
"W:\Database\Stuff\Jungle\Agents\_textures\Monster", "R:\graphics\Stuff\Jungle\Agents\_textures\Monster",
"W:\Database\Stuff\Goo\Agents\_textures\monster", "R:\graphics\Stuff\Goo\Agents\_textures\monster",
"W:\Database\Stuff\caravan\Agents\_textures\Actors", "R:\graphics\Stuff\caravan\Agents\_textures\Actors",
}; };
recursive_search_pathes= recursive_search_pathes=

@ -427,7 +427,7 @@ void doFileInitialize(const std::string &filePath)
KnownFileCache[NLMISC::CFile::getFilename(filePath)] = standardizePath(filePath, false); KnownFileCache[NLMISC::CFile::getFilename(filePath)] = standardizePath(filePath, false);
} }
// maxRewritePaths W:/database/interfaces/anims_max // maxRewritePaths R:/graphics/interfaces/anims_max
void doDirectoryInitialize(const std::string &directoryPath) void doDirectoryInitialize(const std::string &directoryPath)
{ {

@ -21,6 +21,7 @@
#define NLMAX_STRING_COMMON_H #define NLMAX_STRING_COMMON_H
#include <nel/misc/ucstring.h> #include <nel/misc/ucstring.h>
#include <nel/misc/string_common.h>
#if (MAX_VERSION_MAJOR < 15) #if (MAX_VERSION_MAJOR < 15)
#define GET_OBJECT_NAME_CONST #define GET_OBJECT_NAME_CONST
@ -37,9 +38,7 @@ static TSTR MaxTStrFromUtf8(const std::string &src)
{ {
TSTR dst; TSTR dst;
#if (MAX_VERSION_MAJOR < 15) #if (MAX_VERSION_MAJOR < 15)
ucstring uc; dst = nlUtf8ToTStr(src);
uc.fromUtf8(src);
dst = (const mwchar_t *)uc.c_str();
#else #else
dst.FromUTF8(src.c_str()); dst.FromUTF8(src.c_str());
#endif #endif
@ -49,14 +48,7 @@ static TSTR MaxTStrFromUtf8(const std::string &src)
static std::string MaxTStrToUtf8(const TSTR& src) static std::string MaxTStrToUtf8(const TSTR& src)
{ {
#if (MAX_VERSION_MAJOR < 15) #if (MAX_VERSION_MAJOR < 15)
#ifdef _UNICODE return NLMISC::tStrToUtf8(src.data());
ucstring uc(src.data());
return uc.toUtf8();
#else
WStr ws = src;
ucstring uc((const ucchar *)ws.data());
return uc.toUtf8();
#endif
#else #else
return src.ToUTF8().data(); return src.ToUTF8().data();
#endif #endif
@ -64,13 +56,7 @@ static std::string MaxTStrToUtf8(const TSTR& src)
static std::string MCharStrToUtf8(const MCHAR *src) static std::string MCharStrToUtf8(const MCHAR *src)
{ {
#ifdef _UNICODE return NLMISC::tStrToUtf8(src);
ucstring uc((const ucchar *)src);
return uc.toUtf8();
#else
ucstring uc((const ucchar *)WStr(src).data());
return uc.toUtf8();
#endif
} }
#endif /* #ifndef NLMAX_STRING_COMMON_H */ #endif /* #ifndef NLMAX_STRING_COMMON_H */

@ -1271,7 +1271,7 @@ Value* get_patch_vertex_cf (Value** arg_list, int count)
// Check to see if the arguments match up to what we expect // Check to see if the arguments match up to what we expect
// We want to use 'TurnAllTexturesOn <object to use>' // We want to use 'TurnAllTexturesOn <object to use>'
const MCHAR *message= _M("NeLGetPatchVertex [NeLPatchMesh] [PatchId] [VertexId]"); MCHAR *message= _M("NeLGetPatchVertex [NeLPatchMesh] [PatchId] [VertexId]");
type_check(arg_list[0], MAXNode, message); type_check(arg_list[0], MAXNode, message);
type_check(arg_list[1], Integer, message); type_check(arg_list[1], Integer, message);
type_check(arg_list[2], Integer, message); type_check(arg_list[2], Integer, message);

@ -4,7 +4,7 @@ NEL3D_APPDATA_INTERFACE_FILE = 1423062700
-- Allocate 20 Me for the script -- Allocate 20 Me for the script
heapSize += 30000000 heapSize += 30000000
nlErrorFilename = "W:/database/timings.log" nlErrorFilename = "R:/graphics/timings.log"
nlErrorStream = openFile nlErrorFilename mode:"w" nlErrorStream = openFile nlErrorFilename mode:"w"
if nlErrorStream == undefined then if nlErrorStream == undefined then
nlErrorStream = createFile nlErrorFilename nlErrorStream = createFile nlErrorFilename
@ -171,7 +171,7 @@ rollout assets_resave_rollout "Properties"
ProgressText.text = "In directory "+currentDirectory+", compute file \"" + (getFilenameFile file) + "\"" ProgressText.text = "In directory "+currentDirectory+", compute file \"" + (getFilenameFile file) + "\""
Progress.value = i*100/files.count Progress.value = i*100/files.count
if (UseTag.checked == false) or ((NeLTestFileDate file "W:/database/conversion.tag") == true) then if (UseTag.checked == false) or ((NeLTestFileDate file "R:/graphics/conversion.tag") == true) then
( (
resetMAXFile #noprompt resetMAXFile #noprompt

@ -4,7 +4,7 @@ NEL3D_APPDATA_INTERFACE_FILE = 1423062700
-- Allocate 20 Me for the script -- Allocate 20 Me for the script
heapSize += 15000000 heapSize += 15000000
nlErrorFilename = "W:/database/conversion.log" nlErrorFilename = "R:/graphics/conversion.log"
nlErrorStream = openFile nlErrorFilename mode:"w" nlErrorStream = openFile nlErrorFilename mode:"w"
if nlErrorStream == undefined then if nlErrorStream == undefined then
nlErrorStream = createFile nlErrorFilename nlErrorStream = createFile nlErrorFilename
@ -447,7 +447,7 @@ rollout assets_png_rollout "Properties"
ProgressText.text = "In directory "+currentDirectory+", compute file \"" + (getFilenameFile file) + "\"" ProgressText.text = "In directory "+currentDirectory+", compute file \"" + (getFilenameFile file) + "\""
Progress.value = i*100/files.count Progress.value = i*100/files.count
if (UseTag.checked == false) or ((NeLTestFileDate file "W:/database/conversion.tag") == true) then if (UseTag.checked == false) or ((NeLTestFileDate file "R:/graphics/conversion.tag") == true) then
( (
resetMAXFile #noprompt resetMAXFile #noprompt

@ -4,7 +4,7 @@ NEL3D_APPDATA_INTERFACE_FILE = 1423062700
-- Allocate 20 Me for the script -- Allocate 20 Me for the script
heapSize += 15000000 heapSize += 15000000
nlErrorFilename = "W:/database/conversion.log" nlErrorFilename = "R:/graphics/conversion.log"
nlErrorStream = openFile nlErrorFilename mode:"w" nlErrorStream = openFile nlErrorFilename mode:"w"
if nlErrorStream == undefined then if nlErrorStream == undefined then
nlErrorStream = createFile nlErrorFilename nlErrorStream = createFile nlErrorFilename
@ -230,7 +230,7 @@ rollout assets_ps_rollout "Properties"
ProgressText.text = "In directory "+currentDirectory+", compute file \"" + (getFilenameFile file) + "\"" ProgressText.text = "In directory "+currentDirectory+", compute file \"" + (getFilenameFile file) + "\""
Progress.value = i*100/files.count Progress.value = i*100/files.count
if (UseTag.checked == false) or ((NeLTestFileDate file "W:/database/conversion.tag") == true) then if (UseTag.checked == false) or ((NeLTestFileDate file "R:/graphics/conversion.tag") == true) then
( (
resetMAXFile #noprompt resetMAXFile #noprompt

@ -4,7 +4,7 @@ NEL3D_APPDATA_INTERFACE_FILE = 1423062700
-- Allocate 20 Me for the script -- Allocate 20 Me for the script
heapSize += 15000000 heapSize += 15000000
nlErrorFilename = "W:/database/conversion.log" nlErrorFilename = "R:/graphics/conversion.log"
nlErrorStream = openFile nlErrorFilename mode:"w" nlErrorStream = openFile nlErrorFilename mode:"w"
if nlErrorStream == undefined then if nlErrorStream == undefined then
nlErrorStream = createFile nlErrorFilename nlErrorStream = createFile nlErrorFilename
@ -171,7 +171,7 @@ rollout assets_resave_rollout "Properties"
ProgressText.text = "In directory "+currentDirectory+", compute file \"" + (getFilenameFile file) + "\"" ProgressText.text = "In directory "+currentDirectory+", compute file \"" + (getFilenameFile file) + "\""
Progress.value = i*100/files.count Progress.value = i*100/files.count
if (UseTag.checked == false) or ((NeLTestFileDate file "W:/database/conversion.tag") == true) then if (UseTag.checked == false) or ((NeLTestFileDate file "R:/graphics/conversion.tag") == true) then
( (
resetMAXFile #noprompt resetMAXFile #noprompt

@ -4,7 +4,7 @@ NEL3D_APPDATA_INTERFACE_FILE = 1423062700
-- Allocate 20 Me for the script -- Allocate 20 Me for the script
heapSize += 15000000 heapSize += 15000000
nlErrorFilename = "W:/database/conversion.log" nlErrorFilename = "R:/graphics/conversion.log"
nlErrorStream = openFile nlErrorFilename mode:"w" nlErrorStream = openFile nlErrorFilename mode:"w"
if nlErrorStream == undefined then if nlErrorStream == undefined then
nlErrorStream = createFile nlErrorFilename nlErrorStream = createFile nlErrorFilename
@ -171,7 +171,7 @@ rollout assets_resave_rollout "Properties"
ProgressText.text = "In directory "+currentDirectory+", compute file \"" + (getFilenameFile file) + "\"" ProgressText.text = "In directory "+currentDirectory+", compute file \"" + (getFilenameFile file) + "\""
Progress.value = i*100/files.count Progress.value = i*100/files.count
if (UseTag.checked == false) or ((NeLTestFileDate file "W:/database/conversion.tag") == true) then if (UseTag.checked == false) or ((NeLTestFileDate file "R:/graphics/conversion.tag") == true) then
( (
resetMAXFile #noprompt resetMAXFile #noprompt

@ -34,12 +34,12 @@ struct metazone (name, posMin, posMax)
-- Trykers : X: [194 - 215] Y: [DV - EW] Generate : X: [96 - 115] Y: [-215 - -215+22] -- Trykers : X: [194 - 215] Y: [DV - EW] Generate : X: [96 - 115] Y: [-215 - -215+22]
-- Parameters, uppercase for cell position -- Parameters, uppercase for cell position
old_zone_directory_fyros = "w:/database/landscape/zones/fyros" old_zone_directory_fyros = "R:/graphics/landscape/zones/fyros"
ligo_directory_fyros = "w:/database/landscape/ligo/desert" ligo_directory_fyros = "R:/graphics/landscape/ligo/desert"
metazones_fyros = #(metazone "1_MZ_city" "152_EK" "155_EO", metazone "bridge_a" "158_EM" "158_EO", metazone "brandon" "164_ES" "165_ET", metazone "ecorce_A" "155_EI" "157_EJ") metazones_fyros = #(metazone "1_MZ_city" "152_EK" "155_EO", metazone "bridge_a" "158_EM" "158_EO", metazone "brandon" "164_ES" "165_ET", metazone "ecorce_A" "155_EI" "157_EJ")
old_zone_directory_tryker = "w:/database/landscape/zones/tryker" old_zone_directory_tryker = "R:/graphics/landscape/zones/tryker"
ligo_directory_tryker = "r:/database/landscape/ligo/lacustre" ligo_directory_tryker = "R:/graphics/landscape/ligo/lacustre"
metazones_tryker = #(metazone "village_a" "205_EC" "208_EE", metazone "village_b" "199_EH" "200_EI", metazone "village_c" "206_EH" "208_EJ", metazone "village_d" "206_DS" "208_DU") metazones_tryker = #(metazone "village_a" "205_EC" "208_EE", metazone "village_b" "199_EH" "200_EI", metazone "village_c" "206_EH" "208_EJ", metazone "village_d" "206_DS" "208_DU")
cell_size = 160.0 cell_size = 160.0

@ -5,8 +5,8 @@ size_x = 7680-320
from_y = -25600+160 from_y = -25600+160
size_y = 5120-320 size_y = 5120-320
targetdir = "W:/database/landscape/ligo/asteroids/max" targetdir = "R:/graphics/landscape/ligo/asteroids/max"
snapshotdir = "W:/database/landscape/ligo/asteroids/zonebitmaps" snapshotdir = "R:/graphics/landscape/ligo/asteroids/zonebitmaps"
zonename = "anne" zonename = "anne"
resumeonly = true resumeonly = true

@ -66,7 +66,7 @@ if not args.noconf:
try: try:
ToolDirectories ToolDirectories
except NameError: except NameError:
ToolDirectories = [ 'R:/build/dev/bin/Release', 'D:/libraries/external/bin' ] ToolDirectories = [ 'R:/build/dev/bin/Release', 'R:/external/bin' ]
try: try:
ToolSuffix ToolSuffix
except NameError: except NameError:
@ -78,63 +78,63 @@ if not args.noconf:
try: try:
WorkspaceDirectory WorkspaceDirectory
except NameError: except NameError:
WorkspaceDirectory = "L:/workspace" WorkspaceDirectory = "R:/leveldesign/workspace"
try: try:
DatabaseDirectory DatabaseDirectory
except NameError: except NameError:
DatabaseDirectory = "W:/database" DatabaseDirectory = "R:/graphics"
try: try:
SoundDirectory SoundDirectory
except NameError: except NameError:
SoundDirectory = "V:" SoundDirectory = "R:/sound"
try: try:
SoundDfnDirectory SoundDfnDirectory
except NameError: except NameError:
SoundDfnDirectory = "V:/DFN" SoundDfnDirectory = "R:/sound/DFN"
try: try:
ExportBuildDirectory ExportBuildDirectory
except NameError: except NameError:
ExportBuildDirectory = "T:/export" ExportBuildDirectory = "R:/pipeline/export"
try: try:
InstallDirectory InstallDirectory
except NameError: except NameError:
InstallDirectory = "T:/install" InstallDirectory = "R:/pipeline/install"
try: try:
ClientDevDirectory ClientDevDirectory
except NameError: except NameError:
ClientDevDirectory = "T:/client_dev" ClientDevDirectory = "R:/pipeline/client_dev"
try: try:
ClientPatchDirectory ClientPatchDirectory
except NameError: except NameError:
ClientPatchDirectory = "T:/client_patch" ClientPatchDirectory = "R:/pipeline/client_patch"
try: try:
ClientInstallDirectory ClientInstallDirectory
except NameError: except NameError:
ClientInstallDirectory = "T:/client_install" ClientInstallDirectory = "R:/pipeline/client_install"
try: try:
ShardInstallDirectory ShardInstallDirectory
except NameError: except NameError:
ShardInstallDirectory = "T:/shard" ShardInstallDirectory = "R:/pipeline/shard"
try: try:
WorldEditInstallDirectory WorldEditInstallDirectory
except NameError: except NameError:
WorldEditInstallDirectory = "T:/worldedit" WorldEditInstallDirectory = "R:/pipeline/worldedit"
try: try:
LeveldesignDirectory LeveldesignDirectory
except NameError: except NameError:
LeveldesignDirectory = "L:/leveldesign" LeveldesignDirectory = "R:/leveldesign"
try: try:
LeveldesignDfnDirectory LeveldesignDfnDirectory
except NameError: except NameError:
LeveldesignDfnDirectory = "L:/leveldesign/DFN" LeveldesignDfnDirectory = "R:/leveldesign/DFN"
try: try:
LeveldesignWorldDirectory LeveldesignWorldDirectory
except NameError: except NameError:
LeveldesignWorldDirectory = "L:/leveldesign/world" LeveldesignWorldDirectory = "R:/leveldesign/world"
try: try:
PrimitivesDirectory PrimitivesDirectory
except NameError: except NameError:
PrimitivesDirectory = "L:/primitives" PrimitivesDirectory = "R:/leveldesign/primitives"
try: try:
GamedevDirectory GamedevDirectory
except NameError: except NameError:
@ -150,15 +150,15 @@ if not args.noconf:
try: try:
LeveldesignDataShardDirectory LeveldesignDataShardDirectory
except NameError: except NameError:
LeveldesignDataShardDirectory = "L:/shard" LeveldesignDataShardDirectory = "R:/leveldesign/shard"
try: try:
LeveldesignDataCommonDirectory LeveldesignDataCommonDirectory
except NameError: except NameError:
LeveldesignDataCommonDirectory = "L:/common" LeveldesignDataCommonDirectory = "R:/leveldesign/common"
try: try:
TranslationDirectory TranslationDirectory
except NameError: except NameError:
TranslationDirectory = "L:/translation" TranslationDirectory = "R:/leveldesign/translation"
try: try:
WorldEditorFilesDirectory WorldEditorFilesDirectory
except NameError: except NameError:
@ -166,27 +166,27 @@ if not args.noconf:
try: try:
WindowsExeDllCfgDirectories WindowsExeDllCfgDirectories
except NameError: except NameError:
WindowsExeDllCfgDirectories = [ 'C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/redist/x86', 'D:/libraries/external/bin', 'R:/build/dev/bin/Release', 'R:/code/ryzom/client', 'R:/code/nel/lib', 'R:/code/ryzom/bin', 'R:/code/ryzom/tools/client/client_config/bin' ] WindowsExeDllCfgDirectories = [ 'C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/redist/x86', 'R:/external/bin', 'R:/build/dev/bin/Release', 'R:/code/ryzom/client', 'R:/code/nel/lib', 'R:/code/ryzom/bin', 'R:/code/ryzom/tools/client/client_config/bin' ]
try: try:
LinuxServiceExecutableDirectory LinuxServiceExecutableDirectory
except NameError: except NameError:
LinuxServiceExecutableDirectory = "S:/devls_x64/bin" LinuxServiceExecutableDirectory = "R:/build/gcc_server/bin"
try: try:
LinuxClientExecutableDirectory LinuxClientExecutableDirectory
except NameError: except NameError:
LinuxClientExecutableDirectory = "S:/devl_x64/bin" LinuxClientExecutableDirectory = "R:/build/gcc_client/bin"
try: try:
PatchmanCfgAdminDirectory PatchmanCfgAdminDirectory
except NameError: except NameError:
PatchmanCfgAdminDirectory = "R:/code/ryzom/server/patchman_cfg/admin_install" PatchmanCfgAdminDirectory = "R:/patchman/admin_install"
try: try:
PatchmanCfgDefaultDirectory PatchmanCfgDefaultDirectory
except NameError: except NameError:
PatchmanCfgDefaultDirectory = "R:/code/ryzom/server/patchman_cfg/default" PatchmanCfgDefaultDirectory = "R:/patchman/default"
try: try:
PatchmanBridgeServerDirectory PatchmanBridgeServerDirectory
except NameError: except NameError:
PatchmanBridgeServerDirectory = "T:/bridge_server" PatchmanBridgeServerDirectory = "R:/pipeline/bridge_server"
try: try:
SignToolExecutable SignToolExecutable
except NameError: except NameError:

@ -1,5 +1,5 @@
MainDirectory = "w:\database"; MainDirectory = "R:\graphics";
MirrorDirectory = "q:\database"; MirrorDirectory = "Q:\graphics";
LogDirectory = ""; LogDirectory = "";
BinaryCompare = "false"; BinaryCompare = "false";
IgnoreDirectory = ""; IgnoreDirectory = "";

@ -72,7 +72,7 @@ bool CPrimChecker::build(const string &primitivesPath, const string &igLandPath,
// Init ligo // Init ligo
if (!LigoConfig.readPrimitiveClass ("world_editor_classes.xml", false)) if (!LigoConfig.readPrimitiveClass ("world_editor_classes.xml", false))
{ {
// Should be in l:\leveldesign\world_edit_files // Should be in R:\leveldesign\world_edit_files
nlwarning ("Can't load ligo primitive config file world_editor_classes.xml"); nlwarning ("Can't load ligo primitive config file world_editor_classes.xml");
return false; return false;
} }

@ -3,8 +3,8 @@
build_sound <leveldesign> <dfn> <source_samplebanks> <build_packed_sheets> <build_samplebanks> build_sound <leveldesign> <dfn> <source_samplebanks> <build_packed_sheets> <build_samplebanks>
leveldesign = L:\leveldesign\ leveldesign = R:\leveldesign\
dfn = L:\leveldesign\dfn\ dfn = R:\leveldesign\dfn\
source_samplebanks = L:\assets\sound\samplebanks\ source_samplebanks = L:\assets\sound\samplebanks\
build_packed_sheets = L:\build\sound_sheets\ build_packed_sheets = L:\build\sound_sheets\
build_samplebanks = L:\build\sound_samplebanks\ build_samplebanks = L:\build\sound_samplebanks\

@ -1 +1 @@
build_sound_r L:\leveldesign\ L:\leveldesign\dfn\ L:\assets\sound\samplebanks\ L:\build\sound_sheets\ L:\build\sound_samplebanks build_sound_r R:\leveldesign\ R:\leveldesign\dfn\ L:\assets\sound\samplebanks\ L:\build\sound_sheets\ L:\build\sound_samplebanks

@ -3,8 +3,8 @@
build_soundbank <leveldesign> <dfn> <build_packed_sheets> build_soundbank <leveldesign> <dfn> <build_packed_sheets>
leveldesign = L:\leveldesign\ leveldesign = R:\leveldesign\
dfn = L:\leveldesign\dfn\ dfn = R:\leveldesign\dfn\
build_packed_sheets = L:\build\sound_sheets\ build_packed_sheets = L:\build\sound_sheets\
Where L:\ is your game content database. Where L:\ is your game content database.

@ -1 +1 @@
build_soundbank_r L:\leveldesign\ L:\leveldesign\dfn\ L:\build\sound_sheets\ build_soundbank_r R:\leveldesign\ R:\leveldesign\dfn\ L:\build\sound_sheets\

@ -456,7 +456,13 @@ CClientConfig::CClientConfig()
SoundOn = true; // Default is with sound. SoundOn = true; // Default is with sound.
DriverSound = SoundDrvAuto; DriverSound = SoundDrvAuto;
SoundForceSoftwareBuffer = true; SoundForceSoftwareBuffer = true;
SoundOutGameMusic = "main menu loop.ogg"; StartMusic = "main theme air.ogg"; // Use at game startup (originally no music)
EmptySlotMusic = "loading music loop.ogg"; // Use in character selection for empty slots
LoadingMusic = "main menu loop.ogg"; // Main loading used after leaving character selection, and when going back to character selection
KamiTeleportMusic = "kami teleport.ogg"; // Kami teleport
KaravanTeleportMusic = "karavan teleport.ogg"; // Karavan teleport
TeleportLoadingMusic = "loading music loop.ogg"; // Use for generic teleportations
DeathMusic = "death.ogg"; // Player death
SoundSFXVolume = 1.f; SoundSFXVolume = 1.f;
SoundGameMusicVolume = 1.f; SoundGameMusicVolume = 1.f;
SoundTPFade = 500; SoundTPFade = 500;
@ -467,7 +473,7 @@ CClientConfig::CClientConfig()
UserEntitySoundLevel = 0.5f; // Default volume for sound in 1st person UserEntitySoundLevel = 0.5f; // Default volume for sound in 1st person
UseEax = true; // Default to use EAX; UseEax = true; // Default to use EAX;
UseADPCM = false; // Defualt to PCM sample, NO ADPCM UseADPCM = false; // Defualt to PCM sample, NO ADPCM
MaxTrack = 32; // DEfault to 32 track MaxTrack = 32; // Default to 32 track
ColorShout = CRGBA(150,0,0,255); // Default Shout color. ColorShout = CRGBA(150,0,0,255); // Default Shout color.
ColorTalk = CRGBA(255,255,255,255); // Default Talk color. ColorTalk = CRGBA(255,255,255,255); // Default Talk color.
@ -1238,7 +1244,13 @@ void CClientConfig::setValues()
// SoundForceSoftwareBuffer // SoundForceSoftwareBuffer
READ_BOOL_FV(SoundForceSoftwareBuffer); READ_BOOL_FV(SoundForceSoftwareBuffer);
// SoundOutGameMusic // SoundOutGameMusic
READ_STRING_DEV(SoundOutGameMusic) READ_STRING_DEV(StartMusic)
READ_STRING_DEV(EmptySlotMusic)
READ_STRING_DEV(LoadingMusic)
READ_STRING_DEV(KamiTeleportMusic)
READ_STRING_DEV(KaravanTeleportMusic)
READ_STRING_DEV(TeleportLoadingMusic)
READ_STRING_DEV(DeathMusic)
// SoundSFXVolume // SoundSFXVolume
READ_FLOAT_FV(SoundSFXVolume); READ_FLOAT_FV(SoundSFXVolume);
// SoundGameMusicVolume // SoundGameMusicVolume

@ -348,8 +348,14 @@ struct CClientConfig
/// SoundForceSoftwareBuffer /// SoundForceSoftwareBuffer
bool SoundForceSoftwareBuffer; bool SoundForceSoftwareBuffer;
/// The outgame music file /// Music files
string SoundOutGameMusic; string StartMusic;
string EmptySlotMusic;
string LoadingMusic;
string KamiTeleportMusic;
string KaravanTeleportMusic;
string TeleportLoadingMusic;
string DeathMusic;
/// The Sound SFX Volume (0-1) (ie all but music) /// The Sound SFX Volume (0-1) (ie all but music)
float SoundSFXVolume; float SoundSFXVolume;

@ -274,6 +274,73 @@ void setOutGameFullScreen()
CViewRenderer::getInstance()->setInterfaceScale(1.0f, 1024, 768); CViewRenderer::getInstance()->setInterfaceScale(1.0f, 1024, 768);
} }
// ------------------------------------------------------------------------------------------------
class CSoundGlobalMenu
{
public:
CSoundGlobalMenu()
{
_MusicWantedAsync= false;
_NbFrameBeforeChange= NbFrameBeforeChangeMax;
}
void reset();
void setMusic(const string &music, bool async);
void updateSound();
private:
string _MusicPlayed;
string _MusicWanted;
bool _MusicWantedAsync;
sint _NbFrameBeforeChange;
enum {NbFrameBeforeChangeMax= 10};
};
void CSoundGlobalMenu::reset()
{
_MusicPlayed.clear();
_MusicWanted.clear();
}
void CSoundGlobalMenu::updateSound()
{
// **** update the music played
// The first music played is the music played at loading, before select char
if (_MusicPlayed.empty())
_MusicPlayed = toLower(LoadingMusic.empty() ? ClientCfg.StartMusic : LoadingMusic);
if (_MusicWanted.empty())
_MusicWanted = toLower(LoadingMusic.empty() ? ClientCfg.StartMusic : LoadingMusic);
// because music is changed when the player select other race for instance,
// wait the 3D to load (stall some secs)
// if the wanted music is the same as the one currently playing, just continue playing
if(_MusicPlayed!=_MusicWanted)
{
// wait nbFrameBeforeChangeMax before actually changing the music
_NbFrameBeforeChange--;
if(_NbFrameBeforeChange<=0)
{
_MusicPlayed= _MusicWanted;
// play the music
if (SoundMngr != NULL)
SoundMngr->playMusic(_MusicPlayed, 500, _MusicWantedAsync, true, true);
}
}
// **** update mngr
if (SoundMngr != NULL)
SoundMngr->update();
}
void CSoundGlobalMenu::setMusic(const string &music, bool async)
{
_MusicWanted= toLower(music);
_MusicWantedAsync= async;
// reset the counter
_NbFrameBeforeChange= NbFrameBeforeChangeMax;
}
static CSoundGlobalMenu SoundGlobalMenu;
// New version of the menu after the server connection // New version of the menu after the server connection
// //
@ -406,6 +473,8 @@ bool connection (const string &cookie, const string &fsaddr)
InterfaceState = GLOBAL_MENU; InterfaceState = GLOBAL_MENU;
} }
// No loading music here, this is right before character selection, using the existing music
// Create the loading texture. We can't do that before because we need to add search path first. // Create the loading texture. We can't do that before because we need to add search path first.
beginLoading (LoadBackground); beginLoading (LoadBackground);
UseEscapeDuringLoading = USE_ESCAPE_DURING_LOADING; UseEscapeDuringLoading = USE_ESCAPE_DURING_LOADING;
@ -508,6 +577,7 @@ bool reconnection()
ProgressBar.setFontFactor(1.0f); ProgressBar.setFontFactor(1.0f);
// Init out game // Init out game
SoundGlobalMenu.reset();
pIM->initOutGame(); pIM->initOutGame();
// Hide cursor for interface // Hide cursor for interface
@ -523,6 +593,9 @@ bool reconnection()
FarTP.setOutgame(); FarTP.setOutgame();
if (SoundMngr)
SoundMngr->setupFadeSound(1.0f, 1.0f);
// these two globals sequence GlobalMenu to display the character select dialog // these two globals sequence GlobalMenu to display the character select dialog
WaitServerAnswer = true; WaitServerAnswer = true;
userChar = true; userChar = true;
@ -557,6 +630,8 @@ bool reconnection()
// this also kicks the state machine to sendReady() so we stop spinning in farTPmainLoop // this also kicks the state machine to sendReady() so we stop spinning in farTPmainLoop
FarTP.setIngame(); FarTP.setIngame();
// Not loading music here, this is before character selection, keep existing music
// Create the loading texture. We can't do that before because we need to add search path first. // Create the loading texture. We can't do that before because we need to add search path first.
beginLoading (LoadBackground); beginLoading (LoadBackground);
UseEscapeDuringLoading = USE_ESCAPE_DURING_LOADING; UseEscapeDuringLoading = USE_ESCAPE_DURING_LOADING;
@ -732,66 +807,6 @@ std::string buildPlayerNameForSaveFile(const ucstring &playerNameIn)
return ret; return ret;
} }
// ------------------------------------------------------------------------------------------------
class CSoundGlobalMenu
{
public:
CSoundGlobalMenu()
{
_MusicWantedAsync= false;
_NbFrameBeforeChange= NbFrameBeforeChangeMax;
}
void setMusic(const string &music, bool async);
void updateSound();
private:
string _MusicPlayed;
string _MusicWanted;
bool _MusicWantedAsync;
sint _NbFrameBeforeChange;
enum {NbFrameBeforeChangeMax= 10};
};
void CSoundGlobalMenu::updateSound()
{
// **** update the music played
// The first music played is the music played at loading, before select char
if(_MusicPlayed.empty())
_MusicPlayed= toLower(ClientCfg.SoundOutGameMusic);
if(_MusicWanted.empty())
_MusicWanted= toLower(ClientCfg.SoundOutGameMusic);
// because music is changed when the player select other race for instance,
// wait the 3D to load (stall some secs)
// if the wanted music is the same as the one currently playing, just continue playing
if(_MusicPlayed!=_MusicWanted)
{
// wait nbFrameBeforeChangeMax before actually changing the music
_NbFrameBeforeChange--;
if(_NbFrameBeforeChange<=0)
{
_MusicPlayed= _MusicWanted;
// play the music
if (SoundMngr != NULL)
SoundMngr->playMusic(_MusicPlayed, 500, _MusicWantedAsync, true, true);
}
}
// **** update mngr
if (SoundMngr != NULL)
SoundMngr->update();
}
void CSoundGlobalMenu::setMusic(const string &music, bool async)
{
_MusicWanted= toLower(music);
_MusicWantedAsync= async;
// reset the counter
_NbFrameBeforeChange= NbFrameBeforeChangeMax;
}
static CSoundGlobalMenu SoundGlobalMenu;
static bool LuaBGDSuccessFlag = true; // tmp, for debug static bool LuaBGDSuccessFlag = true; // tmp, for debug
@ -2042,8 +2057,8 @@ public:
fromString(getParam(Params, "async"), async); fromString(getParam(Params, "async"), async);
// if empty name, return to default mode // if empty name, return to default mode
if(sName.empty()) if (sName.empty())
sName= ClientCfg.SoundOutGameMusic; sName = ClientCfg.EmptySlotMusic;
// change the music // change the music
SoundGlobalMenu.setMusic(sName, async); SoundGlobalMenu.setMusic(sName, async);

@ -1112,15 +1112,6 @@ void CFarTP::disconnectFromPreviousShard()
beginLoading (StartBackground); beginLoading (StartBackground);
UseEscapeDuringLoading = false; UseEscapeDuringLoading = false;
// Play music and fade out the Game Sound
if (SoundMngr)
{
// Loading Music Loop.ogg
LoadingMusic = ClientCfg.SoundOutGameMusic;
SoundMngr->playEventMusic(LoadingMusic, CSoundManager::LoadingMusicXFade, true);
SoundMngr->fadeOutGameSound(ClientCfg.SoundTPFade);
}
// Change the tips // Change the tips
selectTipsOfTheDay (rand()); selectTipsOfTheDay (rand());
@ -1129,6 +1120,21 @@ void CFarTP::disconnectFromPreviousShard()
ucstring nmsg("Loading..."); ucstring nmsg("Loading...");
ProgressBar.newMessage ( ClientCfg.buildLoadingString(nmsg) ); ProgressBar.newMessage ( ClientCfg.buildLoadingString(nmsg) );
ProgressBar.progress(0); ProgressBar.progress(0);
// Play music and fade out the Game Sound
if (SoundMngr)
{
SoundMngr->fadeOutGameSound(ClientCfg.SoundTPFade);
// Stop and enable music
SoundMngr->stopMusic(0);
SoundMngr->setupFadeSound(0.0f, 1.0f);
// Loading Music Loop.ogg
LoadingMusic = ClientCfg.LoadingMusic;
// SoundMngr->playEventMusic(LoadingMusic, CSoundManager::LoadingMusicXFade, true);
SoundMngr->playMusic(LoadingMusic, 0, false, true, true);
}
} }
// Disconnect from the FS // Disconnect from the FS

@ -1410,6 +1410,42 @@ void prelogInit()
StereoDisplay->setDriver(Driver); // VR_DRIVER StereoDisplay->setDriver(Driver); // VR_DRIVER
} }
{
H_AUTO(InitRZSound)
// Init the sound manager
nmsg = "Initializing sound manager...";
ProgressBar.newMessage(ClientCfg.buildLoadingString(nmsg));
if (ClientCfg.SoundOn)
{
nlassert(!SoundMngr);
SoundMngr = new CSoundManager(&ProgressBar);
try
{
SoundMngr->init(&ProgressBar);
}
catch(const Exception &e)
{
nlwarning("init : Error when creating 'SoundMngr' : %s", e.what());
delete SoundMngr;
SoundMngr = NULL;
}
// Play Music just after the SoundMngr is inited
if (SoundMngr)
{
// init the SoundMngr with backuped volume
SoundMngr->setSFXVolume(ClientCfg.SoundSFXVolume);
SoundMngr->setGameMusicVolume(ClientCfg.SoundGameMusicVolume);
// Play the login screen music
SoundMngr->playMusic(ClientCfg.StartMusic, 0, true, true, true);
}
}
CPath::memoryCompress(); // Because sound calls addSearchPath
}
nlinfo ("PROFILE: %d seconds for prelogInit", (uint32)(ryzomGetLocalTime ()-initStart)/1000); nlinfo ("PROFILE: %d seconds for prelogInit", (uint32)(ryzomGetLocalTime ()-initStart)/1000);
FPU_CHECKER_ONCE FPU_CHECKER_ONCE
@ -1552,55 +1588,6 @@ void postlogInit()
// set the primitive context // set the primitive context
CPrimitiveContext::instance().CurrentLigoConfig = &LigoConfig; CPrimitiveContext::instance().CurrentLigoConfig = &LigoConfig;
{
H_AUTO(InitRZSound)
// Init the sound manager
nmsg = "Initializing sound manager...";
ProgressBar.newMessage ( ClientCfg.buildLoadingString(nmsg) );
if(ClientCfg.SoundOn)
{
SoundMngr = new CSoundManager(&ProgressBar);
try
{
SoundMngr->init(&ProgressBar);
}
catch(const Exception &e)
{
nlwarning("init : Error when creating 'SoundMngr' : %s", e.what());
delete SoundMngr;
SoundMngr = NULL;
}
// Play Music just after the SoundMngr is inited
if(SoundMngr)
{
// init the SoundMngr with backuped volume
SoundMngr->setSFXVolume(ClientCfg.SoundSFXVolume);
SoundMngr->setGameMusicVolume(ClientCfg.SoundGameMusicVolume);
// no fadein, and not async because don't work well because of loading in the main thread
// Force use GameMusic volume
const uint fadeInTime= 500;
SoundMngr->playMusic(ClientCfg.SoundOutGameMusic, fadeInTime, false, true, true);
// Because of blocking loading, force the fadeIn
TTime t0= ryzomGetLocalTime();
TTime t1;
while((t1=ryzomGetLocalTime())<t0+fadeInTime)
{
//ProgressBar.progress(1.f);
SoundMngr->updateAudioMixerOnly();
}
}
}
CPath::memoryCompress(); // Because sound call addSearchPath
initLast = initCurrent;
initCurrent = ryzomGetLocalTime();
//nlinfo ("PROFILE: %d seconds (%d total) for Initializing sound manager", (uint32)(initCurrent-initLast)/1000, (uint32)(initCurrent-initStart)/1000);
}
{ {
H_AUTO(InitRZShIdI) H_AUTO(InitRZShIdI)

@ -473,6 +473,27 @@ void initMainLoop()
FPU_CHECKER_ONCE FPU_CHECKER_ONCE
if (SoundMngr)
{
// Loading Music
LoadingMusic = ClientCfg.LoadingMusic;
// SoundMngr->playEventMusic(LoadingMusic, CSoundManager::LoadingMusicXFade, true);
// no fadein, and not async because don't work well because of loading in the main thread
// Force use GameMusic volume
const uint fadeInTime = 500;
SoundMngr->playMusic(LoadingMusic, fadeInTime, false, true, true);
// Because of blocking loading, force the fadeIn
TTime t0 = ryzomGetLocalTime();
TTime t1;
do
{
ProgressBar.progress(0);
SoundMngr->updateAudioMixerOnly();
nlSleep(10);
} while ((t1 = ryzomGetLocalTime()) < t0 + fadeInTime);
}
// Get the interface manager // Get the interface manager
CInterfaceManager *pIM = CInterfaceManager::getInstance(); CInterfaceManager *pIM = CInterfaceManager::getInstance();

@ -271,16 +271,16 @@ void CInputHandlerManager::operator ()(const NLMISC::CEvent &event)
{ {
CViewPointer &rIP = *static_cast< CViewPointer* >( CWidgetManager::getInstance()->getPointer() ); CViewPointer &rIP = *static_cast<CViewPointer *>(CWidgetManager::getInstance()->getPointer());
NLGUI::CEventDescriptorMouse eventDesc; NLGUI::CEventDescriptorMouse eventDesc;
sint32 x,y; sint32 x, y;
rIP.getPointerDispPos (x, y); rIP.getPointerDispPos(x, y);
eventDesc.setX (x); eventDesc.setX(x);
eventDesc.setY (y); eventDesc.setY(y);
bool handled= false; bool handled = false;
// button down ? // button down ?
static volatile bool doTest = false; static volatile bool doTest = false;
@ -291,7 +291,7 @@ void CInputHandlerManager::operator ()(const NLMISC::CEvent &event)
{ {
if (_RecoverFocusLost) if (_RecoverFocusLost)
{ {
handled |= updateMousePos((CEventMouse&)event, eventDesc); // must update mouse pos here, handled |= updateMousePos((CEventMouse&)event); // must update mouse pos here,
// because when app window focus is gained by a mouse click, this is // because when app window focus is gained by a mouse click, this is
// the only place where we can retrieve mouse pos before a mouse move // the only place where we can retrieve mouse pos before a mouse move
_RecoverFocusLost = false; _RecoverFocusLost = false;
@ -299,10 +299,19 @@ void CInputHandlerManager::operator ()(const NLMISC::CEvent &event)
if (!handled) if (!handled)
{ {
if (R2::getEditor().isInitialized() if (R2::getEditor().isInitialized()
&& (R2::isEditionCurrent() || R2::getEditor().getCurrentTool()) && (R2::isEditionCurrent() || R2::getEditor().getCurrentTool()))
)
{ {
handled |= R2::getEditor().handleEvent(eventDesc); const NLMISC::CEventMouseDown *mouseDownEvent = static_cast<const NLMISC::CEventMouseDown *>(&event);
if (mouseDownEvent->Button & NLMISC::leftButton)
{
eventDesc.setEventTypeExtended(CEventDescriptorMouse::mouseleftdown);
handled |= R2::getEditor().handleEvent(eventDesc);
}
if (mouseDownEvent->Button & NLMISC::rightButton)
{
eventDesc.setEventTypeExtended(CEventDescriptorMouse::mouserightdown);
handled |= R2::getEditor().handleEvent(eventDesc);
}
} }
} }
handled |= inputHandler.handleMouseButtonDownEvent( event ); handled |= inputHandler.handleMouseButtonDownEvent( event );
@ -321,7 +330,7 @@ void CInputHandlerManager::operator ()(const NLMISC::CEvent &event)
// mouse move? // mouse move?
else if(event == EventMouseMoveId) else if(event == EventMouseMoveId)
{ {
handled |= updateMousePos((CEventMouse&)event, eventDesc); handled |= updateMousePos((CEventMouse&)event);
} }
else if (event == EventMouseWheelId) else if (event == EventMouseWheelId)
{ {
@ -330,19 +339,77 @@ void CInputHandlerManager::operator ()(const NLMISC::CEvent &event)
} }
// if Event not handled, post to Action Manager // if Event not handled, post to Action Manager
if( !handled ) if (!handled)
{ {
bool handled = false;
if (R2::getEditor().isInitialized() if (R2::getEditor().isInitialized()
&& (R2::isEditionCurrent() || R2::getEditor().getCurrentTool()) && (R2::isEditionCurrent() || R2::getEditor().getCurrentTool()))
)
{ {
handled = R2::getEditor().handleEvent(eventDesc); if (event == EventMouseDownId)
{
const NLMISC::CEventMouseDown *mouseDownEvent = static_cast<const NLMISC::CEventMouseDown *>(&event);
if (mouseDownEvent->Button & NLMISC::leftButton)
{
eventDesc.setEventTypeExtended(CEventDescriptorMouse::mouseleftdown);
handled |= R2::getEditor().handleEvent(eventDesc);
}
if (mouseDownEvent->Button & NLMISC::rightButton)
{
eventDesc.setEventTypeExtended(CEventDescriptorMouse::mouserightdown);
handled |= R2::getEditor().handleEvent(eventDesc);
}
}
else if (event == EventMouseUpId)
{
const NLMISC::CEventMouseUp *mouseUpEvent = static_cast<const NLMISC::CEventMouseUp *>(&event);
if (mouseUpEvent->Button & NLMISC::leftButton)
{
eventDesc.setEventTypeExtended(CEventDescriptorMouse::mouseleftup);
handled |= R2::getEditor().handleEvent(eventDesc);
}
if (mouseUpEvent->Button & NLMISC::rightButton)
{
eventDesc.setEventTypeExtended(CEventDescriptorMouse::mouserightup);
handled |= R2::getEditor().handleEvent(eventDesc);
}
}
else if (event == EventMouseDblClkId)
{
const NLMISC::CEventMouseDblClk *mouseDblClkEvent = static_cast<const NLMISC::CEventMouseDblClk *>(&event);
if (mouseDblClkEvent->Button & NLMISC::leftButton)
{
eventDesc.setEventTypeExtended(CEventDescriptorMouse::mouseleftdblclk);
handled |= R2::getEditor().handleEvent(eventDesc);
}
if (mouseDblClkEvent->Button & NLMISC::rightButton)
{
eventDesc.setEventTypeExtended(CEventDescriptorMouse::mouserightdblclk);
handled |= R2::getEditor().handleEvent(eventDesc);
}
}
else
{
if (event == EventMouseWheelId)
{
const NLMISC::CEventMouseWheel *wheelEvent = static_cast<const NLMISC::CEventMouseWheel *>(&event);
eventDesc.setEventTypeExtended(CEventDescriptorMouse::mousewheel);
eventDesc.setWheel(wheelEvent->Direction ? 1 : -1);
handled = R2::getEditor().handleEvent(eventDesc);
}
else if (event == EventMouseMoveId)
{
eventDesc.setEventTypeExtended(CEventDescriptorMouse::mousemove);
handled = R2::getEditor().handleEvent(eventDesc);
}
else
{
nlwarning("R2 unknown mouse event '%s'", event.toString().c_str());
}
}
} }
if (!handled) if (!handled)
{ {
// post to Action Manager // post to Action Manager
FilteredEventServer.postEvent( event.clone() ); FilteredEventServer.postEvent(event.clone());
} }
} }
} }
@ -355,7 +422,7 @@ void CInputHandlerManager::operator ()(const NLMISC::CEvent &event)
// *************************************************************************** // ***************************************************************************
bool CInputHandlerManager::updateMousePos(NLMISC::CEventMouse &event, NLGUI::CEventDescriptorMouse &eventDesc) bool CInputHandlerManager::updateMousePos(NLMISC::CEventMouse &event)
{ {
if (!IsMouseFreeLook()) if (!IsMouseFreeLook())
return inputHandler.handleMouseMoveEvent( event ); return inputHandler.handleMouseMoveEvent( event );

@ -181,7 +181,7 @@ private:
void parseKey(xmlNodePtr cur, std::vector<CComboKey> &out); void parseKey(xmlNodePtr cur, std::vector<CComboKey> &out);
// return true if handled // return true if handled
bool updateMousePos(NLMISC::CEventMouse &event, NLGUI::CEventDescriptorMouse &eventDesc); bool updateMousePos(NLMISC::CEventMouse &event);
NLGUI::CInputHandler inputHandler; NLGUI::CInputHandler inputHandler;

@ -3648,15 +3648,23 @@ void CInventoryManager::onTradeChangeSession()
// *************************************************************************** // ***************************************************************************
void CInventoryManager::updateItemInfoQueue() void CInventoryManager::updateItemInfoQueue()
{ {
if (!ConnectionReadySent) // CONNECTION:READY not yet sent, so we cannot send requests yet!
{
// Caused by CNetworkConnection::reinit, and NLMISC::CCDBNodeBranch::resetData
// TODO: Item sheets are effectively being set to 0, any way to detect this in particular?
// Slots with sheet 0 won't have any info to request anyway!
// Remove this check in favour of the assert lower down when properly implemented.
nlwarning("Update item info queue (%i), but connection not ready", (int)_ItemInfoWaiters.size());
return;
}
// CONNECTION:READY not yet sent, so we cannot send requests yet!
nlassert(ConnectionReadySent || !_ItemInfoWaiters.size());
// For All waiters, look if one need update. // For All waiters, look if one need update.
TItemInfoWaiters::iterator it; TItemInfoWaiters::iterator it;
for(it= _ItemInfoWaiters.begin();it!=_ItemInfoWaiters.end();it++) for(it= _ItemInfoWaiters.begin();it!=_ItemInfoWaiters.end();it++)
{ {
/* \todo yoyo remove: temp patch to be sure that the client does not send messages before the
CONNECTION:READY is sent
*/
nlassert(ConnectionReadySent);
IItemInfoWaiter *waiter=*it; IItemInfoWaiter *waiter=*it;
uint itemSlotId= waiter->ItemSlotId; uint itemSlotId= waiter->ItemSlotId;
TItemInfoMap::iterator it= _ItemInfoMap.find(itemSlotId); TItemInfoMap::iterator it= _ItemInfoMap.find(itemSlotId);

@ -3283,6 +3283,7 @@ bool loginIntroSkip;
void loginIntro() void loginIntro()
{ {
// Display of nevrax logo is done at init time (see init.cpp) just before addSearchPath (second one) // Display of nevrax logo is done at init time (see init.cpp) just before addSearchPath (second one)
#if 0
for (uint i = 0; i < 1; i++) // previously display nevrax then nvidia for (uint i = 0; i < 1; i++) // previously display nevrax then nvidia
{ {
if (i != 0) if (i != 0)
@ -3320,6 +3321,7 @@ void loginIntro()
NLGUI::CDBManager::getInstance()->flushObserverCalls(); NLGUI::CDBManager::getInstance()->flushObserverCalls();
} }
} }
#endif
beginLoading(StartBackground); beginLoading(StartBackground);
ProgressBar.finish(); ProgressBar.finish();
} }

@ -2255,19 +2255,21 @@ bool mainLoop()
{ {
StartPlayTime = NLMISC::CTime::getLocalTime(); StartPlayTime = NLMISC::CTime::getLocalTime();
} }
// Start background sound play now ! (nb: restarted if load just ended, or if sound re-enabled) // Start background sound play now ! (nb: restarted if load just ended, or if sound re-enabled)
if (SoundMngr) if (SoundMngr)
{ {
H_AUTO_USE ( RZ_Client_Main_Loop_Sound ) H_AUTO_USE ( RZ_Client_Main_Loop_Sound )
SoundMngr->playBackgroundSound();
}
// Fade in Game Sound now (before endLoading)
if(SoundMngr)
{
// fade out loading music // fade out loading music
if(LoadingMusic==SoundMngr->getEventMusicPlayed()) if (SoundMngr->getEventMusicPlayed() == LoadingMusic)
{
SoundMngr->stopEventMusic(LoadingMusic, CSoundManager::LoadingMusicXFade); SoundMngr->stopEventMusic(LoadingMusic, CSoundManager::LoadingMusicXFade);
}
SoundMngr->playBackgroundSound();
// Fade in Game Sound now (before endLoading)
// fade in game sound // fade in game sound
SoundMngr->fadeInGameSound(ClientCfg.SoundTPFade); SoundMngr->fadeInGameSound(ClientCfg.SoundTPFade);
} }
@ -2531,7 +2533,7 @@ bool mainLoop()
EditActions.enable(true); EditActions.enable(true);
// For stoping the outgame music, start after 30 frames, and duration of 3 seconds // For stoping the outgame music, start after 30 frames, and duration of 3 seconds
// CMusicFader outgameFader(60, 3); outgameFader = CMusicFader(60, 3);
// check for banned player // check for banned player
if (testPermanentBanMarkers()) if (testPermanentBanMarkers())

@ -1483,32 +1483,33 @@ void impulseTPCommon(NLMISC::CBitMemStream &impulse, bool hasSeason)
void impulseTPCommon2(NLMISC::CBitMemStream &impulse, bool hasSeason) void impulseTPCommon2(NLMISC::CBitMemStream &impulse, bool hasSeason)
{ {
// choose a default screen if not setuped // choose a default screen if not setuped
if( LoadingBackground!=ResurectKamiBackground && LoadingBackground!=ResurectKaravanBackground && if (LoadingBackground != ResurectKamiBackground && LoadingBackground != ResurectKaravanBackground
LoadingBackground!=TeleportKamiBackground && LoadingBackground!=TeleportKaravanBackground) && LoadingBackground != TeleportKamiBackground && LoadingBackground != TeleportKaravanBackground)
LoadingBackground= TeleportKaravanBackground; LoadingBackground = ElevatorBackground;
// if resurect but user not dead, choose default. NB: this is a bug, the tp impulse should tell // if resurect but user not dead, choose default. NB: this is a bug, the tp impulse should tell
// which background to choose. \todo yoyo: this is a temp fix // which background to choose. \todo yoyo: this is a temp fix
if( UserEntity && !UserEntity->isDead() && if (UserEntity && !UserEntity->isDead() && (LoadingBackground == ResurectKamiBackground || LoadingBackground == ResurectKaravanBackground))
(LoadingBackground==ResurectKamiBackground || LoadingBackground==ResurectKaravanBackground) ) LoadingBackground = ElevatorBackground;
LoadingBackground= TeleportKaravanBackground;
// Play music according to the background // Play music according to the background
if(SoundMngr) if (SoundMngr)
{ {
LoadingMusic.clear(); LoadingMusic.clear();
if(LoadingBackground==TeleportKamiBackground) switch (LoadingBackground)
LoadingMusic= "Kami Teleport.ogg";
else if(LoadingBackground==TeleportKaravanBackground)
LoadingMusic= "Karavan Teleport.ogg";
// if resurection, continue to play death music
else if(LoadingBackground==ResurectKamiBackground || LoadingBackground==ResurectKaravanBackground)
{
// noop
}
// default: loading music
else
{ {
LoadingMusic= "Loading Music Loop.ogg"; case TeleportKamiBackground:
LoadingMusic = ClientCfg.KamiTeleportMusic;
break;
case TeleportKaravanBackground:
LoadingMusic = ClientCfg.KaravanTeleportMusic;
break;
case ResurectKamiBackground:
case ResurectKaravanBackground:
// TODO: Resurrect music
break;
default:
LoadingMusic = ClientCfg.TeleportLoadingMusic;
break;
} }
// start to play // start to play

@ -4313,20 +4313,19 @@ void CUserEntity::updatePreCollision(const NLMISC::TTime &time, CEntityCL *targe
// test each frame if the mode has changed // test each frame if the mode has changed
if(SoundMngr) if(SoundMngr)
{ {
string deadMusic= "death.ogg";
// Play/stop music if comes from or goes to dead // Play/stop music if comes from or goes to dead
bool isDead= _Mode==MBEHAV::DEATH || _Mode==MBEHAV::SWIM_DEATH; bool isDead = _Mode == MBEHAV::DEATH || _Mode == MBEHAV::SWIM_DEATH;
// must start music? // must start music?
if( isDead && SoundMngr->getEventMusicPlayed()!=deadMusic ) if (isDead && SoundMngr->getEventMusicPlayed() != ClientCfg.DeathMusic)
{ {
SoundMngr->playEventMusic(deadMusic, 0, true); SoundMngr->playEventMusic(ClientCfg.DeathMusic, 0, true);
} }
// must end music? // must end music?
if( !isDead && SoundMngr->getEventMusicPlayed()==deadMusic ) if (!isDead && SoundMngr->getEventMusicPlayed() == ClientCfg.DeathMusic)
{ {
SoundMngr->stopEventMusic(deadMusic, CSoundManager::LoadingMusicXFade); SoundMngr->stopEventMusic(ClientCfg.DeathMusic, CSoundManager::LoadingMusicXFade);
} }
} }
} }

@ -98,7 +98,7 @@
</PARAMETER> </PARAMETER>
<PARAMETER NAME="properties" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="zone" LOOKUP="true"> <PARAMETER NAME="properties" 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="R:/leveldesign/world_editor_files/fauna_zone_properties"/>
<COMBO_FILES CONTEXT_NAME="default" PRIM_PATH="//"/> <COMBO_FILES CONTEXT_NAME="default" PRIM_PATH="//"/>
<COMBO_FILES CONTEXT_NAME="default" PRIM_PATH="//root"/> <COMBO_FILES CONTEXT_NAME="default" PRIM_PATH="//root"/>
<COMBO_FILES CONTEXT_NAME="default" PRIM_PATH="//property_rep"/> <COMBO_FILES CONTEXT_NAME="default" PRIM_PATH="//property_rep"/>
@ -128,7 +128,7 @@
<!-- For now, fauna don't have AI profile--> <!-- For now, fauna don't have AI profile-->
<!-- <PARAMETER NAME= "ai_movement" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true"> <!-- <PARAMETER NAME= "ai_movement" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" <COMBO_FILES CONTEXT_NAME="default"
PATH="L:/leveldesign/world_editor_files/npc/ai_movement"/> </PARAMETER> PATH="R:/leveldesign/world_editor_files/npc/ai_movement"/> </PARAMETER>
--> -->
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/> <STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
<DYNAMIC_CHILD CLASS_NAME="state_event_handler"/> <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="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="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"> <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="R:/leveldesign/world_editor_files/npc/event_type"/>
</PARAMETER> </PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/> <STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
<DYNAMIC_CHILD CLASS_NAME="event_handler_action"/> <DYNAMIC_CHILD CLASS_NAME="event_handler_action"/>
@ -159,7 +159,7 @@
<DEFAULT_VALUE VALUE="ACTION_ZONE"/> <DEFAULT_VALUE VALUE="ACTION_ZONE"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="params" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="zone" LOOKUP="true"> <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="R:/leveldesign/world_editor_files/fauna_zone_properties"/>
</PARAMETER> </PARAMETER>
</PRIMITIVE> </PRIMITIVE>
@ -175,7 +175,7 @@
</PARAMETER> </PARAMETER>
<PARAMETER NAME="parameters" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="500" SHOW_HS="true" FILE_EXTENSION="cs"/> <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"> <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="R:/leveldesign/world_editor_files/npc/action_type"/>
</PARAMETER> </PARAMETER>
<DYNAMIC_CHILD CLASS_NAME="event_handler_action"/> <DYNAMIC_CHILD CLASS_NAME="event_handler_action"/>
<DYNAMIC_CHILD CLASS_NAME="action_zone"/> <DYNAMIC_CHILD CLASS_NAME="action_zone"/>
@ -1566,15 +1566,15 @@
</PARAMETER> </PARAMETER>
--> -->
<PARAMETER NAME="item_parts" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="item_part" LOOKUP="true"> <PARAMETER NAME="item_parts" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="item_part" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/game_element/deposit_system/item_parts"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/game_element/deposit_system/item_parts"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="mps" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="mp" LOOKUP="true"> <PARAMETER NAME="mps" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="mp" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/game_element/deposit_system/mps"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/game_element/deposit_system/mps"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="craft_civ" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="craft_civ" LOOKUP="true"> <PARAMETER NAME="craft_civ" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="craft_civ" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/game_element/deposit_system/craft_civs"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/game_element/deposit_system/craft_civs"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="exact_mp_item" TYPE="string_array" VISIBLE="true" FILENAME="false"/> <PARAMETER NAME="exact_mp_item" TYPE="string_array" VISIBLE="true" FILENAME="false"/>
@ -1596,13 +1596,13 @@
</PARAMETER> </PARAMETER>
<!-- Deposit <!-- Deposit
<PARAMETER NAME="item_parts" TYPE="string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="item_part" LOOKUP="true" WIDGET_HEIGHT="100"> <PARAMETER NAME="item_parts" TYPE="string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="item_part" LOOKUP="true" WIDGET_HEIGHT="100">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/game_element/deposit_system/item_parts"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/game_element/deposit_system/item_parts"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="mps" TYPE="string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="mp" LOOKUP="true" WIDGET_HEIGHT="100"> <PARAMETER NAME="mps" TYPE="string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="mp" LOOKUP="true" WIDGET_HEIGHT="100">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/game_element/deposit_system/mps"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/game_element/deposit_system/mps"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="craft_civ" TYPE="string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="craft_civ" LOOKUP="true" WIDGET_HEIGHT="100"> <PARAMETER NAME="craft_civ" TYPE="string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="craft_civ" LOOKUP="true" WIDGET_HEIGHT="100">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/game_element/deposit_system/craft_civ"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/game_element/deposit_system/craft_civ"/>
</PARAMETER> </PARAMETER>
--> -->
@ -1704,7 +1704,7 @@
</PARAMETER> </PARAMETER>
--> -->
<PARAMETER NAME="ecotype" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="ecotype" LOOKUP="true"> <PARAMETER NAME="ecotype" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="ecotype" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/game_element/deposit_system/ecotypes"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/game_element/deposit_system/ecotypes"/>
</PARAMETER> </PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/> <STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
</PRIMITIVE> </PRIMITIVE>
@ -1865,7 +1865,7 @@
<PARAMETER NAME="ConstArray" TYPE="const_string_array" VISIBLE="true" FILENAME="true" WIDGET_HEIGHT="100" FILE_EXTENSION="flora" LOOKUP="true"> <PARAMETER NAME="ConstArray" TYPE="const_string_array" VISIBLE="true" FILENAME="true" WIDGET_HEIGHT="100" FILE_EXTENSION="flora" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/game_elem/plant/flora_template/forest"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/game_elem/plant/flora_template/forest"/>
<COMBO_VALUES CONTEXT_NAME="jungle"> <COMBO_VALUES CONTEXT_NAME="jungle">
<CONTEXT_VALUE VALUE="jungle0"/> <CONTEXT_VALUE VALUE="jungle0"/>
</COMBO_VALUES> </COMBO_VALUES>
@ -1888,7 +1888,7 @@
<PARAMETER NAME="ConstArray2" TYPE="const_string_array" VISIBLE="true" FILENAME="true" WIDGET_HEIGHT="100" FILE_EXTENSION="flora" LOOKUP="true" AUTONAME="$ConstArray$"> <PARAMETER NAME="ConstArray2" TYPE="const_string_array" VISIBLE="true" FILENAME="true" WIDGET_HEIGHT="100" FILE_EXTENSION="flora" LOOKUP="true" AUTONAME="$ConstArray$">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/game_elem/plant/flora_template/forest"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/game_elem/plant/flora_template/forest"/>
<COMBO_VALUES CONTEXT_NAME="jungle"> <COMBO_VALUES CONTEXT_NAME="jungle">
<CONTEXT_VALUE VALUE="jungle0"/> <CONTEXT_VALUE VALUE="jungle0"/>
</COMBO_VALUES> </COMBO_VALUES>
@ -1997,11 +1997,11 @@
<PARAMETER NAME="name" TYPE="string" VISIBLE="true"> <PARAMETER NAME="name" TYPE="string" VISIBLE="true">
</PARAMETER> </PARAMETER>
<PARAMETER NAME="form" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="flora" LOOKUP="true"> <PARAMETER NAME="form" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="flora" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="forest" PATH="L:/leveldesign/game_elem/plant/flora_template/forest"/> <COMBO_FILES CONTEXT_NAME="forest" PATH="R:/leveldesign/game_elem/plant/flora_template/forest"/>
<COMBO_FILES CONTEXT_NAME="jungle" PATH="L:/leveldesign/game_elem/plant/flora_template/jungle"/> <COMBO_FILES CONTEXT_NAME="jungle" PATH="R:/leveldesign/game_elem/plant/flora_template/jungle"/>
<COMBO_FILES CONTEXT_NAME="desert" PATH="L:/leveldesign/game_elem/plant/flora_template/desert"/> <COMBO_FILES CONTEXT_NAME="desert" PATH="R:/leveldesign/game_elem/plant/flora_template/desert"/>
<COMBO_FILES CONTEXT_NAME="lacustre" PATH="L:/leveldesign/game_elem/plant/flora_template/lacustre"/> <COMBO_FILES CONTEXT_NAME="lacustre" PATH="R:/leveldesign/game_elem/plant/flora_template/lacustre"/>
<COMBO_FILES CONTEXT_NAME="prime_roots" PATH="L:/leveldesign/game_elem/plant/flora_template/primes_racines"/> <COMBO_FILES CONTEXT_NAME="prime_roots" PATH="R:/leveldesign/game_elem/plant/flora_template/primes_racines"/>
</PARAMETER> </PARAMETER>
<DYNAMIC_CHILD CLASS_NAME="flora_exclude"/> <DYNAMIC_CHILD CLASS_NAME="flora_exclude"/>
<GENERATED_CHILD CLASS_NAME="prim"/> <GENERATED_CHILD CLASS_NAME="prim"/>
@ -2014,11 +2014,11 @@
<PARAMETER NAME="name" TYPE="string" VISIBLE="true"> <PARAMETER NAME="name" TYPE="string" VISIBLE="true">
</PARAMETER> </PARAMETER>
<PARAMETER NAME="form" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="flora" LOOKUP="true"> <PARAMETER NAME="form" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="flora" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="forest" PATH="L:/leveldesign/game_elem/plant/flora_template/forest"/> <COMBO_FILES CONTEXT_NAME="forest" PATH="R:/leveldesign/game_elem/plant/flora_template/forest"/>
<COMBO_FILES CONTEXT_NAME="jungle" PATH="L:/leveldesign/game_elem/plant/flora_template/jungle"/> <COMBO_FILES CONTEXT_NAME="jungle" PATH="R:/leveldesign/game_elem/plant/flora_template/jungle"/>
<COMBO_FILES CONTEXT_NAME="desert" PATH="L:/leveldesign/game_elem/plant/flora_template/desert"/> <COMBO_FILES CONTEXT_NAME="desert" PATH="R:/leveldesign/game_elem/plant/flora_template/desert"/>
<COMBO_FILES CONTEXT_NAME="lacustre" PATH="L:/leveldesign/game_elem/plant/flora_template/lacustre"/> <COMBO_FILES CONTEXT_NAME="lacustre" PATH="R:/leveldesign/game_elem/plant/flora_template/lacustre"/>
<COMBO_FILES CONTEXT_NAME="prime_roots" PATH="L:/leveldesign/game_elem/plant/flora_template/primes_racines"/> <COMBO_FILES CONTEXT_NAME="prime_roots" PATH="R:/leveldesign/game_elem/plant/flora_template/primes_racines"/>
</PARAMETER> </PARAMETER>
<DYNAMIC_CHILD CLASS_NAME="flora_exclude"/> <DYNAMIC_CHILD CLASS_NAME="flora_exclude"/>
<GENERATED_CHILD CLASS_NAME="prim"/> <GENERATED_CHILD CLASS_NAME="prim"/>
@ -2033,11 +2033,11 @@
<PARAMETER NAME="name" TYPE="string" VISIBLE="true"> <PARAMETER NAME="name" TYPE="string" VISIBLE="true">
</PARAMETER> </PARAMETER>
<PARAMETER NAME="form" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="plant" LOOKUP="true"> <PARAMETER NAME="form" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="plant" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="forest" PATH="L:/leveldesign/game_elem/plant/ecosystem/forest"/> <COMBO_FILES CONTEXT_NAME="forest" PATH="R:/leveldesign/game_elem/plant/ecosystem/forest"/>
<COMBO_FILES CONTEXT_NAME="jungle" PATH="L:/leveldesign/game_elem/plant/ecosystem/jungle"/> <COMBO_FILES CONTEXT_NAME="jungle" PATH="R:/leveldesign/game_elem/plant/ecosystem/jungle"/>
<COMBO_FILES CONTEXT_NAME="desert" PATH="L:/leveldesign/game_elem/plant/ecosystem/desert"/> <COMBO_FILES CONTEXT_NAME="desert" PATH="R:/leveldesign/game_elem/plant/ecosystem/desert"/>
<COMBO_FILES CONTEXT_NAME="lacustre" PATH="L:/leveldesign/game_elem/plant/ecosystem/lacustre"/> <COMBO_FILES CONTEXT_NAME="lacustre" PATH="R:/leveldesign/game_elem/plant/ecosystem/lacustre"/>
<COMBO_FILES CONTEXT_NAME="prime_roots" PATH="L:/leveldesign/game_elem/plant/ecosystem/primes_racines"/> <COMBO_FILES CONTEXT_NAME="prime_roots" PATH="R:/leveldesign/game_elem/plant/ecosystem/primes_racines"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="radius" TYPE="string" VISIBLE="true"> <PARAMETER NAME="radius" TYPE="string" VISIBLE="true">
<DEFAULT_VALUE VALUE="1"/> <DEFAULT_VALUE VALUE="1"/>
@ -2111,7 +2111,7 @@
<PARAMETER NAME="group_keyword_filter" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <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="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"> <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="R:\leveldesign\world_editor_files/npc/event_type"/>
</PARAMETER> </PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/> <STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
<DYNAMIC_CHILD CLASS_NAME="fauna_event_handler_action"/> <DYNAMIC_CHILD CLASS_NAME="fauna_event_handler_action"/>
@ -2131,7 +2131,7 @@
<!-- For now, fauna don't have AI profile--> <!-- For now, fauna don't have AI profile-->
<!-- <PARAMETER NAME= "ai_movement" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true"> <!-- <PARAMETER NAME= "ai_movement" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" <COMBO_FILES CONTEXT_NAME="default"
PATH="L:/leveldesign\world_editor_files/npc/ai_movement"/> </PARAMETER> PATH="R:\leveldesign\world_editor_files/npc/ai_movement"/> </PARAMETER>
--> -->
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/> <STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
<DYNAMIC_CHILD CLASS_NAME="group_fauna"/> <DYNAMIC_CHILD CLASS_NAME="group_fauna"/>
@ -2151,7 +2151,7 @@
<PARAMETER NAME="group_keyword_filter" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <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="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"> <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="R:\leveldesign\world_editor_files/npc/event_type"/>
</PARAMETER> </PARAMETER>
<DYNAMIC_CHILD CLASS_NAME="fauna_event_handler_action"/> <DYNAMIC_CHILD CLASS_NAME="fauna_event_handler_action"/>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/> <STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
@ -2166,7 +2166,7 @@
<!-- <PARAMETER NAME="params" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> --> <!-- <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"> <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="R:\leveldesign\world_editor_files/fauna_zone_properties"/>
</PARAMETER> </PARAMETER>
</PRIMITIVE> </PRIMITIVE>
@ -2180,7 +2180,7 @@
<!-- <PARAMETER NAME="params" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> --> <!-- <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"> <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="R:\leveldesign\world_editor_files/npc_zone_properties"/>
</PARAMETER> </PARAMETER>
</PRIMITIVE> </PRIMITIVE>
@ -2196,7 +2196,7 @@
</PARAMETER> </PARAMETER>
<PARAMETER NAME="parameters" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="500" SHOW_HS="true" FILE_EXTENSION="cs"/> <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"> <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="R:\leveldesign\world_editor_files/npc/action_type"/>
</PARAMETER> </PARAMETER>
<DYNAMIC_CHILD CLASS_NAME="fauna_event_handler_action"/> <DYNAMIC_CHILD CLASS_NAME="fauna_event_handler_action"/>
<DYNAMIC_CHILD CLASS_NAME="fauna_action_zone"/> <DYNAMIC_CHILD CLASS_NAME="fauna_action_zone"/>
@ -2470,22 +2470,22 @@
<DEFAULT_VALUE VALUE="0"/> <DEFAULT_VALUE VALUE="0"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="creature_code" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="creature" LOOKUP="true" SORT_ENTRIES="true"> <PARAMETER NAME="creature_code" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="creature" LOOKUP="true" SORT_ENTRIES="true">
<COMBO_FILES CONTEXT_NAME="forest" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/forest"/> <COMBO_FILES CONTEXT_NAME="forest" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/forest"/>
<COMBO_FILES CONTEXT_NAME="desert" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/desert"/> <COMBO_FILES CONTEXT_NAME="desert" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/desert"/>
<COMBO_FILES CONTEXT_NAME="jungle" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/jungle"/> <COMBO_FILES CONTEXT_NAME="jungle" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/jungle"/>
<COMBO_FILES CONTEXT_NAME="invasion" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/invasion"/> <COMBO_FILES CONTEXT_NAME="invasion" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/invasion"/>
<COMBO_FILES CONTEXT_NAME="lacustre" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/lacustre"/> <COMBO_FILES CONTEXT_NAME="lacustre" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/lacustre"/>
<COMBO_FILES CONTEXT_NAME="prime_roots" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/prime_roots"/> <COMBO_FILES CONTEXT_NAME="prime_roots" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/prime_roots"/>
<COMBO_FILES CONTEXT_NAME="goo" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/goo"/> <COMBO_FILES CONTEXT_NAME="goo" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/goo"/>
<COMBO_FILES CONTEXT_NAME="invasion" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/invasion"/> <COMBO_FILES CONTEXT_NAME="invasion" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/invasion"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/forest"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/forest"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/desert"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/desert"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/jungle"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/jungle"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/invasion"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/invasion"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/lacustre"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/lacustre"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/prime_roots"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/prime_roots"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/goo"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/goo"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/invasion"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/invasion"/>
</PARAMETER> </PARAMETER>
</PRIMITIVE> </PRIMITIVE>
<!-- *********************************************************************************** --> <!-- *********************************************************************************** -->
@ -2524,10 +2524,10 @@
--> -->
<!-- <PARAMETER NAME= "keywords" TYPE="string_array" VISIBLE="true"/> --> <!-- <PARAMETER NAME= "keywords" TYPE="string_array" VISIBLE="true"/> -->
<PARAMETER NAME="ai_movement" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true"> <PARAMETER NAME="ai_movement" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/world_editor_files/npc/ai_movement"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/world_editor_files/npc/ai_movement"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="ai_activity" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true"> <PARAMETER NAME="ai_activity" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/world_editor_files/npc/ai_activity"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/world_editor_files/npc/ai_activity"/>
<DEFAULT_VALUE VALUE="no_change"/> <DEFAULT_VALUE VALUE="no_change"/>
</PARAMETER> </PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/> <STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
@ -2584,7 +2584,7 @@
</PARAMETER> </PARAMETER>
--> -->
<PARAMETER NAME="sheet" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="creature" LOOKUP="true"> <PARAMETER NAME="sheet" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="creature" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Kami/kamikeep"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Kami/kamikeep"/>
</PARAMETER> </PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/> <STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
</PRIMITIVE> </PRIMITIVE>
@ -2603,7 +2603,7 @@
</PARAMETER> </PARAMETER>
--> -->
<PARAMETER NAME="sheet" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="creature" LOOKUP="true"> <PARAMETER NAME="sheet" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="creature" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Kami/kamiguide"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Kami/kamiguide"/>
</PARAMETER> </PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/> <STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
</PRIMITIVE> </PRIMITIVE>
@ -2625,21 +2625,21 @@
<DEFAULT_VALUE VALUE="deposit"/> <DEFAULT_VALUE VALUE="deposit"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="type" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="deposit" LOOKUP="true"> <PARAMETER NAME="type" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="deposit" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="desert" PATH="L:/leveldesign/game_element/deposit"/> <COMBO_FILES CONTEXT_NAME="desert" PATH="R:/leveldesign/game_element/deposit"/>
<COMBO_FILES CONTEXT_NAME="desert" PATH="L:/leveldesign/game_element/deposit"/> <COMBO_FILES CONTEXT_NAME="desert" PATH="R:/leveldesign/game_element/deposit"/>
<COMBO_FILES CONTEXT_NAME="desert" PATH="L:/leveldesign/game_element/deposit"/> <COMBO_FILES CONTEXT_NAME="desert" PATH="R:/leveldesign/game_element/deposit"/>
<COMBO_FILES CONTEXT_NAME="forest" PATH="L:/leveldesign/game_element/deposit"/> <COMBO_FILES CONTEXT_NAME="forest" PATH="R:/leveldesign/game_element/deposit"/>
<COMBO_FILES CONTEXT_NAME="forest" PATH="L:/leveldesign/game_element/deposit"/> <COMBO_FILES CONTEXT_NAME="forest" PATH="R:/leveldesign/game_element/deposit"/>
<COMBO_FILES CONTEXT_NAME="forest" PATH="L:/leveldesign/game_element/deposit"/> <COMBO_FILES CONTEXT_NAME="forest" PATH="R:/leveldesign/game_element/deposit"/>
<COMBO_FILES CONTEXT_NAME="jungle" PATH="L:/leveldesign/game_element/deposit"/> <COMBO_FILES CONTEXT_NAME="jungle" PATH="R:/leveldesign/game_element/deposit"/>
<COMBO_FILES CONTEXT_NAME="jungle" PATH="L:/leveldesign/game_element/deposit"/> <COMBO_FILES CONTEXT_NAME="jungle" PATH="R:/leveldesign/game_element/deposit"/>
<COMBO_FILES CONTEXT_NAME="jungle" PATH="L:/leveldesign/game_element/deposit"/> <COMBO_FILES CONTEXT_NAME="jungle" PATH="R:/leveldesign/game_element/deposit"/>
<COMBO_FILES CONTEXT_NAME="lacustre" PATH="L:/leveldesign/game_element/deposit"/> <COMBO_FILES CONTEXT_NAME="lacustre" PATH="R:/leveldesign/game_element/deposit"/>
<COMBO_FILES CONTEXT_NAME="lacustre" PATH="L:/leveldesign/game_element/deposit"/> <COMBO_FILES CONTEXT_NAME="lacustre" PATH="R:/leveldesign/game_element/deposit"/>
<COMBO_FILES CONTEXT_NAME="lacustre" PATH="L:/leveldesign/game_element/deposit"/> <COMBO_FILES CONTEXT_NAME="lacustre" PATH="R:/leveldesign/game_element/deposit"/>
<COMBO_FILES CONTEXT_NAME="prime_roots" PATH="L:/leveldesign/game_element/deposit"/> <COMBO_FILES CONTEXT_NAME="prime_roots" PATH="R:/leveldesign/game_element/deposit"/>
<COMBO_FILES CONTEXT_NAME="prime_roots" PATH="L:/leveldesign/game_element/deposit"/> <COMBO_FILES CONTEXT_NAME="prime_roots" PATH="R:/leveldesign/game_element/deposit"/>
<COMBO_FILES CONTEXT_NAME="prime_roots" PATH="L:/leveldesign/game_element/deposit"/> <COMBO_FILES CONTEXT_NAME="prime_roots" PATH="R:/leveldesign/game_element/deposit"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="deposit_type" TYPE="string" VISIBLE="false"> <PARAMETER NAME="deposit_type" TYPE="string" VISIBLE="false">
<DEFAULT_VALUE VALUE="flora"/> <DEFAULT_VALUE VALUE="flora"/>
@ -2731,10 +2731,10 @@
--> -->
<PARAMETER NAME="keywords" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <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"> <PARAMETER NAME="ai_movement" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/world_editor_files/npc/ai_movement"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/world_editor_files/npc/ai_movement"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="ai_activity" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true"> <PARAMETER NAME="ai_activity" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/world_editor_files/npc/ai_activity"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/world_editor_files/npc/ai_activity"/>
<DEFAULT_VALUE VALUE="no_change"/> <DEFAULT_VALUE VALUE="no_change"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="ai_profile_params" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <PARAMETER NAME="ai_profile_params" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
@ -2772,10 +2772,10 @@
--> -->
<PARAMETER NAME="keywords" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <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"> <PARAMETER NAME="ai_movement" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/world_editor_files/npc/ai_movement"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/world_editor_files/npc/ai_movement"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="ai_activity" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true"> <PARAMETER NAME="ai_activity" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/world_editor_files/npc/ai_activity"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/world_editor_files/npc/ai_activity"/>
<DEFAULT_VALUE VALUE="no_change"/> <DEFAULT_VALUE VALUE="no_change"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="ai_profile_params" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <PARAMETER NAME="ai_profile_params" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
@ -2813,10 +2813,10 @@
--> -->
<PARAMETER NAME="keywords" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <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"> <PARAMETER NAME="ai_movement" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/world_editor_files/npc/ai_movement"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/world_editor_files/npc/ai_movement"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="ai_activity" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true"> <PARAMETER NAME="ai_activity" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/world_editor_files/npc/ai_activity"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/world_editor_files/npc/ai_activity"/>
<DEFAULT_VALUE VALUE="no_change"/> <DEFAULT_VALUE VALUE="no_change"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="ai_profile_params" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <PARAMETER NAME="ai_profile_params" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
@ -2839,10 +2839,10 @@
<PARAMETER NAME="grp_keyword_filter" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <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="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"> <PARAMETER NAME="ai_movement" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/world_editor_files/npc/ai_movement"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/world_editor_files/npc/ai_movement"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="ai_activity" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true"> <PARAMETER NAME="ai_activity" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/world_editor_files/npc/ai_activity"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/world_editor_files/npc/ai_activity"/>
<DEFAULT_VALUE VALUE="no_change"/> <DEFAULT_VALUE VALUE="no_change"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="ai_profile_params" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <PARAMETER NAME="ai_profile_params" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
@ -2880,7 +2880,7 @@
<PARAMETER NAME="group_keyword_filter" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <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="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"> <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="R:/leveldesign/world_editor_files/npc/event_type"/>
</PARAMETER> </PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/> <STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
<DYNAMIC_CHILD CLASS_NAME="npc_event_handler_action"/> <DYNAMIC_CHILD CLASS_NAME="npc_event_handler_action"/>
@ -2899,7 +2899,7 @@
<PARAMETER NAME="group_keyword_filter" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <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="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"> <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="R:/leveldesign/world_editor_files/npc/event_type"/>
</PARAMETER> </PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/> <STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
<DYNAMIC_CHILD CLASS_NAME="npc_event_handler_action"/> <DYNAMIC_CHILD CLASS_NAME="npc_event_handler_action"/>
@ -2918,7 +2918,7 @@
<PARAMETER NAME="state_keyword_filter" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <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="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"> <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="R:/leveldesign/world_editor_files/npc/event_type"/>
</PARAMETER> </PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/> <STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
<DYNAMIC_CHILD CLASS_NAME="npc_event_handler_action"/> <DYNAMIC_CHILD CLASS_NAME="npc_event_handler_action"/>
@ -2935,7 +2935,7 @@
</PARAMETER> </PARAMETER>
<PARAMETER NAME="parameters" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="500" SHOW_HS="true" FILE_EXTENSION="cs"/> <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"> <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="R:/leveldesign/world_editor_files/npc/action_type"/>
</PARAMETER> </PARAMETER>
<DYNAMIC_CHILD CLASS_NAME="npc_event_handler_action"/> <DYNAMIC_CHILD CLASS_NAME="npc_event_handler_action"/>
<DYNAMIC_CHILD CLASS_NAME="fauna_action_zone"/> <DYNAMIC_CHILD CLASS_NAME="fauna_action_zone"/>
@ -2964,17 +2964,17 @@
<PARAMETER NAME="bot_equipment" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <PARAMETER NAME="bot_equipment" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="bot_chat_parameters" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <PARAMETER NAME="bot_chat_parameters" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="bot_sheet_client" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="creature" LOOKUP="true" SORT_ENTRIES="true" EDITABLE="true"> <PARAMETER NAME="bot_sheet_client" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="creature" LOOKUP="true" SORT_ENTRIES="true" EDITABLE="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Npc\bestiary\creature"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Npc\bestiary\creature"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Npc\world\3dset"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Npc\world\3dset"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\objects"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\objects"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Npc\bestiary\bot_object"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Npc\bestiary\bot_object"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/forest"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/forest"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/desert"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/desert"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/jungle"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/jungle"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/invasion"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/invasion"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/lacustre"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/lacustre"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/prime_roots"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/prime_roots"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/goo"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/goo"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="bot_vertical_pos" TYPE="const_string" VISIBLE="true"> <PARAMETER NAME="bot_vertical_pos" TYPE="const_string" VISIBLE="true">
<DEFAULT_VALUE VALUE="auto"/> <DEFAULT_VALUE VALUE="auto"/>
@ -3026,17 +3026,17 @@
<PARAMETER NAME="keywords" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <PARAMETER NAME="keywords" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="equipment" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <PARAMETER NAME="equipment" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="sheet_client" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="creature" LOOKUP="true" SORT_ENTRIES="true" EDITABLE="true"> <PARAMETER NAME="sheet_client" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="creature" LOOKUP="true" SORT_ENTRIES="true" EDITABLE="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Npc\bestiary\creature"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Npc\bestiary\creature"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Npc\world\3dset"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Npc\world\3dset"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\objects"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\objects"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Npc\bestiary\bot_object"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Npc\bestiary\bot_object"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/forest"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/forest"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/desert"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/desert"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/jungle"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/jungle"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/invasion"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/invasion"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/lacustre"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/lacustre"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/prime_roots"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/prime_roots"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/goo"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/goo"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="is_stuck" TYPE="boolean" VISIBLE="true"> <PARAMETER NAME="is_stuck" TYPE="boolean" VISIBLE="true">
<DEFAULT_VALUE VALUE="false"/> <DEFAULT_VALUE VALUE="false"/>
@ -3071,11 +3071,11 @@
<PARAMETER NAME="effect" TYPE="string" VISIBLE="true" WIDGET_HEIGHT="100"/> <PARAMETER NAME="effect" TYPE="string" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="neighbours" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <PARAMETER NAME="neighbours" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="sheet_socle" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="creature" LOOKUP="true" SORT_ENTRIES="true"> <PARAMETER NAME="sheet_socle" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="creature" LOOKUP="true" SORT_ENTRIES="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\objects"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\objects"/>
</PARAMETER> </PARAMETER>
<!-- <!--
<PARAMETER NAME="sheet_spire" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="creature" LOOKUP="true" SORT_ENTRIES="true"> <PARAMETER NAME="sheet_spire" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="creature" LOOKUP="true" SORT_ENTRIES="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\objects"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\objects"/>
</PARAMETER> </PARAMETER>
--> -->
<PARAMETER NAME="sheet_spire" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <PARAMETER NAME="sheet_spire" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
@ -3119,17 +3119,17 @@
</PARAMETER> </PARAMETER>
<PARAMETER NAME="sheet_client" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="creature" LOOKUP="true" SORT_ENTRIES="true" EDITABLE="true"> <PARAMETER NAME="sheet_client" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="creature" LOOKUP="true" SORT_ENTRIES="true" EDITABLE="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Npc\bestiary\creature"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Npc\bestiary\creature"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Npc\world\3dset"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Npc\world\3dset"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\objects"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\objects"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Npc\bestiary\bot_object"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Npc\bestiary\bot_object"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/forest"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/forest"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/desert"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/desert"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/jungle"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/jungle"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/invasion"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/invasion"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/lacustre"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/lacustre"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/prime_roots"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/prime_roots"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/goo"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/goo"/>
</PARAMETER> </PARAMETER>
</PRIMITIVE> </PRIMITIVE>
@ -3242,7 +3242,7 @@
</PARAMETER> </PARAMETER>
<PARAMETER NAME="sheet" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="continent" LOOKUP="true"> <PARAMETER NAME="sheet" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="continent" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/world"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/world"/>
</PARAMETER> </PARAMETER>
<!-- <PARAMETER NAME="alias" TYPE="string" VISIBLE="true"> <!-- <PARAMETER NAME="alias" TYPE="string" VISIBLE="true">
@ -3673,7 +3673,7 @@
<DEFAULT_VALUE VALUE="OUTPOST"/> <DEFAULT_VALUE VALUE="OUTPOST"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="owner_tribe" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true"> <PARAMETER NAME="owner_tribe" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/world_editor_files/families"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/world_editor_files/families"/>
</PARAMETER> </PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/> <STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
@ -3689,7 +3689,7 @@
<PARAMETER NAME="tribe_squads2" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <PARAMETER NAME="tribe_squads2" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="outpost_sheet" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="outpost" LOOKUP="true"> <PARAMETER NAME="outpost_sheet" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="outpost" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/game_element/outpost/outpost"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/game_element/outpost/outpost"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="PVP_Type" TYPE="const_string" VISIBLE="true" FILENAME="false" LOOKUP="false"> <PARAMETER NAME="PVP_Type" TYPE="const_string" VISIBLE="true" FILENAME="false" LOOKUP="false">
@ -3762,7 +3762,7 @@
<DEFAULT_VALUE VALUE="OUTPOST_MANAGER_EVENT"/> <DEFAULT_VALUE VALUE="OUTPOST_MANAGER_EVENT"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="event" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true"> <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/outpost/manager/event_type"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/world_editor_files/outpost/manager/event_type"/>
</PARAMETER> </PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/> <STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
<DYNAMIC_CHILD CLASS_NAME="npc_event_handler_action"/> <DYNAMIC_CHILD CLASS_NAME="npc_event_handler_action"/>
@ -3776,7 +3776,7 @@
<DEFAULT_VALUE VALUE="OUTPOST_MANAGER_EVENT_ACTION"/> <DEFAULT_VALUE VALUE="OUTPOST_MANAGER_EVENT_ACTION"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="action" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true"> <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/outpost/manager/action_type"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/world_editor_files/outpost/manager/action_type"/>
</PARAMETER> </PARAMETER>
<DYNAMIC_CHILD CLASS_NAME="outpost_manager_event_handler_action"/> <DYNAMIC_CHILD CLASS_NAME="outpost_manager_event_handler_action"/>
</PRIMITIVE> </PRIMITIVE>
@ -3830,7 +3830,7 @@
</COMBO_VALUES> </COMBO_VALUES>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="sheet" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="outpost_building" LOOKUP="true"> <PARAMETER NAME="sheet" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="outpost_building" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/game_element/outpost/building"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/game_element/outpost/building"/>
<DEFAULT_VALUE VALUE="empty.outpost_building"/> <DEFAULT_VALUE VALUE="empty.outpost_building"/>
</PARAMETER> </PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/> <STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
@ -3877,7 +3877,7 @@
</PARAMETER> </PARAMETER>
--> -->
<PARAMETER NAME="continent_name" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true"> <PARAMETER NAME="continent_name" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/world_editor_files/continents"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/world_editor_files/continents"/>
</PARAMETER> </PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/> <STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
@ -4002,12 +4002,12 @@
--> -->
<PARAMETER NAME="family" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true"> <PARAMETER NAME="family" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/world_editor_files/families"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/world_editor_files/families"/>
</PARAMETER> </PARAMETER>
<!-- Sample .. <!-- Sample ..
<PARAMETER NAME="item_parts" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="item_part" LOOKUP="true"> <PARAMETER NAME="item_parts" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="item_part" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/game_element/deposit_system/item_parts"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/game_element/deposit_system/item_parts"/>
</PARAMETER> </PARAMETER>
--> -->
@ -4030,10 +4030,10 @@
</PARAMETER> </PARAMETER>
--> -->
<PARAMETER NAME="food" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="zone" LOOKUP="true"> <PARAMETER NAME="food" 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="R:/leveldesign/world_editor_files/fauna_zone_properties"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="rest" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="zone" LOOKUP="true"> <PARAMETER NAME="rest" 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="R:/leveldesign/world_editor_files/fauna_zone_properties"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="energy_0_25" TYPE="string" VISIBLE="true" FILENAME="false"> <PARAMETER NAME="energy_0_25" TYPE="string" VISIBLE="true" FILENAME="false">
@ -4063,7 +4063,7 @@
</PARAMETER> </PARAMETER>
--> -->
<PARAMETER NAME="family" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true"> <PARAMETER NAME="family" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/world_editor_files/families"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/world_editor_files/families"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="energy_0_25" TYPE="string" VISIBLE="true" FILENAME="false"> <PARAMETER NAME="energy_0_25" TYPE="string" VISIBLE="true" FILENAME="false">
@ -4109,7 +4109,7 @@
<DYNAMIC_CHILD CLASS_NAME="group_template_npc_ml"/> <DYNAMIC_CHILD CLASS_NAME="group_template_npc_ml"/>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/> <STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
<PARAMETER NAME="flags" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="zone" LOOKUP="true"> <PARAMETER NAME="flags" 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="R:/leveldesign/world_editor_files/npc_zone_properties"/>
</PARAMETER> </PARAMETER>
</PRIMITIVE> </PRIMITIVE>
@ -4129,18 +4129,18 @@
</PARAMETER> </PARAMETER>
<PARAMETER NAME="bot_equipment" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <PARAMETER NAME="bot_equipment" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="bot_sheet_look" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="creature" LOOKUP="true" SORT_ENTRIES="true" EDITABLE="true"> <PARAMETER NAME="bot_sheet_look" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="creature" LOOKUP="true" SORT_ENTRIES="true" EDITABLE="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Npc\bestiary\creature"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Npc\bestiary\creature"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Npc\world\3dset"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Npc\world\3dset"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\objects"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\objects"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Npc\bestiary\bot_object"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Npc\bestiary\bot_object"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Fauna\bestiary"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Fauna\bestiary"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Fauna\bestiary\desert"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Fauna\bestiary\desert"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Fauna\bestiary\forest"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Fauna\bestiary\forest"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Fauna\bestiary\goo"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Fauna\bestiary\goo"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Fauna\bestiary\invasion"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Fauna\bestiary\invasion"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Fauna\bestiary\jungle"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Fauna\bestiary\jungle"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Fauna\bestiary\lacustre"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Fauna\bestiary\lacustre"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Fauna\bestiary\prime_roots"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Fauna\bestiary\prime_roots"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="grp_parameters" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <PARAMETER NAME="grp_parameters" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
@ -4200,7 +4200,7 @@
<PARAMETER NAME="name" TYPE="string" VISIBLE="true"/> <PARAMETER NAME="name" TYPE="string" VISIBLE="true"/>
<PARAMETER NAME="is tribe" TYPE="boolean" VISIBLE="true"/> <PARAMETER NAME="is tribe" TYPE="boolean" VISIBLE="true"/>
<PARAMETER NAME="squad sheet" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="outpost_squad" LOOKUP="true"> <PARAMETER NAME="squad sheet" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="outpost_squad" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/game_element/outpost/squad"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/game_element/outpost/squad"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="bot_sheets" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <PARAMETER NAME="bot_sheets" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="ai_type" TYPE="string" VISIBLE="false"> <PARAMETER NAME="ai_type" TYPE="string" VISIBLE="false">
@ -4225,18 +4225,18 @@
</PARAMETER> </PARAMETER>
<PARAMETER NAME="sheet_look" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="creature" LOOKUP="true" SORT_ENTRIES="true"> <PARAMETER NAME="sheet_look" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="creature" LOOKUP="true" SORT_ENTRIES="true">
<COMBO_FILES CONTEXT_NAME="global" PATH="L:/leveldesign/Game_elem/Creature/Npc/bestiary/creature"/> <COMBO_FILES CONTEXT_NAME="global" PATH="R:/leveldesign/Game_elem/Creature/Npc/bestiary/creature"/>
<COMBO_FILES CONTEXT_NAME="global" PATH="L:/leveldesign/Game_elem/Creature/Npc/world/3dset"/> <COMBO_FILES CONTEXT_NAME="global" PATH="R:/leveldesign/Game_elem/Creature/Npc/world/3dset"/>
<COMBO_FILES CONTEXT_NAME="global" PATH="L:/leveldesign/Game_elem/Creature/objects"/> <COMBO_FILES CONTEXT_NAME="global" PATH="R:/leveldesign/Game_elem/Creature/objects"/>
<COMBO_FILES CONTEXT_NAME="global" PATH="L:/leveldesign/Game_elem/Creature/Npc/bestiary/bot_object"/> <COMBO_FILES CONTEXT_NAME="global" PATH="R:/leveldesign/Game_elem/Creature/Npc/bestiary/bot_object"/>
<COMBO_FILES CONTEXT_NAME="global" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary"/> <COMBO_FILES CONTEXT_NAME="global" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary"/>
<COMBO_FILES CONTEXT_NAME="desert" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/desert"/> <COMBO_FILES CONTEXT_NAME="desert" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/desert"/>
<COMBO_FILES CONTEXT_NAME="forest" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/forest"/> <COMBO_FILES CONTEXT_NAME="forest" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/forest"/>
<COMBO_FILES CONTEXT_NAME="goo" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/goo"/> <COMBO_FILES CONTEXT_NAME="goo" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/goo"/>
<COMBO_FILES CONTEXT_NAME="invasion" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/invasion"/> <COMBO_FILES CONTEXT_NAME="invasion" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/invasion"/>
<COMBO_FILES CONTEXT_NAME="jungle" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/jungle"/> <COMBO_FILES CONTEXT_NAME="jungle" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/jungle"/>
<COMBO_FILES CONTEXT_NAME="lacustre" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/lacustre"/> <COMBO_FILES CONTEXT_NAME="lacustre" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/lacustre"/>
<COMBO_FILES CONTEXT_NAME="prime_roots" PATH="L:/leveldesign/Game_elem/Creature/Fauna/bestiary/prime_roots"/> <COMBO_FILES CONTEXT_NAME="prime_roots" PATH="R:/leveldesign/Game_elem/Creature/Fauna/bestiary/prime_roots"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="level_delta" TYPE="string" VISIBLE="true"> <PARAMETER NAME="level_delta" TYPE="string" VISIBLE="true">
@ -4318,18 +4318,18 @@
</PARAMETER> </PARAMETER>
<PARAMETER NAME="equipment" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/> <PARAMETER NAME="equipment" TYPE="string_array" VISIBLE="true" WIDGET_HEIGHT="100"/>
<PARAMETER NAME="sheet_look" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="creature" LOOKUP="true" SORT_ENTRIES="true"> <PARAMETER NAME="sheet_look" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="creature" LOOKUP="true" SORT_ENTRIES="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Npc\bestiary\creature"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Npc\bestiary\creature"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Npc\world\3dset"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Npc\world\3dset"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\objects"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\objects"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Npc\bestiary\bot_object"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Npc\bestiary\bot_object"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Fauna\bestiary"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Fauna\bestiary"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Fauna\bestiary\desert"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Fauna\bestiary\desert"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Fauna\bestiary\forest"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Fauna\bestiary\forest"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Fauna\bestiary\goo"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Fauna\bestiary\goo"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Fauna\bestiary\invasion"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Fauna\bestiary\invasion"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Fauna\bestiary\jungle"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Fauna\bestiary\jungle"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Fauna\bestiary\lacustre"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Fauna\bestiary\lacustre"/>
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign\Game_elem\Creature\Fauna\bestiary\prime_roots"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:\leveldesign\Game_elem\Creature\Fauna\bestiary\prime_roots"/>
</PARAMETER> </PARAMETER>
<STATIC_CHILD CLASS_NAME="alias" NAME="alias"/> <STATIC_CHILD CLASS_NAME="alias" NAME="alias"/>
</PRIMITIVE> </PRIMITIVE>
@ -4504,7 +4504,7 @@
--> -->
<PARAMETER NAME="family" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true"> <PARAMETER NAME="family" TYPE="const_string" VISIBLE="true" FILENAME="true" FILE_EXTENSION="html" LOOKUP="true">
<COMBO_FILES CONTEXT_NAME="default" PATH="L:/leveldesign/world_editor_files/families"/> <COMBO_FILES CONTEXT_NAME="default" PATH="R:/leveldesign/world_editor_files/families"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="energy" TYPE="string" VISIBLE="true" FILENAME="false"> <PARAMETER NAME="energy" TYPE="string" VISIBLE="true" FILENAME="false">
@ -4646,7 +4646,7 @@
</PARAMETER> </PARAMETER>
<PARAMETER NAME="properties" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="zone" LOOKUP="true"> <PARAMETER NAME="properties" 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="R:/leveldesign/world_editor_files/fauna_zone_properties"/>
</PARAMETER> </PARAMETER>
<PARAMETER NAME="vertical_pos" TYPE="const_string" VISIBLE="true"> <PARAMETER NAME="vertical_pos" TYPE="const_string" VISIBLE="true">
@ -4681,7 +4681,7 @@
</PARAMETER> </PARAMETER>
<PARAMETER NAME="properties" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="zone" LOOKUP="true"> <PARAMETER NAME="properties" 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="R:/leveldesign/world_editor_files/npc_zone_properties"/>
<COMBO_FILES CONTEXT_NAME="default" PRIM_PATH="//property_rep"/> <COMBO_FILES CONTEXT_NAME="default" PRIM_PATH="//property_rep"/>
</PARAMETER> </PARAMETER>
@ -4715,7 +4715,7 @@
--> -->
<PARAMETER NAME="properties" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="zone" LOOKUP="true"> <PARAMETER NAME="properties" 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="R:/leveldesign/world_editor_files/npc_zone_properties"/>
<COMBO_FILES CONTEXT_NAME="default" PRIM_PATH="//property_rep"/> <COMBO_FILES CONTEXT_NAME="default" PRIM_PATH="//property_rep"/>
</PARAMETER> </PARAMETER>
@ -4749,7 +4749,7 @@
--> -->
<PARAMETER NAME="properties" TYPE="const_string_array" VISIBLE="true" FILENAME="true" FILE_EXTENSION="zone" LOOKUP="true"> <PARAMETER NAME="properties" 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="R:/leveldesign/world_editor_files/npc_zone_properties"/>
<COMBO_FILES CONTEXT_NAME="default" PRIM_PATH="//property_rep"/> <COMBO_FILES CONTEXT_NAME="default" PRIM_PATH="//property_rep"/>
</PARAMETER> </PARAMETER>

@ -16,8 +16,8 @@ Config file
</H1> </H1>
Your "georges.cfg" config file MUST have the following entries: Your "georges.cfg" config file MUST have the following entries:
<ul> <ul>
<li>root_search_directory = "l:\"; // (Root search path for georges files)</li> <li>root_search_directory = "R:\leveldesign\"; // (Root search path for georges files)</li>
<li>typ_dfn_sub_folder = "dfn"; // (Sub directory for types and dfn files)</li> <li>typ_dfn_sub_folder = "DFN"; // (Sub directory for types and dfn files)</li>
<li>remember_list_size = 11; // (Size of remember list in combobox)</li> <li>remember_list_size = 11; // (Size of remember list in combobox)</li>
<li>max_undo = 20; // (Size of the undo buffer)</li> <li>max_undo = 20; // (Size of the undo buffer)</li>
<li>default_type = "default.typ"; // (Default type used when insert a new element in a DFN)</li> <li>default_type = "default.typ"; // (Default type used when insert a new element in a DFN)</li>

@ -7,11 +7,11 @@ SearchGUI = 0;
GUIPath = "R:\code\ryzom\data\gamedev\interfaces_v3\"; GUIPath = "R:\code\ryzom\data\gamedev\interfaces_v3\";
SearchLevelDesign = 1; SearchLevelDesign = 1;
LevelDesignPath = "L:\"; LevelDesignPath = "R:\leveldesign\";
IconPath = { "\\amiga\3d\Database\Interfaces\v3_bricks", IconPath = { "R:\graphics\interfaces\v3_bricks",
"\\amiga\3d\Database\Interfaces\v3_dxtc_misc", "R:\graphics\interfaces\v3_dxtc_misc",
"\\amiga\3d\Database\Interfaces\v3_items" "R:\graphics\interfaces\v3_items"
}; };
SizeLimit = 10; SizeLimit = 10;

@ -1,5 +1,5 @@
RootSearchDirectory = "l:\leveldesign"; RootSearchDirectory = "R:\leveldesign";
TypDfnSubFolder = "dfn\"; TypDfnSubFolder = "DFN\";
RememberListSize = 11; RememberListSize = 11;
MaxUndo = 20; MaxUndo = 20;
DefaultType = "default.typ"; DefaultType = "default.typ";
@ -11,5 +11,5 @@ SuperUser = 1;
UserType = { UserType = {
}; };
StartExpanded = 1; StartExpanded = 1;
SamplePath = "L:\sound_files\samplebanks"; SamplePath = "R:\sound\samplebanks";
PackedSheetPath = "L:\sound_files\"; PackedSheetPath = "R:\sound\";

@ -1,10 +1,10 @@
// A list of recursive search path to build the primitive list // A list of recursive search path to build the primitive list
SearchPath = { "L:\primitives\" }; SearchPath = { "R:\leveldesign\primitives\" };
// Ligo primitive configuration file path // Ligo primitive configuration file path
LigoConfig = "L:\leveldesign\world_editor_files\world_editor_classes.xml"; LigoConfig = "R:\leveldesign\world_editor_files\world_editor_classes.xml";
// Default filter // Default filter
DefaultFilter = ""; DefaultFilter = "";
@ -24,7 +24,7 @@ ServerPathPrim = {
// Directory containing txt files // Directory containing txt files
ServerPathText = { ServerPathText = {
"R:\code\ryzom\tools\translation\work\phrases\rites", "R:\leveldesign\translation\work\phrases\rites",
// "\\linuxshard10\ryzom\cvs\code\ryzom\translation\work\phrases\rites", // "\\linuxshard10\ryzom\cvs\code\ryzom\translation\work\phrases\rites",
}; };
@ -35,4 +35,4 @@ ServerName = {
}; };
// Local path for text files // Local path for text files
LocalTextPath = "R:\code\ryzom\tools\translation\work\phrases\rites"; LocalTextPath = "R:\leveldesign\translation\work\phrases\rites";

@ -40,12 +40,12 @@ MOSHost = "devl1.ryzom.com";
///////////////////////////////////////////////////////// /////////////////////////////////////////////////////////
PrimitivePluginPath = PrimitivePluginPath =
{ {
"L:/leveldesign/DFN", "R:/leveldesign/DFN",
"L:/leveldesign/Game_elem/Creature/objects", "R:/leveldesign/game_elem/creature/objects",
}; };
PrimitivePluginSheetId = "l:/leveldesign/Game_elem/sheet_id.bin"; PrimitivePluginSheetId = "R:/leveldesign/game_elem/sheet_id.bin";
///////////////////////////////////////////////////////// /////////////////////////////////////////////////////////
// Var related to shard monitor // Var related to shard monitor
@ -53,7 +53,7 @@ PrimitivePluginSheetId = "l:/leveldesign/Game_elem/sheet_id.bin";
// WARNING : the following path are not recursive // WARNING : the following path are not recursive
ShardMonitorPath = ShardMonitorPath =
{ {
"L:/leveldesign/Game_elem" // path where to find sheet_id.bin. "R:/leveldesign/game_elem" // path where to find sheet_id.bin.
}; };
// if you want to use a specific external editor, uncomment TextEditor and set the fullpath to the exe, by default, it's notepad // if you want to use a specific external editor, uncomment TextEditor and set the fullpath to the exe, by default, it's notepad

@ -4,12 +4,12 @@
<!-- **** CONFIG FOR RYZOM **** --> <!-- **** CONFIG FOR RYZOM **** -->
<!-- Search pathes --> <!-- Search pathes -->
<SEARCH_PATH PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files"/> <SEARCH_PATH PATH="R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files"/>
<SEARCH_PATH PATH="L:/primitives/" NO_RECURSE="true"/> <SEARCH_PATH PATH="R:/leveldesign/primitives/" NO_RECURSE="true"/>
<SEARCH_PATH PATH="L:/leveldesign/game_elem/creature"/> <SEARCH_PATH PATH="R:/leveldesign/game_elem/creature"/>
<SEARCH_PATH PATH="L:/leveldesign/game_elem/plant"/> <SEARCH_PATH PATH="R:/leveldesign/game_elem/plant"/>
<SEARCH_PATH PATH="L:/leveldesign/game_elem/items/harvest/"/> <SEARCH_PATH PATH="R:/leveldesign/game_elem/items/harvest/"/>
<SEARCH_PATH PATH="L:/leveldesign/DFN"/> <SEARCH_PATH PATH="R:/leveldesign/DFN"/>
<SEARCH_PATH PATH="L:/leveldesign/game_elem/mission/"/> <SEARCH_PATH PATH="R:/leveldesign/game_elem/mission/"/>
<SEARCH_PATH PATH="continents"/> <SEARCH_PATH PATH="continents"/>

@ -35,7 +35,7 @@ int main(int argc, char *argv[])
if (leveldesignPath == NULL) if (leveldesignPath == NULL)
{ {
printf("Error: You need to define RYZOM_LEVELDESIGN environment variable that points to previous L:\\ equivalent under Windows\n"); printf("Error: You need to define RYZOM_LEVELDESIGN environment variable that points to previous R:\\leveldesign\\ equivalent under Windows\n");
return -1; return -1;
} }

@ -1,5 +1,5 @@
LevelDesignPath = "L:\" LevelDesignPath = "R:\leveldesign\"
TranslationPath = "R:\code\ryzom\translation\" TranslationPath = "R:\leveldesign\translation\"
// Format: "sheetFilename", "PropertyName", "Value" // Format: "sheetFilename", "PropertyName", "Value"
CustomizedProperties = CustomizedProperties =

@ -15,9 +15,9 @@ Filters =
// the path (recursive) where the primitives are // the path (recursive) where the primitives are
SearchPath = SearchPath =
{ {
"l:/primitives", "R:/leveldesign/primitives",
}; };
// the index file that contains the indexed file database // the index file that contains the indexed file database
IndexFile = "l:/primitives/file_index.cfg"; IndexFile = "R:/leveldesign/primitives/file_index.cfg";

@ -598,7 +598,7 @@ bool CWorldEditorApp::initPath (const std::string &filename, CSplashScreen &spla
} }
else else
{ {
errorMessage ("Can't open the file %s for reading.", filename); errorMessage ("Can't open the file %s for reading.", filename.c_str());
} }
failed: failed:

@ -71,7 +71,7 @@ int main(int nNbArg, char **ppArgs)
// verify all params // verify all params
if (nNbArg < 6) 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 // sheets_packer_shard.exe R:\leveldesign R:\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> <tab> <build_packed_sheets>\n"); nlinfo("USAGE : sheets_packer_shard <leveldesign> <dfn> <datasets> <tab> <build_packed_sheets>\n");
nlinfo("<tab> : Directory containing visual_slots.tab"); nlinfo("<tab> : Directory containing visual_slots.tab");

@ -368,7 +368,7 @@ void BNPManagerWindow::readSettings()
QSettings *settings = Core::ICore::instance()->settings(); QSettings *settings = Core::ICore::instance()->settings();
settings->beginGroup(Core::Constants::DATA_PATH_SECTION); settings->beginGroup(Core::Constants::DATA_PATH_SECTION);
m_DataPath = settings->value(Core::Constants::ASSETS_PATH, "w:/database").toString(); m_DataPath = settings->value(Core::Constants::ASSETS_PATH, "R:/graphics").toString();
settings->endGroup(); settings->endGroup();
} }
// *************************************************************************** // ***************************************************************************

@ -211,10 +211,10 @@ void GeneralSettingsPage::readSettings()
QStringList paths; QStringList paths;
settings->beginGroup(Core::Constants::DATA_PATH_SECTION); settings->beginGroup(Core::Constants::DATA_PATH_SECTION);
m_ui.leveldesignPathLineEdit->setText(settings->value(Core::Constants::LEVELDESIGN_PATH, "l:/leveldesign").toString()); m_ui.leveldesignPathLineEdit->setText(settings->value(Core::Constants::LEVELDESIGN_PATH, "R:/leveldesign").toString());
m_ui.assetsPathLineEdit->setText(settings->value(Core::Constants::ASSETS_PATH, "w:/database").toString()); m_ui.assetsPathLineEdit->setText(settings->value(Core::Constants::ASSETS_PATH, "R:/graphics").toString());
m_ui.primitivesPathLineEdit->setText(settings->value(Core::Constants::PRIMITIVES_PATH, "l:/primitives").toString()); m_ui.primitivesPathLineEdit->setText(settings->value(Core::Constants::PRIMITIVES_PATH, "R:/leveldesign/primitives").toString());
m_ui.ligoConfigFileLineEdit->setText(settings->value(Core::Constants::LIGOCONFIG_FILE, "l:/leveldesign/world_editor_files/world_editor_classes.xml").toString()); m_ui.ligoConfigFileLineEdit->setText(settings->value(Core::Constants::LIGOCONFIG_FILE, "R:/leveldesign/world_editor_files/world_editor_classes.xml").toString());
settings->endGroup(); settings->endGroup();
} }

@ -116,7 +116,7 @@ namespace GeorgesQt
m_lastSheetDir = "."; m_lastSheetDir = ".";
QSettings *settings = Core::ICore::instance()->settings(); QSettings *settings = Core::ICore::instance()->settings();
settings->beginGroup(Core::Constants::DATA_PATH_SECTION); settings->beginGroup(Core::Constants::DATA_PATH_SECTION);
m_lastSheetDir = settings->value(Core::Constants::LEVELDESIGN_PATH, "l:/leveldesign").toString(); m_lastSheetDir = settings->value(Core::Constants::LEVELDESIGN_PATH, "R:/leveldesign").toString();
settings->endGroup(); settings->endGroup();
connect(Core::ICore::instance(), SIGNAL(changeSettings()), connect(Core::ICore::instance(), SIGNAL(changeSettings()),
@ -234,7 +234,7 @@ namespace GeorgesQt
settings->endGroup(); settings->endGroup();
settings->beginGroup(Core::Constants::DATA_PATH_SECTION); settings->beginGroup(Core::Constants::DATA_PATH_SECTION);
m_leveldesignPath = settings->value(Core::Constants::LEVELDESIGN_PATH, "l:/leveldesign").toString(); m_leveldesignPath = settings->value(Core::Constants::LEVELDESIGN_PATH, "R:/leveldesign").toString();
settings->endGroup(); settings->endGroup();
} }
@ -279,7 +279,7 @@ namespace GeorgesQt
settings->beginGroup(Core::Constants::DATA_PATH_SECTION); settings->beginGroup(Core::Constants::DATA_PATH_SECTION);
QString oldLDPath = m_leveldesignPath; QString oldLDPath = m_leveldesignPath;
m_leveldesignPath = settings->value(Core::Constants::LEVELDESIGN_PATH, "l:/leveldesign").toString(); m_leveldesignPath = settings->value(Core::Constants::LEVELDESIGN_PATH, "R:/leveldesign").toString();
settings->endGroup(); settings->endGroup();
if (oldLDPath != m_leveldesignPath) if (oldLDPath != m_leveldesignPath)

@ -67,7 +67,7 @@ namespace GeorgesQt
m_lastSheetDir = "."; m_lastSheetDir = ".";
QSettings *settings = Core::ICore::instance()->settings(); QSettings *settings = Core::ICore::instance()->settings();
settings->beginGroup(Core::Constants::DATA_PATH_SECTION); settings->beginGroup(Core::Constants::DATA_PATH_SECTION);
m_lastSheetDir = settings->value(Core::Constants::LEVELDESIGN_PATH, "l:/leveldesign").toString(); m_lastSheetDir = settings->value(Core::Constants::LEVELDESIGN_PATH, "R:/leveldesign").toString();
settings->endGroup(); settings->endGroup();
m_ui.setupUi(this); m_ui.setupUi(this);

Loading…
Cancel
Save