Moved the entry structs into their own headers

This commit is contained in:
Kayne Ruse
2013-06-24 10:01:52 +10:00
parent fcb17a8116
commit 9608761cd5
6 changed files with 113 additions and 30 deletions
+3 -5
View File
@@ -23,9 +23,12 @@
#define LOBBY_HPP_ #define LOBBY_HPP_
#include "base_scene.hpp" #include "base_scene.hpp"
#include "utilities.hpp" #include "utilities.hpp"
#include "defines.hpp" #include "defines.hpp"
#include "singleton.hpp" #include "singleton.hpp"
#include "server_entry.hpp"
#include "packet_type.hpp" #include "packet_type.hpp"
#include "network_queue.hpp" #include "network_queue.hpp"
#include "information_manager.hpp" #include "information_manager.hpp"
@@ -39,11 +42,6 @@
#include <vector> #include <vector>
#include <string> #include <string>
struct ServerEntry {
std::string name;
IPaddress address;
};
class Lobby : public BaseScene { class Lobby : public BaseScene {
public: public:
//Public access members //Public access members
+31
View File
@@ -0,0 +1,31 @@
/* Copyright: (c) Kayne Ruse 2013
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
*
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
*
* 3. This notice may not be removed or altered from any source
* distribution.
*/
#ifndef CLIENTENTRY_HPP_
#define CLIENTENTRY_HPP_
struct ClientEntry {
int index;
int channel;
int playerIndex;
};
#endif
+38
View File
@@ -0,0 +1,38 @@
/* Copyright: (c) Kayne Ruse 2013
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
*
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
*
* 3. This notice may not be removed or altered from any source
* distribution.
*/
#ifndef PLAYERENTRY_HPP_
#define PLAYERENTRY_HPP_
#include "vector2.hpp"
#include <string>
struct PlayerEntry {
int index;
int clientIndex;
std::string handle;
std::string avatar;
Vector2 position;
Vector2 motion;
};
#endif
+34
View File
@@ -0,0 +1,34 @@
/* Copyright: (c) Kayne Ruse 2013
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
*
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
*
* 3. This notice may not be removed or altered from any source
* distribution.
*/
#ifndef SERVERENTRY_HPP_
#define SERVERENTRY_HPP_
#include "SDL_net/SDL_net.h"
#include <string>
struct ServerEntry {
std::string name;
IPaddress address;
};
#endif
+2 -4
View File
@@ -115,9 +115,7 @@ void ServerApplication::Quit() {
//------------------------- //-------------------------
void ServerApplication::UpdateWorld(double delta) { void ServerApplication::UpdateWorld(double delta) {
for (auto it : players) { //
it.second.Update(delta);
}
} }
//------------------------- //-------------------------
@@ -186,7 +184,7 @@ void ServerApplication::HandleConnection(JoinRequest& request) {
return; return;
} }
//create the containers //create the containers
ClientData client = { uniqueIndex++ }; ClientEntry client = { uniqueIndex++ };
//bind the address //bind the address
client.channel = netUtil->Bind(&request.meta.address); client.channel = netUtil->Bind(&request.meta.address);
+5 -21
View File
@@ -27,6 +27,9 @@
#include "singleton.hpp" #include "singleton.hpp"
#include "network_queue.hpp" #include "network_queue.hpp"
#include "client_entry.hpp"
#include "player_entry.hpp"
#include "config_Utility.hpp" #include "config_Utility.hpp"
#include "udp_network_utility.hpp" #include "udp_network_utility.hpp"
#include "vector2.hpp" #include "vector2.hpp"
@@ -40,25 +43,6 @@
//lazy //lazy
typedef std::chrono::high_resolution_clock Clock; typedef std::chrono::high_resolution_clock Clock;
struct ClientData {
int index;
int channel;
int playerIndex;
};
struct PlayerData {
int index;
int clientIndex;
std::string handle;
std::string avatar;
Vector2 position;
Vector2 motion;
void Update(double delta) {
position += motion * delta;
}
};
class ServerApplication { class ServerApplication {
public: public:
ServerApplication(); ServerApplication();
@@ -85,8 +69,8 @@ private:
//members //members
Clock::time_point lastTick = Clock::now(); Clock::time_point lastTick = Clock::now();
std::map<int, ClientData> clients; std::map<int, ClientEntry> clients;
std::map<int, PlayerData> players; std::map<int, PlayerEntry> players;
bool running = false; bool running = false;