/** @file /ai/PathFind/pathfindtransciever.h @brief Header s deklaraci transcieveru pro Pathfind Engine. Header s deklaraci transcieveru pro Pathfind Engine. @author PZ @version 0.1 */ #ifndef __PETR_ZITA_PATHFINDING_TRANSCIEVER__ #define __PETR_ZITA_PATHFINDING_TRANSCIEVER__ #include "common/Msg.h" #include "common/Log.h" #include "common/Interface.h" #include "ai/PathFind/pathfindskelet.h" #include "world/world_messages.h" namespace ai_ns { namespace pathfind_ns { /** Forward deklarace message handleru. */ RVAL PATHFIND_MSG_HANDLER(MESSAGE_ID mid,SENDER s,PARAM p); /** Trida CPathFindTransciever obsahuje oddelene cast pro komunikaci s vnejsim svetem. Je ciste virtualni, tudiz nemuze byt instanciovana. */ class CPathFindTransciever : public CPathFindSkelet { public: /** Konstruktor. */ CPathFindTransciever(); protected: /** Definice transcieveru pro komunikaci. */ TMessageTransceiver pathfind_transceiver; /** Metoda pro defaultni inicializaci a registraci tranceiveru v globalni fronte. */ void initTransciever(); private: /** Metoda pripravujici modul Pathfind pro vyhledavani a floodfill na urcitem typu mapy. */ virtual void initMapInfo()=0; /** Zpratelena funkce transceiveru obsluhujici prichozi zpravy. */ friend RVAL PATHFIND_MSG_HANDLER(MESSAGE_ID mid,SENDER s,PARAM p); }; /** Konkretni instance tridy transceiveru pristupna pro funkci transceiveru. */ extern CPathFindTransciever* PFTrans; } // end of namespace "pathfind_ns" } // end of namespace "ai_ns" #endif