From 09f97de0e6bc1fb4e81b4859de36e0c26b717a35 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Fri, 22 Nov 2013 19:56:15 +1100 Subject: [PATCH] Added HandlePacket() to the lobby --- client/lobby_menu.cpp | 43 +++++++++++++++++++++++++++++++++++++++++-- client/lobby_menu.hpp | 2 ++ 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/client/lobby_menu.cpp b/client/lobby_menu.cpp index 865a54d..157f651 100644 --- a/client/lobby_menu.cpp +++ b/client/lobby_menu.cpp @@ -21,6 +21,8 @@ */ #include "lobby_menu.hpp" +#include + //------------------------- //Public access members //------------------------- @@ -100,13 +102,13 @@ void LobbyMenu::MouseButtonDown(SDL_MouseButtonEvent const& button) { void LobbyMenu::MouseButtonUp(SDL_MouseButtonEvent const& button) { if (search.MouseButtonUp(button) == Button::State::HOVER) { - //ping the LAN + //broadcast to the network, or a specific server NetworkPacket packet; packet.meta.type = NetworkPacket::Type::BROADCAST_REQUEST; network.Send(config["server.host"].c_str(), config.Int("server.port"), reinterpret_cast(&packet), sizeof(NetworkPacket)); } if (join.MouseButtonUp(button) == Button::State::HOVER) { - //join the selected server + //TODO: join the selected server } if (back.MouseButtonUp(button) == Button::State::HOVER) { SetNextScene(SceneList::MAINMENU); @@ -124,3 +126,40 @@ void LobbyMenu::KeyDown(SDL_KeyboardEvent const& key) { void LobbyMenu::KeyUp(SDL_KeyboardEvent const& key) { // } + +void LobbyMenu::HandlePacket(NetworkPacket packet) { + switch(packet.meta.type) { +// case NetworkPacket::Type::PING: +// //NOT USED +// break; +// case NetworkPacket::Type::PONG: +// //NOT USED +// break; + case NetworkPacket::Type::BROADCAST_REQUEST: + // + break; + case NetworkPacket::Type::BROADCAST_RESPONSE: + // + break; + case NetworkPacket::Type::JOIN_REQUEST: + // + break; + case NetworkPacket::Type::JOIN_RESPONSE: + // + break; + case NetworkPacket::Type::DISCONNECT: + // + break; + case NetworkPacket::Type::SYNCHRONIZE: + // + break; + + //handle errors + case NetworkPacket::Type::NONE: + throw(std::runtime_error("NetworkPacket::Type::NONE encountered")); + break; + default: + throw(std::runtime_error("Unknown NetworkPacket::Type encountered")); + break; + } +} \ No newline at end of file diff --git a/client/lobby_menu.hpp b/client/lobby_menu.hpp index 4134c88..ad93245 100644 --- a/client/lobby_menu.hpp +++ b/client/lobby_menu.hpp @@ -54,6 +54,8 @@ protected: void KeyDown(SDL_KeyboardEvent const&); void KeyUp(SDL_KeyboardEvent const&); + void HandlePacket(NetworkPacket); + //global ConfigUtility& config; UDPNetworkUtility& network;