## Public API Reference

- Main Page
- Classes
- Files

# propclass/zone.h

    00001 /*
    00002     Crystal Space Entity Layer
    00003     Copyright (C) 2004 by Jorrit Tyberghein
    00004
    00005     This library is free software; you can redistribute it and/or
    00006     modify it under the terms of the GNU Library General Public
    00007     License as published by the Free Software Foundation; either
    00008     version 2 of the License, or (at your option) any later version.
    00009
    00010     This library is distributed in the hope that it will be useful,
    00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
    00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00013     Library General Public License for more details.
    00014
    00015     You should have received a copy of the GNU Library General Public
    00016     License along with this library; if not, write to the Free
    00017     Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
    00018 */
    00019
    00020 #ifndef __CEL_PF_ZONE__
    00021 #define __CEL_PF_ZONE__
    00022
    00023 #include "cstypes.h"
    00024 #include "csgeom/vector3.h"
    00025 #include "csutil/scf.h"
    00026
    00027 struct iSector;
    00028 struct iPcCamera;
    00029 struct iPcMesh;
    00030 struct iCelEntity;
    00031 struct iStringArray;
    00032 struct iString;
    00033 struct iDocumentNode;
    00034
    00035 SCF_VERSION (iCelMapFile, 0, 1, 0);
    00036
    00040 struct iCelMapFile : public iBase
    00041 {
    00047   virtual void SetPath (const char* path) = 0;
    00048
    00053   virtual void SetFile (const char* file) = 0;
    00054
    00059   virtual const char* GetPath () const = 0;
    00060
    00065   virtual const char* GetFile () const = 0;
    00066
    00073   virtual void SetSectorName (const char* name) = 0;
    00074
    00079   virtual const char* GetSectorName () const = 0;
    00080 };
    00081
    00082 SCF_VERSION (iCelRegion, 0, 1, 1);
    00083
    00088 struct iCelRegion : public iBase
    00089 {
    00091   virtual const char* GetName () const = 0;
    00092
    00100   virtual void SetCachePath (const char* path) = 0;
    00101
    00106   virtual const char* GetCachePath () const = 0;
    00107
    00112   virtual iCelMapFile* CreateMapFile () = 0;
    00113
    00117   virtual size_t GetMapFileCount () const = 0;
    00118
    00122   virtual iCelMapFile* GetMapFile (int idx) const = 0;
    00123
    00128   virtual bool RemoveMapFile (iCelMapFile* mapfile) = 0;
    00129
    00133   virtual void RemoveAllMapFiles () = 0;
    00134
    00139   virtual void AssociateEntity (iCelEntity* entity) = 0;
    00140
    00144   virtual void DissociateEntity (iCelEntity* entity) = 0;
    00145 };
    00146
    00147 SCF_VERSION (iCelZone, 0, 1, 0);
    00148
    00153 struct iCelZone : public iBase
    00154 {
    00156   virtual const char* GetName () const = 0;
    00157
    00161   virtual void LinkRegion (iCelRegion* region) = 0;
    00162
    00166   virtual size_t GetRegionCount () const = 0;
    00167
    00171   virtual iCelRegion* GetRegion (size_t idx) const = 0;
    00172
    00176   virtual iCelRegion* FindRegion (const char* name) const = 0;
    00177
    00182   virtual bool UnlinkRegion (iCelRegion* region) = 0;
    00183
    00187   virtual void UnlinkAllRegions () = 0;
    00188 };
    00189
    00193
    00194 #define CEL_ZONEERROR_OK 0
    00195
    00197 #define CEL_ZONEERROR_BADREGION 1
    00198
    00200 #define CEL_ZONEERROR_BADSTART 2
    00201
    00203 #define CEL_ZONEERROR_LOAD 3
    00204
    00209
    00210 #define CEL_ZONE_NORMAL 0
    00211
    00213 #define CEL_ZONE_KEEP 1
    00214
    00216 #define CEL_ZONE_LOADALL 2
    00217
    00220 SCF_VERSION (iPcZoneManager, 0, 1, 2);
    00221
    00255 struct iPcZoneManager : public iBase
    00256 {
    00262   virtual void EnableColliderWrappers (bool en) = 0;
    00263
    00267   virtual bool IsColliderWrappers () const = 0;
    00268
    00277   virtual void SetLoadingMode (int mode) = 0;
    00278
    00282   virtual int GetLoadingMode () const = 0;
    00283
    00290   virtual bool Load (iDocumentNode* node) = 0;
    00291
    00304   virtual bool Load (const char* path, const char* file) = 0;
    00305
    00309   virtual iCelZone* CreateZone (const char* name) = 0;
    00310
    00314   virtual size_t GetZoneCount () const = 0;
    00315
    00319   virtual iCelZone* GetZone (int idx) const = 0;
    00320
    00324   virtual iCelZone* FindZone (const char* name) const = 0;
    00325
    00330   virtual bool RemoveZone (iCelZone* zone) = 0;
    00331
    00335   virtual void RemoveAllZones () = 0;
    00336
    00340   virtual iCelRegion* CreateRegion (const char* name) = 0;
    00341
    00345   virtual size_t GetRegionCount () const = 0;
    00346
    00350   virtual iCelRegion* GetRegion (int idx) const = 0;
    00351
    00355   virtual iCelRegion* FindRegion (const char* name) const = 0;
    00356
    00361   virtual bool RemoveRegion (iCelRegion* region) = 0;
    00362
    00366   virtual void RemoveAllRegions () = 0;
    00367
    00371   virtual void FindStartLocations (iStringArray* regionnames,
    00372         iStringArray* startnames) = 0;
    00373
    00379   virtual void GetLastStartLocation (iString* regionname,
    00380         iString* startname) = 0;
    00386   virtual const char *GetLastStartRegionName () = 0;
    00387
    00392   virtual const char *GetLastStartName () = 0;
    00393
    00411   virtual int PointCamera (const char* entity, const char* regionname,
    00412         const char* startname = 0) = 0;
    00413
    00431   virtual int PointMesh (const char* entity, const char* regionname,
    00432         const char* startname = 0) = 0;
    00433
    00440   virtual bool ActivateRegion (iCelRegion* region,
    00441       bool allow_entity_addon = true) = 0;
    00442 };
    00443
    00444 #endif // __CEL_PF_ZONE__
    00445