diff --git a/common/gameplay/enemy_data.hpp b/common/gameplay/enemy_data.hpp index 62de98c..9fd96e2 100644 --- a/common/gameplay/enemy_data.hpp +++ b/common/gameplay/enemy_data.hpp @@ -46,6 +46,8 @@ struct EnemyData { //TODO: buffs //TODO: debuffs + //TODO: rewards + //active gameplay members //NOTE: these are lost when unloaded #ifdef GRAPHICS diff --git a/common/network/packet/enemy_packet.hpp b/common/network/packet/enemy_packet.hpp index bbe68c9..4a3d343 100644 --- a/common/network/packet/enemy_packet.hpp +++ b/common/network/packet/enemy_packet.hpp @@ -33,6 +33,11 @@ struct EnemyPacket : SerialPacketBase { //gameplay Statistics stats; + //TODO: equipment + //TODO: items + //TODO: buffs + //TODO: debuffs + //TODO: rewards }; diff --git a/common/network/serial/serial_character.cpp b/common/network/serial/serial_character.cpp index 033944a..3805702 100644 --- a/common/network/serial/serial_character.cpp +++ b/common/network/serial/serial_character.cpp @@ -26,19 +26,55 @@ void serializeCharacter(CharacterPacket* packet, void* buffer) { SERIALIZE(buffer, &packet->type, sizeof(SerialPacketType)); - //TODO + //identify the character + SERIALIZE(buffer, &packet->characterIndex, sizeof(int)); + SERIALIZE(buffer, &packet->handle, PACKET_STRING_SIZE); + SERIALIZE(buffer, &packet->avatar, PACKET_STRING_SIZE); + + //the owner + SERIALIZE(buffer, &packet->accountIndex, sizeof(int)); + + //location + SERIALIZE(buffer, &packet->roomIndex, sizeof(int)); + SERIALIZE(buffer, &packet->origin.x, sizeof(double)); + SERIALIZE(buffer, &packet->origin.y, sizeof(double)); + SERIALIZE(buffer, &packet->motion.x, sizeof(double)); + SERIALIZE(buffer, &packet->motion.y, sizeof(double)); //stats structure serializeStatistics(&packet->stats, buffer); buffer = reinterpret_cast(buffer) + sizeof(Statistics); + + //TODO: equipment + //TODO: items + //TODO: buffs + //TODO: debuffs } void deserializeCharacter(CharacterPacket* packet, void* buffer) { DESERIALIZE(buffer, &packet->type, sizeof(SerialPacketType)); - //TODO + //identify the character + DESERIALIZE(buffer, &packet->characterIndex, sizeof(int)); + DESERIALIZE(buffer, &packet->handle, PACKET_STRING_SIZE); + DESERIALIZE(buffer, &packet->avatar, PACKET_STRING_SIZE); + + //the owner + DESERIALIZE(buffer, &packet->accountIndex, sizeof(int)); + + //location + DESERIALIZE(buffer, &packet->roomIndex, sizeof(int)); + DESERIALIZE(buffer, &packet->origin.x, sizeof(double)); + DESERIALIZE(buffer, &packet->origin.y, sizeof(double)); + DESERIALIZE(buffer, &packet->motion.x, sizeof(double)); + DESERIALIZE(buffer, &packet->motion.y, sizeof(double)); //stats structure deserializeStatistics(&packet->stats, buffer); buffer = reinterpret_cast(buffer) + sizeof(Statistics); + + //TODO: equipment + //TODO: items + //TODO: buffs + //TODO: debuffs } diff --git a/common/network/serial/serial_client.cpp b/common/network/serial/serial_client.cpp index 4a818cf..bbc07b9 100644 --- a/common/network/serial/serial_client.cpp +++ b/common/network/serial/serial_client.cpp @@ -26,11 +26,17 @@ void serializeClient(ClientPacket* packet, void* buffer) { SERIALIZE(buffer, &packet->type, sizeof(SerialPacketType)); - //TODO + SERIALIZE(buffer, &packet->clientIndex, sizeof(int)); + SERIALIZE(buffer, &packet->accountIndex, sizeof(int)); + SERIALIZE(buffer, &packet->username, sizeof(PACKET_STRING_SIZE)); + SERIALIZE(buffer, &packet->password, sizeof(PACKET_STRING_SIZE)); } void deserializeClient(ClientPacket* packet, void* buffer) { DESERIALIZE(buffer, &packet->type, sizeof(SerialPacketType)); - //TODO + DESERIALIZE(buffer, &packet->clientIndex, sizeof(int)); + DESERIALIZE(buffer, &packet->accountIndex, sizeof(int)); + DESERIALIZE(buffer, &packet->username, sizeof(PACKET_STRING_SIZE)); + DESERIALIZE(buffer, &packet->password, sizeof(PACKET_STRING_SIZE)); } diff --git a/common/network/serial/serial_combat.cpp b/common/network/serial/serial_combat.cpp index 6fbb053..881db97 100644 --- a/common/network/serial/serial_combat.cpp +++ b/common/network/serial/serial_combat.cpp @@ -26,11 +26,39 @@ void serializeCombat(CombatPacket* packet, void* buffer) { SERIALIZE(buffer, &packet->type, sizeof(SerialPacketType)); - //TODO + //identify the combat instance + SERIALIZE(buffer, &packet->combatIndex, sizeof(int)); + SERIALIZE(buffer, &packet->difficulty, sizeof(int)); + SERIALIZE(buffer, &packet->terrainType, sizeof(CombatData::Terrain)); + + //combatants + SERIALIZE(buffer, &packet->characterArray, sizeof(int) * COMBAT_MAX_CHARACTERS); + SERIALIZE(buffer, &packet->enemyArray, sizeof(int) * COMBAT_MAX_ENEMIES); + + //location + SERIALIZE(buffer, &packet->mapIndex, sizeof(int)); + SERIALIZE(buffer, &packet->origin.x, sizeof(double)); + SERIALIZE(buffer, &packet->origin.y, sizeof(double)); + + //TODO: rewards } void deserializeCombat(CombatPacket* packet, void* buffer) { DESERIALIZE(buffer, &packet->type, sizeof(SerialPacketType)); - //TODO + //identify the combat instance + DESERIALIZE(buffer, &packet->combatIndex, sizeof(int)); + DESERIALIZE(buffer, &packet->difficulty, sizeof(int)); + DESERIALIZE(buffer, &packet->terrainType, sizeof(CombatData::Terrain)); + + //combatants + DESERIALIZE(buffer, &packet->characterArray, sizeof(int) * COMBAT_MAX_CHARACTERS); + DESERIALIZE(buffer, &packet->enemyArray, sizeof(int) * COMBAT_MAX_ENEMIES); + + //location + DESERIALIZE(buffer, &packet->mapIndex, sizeof(int)); + DESERIALIZE(buffer, &packet->origin.x, sizeof(double)); + DESERIALIZE(buffer, &packet->origin.y, sizeof(double)); + + //TODO: rewards } diff --git a/common/network/serial/serial_enemy.cpp b/common/network/serial/serial_enemy.cpp index 4059ea5..363ca1f 100644 --- a/common/network/serial/serial_enemy.cpp +++ b/common/network/serial/serial_enemy.cpp @@ -26,19 +26,41 @@ void serializeEnemy(EnemyPacket* packet, void* buffer) { SERIALIZE(buffer, &packet->type, sizeof(SerialPacketType)); - //TODO + //identify the enemy + SERIALIZE(buffer, &packet->enemyIndex, sizeof(int)); + SERIALIZE(buffer, &packet->handle, PACKET_STRING_SIZE); + SERIALIZE(buffer, &packet->avatar, PACKET_STRING_SIZE); + + //gameplay //stats structure serializeStatistics(&packet->stats, buffer); buffer = reinterpret_cast(buffer) + sizeof(Statistics); + + //TODO: equipment + //TODO: items + //TODO: buffs + //TODO: debuffs + + //TODO: rewards } void deserializeEnemy(EnemyPacket* packet, void* buffer) { DESERIALIZE(buffer, &packet->type, sizeof(SerialPacketType)); - //TODO + //identify the enemy + DESERIALIZE(buffer, &packet->enemyIndex, sizeof(int)); + DESERIALIZE(buffer, &packet->handle, PACKET_STRING_SIZE); + DESERIALIZE(buffer, &packet->avatar, PACKET_STRING_SIZE); //stats structure deserializeStatistics(&packet->stats, buffer); buffer = reinterpret_cast(buffer) + sizeof(Statistics); + + //TODO: equipment + //TODO: items + //TODO: buffs + //TODO: debuffs + + //TODO: rewards } diff --git a/common/network/serial/serial_server.cpp b/common/network/serial/serial_server.cpp index 1f94dd4..12a2f34 100644 --- a/common/network/serial/serial_server.cpp +++ b/common/network/serial/serial_server.cpp @@ -26,11 +26,17 @@ void serializeServer(ServerPacket* packet, void* buffer) { SERIALIZE(buffer, &packet->type, sizeof(SerialPacketType)); - //TODO + //identify the server + SERIALIZE(buffer, &packet->name, PACKET_STRING_SIZE); + SERIALIZE(buffer, &packet->playerCount, sizeof(int)); + SERIALIZE(buffer, &packet->version, sizeof(int)); } void deserializeServer(ServerPacket* packet, void* buffer) { DESERIALIZE(buffer, &packet->type, sizeof(SerialPacketType)); - //TODO + //identify the server + DESERIALIZE(buffer, &packet->name, PACKET_STRING_SIZE); + DESERIALIZE(buffer, &packet->playerCount, sizeof(int)); + DESERIALIZE(buffer, &packet->version, sizeof(int)); }