#ifndef CLIENT_H #define CLIENT_H #include "QWClient.h" #include #include class App; class QTcpSocket; class QTime; class Client : public QWClient { public: Client(App* app); ~Client(); void disconnect(); void say(const QString& msg); void sayTeam(const QString& msg); void setTeam(const QString& msg); void setSocket(class QTcpSocket* socket); void retryConnection(); //unused bool isOnServer() const; protected: void onLevelChanged(int playerNum, const char *levelName, float gravity, float stopSpeed, float maxSpeed, float spectatorMaxSpeed, float accelerate, float airAccelerate, float waterAccelerate, float friction, float waterFriction, float entGravity); void onDisconnect(); void onPrint(int level, const char *msg); void onChallenge(); void onConnection(); void onConnected(); void onDownloadStarted(const char *fileName); void onDownloadFinished(); void onDownloadProgress(int percent); void onStuffedCmd(const char *cmd); void onError(const char *description); void onOOBPrint(const char *msg); private: App* myApp; QTcpSocket* mySocket; QTime* myEndFloodTimer; bool myFloodMsgPrinted; int myConnectionRetries; static const int ConnectionRetries = 10; QString myPrintLine; bool myDownloadProgressPrintedFlag; bool myOnServerFlag; void print(const QString& msg); void parsePrintedLine(); static QString parseNameFun(const QString& string); }; #endif // CLIENT_H