-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathswPlayerCreateMsg.cpp
36 lines (30 loc) · 1.02 KB
/
swPlayerCreateMsg.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "swPlayerCreateMsg.h"
#include "swFactory.h"
swPlayerCreateMsg::swPlayerCreateMsg() : isLocalPlayer(false) {
type = SW_PLAYER_CREATE_MSG;
}
swPlayerCreateMsg::~swPlayerCreateMsg() {}
void swPlayerCreateMsg::read(swStream* stream) {
isLocalPlayer = stream->readChar();
player.read(stream);
}
void swPlayerCreateMsg::write(swStream* stream) {
stream->writeChar(isLocalPlayer);
player.write(stream);
}
void swPlayerCreateMsg::cliHandle(swClient* client) {
// the client sends and receives this message
if(isLocalPlayer)
client->clientId = client->players.count();
player.client = client;
client->players.append(player);
}
void swPlayerCreateMsg::servHandle(swServer* server, QTcpSocket* sock) {
// the server adds the client to it's list and relays the message
player.sock = sock;
server->clientList.append(player);
foreach(QTcpSocket* sendSock, server->socks) {
isLocalPlayer = sock == sendSock;
swFactory::writeObject(this, sendSock);
}
}