Guest User

Untitled

a guest
Feb 3rd, 2012
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.43 KB | None | 0 0
  1. #ifndef CLIENTMAPMANAGEMENT_H
  2. #define CLIENTMAPMANAGEMENT_H
  3.  
  4. #include <QObject>
  5. #include <QList>
  6. #include <QString>
  7. #include <QSemaphore>
  8.  
  9. #include "Map_custom.h"
  10. #include "Structures.h"
  11. #include "EventThreader.h"
  12. #include "../VariableServer.h"
  13.  
  14. class Map_custom;
  15.  
  16. class ClientMapManagement : public QObject
  17. {
  18.     Q_OBJECT
  19. public:
  20.     explicit ClientMapManagement();
  21.     ~ClientMapManagement();
  22.     void setVariable(QList<Map_custom *> *map_list,EventThreader* map_loader_thread);
  23.     //add clients linked
  24.     void insertClient(const quint32 &player_id,const QString &map,const quint16 &x,const quint16 &y,const Direction &direction);
  25.     void moveClient(const quint32 &player_id,const quint8 &movedUnit,const Direction &direction);
  26.     void removeClient(const quint32 &player_id);
  27.     void put_on_the_map_by_diff(const QString & map,const quint16 &x,const quint16 &y);
  28.     //info linked
  29.     quint16             x,y;
  30.     quint16             at_start_x,at_start_y;
  31.     quint32             player_id;
  32.     Map_custom*         current_map;
  33.     bool                have_diff;
  34.     Direction           last_direction;
  35.     void mapError(QString errorString);
  36.     void setBasePath(const QString &basePath);
  37.     void stop();
  38.     Map_player_info getMapPlayerInfo();
  39. signals:
  40.     //map signals
  41.     void needLoadMap(const QString & mapName);
  42.     //normal signals
  43.     void error(QString error);
  44.     void message(QString message);
  45.     void isReadyToStop();
  46.     void sendPacket(QByteArray data);
  47.     void updatePlayerPosition(const QString & map,quint16 x,quint16 y,Orientation orientation);
  48. public slots:
  49.     //map slots
  50.     void put_on_the_map(const quint32 &player_id,const QString & map,const quint16 &x,const quint16 &y,const Orientation &orientation);
  51.     void moveThePlayer(const quint8 &previousMovedUnit,const Direction &direction);
  52.     void purgeBuffer();
  53.     //normal slots
  54.     void askIfIsReadyToStop();
  55. private:
  56.     //internal var
  57.     QList<Map_custom *> *       map_list;
  58.     EventThreader*          map_loader_thread;
  59.     //stuff to send
  60.     QList<map_management_insert>    to_send_map_management_insert;
  61.     QList<map_management_move>  to_send_map_management_move;
  62.     QList<quint32>          to_send_map_management_remove;
  63.     //to prevent thread bug
  64.     QMutex mutex;
  65.     //info linked
  66.     Orientation         at_start_orientation;
  67.     QString             at_start_map_name;
  68.     //method
  69.     Map_custom *            getMap(const QString & mapName);
  70.     void unloadFromCurrentMap();
  71.     void unloadMapIfNeeded(Map_custom * map);
  72.     void propagate();
  73.     void getNearClient(QList<ClientMapManagement *> & returnList);
  74.     QList<ClientMapManagement *> preMapMove();
  75.     void postMapMove(const QList<ClientMapManagement *> &previousClient,const quint8 &previousMovedUnit,const Direction &direction);
  76.     //temp variable
  77.     Map_custom * old_map;
  78.     QString basePath;
  79.     volatile bool stopIt;
  80.     QSemaphore wait_the_end;
  81.     quint16 purgeBuffer_player_affected;
  82.     QByteArray purgeBuffer_outputData;
  83.     QByteArray purgeBuffer_outputDataLoop;
  84.     int purgeBuffer_index;
  85.     int purgeBuffer_list_size;
  86.     int purgeBuffer_list_size_internal;
  87.     int purgeBuffer_indexMovement;
  88.     map_management_move purgeBuffer_move;
  89.     map_management_movement moveClient_tempMov;
  90.     map_management_move moveClient_temp;
  91.     int moveClient_list_size,moveClient_index;
  92.     map_management_insert insertClient_temp;
  93.     int postMapMove_size;
  94.     QList<ClientMapManagement *> postMapMove_nextClient;
  95.     int list_size,index;
  96.     int getNearClient_list_size,getNearClient_index;
  97.     QList<ClientMapManagement *> moveThePlayer_returnList;
  98.     int moveThePlayer_list_size,moveThePlayer_index;
  99.     quint8 moveThePlayer_index_move;
  100. };
  101.  
  102. #endif // CLIENTMAPMANAGEMENT_H
Advertisement
Add Comment
Please, Sign In to add comment