From 44f5691babb9a70d8e8775d83ab86cfa84a68fdf Mon Sep 17 00:00:00 2001 From: hikerstk Date: Sun, 7 Sep 2008 13:38:46 +0000 Subject: [PATCH] Moved network related code into network subdir. git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/trunk/supertuxkart@2226 178a84e3-b1eb-0310-8ba1-8eac791a3b58 --- src/Makefile.am | 3 +- src/game_manager.cpp | 2 +- src/gui/char_sel.cpp | 2 +- src/gui/main_menu.cpp | 2 +- src/gui/num_players.cpp | 2 +- src/gui/race_options.cpp | 2 +- src/gui/start_race_feedback.cpp | 2 +- src/{ => network}/network_manager.cpp | 4 +-- src/{ => network}/network_manager.hpp | 33 +++++++------------- src/network/remote_kart_info.hpp | 43 +++++++++++++++++++++++++++ src/race_manager.cpp | 11 +++---- src/race_manager.hpp | 8 ++--- 12 files changed, 72 insertions(+), 42 deletions(-) rename src/{ => network}/network_manager.cpp (98%) rename src/{ => network}/network_manager.hpp (76%) create mode 100644 src/network/remote_kart_info.hpp diff --git a/src/Makefile.am b/src/Makefile.am index 90d556fe5..6ff7d7a37 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -30,7 +30,8 @@ supertuxkart_SOURCES = main.cpp \ coord.hpp \ actionmap.cpp actionmap.hpp \ material.cpp material.hpp \ - network_manager.cpp network_manager.hpp \ + network/network_manager.cpp network/network_manager.hpp \ + network/remote_kart_info.hpp \ material_manager.cpp material_manager.hpp \ grand_prix_manager.cpp grand_prix_manager.hpp \ attachment.cpp attachment.hpp \ diff --git a/src/game_manager.cpp b/src/game_manager.cpp index 99d9766c4..8188e1d5b 100644 --- a/src/game_manager.cpp +++ b/src/game_manager.cpp @@ -40,7 +40,7 @@ #include "user_config.hpp" #include "scene.hpp" #include "history.hpp" -#include "network_manager.hpp" +#include "network/network_manager.hpp" GameManager* game_manager = 0; diff --git a/src/gui/char_sel.cpp b/src/gui/char_sel.cpp index b74516076..d454bd73e 100644 --- a/src/gui/char_sel.cpp +++ b/src/gui/char_sel.cpp @@ -31,7 +31,7 @@ #include "material.hpp" #include "unlock_manager.hpp" #include "translation.hpp" -#include "network_manager.hpp" +#include "network/network_manager.hpp" #if defined(WIN32) && !defined(__CYGWIN__) # define snprintf _snprintf diff --git a/src/gui/main_menu.cpp b/src/gui/main_menu.cpp index 741818c47..1f4783aa9 100644 --- a/src/gui/main_menu.cpp +++ b/src/gui/main_menu.cpp @@ -26,7 +26,7 @@ #include "translation.hpp" #include "user_config.hpp" #include "unlock_manager.hpp" -#include "network_manager.hpp" +#include "network/network_manager.hpp" enum WidgetTokens { diff --git a/src/gui/num_players.cpp b/src/gui/num_players.cpp index b38d5f559..c794dd048 100644 --- a/src/gui/num_players.cpp +++ b/src/gui/num_players.cpp @@ -22,7 +22,7 @@ #include "widget_manager.hpp" #include "menu_manager.hpp" #include "translation.hpp" -#include "network_manager.hpp" +#include "network/network_manager.hpp" enum WidgetTokens { diff --git a/src/gui/race_options.cpp b/src/gui/race_options.cpp index 25a017e82..37b0417ad 100644 --- a/src/gui/race_options.cpp +++ b/src/gui/race_options.cpp @@ -23,7 +23,7 @@ #include "material_manager.hpp" #include "unlock_manager.hpp" #include "translation.hpp" -#include "network_manager.hpp" +#include "network/network_manager.hpp" #if defined(WIN32) && !defined(__CYGWIN__) # define snprintf _snprintf diff --git a/src/gui/start_race_feedback.cpp b/src/gui/start_race_feedback.cpp index b1c2477f0..ade964d08 100644 --- a/src/gui/start_race_feedback.cpp +++ b/src/gui/start_race_feedback.cpp @@ -21,7 +21,7 @@ #include "widget_manager.hpp" #include "race_manager.hpp" #include "translation.hpp" -#include "network_manager.hpp" +#include "network/network_manager.hpp" enum WidgetTokens { diff --git a/src/network_manager.cpp b/src/network/network_manager.cpp similarity index 98% rename from src/network_manager.cpp rename to src/network/network_manager.cpp index 7644a2460..e9be99858 100644 --- a/src/network_manager.cpp +++ b/src/network/network_manager.cpp @@ -39,8 +39,8 @@ NetworkManager::NetworkManager() exit(-1); } // FIXME: debugging - m_kart_info.push_back(KartInfo("tuxkart","xx", 1)); - m_kart_info.push_back(KartInfo("yeti", "yy", 1)); + m_kart_info.push_back(RemoteKartInfo("tuxkart","xx", 1)); + m_kart_info.push_back(RemoteKartInfo("yeti", "yy", 1)); #endif } // NetworkManager diff --git a/src/network_manager.hpp b/src/network/network_manager.hpp similarity index 76% rename from src/network_manager.hpp rename to src/network/network_manager.hpp index e074716a8..0c0a83dd8 100644 --- a/src/network_manager.hpp +++ b/src/network/network_manager.hpp @@ -23,6 +23,8 @@ #include #include +#include "network/remote_kart_info.hpp" + #ifdef HAVE_ENET # include "enet/enet.h" #endif @@ -37,28 +39,15 @@ public: enum NetworkState {NS_SYNCHRONISING, NS_RACING}; private: - // A simple struct to store information - class KartInfo - { - public: - std::string m_kart_name; - std::string m_user_name; - int m_client_id; - int m_player_id; - KartInfo(std::string kart_name, std::string user_name, int id) - : m_kart_name(kart_name), m_user_name(user_name), m_client_id(id) - {}; - }; // KartInfo - - NetworkMode m_mode; - NetworkState m_state; - int m_port; - std::string m_server_address; - int m_num_clients; - std::vector m_kart_info; - int m_host_id; + NetworkMode m_mode; + NetworkState m_state; + int m_port; + std::string m_server_address; + int m_num_clients; + std::vector m_kart_info; + int m_host_id; #ifdef HAVE_ENET - ENetHost *m_host; + ENetHost *m_host; #endif bool initServer(); @@ -74,7 +63,7 @@ public: NetworkMode getMode() const {return m_mode; } void setState(NetworkState s) {m_state = s; } NetworkState getState() const {return m_state; } - int getHostId() const {return m_host_id; } + int getClientId() const {return m_host_id; } int getNumClients() const {return m_num_clients;} void setPort(int p) {m_port=p; } void setServerIP(const std::string &s) {m_server_address=s; } diff --git a/src/network/remote_kart_info.hpp b/src/network/remote_kart_info.hpp new file mode 100644 index 000000000..e1507e79e --- /dev/null +++ b/src/network/remote_kart_info.hpp @@ -0,0 +1,43 @@ +// $Id: remote_kart_information.hpp 2190 2008-07-29 05:38:30Z hikerstk $ +// +// SuperTuxKart - a fun racing game with go-kart +// Copyright (C) 2008 Joerg Henrichs +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 3 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +#ifndef HEADER_REMOTE_KART_INFO_H +#define HEADER_REMOTE_KART_INFO_H + +#include + +class RemoteKartInfo +{ + std::string m_kart_name; + std::string m_user_name; + int m_client_id; + int m_player_id; + +public: + RemoteKartInfo(std::string kart_name, std::string user_name, int id) + : m_kart_name(kart_name), m_user_name(user_name), m_client_id(id) + {}; + RemoteKartInfo() {m_kart_name=""; m_user_name=""; m_client_id=-1; m_player_id=-1;} + void setKartName(const std::string& n) { m_kart_name = n; } + void setUserName(const std::string& u) { m_user_name = u; } + void setHostId(int id) { m_client_id = id; } + void setPlayerId(int id) { m_player_id = id; } +}; // RemoteKartInfo + +#endif diff --git a/src/race_manager.cpp b/src/race_manager.cpp index 35a7d02c8..8b40f929f 100644 --- a/src/race_manager.cpp +++ b/src/race_manager.cpp @@ -29,7 +29,7 @@ #include "scene.hpp" #include "user_config.hpp" #include "stk_config.hpp" - +#include "network_manager.hpp" RaceManager* race_manager= NULL; @@ -67,8 +67,9 @@ void RaceManager::setLocalPlayerKart(unsigned int player, const std::string& kar { if (player >= getNumLocalPlayers()) setNumLocalPlayers(player+1); - m_local_player_karts[player] = kart; - + m_local_player_karts[player].setPlayerId(player); + m_local_player_karts[player].setKartName(kart); + m_local_player_karts[player].setHostId(network_manager->getHostId()); } else { @@ -82,18 +83,14 @@ void RaceManager::setPlayerKart(unsigned int player, const std::string& kart, if (player >= getNumPlayers()) setNumPlayers(player+1); m_player_karts[player] = kart; - m_player_names[player] = player_name; } // setPlayerKart //----------------------------------------------------------------------------- void RaceManager::setNumPlayers(int num) { m_player_karts.resize(num); - m_player_names.resize(num); for(PlayerKarts::iterator i = m_player_karts.begin(); i != m_player_karts.end(); ++i) if (i->empty()) *i = "tuxkart"; - for(PlayerKarts::iterator i = m_player_names.begin(); i != m_player_names.end(); ++i) - if (i->empty()) *i = "guest"; } // setNumPlayers diff --git a/src/race_manager.hpp b/src/race_manager.hpp index f6685dc21..3cb9cb9a1 100644 --- a/src/race_manager.hpp +++ b/src/race_manager.hpp @@ -25,6 +25,7 @@ #include #include "grand_prix_data.hpp" +#include "network/remote_kart_info.hpp" /** The race manager has two functions: 1) it stores information about the race the user selected (e.g. number @@ -78,8 +79,7 @@ private: RaceModeType m_major_mode, m_minor_mode; typedef std::vector PlayerKarts; PlayerKarts m_player_karts; - PlayerKarts m_local_player_karts; - std::vector m_player_names; + std::vector m_local_player_karts; std::vector m_tracks; std::vector m_host_ids; std::vector m_num_laps; @@ -109,8 +109,8 @@ public: void setPlayerKart(unsigned int player, const std::string& kart, const std::string& player_name, int hostid); void setLocalPlayerKart(unsigned int player, const std::string& kart); - const std::string& - getLocalPlayerKart(unsigned int p) const {return m_local_player_karts[p];} + const RemoteKartInfo& + getLocalPlayerKart(unsigned int p) const {return m_local_player_karts[p]; } void reset(); void RaceFinished(const Kart* kart, float time); void setTrack(const std::string& track);