// Ryzom - MMORPG Framework // Copyright (C) 2010 Winch Gate Property Limited // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . #ifndef DYN_GRP_INLINE_H #define DYN_GRP_INLINE_H inline CDynGrpBase::CDynGrpBase() : _Discardable(true) { } inline CDynGrpBase::~CDynGrpBase() { if ( _GroupDesc && !_FamilyBehavior.isNULL()) _FamilyBehavior->_TheoricalLevel-=_GroupDesc->groupEnergyValue(); } inline void CDynGrpBase::initDynGrp(IGroupDesc const* const gd, CFamilyBehavior const* const familyBehavior) { if ( _GroupDesc && !_FamilyBehavior.isNULL()) _FamilyBehavior->_TheoricalLevel -= _GroupDesc->groupEnergyValue(); _GroupDesc = gd; _FamilyBehavior = familyBehavior; if ( _GroupDesc && !_FamilyBehavior.isNULL()) _FamilyBehavior->_TheoricalLevel += _GroupDesc->groupEnergyValue(); } inline void CDynGrpBase::setDiscardable(bool discardable) const { _Discardable = discardable; } inline bool CDynGrpBase::getDiscardable() const { return _Discardable; } inline NLMISC::CSmartPtr const& CDynGrpBase::getGroupDesc() const { return _GroupDesc; } inline NLMISC::CDbgPtr const& CDynGrpBase::getFamilyBehavior() const { return _FamilyBehavior; } inline float CDynGrpBase::getEnergyCoef() const { if (!getDiscardable()) return 0.f; if (getGroupDesc()==NULL) return 1.f; return getGroupDesc()->groupEnergyCoef(); } inline bool CDynGrpBase::getCountMultiplierFlag() const { if (!_GroupDesc.isNull()) return _GroupDesc->getCountMultiplierFlag(); else return false; } #endif