Merged: From default to sound_dev

This commit is contained in:
kaetemi 2012-06-02 11:09:14 +02:00
commit b7d687d0c0
40 changed files with 785 additions and 150 deletions

View file

@ -21,6 +21,7 @@
#include "nel/misc/string_mapper.h" #include "nel/misc/string_mapper.h"
#include "nel/misc/plane.h" #include "nel/misc/plane.h"
#include "nel/misc/aabbox.h" #include "nel/misc/aabbox.h"
#include "nel/misc/sheet_id.h"
#include "nel/3d/transform.h" #include "nel/3d/transform.h"
@ -125,9 +126,9 @@ public:
//\name Sound related. //\name Sound related.
//@{ //@{
void setSoundGroup(const std::string &soundGroup); void setSoundGroup(const std::string &soundGroup);
void setSoundGroup(const NLMISC::TStringId &soundGroupId); void setSoundGroup(const NLMISC::CSheetId &soundGroupId);
const std::string &getSoundGroup(); const std::string &getSoundGroup();
NLMISC::TStringId getSoundGroupId(); NLMISC::CSheetId getSoundGroupId();
void setEnvironmentFx(const std::string &environmentFx); void setEnvironmentFx(const std::string &environmentFx);
void setEnvironmentFx(const NLMISC::TStringId &environmentFxId); void setEnvironmentFx(const NLMISC::TStringId &environmentFxId);
const std::string &getEnvironmentFx(); const std::string &getEnvironmentFx();
@ -188,7 +189,7 @@ private:
std::vector<NLMISC::CPlane> _Volume; std::vector<NLMISC::CPlane> _Volume;
/// Sound group name id /// Sound group name id
NLMISC::TStringId _SoundGroupId; NLMISC::CSheetId _SoundGroupId;
/// Environement Fx name Id (using CStringMapper) /// Environement Fx name Id (using CStringMapper)
NLMISC::TStringId _EnvironmentFxId; NLMISC::TStringId _EnvironmentFxId;

View file

@ -21,6 +21,7 @@
#include "nel/misc/string_mapper.h" #include "nel/misc/string_mapper.h"
#include "nel/3d/ps_located.h" #include "nel/3d/ps_located.h"
#include "nel/3d/ps_attrib.h" #include "nel/3d/ps_attrib.h"
#include "nel/misc/sheet_id.h"
@ -63,13 +64,13 @@ public:
virtual void step(TPSProcessPass pass); virtual void step(TPSProcessPass pass);
/// set the name of the sound /// set the name of the sound
void setSoundName(const NLMISC::TStringId &soundName) void setSoundName(const NLMISC::CSheetId &soundName)
{ {
_SoundName = soundName; _SoundName = soundName;
} }
/// get the name of the sound /// get the name of the sound
const NLMISC::TStringId &getSoundName(void) const const NLMISC::CSheetId &getSoundName(void) const
{ {
return _SoundName; return _SoundName;
} }
@ -161,7 +162,7 @@ protected:
void removeAllSources(); void removeAllSources();
CPSAttrib<UPSSoundInstance *> _Sounds; CPSAttrib<UPSSoundInstance *> _Sounds;
NLMISC::TStringId _SoundName; NLMISC::CSheetId _SoundName;
float _Gain; float _Gain;
CPSAttribMaker<float> * _GainScheme; CPSAttribMaker<float> * _GainScheme;
float _Pitch; float _Pitch;

View file

@ -162,7 +162,7 @@ public:
/// inherited from IPSSoundServer /// inherited from IPSSoundServer
UPSSoundInstance *createSound(const NLMISC::TStringId &soundName, bool spawned = true) UPSSoundInstance *createSound(const NLMISC::CSheetId &soundName, bool spawned = true)
{ {
if (!_AudioMixer) if (!_AudioMixer)
return NULL; return NULL;

View file

@ -19,6 +19,7 @@
#include "nel/misc/types_nl.h" #include "nel/misc/types_nl.h"
#include "nel/misc/string_mapper.h" #include "nel/misc/string_mapper.h"
#include "nel/misc/sheet_id.h"
#include <string> #include <string>
namespace NLMISC namespace NLMISC
@ -50,7 +51,7 @@ struct UPSSoundServer
* \param spawn true if the sound must be spawned e.g it continues after this interface is removed * \param spawn true if the sound must be spawned e.g it continues after this interface is removed
* \param cb useful only for spawned sound, it tells when a spawned sound has been removed * \param cb useful only for spawned sound, it tells when a spawned sound has been removed
*/ */
virtual UPSSoundInstance *createSound(const NLMISC::TStringId &soundName, bool spawn = false) = 0; virtual UPSSoundInstance *createSound(const NLMISC::CSheetId &soundName, bool spawn = false) = 0;
}; };

View file

@ -25,6 +25,7 @@
#include <nel/misc/time_nl.h> #include <nel/misc/time_nl.h>
#include <nel/misc/stream.h> #include <nel/misc/stream.h>
#include <nel/misc/singleton.h> #include <nel/misc/singleton.h>
#include <nel/misc/sheet_id.h>
#include <nel/sound/u_audio_mixer.h> #include <nel/sound/u_audio_mixer.h>
#include <nel/georges/u_form.h> #include <nel/georges/u_form.h>
@ -180,7 +181,7 @@ public:
// Load environment sounds ; treeRoot can be null if you don't want an access to the envsounds // Load environment sounds ; treeRoot can be null if you don't want an access to the envsounds
// virtual void loadEnvSounds( const char *filename, UEnvSound **treeRoot=NULL ); // virtual void loadEnvSounds( const char *filename, UEnvSound **treeRoot=NULL );
/// Get a TSoundId from a name (returns NULL if not found) /// Get a TSoundId from a name (returns NULL if not found)
virtual TSoundId getSoundId( const NLMISC::TStringId &name ); virtual TSoundId getSoundId( const NLMISC::CSheetId &name );
/// Gets the group controller for the given group tree path with separator '/', if it doesn't exist yet it will be created. /// Gets the group controller for the given group tree path with separator '/', if it doesn't exist yet it will be created.
/// Examples: "music", "effects", "dialog", "music/background", "music/loading", "music/player", etcetera /// Examples: "music", "effects", "dialog", "music/background", "music/loading", "music/player", etcetera
@ -192,7 +193,7 @@ public:
* pass a callback function that will be called (if not NULL) just before deleting the spawned * pass a callback function that will be called (if not NULL) just before deleting the spawned
* source. * source.
*/ */
virtual USource *createSource( const NLMISC::TStringId &name, bool spawn=false, TSpawnEndCallback cb=NULL, void *cbUserParam = NULL, NL3D::CCluster *cluster = 0, CSoundContext *context = 0, UGroupController *groupController = NULL); virtual USource *createSource( const NLMISC::CSheetId &name, bool spawn=false, TSpawnEndCallback cb=NULL, void *cbUserParam = NULL, NL3D::CCluster *cluster = 0, CSoundContext *context = 0, UGroupController *groupController = NULL);
/// Add a logical sound source (by sound id). To remove a source, just delete it. See createSource(const char*) /// Add a logical sound source (by sound id). To remove a source, just delete it. See createSource(const char*)
virtual USource *createSource( TSoundId id, bool spawn=false, TSpawnEndCallback cb=NULL, void *cbUserParam = NULL, NL3D::CCluster *cluster = 0, CSoundContext *context = 0, UGroupController *groupController = NULL); virtual USource *createSource( TSoundId id, bool spawn=false, TSpawnEndCallback cb=NULL, void *cbUserParam = NULL, NL3D::CCluster *cluster = 0, CSoundContext *context = 0, UGroupController *groupController = NULL);
/// Add a source which was created by an EnvSound /// Add a source which was created by an EnvSound
@ -223,7 +224,7 @@ public:
/// Return the names of the sounds (call this method after loadSounds()) /// Return the names of the sounds (call this method after loadSounds())
virtual void getSoundNames( std::vector<NLMISC::TStringId> &names ) const; virtual void getSoundNames( std::vector<NLMISC::CSheetId> &names ) const;
/// Return the number of mixing tracks (voices) /// Return the number of mixing tracks (voices)
virtual uint getPolyphony() const { return (uint)_Tracks.size(); } virtual uint getPolyphony() const { return (uint)_Tracks.size(); }
/// Return the number of sources instance. /// Return the number of sources instance.
@ -444,7 +445,7 @@ private:
/// Witch parameter to control /// Witch parameter to control
TControledParamId ParamId; TControledParamId ParamId;
/// The controled sounds names. /// The controled sounds names.
std::vector<NLMISC::TStringId> SoundNames; std::vector<NLMISC::CSheetId> SoundNames;
/// Current parameter value /// Current parameter value
float Value; float Value;
/// All the sources controled by this variable /// All the sources controled by this variable

View file

