From 01461deaa557ee4f7772873f5dba780906e9e316 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Wed, 26 Nov 2014 07:11:27 +1100 Subject: [PATCH] Set the values for packets, and added getRoom() --- common/network/serial_packet_type.hpp | 64 +++++++++++++-------------- server/rooms/room_manager_api.cpp | 17 ++++++- 2 files changed, 48 insertions(+), 33 deletions(-) diff --git a/common/network/serial_packet_type.hpp b/common/network/serial_packet_type.hpp index 7b50b93..be1b1d3 100644 --- a/common/network/serial_packet_type.hpp +++ b/common/network/serial_packet_type.hpp @@ -38,12 +38,12 @@ enum class SerialPacketType { //------------------------- //heartbeat - PING, - PONG, + PING = 1, + PONG = 2, //Used for finding available servers - BROADCAST_REQUEST, - BROADCAST_RESPONSE, + BROADCAST_REQUEST = 3, + BROADCAST_RESPONSE = 4, //------------------------- //ClientPacket @@ -51,24 +51,24 @@ enum class SerialPacketType { //------------------------- //Connecting to a server as a client - JOIN_REQUEST, - JOIN_RESPONSE, + JOIN_REQUEST = 5, + JOIN_RESPONSE = 6, //disconnect from the server - DISCONNECT_REQUEST, - DISCONNECT_RESPONSE, - DISCONNECT_FORCED, + DISCONNECT_REQUEST = 7, + DISCONNECT_RESPONSE = 8, + DISCONNECT_FORCED = 9, //load the account - LOGIN_REQUEST, - LOGIN_RESPONSE, + LOGIN_REQUEST = 10, + LOGIN_RESPONSE = 11, //unload the account - LOGOUT_REQUEST, - LOGOUT_RESPONSE, + LOGOUT_REQUEST = 12, + LOGOUT_RESPONSE = 13, //shut down the server - SHUTDOWN_REQUEST, + SHUTDOWN_REQUEST = 14, //------------------------- //RegionPacket @@ -76,8 +76,8 @@ enum class SerialPacketType { //------------------------- //map data - REGION_REQUEST, //NOTE: technically a query - REGION_CONTENT, + REGION_REQUEST = 15, //NOTE: technically a query + REGION_CONTENT = 16, //------------------------- //CharacterPacket @@ -89,20 +89,20 @@ enum class SerialPacketType { //------------------------- //character management - CHARACTER_CREATE, - CHARACTER_DELETE, - CHARACTER_LOAD, - CHARACTER_UNLOAD, + CHARACTER_CREATE = 17, + CHARACTER_DELETE = 18, + CHARACTER_LOAD = 19, + CHARACTER_UNLOAD = 20, //find out info from the server - QUERY_CHARACTER_EXISTS, - QUERY_CHARACTER_STATS, - QUERY_CHARACTER_LOCATION, + QUERY_CHARACTER_EXISTS = 21, + QUERY_CHARACTER_STATS = 22, + QUERY_CHARACTER_LOCATION = 23, //set the info in the server - CHARACTER_SET_ROOM, - CHARACTER_SET_ORIGIN, - CHARACTER_SET_MOTION, + CHARACTER_SET_ROOM = 24, + CHARACTER_SET_ORIGIN = 25, + CHARACTER_SET_MOTION = 26, //TODO: enemy management @@ -112,19 +112,19 @@ enum class SerialPacketType { //------------------------- //general speech - TEXT_BROADCAST, + TEXT_BROADCAST = 27, //rejection/error messages - JOIN_REJECTION, - LOGIN_REJECTION, - CHARACTER_REJECTION, - SHUTDOWN_REJECTION, + JOIN_REJECTION = 28, + LOGIN_REJECTION = 29, + CHARACTER_REJECTION = 30, + SHUTDOWN_REJECTION = 31, //------------------------- //not used //------------------------- - LAST + LAST = 32 }; #endif \ No newline at end of file diff --git a/server/rooms/room_manager_api.cpp b/server/rooms/room_manager_api.cpp index 091f794..2494605 100644 --- a/server/rooms/room_manager_api.cpp +++ b/server/rooms/room_manager_api.cpp @@ -44,11 +44,26 @@ int unloadRoom(lua_State* L) { return 0; } -//TODO: lua API RoomManager.GetRoom(uid) +int getRoom(lua_State* L) { + //TODO: integer vs name for getRoom() + RoomManager& roomMgr = RoomManager::GetSingleton(); + + RoomData* room = roomMgr.Get(lua_tointeger(L, 1)); + + if (room) { + lua_pushlightuserdata(L, static_cast(room)); + } + else { + lua_pushnil(L); + } + + return 1; +} static const luaL_Reg roomManagerLib[] = { {"CreateRoom", createRoom}, {"UnloadRoom", unloadRoom}, + {"GetRoom", getRoom}, {nullptr, nullptr} };