source: network-game/common/Player.cpp@ 5066e27

Last change on this file since 5066e27 was 5066e27, checked in by dportnoy <dmp1488@…>, 12 years ago

Appending a null terminator after the player name in the serialize function

  • Property mode set to 100644
File size: 1.1 KB
Line 
1#include "Player.h"
2
3#include <iostream>
4#include <sstream>
5#include <cstring>
6
7using namespace std;
8
9Player::Player(string name, string password)
10{
11 this->name = name;
12 this->password = password;
13 this->pos.x = 200;
14 this->pos.y = 200;
15
16 cout << "Created new player: " << this->name << endl;
17}
18
19Player::Player(string name, sockaddr_in addr)
20{
21 this->name = name;
22 this->password = "";
23 this->pos.x = 200;
24 this->pos.y = 200;
25 this->addr = addr;
26
27 cout << "Created new played: " << this->name << endl;
28}
29
30Player::~Player()
31{
32}
33
34void Player::serialize(char* buffer)
35{
36 ostringstream oss;
37
38 oss << this->name;
39 oss.write("\0", 1);
40 oss.write((char*)&(this->pos.x), sizeof(int));
41 oss.write((char*)&(this->pos.y), sizeof(int));
42
43 memcpy(buffer, oss.str().c_str(), this->name.length()+1+2*sizeof(int));
44}
45
46void Player::deserialize(char* buffer)
47{
48 istringstream iss;
49 iss.str(buffer);
50
51 iss >> this->name;
52 iss.read((char*)&(this->pos.x), sizeof(int));
53 iss.read((char*)&(this->pos.y), sizeof(int));
54}
55
56void Player::setAddr(sockaddr_in addr)
57{
58 this->addr = addr;
59}
Note: See TracBrowser for help on using the repository browser.