Added HandlePacket() to the lobby

This commit is contained in:
Kayne Ruse
2013-11-22 19:56:15 +11:00
parent f5466b9982
commit 09f97de0e6
2 changed files with 43 additions and 2 deletions
+41 -2
View File
@@ -21,6 +21,8 @@
*/
#include "lobby_menu.hpp"
#include <stdexcept>
//-------------------------
//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<void*>(&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;
}
}
+2
View File
@@ -54,6 +54,8 @@ protected:
void KeyDown(SDL_KeyboardEvent const&);
void KeyUp(SDL_KeyboardEvent const&);
void HandlePacket(NetworkPacket);
//global
ConfigUtility& config;
UDPNetworkUtility& network;