@ -64,7 +64,7 @@ public:
/// Associtation clas for storage of sound / filter. /// Associtation clas for storage of sound / filter.
struct TSoundInfo struct TSoundInfo
{ {
NLMISC::TStringId SoundName; NLMISC::CSheetId SoundName;
UAudioMixer::TBackgroundFlags Filter; UAudioMixer::TBackgroundFlags Filter;
void serial(NLMISC::IStream &s) void serial(NLMISC::IStream &s)
@ -73,11 +73,11 @@ public:
if (s.isReading()) if (s.isReading())
{ {
s.serial(soundName); s.serial(soundName);
SoundName = NLMISC::CStringMapper::map(soundName); SoundName = NLMISC::CSheetId(soundName);/*NLMISC::CStringMapper::map(soundName)*/;
} }
else else
{ {
soundName = NLMISC::CStringMapper::unmap(SoundName); soundName = SoundName.toString();/* NLMISC::CStringMapper::unmap(SoundName)*/;
s.serial(soundName); s.serial(soundName);
} }
s.serial(Filter); s.serial(Filter);

View file

@ -229,7 +229,7 @@ private:
struct TSoundData struct TSoundData
{ {
/// The name of the sound. /// The name of the sound.
NLMISC::TStringId SoundName; NLMISC::CSheetId SoundName;
/// The reference to the sound. /// The reference to the sound.
CSound *Sound; CSound *Sound;
/// A source instance of the sound (may be NULL). /// A source instance of the sound (may be NULL).

View file

@ -249,11 +249,12 @@ private:
/// The segment of all the audio path. /// The segment of all the audio path.
std::vector<std::pair<NLMISC::CVector, NLMISC::CVector> > _AudioPath; std::vector<std::pair<NLMISC::CVector, NLMISC::CVector> > _AudioPath;
typedef CHashMap<NLMISC::TStringId, CClusterSound, NLMISC::CStringIdHashMapTraits> TClusterSoundCont; typedef CHashMap<NLMISC::CSheetId, CClusterSound, NLMISC::CSheetIdHashMapTraits> TClusterSoundCont;
/// The current cluster playing source indexed with sound group id /// The current cluster playing source indexed with sound group id
TClusterSoundCont _Sources; TClusterSoundCont _Sources;
typedef CHashMap<NLMISC::TStringId, NLMISC::TStringId, NLMISC::CStringIdHashMapTraits> TStringStringMap; typedef CHashMap<NLMISC::CSheetId, NLMISC::CSheetId, NLMISC::CSheetIdHashMapTraits> TStringStringMap;
//typedef CHashMap<NLMISC::TStringId, NLMISC::TStringId, NLMISC::CStringIdHashMapTraits> TStringStringMap;
/// The sound_group to sound assoc /// The sound_group to sound assoc
TStringStringMap _SoundGroupToSound; TStringStringMap _SoundGroupToSound;
}; };

View file

@ -52,8 +52,8 @@ public:
const std::vector<uint32> &getSoundSeq() const { return _SoundSeq;} const std::vector<uint32> &getSoundSeq() const { return _SoundSeq;}
const std::vector<uint32> &getDelaySeq() const { return _DelaySeq;} const std::vector<uint32> &getDelaySeq() const { return _DelaySeq;}
NLMISC::TStringId getSound(uint index) const { return !_Sounds.empty() ? _Sounds[index%_Sounds.size()]:0;} NLMISC::CSheetId getSound(uint index) const { return !_Sounds.empty() ? _Sounds[index%_Sounds.size()]:NLMISC::CSheetId::Unknown;}
const std::vector<NLMISC::TStringId> &getSounds() const { return _Sounds;} const std::vector<NLMISC::CSheetId> &getSounds() const { return _Sounds;}
uint32 getFadeLength() const { return _XFadeLength;} uint32 getFadeLength() const { return _XFadeLength;}
@ -87,7 +87,7 @@ private:
virtual float getMaxDistance() const; virtual float getMaxDistance() const;
TPATTERN_MODE _PatternMode; TPATTERN_MODE _PatternMode;
std::vector<NLMISC::TStringId> _Sounds; std::vector<NLMISC::CSheetId> _Sounds;
float _TicksPerSeconds; float _TicksPerSeconds;
std::vector<uint32> _SoundSeq; std::vector<uint32> _SoundSeq;
/// Sequence of delay in millisec. /// Sequence of delay in millisec.

View file

@ -133,7 +133,7 @@ class CContextSoundContainer : public IContextSoundContainer
virtual void addSound(CSound *sound, const std::string &baseName) virtual void addSound(CSound *sound, const std::string &baseName)
{ {
const std::string &patternName = NLMISC::CStringMapper::unmap(sound->getName()); const std::string &patternName = sound->getName().toString(); /*NLMISC::CStringMapper::unmap(sound->getName())*/;
nlassert(patternName.size() >= baseName.size()); nlassert(patternName.size() >= baseName.size());
std::string arg; std::string arg;
@ -172,7 +172,7 @@ class CContextSoundContainer : public IContextSoundContainer
if (i != NbJoker) if (i != NbJoker)
return; return;
nlassertex(i==NbJoker, ("Error while adding sound '%s' into context sound container", NLMISC::CStringMapper::unmap(sound->getName()).c_str())); nlassertex(i==NbJoker, ("Error while adding sound '%s' into context sound container", sound->getName().toString().c_str()/*NLMISC::CStringMapper::unmap(sound->getName()).c_str()*/));
sint randomValue = 0; sint randomValue = 0;
if (UseRandom) if (UseRandom)
@ -187,7 +187,7 @@ class CContextSoundContainer : public IContextSoundContainer
} }
else if (!arg.empty()) else if (!arg.empty())
{ {
nlassertex (!ok, ("Error while adding sound '%s' into context sound container", NLMISC::CStringMapper::unmap(sound->getName()).c_str())); nlassertex (!ok, ("Error while adding sound '%s' into context sound container", sound->getName().toString().c_str()/*NLMISC::CStringMapper::unmap(sound->getName()).c_str()*/));
// end of the argument. // end of the argument.
NLMISC::fromString(arg, randomValue); NLMISC::fromString(arg, randomValue);
arg.clear(); arg.clear();
@ -199,13 +199,13 @@ class CContextSoundContainer : public IContextSoundContainer
// read the potential last arg. // read the potential last arg.
if (!arg.empty()) if (!arg.empty())
{ {
nlassertex (!ok, ("Error while adding sound '%s' into context sound container", NLMISC::CStringMapper::unmap(sound->getName()).c_str())); nlassertex (!ok, ("Error while adding sound '%s' into context sound container", sound->getName().toString().c_str()/*NLMISC::CStringMapper::unmap(sound->getName()).c_str()*/));
// end of the argument. // end of the argument.
NLMISC::fromString(arg, randomValue); NLMISC::fromString(arg, randomValue);
arg.clear(); arg.clear();
ok = true; ok = true;
} }
nlassertex (ok, ("Error while adding sound '%s' into context sound container", NLMISC::CStringMapper::unmap(sound->getName()).c_str())); nlassertex (ok, ("Error while adding sound '%s' into context sound container", sound->getName().toString().c_str()/*NLMISC::CStringMapper::unmap(sound->getName()).c_str()*/));
} }
else else
@ -221,9 +221,9 @@ class CContextSoundContainer : public IContextSoundContainer
if (!ret.second) if (!ret.second)
{ {
typename THashContextSound::iterator it = _ContextSounds.find(cm); typename THashContextSound::iterator it = _ContextSounds.find(cm);
nlassertex(it != _ContextSounds.end(), ("Error wile adding soudn '%s' into context sound container", NLMISC::CStringMapper::unmap(sound->getName()).c_str())); nlassertex(it != _ContextSounds.end(), ("Error wile adding soudn '%s' into context sound container", sound->getName().toString().c_str()/*NLMISC::CStringMapper::unmap(sound->getName()).c_str()*/));
nlwarning("Sound %s has the same context matcher as the sound %s", NLMISC::CStringMapper::unmap(sound->getName()).c_str(), NLMISC::CStringMapper::unmap(it->second->getName()).c_str()); nlwarning("Sound %s has the same context matcher as the sound %s", sound->getName().toString().c_str()/*NLMISC::CStringMapper::unmap(sound->getName()).c_str()*/, it->second->getName().toString().c_str() /*NLMISC::CStringMapper::unmap(it->second->getName()).c_str()*/);
} }
} }
@ -249,7 +249,7 @@ class CContextSoundContainer : public IContextSoundContainer
typename THashContextSound::const_iterator first(_ContextSounds.begin()), last(_ContextSounds.end()); typename THashContextSound::const_iterator first(_ContextSounds.begin()), last(_ContextSounds.end());
for (; first != last; ++first) for (; first != last; ++first)
{ {
subsounds.push_back(std::make_pair(NLMISC::CStringMapper::unmap(first->second->getName()), first->second)); subsounds.push_back(std::make_pair(first->second->getName().toString()/*NLMISC::CStringMapper::unmap(first->second->getName())*/, first->second));
} }
} }

View file

