Gameserver - Merged with Gamelogic

This commit is contained in:
Dennis Andersen 2014-01-14 10:38:35 +01:00
commit 54babfc7c7
6 changed files with 71 additions and 68 deletions

View File

@ -1,6 +1,9 @@
#include "AttatchmentSocket.h"
#include "IAttatchment.h"
#include "DynamicArray.h"
using namespace GameLogic;
using namespace Utility::DynamicMemory;
struct AttatchmentSocket::PrivateData
{
@ -14,7 +17,7 @@ struct AttatchmentSocket::PrivateData
}
IAttatchment *attatchment;
SmartPointer<IAttatchment> attatchment;
}myData;
@ -26,10 +29,7 @@ AttatchmentSocket::AttatchmentSocket(void)
AttatchmentSocket::~AttatchmentSocket(void)
{
if (myData->attatchment)
{
delete myData->attatchment;
}
}
IAttatchment* AttatchmentSocket::GetAttatchment()
@ -39,18 +39,12 @@ IAttatchment* AttatchmentSocket::GetAttatchment()
void AttatchmentSocket::SetAttatchment(IAttatchment *attatchment)
{
if (myData->attatchment)
{
delete myData->attatchment;
}
myData->attatchment = attatchment;
}
void AttatchmentSocket::RemoveAttatchment()
{
if (myData->attatchment)
{
delete myData->attatchment;
}
myData->attatchment = 0;
}

View File

@ -1,9 +1,11 @@
#include "Game.h"
#include "Player.h"
#include "Level.h"
#include <DynamicArray.h>
#include <GID.h>
using namespace GameLogic;
using namespace Utility::DynamicMemory;
struct Game::PrivateData
{
@ -16,9 +18,9 @@ struct Game::PrivateData
{
}
Player **players;
Level *level;
//DynamicArray<SmartPointer<Player>> players;
DynamicArray<SmartPointer<PlayerData>> players;
SmartPointer<Level> level;
}myData;
@ -36,10 +38,6 @@ Game::~Game(void)
}
}
void Game::MovePlayer(int playerID, const PLAYER_MOVEMENT &movement)
{
}
void Game::PlayerUseWeapon(int playerID, const WEAPON_FIRE &Usage)
{
@ -58,7 +56,9 @@ void Game::GetAllPlayerPos()
Game::PlayerData Game::CreatePlayer()
{
return PlayerData();
SmartPointer<Player> newPlayer = new Player();
myData->players.Push(newPlayer);
}
void Game::CreateTeam()

View File

@ -10,44 +10,50 @@
namespace GameLogic
{
class DANBIAS_GAMELOGIC_DLL Game
class Player;
class Game
{
public:
struct PlayerData
{
private:
friend class Game;
Player *player;
public:
int playerID;
int teamID;
PlayerData()
{
playerID = 0;
teamID = 0;
}
PlayerData(int playerID,int teamID)
{
this->playerID = playerID;
this->teamID = teamID;
PlayerData();
PlayerData(int playerID,int teamID);
}
~PlayerData()
{
}
};
public:
Game(void);
~Game(void);
/********************************************************
* Moves the chosen player based on input
* @param playerID: ID of the player you want to recieve the message
* @param movement: enum value on what kind of action is to be taken
********************************************************/
void MovePlayer(int playerID, const PLAYER_MOVEMENT &movement);
void MovePlayer(const PLAYER_MOVEMENT &movement);
};
public:
Game(void);
~Game(void);
/********************************************************
* Uses the chosen players weapon based on input

View File

@ -0,0 +1,14 @@
#include "Game.h"
#include "Player.h"
using namespace GameLogic;
Game::PlayerData::PlayerData()
{
}
void Game::PlayerData::MovePlayer(const PLAYER_MOVEMENT &movement)
{
}

View File

@ -5,8 +5,11 @@
#include "Player.h"
#include "PhysicsAPI.h"
#include "TeamManager.h"
#include "DynamicArray.h"
using namespace GameLogic;
using namespace Utility::DynamicMemory;
struct Level::PrivateData
{
@ -18,17 +21,15 @@ struct Level::PrivateData
{
}
TeamManager *teamManager;
SmartPointer<TeamManager> teamManager;
StaticObject** staticObjects;
int nrOfStaticObjects;
DynamicArray<SmartPointer<StaticObject>> staticObjects;
DynamicObject** dynamicObjects;
int nrOfDynamicObjects;
DynamicArray<SmartPointer<DynamicObject>> dynamicObjects;
GameMode* gameMode;
SmartPointer<GameMode> gameMode;
Oyster::Physics::ICustomBody *rigidBodyLevel;
SmartPointer<Oyster::Physics::ICustomBody> rigidBodyLevel;
}myData;

View File

@ -1,8 +1,10 @@
#include "Weapon.h"
#include "AttatchmentSocket.h"
#include "AttatchmentMassDriver.h"
#include "DynamicArray.h"
using namespace GameLogic;
using namespace Utility::DynamicMemory;
struct Weapon::PrivateData
{
@ -12,7 +14,6 @@ struct Weapon::PrivateData
selectedAttatchment = 0;
currentNrOfAttatchments = 0;
selectedSocketID = 0;
maxNrOfSockets = 0;
attatchmentSockets = 0;
}
@ -22,11 +23,9 @@ struct Weapon::PrivateData
WEAPON_STATE weaponState;
AttatchmentSocket **attatchmentSockets;
int maxNrOfSockets;
DynamicArray<SmartPointer<AttatchmentSocket>> attatchmentSockets;
int currentNrOfAttatchments;
IAttatchment *selectedAttatchment;
SmartPointer<IAttatchment> selectedAttatchment;
int selectedSocketID;
}myData;
@ -39,23 +38,12 @@ Weapon::Weapon()
Weapon::Weapon(int MaxNrOfSockets)
{
myData = new PrivateData();
myData->maxNrOfSockets = MaxNrOfSockets;
myData->attatchmentSockets = new AttatchmentSocket*[MaxNrOfSockets];
for (int i = 0; i < MaxNrOfSockets; i++)
{
myData->attatchmentSockets[i] = new AttatchmentSocket();
}
myData->attatchmentSockets.Resize(MaxNrOfSockets);
}
Weapon::~Weapon(void)
{
for (int i = 0; i < myData->currentNrOfAttatchments; i++)
{
delete myData->attatchmentSockets[i];
}
delete[] myData->attatchmentSockets;
delete myData;
}
@ -95,7 +83,7 @@ bool Weapon::IsReloading()
bool Weapon::IsValidSocket(int socketID)
{
if(socketID < myData->maxNrOfSockets && socketID >= 0)
if(socketID < myData->attatchmentSockets.Size() && socketID >= 0)
{
if (myData->attatchmentSockets[socketID]->GetAttatchment() != 0)
{
@ -114,7 +102,7 @@ int Weapon::GetCurrentSocketID()
void Weapon::AddNewAttatchment(IAttatchment *attatchment, Player *owner)
{
if(myData->currentNrOfAttatchments < myData->maxNrOfSockets)
if(myData->currentNrOfAttatchments < myData->attatchmentSockets.Size())
{
myData->attatchmentSockets[myData->currentNrOfAttatchments]->SetAttatchment(attatchment);
myData->currentNrOfAttatchments++;