Updated dmg protocol
This commit is contained in:
parent
f8b8439874
commit
c460bae943
|
@ -553,8 +553,10 @@ const GameClientState::NetEvent & GameState::DataRecieved( const GameClientState
|
||||||
case protocol_Gameplay_ObjectWeaponEnergy: break; /** @todo TODO: implement */
|
case protocol_Gameplay_ObjectWeaponEnergy: break; /** @todo TODO: implement */
|
||||||
case protocol_Gameplay_ObjectRespawn:
|
case protocol_Gameplay_ObjectRespawn:
|
||||||
{
|
{
|
||||||
// set player pos
|
|
||||||
Protocol_ObjectRespawn decoded(data);
|
Protocol_ObjectRespawn decoded(data);
|
||||||
|
|
||||||
|
if( this->privData->myId == decoded.objectID )
|
||||||
|
{
|
||||||
// move player. Remember to change camera
|
// move player. Remember to change camera
|
||||||
this->privData->camera.SetPosition( decoded.position );
|
this->privData->camera.SetPosition( decoded.position );
|
||||||
this->privData->player.setPos( decoded.position );
|
this->privData->player.setPos( decoded.position );
|
||||||
|
@ -563,7 +565,21 @@ const GameClientState::NetEvent & GameState::DataRecieved( const GameClientState
|
||||||
this->privData->player.setRBPos ( decoded.position );
|
this->privData->player.setRBPos ( decoded.position );
|
||||||
this->privData->player.updateRBWorld();
|
this->privData->player.updateRBWorld();
|
||||||
// !RB DEBUG
|
// !RB DEBUG
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
C_DynamicObj *object = (*this->privData->dynamicObjects)[decoded.objectID];
|
||||||
|
|
||||||
|
if( object )
|
||||||
|
{
|
||||||
|
object->setPos( decoded.position );
|
||||||
|
object->updateWorld();
|
||||||
|
// RB DEBUG
|
||||||
|
object->setRBPos ( decoded.position );
|
||||||
|
object->updateRBWorld();
|
||||||
|
// !RB DEBUG
|
||||||
|
}
|
||||||
|
}
|
||||||
this->currGameUI = this->gameUI;
|
this->currGameUI = this->gameUI;
|
||||||
}
|
}
|
||||||
return GameClientState::event_processed;
|
return GameClientState::event_processed;
|
||||||
|
|
|
@ -812,39 +812,48 @@ namespace GameLogic
|
||||||
//#define protocol_Gameplay_ObjectRespawn 364
|
//#define protocol_Gameplay_ObjectRespawn 364
|
||||||
struct Protocol_ObjectRespawn :public Oyster::Network::CustomProtocolObject
|
struct Protocol_ObjectRespawn :public Oyster::Network::CustomProtocolObject
|
||||||
{
|
{
|
||||||
|
int objectID;
|
||||||
float position[3];
|
float position[3];
|
||||||
|
|
||||||
Protocol_ObjectRespawn()
|
Protocol_ObjectRespawn()
|
||||||
{
|
{
|
||||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||||
this->protocol[0].value.netShort = protocol_Gameplay_ObjectRespawn;
|
this->protocol[0].value.netShort = protocol_Gameplay_ObjectRespawn;
|
||||||
|
// ID
|
||||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Float;
|
this->protocol[1].type = Oyster::Network::NetAttributeType_Int;
|
||||||
|
// POSITION
|
||||||
this->protocol[2].type = Oyster::Network::NetAttributeType_Float;
|
this->protocol[2].type = Oyster::Network::NetAttributeType_Float;
|
||||||
this->protocol[3].type = Oyster::Network::NetAttributeType_Float;
|
this->protocol[3].type = Oyster::Network::NetAttributeType_Float;
|
||||||
|
this->protocol[4].type = Oyster::Network::NetAttributeType_Float;
|
||||||
|
this->objectID = 0;
|
||||||
memset(&this->position[0], 0, sizeof(float) * 3);
|
memset(&this->position[0], 0, sizeof(float) * 3);
|
||||||
}
|
}
|
||||||
Protocol_ObjectRespawn(float position[3])
|
Protocol_ObjectRespawn(int id, float position[3])
|
||||||
{
|
{
|
||||||
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
|
||||||
this->protocol[0].value.netShort = protocol_Gameplay_ObjectRespawn;
|
this->protocol[0].value.netShort = protocol_Gameplay_ObjectRespawn;
|
||||||
this->protocol[1].type = Oyster::Network::NetAttributeType_Float;
|
// ID
|
||||||
|
this->protocol[1].type = Oyster::Network::NetAttributeType_Int;
|
||||||
|
// POSITION
|
||||||
this->protocol[2].type = Oyster::Network::NetAttributeType_Float;
|
this->protocol[2].type = Oyster::Network::NetAttributeType_Float;
|
||||||
this->protocol[3].type = Oyster::Network::NetAttributeType_Float;
|
this->protocol[3].type = Oyster::Network::NetAttributeType_Float;
|
||||||
|
this->protocol[4].type = Oyster::Network::NetAttributeType_Float;
|
||||||
|
this->objectID = id;
|
||||||
memcpy(&this->position[0], &position[0], sizeof(float) * 3);
|
memcpy(&this->position[0], &position[0], sizeof(float) * 3);
|
||||||
}
|
}
|
||||||
Protocol_ObjectRespawn(Oyster::Network::CustomNetProtocol& p)
|
Protocol_ObjectRespawn(Oyster::Network::CustomNetProtocol& p)
|
||||||
{
|
{
|
||||||
this->position[0] = p[1].value.netFloat;
|
this->objectID = p[1].value.netInt;
|
||||||
this->position[1] = p[2].value.netFloat;
|
this->position[0] = p[2].value.netFloat;
|
||||||
this->position[2] = p[3].value.netFloat;
|
this->position[1] = p[3].value.netFloat;
|
||||||
|
this->position[2] = p[4].value.netFloat;
|
||||||
}
|
}
|
||||||
Oyster::Network::CustomNetProtocol GetProtocol() override
|
Oyster::Network::CustomNetProtocol GetProtocol() override
|
||||||
{
|
{
|
||||||
this->protocol[1].value = this->position[0];
|
this->protocol[1].value = this->objectID;
|
||||||
this->protocol[2].value = this->position[1];
|
this->protocol[2].value = this->position[0];
|
||||||
this->protocol[3].value = this->position[2];
|
this->protocol[3].value = this->position[1];
|
||||||
|
this->protocol[4].value = this->position[2];
|
||||||
return protocol;
|
return protocol;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue