From 7b76e072312c2f98b18463f637b39efdd7dbd148 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Mon, 26 May 2014 01:08:10 +1000 Subject: [PATCH] Hooked up the new serial code, nothing broke --- common/network/serial.cpp | 68 ++++++++++++++++++++++++++++---- common/network/serial_packet.hpp | 13 +++--- 2 files changed, 67 insertions(+), 14 deletions(-) diff --git a/common/network/serial.cpp b/common/network/serial.cpp index 310bfff..81aecea 100644 --- a/common/network/serial.cpp +++ b/common/network/serial.cpp @@ -296,20 +296,29 @@ void deserializeEnemy(SerialPacket* packet, char* buffer) { void serialize(SerialPacket* packet, void* buffer) { switch(packet->meta.type) { - //No extra data + //no extra data case SerialPacket::Type::NONE: case SerialPacket::Type::PING: case SerialPacket::Type::PONG: case SerialPacket::Type::BROADCAST_REQUEST: + + //all rejections + case SerialPacket::Type::BROADCAST_REJECTION: + case SerialPacket::Type::JOIN_REJECTION: + case SerialPacket::Type::REGION_REJECTION: + case SerialPacket::Type::CHARACTER_REJECTION: + case SerialPacket::Type::ENEMY_REJECTION: + case SerialPacket::Type::COMBAT_REJECTION: + serializeType(packet, reinterpret_cast(buffer)); break; - //Server info + //server info case SerialPacket::Type::BROADCAST_RESPONSE: serializeServer(packet, reinterpret_cast(buffer)); break; - //Client info + //client info case SerialPacket::Type::JOIN_REQUEST: case SerialPacket::Type::JOIN_RESPONSE: case SerialPacket::Type::SYNCHRONIZE: @@ -327,12 +336,29 @@ void serialize(SerialPacket* packet, void* buffer) { serializeRegionContent(packet, reinterpret_cast(buffer)); break; - //Character info + //combat info + case SerialPacket::Type::COMBAT_ENTER: + case SerialPacket::Type::COMBAT_EXIT: + serializeCombat(packet, reinterpret_cast(buffer)); + break; + + //character info case SerialPacket::Type::CHARACTER_NEW: case SerialPacket::Type::CHARACTER_DELETE: case SerialPacket::Type::CHARACTER_UPDATE: + case SerialPacket::Type::CHARACTER_STATS_REQUEST: + case SerialPacket::Type::CHARACTER_STATS_RESPONSE: serializeCharacter(packet, reinterpret_cast(buffer)); break; + + //enemy info + case SerialPacket::Type::ENEMY_NEW: + case SerialPacket::Type::ENEMY_DELETE: + case SerialPacket::Type::ENEMY_UPDATE: + case SerialPacket::Type::ENEMY_STATS_REQUEST: + case SerialPacket::Type::ENEMY_STATS_RESPONSE: + serializeEnemy(packet, reinterpret_cast(buffer)); + break; } } @@ -340,20 +366,29 @@ void deserialize(SerialPacket* packet, void* buffer) { //find the type, so that you can actually deserialize the packet! deserializeType(packet, reinterpret_cast(buffer)); switch(packet->meta.type) { - //No extra data + //no extra data case SerialPacket::Type::NONE: case SerialPacket::Type::PING: case SerialPacket::Type::PONG: case SerialPacket::Type::BROADCAST_REQUEST: + + //all rejections + case SerialPacket::Type::BROADCAST_REJECTION: + case SerialPacket::Type::JOIN_REJECTION: + case SerialPacket::Type::REGION_REJECTION: + case SerialPacket::Type::CHARACTER_REJECTION: + case SerialPacket::Type::ENEMY_REJECTION: + case SerialPacket::Type::COMBAT_REJECTION: + //NOTHING break; - //Server info + //server info case SerialPacket::Type::BROADCAST_RESPONSE: deserializeServer(packet, reinterpret_cast(buffer)); break; - //Client info + //client info case SerialPacket::Type::JOIN_REQUEST: case SerialPacket::Type::JOIN_RESPONSE: case SerialPacket::Type::SYNCHRONIZE: @@ -371,11 +406,28 @@ void deserialize(SerialPacket* packet, void* buffer) { deserializeRegionContent(packet, reinterpret_cast(buffer)); break; - //Character info + //combat info + case SerialPacket::Type::COMBAT_ENTER: + case SerialPacket::Type::COMBAT_EXIT: + serializeCombat(packet, reinterpret_cast(buffer)); + break; + + //character info case SerialPacket::Type::CHARACTER_NEW: case SerialPacket::Type::CHARACTER_DELETE: case SerialPacket::Type::CHARACTER_UPDATE: + case SerialPacket::Type::CHARACTER_STATS_REQUEST: + case SerialPacket::Type::CHARACTER_STATS_RESPONSE: deserializeCharacter(packet, reinterpret_cast(buffer)); break; + + //enemy info + case SerialPacket::Type::ENEMY_NEW: + case SerialPacket::Type::ENEMY_DELETE: + case SerialPacket::Type::ENEMY_UPDATE: + case SerialPacket::Type::ENEMY_STATS_REQUEST: + case SerialPacket::Type::ENEMY_STATS_RESPONSE: + serializeEnemy(packet, reinterpret_cast(buffer)); + break; } } \ No newline at end of file diff --git a/common/network/serial_packet.hpp b/common/network/serial_packet.hpp index 662985a..8729674 100644 --- a/common/network/serial_packet.hpp +++ b/common/network/serial_packet.hpp @@ -68,6 +68,12 @@ union SerialPacket { REGION_CONTENT, REGION_REJECTION, + //combat data + COMBAT_ENTER, + COMBAT_EXIT, + + COMBAT_REJECTION, + //character data CHARACTER_NEW, CHARACTER_DELETE, @@ -88,12 +94,6 @@ union SerialPacket { ENEMY_REJECTION, - //combat data - COMBAT_ENTER, - COMBAT_EXIT, - - COMBAT_REJECTION, - //more packet types go here //not used @@ -141,6 +141,7 @@ union SerialPacket { int difficulty; //TODO: background image, based on terrain type //TODO: array of combatants + //TODO: rewards }combatInfo; //info about a character