// 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 CL_PACS_CLIENT_H #define CL_PACS_CLIENT_H ///////////// // INCLUDE // ///////////// // Misc. #include "nel/misc/types_nl.h" // Pacs Interface. // Client. #include "ig_client.h" // std #include // Size max of an entity in PACS (Trees and creatures) #define RYZOM_ENTITY_SIZE_MAX 16 class CIGCallback; // collision with igs of the landscapes (trees..) /////////// // USING // /////////// using NL3D::UInstanceGroup; using NLPACS::UMoveContainer; using NLPACS::UGlobalRetriever; using NLPACS::UGlobalPosition; //////////// // GLOBAL // //////////// // Global Move Container. extern UMoveContainer *PACS; extern CIGCallback *IGCallbacks; extern UGlobalRetriever *GR; extern const float LRRefeshRadius; // World Images extern const uint8 staticWI; // Static World Image extern const uint8 dynamicWI; // Dynamic World Image // Collision Masks. extern const NLPACS::UMovePrimitive::TCollisionMask MaskColNone; extern const NLPACS::UMovePrimitive::TCollisionMask MaskColPlayer; extern const NLPACS::UMovePrimitive::TCollisionMask MaskColNpc; extern const NLPACS::UMovePrimitive::TCollisionMask MaskColDoor; extern const NLPACS::UMovePrimitive::TCollisionMask MaskColAll; extern const uint16 UserDataTree; extern const uint16 UserDataLift; extern const uint16 UserDataDoor; extern const uint16 UserDataEntity; /////////////// // FUNCTIONS // /////////////// /// Initialize PACS. void initPACS (const char* rbank, const char* gr, NLMISC::IProgressCallback &progress); void releasePACS (); /** Initialize landscape IG collisions */ void initLandscapeIGCallbacks(); /** release landscape IG collisions. */ void releaseLandscapeIGCallbacks(); /// Get the cluster from a global position. UInstanceGroup *getCluster(const UGlobalPosition &gp); /// PACS primitive manager void initPrimitiveBlocks(); void addPacsPrim(const std::string &filename); void deletePrimitiveBlocks(); /// The pacs primitives typedef CHashMap TPacsPrimMap; extern TPacsPrimMap PacsPrims; #endif // CL_PACS_CLIENT_H /* End of pacs_client.h */