@ -22,6 +22,7 @@
#include "nel/misc/string_mapper.h" #include "nel/misc/string_mapper.h"
#include "nel/sound/u_source.h" #include "nel/sound/u_source.h"
#include "nel/georges/u_form_elm.h" #include "nel/georges/u_form_elm.h"
#include "nel/misc/sheet_id.h"
#include <string> #include <string>
namespace NLSOUND { namespace NLSOUND {
@ -35,7 +36,7 @@ class CGroupController;
/// Sound names hash map /// Sound names hash map
//typedef std::hash_map<std::string, CSound*> TSoundMap; //typedef std::hash_map<std::string, CSound*> TSoundMap;
typedef CHashMap<NLMISC::TStringId, CSound*, NLMISC::CStringIdHashMapTraits> TSoundMap; typedef CHashMap<NLMISC::CSheetId, CSound*, NLMISC::CStringIdHashMapTraits> TSoundMap;
/// Sound names set (for ambiant sounds) /// Sound names set (for ambiant sounds)
typedef std::set<CSound*> TSoundSet; typedef std::set<CSound*> TSoundSet;
@ -99,7 +100,7 @@ public:
/// Return the length of the sound in ms /// Return the length of the sound in ms
virtual uint32 getDuration() = 0; virtual uint32 getDuration() = 0;
/// Return the name (must be unique) /// Return the name (must be unique)
const NLMISC::TStringId& getName() const { return _Name; } const NLMISC::CSheetId& getName() const { return _Name; }
/// Return the min distance (if detailed()) (default 1.0f if not implemented by sound type) /// Return the min distance (if detailed()) (default 1.0f if not implemented by sound type)
virtual float getMinDistance() const { return _MinDist; } virtual float getMinDistance() const { return _MinDist; }
@ -121,7 +122,8 @@ public:
bool operator<( const CSound& otherSound ) const bool operator<( const CSound& otherSound ) const
{ {
return NLMISC::CStringMapper::unmap(_Name) < NLMISC::CStringMapper::unmap(otherSound._Name); //return NLMISC::CStringMapper::unmap(_Name) < NLMISC::CStringMapper::unmap(otherSound._Name);
return _Name.toString() < otherSound._Name.toString();
} }
protected: protected:
@ -142,7 +144,7 @@ protected:
float _MaxDist; float _MaxDist;
// Sound name. // Sound name.
NLMISC::TStringId _Name; NLMISC::CSheetId _Name;
/// An optional user var controler. /// An optional user var controler.
NLMISC::TStringId _UserVarControler; NLMISC::TStringId _UserVarControler;

View file

@ -20,6 +20,7 @@
#include "nel/misc/string_mapper.h" #include "nel/misc/string_mapper.h"
#include "nel/3d/cluster.h" #include "nel/3d/cluster.h"
#include "nel/sound/u_source.h" #include "nel/sound/u_source.h"
#include "nel/misc/sheet_id.h"
namespace NLMISC namespace NLMISC
@ -31,7 +32,7 @@ namespace NLMISC
namespace NLSOUND { namespace NLSOUND {
typedef std::set<NLMISC::TStringId> TMarkerSoundSet; typedef std::set<NLMISC::CSheetId> TMarkerSoundSet;
class UAudioMixer; class UAudioMixer;
@ -50,13 +51,13 @@ public:
virtual float getTime() const { return _Time; } virtual float getTime() const { return _Time; }
/** Add a new sound in the set of to-be-played sounds for this marker */ /** Add a new sound in the set of to-be-played sounds for this marker */
virtual void addSound(const NLMISC::TStringId &soundName); virtual void addSound(const NLMISC::CSheetId &soundName);
/** Remove a sound */ /** Remove a sound */
virtual void removeSound(const NLMISC::TStringId &soundName); virtual void removeSound(const NLMISC::CSheetId &soundName);
/** Return the set of sounds of this marker */ /** Return the set of sounds of this marker */
virtual void getSounds(std::vector<NLMISC::TStringId> &sounds); virtual void getSounds(std::vector<NLMISC::CSheetId> &sounds);
/** Play all the sounds of this marker */ /** Play all the sounds of this marker */
virtual void play(UAudioMixer* mixer, NL3D::CCluster *cluster, CSoundContext &context); virtual void play(UAudioMixer* mixer, NL3D::CCluster *cluster, CSoundContext &context);

View file

@ -20,6 +20,7 @@
#include "nel/misc/types_nl.h" #include "nel/misc/types_nl.h"
#include "nel/misc/string_mapper.h" #include "nel/misc/string_mapper.h"
#include "nel/sound/audio_mixer_user.h" #include "nel/sound/audio_mixer_user.h"
#include "nel/misc/sheet_id.h"
#include <string> #include <string>
namespace NLSOUND { namespace NLSOUND {
@ -67,16 +68,16 @@ public:
bool isLoaded(); bool isLoaded();
/// Return a sound corresponding to a name. /// Return a sound corresponding to a name.
CSound *getSound(const NLMISC::TStringId &name); CSound *getSound(const NLMISC::CSheetId &name);
/// Return the names of the sounds /// Return the names of the sounds
void getNames( std::vector<NLMISC::TStringId> &names ); void getNames( std::vector<NLMISC::CSheetId> &names );
/// Return the number of sounds in this bank. /// Return the number of sounds in this bank.
uint countSounds(); uint countSounds();
void addSound(CSound *sound); void addSound(CSound *sound);
void removeSound(const NLMISC::TStringId &name); void removeSound(const NLMISC::CSheetId &name);
private: private:
@ -88,7 +89,7 @@ private:
typedef CHashMap<NLMISC::TStringId, TSimpleSoundContainer, NLMISC::CStringIdHashMapTraits> TBufferAssocContainer; typedef CHashMap<NLMISC::TStringId, TSimpleSoundContainer, NLMISC::CStringIdHashMapTraits> TBufferAssocContainer;
/// Sound names hash map /// Sound names hash map
// typedef std::hash_map<std::string, CSound*> TSoundTable; // typedef std::hash_map<std::string, CSound*> TSoundTable;
typedef CHashMap<NLMISC::TStringId, CSound*, NLMISC::CStringIdHashMapTraits> TSoundTable; typedef CHashMap<NLMISC::CSheetId, CSound*, NLMISC::CSheetIdHashMapTraits> TSoundTable;
/// Assoc from buffer to sound. Used for sound unloading. /// Assoc from buffer to sound. Used for sound unloading.
TBufferAssocContainer _BufferAssoc; TBufferAssocContainer _BufferAssoc;

View file

@ -23,6 +23,7 @@
#include "nel/3d/cluster.h" #include "nel/3d/cluster.h"
#include "nel/sound/sound.h" #include "nel/sound/sound.h"
#include "nel/sound/group_controller.h" #include "nel/sound/group_controller.h"
#include "nel/misc/sheet_id.h"
namespace NLSOUND { namespace NLSOUND {

View file

@ -19,6 +19,7 @@
#include "nel/misc/types_nl.h" #include "nel/misc/types_nl.h"
#include "nel/misc/string_mapper.h" #include "nel/misc/string_mapper.h"
#include "nel/misc/sheet_id.h"
#include "nel/sound/u_source.h" #include "nel/sound/u_source.h"
#include "nel/sound/u_group_controller.h" #include "nel/sound/u_group_controller.h"
#include "nel/ligo/primitive.h" #include "nel/ligo/primitive.h"
@ -284,7 +285,7 @@ public:
//@} //@}
/// Get a TSoundId from a name (returns NULL if not found) /// Get a TSoundId from a name (returns NULL if not found)
virtual TSoundId getSoundId( const NLMISC::TStringId &name ) = 0; virtual TSoundId getSoundId( const NLMISC::CSheetId &name ) = 0;
/// Gets the group controller for the given group tree path with separator '/', if it doesn't exist yet it will be created. /// Gets the group controller for the given group tree path with separator '/', if it doesn't exist yet it will be created.
/// Examples: "music", "effects", "dialog", "music/background", "music/loading", "music/player", etcetera /// Examples: "music", "effects", "dialog", "music/background", "music/loading", "music/player", etcetera
@ -296,7 +297,7 @@ public:
* pass a callback function that will be called (if not NULL) just before deleting the spawned * pass a callback function that will be called (if not NULL) just before deleting the spawned
* source. * source.
*/ */
virtual USource *createSource(const NLMISC::TStringId &name, bool spawn=false, TSpawnEndCallback cb=NULL, void *callbackUserParam = NULL, NL3D::CCluster *cluster = 0, CSoundContext *context = 0, UGroupController *groupController = NULL) = 0; virtual USource *createSource(const NLMISC::CSheetId &name, bool spawn=false, TSpawnEndCallback cb=NULL, void *callbackUserParam = NULL, NL3D::CCluster *cluster = 0, CSoundContext *context = 0, UGroupController *groupController = NULL) = 0;
/// Add a logical sound source (by sound id). To remove a source, just delete it. See createSource(const char*) /// Add a logical sound source (by sound id). To remove a source, just delete it. See createSource(const char*)
virtual USource *createSource(TSoundId id, bool spawn=false, TSpawnEndCallback cb=NULL, void *callbackUserParam = NULL, NL3D::CCluster *cluster = 0, CSoundContext *context = 0, UGroupController *groupController = NULL) = 0; virtual USource *createSource(TSoundId id, bool spawn=false, TSpawnEndCallback cb=NULL, void *callbackUserParam = NULL, NL3D::CCluster *cluster = 0, CSoundContext *context = 0, UGroupController *groupController = NULL) = 0;
@ -320,7 +321,7 @@ public:
//@{ //@{
//@name Statistic and utility methods //@name Statistic and utility methods
/// Fill a vector with the names of all loaded sounds. /// Fill a vector with the names of all loaded sounds.
virtual void getSoundNames( std::vector<NLMISC::TStringId> &names ) const = 0; virtual void getSoundNames( std::vector<NLMISC::CSheetId> &names ) const = 0;
/// Return the number of mixing tracks (voices) /// Return the number of mixing tracks (voices)
virtual uint getPolyphony() const = 0; virtual uint getPolyphony() const = 0;
/// Return the number of sources /// Return the number of sources

View file

@ -100,7 +100,7 @@ USource *OnAddSource( const char *name, float x, float y, float z )
/* /*
* Create a source with sound 'name', and set some of its initial properties, if successful * Create a source with sound 'name', and set some of its initial properties, if successful
*/ */
USource *source = AudioMixer->createSource( CStringMapper::map(name) ); USource *source = AudioMixer->createSource( /*CStringMapper::map(name)*/ CSheetId(name) );
if ( source != NULL ) if ( source != NULL )
{ {
source->setPos( CVector(x,y,z) ); source->setPos( CVector(x,y,z) );

View file

@ -97,7 +97,7 @@ static void initSample()
//NLMISC::CHTimer::startBench(); //NLMISC::CHTimer::startBench();
s_Source = s_AudioMixer->createSource(CStringMapper::map("stream_file")); s_Source = s_AudioMixer->createSource(/*CStringMapper::map("stream_file")*/ CSheetId("stream_file"));
nlassert(s_Source); nlassert(s_Source);
s_StreamFileSource = dynamic_cast<CStreamFileSource *>(s_Source); s_StreamFileSource = dynamic_cast<CStreamFileSource *>(s_Source);
nlassert(s_StreamFileSource); nlassert(s_StreamFileSource);

View file

@ -87,7 +87,7 @@ static void initSample()
//NLMISC::CHTimer::startBench(); //NLMISC::CHTimer::startBench();
USource *source = s_AudioMixer->createSource(CStringMapper::map("default_stream")); USource *source = s_AudioMixer->createSource(CSheetId("default_stream")/*CStringMapper::map("default_stream")*/);
nlassert(source); nlassert(source);
s_StreamSource = dynamic_cast<UStreamSource *>(source); s_StreamSource = dynamic_cast<UStreamSource *>(source);
nlassert(s_StreamSource); nlassert(s_StreamSource);

View file

@ -51,7 +51,9 @@ CCluster::CCluster ()
// map a no fx string // map a no fx string
_EnvironmentFxId = CStringMapper::map("no fx"); _EnvironmentFxId = CStringMapper::map("no fx");
// map a no soundgroup string // map a no soundgroup string
_SoundGroupId = CStringMapper::map(""); _SoundGroupId = NLMISC::CSheetId::Unknown; /*CStringMapper::map("")*/;
nldebug("SOUNDSHEET: %s", _SoundGroupId.toString().c_str());
// I am a transform cluster // I am a transform cluster
CTransform::setIsCluster(true); CTransform::setIsCluster(true);
@ -76,18 +78,21 @@ CCluster::~CCluster()
void CCluster::setSoundGroup(const std::string &soundGroup) void CCluster::setSoundGroup(const std::string &soundGroup)
{ {
_SoundGroupId = CStringMapper::map(soundGroup); _SoundGroupId = NLMISC::CSheetId(soundGroup);/*CStringMapper::map(soundGroup);*/
nldebug("SOUNDSHEET: %s", _SoundGroupId.toString().c_str());
} }
void CCluster::setSoundGroup(const NLMISC::TStringId &soundGroupId) void CCluster::setSoundGroup(const NLMISC::CSheetId &soundGroupId)
{ {
_SoundGroupId = soundGroupId; _SoundGroupId = soundGroupId;
nldebug("SOUNDSHEET: %s", _SoundGroupId.toString().c_str());
} }
const std::string &CCluster::getSoundGroup() const std::string &CCluster::getSoundGroup()
{ {
return CStringMapper::unmap(_SoundGroupId); return _SoundGroupId.toString();/*CStringMapper::unmap(_SoundGroupId)*/;
} }
NLMISC::TStringId CCluster::getSoundGroupId() NLMISC::CSheetId CCluster::getSoundGroupId()
{ {
return _SoundGroupId; return _SoundGroupId;
} }
@ -304,7 +309,8 @@ void CCluster::serial (NLMISC::IStream&f)
std::string envFxName; std::string envFxName;
f.serial(soundGroup); f.serial(soundGroup);
_SoundGroupId = CStringMapper::map(soundGroup); _SoundGroupId = NLMISC::CSheetId(soundGroup); /*CStringMapper::map(soundGroup)*/;
nldebug("SOUNDSHEET: %s", _SoundGroupId.toString().c_str());
f.serial(envFxName); f.serial(envFxName);
if (envFxName == "") if (envFxName == "")
@ -314,7 +320,7 @@ void CCluster::serial (NLMISC::IStream&f)
else else
{ {
// write the sound group // write the sound group
std::string soundGroup = CStringMapper::unmap(_SoundGroupId); std::string soundGroup = _SoundGroupId.toString();/*CStringMapper::unmap(_SoundGroupId)*/;
f.serial(soundGroup); f.serial(soundGroup);
// write the env fx name // write the env fx name
std::string envFxName = CStringMapper::unmap(_EnvironmentFxId); std::string envFxName = CStringMapper::unmap(_EnvironmentFxId);

View file

@ -43,7 +43,7 @@ CPSSound::CPSSound() : _Gain(1.f),
{ {
NL_PS_FUNC(CPSSound_CPSSound) NL_PS_FUNC(CPSSound_CPSSound)
if (CParticleSystem::getSerializeIdentifierFlag()) _Name = std::string("sound"); if (CParticleSystem::getSerializeIdentifierFlag()) _Name = std::string("sound");
_SoundName = NLMISC::CStringMapper::emptyId(); _SoundName = NLMISC::CSheetId::Unknown /*NLMISC::CStringMapper::emptyId()*/;
} }
// *************************************************************************************************** // ***************************************************************************************************
@ -265,11 +265,11 @@ void CPSSound::serial(NLMISC::IStream &f) throw(NLMISC::EStream)
{ {
std::string soundName; std::string soundName;
f.serial(soundName); f.serial(soundName);
_SoundName = NLMISC::CStringMapper::map(soundName); _SoundName = NLMISC::CSheetId(soundName)/*NLMISC::CStringMapper::map(soundName)*/;
} }
else else
{ {
std::string soundName = NLMISC::CStringMapper::unmap(_SoundName); std::string soundName = _SoundName.toString()/*NLMISC::CStringMapper::unmap(_SoundName)*/;
f.serial(soundName); f.serial(soundName);
} }

View file

@ -23,6 +23,7 @@
#include "nel/misc/command.h" #include "nel/misc/command.h"
#include "nel/misc/file.h" #include "nel/misc/file.h"
#include "nel/misc/path.h" #include "nel/misc/path.h"
#include "nel/misc/sheet_id.h"
#include "nel/georges/u_form_loader.h" #include "nel/georges/u_form_loader.h"
#include "nel/georges/u_form_elm.h" #include "nel/georges/u_form_elm.h"
@ -1051,7 +1052,7 @@ public:
items->getArrayValue(soundName, i); items->getArrayValue(soundName, i);
soundName = soundName.substr(0, soundName.find(".sound")); soundName = soundName.substr(0, soundName.find(".sound"));
cs.SoundNames.push_back(CStringMapper::map(soundName)); cs.SoundNames.push_back(CSheetId(soundName)/*CStringMapper::map(soundName)*/);
} }
if (!cs.SoundNames.empty()) if (!cs.SoundNames.empty())
@ -1101,7 +1102,7 @@ void CAudioMixerUser::initUserVar()
TUserVarControlsContainer::iterator first(_UserVarControls.begin()), last(_UserVarControls.end()); TUserVarControlsContainer::iterator first(_UserVarControls.begin()), last(_UserVarControls.end());
for(; first != last; ++first) for(; first != last; ++first)
{ {
std::vector<NLMISC::TStringId>::iterator first2(first->second.SoundNames.begin()), last2(first->second.SoundNames.end()); std::vector<NLMISC::CSheetId>::iterator first2(first->second.SoundNames.begin()), last2(first->second.SoundNames.end());
for (; first2 != last2; ++first2) for (; first2 != last2; ++first2)
{ {
CSound *sound = getSoundId(*first2); CSound *sound = getSoundId(*first2);
@ -1132,7 +1133,7 @@ void CAudioMixerUser::CControledSources::serial(NLMISC::IStream &s)
for (uint i=0; i<size; ++i) for (uint i=0; i<size; ++i)
{ {
s.serial(soundName); s.serial(soundName);
SoundNames.push_back(CStringMapper::map(soundName)); SoundNames.push_back(CSheetId(soundName)/*CStringMapper::map(soundName)*/);
} }
} }
else else
@ -1146,7 +1147,7 @@ void CAudioMixerUser::CControledSources::serial(NLMISC::IStream &s)
for (uint i=0; i<size; ++i) for (uint i=0; i<size; ++i)
{ {
soundName = CStringMapper::unmap(SoundNames[i]); soundName = SoundNames[i].toString();/*CStringMapper::unmap(SoundNames[i])*/;
s.serial(soundName); s.serial(soundName);
} }
} }
@ -1780,7 +1781,7 @@ void CAudioMixerUser::update()
// ****************************************************************** // ******************************************************************
TSoundId CAudioMixerUser::getSoundId( const NLMISC::TStringId &name ) TSoundId CAudioMixerUser::getSoundId( const NLMISC::CSheetId &name )
{ {
return _SoundBank->getSound(name); return _SoundBank->getSound(name);
} }
@ -1894,7 +1895,7 @@ retrySound:
if (invalid) if (invalid)
{ {
nlwarning("The sound %s contain an infinite recursion !", CStringMapper::unmap(id->getName()).c_str()); nlwarning("The sound %s contain an infinite recursion !", id->getName().toString().c_str()/*CStringMapper::unmap(id->getName()).c_str()*/);
return NULL; return NULL;
} }
@ -2035,7 +2036,7 @@ retrySound:
// ****************************************************************** // ******************************************************************
USource *CAudioMixerUser::createSource( const NLMISC::TStringId &name, bool spawn, TSpawnEndCallback cb, void *userParam, NL3D::CCluster *cluster, CSoundContext *context, UGroupController *groupController) USource *CAudioMixerUser::createSource( const NLMISC::CSheetId &name, bool spawn, TSpawnEndCallback cb, void *userParam, NL3D::CCluster *cluster, CSoundContext *context, UGroupController *groupController)
{ {
return createSource( getSoundId( name ), spawn, cb, userParam, cluster, context, groupController); return createSource( getSoundId( name ), spawn, cb, userParam, cluster, context, groupController);
} }
@ -2162,7 +2163,7 @@ bool CAudioMixerUser::unloadSampleBank(const std::string &name)
// ****************************************************************** // ******************************************************************
void CAudioMixerUser::getSoundNames( std::vector<NLMISC::TStringId> &names ) const void CAudioMixerUser::getSoundNames( std::vector<NLMISC::CSheetId> &names ) const
{ {
_SoundBank->getNames(names); _SoundBank->getNames(names);
} }

View file

@ -84,7 +84,7 @@ void CBackgroundSound::importForm(const std::string& filename, NLGEORGES::UFormE
// Read the sound name. // Read the sound name.
std::string soundName; std::string soundName;
psoundItem->getValueByName(soundName, "Sound"); psoundItem->getValueByName(soundName, "Sound");
sound.SoundName = CStringMapper::map(CFile::getFilenameWithoutExtension(soundName)); sound.SoundName = NLMISC::CSheetId(CFile::getFilenameWithoutExtension(soundName));/*CStringMapper::map(CFile::getFilenameWithoutExtension(soundName))*/;
// Read the environnement flag. // Read the environnement flag.
@ -133,7 +133,7 @@ void CBackgroundSound::getSubSoundList(std::vector<std::pair<std::string, CSound
for (; first != last; ++first) for (; first != last; ++first)
{ {
CSound *sound = mixer->getSoundId(first->SoundName); CSound *sound = mixer->getSoundId(first->SoundName);
subsounds.push_back(make_pair(CStringMapper::unmap(first->SoundName), sound)); subsounds.push_back(make_pair(first->SoundName.toString()/*CStringMapper::unmap(first->SoundName)*/, sound));
} }
} }

View file

@ -86,7 +86,7 @@ void CBackgroundSoundManager::addSound(const std::string &soundName, uint layerI
CAudioMixerUser *mixer = CAudioMixerUser::instance(); CAudioMixerUser *mixer = CAudioMixerUser::instance();
TSoundData sd; TSoundData sd;
sd.SoundName = CStringMapper::map(soundName); sd.SoundName = /*CStringMapper::map(soundName)*/ NLMISC::CSheetId(soundName);
sd.Sound = mixer->getSoundId(sd.SoundName); sd.Sound = mixer->getSoundId(sd.SoundName);
sd.Source = 0; sd.Source = 0;
@ -133,7 +133,7 @@ void CBackgroundSoundManager::addSound(const std::string &soundName, uint layerI
} }
else else
{ {
nlwarning ("The sound '%s' can't be loaded", CStringMapper::unmap(sd.SoundName).c_str()); nlwarning ("The sound '%s' can't be loaded", sd.SoundName.toString().c_str()/*CStringMapper::unmap(sd.SoundName).c_str()*/);
} }
} }
@ -1437,14 +1437,14 @@ void CBackgroundSoundManager::TSoundData::serial(NLMISC::IStream &s)
{ {
CAudioMixerUser *mixer = CAudioMixerUser::instance(); CAudioMixerUser *mixer = CAudioMixerUser::instance();
s.serial(str); s.serial(str);
SoundName = NLMISC::CStringMapper::map(str); SoundName = /*NLMISC::CStringMapper::map(str)*/ NLMISC::CSheetId(str);
Sound = mixer->getSoundId(SoundName); Sound = mixer->getSoundId(SoundName);
Source = NULL; Source = NULL;
Selected = false; Selected = false;
} }
else else
{ {
s.serial(const_cast<std::string&>(NLMISC::CStringMapper::unmap(SoundName))); s.serial(const_cast<std::string&>(SoundName.toString()/*NLMISC::CStringMapper::unmap(SoundName)*/));
} }
s.serial(MinBox); s.serial(MinBox);
s.serial(MaxBox); s.serial(MaxBox);

View file

@ -70,7 +70,7 @@ float EAX_MATERIAL_PARAM[] =
class CSoundGroupSerializer class CSoundGroupSerializer
{ {
public: public:
std::vector<std::pair<NLMISC::TStringId, NLMISC::TStringId> > _SoundGroupAssoc; std::vector<std::pair<NLMISC::CSheetId, NLMISC::CSheetId> > _SoundGroupAssoc;
// load the values using the george sheet (called by GEORGE::loadForm) // load the values using the george sheet (called by GEORGE::loadForm)
void readGeorges (const NLMISC::CSmartPtr<NLGEORGES::UForm> &form, const std::string &/* name */) void readGeorges (const NLMISC::CSmartPtr<NLGEORGES::UForm> &form, const std::string &/* name */)
@ -103,7 +103,7 @@ public:
sound = sound.substr(0, n); sound = sound.substr(0, n);
} }
_SoundGroupAssoc.push_back(make_pair(CStringMapper::map(soundGroup), CStringMapper::map(sound))); _SoundGroupAssoc.push_back(make_pair(CSheetId(soundGroup), CSheetId(sound) /*CStringMapper::map(soundGroup), CStringMapper::map(sound)*/));
} }
} }
catch(...) catch(...)
@ -131,15 +131,15 @@ public:
s.serial(soundGroup); s.serial(soundGroup);
s.serial(sound); s.serial(sound);
_SoundGroupAssoc.push_back(make_pair(CStringMapper::map(soundGroup), CStringMapper::map(sound))); _SoundGroupAssoc.push_back(make_pair(CSheetId(soundGroup), CSheetId(sound) /*CStringMapper::map(soundGroup), CStringMapper::map(sound)*/));
} }
else else
{ {
std::string soundGroup; std::string soundGroup;
std::string sound; std::string sound;
soundGroup = CStringMapper::unmap(_SoundGroupAssoc[i].first); soundGroup = _SoundGroupAssoc[i].first.toString();// CStringMapper::unmap(_SoundGroupAssoc[i].first);
sound = CStringMapper::unmap(_SoundGroupAssoc[i].second); sound = _SoundGroupAssoc[i].second.toString(); //CStringMapper::unmap(_SoundGroupAssoc[i].second);
s.serial(soundGroup); s.serial(soundGroup);
s.serial(sound); s.serial(sound);
@ -254,10 +254,10 @@ void CClusteredSound::update(const CVector &listenerPos, const CVector &/* view
TClusterStatusMap::const_iterator first(_AudibleClusters.begin()), last(_AudibleClusters.end()); TClusterStatusMap::const_iterator first(_AudibleClusters.begin()), last(_AudibleClusters.end());
for (; first != last; ++first ) for (; first != last; ++first )
{ {
static NLMISC::TStringId NO_SOUND_GROUP = CStringMapper::emptyId(); static NLMISC::CSheetId NO_SOUND_GROUP = /*CStringMapper::emptyId()*/NLMISC::CSheetId::Unknown;
const CClusterSoundStatus &css = first->second; const CClusterSoundStatus &css = first->second;
CCluster *cluster = first->first; CCluster *cluster = first->first;
NLMISC::TStringId soundGroup; NLMISC::CSheetId soundGroup;
soundGroup = cluster->getSoundGroupId(); soundGroup = cluster->getSoundGroupId();
@ -292,7 +292,7 @@ void CClusteredSound::update(const CVector &listenerPos, const CVector &/* view
TStringStringMap::iterator it2(_SoundGroupToSound.find(soundGroup)); TStringStringMap::iterator it2(_SoundGroupToSound.find(soundGroup));
if (it2 != _SoundGroupToSound.end()) if (it2 != _SoundGroupToSound.end())
{ {
NLMISC::TStringId soundName = it2->second; NLMISC::CSheetId soundName = it2->second;
CClusterSound cs; CClusterSound cs;
// nldebug("Found the sound [%s] for sound group [%s]", CStringMapper::unmap(soundName).c_str(), CStringMapper::unmap(soundGroup).c_str()); // nldebug("Found the sound [%s] for sound group [%s]", CStringMapper::unmap(soundName).c_str(), CStringMapper::unmap(soundGroup).c_str());

View file

@ -19,6 +19,7 @@
#include "nel/misc/path.h" #include "nel/misc/path.h"
#include "nel/misc/common.h" #include "nel/misc/common.h"
#include "nel/sound/audio_mixer_user.h" #include "nel/sound/audio_mixer_user.h"
#include "nel/misc/sheet_id.h"
using namespace std; using namespace std;
using namespace NLMISC; using namespace NLMISC;
@ -63,11 +64,11 @@ void CComplexSound::parseSequence(const std::string &str, std::vector<uint32> &s
void CComplexSound::getSubSoundList(std::vector<std::pair<std::string, CSound*> > &subsounds) const void CComplexSound::getSubSoundList(std::vector<std::pair<std::string, CSound*> > &subsounds) const
{ {
CAudioMixerUser *mixer = CAudioMixerUser::instance(); CAudioMixerUser *mixer = CAudioMixerUser::instance();
std::vector<NLMISC::TStringId>::const_iterator first(_Sounds.begin()), last(_Sounds.end()); std::vector<NLMISC::CSheetId>::const_iterator first(_Sounds.begin()), last(_Sounds.end());
for (; first != last; ++first) for (; first != last; ++first)
{ {
CSound *sound = mixer->getSoundId(*first); CSound *sound = mixer->getSoundId(*first);
subsounds.push_back(make_pair(CStringMapper::unmap(*first), sound)); subsounds.push_back(make_pair((*first).toString()/*CStringMapper::unmap(*first)*/, sound));
} }
} }
@ -83,7 +84,7 @@ uint32 CComplexSound::getDuration()
CAudioMixerUser *mixer = CAudioMixerUser::instance(); CAudioMixerUser *mixer = CAudioMixerUser::instance();
vector<sint32> durations; vector<sint32> durations;
std::vector<NLMISC::TStringId>::iterator first(_Sounds.begin()), last(_Sounds.end()); std::vector<NLMISC::CSheetId>::iterator first(_Sounds.begin()), last(_Sounds.end());
for (; first != last; ++first) for (; first != last; ++first)
{ {
CSound *sound = mixer->getSoundId(*first); CSound *sound = mixer->getSoundId(*first);
@ -204,7 +205,7 @@ float CComplexSound::getMaxDistance() const
CComplexSound *This = const_cast<CComplexSound*>(this); CComplexSound *This = const_cast<CComplexSound*>(this);
This->_MaxDist = 0.0f; This->_MaxDist = 0.0f;
std::vector<NLMISC::TStringId>::const_iterator first(_Sounds.begin()), last(_Sounds.end()); std::vector<NLMISC::CSheetId>::const_iterator first(_Sounds.begin()), last(_Sounds.end());
for (; first != last; ++first) for (; first != last; ++first)
{ {
@ -236,7 +237,7 @@ void CComplexSound::serial(NLMISC::IStream &s)
{ {
std::string name; std::string name;
s.serial(name); s.serial(name);
_Sounds.push_back(CStringMapper::map(name)); _Sounds.push_back(/*CStringMapper::map(name)*/NLMISC::CSheetId(name));
} }
} }
else else
@ -245,7 +246,7 @@ void CComplexSound::serial(NLMISC::IStream &s)
s.serial(nb); s.serial(nb);
for (uint i=0; i<nb; ++i) for (uint i=0; i<nb; ++i)
{ {
std::string name = CStringMapper::unmap(_Sounds[i]); std::string name = /*CStringMapper::unmap(_Sounds[i])*/_Sounds[i].toString();
s.serial(name); s.serial(name);
} }
} }
@ -301,7 +302,7 @@ void CComplexSound::importForm(const std::string& filename, NLGEORGES::UFormElm&
if (psoundsArray->getArrayValue(soundname, i)) if (psoundsArray->getArrayValue(soundname, i))
{ {
soundname = CFile::getFilenameWithoutExtension(soundname); soundname = CFile::getFilenameWithoutExtension(soundname);
_Sounds.push_back(CStringMapper::map(soundname)); _Sounds.push_back(NLMISC::CSheetId(soundname)/*CStringMapper::map(soundname)*/);
} }
} }
} }

