Fleshed out the serialization internals
This commit is contained in:
@@ -46,6 +46,8 @@ struct EnemyData {
|
|||||||
//TODO: buffs
|
//TODO: buffs
|
||||||
//TODO: debuffs
|
//TODO: debuffs
|
||||||
|
|
||||||
|
//TODO: rewards
|
||||||
|
|
||||||
//active gameplay members
|
//active gameplay members
|
||||||
//NOTE: these are lost when unloaded
|
//NOTE: these are lost when unloaded
|
||||||
#ifdef GRAPHICS
|
#ifdef GRAPHICS
|
||||||
|
|||||||
@@ -33,6 +33,11 @@ struct EnemyPacket : SerialPacketBase {
|
|||||||
//gameplay
|
//gameplay
|
||||||
Statistics stats;
|
Statistics stats;
|
||||||
|
|
||||||
|
//TODO: equipment
|
||||||
|
//TODO: items
|
||||||
|
//TODO: buffs
|
||||||
|
//TODO: debuffs
|
||||||
|
|
||||||
//TODO: rewards
|
//TODO: rewards
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -26,19 +26,55 @@
|
|||||||
void serializeCharacter(CharacterPacket* packet, void* buffer) {
|
void serializeCharacter(CharacterPacket* packet, void* buffer) {
|
||||||
SERIALIZE(buffer, &packet->type, sizeof(SerialPacketType));
|
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
|
//stats structure
|
||||||
serializeStatistics(&packet->stats, buffer);
|
serializeStatistics(&packet->stats, buffer);
|
||||||
buffer = reinterpret_cast<char*>(buffer) + sizeof(Statistics);
|
buffer = reinterpret_cast<char*>(buffer) + sizeof(Statistics);
|
||||||
|
|
||||||
|
//TODO: equipment
|
||||||
|
//TODO: items
|
||||||
|
//TODO: buffs
|
||||||
|
//TODO: debuffs
|
||||||
}
|
}
|
||||||
|
|
||||||
void deserializeCharacter(CharacterPacket* packet, void* buffer) {
|
void deserializeCharacter(CharacterPacket* packet, void* buffer) {
|
||||||
DESERIALIZE(buffer, &packet->type, sizeof(SerialPacketType));
|
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
|
//stats structure
|
||||||
deserializeStatistics(&packet->stats, buffer);
|
deserializeStatistics(&packet->stats, buffer);
|
||||||
buffer = reinterpret_cast<char*>(buffer) + sizeof(Statistics);
|
buffer = reinterpret_cast<char*>(buffer) + sizeof(Statistics);
|
||||||
|
|
||||||
|
//TODO: equipment
|
||||||
|
//TODO: items
|
||||||
|
//TODO: buffs
|
||||||
|
//TODO: debuffs
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,11 +26,17 @@
|
|||||||
void serializeClient(ClientPacket* packet, void* buffer) {
|
void serializeClient(ClientPacket* packet, void* buffer) {
|
||||||
SERIALIZE(buffer, &packet->type, sizeof(SerialPacketType));
|
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) {
|
void deserializeClient(ClientPacket* packet, void* buffer) {
|
||||||
DESERIALIZE(buffer, &packet->type, sizeof(SerialPacketType));
|
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));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,11 +26,39 @@
|
|||||||
void serializeCombat(CombatPacket* packet, void* buffer) {
|
void serializeCombat(CombatPacket* packet, void* buffer) {
|
||||||
SERIALIZE(buffer, &packet->type, sizeof(SerialPacketType));
|
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) {
|
void deserializeCombat(CombatPacket* packet, void* buffer) {
|
||||||
DESERIALIZE(buffer, &packet->type, sizeof(SerialPacketType));
|
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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,19 +26,41 @@
|
|||||||
void serializeEnemy(EnemyPacket* packet, void* buffer) {
|
void serializeEnemy(EnemyPacket* packet, void* buffer) {
|
||||||
SERIALIZE(buffer, &packet->type, sizeof(SerialPacketType));
|
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
|
//stats structure
|
||||||
serializeStatistics(&packet->stats, buffer);
|
serializeStatistics(&packet->stats, buffer);
|
||||||
buffer = reinterpret_cast<char*>(buffer) + sizeof(Statistics);
|
buffer = reinterpret_cast<char*>(buffer) + sizeof(Statistics);
|
||||||
|
|
||||||
|
//TODO: equipment
|
||||||
|
//TODO: items
|
||||||
|
//TODO: buffs
|
||||||
|
//TODO: debuffs
|
||||||
|
|
||||||
|
//TODO: rewards
|
||||||
}
|
}
|
||||||
|
|
||||||
void deserializeEnemy(EnemyPacket* packet, void* buffer) {
|
void deserializeEnemy(EnemyPacket* packet, void* buffer) {
|
||||||
DESERIALIZE(buffer, &packet->type, sizeof(SerialPacketType));
|
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
|
//stats structure
|
||||||
deserializeStatistics(&packet->stats, buffer);
|
deserializeStatistics(&packet->stats, buffer);
|
||||||
buffer = reinterpret_cast<char*>(buffer) + sizeof(Statistics);
|
buffer = reinterpret_cast<char*>(buffer) + sizeof(Statistics);
|
||||||
|
|
||||||
|
//TODO: equipment
|
||||||
|
//TODO: items
|
||||||
|
//TODO: buffs
|
||||||
|
//TODO: debuffs
|
||||||
|
|
||||||
|
//TODO: rewards
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,11 +26,17 @@
|
|||||||
void serializeServer(ServerPacket* packet, void* buffer) {
|
void serializeServer(ServerPacket* packet, void* buffer) {
|
||||||
SERIALIZE(buffer, &packet->type, sizeof(SerialPacketType));
|
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) {
|
void deserializeServer(ServerPacket* packet, void* buffer) {
|
||||||
DESERIALIZE(buffer, &packet->type, sizeof(SerialPacketType));
|
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));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user