Danbias/Code/Game/DanBiasServer/GameSession/GameClient.cpp

77 lines
1.9 KiB
C++
Raw Normal View History

2014-01-07 10:26:09 +01:00
/////////////////////////////////////////////////////////////////////
// Created by [Dennis Andersen] [2013]
/////////////////////////////////////////////////////////////////////
#include "GameClient.h"
#include "..\LobbySessions\NetworkSession.h"
#include <Game.h>
2014-01-07 10:26:09 +01:00
#include <GameProtocols.h>
using namespace Utility::DynamicMemory;
using namespace DanBias;
using namespace GameLogic;
2014-01-07 10:26:09 +01:00
static int gameClientIDCount = 1;
GameClient::GameClient(SmartPointer<LobbyClient> client, Game::PlayerData player, Oyster::Callback::OysterCallback<void, NetworkSession::NetEvent> value)
2014-01-07 10:26:09 +01:00
{
this->callbackValue = value;
this->client = client;
//this->player = new GameLogic::Player();
this->id = gameClientIDCount++;
this->player = player;
2014-01-07 10:26:09 +01:00
Oyster::Callback::OysterCallback<void, NetworkSession::NetEvent> c;
c.callbackType = Oyster::Callback::CallbackType_Object;
c.value = this;
this->client->SetCallback(c);
}
GameClient::~GameClient()
{
if(this->client) this->client->Disconnect();
this->player.playerID = 0;
this->player.teamID = 0;
this->id = -1;
//this->player.Release();
2014-01-07 10:26:09 +01:00
}
void GameClient::SetCallback(Oyster::Callback::OysterCallback<void, NetworkSession::NetEvent> value)
{
this->callbackValue = value;
}
//GameLogic::Player* GameClient::GetPlayer()
//{
// return this->player.Get();
//}
GameLogic::Game::PlayerData* GameClient::GetPlayer()
{
return &this->player;
}
GameLogic::Game::PlayerData GameClient::ReleasePlayer()
2014-01-07 10:26:09 +01:00
{
GameLogic::Game::PlayerData temp = this->player;
this->player.playerID = 0;
this->player.teamID = 0;
return temp;
2014-01-07 10:26:09 +01:00
}
LobbyClient* GameClient::GetClient() const
2014-01-07 10:26:09 +01:00
{
return this->client;
}
Utility::DynamicMemory::SmartPointer<LobbyClient> GameClient::ReleaseClient()
{
SmartPointer<LobbyClient> temp = this->client;
this->client = 0;
return temp;
}
int GameClient::GetID() const
{
return this->id;
}
2014-01-07 10:26:09 +01:00
void GameClient::ObjectCallback(NetworkSession::NetEvent e)
{
e.gameClient = this;
this->callbackValue(e);
}