View file

@ -190,9 +190,9 @@ void CComplexSource::playStuf()
case CComplexSound::MODE_ALL_IN_ONE: case CComplexSound::MODE_ALL_IN_ONE:
{ {
// just spanw all the listed source. // just spanw all the listed source.
const std::vector<NLMISC::TStringId> &sounds = _PatternSound->getSounds(); const std::vector<NLMISC::CSheetId> &sounds = _PatternSound->getSounds();
std::vector<NLMISC::TStringId>::const_iterator first(sounds.begin()), last(sounds.end()); std::vector<NLMISC::CSheetId>::const_iterator first(sounds.begin()), last(sounds.end());
if (_AllSources.empty()) if (_AllSources.empty())
{ {
@ -524,7 +524,7 @@ void CComplexSource::onUpdate()
else else
{ {
// no sound after, just set an event at end of current sound to stop the complex sound. // no sound after, just set an event at end of current sound to stop the complex sound.
nldebug("Setting last event for sound %s in %u millisec.", CStringMapper::unmap(_Source1->getSound()->getName()).c_str(), _Source1->getSound()->getDuration()); nldebug("Setting last event for sound %s in %u millisec.", _Source1->getSound()->getName().toString().c_str()/*CStringMapper::unmap(_Source1->getSound()->getName()).c_str()*/, _Source1->getSound()->getDuration());
if (_PatternSound->doFadeOut()) if (_PatternSound->doFadeOut())
{ {
// set the event to begin fade out. // set the event to begin fade out.

View file

@ -187,7 +187,7 @@ void CContextSound::init()
} }
else else
{ {
nlassertex(nbJoker < SoundContextNbArgs, ("Error will trying to play ContextSound '%s'", CStringMapper::unmap(_Name).c_str())); nlassertex(nbJoker < SoundContextNbArgs, ("Error will trying to play ContextSound '%s'", _Name.toString().c_str()/*CStringMapper::unmap(_Name).c_str()*/));
fromString(index, contextArgIndex[nbJoker++]); fromString(index, contextArgIndex[nbJoker++]);
parseArg = false; parseArg = false;
index = ""; index = "";
@ -195,13 +195,13 @@ void CContextSound::init()
} }
else if (*first == 'r') else if (*first == 'r')
{ {
nlassertex(useRandom == false, ("Error will trying to play ContextSound '%s'", CStringMapper::unmap(_Name).c_str())); nlassertex(useRandom == false, ("Error will trying to play ContextSound '%s'", _Name.toString().c_str()/*CStringMapper::unmap(_Name).c_str()*/));
useRandom = true; useRandom = true;
} }
} }
else if (*first == '%') else if (*first == '%')
{ {
nlassertex(useRandom == false, ("Error will trying to play ContextSound '%s'", CStringMapper::unmap(_Name).c_str())); nlassertex(useRandom == false, ("Error will trying to play ContextSound '%s'", _Name.toString().c_str()/*CStringMapper::unmap(_Name).c_str()*/));
parseArg = true; parseArg = true;
} }
} }
@ -215,7 +215,7 @@ void CContextSound::init()
} }
else else
{ {
nlassertex(nbJoker < SoundContextNbArgs, ("Error will trying to play ContextSound '%s'", CStringMapper::unmap(_Name).c_str())); nlassertex(nbJoker < SoundContextNbArgs, ("Error will trying to play ContextSound '%s'", _Name.toString().c_str()/*CStringMapper::unmap(_Name).c_str()*/));
fromString(index, contextArgIndex[nbJoker++]); fromString(index, contextArgIndex[nbJoker++]);
parseArg = false; parseArg = false;
} }
@ -247,7 +247,7 @@ void CContextSound::init()
LM_CASE_CONTAINER_CREATOR(9) LM_CASE_CONTAINER_CREATOR(9)
LM_CASE_CONTAINER_CREATOR(10) LM_CASE_CONTAINER_CREATOR(10)
default: default:
nlwarning("Unsuported number of context argument in context sound '%s'!", CStringMapper::unmap(_Name).c_str()); nlwarning("Unsuported number of context argument in context sound '%s'!", _Name.toString().c_str()/*CStringMapper::unmap(_Name).c_str()*/);
return; return;
} }
// cleanup macro // cleanup macro
@ -257,14 +257,14 @@ void CContextSound::init()
// ok, we have the container, now fill it with the sound // ok, we have the container, now fill it with the sound
{ {
std::vector<NLMISC::TStringId> allSounds; std::vector<NLMISC::CSheetId> allSounds;
// CSoundBank::getSoundNames(allSounds); // CSoundBank::getSoundNames(allSounds);
CAudioMixerUser::instance()->getSoundNames(allSounds); CAudioMixerUser::instance()->getSoundNames(allSounds);
std::vector<NLMISC::TStringId>::iterator first(allSounds.begin()), last(allSounds.end()); std::vector<NLMISC::CSheetId>::iterator first(allSounds.begin()), last(allSounds.end());
for (; first != last; ++first) for (; first != last; ++first)
{ {
const std::string &soundName = CStringMapper::unmap(*first); const std::string &soundName = first->toString()/*CStringMapper::unmap(*first)*/;
if (soundName.size() > _BaseName.size()) if (soundName.size() > _BaseName.size())
{ {
uint i; uint i;

View file

@ -137,11 +137,11 @@ void CSound::serial(NLMISC::IStream &s)
{ {
std::string name; std::string name;
s.serial(name); s.serial(name);
_Name = CStringMapper::map(name); _Name = NLMISC::CSheetId(name);//CStringMapper::map(name);
} }
else else
{ {
std::string name = CStringMapper::unmap(_Name); std::string name = _Name.toString();//CStringMapper::unmap(_Name);
s.serial(name); s.serial(name);
} }
@ -170,7 +170,7 @@ void CSound::serial(NLMISC::IStream &s)
void CSound::importForm(const std::string& filename, NLGEORGES::UFormElm& root) void CSound::importForm(const std::string& filename, NLGEORGES::UFormElm& root)
{ {
// Name // Name
_Name = CStringMapper::map(CFile::getFilenameWithoutExtension(filename)); _Name = NLMISC::CSheetId(CFile::getFilenameWithoutExtension(filename));//CStringMapper::map(CFile::getFilenameWithoutExtension(filename));
// InternalConeAngle // InternalConeAngle
uint32 inner; uint32 inner;

View file

@ -41,7 +41,7 @@ void CSoundAnimMarker::play(UAudioMixer* mixer, NL3D::CCluster *cluster, CSoundC
for (; first != last; ++first) for (; first != last; ++first)
{ {
USource* source = mixer->createSource((*first), true, NULL, NULL, cluster, &context); USource* source = mixer->createSource(NLMISC::CSheetId(*first), true, NULL, NULL, cluster, &context);
if (source != NULL) if (source != NULL)
{ {
source->setRelativeGain(context.RelativeGain); source->setRelativeGain(context.RelativeGain);
@ -53,19 +53,19 @@ void CSoundAnimMarker::play(UAudioMixer* mixer, NL3D::CCluster *cluster, CSoundC
// ******************************************************** // ********************************************************
void CSoundAnimMarker::addSound(const NLMISC::TStringId& soundName) void CSoundAnimMarker::addSound(const NLMISC::CSheetId& soundName)
{ {
pair<TMarkerSoundSet::iterator, bool> inserted; pair<TMarkerSoundSet::iterator, bool> inserted;
inserted = _Sounds.insert(soundName); inserted = _Sounds.insert(soundName);
if (inserted.second == false) if (inserted.second == false)
{ {
nlwarning("Duplicate sound (%s)", CStringMapper::unmap(soundName).c_str()); nlwarning("Duplicate sound (%s)",/* CStringMapper::unmap(soundName).c_str()*/soundName.toString().c_str());
} }
} }
// ******************************************************** // ********************************************************
void CSoundAnimMarker::removeSound(const NLMISC::TStringId &soundName) void CSoundAnimMarker::removeSound(const NLMISC::CSheetId &soundName)
{ {
TMarkerSoundSet::iterator iter = _Sounds.find(soundName); TMarkerSoundSet::iterator iter = _Sounds.find(soundName);
if (iter != _Sounds.end()) if (iter != _Sounds.end())
@ -74,13 +74,13 @@ void CSoundAnimMarker::removeSound(const NLMISC::TStringId &soundName)
} }
else else
{ {
nlwarning("No sound was removed (%s)", CStringMapper::unmap(soundName).c_str()); nlwarning("No sound was removed (%s)", soundName.toString().c_str()/*CStringMapper::unmap(soundName).c_str()*/);
} }
} }
// ******************************************************** // ********************************************************
void CSoundAnimMarker::getSounds(vector<NLMISC::TStringId> &sounds) void CSoundAnimMarker::getSounds(vector<NLMISC::CSheetId> &sounds)
{ {
sounds.insert(sounds.end(), _Sounds.begin(), _Sounds.end()); sounds.insert(sounds.end(), _Sounds.begin(), _Sounds.end());

View file

@ -73,7 +73,7 @@ void CSoundAnimation::save()
{ {
// File stream // File stream
COFile file; COFile file;
vector<NLMISC::TStringId> sounds; vector<NLMISC::CSheetId> sounds;
// Open the file // Open the file
if (!file.open(_Filename.c_str())) if (!file.open(_Filename.c_str()))
@ -108,11 +108,11 @@ void CSoundAnimation::save()
marker->getSounds(sounds); marker->getSounds(sounds);
vector<NLMISC::TStringId>::iterator iter2; vector<NLMISC::CSheetId>::iterator iter2;
for (iter2 = sounds.begin(); iter2 != sounds.end(); iter2++) for (iter2 = sounds.begin(); iter2 != sounds.end(); iter2++)
{ {
xmlNodePtr soundNode = xmlNewChild ( markerNode, NULL, (const xmlChar*)"SOUND", NULL ); xmlNodePtr soundNode = xmlNewChild ( markerNode, NULL, (const xmlChar*)"SOUND", NULL );
xmlSetProp (soundNode, (const xmlChar*)"name", (const xmlChar*) CStringMapper::unmap(*iter2).c_str()); xmlSetProp (soundNode, (const xmlChar*)"name", (const xmlChar*)iter2->toString().c_str() /*CStringMapper::unmap(*iter2).c_str()*/);
} }
sounds.clear(); sounds.clear();
@ -190,7 +190,7 @@ void CSoundAnimation::load()
throw NLMISC::Exception("Invalid sound animation marker"); throw NLMISC::Exception("Invalid sound animation marker");
} }
marker->addSound(CStringMapper::map(string(name))); marker->addSound(NLMISC::CSheetId(string(name))/*CStringMapper::map(string(name))*/);
xmlFree ((void*)name); xmlFree ((void*)name);

View file

@ -128,7 +128,7 @@ void CSoundBank::addSound(CSound *sound)
nlassert(ret.second); nlassert(ret.second);
} }
void CSoundBank::removeSound(const NLMISC::TStringId &name) void CSoundBank::removeSound(const NLMISC::CSheetId &name)
{ {
_Sounds.erase(name); _Sounds.erase(name);
} }
@ -152,10 +152,10 @@ public:
{} {}
// load the values using the george sheet (called by GEORGE::loadForm) // load the values using the george sheet (called by GEORGE::loadForm)
void readGeorges (const NLMISC::CSmartPtr<NLGEORGES::UForm> &form, const std::string &name) void readGeorges (const NLMISC::CSmartPtr<NLGEORGES::UForm> &form, const NLMISC::CSheetId &name)
{ {
// just call the sound creation method with the xml form. // just call the sound creation method with the xml form.
Sound = CSound::createSound(name, form->getRootNode()); Sound = CSound::createSound(name.toString(), form->getRootNode());
// success ? // success ?
// if (_Sound != 0) // if (_Sound != 0)
@ -258,14 +258,16 @@ public:
void CSoundBank::load(const std::string &packedSheetDir, bool packedSheetUpdate) void CSoundBank::load(const std::string &packedSheetDir, bool packedSheetUpdate)
{ {
// this structure is fill by the loadForm() function and will contain all you need // this structure is fill by the loadForm() function and will contain all you need
std::map<std::string, CSoundSerializer> Container; //std::map<std::string, CSoundSerializer> Container;
std::map<NLMISC::CSheetId, CSoundSerializer> Container;
nlassert(!_Loaded); nlassert(!_Loaded);
// Just call the GEORGE::loadFrom method to read all available sounds // Just call the GEORGE::loadFrom method to read all available sounds
::loadForm("sound", packedSheetDir + "sounds.packed_sheets", Container, packedSheetUpdate, false); ::loadForm("sound", packedSheetDir + "sounds.packed_sheets", Container, packedSheetUpdate, false);
_Loaded = true; _Loaded = true;
// add all the loaded sound in the sound banks // add all the loaded sound in the sound banks
std::map<std::string, CSoundSerializer>::iterator first(Container.begin()), last(Container.end()); //std::map<std::string, CSoundSerializer>::iterator first(Container.begin()), last(Container.end());
std::map<NLMISC::CSheetId, CSoundSerializer>::iterator first(Container.begin()), last(Container.end());
for (; first != last; ++first) for (; first != last; ++first)
{ {
if (first->second.Sound != 0) if (first->second.Sound != 0)
@ -328,7 +330,7 @@ bool CSoundBank::isLoaded()
/* /*
* Return a sound sample corresponding to a name. * Return a sound sample corresponding to a name.
*/ */
CSound* CSoundBank::getSound(const NLMISC::TStringId &name) CSound* CSoundBank::getSound(const NLMISC::CSheetId &name)
{ {
// Find sound // Find sound
TSoundTable::iterator iter = _Sounds.find(name); TSoundTable::iterator iter = _Sounds.find(name);
@ -345,7 +347,7 @@ CSound* CSoundBank::getSound(const NLMISC::TStringId &name)
/** /**
* Return the names of the sounds * Return the names of the sounds
*/ */
void CSoundBank::getNames( std::vector<NLMISC::TStringId> &names ) void CSoundBank::getNames( std::vector<NLMISC::CSheetId> &names )
{ {
TSoundTable::const_iterator iter; TSoundTable::const_iterator iter;
for (iter = _Sounds.begin(); iter != _Sounds.end(); ++iter) for (iter = _Sounds.begin(); iter != _Sounds.end(); ++iter)

View file

@ -74,9 +74,11 @@ void CStreamFileSound::serial(NLMISC::IStream &s)
void CStreamFileSound::setMusicFilePath(const std::string &filePath, bool async, bool loop) void CStreamFileSound::setMusicFilePath(const std::string &filePath, bool async, bool loop)
{ {
#if !FINAL_VERSION #if !FINAL_VERSION
_Name = NLMISC::CStringMapper::map(std::string("<MusicChannel:") + NLMISC::CFile::getFilenameWithoutExtension(filePath) + ">"); //_Name = NLMISC::CStringMapper::map(std::string("<MusicChannel:") + NLMISC::CFile::getFilenameWithoutExtension(filePath) + ">");
_Name = NLMISC::CSheetId(std::string("<MusicChannel:") + NLMISC::CFile::getFilenameWithoutExtension(filePath) + ">");
#else #else
_Name = NLMISC::CStringMapper::map("<MusicChannel>"); //_Name = NLMISC::CStringMapper::map("<MusicChannel>");
_Name = NLMISC::CSheetId("<MusicChannel>");
#endif #endif
_ConeInnerAngle = NLMISC::Pi * 2; _ConeInnerAngle = NLMISC::Pi * 2;
_ConeOuterAngle = NLMISC::Pi * 2; _ConeOuterAngle = NLMISC::Pi * 2;

View file

@ -419,7 +419,7 @@ CClientConfig::CClientConfig()
// only force patching under Windows by default // only force patching under Windows by default
#ifdef NL_OS_WINDOWS #ifdef NL_OS_WINDOWS
PatchWanted = true; PatchWanted = false;//true;
#else #else
PatchWanted = false; PatchWanted = false;
#endif #endif

View file

@ -5055,14 +5055,14 @@ NLMISC_COMMAND(reloadFogMaps, "Force to reload all the fog maps", "<>")
NLMISC_COMMAND(dumpSounds, "Dump names of all loaded sound", "<>") NLMISC_COMMAND(dumpSounds, "Dump names of all loaded sound", "<>")
{ {
if (!args.empty()) return false; if (!args.empty()) return false;
std::vector<NLMISC::TStringId> sounds; std::vector<NLMISC::CSheetId> sounds;
extern CSoundManager *SoundMngr; extern CSoundManager *SoundMngr;
if (!SoundMngr) return false; if (!SoundMngr) return false;
if (!SoundMngr->getMixer()) return false; if (!SoundMngr->getMixer()) return false;
SoundMngr->getMixer()->getSoundNames(sounds); SoundMngr->getMixer()->getSoundNames(sounds);
for(uint k = 0; k < sounds.size(); ++k) for(uint k = 0; k < sounds.size(); ++k)
{ {
nlinfo(NLMISC::CStringMapper::unmap(sounds[k]).c_str()); nlinfo(sounds[k].toString()/*NLMISC::CStringMapper::unmap(sounds[k])*/.c_str());
} }
return true; return true;
} }

View file

@ -2006,7 +2006,8 @@ public:
virtual void execute (CCtrlBase * /* pCaller */, const string &Params) virtual void execute (CCtrlBase * /* pCaller */, const string &Params)
{ {
string sName = getParam(Params, "name"); string sName = getParam(Params, "name");
TStringId id = CStringMapper::map(sName); //TStringId id = CStringMapper::map(sName);
CSheetId id = CSheetId(sName);
if (SoundMngr != NULL) if (SoundMngr != NULL)
SoundMngr->spawnSource(id,CVector(0,0,0)); SoundMngr->spawnSource(id,CVector(0,0,0));
} }

View file

@ -624,7 +624,7 @@ void CSoundManager::init(IProgressCallback *progressCallBack)
// add a new source to the world, attached to the specified entity // add a new source to the world, attached to the specified entity
// return 0 if creation failed, sound id if creation was successful // return 0 if creation failed, sound id if creation was successful
//----------------------------------------------- //-----------------------------------------------
CSoundManager::TSourceId CSoundManager::addSource( const NLMISC::TStringId &soundName, const NLMISC::CVector &position, bool play, bool loop, const CEntityId &id) CSoundManager::TSourceId CSoundManager::addSource( const NLMISC::CSheetId &soundName, const NLMISC::CVector &position, bool play, bool loop, const CEntityId &id)
{ {
uint32 retValue = 0; uint32 retValue = 0;
@ -634,7 +634,7 @@ CSoundManager::TSourceId CSoundManager::addSource( const NLMISC::TStringId &soun
// If the source is valid. // If the source is valid.
if(pSource == 0) if(pSource == 0)
{ {
nlwarning("Sound '%s' not found !", CStringMapper::unmap(soundName).c_str()); nlwarning("Sound '%s' not found !", /*CStringMapper::unmap(soundName).c_str()*/soundName.toString().c_str());
return retValue; return retValue;
} }
@ -672,7 +672,7 @@ CSoundManager::TSourceId CSoundManager::addSource( const NLMISC::TStringId &soun
// spawn a new source to the world // spawn a new source to the world
// return false if creation failed, true if creation was successful // return false if creation failed, true if creation was successful
//----------------------------------------------- //-----------------------------------------------
bool CSoundManager::spawnSource(const NLMISC::TStringId &soundName, CSoundContext &context) bool CSoundManager::spawnSource(const NLMISC::CSheetId &soundName, CSoundContext &context)
{ {
if (!_PlaySound) return false; if (!_PlaySound) return false;
@ -683,7 +683,7 @@ bool CSoundManager::spawnSource(const NLMISC::TStringId &soundName, CSoundContex
// If the source is valid. // If the source is valid.
if(pSource == 0) if(pSource == 0)
{ {
nlwarning("Sound '%s' not found !", soundName); nlwarning("Sound '%s' not found !", soundName.toString().c_str());
return false; return false;
} }
@ -702,7 +702,7 @@ bool CSoundManager::spawnSource(const NLMISC::TStringId &soundName, CSoundContex
// spawn a new source to the world // spawn a new source to the world
// return false if creation failed, true if creation was successful // return false if creation failed, true if creation was successful
//----------------------------------------------- //-----------------------------------------------
bool CSoundManager::spawnSource(const NLMISC::TStringId &soundName, const NLMISC::CVector &position) bool CSoundManager::spawnSource(const NLMISC::CSheetId &soundName, const NLMISC::CVector &position)
{ {
if (!_PlaySound) return false; if (!_PlaySound) return false;
@ -712,7 +712,7 @@ bool CSoundManager::spawnSource(const NLMISC::TStringId &soundName, const NLMISC
// If the source is valid. // If the source is valid.
if(pSource == 0) if(pSource == 0)
{ {
nlwarning("Sound '%s' not found !", CStringMapper::unmap(soundName).c_str ()); nlwarning("Sound '%s' not found !", /*CStringMapper::unmap(soundName).c_str ()*/soundName.toString().c_str());
return false; return false;
} }

View file

@ -32,6 +32,7 @@
// sound // sound
#include "nel/sound/u_audio_mixer.h" #include "nel/sound/u_audio_mixer.h"
#include "nel/sound/u_listener.h" #include "nel/sound/u_listener.h"
#include "nel/misc/sheet_id.h"
extern class CSoundManager *SoundMngr; extern class CSoundManager *SoundMngr;
@ -88,13 +89,13 @@ public:
/// Return the audio mixer instance pointer. /// Return the audio mixer instance pointer.
NLSOUND::UAudioMixer *getMixer(); NLSOUND::UAudioMixer *getMixer();
TSourceId addSource( const NLMISC::TStringId &soundName, const NLMISC::CVector &position, bool play = true , bool loop = false, const NLMISC::CEntityId &id = NLMISC::CEntityId::Unknown ); TSourceId addSource( const NLMISC::CSheetId &soundName, const NLMISC::CVector &position, bool play = true , bool loop = false, const NLMISC::CEntityId &id = NLMISC::CEntityId::Unknown );
/// spawn a new source to the world but sound manager don't keep any link and the sound will be automatically deleted when finnished /// spawn a new source to the world but sound manager don't keep any link and the sound will be automatically deleted when finnished
bool spawnSource (const NLMISC::TStringId &soundName, NLSOUND::CSoundContext &context); bool spawnSource (const NLMISC::CSheetId &soundName, NLSOUND::CSoundContext &context);
/// spawn a new source to the world but sound manager don't keep any link and the sound will be automatically deleted when finnished /// spawn a new source to the world but sound manager don't keep any link and the sound will be automatically deleted when finnished
bool spawnSource( const NLMISC::TStringId &soundName, const NLMISC::CVector &position ); bool spawnSource( const NLMISC::CSheetId &soundName, const NLMISC::CVector &position );
/** /**
* remove a source * remove a source

View file

@ -1,7 +1,7 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<PRIMITIVES VERSION="1"> <PRIMITIVES VERSION="1">
<ROOT_PRIMITIVE TYPE="CPrimNode"> <ROOT_PRIMITIVE TYPE="CPrimNode">
<ALIAS LAST_GENERATED="1256"/> <ALIAS LAST_GENERATED="1269"/>
<CHILD TYPE="CPrimZone"> <CHILD TYPE="CPrimZone">
<PROPERTY TYPE="string"> <PROPERTY TYPE="string">
<NAME>class</NAME> <NAME>class</NAME>
@ -126,6 +126,10 @@
<STRING>#mission tags and pre-requisites</STRING> <STRING>#mission tags and pre-requisites</STRING>
<STRING>replayable</STRING> <STRING>replayable</STRING>
<STRING>solo</STRING> <STRING>solo</STRING>
<STRING>mission_category : Killing</STRING>
<STRING>player_replay_timer : 10</STRING>
<STRING>global_replay_timer : 10</STRING>
<STRING>mission_icon : tets</STRING>
<STRING></STRING> <STRING></STRING>
<STRING>#Variables declaration</STRING> <STRING>#Variables declaration</STRING>
<STRING>decl : bot : giver</STRING> <STRING>decl : bot : giver</STRING>
@ -138,7 +142,7 @@
<STRING>mission_title : WELCOME_RYZOM_CORE_TITLE</STRING> <STRING>mission_title : WELCOME_RYZOM_CORE_TITLE</STRING>
<STRING>mission_desc : WELCOME_RYZOM_CORE_DESC</STRING> <STRING>mission_desc : WELCOME_RYZOM_CORE_DESC</STRING>
<STRING># step_4</STRING> <STRING># step_4</STRING>
<STRING>kill_fauna : chdfa1 3</STRING> <STRING>kill_fauna : chdfa1 1</STRING>
<STRING>recv_money : 10000</STRING> <STRING>recv_money : 10000</STRING>
<STRING></STRING> <STRING></STRING>
</PROPERTY> </PROPERTY>
@ -154,6 +158,157 @@
</PROPERTY> </PROPERTY>
</CHILD> </CHILD>
</CHILD> </CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>mission</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>HUNTING_GROUNDS</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>script</NAME>
<STRING># script generated from 'urban_newbieland.primitive'</STRING>
<STRING></STRING>
<STRING>#mission tags and pre-requisites</STRING>
<STRING>replayable</STRING>
<STRING>guild</STRING>
<STRING>mission_category : Killing</STRING>
<STRING>player_replay_timer : 10</STRING>
<STRING>global_replay_timer : 10</STRING>
<STRING>mission_icon : test</STRING>
<STRING></STRING>
<STRING>#Variables declaration</STRING>
<STRING>decl : bot : giver</STRING>
<STRING>decl : bot : player</STRING>
<STRING>decl : bot : chiang_the_strong</STRING>
<STRING></STRING>
<STRING>#pre-requisites</STRING>
<STRING>req_guild</STRING>
<STRING>req_grade : Leader</STRING>
<STRING></STRING>
<STRING>#script</STRING>
<STRING>mission_title : WELCOME_RYZOM_CORE_DESC</STRING>
<STRING>mission_desc : WELCOME_RYZOM_CORE_TITLE</STRING>
<STRING># step_4</STRING>
<STRING>spawn_mission : WELCOME_RYZOM_CORE : chiang_the_strong : guild</STRING>
<STRING>set_obj : MIS_DO_MISSION</STRING>
<STRING>mission : WELCOME_RYZOM_CORE 2</STRING>
<STRING>kill_fauna : chdfa1 2</STRING>
<STRING>recv_money : 100000</STRING>
<STRING>recv_money : 20: guild</STRING>
<STRING></STRING>
</PROPERTY>
<CHILD TYPE="CPrimAlias">
<ALIAS VALUE="1262"/>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>alias</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>alias</STRING>
</PROPERTY>
</CHILD>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>mission</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>GUILD_MISSION</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>script</NAME>
<STRING># script generated from 'guild_missions.primitive'</STRING>
<STRING></STRING>
<STRING>#mission tags and pre-requisites</STRING>
<STRING>replayable</STRING>
<STRING>guild</STRING>
<STRING>mission_category : Killing</STRING>
<STRING></STRING>
<STRING>#Variables declaration</STRING>
<STRING>decl : bot : giver</STRING>
<STRING>decl : bot : player</STRING>
<STRING>decl : bot : chiang_the_strong</STRING>
<STRING></STRING>
<STRING>#pre-requisites</STRING>
<STRING>req_guild</STRING>
<STRING>req_grade : Leader</STRING>
<STRING></STRING>
<STRING>#script</STRING>
<STRING>mission_title : GUILD_MISSION_TITLE</STRING>
<STRING>mission_desc : GUILD_MISSION_DESC</STRING>
<STRING># step</STRING>
<STRING>spawn_mission : SOLO_GUILD_MISSION : chiang_the_strong : guild</STRING>
<STRING>set_obj : MIS_DO_MISSION</STRING>
<STRING>mission : SOLO_GUILD_MISSION 2</STRING>
<STRING>kill_fauna : chdfa1 2</STRING>
<STRING>recv_money : 100: guild</STRING>
<STRING>recv_money : 50</STRING>
<STRING></STRING>
</PROPERTY>
<CHILD TYPE="CPrimAlias">
<ALIAS VALUE="1268"/>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>alias</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>alias</STRING>
</PROPERTY>
</CHILD>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>mission</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>SOLO_GUILD_MISSION</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>script</NAME>
<STRING># script generated from 'guild_missions.primitive'</STRING>
<STRING></STRING>
<STRING>#mission tags and pre-requisites</STRING>
<STRING>replayable</STRING>
<STRING>solo</STRING>
<STRING>mission_category : Killing</STRING>
<STRING>not_proposed</STRING>
<STRING></STRING>
<STRING>#Variables declaration</STRING>
<STRING>decl : bot : giver</STRING>
<STRING>decl : bot : player</STRING>
<STRING>decl : bot : chiang_the_strong</STRING>
<STRING></STRING>
<STRING>#pre-requisites</STRING>
<STRING></STRING>
<STRING>#script</STRING>
<STRING>mission_title : SOLO_GUILD_MISSION_TITLE</STRING>
<STRING>mission_desc : SOLO_GUILD_MISSION_DESC</STRING>
<STRING># step</STRING>
<STRING>kill_fauna : chdfa1 1</STRING>
<STRING>recv_money : 20</STRING>
<STRING></STRING>
</PROPERTY>
<CHILD TYPE="CPrimAlias">
<ALIAS VALUE="1269"/>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>alias</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>alias</STRING>
</PROPERTY>
</CHILD>
</CHILD>
</CHILD> </CHILD>
<CHILD TYPE="CPrimNode"> <CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string"> <PROPERTY TYPE="string">
@ -317,6 +472,46 @@
</PROPERTY> </PROPERTY>
</CHILD> </CHILD>
</CHILD> </CHILD>
<CHILD TYPE="CPrimPoint">
<PT X="10213.500977" Y="-11784.600586" Z="0.000000"/>
<PROPERTY TYPE="string_array">
<NAME>chat_parameters</NAME>
<STRING>shop:guild_creator</STRING>
<STRING>menu: MENU_WHOAMI WHOAMI_GUILD_CLERK</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>npc_bot</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>equipment</NAME>
<STRING>CU: 4</STRING>
<STRING>CL: 4</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>is_stuck</NAME>
<STRING>true</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>creator</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>sheet_client</NAME>
<STRING>fyhc3old</STRING>
</PROPERTY>
<CHILD TYPE="CPrimAlias">
<ALIAS VALUE="1257"/>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>alias</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>alias</STRING>
</PROPERTY>
</CHILD>
</CHILD>
</CHILD> </CHILD>
<CHILD TYPE="CPrimNode"> <CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string"> <PROPERTY TYPE="string">
@ -396,19 +591,8 @@
<ANGLE VALUE="3.504839"/> <ANGLE VALUE="3.504839"/>
<PROPERTY TYPE="string_array"> <PROPERTY TYPE="string_array">
<NAME>chat_parameters</NAME> <NAME>chat_parameters</NAME>
<STRING>shop : NEWBIELAND_LARMOR_ALL</STRING> <STRING>shop:guild_creator</STRING>
<STRING>item : icmalb.sitem 10</STRING> <STRING>menu: MENU_WHOAMI WHOAMI_GUILD_CLERK</STRING>
<STRING>item : icmalb.sitem 20</STRING>
<STRING>item : icmalb.sitem 50</STRING>
<STRING>item : icfalb.sitem 10</STRING>
<STRING>item : icfalb.sitem 20</STRING>
<STRING>item : icfalb.sitem 50</STRING>
<STRING>item : ictalb.sitem 10</STRING>
<STRING>item : ictalb.sitem 20</STRING>
<STRING>item : ictalb.sitem 50</STRING>
<STRING>item : iczalb.sitem 10</STRING>
<STRING>item : iczalb.sitem 20</STRING>
<STRING>item : iczalb.sitem 50</STRING>
</PROPERTY> </PROPERTY>
<PROPERTY TYPE="string"> <PROPERTY TYPE="string">
<NAME>class</NAME> <NAME>class</NAME>
@ -444,6 +628,119 @@
</CHILD> </CHILD>
</CHILD> </CHILD>
</CHILD> </CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>npc_folder</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>Guild creator</STRING>
</PROPERTY>
<CHILD TYPE="CPrimAlias">
<ALIAS VALUE="1264"/>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>alias</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>alias</STRING>
</PROPERTY>
</CHILD>
<CHILD TYPE="CPrimZone">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>npc_zone</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>Npc Zone</STRING>
</PROPERTY>
<CHILD TYPE="CPrimAlias">
<ALIAS VALUE="1265"/>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>alias</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>alias</STRING>
</PROPERTY>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>bot_sheet_client</NAME>
<STRING>maha2</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>npc_group</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>Group</STRING>
</PROPERTY>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>npc_group_parameters</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>parameters</STRING>
</PROPERTY>
</CHILD>
<CHILD TYPE="CPrimAlias">
<ALIAS VALUE="1266"/>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>alias</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>alias</STRING>
</PROPERTY>
</CHILD>
<CHILD TYPE="CPrimPoint">
<PT X="10315.800781" Y="-11736.200195" Z="0.000000"/>
<PROPERTY TYPE="string_array">
<NAME>chat_parameters</NAME>
<STRING>shop:guild_creator</STRING>
<STRING>menu: MENU_WHOAMI WHOAMI_GUILD_CLERK</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>npc_bot</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>equipment</NAME>
<STRING>CU: 4</STRING>
<STRING>CL: 4</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>guild_creator</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>sheet_client</NAME>
<STRING>fyhc3old</STRING>
</PROPERTY>
<CHILD TYPE="CPrimAlias">
<ALIAS VALUE="1267"/>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>alias</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>alias</STRING>
</PROPERTY>
</CHILD>
</CHILD>
</CHILD>
</CHILD>
</CHILD>
</CHILD> </CHILD>
<CHILD TYPE="CPrimNode"> <CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string"> <PROPERTY TYPE="string">
@ -455,14 +752,38 @@
<STRING>missions_editor</STRING> <STRING>missions_editor</STRING>
</PROPERTY> </PROPERTY>
<CHILD TYPE="CPrimNode"> <CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>audience</NAME>
<STRING>solo</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>auto_remove_from_journal</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>automatic</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string"> <PROPERTY TYPE="string">
<NAME>class</NAME> <NAME>class</NAME>
<STRING>mission_tree</STRING> <STRING>mission_tree</STRING>
</PROPERTY> </PROPERTY>
<PROPERTY TYPE="string">
<NAME>fail_if_inventory_is_full</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string"> <PROPERTY TYPE="string">
<NAME>giver_primitive</NAME> <NAME>giver_primitive</NAME>
<STRING>urban_newbieland.primitive</STRING> <STRING>urban_newbieland.primitive</STRING>
</PROPERTY> </PROPERTY>
<PROPERTY TYPE="string">
<NAME>global_replay_timer</NAME>
<STRING>10</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>mission_category</NAME>
<STRING>Killing</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array"> <PROPERTY TYPE="string_array">
<NAME>mission_description</NAME> <NAME>mission_description</NAME>
<STRING>WELCOME_RYZOM_CORE_DESC</STRING> <STRING>WELCOME_RYZOM_CORE_DESC</STRING>
@ -471,10 +792,18 @@
<NAME>mission_giver</NAME> <NAME>mission_giver</NAME>
<STRING>$givervar@fullname$</STRING> <STRING>$givervar@fullname$</STRING>
</PROPERTY> </PROPERTY>
<PROPERTY TYPE="string">
<NAME>mission_icon</NAME>
<STRING>tets</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array"> <PROPERTY TYPE="string_array">
<NAME>mission_title</NAME> <NAME>mission_title</NAME>
<STRING>WELCOME_RYZOM_CORE_TITLE</STRING> <STRING>WELCOME_RYZOM_CORE_TITLE</STRING>
</PROPERTY> </PROPERTY>
<PROPERTY TYPE="string">
<NAME>mono_instance</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string"> <PROPERTY TYPE="string">
<NAME>name</NAME> <NAME>name</NAME>
<STRING>WELCOME_RYZOM_CORE</STRING> <STRING>WELCOME_RYZOM_CORE</STRING>
@ -483,10 +812,34 @@
<NAME>need_validation</NAME> <NAME>need_validation</NAME>
<STRING>false</STRING> <STRING>false</STRING>
</PROPERTY> </PROPERTY>
<PROPERTY TYPE="string">
<NAME>non_abandonnable</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>not_in_journal</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>not_proposed</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>phrase_auto_menu</NAME>
<STRING>TEST</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>player_replay_timer</NAME>
<STRING>10</STRING>
</PROPERTY>
<PROPERTY TYPE="string"> <PROPERTY TYPE="string">
<NAME>replayable</NAME> <NAME>replayable</NAME>
<STRING>true</STRING> <STRING>true</STRING>
</PROPERTY> </PROPERTY>
<PROPERTY TYPE="string">
<NAME>run_only_once</NAME>
<STRING>false</STRING>
</PROPERTY>
<CHILD TYPE="CPrimNode"> <CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string"> <PROPERTY TYPE="string">
<NAME>class</NAME> <NAME>class</NAME>
@ -571,7 +924,7 @@
</PROPERTY> </PROPERTY>
<PROPERTY TYPE="string_array"> <PROPERTY TYPE="string_array">
<NAME>fauna/quantity</NAME> <NAME>fauna/quantity</NAME>
<STRING>chdfa1 3</STRING> <STRING>chdfa1 1</STRING>
</PROPERTY> </PROPERTY>
</CHILD> </CHILD>
</CHILD> </CHILD>
@ -597,6 +950,263 @@
</CHILD> </CHILD>
</CHILD> </CHILD>
</CHILD> </CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>audience</NAME>
<STRING>guild</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>auto_remove_from_journal</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>automatic</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>mission_tree</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>fail_if_inventory_is_full</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>giver_primitive</NAME>
<STRING>urban_newbieland.primitive</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>global_replay_timer</NAME>
<STRING>10</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>mission_category</NAME>
<STRING>Killing</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>mission_description</NAME>
<STRING>WELCOME_RYZOM_CORE_TITLE</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>mission_giver</NAME>
<STRING>$givervar@fullname$</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>mission_icon</NAME>
<STRING>test</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>mission_title</NAME>
<STRING>WELCOME_RYZOM_CORE_DESC</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>mono_instance</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>HUNTING_GROUNDS</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>need_validation</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>non_abandonnable</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>not_in_journal</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>not_proposed</NAME>
<STRING>false</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>phrase_auto_menu</NAME>
<STRING>TEST</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>player_replay_timer</NAME>
<STRING>10</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>replayable</NAME>
<STRING>true</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>run_only_once</NAME>
<STRING>false</STRING>
</PROPERTY>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>variables</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>variables</STRING>
</PROPERTY>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>var_npc</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>npc_function</NAME>
<STRING>fct_ranger_leader</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>npc_name</NAME>
<STRING>chiang_the_strong</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>var_name</NAME>
<STRING>givervar</STRING>
</PROPERTY>
</CHILD>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>pre_requisite</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>pre_requisite</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>require_guild_grade</NAME>
<STRING>Leader</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>require_guild_membership</NAME>
<STRING>true</STRING>
</PROPERTY>
</CHILD>
<CHILD TYPE="CPrimAlias">
<ALIAS VALUE="1258"/>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>alias</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>alias</STRING>
</PROPERTY>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>step</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>step_4</STRING>
</PROPERTY>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>actions</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>pre_actions</STRING>
</PROPERTY>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>spawn_mission</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>giver_name</NAME>
<STRING>chiang_the_strong</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>guild</NAME>
<STRING>true</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>mission_name</NAME>
<STRING>WELCOME_RYZOM_CORE</STRING>
</PROPERTY>
</CHILD>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>mission_objectives</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>objectives</STRING>
</PROPERTY>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>do_mission</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>mission_names</NAME>
<STRING>WELCOME_RYZOM_CORE 2</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>overload_objective</NAME>
<STRING>MIS_DO_MISSION</STRING>
</PROPERTY>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>kill</STRING>
</PROPERTY>
<PROPERTY TYPE="string_array">
<NAME>fauna/quantity</NAME>
<STRING>chdfa1 2</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>kill chdfa1 2</STRING>
</PROPERTY>
</CHILD>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>actions</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>name</NAME>
<STRING>post_actions</STRING>
</PROPERTY>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>amount</NAME>
<STRING>100000</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>recv_money</STRING>
</PROPERTY>
</CHILD>
<CHILD TYPE="CPrimNode">
<PROPERTY TYPE="string">
<NAME>amount</NAME>
<STRING>20</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>class</NAME>
<STRING>recv_money</STRING>
</PROPERTY>
<PROPERTY TYPE="string">
<NAME>guild</NAME>
<STRING>true</STRING>
</PROPERTY>
</CHILD>
</CHILD>
</CHILD>
</CHILD>
</CHILD> </CHILD>
</ROOT_PRIMITIVE> </ROOT_PRIMITIVE>
</PRIMITIVES> </PRIMITIVES>

View file

@ -6,7 +6,7 @@
BandwidthRatio = 1; BandwidthRatio = 1;
FSUDPPort = 47851; FSUDPPort = 47851;
FSListenHost = "open.ryzom.com"; FSListenHost = "192.168.1.112";
#include "frontend_service_default.cfg" #include "frontend_service_default.cfg"

View file

@ -3,7 +3,7 @@
REM This script will start all the services with good parameters REM This script will start all the services with good parameters
REM set MODE=Debug REM set MODE=Debug
set MODE=..\..\build\bin\Release set MODE=..\..\build\bin\Debug
rem AS rem AS
start %MODE%\ryzom_admin_service.exe --fulladminname=admin_executor_service --shortadminname=AES start %MODE%\ryzom_admin_service.exe --fulladminname=admin_executor_service --shortadminname=AES