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