Fixed: #1448 Compilation with CLang

This commit is contained in:
kervala 2012-04-07 14:57:15 +02:00
parent ff1306d4fe
commit 3fa0aa2216
12 changed files with 51 additions and 31 deletions

View file

@ -50,21 +50,21 @@ static CTxtCommandSetPtr<__CTxtCommandSet_##setName> setName;
//------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------
#define TXT_COMMAND(cmdName,setName,CONTEXT_CLASS)\ #define TXT_COMMAND(cmdName,setName,CONTEXT_CLASS)\
struct __CTxtCommand_##cmdName: public ITxtCommand<CONTEXT_CLASS>\ struct __CTxtCommand_##cmdName##CONTEXT_CLASS: public ITxtCommand<CONTEXT_CLASS>\
{\ {\
static __CTxtCommand_##cmdName* getInstance()\ static __CTxtCommand_##cmdName##CONTEXT_CLASS* getInstance()\
{\ {\
static __CTxtCommand_##cmdName *p=NULL;\ static __CTxtCommand_##cmdName##CONTEXT_CLASS *p=NULL;\
if (p==NULL) p= new __CTxtCommand_##cmdName;\ if (p==NULL) p= new __CTxtCommand_##cmdName##CONTEXT_CLASS;\
return p;\ return p;\
}\ }\
virtual const char* getName() const {return #cmdName;}\ virtual const char* getName() const {return #cmdName;}\
virtual CTxtCommandResult execute(CONTEXT_CLASS& context,const NLMISC::CVectorSString& args,const NLMISC::CSString& rawArgs,const NLMISC::CSString& fullCmdLine);\ virtual CTxtCommandResult execute(CONTEXT_CLASS& context,const NLMISC::CVectorSString& args,const NLMISC::CSString& rawArgs,const NLMISC::CSString& fullCmdLine);\
private:\ private:\
__CTxtCommand_##cmdName() {}\ __CTxtCommand_##cmdName##CONTEXT_CLASS() {}\
};\ };\
static ITxtCommandRegisterer<__CTxtCommand_##cmdName,__CTxtCommandSet_##setName> __CTxtCommand_##cmdName##_Registerer;\ static ITxtCommandRegisterer<__CTxtCommand_##cmdName##CONTEXT_CLASS,__CTxtCommandSet_##setName> __CTxtCommand_##cmdName##CONTEXT_CLASS##_Registerer;\
CTxtCommandResult __CTxtCommand_##cmdName::execute(CONTEXT_CLASS& context,const NLMISC::CVectorSString& args,const NLMISC::CSString& rawArgs,const NLMISC::CSString& fullCmdLine) CTxtCommandResult __CTxtCommand_##cmdName##CONTEXT_CLASS::execute(CONTEXT_CLASS& context,const NLMISC::CVectorSString& args,const NLMISC::CSString& rawArgs,const NLMISC::CSString& fullCmdLine)
//------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------

View file

@ -546,13 +546,13 @@ CAliasTreeOwner* CAliasCont<TChld>::getAliasChildByAlias(uint32 alias) const
template <class TChld> template <class TChld>
CAliasTreeOwner* CAliasCont<TChld>::addAliasChild(CAliasTreeOwner* child) CAliasTreeOwner* CAliasCont<TChld>::addAliasChild(CAliasTreeOwner* child)
{ {
return NLMISC::type_cast<CAliasTreeOwner*>(addChild(static_cast<TChld*>(child))); return NLMISC::type_cast<CAliasTreeOwner*>(this->addChild(static_cast<TChld*>(child)));
} }
template <class TChld> template <class TChld>
CAliasTreeOwner* CAliasCont<TChld>::addAliasChild(CAliasTreeOwner* child, uint32 index) CAliasTreeOwner* CAliasCont<TChld>::addAliasChild(CAliasTreeOwner* child, uint32 index)
{ {
return NLMISC::type_cast<CAliasTreeOwner*>(addChild(static_cast<TChld*>(child), index)); return NLMISC::type_cast<CAliasTreeOwner*>(this->addChild(static_cast<TChld*>(child), index));
} }
template <class TChld> template <class TChld>

View file

@ -844,7 +844,7 @@ public:
} }
protected: protected:
private: private:
size_t _index; uint32 _index;
float _value; float _value;
bool _detailled; bool _detailled;
mutable CLogStringWriter _stringWriter; mutable CLogStringWriter _stringWriter;

View file

