From 5f0cf826d4dd72afb41f05b0ce67f5edf3e96eff Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Mon, 21 Mar 2016 20:57:13 +1100 Subject: [PATCH] Updated networking --- ...monster_packet.cpp => creature_packet.cpp} | 14 +- ...monster_packet.hpp => creature_packet.hpp} | 10 +- common/network/serial_packet.hpp | 6 +- common/network/serial_packet_type.hpp | 120 ++++++++---------- common/network/serial_utility.cpp | 10 +- 5 files changed, 73 insertions(+), 87 deletions(-) rename common/network/packet_types/{monster_packet.cpp => creature_packet.cpp} (87%) rename common/network/packet_types/{monster_packet.hpp => creature_packet.hpp} (84%) diff --git a/common/network/packet_types/monster_packet.cpp b/common/network/packet_types/creature_packet.cpp similarity index 87% rename from common/network/packet_types/monster_packet.cpp rename to common/network/packet_types/creature_packet.cpp index c365207..0df4c37 100644 --- a/common/network/packet_types/monster_packet.cpp +++ b/common/network/packet_types/creature_packet.cpp @@ -19,15 +19,15 @@ * 3. This notice may not be removed or altered from any source * distribution. */ -#include "monster_packet.hpp" +#include "creature_packet.hpp" #include "serial_utility.hpp" -void serializeMonster(void* buffer, MonsterPacket* packet) { +void serializeCreature(void* buffer, CreaturePacket* packet) { serialCopy(&buffer, &packet->type, sizeof(SerialPacketType)); - //identify the monster - serialCopy(&buffer, &packet->monsterIndex, sizeof(int)); + //identify the creature + serialCopy(&buffer, &packet->creatureIndex, sizeof(int)); serialCopy(&buffer, packet->handle, PACKET_STRING_SIZE); serialCopy(&buffer, packet->avatar, PACKET_STRING_SIZE); @@ -46,11 +46,11 @@ void serializeMonster(void* buffer, MonsterPacket* packet) { serialCopy(&buffer, &packet->motion.y, sizeof(double)); } -void deserializeMonster(void* buffer, MonsterPacket* packet) { +void deserializeCreature(void* buffer, CreaturePacket* packet) { deserialCopy(&buffer, &packet->type, sizeof(SerialPacketType)); - //identify the monster - deserialCopy(&buffer, &packet->monsterIndex, sizeof(int)); + //identify the creature + deserialCopy(&buffer, &packet->creatureIndex, sizeof(int)); deserialCopy(&buffer, packet->handle, PACKET_STRING_SIZE); deserialCopy(&buffer, packet->avatar, PACKET_STRING_SIZE); diff --git a/common/network/packet_types/monster_packet.hpp b/common/network/packet_types/creature_packet.hpp similarity index 84% rename from common/network/packet_types/monster_packet.hpp rename to common/network/packet_types/creature_packet.hpp index 3a4cc37..ccf5232 100644 --- a/common/network/packet_types/monster_packet.hpp +++ b/common/network/packet_types/creature_packet.hpp @@ -26,9 +26,9 @@ #include "bounding_box.hpp" #include "vector2.hpp" -struct MonsterPacket : SerialPacketBase { - //identify the monster - int monsterIndex; +struct CreaturePacket : SerialPacketBase { + //identify the creature + int creatureIndex; char handle[PACKET_STRING_SIZE]; char avatar[PACKET_STRING_SIZE]; BoundingBox bounds; @@ -39,5 +39,5 @@ struct MonsterPacket : SerialPacketBase { Vector2 motion; }; -void serializeMonster(void* buffer, MonsterPacket* packet); -void deserializeMonster(void* buffer, MonsterPacket* packet); +void serializeCreature(void* buffer, CreaturePacket* packet); +void deserializeCreature(void* buffer, CreaturePacket* packet); diff --git a/common/network/serial_packet.hpp b/common/network/serial_packet.hpp index 4bf1d8a..0ceff5a 100644 --- a/common/network/serial_packet.hpp +++ b/common/network/serial_packet.hpp @@ -24,7 +24,7 @@ #include "serial_packet_base.hpp" #include "character_packet.hpp" #include "client_packet.hpp" -#include "monster_packet.hpp" +#include "creature_packet.hpp" #include "region_packet.hpp" #include "server_packet.hpp" #include "text_packet.hpp" @@ -33,12 +33,12 @@ typedef SerialPacketBase SerialPacket; //DOCS: NETWORK_VERSION is used to discern compatible servers and clients -constexpr int NETWORK_VERSION = 20160316; +constexpr int NETWORK_VERSION = 20160321; union MaxPacket { CharacterPacket a; ClientPacket b; - MonsterPacket c; + CreaturePacket c; RegionPacket d; ServerPacket e; TextPacket f; diff --git a/common/network/serial_packet_type.hpp b/common/network/serial_packet_type.hpp index 349d964..281a54b 100644 --- a/common/network/serial_packet_type.hpp +++ b/common/network/serial_packet_type.hpp @@ -29,66 +29,66 @@ enum class SerialPacketType { //default: there is something wrong - NONE, + NONE = 0, //------------------------- //ServerPacket // name, player count, version //------------------------- - FORMAT_SERVER, + FORMAT_SERVER = 100, //heartbeat - PING, - PONG, + PING = 101, + PONG = 102, //Used for finding available servers - BROADCAST_REQUEST, - BROADCAST_RESPONSE, + BROADCAST_REQUEST = 103, + BROADCAST_RESPONSE = 104, - FORMAT_END_SERVER, + FORMAT_END_SERVER = 199, //------------------------- //ClientPacket // client index, account index, username //------------------------- - FORMAT_CLIENT, + FORMAT_CLIENT = 200, //Connecting to a server as a client - JOIN_REQUEST, - JOIN_RESPONSE, + JOIN_REQUEST = 201, + JOIN_RESPONSE = 202, //disconnect from the server - DISCONNECT_REQUEST, - DISCONNECT_RESPONSE, - ADMIN_DISCONNECT_FORCED, + DISCONNECT_REQUEST = 203, + DISCONNECT_RESPONSE = 204, + ADMIN_DISCONNECT_FORCED = 205, //load the account - LOGIN_REQUEST, - LOGIN_RESPONSE, + LOGIN_REQUEST = 206, + LOGIN_RESPONSE = 207, //unload the account - LOGOUT_REQUEST, - LOGOUT_RESPONSE, + LOGOUT_REQUEST = 208, + LOGOUT_RESPONSE = 209, //shut down the server - ADMIN_SHUTDOWN_REQUEST, + ADMIN_SHUTDOWN_REQUEST = 210, - FORMAT_END_CLIENT, + FORMAT_END_CLIENT = 299, //------------------------- //RegionPacket // room index, x, y, raw data //------------------------- - FORMAT_REGION, + FORMAT_REGION = 300, //map data - REGION_REQUEST, - REGION_CONTENT, + REGION_REQUEST = 301, + REGION_CONTENT = 302, - FORMAT_END_REGION, + FORMAT_END_REGION = 399, //------------------------- //CharacterPacket @@ -98,87 +98,73 @@ enum class SerialPacketType { // room index, origin, motion //------------------------- - FORMAT_CHARACTER, + FORMAT_CHARACTER = 400, //full data update - CHARACTER_UPDATE, + CHARACTER_UPDATE = 401, //character management - CHARACTER_CREATE, - CHARACTER_DELETE, - CHARACTER_LOAD, - CHARACTER_UNLOAD, + CHARACTER_CREATE = 402, + CHARACTER_DELETE = 403, + CHARACTER_LOAD = 404, + CHARACTER_UNLOAD = 405, //find out info from the server - QUERY_CHARACTER_EXISTS, - QUERY_CHARACTER_STATS, - QUERY_CHARACTER_LOCATION, + QUERY_CHARACTER_EXISTS = 406, //actions taken - CHARACTER_MOVEMENT, - CHARACTER_ATTACK, - CHARACTER_DAMAGE, + CHARACTER_MOVEMENT = 407, - //admin control -// ADMIN_SET_CHARACTER_ORIGIN, - - FORMAT_END_CHARACTER, + FORMAT_END_CHARACTER = 499, //------------------------- - //MonsterPacket - // monster index, + //CreaturePacket + // creature index, // handle, avatar // bounds // room index, origin, motion //------------------------- - FORMAT_MONSTER, + FORMAT_CREATURE = 500, //full data update - MONSTER_UPDATE, + CREATURE_UPDATE = 501, //character management - MONSTER_CREATE, - MONSTER_DELETE, - - //find out info from the server - QUERY_MONSTER_EXISTS, - QUERY_MONSTER_STATS, - QUERY_MONSTER_LOCATION, + CREATURE_CREATE = 502, + CREATURE_UNLOAD = 503, //actions taken - MONSTER_MOVEMENT, - MONSTER_ATTACK, - MONSTER_DAMAGE, + CREATURE_MOVEMENT = 504, - FORMAT_END_MONSTER, + FORMAT_END_CREATURE = 599, //------------------------- //TextPacket // name, text //------------------------- - FORMAT_TEXT, + FORMAT_TEXT = 600, //general speech - TEXT_BROADCAST, - TEXT_SPEECH, - TEXT_WHISPER, + TEXT_BROADCAST = 601, + TEXT_SPEECH = 602, + TEXT_WHISPER = 603, //rejection/error messages - JOIN_REJECTION, - LOGIN_REJECTION, - REGION_REJECTION, - CHARACTER_REJECTION, - MONSTER_REJECTION, - SHUTDOWN_REJECTION, - QUERY_REJECTION, + JOIN_REJECTION = 604, + LOGIN_REJECTION = 605, + REGION_REJECTION = 606, + CHARACTER_REJECTION = 607, + CREATURE_REJECTION = 608, + SHUTDOWN_REJECTION = 609, + QUERY_REJECTION = 610, - FORMAT_END_TEXT, + FORMAT_END_TEXT = 699, //------------------------- //not used //------------------------- - LAST + LAST = 700 }; diff --git a/common/network/serial_utility.cpp b/common/network/serial_utility.cpp index d002891..e13f920 100644 --- a/common/network/serial_utility.cpp +++ b/common/network/serial_utility.cpp @@ -24,7 +24,7 @@ //packet types #include "character_packet.hpp" #include "client_packet.hpp" -#include "monster_packet.hpp" +#include "creature_packet.hpp" #include "region_packet.hpp" #include "server_packet.hpp" #include "text_packet.hpp" @@ -65,8 +65,8 @@ void serializePacket(void* buffer, SerialPacketBase* packet) { serializeCharacter(buffer, static_cast(packet)); } - if (BOUNDS(packet->type, SerialPacketType::FORMAT_MONSTER, SerialPacketType::FORMAT_END_MONSTER)) { - serializeMonster(buffer, static_cast(packet)); + if (BOUNDS(packet->type, SerialPacketType::FORMAT_CREATURE, SerialPacketType::FORMAT_END_CREATURE)) { + serializeCreature(buffer, static_cast(packet)); } if (BOUNDS(packet->type, SerialPacketType::FORMAT_TEXT, SerialPacketType::FORMAT_END_TEXT)) { @@ -95,8 +95,8 @@ void deserializePacket(void* buffer, SerialPacketBase* packet) { deserializeCharacter(buffer, static_cast(packet)); } - if (BOUNDS(type, SerialPacketType::FORMAT_MONSTER, SerialPacketType::FORMAT_END_MONSTER)) { - deserializeMonster(buffer, static_cast(packet)); + if (BOUNDS(type, SerialPacketType::FORMAT_CREATURE, SerialPacketType::FORMAT_END_CREATURE)) { + deserializeCreature(buffer, static_cast(packet)); } if (BOUNDS(type, SerialPacketType::FORMAT_TEXT, SerialPacketType::FORMAT_END_TEXT)) {