////////////////////////////////////////////////////////// // Created 2013 // // Dennis Andersen, Linda Andersson // ////////////////////////////////////////////////////////// #ifndef GAMELOGIC_OBJECT_PROTOCOLS_H #define GAMELOGIC_OBJECT_PROTOCOLS_H #include #include "ProtocolIdentificationID.h" namespace GameLogic { //#define protocol_Gameplay_ObjectPickup 350 struct Protocol_ObjectPickup :public Oyster::Network::CustomProtocolObject { short object_ID; short pickup_ID; Protocol_ObjectPickup() { this->protocol[0].value = protocol_Gameplay_ObjectPickup; this->protocol[0].type = Oyster::Network::NetAttributeType_Short; this->protocol[1].type = Oyster::Network::NetAttributeType_Short; this->protocol[2].type = Oyster::Network::NetAttributeType_Short; object_ID = -1; pickup_ID = -1; } Protocol_ObjectPickup(Oyster::Network::CustomNetProtocol& p) { object_ID = p[1].value.netShort; pickup_ID = p[2].value.netShort; } Protocol_ObjectPickup(int objectID, short pickupID) { 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_Short; object_ID = objectID; pickup_ID = pickupID; } Oyster::Network::CustomNetProtocol GetProtocol() override { this->protocol[1].value = object_ID; this->protocol[2].value = pickup_ID; return protocol; } private: Oyster::Network::CustomNetProtocol protocol; }; //#define protocol_Gameplay_ObjectDamage 351 struct Protocol_ObjectDamage :public Oyster::Network::CustomProtocolObject { int object_ID; float healthLost; //Precentage% Protocol_ObjectDamage() { this->protocol[0].value = protocol_Gameplay_ObjectDamage; 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 = -1; healthLost = 0.0f; } Protocol_ObjectDamage(Oyster::Network::CustomNetProtocol& p) { this->object_ID = p[1].value.netInt; this->healthLost = p[2].value.netFloat; } Protocol_ObjectDamage(int id, float hp) { this->protocol[0].value = protocol_Gameplay_ObjectDamage; 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; healthLost = hp; } Oyster::Network::CustomNetProtocol GetProtocol() override { this->protocol[1].value = object_ID; this->protocol[2].value = healthLost; return protocol; } private: 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 { 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; 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 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_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_ObjectScale 354 struct Protocol_ObjectScale :public Oyster::Network::CustomProtocolObject { short object_ID; float scale[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(&scale[0], 0, sizeof(float) * 3); } Protocol_ObjectScale(Oyster::Network::CustomNetProtocol& p) { object_ID = p[1].value.netShort; scale[0] = p[2].value.netFloat; scale[1] = p[3].value.netFloat; scale[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(&scale[0], &v[0], sizeof(float) * 3); } Oyster::Network::CustomNetProtocol GetProtocol() override { this->protocol[1].value = object_ID; this->protocol[2].value = scale[0]; this->protocol[3].value = scale[1]; this->protocol[4].value = scale[2]; return protocol; } private: Oyster::Network::CustomNetProtocol protocol; }; //#define protocol_Gameplay_ObjectRotation 355 struct Protocol_ObjectRotation :public Oyster::Network::CustomProtocolObject { short object_ID; float rotationQ[4]; 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; this->protocol[5].type = Oyster::Network::NetAttributeType_Float; object_ID = 0; memset(&rotationQ[0], 0, sizeof(float) * 4); } Protocol_ObjectRotation(Oyster::Network::CustomNetProtocol& p) { object_ID = p[1].value.netShort; rotationQ[0] = p[2].value.netFloat; rotationQ[1] = p[3].value.netFloat; rotationQ[2] = p[4].value.netFloat; rotationQ[3] = p[5].value.netFloat; } Protocol_ObjectRotation(float v[4], 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; this->protocol[5].type = Oyster::Network::NetAttributeType_Float; object_ID = id; memcpy(&rotationQ[0], &v[0], sizeof(float) * 4); } Oyster::Network::CustomNetProtocol GetProtocol() override { this->protocol[1].value = object_ID; this->protocol[2].value = rotationQ[0]; this->protocol[3].value = rotationQ[1]; this->protocol[4].value = rotationQ[2]; this->protocol[5].value = rotationQ[3]; return protocol; } private: Oyster::Network::CustomNetProtocol protocol; }; //#define protocol_Gameplay_ObjectEnabled 356 struct Protocol_ObjectPositionRotation :public Oyster::Network::CustomProtocolObject { short object_ID; float position[3]; float rotationQ[4]; Protocol_ObjectPositionRotation() { this->protocol[0].value = protocol_Gameplay_ObjectPositionRotation; this->protocol[0].type = Oyster::Network::NetAttributeType_Short; this->protocol[1].type = Oyster::Network::NetAttributeType_Short; //POSITION this->protocol[2].type = Oyster::Network::NetAttributeType_Float; this->protocol[3].type = Oyster::Network::NetAttributeType_Float; this->protocol[4].type = Oyster::Network::NetAttributeType_Float; //ROTATION this->protocol[5].type = Oyster::Network::NetAttributeType_Float; this->protocol[6].type = Oyster::Network::NetAttributeType_Float; this->protocol[7].type = Oyster::Network::NetAttributeType_Float; this->protocol[8].type = Oyster::Network::NetAttributeType_Float; this->object_ID = 0; memset(&this->position[0], 0, sizeof(float) * 3); memset(&this->rotationQ[0], 0, sizeof(float) * 4); } Protocol_ObjectPositionRotation(Oyster::Network::CustomNetProtocol& p) { this->object_ID = p[1].value.netShort; //POSITION this->position[0] = p[2].value.netFloat; this->position[1] = p[3].value.netFloat; this->position[2] = p[4].value.netFloat; //ROTATION this->rotationQ[0] = p[5].value.netFloat; this->rotationQ[1] = p[6].value.netFloat; this->rotationQ[2] = p[7].value.netFloat; this->rotationQ[3] = p[8].value.netFloat; } Protocol_ObjectPositionRotation(float p[3], float r[4], int id) { this->protocol[0].value = protocol_Gameplay_ObjectPositionRotation; this->protocol[0].type = Oyster::Network::NetAttributeType_Short; this->protocol[1].type = Oyster::Network::NetAttributeType_Short; //POSITION this->protocol[2].type = Oyster::Network::NetAttributeType_Float; this->protocol[3].type = Oyster::Network::NetAttributeType_Float; this->protocol[4].type = Oyster::Network::NetAttributeType_Float; //ROTATION this->protocol[5].type = Oyster::Network::NetAttributeType_Float; this->protocol[6].type = Oyster::Network::NetAttributeType_Float; this->protocol[7].type = Oyster::Network::NetAttributeType_Float; this->protocol[8].type = Oyster::Network::NetAttributeType_Float; object_ID = id; memcpy(&this->position[0], &p[0], sizeof(float) * 3); memcpy(&this->rotationQ[0], &r[0], sizeof(float) * 4); } Oyster::Network::CustomNetProtocol GetProtocol() override { this->protocol[1].value = this->object_ID; this->protocol[2].value = this->position[0]; this->protocol[3].value = this->position[1]; this->protocol[4].value = this->position[2]; this->protocol[5].value = this->rotationQ[0]; this->protocol[6].value = this->rotationQ[1]; this->protocol[7].value = this->rotationQ[2]; this->protocol[8].value = this->rotationQ[3]; return protocol; } private: Oyster::Network::CustomNetProtocol protocol; }; //#define protocol_Gameplay_ObjectEnabled 357 struct Protocol_ObjectEnable :public Oyster::Network::CustomProtocolObject { 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; this->objectID = -1; } 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; this->objectID = objectID; } Protocol_ObjectEnable(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_ObjectDisabled 358 struct Protocol_ObjectDisable :public Oyster::Network::CustomProtocolObject { 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(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; 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 = this->objectID; this->protocol[2].value = this->seconds; return protocol; } private: Oyster::Network::CustomNetProtocol protocol; }; //#define protocol_Gameplay_ObjectCreate 359 struct Protocol_ObjectCreate :public Oyster::Network::CustomProtocolObject { //ObjectType type; //ie player, box or whatever int object_ID; std::string name; float position[3]; float rotationQ[4]; float scale[3]; Protocol_ObjectCreate() { this->protocol[0].value = protocol_Gameplay_ObjectCreate; this->protocol[0].type = Oyster::Network::NetAttributeType_Short; //NAME this->protocol[1].type = Oyster::Network::NetAttributeType_Int; this->protocol[2].type = Oyster::Network::NetAttributeType_CharArray; //POSITION this->protocol[3].type = Oyster::Network::NetAttributeType_Float; this->protocol[4].type = Oyster::Network::NetAttributeType_Float; this->protocol[5].type = Oyster::Network::NetAttributeType_Float; //ROTATION this->protocol[6].type = Oyster::Network::NetAttributeType_Float; this->protocol[7].type = Oyster::Network::NetAttributeType_Float; this->protocol[8].type = Oyster::Network::NetAttributeType_Float; this->protocol[9].type = Oyster::Network::NetAttributeType_Float; //SCALE this->protocol[10].type = Oyster::Network::NetAttributeType_Float; this->protocol[11].type = Oyster::Network::NetAttributeType_Float; this->protocol[12].type = Oyster::Network::NetAttributeType_Float; this->object_ID = 0; memset(this->position, 0, sizeof(float) * 3); memset(this->rotationQ, 0, sizeof(float) * 4); } Protocol_ObjectCreate( Oyster::Network::CustomNetProtocol& p ) { this->object_ID = p[1].value.netInt; this->name.assign(p[2].value.netCharPtr); this->position[0] = p[3].value.netFloat; this->position[1] = p[4].value.netFloat; this->position[2] = p[5].value.netFloat; this->rotationQ[0] = p[6].value.netFloat; this->rotationQ[1] = p[7].value.netFloat; this->rotationQ[2] = p[8].value.netFloat; this->rotationQ[3] = p[9].value.netFloat; this->scale[0] = p[10].value.netFloat; this->scale[1] = p[11].value.netFloat; this->scale[2] = p[12].value.netFloat; } Protocol_ObjectCreate(float p[3], float r[4], float s[3], int id, char *path) { this->protocol[0].value = protocol_Gameplay_ObjectCreate; this->protocol[0].type = Oyster::Network::NetAttributeType_Int; //NAME this->protocol[1].type = Oyster::Network::NetAttributeType_Int; this->protocol[2].type = Oyster::Network::NetAttributeType_CharArray; //POSITION this->protocol[3].type = Oyster::Network::NetAttributeType_Float; this->protocol[4].type = Oyster::Network::NetAttributeType_Float; this->protocol[5].type = Oyster::Network::NetAttributeType_Float; //ROTATION this->protocol[6].type = Oyster::Network::NetAttributeType_Float; this->protocol[7].type = Oyster::Network::NetAttributeType_Float; this->protocol[8].type = Oyster::Network::NetAttributeType_Float; this->protocol[9].type = Oyster::Network::NetAttributeType_Float; //SCALE this->protocol[10].type = Oyster::Network::NetAttributeType_Float; this->protocol[11].type = Oyster::Network::NetAttributeType_Float; this->protocol[12].type = Oyster::Network::NetAttributeType_Float; object_ID = id; this->name = path; memcpy(this->position, p, sizeof(float) * 3); memcpy(this->rotationQ, r, sizeof(float) * 4); memcpy(this->scale, s, sizeof(float) * 3); } Oyster::Network::CustomNetProtocol GetProtocol() override { this->protocol[1].value = object_ID; this->protocol.Set(2, name); this->protocol[3].value = this->position[0]; this->protocol[4].value = this->position[1]; this->protocol[5].value = this->position[2]; this->protocol[6].value = this->rotationQ[0]; this->protocol[7].value = this->rotationQ[1]; this->protocol[8].value = this->rotationQ[2]; this->protocol[9].value = this->rotationQ[3]; this->protocol[10].value = this->scale[0]; this->protocol[11].value = this->scale[1]; this->protocol[12].value = this->scale[2]; return protocol; } private: Oyster::Network::CustomNetProtocol protocol; }; //#define protocol_Gameplay_ObjectCreatePlayer 360 struct Protocol_ObjectCreatePlayer :public Oyster::Network::CustomProtocolObject { /*1*/ int object_ID; /*2*/ int teamId; /*3*/ bool owner; /*4*/ std::string name; /*5*/ std::string meshName; /*6 - 8*/ float position[3]; /*9 - 11*/ float rotationQ[4]; /*12 - 14*/ 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_Bool; //TEAM_ID this->protocol[2].type = Oyster::Network::NetAttributeType_Int; //OWNER this->protocol[3].type = Oyster::Network::NetAttributeType_Int; //PLAYER-NAME this->protocol[4].type = Oyster::Network::NetAttributeType_CharArray; //MESH-NAME this->protocol[5].type = Oyster::Network::NetAttributeType_CharArray; //POSITION this->protocol[6].type = Oyster::Network::NetAttributeType_Float; this->protocol[7].type = Oyster::Network::NetAttributeType_Float; this->protocol[8].type = Oyster::Network::NetAttributeType_Float; //ROTATION this->protocol[9].type = Oyster::Network::NetAttributeType_Float; this->protocol[10].type = Oyster::Network::NetAttributeType_Float; this->protocol[11].type = Oyster::Network::NetAttributeType_Float; //SCALE this->protocol[12].type = Oyster::Network::NetAttributeType_Float; this->protocol[13].type = Oyster::Network::NetAttributeType_Float; this->protocol[14].type = Oyster::Network::NetAttributeType_Float; } Protocol_ObjectCreatePlayer(Oyster::Network::CustomNetProtocol& p) { this->owner = p[1].value.netBool; this->object_ID = p[2].value.netInt; this->teamId = p[3].value.netInt; this->name.assign(p[4].value.netCharPtr); this->meshName.assign(p[5].value.netCharPtr); this->position[0] = p[6].value.netFloat; this->position[1] = p[7].value.netFloat; this->position[2] = p[8].value.netFloat; this->rotationQ[0] = p[9].value.netFloat; this->rotationQ[1] = p[10].value.netFloat; this->rotationQ[2] = p[11].value.netFloat; this->rotationQ[3] = p[12].value.netFloat; this->scale[0] = p[13].value.netFloat; this->scale[1] = p[14].value.netFloat; this->scale[2] = p[15].value.netFloat; } Protocol_ObjectCreatePlayer(float position[3], float rotation[4], float scale[3], int ObjectID, bool owner, 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_Bool; //TEAM_ID this->protocol[2].type = Oyster::Network::NetAttributeType_Int; //OWNER this->protocol[3].type = Oyster::Network::NetAttributeType_Int; //PLAYER-NAME this->protocol[4].type = Oyster::Network::NetAttributeType_CharArray; //MESH-NAME this->protocol[5].type = Oyster::Network::NetAttributeType_CharArray; //POSITION this->protocol[6].type = Oyster::Network::NetAttributeType_Float; this->protocol[7].type = Oyster::Network::NetAttributeType_Float; this->protocol[8].type = Oyster::Network::NetAttributeType_Float; //ROTATION this->protocol[9].type = Oyster::Network::NetAttributeType_Float; this->protocol[10].type = Oyster::Network::NetAttributeType_Float; this->protocol[11].type = Oyster::Network::NetAttributeType_Float; this->protocol[12].type = Oyster::Network::NetAttributeType_Float; //SCALE this->protocol[13].type = Oyster::Network::NetAttributeType_Float; this->protocol[14].type = Oyster::Network::NetAttributeType_Float; this->protocol[15].type = Oyster::Network::NetAttributeType_Float; this->object_ID = ObjectID; this->teamId = teamID; this->owner = owner; this->name = name; this->meshName = meshName; memcpy(&this->position[0], &position[0], sizeof(float)*3); memcpy(&this->rotationQ[0], &rotation[0], sizeof(float)*4); memcpy(&this->scale[0], &scale[0], sizeof(float)*3); } Oyster::Network::CustomNetProtocol GetProtocol() override { this->protocol[1].value = this->owner; this->protocol[2].value = this->object_ID; this->protocol[3].value = this->teamId; this->protocol.Set(4, this->name); this->protocol.Set(5, this->meshName); //POSITION this->protocol[6].value = this->position[0]; this->protocol[7].value = this->position[1]; this->protocol[8].value = this->position[2]; //ROTATION this->protocol[9].value = this->rotationQ[0]; this->protocol[10].value = this->rotationQ[1]; this->protocol[11].value = this->rotationQ[2]; this->protocol[12].value = this->rotationQ[3]; //SCALE this->protocol[13].value = this->scale[0]; this->protocol[14].value = this->scale[1]; this->protocol[15].value = this->scale[2]; return protocol; } private: Oyster::Network::CustomNetProtocol protocol; }; //#define protocol_Gameplay_ObjectJoinTeam 361 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 362 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 363 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 364 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 365 struct Protocol_ObjectRespawn :public Oyster::Network::CustomProtocolObject { int objectID; float position[3]; Protocol_ObjectRespawn() { this->protocol[0].type = Oyster::Network::NetAttributeType_Short; this->protocol[0].value.netShort = protocol_Gameplay_ObjectRespawn; // ID this->protocol[1].type = Oyster::Network::NetAttributeType_Int; // POSITION 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->objectID = 0; memset(&this->position[0], 0, sizeof(float) * 3); } Protocol_ObjectRespawn(int id, float position[3]) { this->protocol[0].type = Oyster::Network::NetAttributeType_Short; this->protocol[0].value.netShort = protocol_Gameplay_ObjectRespawn; // ID this->protocol[1].type = Oyster::Network::NetAttributeType_Int; // POSITION 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->objectID = id; memcpy(&this->position[0], &position[0], sizeof(float) * 3); } Protocol_ObjectRespawn(Oyster::Network::CustomNetProtocol& p) { this->objectID = p[1].value.netInt; this->position[0] = p[2].value.netFloat; this->position[1] = p[3].value.netFloat; this->position[2] = p[4].value.netFloat; } Oyster::Network::CustomNetProtocol GetProtocol() override { this->protocol[1].value = this->objectID; this->protocol[2].value = this->position[0]; this->protocol[3].value = this->position[1]; this->protocol[4].value = this->position[2]; return protocol; } private: Oyster::Network::CustomNetProtocol protocol; }; //#define protocol_Gameplay_ObjectDie 366 struct Protocol_ObjectDie :public Oyster::Network::CustomProtocolObject { int objectID; int killerID; 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_Int; this->protocol[3].type = Oyster::Network::NetAttributeType_Float; this->objectID = -1; this->killerID = -1; this->seconds = 0.0f; } Protocol_ObjectDie(int objectID, int killerID, 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_Int; this->protocol[3].type = Oyster::Network::NetAttributeType_Float; this->objectID = objectID; this->killerID = killerID; this->seconds = seconds; } Protocol_ObjectDie(Oyster::Network::CustomNetProtocol& p) { this->objectID = p[1].value.netInt; this->killerID = p[2].value.netInt; this->seconds = p[3].value.netFloat; } Oyster::Network::CustomNetProtocol GetProtocol() override { this->protocol[1].value = this->objectID; this->protocol[2].value = this->killerID; this->protocol[3].value = this->seconds; return protocol; } private: Oyster::Network::CustomNetProtocol protocol; }; //#define protocol_Gameplay_ObjectDisconnectPlayer 367 struct Protocol_ObjectDisconnectPlayer :public Oyster::Network::CustomProtocolObject { int objectID; Protocol_ObjectDisconnectPlayer() { this->protocol[0].type = Oyster::Network::NetAttributeType_Short; this->protocol[0].value.netShort = protocol_Gameplay_ObjectDisconnectPlayer; this->protocol[1].type = Oyster::Network::NetAttributeType_Int; this->objectID = 0; } Protocol_ObjectDisconnectPlayer(int objectID) { this->protocol[0].type = Oyster::Network::NetAttributeType_Short; this->protocol[0].value.netShort = protocol_Gameplay_ObjectDisconnectPlayer; this->protocol[1].type = Oyster::Network::NetAttributeType_Int; this->objectID = objectID; } Protocol_ObjectDisconnectPlayer(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_ObjectAction 368 struct Protocol_ObjectAction :public Oyster::Network::CustomProtocolObject { short objectID; int animationID; Protocol_ObjectAction() { this->protocol[0].value = protocol_Gameplay_ObjectAction; this->protocol[0].type = Oyster::Network::NetAttributeType_Short; this->protocol[1].type = Oyster::Network::NetAttributeType_Short; this->protocol[2].type = Oyster::Network::NetAttributeType_Int; objectID = -1; animationID = -1; } Protocol_ObjectAction(Oyster::Network::CustomNetProtocol& p) { objectID = p[1].value.netShort; animationID = p[2].value.netInt; } Protocol_ObjectAction( int id, float animID) { this->protocol[0].value = protocol_Gameplay_ObjectAction; this->protocol[0].type = Oyster::Network::NetAttributeType_Short; this->protocol[1].type = Oyster::Network::NetAttributeType_Short; this->protocol[2].type = Oyster::Network::NetAttributeType_Int; objectID = id; animationID = animID; } Oyster::Network::CustomNetProtocol GetProtocol() override { this->protocol[1].value = objectID; this->protocol[2].value = animationID; return protocol; } private: Oyster::Network::CustomNetProtocol protocol; }; #endif // !GAMELOGIC_PLAYER_PROTOCOLS_H