34 |
34 |
35 extern char delimeter; |
35 extern char delimeter; |
36 |
36 |
37 class HWNewNet : public QObject |
37 class HWNewNet : public QObject |
38 { |
38 { |
39 Q_OBJECT |
39 Q_OBJECT |
40 |
40 |
41 public: |
41 public: |
42 enum ClientState { Disconnected, Connecting, Connected, InLobby, InRoom, InGame }; |
42 enum ClientState { Disconnected, Connecting, Connected, InLobby, InRoom, InGame }; |
43 |
43 |
44 HWNewNet(); |
44 HWNewNet(); |
45 ~HWNewNet(); |
45 ~HWNewNet(); |
46 void Connect(const QString & hostName, quint16 port, const QString & nick); |
46 void Connect(const QString & hostName, quint16 port, const QString & nick); |
47 void Disconnect(); |
47 void Disconnect(); |
48 void SendPasswordHash(const QString & hash); |
48 void SendPasswordHash(const QString & hash); |
49 void NewNick(const QString & nick); |
49 void NewNick(const QString & nick); |
50 bool isRoomChief(); |
50 bool isRoomChief(); |
51 bool isInRoom(); |
51 bool isInRoom(); |
52 ClientState clientState(); |
52 ClientState clientState(); |
53 QString getNick(); |
53 QString getNick(); |
54 QString getRoom(); |
54 QString getRoom(); |
55 QString getHost(); |
55 QString getHost(); |
56 |
56 |
57 private: |
57 private: |
58 bool isChief; |
58 bool isChief; |
59 QString mynick; |
59 QString mynick; |
60 QString myroom; |
60 QString myroom; |
61 QString myhost; |
61 QString myhost; |
62 QTcpSocket NetSocket; |
62 QTcpSocket NetSocket; |
63 QString seed; |
63 QString seed; |
64 bool m_game_connected; |
64 bool m_game_connected; |
65 |
65 |
66 template <typename T> |
66 template <typename T> |
67 void SendCfgStrNet(T a) { |
67 void SendCfgStrNet(T a) |
68 QByteArray strmsg; |
68 { |
69 strmsg.append(a); |
69 QByteArray strmsg; |
70 quint8 sz = strmsg.size(); |
70 strmsg.append(a); |
71 QByteArray enginemsg = QByteArray((char *)&sz, 1) + strmsg; |
71 quint8 sz = strmsg.size(); |
72 QString _msg = delimeter + QString(enginemsg.toBase64()); |
72 QByteArray enginemsg = QByteArray((char *)&sz, 1) + strmsg; |
73 RawSendNet(_msg); |
73 QString _msg = delimeter + QString(enginemsg.toBase64()); |
74 } |
74 RawSendNet(_msg); |
|
75 } |
75 |
76 |
76 template <typename T> |
77 template <typename T> |
77 void SendCfgStrLoc(T a) { |
78 void SendCfgStrLoc(T a) |
78 QByteArray strmsg; |
79 { |
79 strmsg.append(QString(a).toUtf8()); |
80 QByteArray strmsg; |
80 quint8 sz = strmsg.size(); |
81 strmsg.append(QString(a).toUtf8()); |
81 QByteArray enginemsg = QByteArray((char *)&sz, 1) + strmsg; |
82 quint8 sz = strmsg.size(); |
82 emit FromNet(enginemsg); |
83 QByteArray enginemsg = QByteArray((char *)&sz, 1) + strmsg; |
83 } |
84 emit FromNet(enginemsg); |
|
85 } |
84 |
86 |
85 QStringList cmdbuf; |
87 QStringList cmdbuf; |
86 |
88 |
87 void RawSendNet(const QString & buf); |
89 void RawSendNet(const QString & buf); |
88 void RawSendNet(const QByteArray & buf); |
90 void RawSendNet(const QByteArray & buf); |
89 void ParseCmd(const QStringList & lst); |
91 void ParseCmd(const QStringList & lst); |
90 void handleNotice(int n); |
92 void handleNotice(int n); |
91 |
93 |
92 int loginStep; |
94 int loginStep; |
93 ClientState netClientState; |
95 ClientState netClientState; |
94 |
96 |
95 signals: |
97 signals: |
96 void AskForRunGame(); |
98 void AskForRunGame(); |
97 void connected(); |
99 void connected(); |
98 void disconnected(const QString & reason); |
100 void disconnected(const QString & reason); |
99 void Error(const QString & errmsg); |
101 void Error(const QString & errmsg); |
100 void Warning(const QString & wrnmsg); |
102 void Warning(const QString & wrnmsg); |
101 void AskForPassword(const QString & nick); |
103 void AskForPassword(const QString & nick); |
102 void NickTaken(const QString & nick); |
104 void NickTaken(const QString & nick); |
103 void AuthFailed(); |
105 void AuthFailed(); |
104 void EnteredGame(); |
106 void EnteredGame(); |
105 void LeftRoom(const QString & reason); |
107 void LeftRoom(const QString & reason); |
106 void nickAdded(const QString& nick, bool notifyNick); |
108 void nickAdded(const QString& nick, bool notifyNick); |
107 void nickRemoved(const QString& nick); |
109 void nickRemoved(const QString& nick); |
108 void nickAddedLobby(const QString& nick, bool notifyNick); |
110 void nickAddedLobby(const QString& nick, bool notifyNick); |
109 void nickRemovedLobby(const QString& nick); |
111 void nickRemovedLobby(const QString& nick); |
110 void FromNet(const QByteArray & buf); |
112 void FromNet(const QByteArray & buf); |
111 void adminAccess(bool); |
113 void adminAccess(bool); |
112 void roomMaster(bool); |
114 void roomMaster(bool); |
113 |
115 |
114 void netSchemeConfig(QStringList &); |
116 void netSchemeConfig(QStringList &); |
115 void paramChanged(const QString & param, const QStringList & value); |
117 void paramChanged(const QString & param, const QStringList & value); |
116 void configAsked(); |
118 void configAsked(); |
117 |
119 |
118 void TeamAccepted(const QString&); |
120 void TeamAccepted(const QString&); |
119 void AddNetTeam(const HWTeam&); |
121 void AddNetTeam(const HWTeam&); |
120 void RemoveNetTeam(const HWTeam&); |
122 void RemoveNetTeam(const HWTeam&); |
121 void hhnumChanged(const HWTeam&); |
123 void hhnumChanged(const HWTeam&); |
122 void teamColorChanged(const HWTeam&); |
124 void teamColorChanged(const HWTeam&); |
123 void chatStringLobby(const QString&); |
125 void chatStringLobby(const QString&); |
124 void chatStringLobby(const QString&, const QString&); |
126 void chatStringLobby(const QString&, const QString&); |
125 void chatStringFromNet(const QString&); |
127 void chatStringFromNet(const QString&); |
126 void chatStringFromMe(const QString&); |
128 void chatStringFromMe(const QString&); |
127 void chatStringFromMeLobby(const QString&); |
129 void chatStringFromMeLobby(const QString&); |
128 |
130 |
129 void roomsList(const QStringList&); |
131 void roomsList(const QStringList&); |
130 void serverMessage(const QString &); |
132 void serverMessage(const QString &); |
131 void serverMessageNew(const QString &); |
133 void serverMessageNew(const QString &); |
132 void serverMessageOld(const QString &); |
134 void serverMessageOld(const QString &); |
133 void latestProtocolVar(int); |
135 void latestProtocolVar(int); |
134 |
136 |
135 void setReadyStatus(const QString & nick, bool isReady); |
137 void setReadyStatus(const QString & nick, bool isReady); |
136 void setMyReadyStatus(bool isReady); |
138 void setMyReadyStatus(bool isReady); |
137 |
139 |
138 public slots: |
140 public slots: |
139 void ToggleReady(); |
141 void ToggleReady(); |
140 void chatLineToNet(const QString& str); |
142 void chatLineToNet(const QString& str); |
141 void chatLineToLobby(const QString& str); |
143 void chatLineToLobby(const QString& str); |
142 void SendTeamMessage(const QString& str); |
144 void SendTeamMessage(const QString& str); |
143 void SendNet(const QByteArray & buf); |
145 void SendNet(const QByteArray & buf); |
144 void AddTeam(const HWTeam & team); |
146 void AddTeam(const HWTeam & team); |
145 void RemoveTeam(const HWTeam& team); |
147 void RemoveTeam(const HWTeam& team); |
146 void onHedgehogsNumChanged(const HWTeam& team); |
148 void onHedgehogsNumChanged(const HWTeam& team); |
147 void onTeamColorChanged(const HWTeam& team); |
149 void onTeamColorChanged(const HWTeam& team); |
148 void onParamChanged(const QString & param, const QStringList & value); |
150 void onParamChanged(const QString & param, const QStringList & value); |
149 |
151 |
150 void setServerMessageNew(const QString &); |
152 void setServerMessageNew(const QString &); |
151 void setServerMessageOld(const QString &); |
153 void setServerMessageOld(const QString &); |
152 void setLatestProtocolVar(int proto); |
154 void setLatestProtocolVar(int proto); |
153 void askServerVars(); |
155 void askServerVars(); |
154 |
156 |
155 void JoinRoom(const QString & room); |
157 void JoinRoom(const QString & room); |
156 void CreateRoom(const QString & room); |
158 void CreateRoom(const QString & room); |
157 void updateRoomName(const QString &); |
159 void updateRoomName(const QString &); |
158 void askRoomsList(); |
160 void askRoomsList(); |
159 void gameFinished(bool correcly); |
161 void gameFinished(bool correcly); |
160 void banPlayer(const QString &); |
162 void banPlayer(const QString &); |
161 void kickPlayer(const QString &); |
163 void kickPlayer(const QString &); |
162 void infoPlayer(const QString &); |
164 void infoPlayer(const QString &); |
163 void followPlayer(const QString &); |
165 void followPlayer(const QString &); |
164 void startGame(); |
166 void startGame(); |
165 void toggleRestrictJoins(); |
167 void toggleRestrictJoins(); |
166 void toggleRestrictTeamAdds(); |
168 void toggleRestrictTeamAdds(); |
167 void partRoom(); |
169 void partRoom(); |
168 void clearAccountsCache(); |
170 void clearAccountsCache(); |
169 |
171 |
170 private slots: |
172 private slots: |
171 void ClientRead(); |
173 void ClientRead(); |
172 void OnConnect(); |
174 void OnConnect(); |
173 void OnDisconnect(); |
175 void OnDisconnect(); |
174 void displayError(QAbstractSocket::SocketError socketError); |
176 void displayError(QAbstractSocket::SocketError socketError); |
175 }; |
177 }; |
176 |
178 |
177 #endif // _NEW_NETCLIENT_INCLUDED |
179 #endif // _NEW_NETCLIENT_INCLUDED |