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 "lobby_menu.hpp"
#include <stdexcept>
//------------------------- //-------------------------
//Public access members //Public access members
//------------------------- //-------------------------
@@ -100,13 +102,13 @@ void LobbyMenu::MouseButtonDown(SDL_MouseButtonEvent const& button) {
void LobbyMenu::MouseButtonUp(SDL_MouseButtonEvent const& button) { void LobbyMenu::MouseButtonUp(SDL_MouseButtonEvent const& button) {
if (search.MouseButtonUp(button) == Button::State::HOVER) { if (search.MouseButtonUp(button) == Button::State::HOVER) {
//ping the LAN //broadcast to the network, or a specific server
NetworkPacket packet; NetworkPacket packet;
packet.meta.type = NetworkPacket::Type::BROADCAST_REQUEST; packet.meta.type = NetworkPacket::Type::BROADCAST_REQUEST;
network.Send(config["server.host"].c_str(), config.Int("server.port"), reinterpret_cast<void*>(&packet), sizeof(NetworkPacket)); network.Send(config["server.host"].c_str(), config.Int("server.port"), reinterpret_cast<void*>(&packet), sizeof(NetworkPacket));
} }
if (join.MouseButtonUp(button) == Button::State::HOVER) { if (join.MouseButtonUp(button) == Button::State::HOVER) {
//join the selected server //TODO: join the selected server
} }
if (back.MouseButtonUp(button) == Button::State::HOVER) { if (back.MouseButtonUp(button) == Button::State::HOVER) {
SetNextScene(SceneList::MAINMENU); SetNextScene(SceneList::MAINMENU);
@@ -124,3 +126,40 @@ void LobbyMenu::KeyDown(SDL_KeyboardEvent const& key) {
void LobbyMenu::KeyUp(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 KeyDown(SDL_KeyboardEvent const&);
void KeyUp(SDL_KeyboardEvent const&); void KeyUp(SDL_KeyboardEvent const&);
void HandlePacket(NetworkPacket);
//global //global
ConfigUtility& config; ConfigUtility& config;
UDPNetworkUtility& network; UDPNetworkUtility& network;