2017-03-15 19:29:34 +00:00
|
|
|
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
|
|
|
|
// 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 <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
#ifndef NLGEORGES_ITEM_H
|
|
|
|
#define NLGEORGES_ITEM_H
|
|
|
|
|
|
|
|
#include "string_ex.h"
|
|
|
|
#include "form.h"
|
|
|
|
|
|
|
|
namespace NLOLDGEORGES
|
|
|
|
{
|
|
|
|
|
|
|
|
class CLoader;
|
|
|
|
class CItemElt;
|
|
|
|
class CItemEltAtom;
|
|
|
|
class CItemEltStruct;
|
|
|
|
class CItemEltList;
|
|
|
|
|
|
|
|
class CItem
|
|
|
|
{
|
|
|
|
protected:
|
|
|
|
CLoader* pl;
|
|
|
|
CItemEltStruct* pitemes;
|
|
|
|
// CItemEltList* pitemelparents;
|
|
|
|
// CItemEltAtom* pitemeacomments;
|
|
|
|
std::vector< std::pair< CStringEx, CStringEx > > vsxparents;
|
|
|
|
CStringEx moldfilename;
|
|
|
|
|
|
|
|
public:
|
|
|
|
CItem();
|
|
|
|
virtual ~CItem();
|
|
|
|
|
|
|
|
void Clear();
|
|
|
|
void SetLoader( CLoader* const _pl );
|
|
|
|
void New( const CStringEx& _sxdfnfilename );
|
|
|
|
void Load( const CStringEx& _sxfilename );
|
|
|
|
void Load( const CStringEx& _sxfilename, const CStringEx _sxdate );
|
|
|
|
void Save( const CStringEx& _sxfilename );
|
|
|
|
bool Update();
|
|
|
|
|
|
|
|
// Convert CItem to a CForm (in is this)
|
|
|
|
void MakeForm (CForm &out);
|
|
|
|
// Convert CForm to CItem (out is this)
|
|
|
|
void MakeItem (CForm &in);
|
|
|
|
|
|
|
|
void SetCurrentValue( const unsigned int _index, const CStringEx s );
|
|
|
|
uint GetNbElt() const;
|
|
|
|
uint GetNbParents() const;
|
|
|
|
uint GetNbElt( const unsigned int _index ) const;
|
|
|
|
uint GetInfos( const unsigned int _index ) const;
|
|
|
|
CStringEx GetName( const unsigned int _index ) const;
|
|
|
|
CStringEx GetCurrentResult( const unsigned int _index ) const;
|
|
|
|
CStringEx GetCurrentValue( const unsigned int _index ) const;
|
|
|
|
CStringEx GetFormula( const unsigned int _index ) const;
|
|
|
|
bool IsEnum( const unsigned int _index ) const;
|
|
|
|
bool IsPredef( const unsigned int _index ) const;
|
|
|
|
bool CanEdit( const unsigned int _index ) const;
|
|
|
|
void GetListPredef( const unsigned int _index, std::vector< CStringEx >& _vsx ) const;
|
|
|
|
|
|
|
|
CItemElt* GetElt( const unsigned int _index ) const;
|
|
|
|
CItemElt* GetElt( const CStringEx _sxname ) const;
|
|
|
|
|
|
|
|
void AddList( const unsigned int _index ) const;
|
|
|
|
void DelListChild( const unsigned int _index ) const;
|
|
|
|
void VirtualSaveLoad();
|
|
|
|
|
|
|
|
void AddParent( const unsigned int _index = 0);
|
|
|
|
void DelParent( const unsigned int _index );
|
|
|
|
void ClearParents ();
|
|
|
|
CStringEx GetParent( const unsigned int _index ) const;
|
|
|
|
void SetParent( const unsigned int _index, const CStringEx _sx );
|
|
|
|
CStringEx GetActivity( const unsigned int _index ) const;
|
|
|
|
void SetActivity( const unsigned int _index, const CStringEx _sx );
|
|
|
|
};
|
|
|
|
|
|
|
|
} // NLGEORGES
|
|
|
|
|
|
|
|
#endif // NLGEORGES_ITEM_H
|