@ -172,6 +172,7 @@ IAiFactory<IFamilyProfile> *_ProfileNpc=&_singleProfileNpc;
extern IAiFactory<IFamilyProfile> *_ProfileTribe; // in another cpp. extern IAiFactory<IFamilyProfile> *_ProfileTribe; // in another cpp.
NL_ISO_TEMPLATE_SPEC CAiFactoryContainer<IFamilyProfile, TStringId> *CAiFactoryContainer<IFamilyProfile, TStringId>::_Instance = NULL;
CFamilyProfileFactory::CFamilyProfileFactory() CFamilyProfileFactory::CFamilyProfileFactory()
{ {
@ -217,10 +218,6 @@ IFamilyProfile* CFamilyProfileFactory::createFamilyProfile(const TStringId &keyW
return NULL; return NULL;
} }
NL_ISO_TEMPLATE_SPEC CAiFactoryContainer<IFamilyProfile, TStringId> *CAiFactoryContainer<IFamilyProfile, TStringId>::_Instance = NULL;
IFamilyProfile* IFamilyProfile::createFamilyProfile(const TStringId &profileName, const IFamilyProfile::CtorParam& ctorParam) IFamilyProfile* IFamilyProfile::createFamilyProfile(const TStringId &profileName, const IFamilyProfile::CtorParam& ctorParam)
{ {
return CFamilyProfileFactory::createFamilyProfile(profileName, ctorParam); return CFamilyProfileFactory::createFamilyProfile(profileName, ctorParam);

View file

@ -1933,7 +1933,7 @@ void CSubRuleTracer::generateCode(CSmartPtr<AIVM::CByteCode> &cByteCode) const
case CScriptVM::JUMP: case CScriptVM::JUMP:
byteCode.push_back(op); // + Jump offset. byteCode.push_back(op); // + Jump offset.
size_t index; uint32 index;
NLMISC::fromString(param, index); NLMISC::fromString(param, index);
jumpTable.add(CJumpRememberer(index)); jumpTable.add(CJumpRememberer(index));
byteCode.push_back(0); // Invalid byteCode.push_back(0); // Invalid
@ -1950,7 +1950,7 @@ void CSubRuleTracer::generateCode(CSmartPtr<AIVM::CByteCode> &cByteCode) const
{ {
if (str.find("Atof")!=string::npos) if (str.find("Atof")!=string::npos)
{ {
size_t index; uint32 index;
NLMISC::fromString(param, index); NLMISC::fromString(param, index);
--index; --index;
string &strRef=_childTracers[index]->_TextValue; string &strRef=_childTracers[index]->_TextValue;
@ -1962,7 +1962,7 @@ void CSubRuleTracer::generateCode(CSmartPtr<AIVM::CByteCode> &cByteCode) const
if (str.find("String")!=string::npos) if (str.find("String")!=string::npos)
{ {
size_t index; uint32 index;
NLMISC::fromString(param, index); NLMISC::fromString(param, index);
--index; --index;
string &strRef=_childTracers[index]->_TextValue; string &strRef=_childTracers[index]->_TextValue;
@ -2021,7 +2021,7 @@ void CSubRuleTracer::generateCode(CSmartPtr<AIVM::CByteCode> &cByteCode) const
if (str.find("Code")!=string::npos) if (str.find("Code")!=string::npos)
{ {
size_t index; uint32 index;
NLMISC::fromString(param, index); NLMISC::fromString(param, index);
--index; --index;
if (byteCode.size()==0) if (byteCode.size()==0)

View file

@ -90,6 +90,14 @@ sint8 ExplosionResetPeriod = 50; // 5 s
CHarvestSource AutoSpawnSourceIniProperties; CHarvestSource AutoSpawnSourceIniProperties;
/*
* Access to singleton
*/
CHarvestSourceManager *CHarvestSourceManager::getInstance()
{
return (CHarvestSourceManager*)_Instance;
}
/* /*
* Initialization of source manager * Initialization of source manager
*/ */
@ -103,7 +111,10 @@ void CHarvestSourceManager::init( TDataSetIndex baseRowIndex, TDataSetIndex size
//AutoSpawnSourceIniProperties.setDistVis( 100 ); //AutoSpawnSourceIniProperties.setDistVis( 100 );
} }
void CHarvestSourceManager::release()
{
delete (CHarvestSourceManager*)_Instance;
}
/* /*
* HarvestSource constructor * HarvestSource constructor

View file

@ -391,13 +391,13 @@ class CHarvestSourceManager : public CSimpleEntityManager<CHarvestSource>
public: public:
/// Singleton access /// Singleton access
static CHarvestSourceManager *getInstance() { return (CHarvestSourceManager*)_Instance; } static CHarvestSourceManager *getInstance();
/// Initialization /// Initialization
void init( TDataSetIndex baseRowIndex, TDataSetIndex size ); void init( TDataSetIndex baseRowIndex, TDataSetIndex size );
/// Release /// Release
static void release() { delete (CHarvestSourceManager*)_Instance; } static void release();
}; };

View file

@ -67,3 +67,15 @@ NLMISC_DYNVARIABLE( uint, NbEnvironmentalEffects, "Number of environmental effec
if ( get ) if ( get )
*pointer = CEnvironmentalEffectManager::getInstance()->nbEntities(); *pointer = CEnvironmentalEffectManager::getInstance()->nbEntities();
} }
/// Singleton access
CEnvironmentalEffectManager *CEnvironmentalEffectManager::getInstance()
{
return (CEnvironmentalEffectManager*)_Instance;
}
/// Release
void CEnvironmentalEffectManager::release()
{
delete (CEnvironmentalEffectManager*)_Instance;
}

View file

@ -89,10 +89,10 @@ class CEnvironmentalEffectManager : public CSimpleEntityManager<CEnvironmentalEf
public: public:
/// Singleton access /// Singleton access
static CEnvironmentalEffectManager *getInstance() { return (CEnvironmentalEffectManager*)_Instance; } static CEnvironmentalEffectManager *getInstance();
/// Release /// Release
static void release() { delete (CEnvironmentalEffectManager*)_Instance; } static void release();
}; };

View file

@ -288,10 +288,10 @@ public :
TCDBDataIndex getDataIndex() const { return _DataIndex; } TCDBDataIndex getDataIndex() const { return _DataIndex; }
/// Set the atomic branch flag (when all the modified nodes of a branch should be tranmitted at the same time) /// Set the atomic branch flag (when all the modified nodes of a branch should be tranmitted at the same time)
void setAtomic( bool atomicBranch ) { _Atomic = atomicBranch; } void setAtomic( bool atomicBranch ) { _AtomicFlag = atomicBranch; }
/// Return true if the branch has the atomic flag /// Return true if the branch has the atomic flag
bool isAtomic() const { return _Atomic; } bool isAtomic() const { return _AtomicFlag; }
/** Attach callback. Allow to attach a callback function that some code could call /** Attach callback. Allow to attach a callback function that some code could call
* when an instance of this node is changed. * when an instance of this node is changed.
@ -307,7 +307,7 @@ protected:
ICDBStructNode() ICDBStructNode()
: _BankLabels(NULL), : _BankLabels(NULL),
_DataIndex(CDB_INVALID_DATA_INDEX), _DataIndex(CDB_INVALID_DATA_INDEX),
_Atomic(false), _AtomicFlag(false),
_ChangeCallback(NULL) _ChangeCallback(NULL)
{} {}
@ -325,7 +325,7 @@ protected:
TCDBDataIndex _DataIndex; TCDBDataIndex _DataIndex;
/// Atomic flag: is the branch an atomic group, or is the leaf a member of an atomic group /// Atomic flag: is the branch an atomic group, or is the leaf a member of an atomic group
bool _Atomic; bool _AtomicFlag;
/// Optional callback pointer. /// Optional callback pointer.
TNodeChangeCallback _ChangeCallback; TNodeChangeCallback _ChangeCallback;

View file

@ -186,7 +186,7 @@ void ICDBStructNode::setLabel( const std::string& bankName )
*/ */
void CCDBStructNodeBranch::initDataIndex( TCDBDataIndex& index ) void CCDBStructNodeBranch::initDataIndex( TCDBDataIndex& index )
{ {
if ( _Atomic ) if ( _AtomicFlag )
{ {
_DataIndex = index; _DataIndex = index;
checkIfNotMaxIndex(); checkIfNotMaxIndex();
@ -207,7 +207,7 @@ void CCDBStructNodeBranch::initDataIndex( TCDBDataIndex& index )
*/ */
void CCDBStructNodeBranch::initIdAndCallForEachIndex( CBinId& id, void (*callback)(ICDBStructNode*, void*), void *arg ) void CCDBStructNodeBranch::initIdAndCallForEachIndex( CBinId& id, void (*callback)(ICDBStructNode*, void*), void *arg )
{ {
if ( _Atomic ) if ( _AtomicFlag )
{ {
callback( this, arg ); callback( this, arg );
} }
@ -537,7 +537,7 @@ TCDBDataIndex CCDBStructNodeBranch::findDataIndex( ICDBStructNode::CTextId& id )
*/ */
void CCDBStructNodeBranch::foreachAtomBranchCall( void (*callback)(void*,TCDBDataIndex), void *arg ) const void CCDBStructNodeBranch::foreachAtomBranchCall( void (*callback)(void*,TCDBDataIndex), void *arg ) const
{ {
if ( _Atomic ) if ( _AtomicFlag )
{ {
callback( arg, _DataIndex ); callback( arg, _DataIndex );
} }

View file

@ -144,7 +144,7 @@ bool getProperty(xmlNodePtr node, const char* propName, T &result, const T &defa
if (!NLMISC::CIXml::getPropertyString(res, node, propName)) if (!NLMISC::CIXml::getPropertyString(res, node, propName))
{ {
if (!quiet) if (!quiet)
nlwarning("Couldn't get property '%s' in xml node, use '%s' value instead", propName, toString(defaultValue).c_str()); nlwarning("Couldn't get property '%s' in xml node, use '%s' value instead", propName, NLMISC::toString(defaultValue).c_str());
result = defaultValue; result = defaultValue;
return false; return false;
} }