Danbias/Code/Game/GameProtocols/PlayerProtocols.h

212 lines
6.5 KiB
C
Raw Normal View History

2013-12-12 09:33:59 +01:00
//////////////////////////////////////////////////////////
// Created 2013 //
// Dennis Andersen, Linda Andersson //
//////////////////////////////////////////////////////////
2013-12-09 11:57:34 +01:00
#ifndef GAMELOGIC_PLAYER_PROTOCOLS_H
#define GAMELOGIC_PLAYER_PROTOCOLS_H
2013-12-12 09:33:59 +01:00
#include <CustomNetProtocol.h>
2013-12-09 11:57:34 +01:00
#include "ProtocolIdentificationID.h"
namespace GameLogic
{
struct Protocol_PlayerMovementRight :public Oyster::Network::CustomProtocolObject
2013-12-09 11:57:34 +01:00
{
Protocol_PlayerMovementRight()
2013-12-09 11:57:34 +01:00
{
this->protocol[0].value = protocol_Gameplay_PlayerMovementRight;
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
}
Oyster::Network::CustomNetProtocol GetProtocol() override
{ 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;
2013-12-09 11:57:34 +01:00
}
Oyster::Network::CustomNetProtocol GetProtocol() override { return protocol; }
2013-12-20 09:42:02 +01:00
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;
2013-12-20 09:42:02 +01:00
}
Oyster::Network::CustomNetProtocol GetProtocol() override { return protocol; }
private:
Oyster::Network::CustomNetProtocol protocol;
};
struct Protocol_PlayerMovementBackward :public Oyster::Network::CustomProtocolObject
{
Protocol_PlayerMovementBackward()
2013-12-09 11:57:34 +01:00
{
this->protocol[0].value = protocol_Gameplay_PlayerMovementBackward;
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
}
Oyster::Network::CustomNetProtocol GetProtocol() override { return protocol; }
2013-12-09 11:57:34 +01:00
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;
2013-12-09 11:57:34 +01:00
}
Oyster::Network::CustomNetProtocol GetProtocol() override { return protocol; }
2013-12-09 11:57:34 +01:00
private:
2013-12-12 10:36:55 +01:00
Oyster::Network::CustomNetProtocol protocol;
2013-12-09 11:57:34 +01:00
};
struct Protocol_PlayerLook :public Oyster::Network::CustomProtocolObject
2013-12-18 12:18:01 +01:00
{
// can be swapped to a quaternion later
float lookDir[3];
float right[3];
2013-12-18 12:18:01 +01:00
Protocol_PlayerLook()
2013-12-18 12:18:01 +01:00
{
this->protocol[0].value = protocol_Gameplay_PlayerLookDir;
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
// LookDir
2013-12-18 12:18:01 +01:00
this->protocol[1].type = Oyster::Network::NetAttributeType_Float;
this->protocol[2].type = Oyster::Network::NetAttributeType_Float;
this->protocol[3].type = Oyster::Network::NetAttributeType_Float;
// Right
this->protocol[4].type = Oyster::Network::NetAttributeType_Float;
this->protocol[5].type = Oyster::Network::NetAttributeType_Float;
this->protocol[6].type = Oyster::Network::NetAttributeType_Float;
memset(&this->lookDir[0], 0, sizeof(float) * 3);
memset(&this->right[0], 0, sizeof(float) * 3);
}
Protocol_PlayerLook(Oyster::Network::CustomNetProtocol& p)
{
this->lookDir[0] = p[1].value.netFloat;
this->lookDir[1] = p[2].value.netFloat;
this->lookDir[2] = p[3].value.netFloat;
this->right[0] = p[4].value.netFloat;
this->right[1] = p[5].value.netFloat;
this->right[2] = p[6].value.netFloat;
2013-12-18 12:18:01 +01:00
}
Protocol_PlayerLook(float l[3], float r[3])
2013-12-20 09:42:02 +01:00
{
this->protocol[0].value = protocol_Gameplay_PlayerLookDir;
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
2013-12-20 09:42:02 +01:00
this->protocol[1].type = Oyster::Network::NetAttributeType_Float;
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[5].type = Oyster::Network::NetAttributeType_Float;
this->protocol[6].type = Oyster::Network::NetAttributeType_Float;
memcpy(&this->lookDir[0], &l[0], sizeof(float) * 3);
memcpy(&this->right[0], &r[0], sizeof(float) * 3);
2013-12-20 09:42:02 +01:00
}
2014-01-31 22:52:52 +01:00
Oyster::Network::CustomNetProtocol GetProtocol() override
2013-12-18 12:18:01 +01:00
{
this->protocol[1].value = this->lookDir[0];
this->protocol[2].value = this->lookDir[1];
this->protocol[3].value = this->lookDir[2];
this->protocol[4].value = this->right[0];
this->protocol[5].value = this->right[1];
this->protocol[6].value = this->right[2];
2013-12-18 12:18:01 +01:00
2014-01-31 22:52:52 +01:00
return protocol;
2013-12-18 12:18:01 +01:00
}
private:
Oyster::Network::CustomNetProtocol protocol;
};
struct Protocol_PlayerChangeWeapon :public Oyster::Network::CustomProtocolObject
{
2013-12-17 10:07:46 +01:00
int ID;
Protocol_PlayerChangeWeapon()
{
this->protocol[0].value = protocol_Gameplay_PlayerChangeWeapon;
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
}
Protocol_PlayerChangeWeapon(Oyster::Network::CustomNetProtocol& p)
{
}
const Protocol_PlayerChangeWeapon& operator=(Oyster::Network::CustomNetProtocol& val)
{
return *this;
}
2014-01-31 22:52:52 +01:00
Oyster::Network::CustomNetProtocol GetProtocol() override
{
2014-01-31 22:52:52 +01:00
return protocol;
}
private:
Oyster::Network::CustomNetProtocol protocol;
};
2014-01-27 13:56:31 +01:00
struct Protocol_PlayerShot :public Oyster::Network::CustomProtocolObject
{
bool primaryPressed;
bool secondaryPressed;
bool utilityPressed;
2014-01-27 13:56:31 +01:00
Protocol_PlayerShot()
{
this->protocol[0].value = protocol_Gameplay_PlayerShot;
this->protocol[0].type = Oyster::Network::NetAttributeType_Short;
2014-01-27 13:56:31 +01:00
this->protocol[1].type = Oyster::Network::NetAttributeType_Bool;
this->protocol[2].type = Oyster::Network::NetAttributeType_Bool;
this->protocol[3].type = Oyster::Network::NetAttributeType_Bool;
}
Protocol_PlayerShot(Oyster::Network::CustomNetProtocol& p)
{
primaryPressed = p[1].value.netBool;
secondaryPressed = p[2].value.netBool;
utilityPressed = p[3].value.netBool;
2014-01-27 13:56:31 +01:00
}
const Protocol_PlayerShot& operator=(Oyster::Network::CustomNetProtocol& val)
{
primaryPressed = val[1].value.netBool;
secondaryPressed = val[2].value.netBool;
utilityPressed = val[3].value.netBool;
2014-01-27 13:56:31 +01:00
return *this;
}
2014-01-31 22:52:52 +01:00
Oyster::Network::CustomNetProtocol GetProtocol() override
2014-01-27 13:56:31 +01:00
{
this->protocol[1].value = primaryPressed;
this->protocol[2].value = secondaryPressed;
this->protocol[3].value = utilityPressed;
2014-01-31 22:52:52 +01:00
return protocol;
2014-01-27 13:56:31 +01:00
}
private:
Oyster::Network::CustomNetProtocol protocol;
};
2013-12-09 11:57:34 +01:00
}
#endif // !GAMELOGIC_PLAYER_PROTOCOLS_H