# Home    # nevrax.com   
Nevrax
Nevrax.org
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#License
Docs
 
Documentation  
Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Search  

zone.h

Go to the documentation of this file.
00001 
00006 /* Copyright, 2001 Nevrax Ltd.
00007  *
00008  * This file is part of NEVRAX NEL.
00009  * NEVRAX NEL is free software; you can redistribute it and/or modify
00010  * it under the terms of the GNU General Public License as published by
00011  * the Free Software Foundation; either version 2, or (at your option)
00012  * any later version.
00013 
00014  * NEVRAX NEL is distributed in the hope that it will be useful, but
00015  * WITHOUT ANY WARRANTY; without even the implied warranty of
00016  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00017  * General Public License for more details.
00018 
00019  * You should have received a copy of the GNU General Public License
00020  * along with NEVRAX NEL; see the file COPYING. If not, write to the
00021  * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
00022  * MA 02111-1307, USA.
00023  */
00024 
00025 #ifndef NL_ZONE_H
00026 #define NL_ZONE_H
00027 #include "nel/ai/character/character.h"
00028 
00029 namespace NLAICHARACTER
00030 {               
00031         class IZone: public ICharacter
00032         {
00033         private:
00034                 ICharacter *_Character;
00035                 NLAIAGENT::IBaseGroupType *_Attachment;
00036 
00037         public:
00038                 IZone(const IZone &);
00039                 IZone(ICharacter *);
00041                 IZone(const std::string &name);
00042                 virtual ~IZone();
00043 
00044                 virtual const IZone *isInZone(const IZone &) const = 0;         
00045 
00046                 virtual const std::string &getName() const
00047                 {                       
00048                         return _Character->getName();
00049                 }
00050                 virtual const ICharacter *haveCharacter(const std::string &s) const
00051                 {
00052                         return _Character->haveCharacter(s);
00053                 }               
00054                 virtual bool addCharacter(const ICharacter &c)
00055                 {
00056                         return _Character->addCharacter(c);
00057                 }
00058 
00059                 virtual bool canAddCharacter() const
00060                 {
00061                         return _Character->canAddCharacter();
00062                 }
00063 
00064                 virtual void addObject(const NLAIAGENT::IObjectIA *);
00065                 virtual void removeObject(const NLAIAGENT::IObjectIA *);
00066                 virtual NLAIAGENT::CIteratorContener getAttachement() const;
00067         };      
00068         
00069 }
00070 #endif