GameServer - Added more gameplay protocols and structured the old mess
This commit is contained in:
parent
14bf3ede86
commit
3274727923
|
@ -37,14 +37,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetworkAPI", "Network\Netwo
|
|||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GameProtocols", "Game\GameProtocols\GameProtocols.vcxproj", "{DA2AA800-ED64-4649-8B3B-E7F1E3968B78}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DanBiasServerLauncher", "Game\DanBiasServerLauncher\DanBiasServerLauncher.vcxproj", "{060B1890-CBF3-4808-BA99-A4776222093B}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Physics lab", "Physics lab\Physics lab.vcxproj", "{5128BD77-6472-4C4A-BE6F-724AD0E589C2}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GameServer", "Game\GameServer\GameServer.vcxproj", "{143BD516-20A1-4890-A3E4-F8BFD02220E7}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aDanBiasGameLauncher", "Game\aDanBiasGameLauncher\aDanBiasGameLauncher.vcxproj", "{666FEA52-975F-41CD-B224-B19AF3C0ABBA}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Mixed Platforms = Debug|Mixed Platforms
|
||||
|
@ -247,30 +241,6 @@ Global
|
|||
{DA2AA800-ED64-4649-8B3B-E7F1E3968B78}.Release|Win32.Build.0 = Release|Win32
|
||||
{DA2AA800-ED64-4649-8B3B-E7F1E3968B78}.Release|x64.ActiveCfg = Release|x64
|
||||
{DA2AA800-ED64-4649-8B3B-E7F1E3968B78}.Release|x64.Build.0 = Release|x64
|
||||
{060B1890-CBF3-4808-BA99-A4776222093B}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{060B1890-CBF3-4808-BA99-A4776222093B}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{060B1890-CBF3-4808-BA99-A4776222093B}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{060B1890-CBF3-4808-BA99-A4776222093B}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{060B1890-CBF3-4808-BA99-A4776222093B}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{060B1890-CBF3-4808-BA99-A4776222093B}.Debug|x64.Build.0 = Debug|x64
|
||||
{060B1890-CBF3-4808-BA99-A4776222093B}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{060B1890-CBF3-4808-BA99-A4776222093B}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{060B1890-CBF3-4808-BA99-A4776222093B}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{060B1890-CBF3-4808-BA99-A4776222093B}.Release|Win32.Build.0 = Release|Win32
|
||||
{060B1890-CBF3-4808-BA99-A4776222093B}.Release|x64.ActiveCfg = Release|x64
|
||||
{060B1890-CBF3-4808-BA99-A4776222093B}.Release|x64.Build.0 = Release|x64
|
||||
{5128BD77-6472-4C4A-BE6F-724AD0E589C2}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{5128BD77-6472-4C4A-BE6F-724AD0E589C2}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{5128BD77-6472-4C4A-BE6F-724AD0E589C2}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{5128BD77-6472-4C4A-BE6F-724AD0E589C2}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{5128BD77-6472-4C4A-BE6F-724AD0E589C2}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{5128BD77-6472-4C4A-BE6F-724AD0E589C2}.Debug|x64.Build.0 = Debug|x64
|
||||
{5128BD77-6472-4C4A-BE6F-724AD0E589C2}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{5128BD77-6472-4C4A-BE6F-724AD0E589C2}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{5128BD77-6472-4C4A-BE6F-724AD0E589C2}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{5128BD77-6472-4C4A-BE6F-724AD0E589C2}.Release|Win32.Build.0 = Release|Win32
|
||||
{5128BD77-6472-4C4A-BE6F-724AD0E589C2}.Release|x64.ActiveCfg = Release|x64
|
||||
{5128BD77-6472-4C4A-BE6F-724AD0E589C2}.Release|x64.Build.0 = Release|x64
|
||||
{143BD516-20A1-4890-A3E4-F8BFD02220E7}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{143BD516-20A1-4890-A3E4-F8BFD02220E7}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{143BD516-20A1-4890-A3E4-F8BFD02220E7}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
|
@ -283,18 +253,6 @@ Global
|
|||
{143BD516-20A1-4890-A3E4-F8BFD02220E7}.Release|Win32.Build.0 = Release|Win32
|
||||
{143BD516-20A1-4890-A3E4-F8BFD02220E7}.Release|x64.ActiveCfg = Release|x64
|
||||
{143BD516-20A1-4890-A3E4-F8BFD02220E7}.Release|x64.Build.0 = Release|x64
|
||||
{666FEA52-975F-41CD-B224-B19AF3C0ABBA}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{666FEA52-975F-41CD-B224-B19AF3C0ABBA}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{666FEA52-975F-41CD-B224-B19AF3C0ABBA}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{666FEA52-975F-41CD-B224-B19AF3C0ABBA}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{666FEA52-975F-41CD-B224-B19AF3C0ABBA}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{666FEA52-975F-41CD-B224-B19AF3C0ABBA}.Debug|x64.Build.0 = Debug|x64
|
||||
{666FEA52-975F-41CD-B224-B19AF3C0ABBA}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{666FEA52-975F-41CD-B224-B19AF3C0ABBA}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{666FEA52-975F-41CD-B224-B19AF3C0ABBA}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{666FEA52-975F-41CD-B224-B19AF3C0ABBA}.Release|Win32.Build.0 = Release|Win32
|
||||
{666FEA52-975F-41CD-B224-B19AF3C0ABBA}.Release|x64.ActiveCfg = Release|x64
|
||||
{666FEA52-975F-41CD-B224-B19AF3C0ABBA}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -308,8 +266,6 @@ Global
|
|||
{B1195BB9-B3A5-47F0-906C-8DEA384D1520} = {20720CA7-795C-45AD-A302-9383A6DD503A}
|
||||
{8690FDDF-C5B7-4C42-A337-BD5243F29B85} = {20720CA7-795C-45AD-A302-9383A6DD503A}
|
||||
{DA2AA800-ED64-4649-8B3B-E7F1E3968B78} = {20720CA7-795C-45AD-A302-9383A6DD503A}
|
||||
{060B1890-CBF3-4808-BA99-A4776222093B} = {20720CA7-795C-45AD-A302-9383A6DD503A}
|
||||
{143BD516-20A1-4890-A3E4-F8BFD02220E7} = {20720CA7-795C-45AD-A302-9383A6DD503A}
|
||||
{666FEA52-975F-41CD-B224-B19AF3C0ABBA} = {20720CA7-795C-45AD-A302-9383A6DD503A}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
|
|
@ -38,34 +38,6 @@ namespace DanBias
|
|||
}
|
||||
}
|
||||
break;
|
||||
case protocol_Gameplay_PlayerMovement:
|
||||
{
|
||||
Client::GameClientState::KeyInput* protocolData = new Client::GameClientState::KeyInput;
|
||||
for(int i = 0; i< 6; i++)
|
||||
{
|
||||
protocolData->key[i] = p[i+1].value.netBool;
|
||||
}
|
||||
|
||||
if(dynamic_cast<Client::GameState*>(gameClientState))
|
||||
((Client::GameState*)gameClientState)->Protocol(protocolData);
|
||||
delete protocolData;
|
||||
protocolData = NULL;
|
||||
}
|
||||
break;
|
||||
//case protocol_Gameplay_PlayerPosition:
|
||||
// {
|
||||
// Client::GameClientState::PlayerPos* protocolData = new Client::GameClientState::PlayerPos;
|
||||
// for(int i = 0; i< 3; i++)
|
||||
// {
|
||||
// protocolData->playerPos[i] = p[i].value.netFloat;
|
||||
// }
|
||||
// if(dynamic_cast<Client::GameState*>(gameClientState))
|
||||
// ((Client::GameState*)gameClientState)->Protocol(protocolData);
|
||||
// delete protocolData;
|
||||
// protocolData = NULL;
|
||||
// }
|
||||
// break;
|
||||
|
||||
case protocol_Gameplay_ObjectCreate:
|
||||
{
|
||||
Client::GameClientState::NewObj protocolData;// = new Client::GameClientState::NewObj;
|
||||
|
@ -114,7 +86,6 @@ namespace DanBias
|
|||
{
|
||||
if(dynamic_cast<Client::LobbyState*>(gameClientState))
|
||||
{
|
||||
GameLogic::Protocol_LobbyCreateGame tp();
|
||||
int id = p.Get(1).value.netInt;
|
||||
std::string name = p.Get(19).value.netCharPtr;
|
||||
Oyster::Math::Float4x4 w;
|
||||
|
|
|
@ -35,6 +35,11 @@ public:
|
|||
};
|
||||
struct KeyInput :public ProtocolStruct
|
||||
{
|
||||
/*
|
||||
* key[0] =
|
||||
*
|
||||
*
|
||||
*/
|
||||
bool key[6];
|
||||
};
|
||||
struct PlayerPos :public ProtocolStruct
|
||||
|
|
|
@ -309,20 +309,11 @@ bool GameState::Release()
|
|||
void GameState::readKeyInput(InputClass* KeyInput)
|
||||
{
|
||||
|
||||
bool send = false;
|
||||
GameLogic::Protocol_PlayerMovement movePlayer;
|
||||
movePlayer.bForward = false;
|
||||
movePlayer.bBackward = false;
|
||||
movePlayer.bLeft = false;
|
||||
movePlayer.bRight = false;
|
||||
|
||||
if(KeyInput->IsKeyPressed(DIK_W))
|
||||
{
|
||||
|
||||
if(!key_forward)
|
||||
{
|
||||
movePlayer.bForward = true;
|
||||
send = true;
|
||||
privData->nwClient->Send(GameLogic::Protocol_PlayerMovementForward());
|
||||
key_forward = true;
|
||||
}
|
||||
}
|
||||
|
@ -333,8 +324,7 @@ void GameState::readKeyInput(InputClass* KeyInput)
|
|||
{
|
||||
if(!key_backward)
|
||||
{
|
||||
movePlayer.bBackward = true;
|
||||
send = true;
|
||||
privData->nwClient->Send(GameLogic::Protocol_PlayerMovementBackward());
|
||||
key_backward = true;
|
||||
}
|
||||
}
|
||||
|
@ -345,8 +335,7 @@ void GameState::readKeyInput(InputClass* KeyInput)
|
|||
{
|
||||
if(!key_strafeLeft)
|
||||
{
|
||||
movePlayer.bLeft = true;
|
||||
send = true;
|
||||
privData->nwClient->Send(GameLogic::Protocol_PlayerMovementLeft());
|
||||
key_strafeLeft = true;
|
||||
}
|
||||
}
|
||||
|
@ -357,8 +346,7 @@ void GameState::readKeyInput(InputClass* KeyInput)
|
|||
{
|
||||
if(!key_strafeRight)
|
||||
{
|
||||
movePlayer.bRight = true;
|
||||
send = true;
|
||||
privData->nwClient->Send(GameLogic::Protocol_PlayerMovementRight());
|
||||
key_strafeRight = true;
|
||||
}
|
||||
}
|
||||
|
@ -366,11 +354,6 @@ void GameState::readKeyInput(InputClass* KeyInput)
|
|||
key_strafeRight = false;
|
||||
|
||||
|
||||
if (privData->nwClient->IsConnected() && send)
|
||||
{
|
||||
privData->nwClient->Send(movePlayer);
|
||||
}
|
||||
|
||||
//send delta mouse movement
|
||||
if (KeyInput->IsMousePressed())
|
||||
{
|
||||
|
@ -437,9 +420,7 @@ void GameState::readKeyInput(InputClass* KeyInput)
|
|||
{
|
||||
if(!key_Jump)
|
||||
{
|
||||
GameLogic::Protocol_PlayerJump playerJump;
|
||||
playerJump.hasJumped = true;
|
||||
privData->nwClient->Send(playerJump);
|
||||
privData->nwClient->Send(GameLogic::Protocol_PlayerJump());
|
||||
key_Jump = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -95,7 +95,7 @@ GameClientState::ClientState LobbyState::Update(float deltaTime, InputClass* Key
|
|||
{
|
||||
if(!DanBias::GameServerAPI::GameStart())
|
||||
{
|
||||
//this->nwClient->Send(GameLogic::Protocol_LobbyStartGame());
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -119,6 +119,7 @@ GameClientState::ClientState LoginState::Update(float deltaTime, InputClass* Key
|
|||
{
|
||||
// game ip
|
||||
nwClient->Connect(15152, "127.0.0.1");
|
||||
//nwClient->Connect(15152, "83.254.217.248");
|
||||
|
||||
if (!nwClient->IsConnected())
|
||||
{
|
||||
|
|
|
@ -71,9 +71,9 @@ void Level::InitiateLevel(float radius)
|
|||
state.SetRestitutionCoeff(0.2);
|
||||
rigidBody->SetState(state);
|
||||
|
||||
levelObj = new StaticObject(rigidBody, LevelCollisionBefore, LevelCollisionAfter, OBJECT_TYPE::OBJECT_TYPE_WORLD);
|
||||
levelObj->objectID = idCount++;
|
||||
rigidBody->SetCustomTag(levelObj);
|
||||
this->levelObj = new StaticObject(rigidBody, LevelCollisionBefore, LevelCollisionAfter, OBJECT_TYPE::OBJECT_TYPE_WORLD);
|
||||
this->levelObj->objectID = idCount++;
|
||||
rigidBody->SetCustomTag(this->levelObj);
|
||||
|
||||
/*
|
||||
// add box
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
//////////////////////////////////////////////////////////
|
||||
// Created 2013 //
|
||||
// Dennis Andersen, Linda Andersson //
|
||||
//////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef GAMELOGIC_OBJECT_PROTOCOLS_H
|
||||
#define GAMELOGIC_OBJECT_PROTOCOLS_H
|
||||
|
||||
|
@ -6,6 +11,7 @@
|
|||
|
||||
namespace GameLogic
|
||||
{
|
||||
//#define protocol_Gameplay_ObjectPickup 350
|
||||
struct Protocol_ObjectPickup :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
short object_ID;
|
||||
|
@ -50,10 +56,11 @@ namespace GameLogic
|
|||
Oyster::Network::CustomNetProtocol protocol;
|
||||
};
|
||||
|
||||
//#define protocol_Gameplay_ObjectDamage 351
|
||||
struct Protocol_ObjectDamage :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
int object_ID;
|
||||
float health; //Precentage%
|
||||
float healthLost; //Precentage%
|
||||
|
||||
Protocol_ObjectDamage()
|
||||
{
|
||||
|
@ -64,7 +71,7 @@ namespace GameLogic
|
|||
this->protocol[2].type = Oyster::Network::NetAttributeType_Float;
|
||||
|
||||
object_ID = -1;
|
||||
health = 0.0f;
|
||||
healthLost = 0.0f;
|
||||
}
|
||||
Protocol_ObjectDamage(Oyster::Network::CustomNetProtocol& p)
|
||||
{
|
||||
|
@ -78,12 +85,12 @@ namespace GameLogic
|
|||
this->protocol[2].type = Oyster::Network::NetAttributeType_Float;
|
||||
|
||||
object_ID = id;
|
||||
health = hp;
|
||||
healthLost = hp;
|
||||
}
|
||||
Oyster::Network::CustomNetProtocol GetProtocol() override
|
||||
{
|
||||
this->protocol[1].value = object_ID;
|
||||
this->protocol[2].value = health;
|
||||
this->protocol[2].value = healthLost;
|
||||
return protocol;
|
||||
}
|
||||
|
||||
|
@ -91,51 +98,89 @@ namespace GameLogic
|
|||
Oyster::Network::CustomNetProtocol protocol;
|
||||
};
|
||||
|
||||
//#define protocol_Gameplay_ObjectHealthStatus 352
|
||||
struct Protocol_ObjectHealthStatus :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
float currentHealth;
|
||||
int id;
|
||||
|
||||
Protocol_ObjectHealthStatus()
|
||||
{
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[0].value.netShort = protocol_Gameplay_ObjectHealthStatus;
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Int;
|
||||
this->protocol[2].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->id = 0;
|
||||
this->currentHealth = 0.0f;
|
||||
}
|
||||
Protocol_ObjectHealthStatus(int id, float health)
|
||||
{
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[0].value.netShort = protocol_Gameplay_ObjectHealthStatus;
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Int;
|
||||
this->protocol[2].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->id = id; this->currentHealth = health;
|
||||
}
|
||||
Protocol_ObjectHealthStatus(Oyster::Network::CustomNetProtocol& p)
|
||||
{
|
||||
this->id = p[1].value.netInt;
|
||||
this->currentHealth = p[2].value.netFloat;
|
||||
}
|
||||
Oyster::Network::CustomNetProtocol GetProtocol() override
|
||||
{
|
||||
this->protocol[1].value = this->id;
|
||||
this->protocol[2].value = this->currentHealth;
|
||||
|
||||
return protocol;
|
||||
}
|
||||
|
||||
private:
|
||||
Oyster::Network::CustomNetProtocol protocol;
|
||||
};
|
||||
|
||||
//#define protocol_Gameplay_ObjectPosition 353
|
||||
struct Protocol_ObjectPosition :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
int object_ID;
|
||||
float worldMatrix[16];
|
||||
short object_ID;
|
||||
float position[3];
|
||||
|
||||
Protocol_ObjectPosition()
|
||||
{
|
||||
this->protocol[0].value = protocol_Gameplay_ObjectPosition;
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[2].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[3].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[4].type = Oyster::Network::NetAttributeType_Float;
|
||||
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Int;
|
||||
|
||||
for (int i = 2; i <= 17; i++)
|
||||
{
|
||||
this->protocol[i].type = Oyster::Network::NetAttributeType_Float;
|
||||
}
|
||||
object_ID = -1;
|
||||
memset(&worldMatrix[0], 0, sizeof(float) * 16);
|
||||
object_ID = 0;
|
||||
memset(&position[0], 0, sizeof(float) * 3);
|
||||
}
|
||||
Protocol_ObjectPosition(Oyster::Network::CustomNetProtocol& p)
|
||||
{
|
||||
|
||||
object_ID = p[1].value.netShort;
|
||||
position[0] = p[2].value.netFloat;
|
||||
position[1] = p[3].value.netFloat;
|
||||
position[2] = p[4].value.netFloat;
|
||||
}
|
||||
Protocol_ObjectPosition(float m[16], int id)
|
||||
Protocol_ObjectPosition(float v[3], int id)
|
||||
{
|
||||
this->protocol[0].value = protocol_Gameplay_ObjectPosition;
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Int;
|
||||
|
||||
for (int i = 2; i <= 17; i++)
|
||||
{
|
||||
this->protocol[i].type = Oyster::Network::NetAttributeType_Float;
|
||||
}
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[2].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[3].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[4].type = Oyster::Network::NetAttributeType_Float;
|
||||
|
||||
object_ID = id;
|
||||
memcpy(&worldMatrix[0], &m[0], sizeof(float)*16);
|
||||
memcpy(&position[0], &v[0], sizeof(float) * 3);
|
||||
}
|
||||
Oyster::Network::CustomNetProtocol GetProtocol() override
|
||||
{
|
||||
this->protocol[1].value = object_ID;
|
||||
for (int i = 2; i <= 17; i++)
|
||||
{
|
||||
this->protocol[i].value = worldMatrix[i-2];
|
||||
}
|
||||
this->protocol[2].value = position[0];
|
||||
this->protocol[3].value = position[1];
|
||||
this->protocol[4].value = position[2];
|
||||
return protocol;
|
||||
}
|
||||
|
||||
|
@ -143,49 +188,132 @@ namespace GameLogic
|
|||
Oyster::Network::CustomNetProtocol protocol;
|
||||
};
|
||||
|
||||
//#define protocol_Gameplay_ObjectScale 354
|
||||
struct Protocol_ObjectScale :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
short object_ID;
|
||||
float position[3];
|
||||
|
||||
Protocol_ObjectScale()
|
||||
{
|
||||
this->protocol[0].value = protocol_Gameplay_ObjectScale;
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[2].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[3].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[4].type = Oyster::Network::NetAttributeType_Float;
|
||||
|
||||
object_ID = 0;
|
||||
memset(&position[0], 0, sizeof(float) * 3);
|
||||
}
|
||||
Protocol_ObjectScale(Oyster::Network::CustomNetProtocol& p)
|
||||
{
|
||||
object_ID = p[1].value.netShort;
|
||||
position[0] = p[2].value.netFloat;
|
||||
position[1] = p[3].value.netFloat;
|
||||
position[2] = p[4].value.netFloat;
|
||||
}
|
||||
Protocol_ObjectScale(float v[3], int id)
|
||||
{
|
||||
this->protocol[0].value = protocol_Gameplay_ObjectScale;
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[2].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[3].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[4].type = Oyster::Network::NetAttributeType_Float;
|
||||
|
||||
object_ID = id;
|
||||
memcpy(&position[0], &v[0], sizeof(float) * 3);
|
||||
}
|
||||
Oyster::Network::CustomNetProtocol GetProtocol() override
|
||||
{
|
||||
this->protocol[1].value = object_ID;
|
||||
this->protocol[2].value = position[0];
|
||||
this->protocol[3].value = position[1];
|
||||
this->protocol[4].value = position[2];
|
||||
return protocol;
|
||||
}
|
||||
|
||||
private:
|
||||
Oyster::Network::CustomNetProtocol protocol;
|
||||
};
|
||||
|
||||
//#define protocol_Gameplay_ObjectRotation 355
|
||||
struct Protocol_ObjectRotation :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
short object_ID;
|
||||
float position[3];
|
||||
|
||||
Protocol_ObjectRotation()
|
||||
{
|
||||
this->protocol[0].value = protocol_Gameplay_ObjectRotation;
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[2].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[3].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[4].type = Oyster::Network::NetAttributeType_Float;
|
||||
|
||||
object_ID = 0;
|
||||
memset(&position[0], 0, sizeof(float) * 3);
|
||||
}
|
||||
Protocol_ObjectRotation(Oyster::Network::CustomNetProtocol& p)
|
||||
{
|
||||
object_ID = p[1].value.netShort;
|
||||
position[0] = p[2].value.netFloat;
|
||||
position[1] = p[3].value.netFloat;
|
||||
position[2] = p[4].value.netFloat;
|
||||
}
|
||||
Protocol_ObjectRotation(float v[3], int id)
|
||||
{
|
||||
this->protocol[0].value = protocol_Gameplay_ObjectRotation;
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[2].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[3].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[4].type = Oyster::Network::NetAttributeType_Float;
|
||||
|
||||
object_ID = id;
|
||||
memcpy(&position[0], &v[0], sizeof(float) * 3);
|
||||
}
|
||||
Oyster::Network::CustomNetProtocol GetProtocol() override
|
||||
{
|
||||
this->protocol[1].value = object_ID;
|
||||
this->protocol[2].value = position[0];
|
||||
this->protocol[3].value = position[1];
|
||||
this->protocol[4].value = position[2];
|
||||
return protocol;
|
||||
}
|
||||
|
||||
private:
|
||||
Oyster::Network::CustomNetProtocol protocol;
|
||||
};
|
||||
|
||||
//#define protocol_Gameplay_ObjectEnabled 356
|
||||
struct Protocol_ObjectEnable :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
int object_ID;
|
||||
float worldMatrix[16];
|
||||
int objectID;
|
||||
|
||||
Protocol_ObjectEnable()
|
||||
{
|
||||
this->protocol[0].value = protocol_Gameplay_ObjectEnabled;
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Int;
|
||||
|
||||
for (int i = 2; i <= 17; i++)
|
||||
{
|
||||
this->protocol[i].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->objectID = -1;
|
||||
}
|
||||
object_ID = -1;
|
||||
memset(&worldMatrix[0], 0, sizeof(float) * 16);
|
||||
}
|
||||
Protocol_ObjectEnable(Oyster::Network::CustomNetProtocol& p)
|
||||
{
|
||||
|
||||
}
|
||||
Protocol_ObjectEnable(float m[16], int id)
|
||||
Protocol_ObjectEnable(int objectID)
|
||||
{
|
||||
this->protocol[0].value = protocol_Gameplay_ObjectEnabled;
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Int;
|
||||
|
||||
for (int i = 2; i <= 17; i++)
|
||||
{ this->protocol[i].type = Oyster::Network::NetAttributeType_Float; }
|
||||
|
||||
object_ID = id;
|
||||
memcpy(&worldMatrix[0], &m[0], sizeof(float)*16);
|
||||
this->objectID = objectID;
|
||||
}
|
||||
Protocol_ObjectEnable(Oyster::Network::CustomNetProtocol& p)
|
||||
{
|
||||
this->objectID = p[1].value.netInt;
|
||||
}
|
||||
Oyster::Network::CustomNetProtocol GetProtocol() override
|
||||
{
|
||||
this->protocol[1].value = object_ID;
|
||||
for (int i = 2; i <= 17; i++)
|
||||
{
|
||||
this->protocol[i].value = worldMatrix[i-2];
|
||||
}
|
||||
this->protocol[1].value = this->objectID;
|
||||
return protocol;
|
||||
}
|
||||
|
||||
|
@ -193,38 +321,39 @@ namespace GameLogic
|
|||
Oyster::Network::CustomNetProtocol protocol;
|
||||
};
|
||||
|
||||
//#define protocol_Gameplay_ObjectDisabled 357
|
||||
struct Protocol_ObjectDisable :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
int object_ID;
|
||||
float timer;
|
||||
int objectID;
|
||||
float seconds;
|
||||
|
||||
Protocol_ObjectDisable()
|
||||
{
|
||||
this->protocol[0].value = protocol_Gameplay_ObjectDisabled;
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Int;
|
||||
this->protocol[2].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->objectID = 0;
|
||||
this->seconds = 0.0f;
|
||||
}
|
||||
Protocol_ObjectDisable(Oyster::Network::CustomNetProtocol& p)
|
||||
{
|
||||
|
||||
}
|
||||
Protocol_ObjectDisable(int id, float time)
|
||||
Protocol_ObjectDisable(int objctID, float seconds)
|
||||
{
|
||||
this->protocol[0].value = protocol_Gameplay_ObjectDisabled;
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Int;
|
||||
this->protocol[2].type = Oyster::Network::NetAttributeType_Float;
|
||||
|
||||
object_ID = id;
|
||||
timer = time;
|
||||
this->objectID = objctID;
|
||||
this->seconds = seconds;
|
||||
}
|
||||
Protocol_ObjectDisable(Oyster::Network::CustomNetProtocol& p)
|
||||
{
|
||||
this->objectID = p[1].value.netInt;
|
||||
this->seconds = p[2].value.netFloat;
|
||||
}
|
||||
Oyster::Network::CustomNetProtocol GetProtocol() override
|
||||
{
|
||||
this->protocol[1].value = object_ID;
|
||||
this->protocol[2].value = timer;
|
||||
this->protocol[1].value = this->objectID;
|
||||
this->protocol[2].value = this->seconds;
|
||||
return protocol;
|
||||
}
|
||||
|
||||
|
@ -232,6 +361,7 @@ namespace GameLogic
|
|||
Oyster::Network::CustomNetProtocol protocol;
|
||||
};
|
||||
|
||||
//#define protocol_Gameplay_ObjectCreate 358
|
||||
struct Protocol_ObjectCreate :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
//ObjectType type; //ie player, box or whatever
|
||||
|
@ -304,6 +434,330 @@ namespace GameLogic
|
|||
private:
|
||||
Oyster::Network::CustomNetProtocol protocol;
|
||||
};
|
||||
|
||||
//#define protocol_Gameplay_ObjectCreatePlayer 359
|
||||
struct Protocol_ObjectCreatePlayer :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
//ObjectType type; //ie player, box or whatever
|
||||
int object_ID;
|
||||
int teamId;
|
||||
std::string name;
|
||||
std::string meshName;
|
||||
float position[3];
|
||||
float rotation[3];
|
||||
float scale[3];
|
||||
|
||||
Protocol_ObjectCreatePlayer()
|
||||
{
|
||||
this->protocol[0].value = protocol_Gameplay_ObjectCreatePlayer;
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
|
||||
//PLAYER_ID
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Int;
|
||||
//TEAM_ID
|
||||
this->protocol[2].type = Oyster::Network::NetAttributeType_Int;
|
||||
//PLAYER-NAME
|
||||
this->protocol[3].type = Oyster::Network::NetAttributeType_CharArray;
|
||||
//MESH-NAME
|
||||
this->protocol[4].type = Oyster::Network::NetAttributeType_CharArray;
|
||||
//POSITION
|
||||
this->protocol[5].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[6].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[7].type = Oyster::Network::NetAttributeType_Float;
|
||||
//ROTATION
|
||||
this->protocol[8].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[9].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[10].type = Oyster::Network::NetAttributeType_Float;
|
||||
//SCALE
|
||||
this->protocol[11].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[12].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[13].type = Oyster::Network::NetAttributeType_Float;
|
||||
}
|
||||
Protocol_ObjectCreatePlayer(Oyster::Network::CustomNetProtocol& p)
|
||||
{
|
||||
|
||||
}
|
||||
Protocol_ObjectCreatePlayer(float position[3], float rotation[3], float scale[3], int ObjectID, int teamID, std::string name, std::string meshName)
|
||||
{
|
||||
this->protocol[0].value = protocol_Gameplay_ObjectCreatePlayer;
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
|
||||
//PLAYER_ID
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Int;
|
||||
//TEAM_ID
|
||||
this->protocol[2].type = Oyster::Network::NetAttributeType_Int;
|
||||
//PLAYER-NAME
|
||||
this->protocol[3].type = Oyster::Network::NetAttributeType_CharArray;
|
||||
//MESH-NAME
|
||||
this->protocol[4].type = Oyster::Network::NetAttributeType_CharArray;
|
||||
//POSITION
|
||||
this->protocol[5].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[6].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[7].type = Oyster::Network::NetAttributeType_Float;
|
||||
//ROTATION
|
||||
this->protocol[8].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[9].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[10].type = Oyster::Network::NetAttributeType_Float;
|
||||
//SCALE
|
||||
this->protocol[11].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[12].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[13].type = Oyster::Network::NetAttributeType_Float;
|
||||
|
||||
this->object_ID = ObjectID;
|
||||
this->teamId = teamID;
|
||||
this->name = name;
|
||||
this->meshName = meshName;
|
||||
memcpy(&this->position[0], &position[0], sizeof(float)*3);
|
||||
memcpy(&this->rotation[0], &rotation[0], sizeof(float)*3);
|
||||
memcpy(&this->scale[0], &scale[0], sizeof(float)*3);
|
||||
}
|
||||
Oyster::Network::CustomNetProtocol GetProtocol() override
|
||||
{
|
||||
|
||||
this->protocol[1].value = this->object_ID;
|
||||
this->protocol[2].value = this->teamId;
|
||||
this->protocol.Set(3, this->name);
|
||||
this->protocol.Set(4, this->meshName);
|
||||
|
||||
//POSITION
|
||||
this->protocol[5].value = this->position[0];
|
||||
this->protocol[6].value = this->position[1];
|
||||
this->protocol[7].value = this->position[2];
|
||||
//ROTATION
|
||||
this->protocol[8].value = this->rotation[0];
|
||||
this->protocol[9].value = this->rotation[1];
|
||||
this->protocol[10].value = this->rotation[2];
|
||||
//SCALE
|
||||
this->protocol[11].value = this->scale[0];
|
||||
this->protocol[12].value = this->scale[1];
|
||||
this->protocol[13].value = this->scale[2];
|
||||
|
||||
return protocol;
|
||||
}
|
||||
|
||||
private:
|
||||
Oyster::Network::CustomNetProtocol protocol;
|
||||
};
|
||||
|
||||
//#define protocol_Gameplay_ObjectJoinTeam 360
|
||||
struct Protocol_ObjectJoinTeam :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
int objectID;
|
||||
int teamID;
|
||||
|
||||
Protocol_ObjectJoinTeam()
|
||||
{
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[0].value.netShort = protocol_Gameplay_ObjectJoinTeam;
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Int;
|
||||
this->protocol[2].type = Oyster::Network::NetAttributeType_Int;
|
||||
this->objectID = 0;
|
||||
this->teamID = 0;
|
||||
}
|
||||
Protocol_ObjectJoinTeam(int objID, int teamID)
|
||||
{
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[0].value.netShort = protocol_Gameplay_ObjectJoinTeam;
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Int;
|
||||
this->protocol[2].type = Oyster::Network::NetAttributeType_Int;
|
||||
this->objectID = objID;
|
||||
this->teamID = teamID;
|
||||
}
|
||||
Protocol_ObjectJoinTeam(Oyster::Network::CustomNetProtocol& p)
|
||||
{
|
||||
this->objectID = p[1].value.netInt;
|
||||
this->teamID = p[2].value.netInt;
|
||||
}
|
||||
Oyster::Network::CustomNetProtocol GetProtocol() override
|
||||
{
|
||||
this->protocol[1].value = this->objectID;
|
||||
this->protocol[2].value = this->teamID;
|
||||
return protocol;
|
||||
}
|
||||
|
||||
private:
|
||||
Oyster::Network::CustomNetProtocol protocol;
|
||||
};
|
||||
|
||||
//#define protocol_Gameplay_ObjectLeaveTeam 361
|
||||
struct Protocol_ObjectLeaveTeam :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
int objectID;
|
||||
Protocol_ObjectLeaveTeam()
|
||||
{
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[0].value.netShort = protocol_Gameplay_ObjectLeaveTeam;
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Int;
|
||||
this->objectID = 0;
|
||||
}
|
||||
Protocol_ObjectLeaveTeam(int objectID)
|
||||
{
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[0].value.netShort = protocol_Gameplay_ObjectLeaveTeam;
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Int;
|
||||
this->objectID = objectID;
|
||||
}
|
||||
Protocol_ObjectLeaveTeam(Oyster::Network::CustomNetProtocol& p)
|
||||
{
|
||||
this->objectID = p[1].value.netInt;
|
||||
}
|
||||
Oyster::Network::CustomNetProtocol GetProtocol() override
|
||||
{
|
||||
this->protocol[1].value = this->objectID;
|
||||
return protocol;
|
||||
}
|
||||
|
||||
private:
|
||||
Oyster::Network::CustomNetProtocol protocol;
|
||||
};
|
||||
|
||||
//#define protocol_Gameplay_ObjectWeaponCooldown 362
|
||||
struct Protocol_ObjectWeaponCooldown :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
float seconds;
|
||||
Protocol_ObjectWeaponCooldown()
|
||||
{
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[0].value.netShort = protocol_Gameplay_ObjectWeaponCooldown;
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->seconds = 0.0f;
|
||||
}
|
||||
Protocol_ObjectWeaponCooldown(float seconds)
|
||||
{
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[0].value.netShort = protocol_Gameplay_ObjectWeaponCooldown;
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->seconds = seconds;
|
||||
}
|
||||
Protocol_ObjectWeaponCooldown(Oyster::Network::CustomNetProtocol& p)
|
||||
{
|
||||
this->seconds = p[1].value.netFloat;
|
||||
}
|
||||
Oyster::Network::CustomNetProtocol GetProtocol() override
|
||||
{
|
||||
this->protocol[1].value = this->seconds;
|
||||
return protocol;
|
||||
}
|
||||
|
||||
private:
|
||||
Oyster::Network::CustomNetProtocol protocol;
|
||||
};
|
||||
|
||||
//#define protocol_Gameplay_ObjectWeaponEnergy 363
|
||||
struct Protocol_ObjectWeaponEnergy :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
float energy;
|
||||
Protocol_ObjectWeaponEnergy()
|
||||
{
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[0].value.netShort = protocol_Gameplay_ObjectWeaponEnergy;
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->energy = 0.0f;
|
||||
}
|
||||
Protocol_ObjectWeaponEnergy(float energy)
|
||||
{
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[0].value.netShort = protocol_Gameplay_ObjectWeaponEnergy;
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->energy = energy;
|
||||
}
|
||||
Protocol_ObjectWeaponEnergy(Oyster::Network::CustomNetProtocol& p)
|
||||
{
|
||||
this->energy = p[1].value.netFloat;
|
||||
}
|
||||
Oyster::Network::CustomNetProtocol GetProtocol() override
|
||||
{
|
||||
this->protocol[1].value = this->energy;
|
||||
return protocol;
|
||||
}
|
||||
|
||||
private:
|
||||
Oyster::Network::CustomNetProtocol protocol;
|
||||
};
|
||||
|
||||
//#define protocol_Gameplay_ObjectRespawn 364
|
||||
struct Protocol_ObjectRespawn :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
float position[3];
|
||||
|
||||
Protocol_ObjectRespawn()
|
||||
{
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[0].value.netShort = protocol_Gameplay_ObjectRespawn;
|
||||
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[2].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[3].type = Oyster::Network::NetAttributeType_Float;
|
||||
memset(&this->position[0], 0, sizeof(float) * 3);
|
||||
}
|
||||
Protocol_ObjectRespawn(float position[3])
|
||||
{
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[0].value.netShort = protocol_Gameplay_ObjectRespawn;
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[2].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->protocol[3].type = Oyster::Network::NetAttributeType_Float;
|
||||
|
||||
memcpy(&this->position[0], &position[0], sizeof(float) * 3);
|
||||
}
|
||||
Protocol_ObjectRespawn(Oyster::Network::CustomNetProtocol& p)
|
||||
{
|
||||
this->position[0] = p[1].value.netFloat;
|
||||
this->position[1] = p[2].value.netFloat;
|
||||
this->position[2] = p[3].value.netFloat;
|
||||
}
|
||||
Oyster::Network::CustomNetProtocol GetProtocol() override
|
||||
{
|
||||
this->protocol[1].value = this->position[0];
|
||||
this->protocol[2].value = this->position[1];
|
||||
this->protocol[3].value = this->position[2];
|
||||
return protocol;
|
||||
}
|
||||
|
||||
private:
|
||||
Oyster::Network::CustomNetProtocol protocol;
|
||||
};
|
||||
|
||||
//#define protocol_Gameplay_ObjectDie 365
|
||||
struct Protocol_ObjectDie :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
int objectID;
|
||||
float seconds;
|
||||
|
||||
Protocol_ObjectDie()
|
||||
{
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[0].value.netShort = protocol_Gameplay_ObjectDie;
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Int;
|
||||
this->protocol[2].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->objectID = 0;
|
||||
this->seconds = 0.0f;
|
||||
}
|
||||
Protocol_ObjectDie(int objectID, float seconds)
|
||||
{
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
this->protocol[0].value.netShort = protocol_Gameplay_ObjectDie;
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Int;
|
||||
this->protocol[2].type = Oyster::Network::NetAttributeType_Float;
|
||||
this->objectID = objectID;
|
||||
this->seconds = seconds;
|
||||
}
|
||||
Protocol_ObjectDie(Oyster::Network::CustomNetProtocol& p)
|
||||
{
|
||||
this->objectID = p[1].value.netInt;
|
||||
this->seconds = p[2].value.netFloat;
|
||||
}
|
||||
Oyster::Network::CustomNetProtocol GetProtocol() override
|
||||
{
|
||||
this->protocol[1].value = this->objectID;
|
||||
this->protocol[2].value = this->seconds;
|
||||
return protocol;
|
||||
}
|
||||
|
||||
private:
|
||||
Oyster::Network::CustomNetProtocol protocol;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // !GAMELOGIC_PLAYER_PROTOCOLS_H
|
|
@ -8,56 +8,67 @@
|
|||
|
||||
#include <CustomNetProtocol.h>
|
||||
#include "ProtocolIdentificationID.h"
|
||||
#include <bitset>
|
||||
|
||||
//protocol_Gameplay_PlayerMovement 300
|
||||
//protocol_Gameplay_PlayerMouseMovement 301
|
||||
//protocol_Gameplay_PlayerChangeWeapon 302
|
||||
|
||||
namespace GameLogic
|
||||
{
|
||||
struct Protocol_PlayerMovement :public Oyster::Network::CustomProtocolObject
|
||||
struct Protocol_PlayerMovementRight :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
bool bForward;
|
||||
bool bBackward;
|
||||
bool bLeft;
|
||||
bool bRight;
|
||||
|
||||
Protocol_PlayerMovement()
|
||||
Protocol_PlayerMovementRight()
|
||||
{
|
||||
this->protocol[0].value = protocol_Gameplay_PlayerMovement;
|
||||
this->protocol[0].value = protocol_Gameplay_PlayerMovementRight;
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Bool;
|
||||
this->protocol[2].type = Oyster::Network::NetAttributeType_Bool;
|
||||
this->protocol[3].type = Oyster::Network::NetAttributeType_Bool;
|
||||
this->protocol[4].type = Oyster::Network::NetAttributeType_Bool;
|
||||
}
|
||||
Protocol_PlayerMovement(Oyster::Network::CustomNetProtocol& p)
|
||||
{
|
||||
bForward = p[1].value.netBool;
|
||||
bBackward = p[2].value.netBool;
|
||||
bLeft = p[3].value.netBool;
|
||||
bRight = p[4].value.netBool;
|
||||
}
|
||||
const Protocol_PlayerMovement& operator=(Oyster::Network::CustomNetProtocol& val)
|
||||
{
|
||||
bForward = val[1].value.netBool;
|
||||
bBackward = val[2].value.netBool;
|
||||
bLeft = val[3].value.netBool;
|
||||
bRight = val[4].value.netBool;
|
||||
|
||||
return *this;
|
||||
}
|
||||
Oyster::Network::CustomNetProtocol GetProtocol() override
|
||||
{
|
||||
this->protocol[1].value = bForward;
|
||||
this->protocol[2].value = bBackward;
|
||||
this->protocol[3].value = bLeft;
|
||||
this->protocol[4].value = bRight;
|
||||
{ return protocol; }
|
||||
|
||||
return protocol;
|
||||
private:
|
||||
Oyster::Network::CustomNetProtocol protocol;
|
||||
};
|
||||
struct Protocol_PlayerMovementLeft :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
Protocol_PlayerMovementLeft()
|
||||
{
|
||||
this->protocol[0].value = protocol_Gameplay_PlayerMovementLeft;
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
}
|
||||
Oyster::Network::CustomNetProtocol GetProtocol() override { return protocol; }
|
||||
|
||||
private:
|
||||
Oyster::Network::CustomNetProtocol protocol;
|
||||
};
|
||||
struct Protocol_PlayerMovementForward :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
Protocol_PlayerMovementForward()
|
||||
{
|
||||
this->protocol[0].value = protocol_Gameplay_PlayerMovementForward;
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
}
|
||||
Oyster::Network::CustomNetProtocol GetProtocol() override { return protocol; }
|
||||
|
||||
private:
|
||||
Oyster::Network::CustomNetProtocol protocol;
|
||||
};
|
||||
struct Protocol_PlayerMovementBackward :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
Protocol_PlayerMovementBackward()
|
||||
{
|
||||
this->protocol[0].value = protocol_Gameplay_PlayerMovementBackward;
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
}
|
||||
Oyster::Network::CustomNetProtocol GetProtocol() override { return protocol; }
|
||||
|
||||
private:
|
||||
Oyster::Network::CustomNetProtocol protocol;
|
||||
};
|
||||
|
||||
struct Protocol_PlayerJump :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
Protocol_PlayerJump()
|
||||
{
|
||||
this->protocol[0].value = protocol_Gameplay_PlayerJump;
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
}
|
||||
Oyster::Network::CustomNetProtocol GetProtocol() override { return protocol; }
|
||||
|
||||
private:
|
||||
Oyster::Network::CustomNetProtocol protocol;
|
||||
|
@ -65,7 +76,6 @@ namespace GameLogic
|
|||
|
||||
struct Protocol_PlayerLook :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
|
||||
float lookDirX;
|
||||
float lookDirY;
|
||||
float lookDirZ;
|
||||
|
@ -180,35 +190,6 @@ namespace GameLogic
|
|||
Oyster::Network::CustomNetProtocol protocol;
|
||||
};
|
||||
|
||||
struct Protocol_PlayerJump :public Oyster::Network::CustomProtocolObject
|
||||
{
|
||||
bool hasJumped;
|
||||
|
||||
Protocol_PlayerJump()
|
||||
{
|
||||
this->protocol[0].value = protocol_Gameplay_PlayerJump;
|
||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||
|
||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Bool;
|
||||
}
|
||||
Protocol_PlayerJump(Oyster::Network::CustomNetProtocol& p)
|
||||
{
|
||||
hasJumped = p[1].value.netBool;
|
||||
}
|
||||
const Protocol_PlayerJump& operator=(Oyster::Network::CustomNetProtocol& val)
|
||||
{
|
||||
hasJumped = val[1].value.netBool;
|
||||
return *this;
|
||||
}
|
||||
Oyster::Network::CustomNetProtocol GetProtocol() override
|
||||
{
|
||||
this->protocol[1].value = hasJumped;
|
||||
return protocol;
|
||||
}
|
||||
|
||||
private:
|
||||
Oyster::Network::CustomNetProtocol protocol;
|
||||
};
|
||||
}
|
||||
|
||||
#endif // !GAMELOGIC_PLAYER_PROTOCOLS_H
|
||||
|
|
|
@ -41,17 +41,32 @@
|
|||
/********* GAMEPLAY PROTOCOLS ***************************************************************************************************/
|
||||
/***********[ 300 - 399 ]***********/
|
||||
#define protocol_GameplayMIN 300
|
||||
#define protocol_Gameplay_PlayerMovement 300
|
||||
#define protocol_Gameplay_PlayerLookDir 301
|
||||
#define protocol_Gameplay_PlayerChangeWeapon 302
|
||||
#define protocol_Gameplay_PlayerShot 303
|
||||
#define protocol_Gameplay_PlayerJump 304
|
||||
#define protocol_Gameplay_ObjectPickup 305
|
||||
#define protocol_Gameplay_ObjectDamage 306
|
||||
#define protocol_Gameplay_ObjectPosition 307
|
||||
#define protocol_Gameplay_ObjectEnabled 308
|
||||
#define protocol_Gameplay_ObjectDisabled 309
|
||||
#define protocol_Gameplay_ObjectCreate 310
|
||||
#define protocol_Gameplay_PlayerMovementRight 300
|
||||
#define protocol_Gameplay_PlayerMovementLeft 301
|
||||
#define protocol_Gameplay_PlayerMovementForward 302
|
||||
#define protocol_Gameplay_PlayerMovementBackward 303
|
||||
#define protocol_Gameplay_PlayerLookDir 304
|
||||
#define protocol_Gameplay_PlayerChangeWeapon 305
|
||||
#define protocol_Gameplay_PlayerShot 306
|
||||
#define protocol_Gameplay_PlayerJump 307
|
||||
|
||||
#define protocol_Gameplay_ObjectPickup 350
|
||||
#define protocol_Gameplay_ObjectDamage 351
|
||||
#define protocol_Gameplay_ObjectHealthStatus 352
|
||||
#define protocol_Gameplay_ObjectPosition 353
|
||||
#define protocol_Gameplay_ObjectScale 354
|
||||
#define protocol_Gameplay_ObjectRotation 355
|
||||
#define protocol_Gameplay_ObjectEnabled 356
|
||||
#define protocol_Gameplay_ObjectDisabled 357
|
||||
#define protocol_Gameplay_ObjectCreate 358
|
||||
#define protocol_Gameplay_ObjectCreatePlayer 359
|
||||
#define protocol_Gameplay_ObjectJoinTeam 360
|
||||
#define protocol_Gameplay_ObjectLeaveTeam 361
|
||||
|
||||
#define protocol_Gameplay_ObjectWeaponCooldown 362
|
||||
#define protocol_Gameplay_ObjectWeaponEnergy 363
|
||||
#define protocol_Gameplay_ObjectRespawn 364
|
||||
#define protocol_Gameplay_ObjectDie 365
|
||||
#define protocol_GameplayMAX 399
|
||||
|
||||
|
||||
|
|
|
@ -74,11 +74,14 @@ namespace DanBias
|
|||
private:
|
||||
void ParseProtocol ( Oyster::Network::CustomNetProtocol& p, DanBias::GameClient* c );
|
||||
|
||||
void Gameplay_PlayerMovement ( GameLogic::Protocol_PlayerMovement& p, DanBias::GameClient* c );
|
||||
void Gameplay_PlayerMovementRight ( DanBias::GameClient* c );
|
||||
void Gameplay_PlayerMovementLeft ( DanBias::GameClient* c );
|
||||
void Gameplay_PlayerMovementBack ( DanBias::GameClient* c );
|
||||
void Gameplay_PlayerMovementForth ( DanBias::GameClient* c );
|
||||
void Gameplay_PlayerJump ( DanBias::GameClient* c );
|
||||
void Gameplay_PlayerLookDir ( GameLogic::Protocol_PlayerLook& p, DanBias::GameClient* c );
|
||||
void Gameplay_PlayerChangeWeapon ( GameLogic::Protocol_PlayerChangeWeapon& p, DanBias::GameClient* c );
|
||||
void Gameplay_PlayerShot ( GameLogic::Protocol_PlayerShot& p, DanBias::GameClient* c );
|
||||
void Gameplay_PlayerJump ( GameLogic::Protocol_PlayerJump& p, DanBias::GameClient* c );
|
||||
void Gameplay_ObjectPickup ( GameLogic::Protocol_ObjectPickup& p, DanBias::GameClient* c );
|
||||
void Gameplay_ObjectDamage ( GameLogic::Protocol_ObjectDamage& p, DanBias::GameClient* c );
|
||||
void Gameplay_ObjectPosition ( GameLogic::Protocol_ObjectPosition& p, DanBias::GameClient* c );
|
||||
|
|
|
@ -85,7 +85,7 @@ namespace DanBias
|
|||
|
||||
void GameSession::ObjectMove(GameLogic::IObjectData* movedObject)
|
||||
{
|
||||
float dt = GameSession::gameSession->networkTimer.getElapsedSeconds();
|
||||
//float dt = (float)GameSession::gameSession->networkTimer.getElapsedSeconds();
|
||||
//Duh... This was causing alot of problems, it's in the wrong place...
|
||||
//Need to figure out where to put this frame locker.
|
||||
//We only need to send network packages when necessary, ie not 120 times per frame.
|
||||
|
@ -93,18 +93,10 @@ namespace DanBias
|
|||
//graphics update (60 fps) on the client side. To send more than this would be lost
|
||||
//bandwidth.
|
||||
//if( dt >= GameSession::gameSession->networkFrameTime )
|
||||
{
|
||||
//{
|
||||
GameSession::gameSession->networkTimer.reset();
|
||||
|
||||
GameLogic::IObjectData* obj = movedObject;
|
||||
if(movedObject->GetID() == testID) //TODO: TEST
|
||||
{
|
||||
float sec = (float)testTimer.getElapsedSeconds();
|
||||
sec = 0;
|
||||
}
|
||||
|
||||
int id = obj->GetID();
|
||||
Protocol_ObjectPosition p(obj->GetOrientation(), id);
|
||||
int id = movedObject->GetID();
|
||||
Protocol_ObjectPosition p(movedObject->GetPosition(), id);
|
||||
//if(id != 1)
|
||||
GameSession::gameSession->Send(p.GetProtocol());
|
||||
|
||||
|
@ -150,7 +142,7 @@ namespace DanBias
|
|||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
//}
|
||||
|
||||
}
|
||||
void GameSession::ObjectDisabled( GameLogic::IObjectData* movedObject, float seconds )
|
||||
|
@ -168,7 +160,15 @@ namespace DanBias
|
|||
|
||||
switch (p[0].value.netShort)
|
||||
{
|
||||
case protocol_Gameplay_PlayerMovement: this->Gameplay_PlayerMovement ( Protocol_PlayerMovement (p), c );
|
||||
case protocol_Gameplay_PlayerMovementBackward: this->Gameplay_PlayerMovementBack ( c );
|
||||
break;
|
||||
case protocol_Gameplay_PlayerMovementForward: this->Gameplay_PlayerMovementForth ( c );
|
||||
break;
|
||||
case protocol_Gameplay_PlayerMovementLeft: this->Gameplay_PlayerMovementLeft ( c );
|
||||
break;
|
||||
case protocol_Gameplay_PlayerMovementRight: this->Gameplay_PlayerMovementRight ( c );
|
||||
break;
|
||||
case protocol_Gameplay_PlayerJump: this->Gameplay_PlayerJump ( c );
|
||||
break;
|
||||
case protocol_Gameplay_PlayerLookDir: this->Gameplay_PlayerLookDir ( Protocol_PlayerLook (p), c );
|
||||
break;
|
||||
|
@ -176,8 +176,7 @@ namespace DanBias
|
|||
break;
|
||||
case protocol_Gameplay_PlayerShot: this->Gameplay_PlayerShot ( Protocol_PlayerShot (p), c );
|
||||
break;
|
||||
case protocol_Gameplay_PlayerJump: this->Gameplay_PlayerJump ( Protocol_PlayerJump (p), c );
|
||||
break;
|
||||
|
||||
case protocol_Gameplay_ObjectPickup: this->Gameplay_ObjectPickup ( Protocol_ObjectPickup (p), c );
|
||||
break;
|
||||
case protocol_Gameplay_ObjectDamage: this->Gameplay_ObjectDamage ( Protocol_ObjectDamage (p), c );
|
||||
|
@ -190,6 +189,7 @@ namespace DanBias
|
|||
break;
|
||||
case protocol_Gameplay_ObjectCreate: this->Gameplay_ObjectCreate ( Protocol_ObjectCreate (p), c );
|
||||
break;
|
||||
|
||||
case protocol_General_Status: this->General_Status ( Protocol_General_Status (p), c );
|
||||
break;
|
||||
case protocol_General_Text: this->General_Text ( Protocol_General_Text (p), c );
|
||||
|
@ -197,12 +197,25 @@ namespace DanBias
|
|||
}
|
||||
}
|
||||
|
||||
void GameSession::Gameplay_PlayerMovement ( Protocol_PlayerMovement& p, DanBias::GameClient* c )
|
||||
void GameSession::Gameplay_PlayerMovementBack ( DanBias::GameClient* c )
|
||||
{
|
||||
if(p.bForward) c->GetPlayer()->Move(GameLogic::PLAYER_MOVEMENT_FORWARD);
|
||||
if(p.bBackward) c->GetPlayer()->Move(GameLogic::PLAYER_MOVEMENT_BACKWARD);
|
||||
if(p.bLeft) c->GetPlayer()->Move(GameLogic::PLAYER_MOVEMENT_LEFT);
|
||||
if(p.bRight) c->GetPlayer()->Move(GameLogic::PLAYER_MOVEMENT_RIGHT);
|
||||
c->GetPlayer()->Move(GameLogic::PLAYER_MOVEMENT_BACKWARD);
|
||||
}
|
||||
void GameSession::Gameplay_PlayerMovementForth ( DanBias::GameClient* c )
|
||||
{
|
||||
c->GetPlayer()->Move(GameLogic::PLAYER_MOVEMENT_FORWARD);
|
||||
}
|
||||
void GameSession::Gameplay_PlayerMovementLeft ( DanBias::GameClient* c )
|
||||
{
|
||||
c->GetPlayer()->Move(GameLogic::PLAYER_MOVEMENT_LEFT);
|
||||
}
|
||||
void GameSession::Gameplay_PlayerMovementRight ( DanBias::GameClient* c )
|
||||
{
|
||||
c->GetPlayer()->Move(GameLogic::PLAYER_MOVEMENT_RIGHT);
|
||||
}
|
||||
void GameSession::Gameplay_PlayerJump ( DanBias::GameClient* c )
|
||||
{
|
||||
c->GetPlayer()->Move(GameLogic::PLAYER_MOVEMENT_JUMP);
|
||||
}
|
||||
void GameSession::Gameplay_PlayerLookDir ( Protocol_PlayerLook& p, DanBias::GameClient* c )
|
||||
{
|
||||
|
@ -224,10 +237,8 @@ namespace DanBias
|
|||
|
||||
if(p.utilityPressed) c->GetPlayer()->UseWeapon(GameLogic::WEAPON_USE_UTILLITY_PRESS);
|
||||
}
|
||||
void GameSession::Gameplay_PlayerJump ( Protocol_PlayerJump& p, DanBias::GameClient* c )
|
||||
{
|
||||
if(p.hasJumped) c->GetPlayer()->Move(GameLogic::PLAYER_MOVEMENT_JUMP);
|
||||
}
|
||||
|
||||
|
||||
void GameSession::Gameplay_ObjectPickup ( Protocol_ObjectPickup& p, DanBias::GameClient* c )
|
||||
{
|
||||
|
||||
|
|
|
@ -156,6 +156,7 @@ namespace DanBias
|
|||
{
|
||||
if((this->clients[k] && readyList[i]) && readyList[i]->GetClient()->GetID() != this->clients[k]->GetClient()->GetID())
|
||||
{
|
||||
//Protocol_ObjectCreatePlayer
|
||||
Protocol_ObjectCreate p(this->clients[k]->GetPlayer()->GetOrientation(), this->clients[k]->GetPlayer()->GetID(), "char_white.dan"); //The model name will be custom later..
|
||||
readyList[i]->GetClient()->Send(p);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue