The server builds using the new packet types; incomplete

Most of this was achieved by dummying out calls in HandlePacket(), so the
server's actual logic is incomplete.
This commit is contained in:
Kayne Ruse
2014-11-09 23:15:09 +11:00
parent 3b9df46510
commit a1c20959fe
6 changed files with 193 additions and 105 deletions
+23 -16
View File
@@ -27,6 +27,7 @@
* valid data, but it will still be carried in that packet's format.
*/
//TODO: This needs to be smoothed out
enum class SerialPacketType {
//default: there is something wrong
NONE = 0,
@@ -57,6 +58,14 @@ enum class SerialPacketType {
DISCONNECT_REQUEST,
DISCONNECT_FORCED,
//load the account
LOGIN_REQUEST,
LOGIN_RESPONSE,
//unload the account
LOGOUT_REQUEST,
LOGOUT_RESPONSE,
//shut down the server
SHUTDOWN_REQUEST,
@@ -66,7 +75,7 @@ enum class SerialPacketType {
//-------------------------
//map data
REGION_REQUEST,
REGION_REQUEST, //NOTE: technically a query
REGION_CONTENT,
//-------------------------
@@ -78,25 +87,23 @@ enum class SerialPacketType {
// statistics
//-------------------------
//all stats
CHARACTER_STATS_REQUEST,
CHARACTER_STATS_RESPONSE,
//character management
//NOTE: The server sends create & delete messages to the clients, but the clients... don't?
CHARACTER_CREATE
CHARACTER_DELETE
CHARACTER_LOAD
CHARACTER_UNLOAD
CHARACTER_CREATE,
CHARACTER_DELETE,
CHARACTER_LOAD,
CHARACTER_UNLOAD,
//find out info from the server
CHARACTER_QUERY_EXISTS
CHARACTER_QUERY_LOCATION
QUERY_CHARACTER_EXISTS,
QUERY_CHARACTER_STATS,
QUERY_CHARACTER_LOCATION,
//set the info in the server
CHARACTER_SET_ROOM
CHARACTER_SET_ORIGIN
CHARACTER_SET_MOTION
CHARACTER_SET_ROOM,
CHARACTER_SET_ORIGIN,
CHARACTER_SET_MOTION,
//TODO: enemy management
//-------------------------
//TextPacket
@@ -107,9 +114,9 @@ enum class SerialPacketType {
TEXT_BROADCAST,
//rejection/error messages
SHUTDOWN_REJECTION,
JOIN_REJECTION,
CHARACTER_REJECTION,
SHUTDOWN_REJECTION,
//-------------------------
//not used
+35 -17
View File
@@ -54,26 +54,35 @@ void serializePacket(void* buffer, SerialPacketBase* packet) {
break;
case SerialPacketType::JOIN_REQUEST:
case SerialPacketType::JOIN_RESPONSE:
case SerialPacketType::SYNCHRONIZE:
case SerialPacketType::DISCONNECT:
case SerialPacketType::SHUTDOWN:
case SerialPacketType::DISCONNECT_REQUEST:
case SerialPacketType::DISCONNECT_FORCED:
case SerialPacketType::LOGIN_REQUEST:
case SerialPacketType::LOGIN_RESPONSE:
case SerialPacketType::LOGOUT_REQUEST:
case SerialPacketType::LOGOUT_RESPONSE:
case SerialPacketType::SHUTDOWN_REQUEST:
serializeClient(buffer, static_cast<ClientPacket*>(packet));
break;
case SerialPacketType::REGION_REQUEST:
case SerialPacketType::REGION_CONTENT:
serializeRegion(buffer, static_cast<RegionPacket*>(packet));
break;
case SerialPacketType::CHARACTER_NEW:
case SerialPacketType::CHARACTER_CREATE:
case SerialPacketType::CHARACTER_DELETE:
case SerialPacketType::CHARACTER_UPDATE:
case SerialPacketType::CHARACTER_STATS_REQUEST:
case SerialPacketType::CHARACTER_STATS_RESPONSE:
case SerialPacketType::CHARACTER_LOAD:
case SerialPacketType::CHARACTER_UNLOAD:
case SerialPacketType::QUERY_CHARACTER_EXISTS:
case SerialPacketType::QUERY_CHARACTER_STATS:
case SerialPacketType::QUERY_CHARACTER_LOCATION:
case SerialPacketType::CHARACTER_SET_ROOM:
case SerialPacketType::CHARACTER_SET_ORIGIN:
case SerialPacketType::CHARACTER_SET_MOTION:
serializeCharacter(buffer, static_cast<CharacterPacket*>(packet));
break;
case SerialPacketType::TEXT_BROADCAST:
case SerialPacketType::JOIN_REJECTION:
case SerialPacketType::SHUTDOWN_REJECTION:
case SerialPacketType::CHARACTER_REJECTION:
case SerialPacketType::SHUTDOWN_REJECTION:
serializeText(buffer, static_cast<TextPacket*>(packet));
break;
}
@@ -84,7 +93,7 @@ void deserializePacket(void* buffer, SerialPacketBase* packet) {
SerialPacketType type;
memcpy(&type, buffer, sizeof(SerialPacketType));
switch(type) {
switch(packet->type) {
case SerialPacketType::PING:
case SerialPacketType::PONG:
case SerialPacketType::BROADCAST_REQUEST:
@@ -93,26 +102,35 @@ void deserializePacket(void* buffer, SerialPacketBase* packet) {
break;
case SerialPacketType::JOIN_REQUEST:
case SerialPacketType::JOIN_RESPONSE:
case SerialPacketType::SYNCHRONIZE:
case SerialPacketType::DISCONNECT:
case SerialPacketType::SHUTDOWN:
case SerialPacketType::DISCONNECT_REQUEST:
case SerialPacketType::DISCONNECT_FORCED:
case SerialPacketType::LOGIN_REQUEST:
case SerialPacketType::LOGIN_RESPONSE:
case SerialPacketType::LOGOUT_REQUEST:
case SerialPacketType::LOGOUT_RESPONSE:
case SerialPacketType::SHUTDOWN_REQUEST:
deserializeClient(buffer, static_cast<ClientPacket*>(packet));
break;
case SerialPacketType::REGION_REQUEST:
case SerialPacketType::REGION_CONTENT:
deserializeRegion(buffer, static_cast<RegionPacket*>(packet));
break;
case SerialPacketType::CHARACTER_NEW:
case SerialPacketType::CHARACTER_CREATE:
case SerialPacketType::CHARACTER_DELETE:
case SerialPacketType::CHARACTER_UPDATE:
case SerialPacketType::CHARACTER_STATS_REQUEST:
case SerialPacketType::CHARACTER_STATS_RESPONSE:
case SerialPacketType::CHARACTER_LOAD:
case SerialPacketType::CHARACTER_UNLOAD:
case SerialPacketType::QUERY_CHARACTER_EXISTS:
case SerialPacketType::QUERY_CHARACTER_STATS:
case SerialPacketType::QUERY_CHARACTER_LOCATION:
case SerialPacketType::CHARACTER_SET_ROOM:
case SerialPacketType::CHARACTER_SET_ORIGIN:
case SerialPacketType::CHARACTER_SET_MOTION:
deserializeCharacter(buffer, static_cast<CharacterPacket*>(packet));
break;
case SerialPacketType::TEXT_BROADCAST:
case SerialPacketType::JOIN_REJECTION:
case SerialPacketType::SHUTDOWN_REJECTION:
case SerialPacketType::CHARACTER_REJECTION:
case SerialPacketType::SHUTDOWN_REJECTION:
deserializeText(buffer, static_cast<TextPacket*>(packet));
break;
}