Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef CLIENTMAPMANAGEMENT_H
- #define CLIENTMAPMANAGEMENT_H
- #include <QObject>
- #include <QList>
- #include <QString>
- #include <QSemaphore>
- #include "Map_custom.h"
- #include "Structures.h"
- #include "EventThreader.h"
- #include "../VariableServer.h"
- class Map_custom;
- class ClientMapManagement : public QObject
- {
- Q_OBJECT
- public:
- explicit ClientMapManagement();
- ~ClientMapManagement();
- void setVariable(QList<Map_custom *> *map_list,EventThreader* map_loader_thread);
- //add clients linked
- void insertClient(const quint32 &player_id,const QString &map,const quint16 &x,const quint16 &y,const Direction &direction);
- void moveClient(const quint32 &player_id,const quint8 &movedUnit,const Direction &direction);
- void removeClient(const quint32 &player_id);
- void put_on_the_map_by_diff(const QString & map,const quint16 &x,const quint16 &y);
- //info linked
- quint16 x,y;
- quint16 at_start_x,at_start_y;
- quint32 player_id;
- Map_custom* current_map;
- bool have_diff;
- Direction last_direction;
- void mapError(QString errorString);
- void setBasePath(const QString &basePath);
- void stop();
- Map_player_info getMapPlayerInfo();
- signals:
- //map signals
- void needLoadMap(const QString & mapName);
- //normal signals
- void error(QString error);
- void message(QString message);
- void isReadyToStop();
- void sendPacket(QByteArray data);
- void updatePlayerPosition(const QString & map,quint16 x,quint16 y,Orientation orientation);
- public slots:
- //map slots
- void put_on_the_map(const quint32 &player_id,const QString & map,const quint16 &x,const quint16 &y,const Orientation &orientation);
- void moveThePlayer(const quint8 &previousMovedUnit,const Direction &direction);
- void purgeBuffer();
- //normal slots
- void askIfIsReadyToStop();
- private:
- //internal var
- QList<Map_custom *> * map_list;
- EventThreader* map_loader_thread;
- //stuff to send
- QList<map_management_insert> to_send_map_management_insert;
- QList<map_management_move> to_send_map_management_move;
- QList<quint32> to_send_map_management_remove;
- //to prevent thread bug
- QMutex mutex;
- //info linked
- Orientation at_start_orientation;
- QString at_start_map_name;
- //method
- Map_custom * getMap(const QString & mapName);
- void unloadFromCurrentMap();
- void unloadMapIfNeeded(Map_custom * map);
- void propagate();
- void getNearClient(QList<ClientMapManagement *> & returnList);
- QList<ClientMapManagement *> preMapMove();
- void postMapMove(const QList<ClientMapManagement *> &previousClient,const quint8 &previousMovedUnit,const Direction &direction);
- //temp variable
- Map_custom * old_map;
- QString basePath;
- volatile bool stopIt;
- QSemaphore wait_the_end;
- quint16 purgeBuffer_player_affected;
- QByteArray purgeBuffer_outputData;
- QByteArray purgeBuffer_outputDataLoop;
- int purgeBuffer_index;
- int purgeBuffer_list_size;
- int purgeBuffer_list_size_internal;
- int purgeBuffer_indexMovement;
- map_management_move purgeBuffer_move;
- map_management_movement moveClient_tempMov;
- map_management_move moveClient_temp;
- int moveClient_list_size,moveClient_index;
- map_management_insert insertClient_temp;
- int postMapMove_size;
- QList<ClientMapManagement *> postMapMove_nextClient;
- int list_size,index;
- int getNearClient_list_size,getNearClient_index;
- QList<ClientMapManagement *> moveThePlayer_returnList;
- int moveThePlayer_list_size,moveThePlayer_index;
- quint8 moveThePlayer_index_move;
- };
- #endif // CLIENTMAPMANAGEMENT_H
Advertisement
Add Comment
Please, Sign In to add comment