From 7daaf66869b7b9f85f71b1aa5e9a1b4c40710f33 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Mon, 18 Feb 2008 20:08:37 +0000 Subject: removed second localplayer --- src/client/camera.cc | 14 +++++++------- src/client/input.cc | 10 +++++----- src/core/commandbuffer.cc | 2 +- src/core/gameinterface.cc | 6 ++++-- src/core/gameinterface.h | 5 +++-- src/core/gameserver.h | 2 +- src/core/netconnection.cc | 3 ++- src/core/player.cc | 16 ++++++++++------ src/core/player.h | 7 +++---- 9 files changed, 36 insertions(+), 29 deletions(-) diff --git a/src/client/camera.cc b/src/client/camera.cc index 03a4e1b..dcf4acf 100644 --- a/src/client/camera.cc +++ b/src/client/camera.cc @@ -5,7 +5,7 @@ */ #include "math/mathlib.h" -#include "core/player.h" +#include "core/core.h" #include "client/client.h" #include "client/camera.h" #include "render/render.h" @@ -82,7 +82,7 @@ void set_mode(Mode newmode) { case Track: // switch camera to Track mode mode = Track; - yaw_target = core::Player::local.control->direction(); + yaw_target = core::game()->localplayer()->control->direction(); yaw_current = yaw_target; pitch_target = pitch_track; pitch_current = pitch_target; @@ -91,7 +91,7 @@ void set_mode(Mode newmode) { case Free: // switch camera to Free mode mode = Free; - yaw_target = core::Player::local.control->direction(); + yaw_target = core::game()->localplayer()->control->direction(); yaw_current = yaw_target; pitch_target = pitch_track; pitch_current = pitch_target; @@ -112,7 +112,7 @@ void set_mode(Mode newmode) { void next_mode() { - if (!core::Player::local.control) { + if (!core::game()->localplayer()->control) { set_mode(Overview); return; } @@ -133,7 +133,7 @@ void next_mode() void draw(float elapsed) { - if (!core::Player::local.control) { + if (!core::game()->localplayer()->control) { // switch the camera to Overview of the player is not controling anything if (mode != Overview) { set_mode(Overview); @@ -142,11 +142,11 @@ void draw(float elapsed) if (mode == Overview) set_mode(Track); - camera::target = core::Player::local.control->location(); + camera::target = core::game()->localplayer()->control->location(); } if (mode == Track) { - yaw_target = core::Player::local.control->direction(); + yaw_target = core::game()->localplayer()->control->direction(); } if ((mode == Free) || (mode == Track)) { diff --git a/src/client/input.cc b/src/client/input.cc index 9053725..e8dacd6 100644 --- a/src/client/input.cc +++ b/src/client/input.cc @@ -101,7 +101,7 @@ void frame(float seconds) switch (event.type) { case SDL_KEYUP: - if (!console::visible() && core::application()->connected() && core::Player::local.control) + if (!console::visible() && core::application()->connected() && core::game()->localplayer()->control) // send key events to the game world keyreleased(event.key.keysym); break; @@ -111,7 +111,7 @@ void frame(float seconds) } else if (console::visible()) { // send key events to the console console::keypressed(event.key.keysym); - } else if (core::application()->connected() && core::Player::local.control) { + } else if (core::application()->connected() && core::game()->localplayer()->control) { // send key events to the game world keypressed(event.key.keysym); } @@ -123,9 +123,9 @@ void frame(float seconds) } - if (!console::visible() && core::application()->connected() && core::Player::local.control) { - core::Player::local.control->set_thrust(local_thrust); - core::Player::local.control->set_direction(math::degrees360f(core::Player::local.control->direction() + local_turn_offset)); + if (!console::visible() && core::application()->connected() && core::game()->localplayer()->control) { + core::game()->localplayer()->control->set_thrust(local_thrust); + core::game()->localplayer()->control->set_direction(math::degrees360f(core::game()->localplayer()->control->direction() + local_turn_offset)); } } diff --git a/src/core/commandbuffer.cc b/src/core/commandbuffer.cc index 5ab40e5..729c1db 100644 --- a/src/core/commandbuffer.cc +++ b/src/core/commandbuffer.cc @@ -76,7 +76,7 @@ void CommandBuffer::exec(std::string const &cmdline) } if ((f->flags() & Func::Game)) { if (application()->connected()) { - f->exec(&Player::local, args); + f->exec(game()->localplayer(), args); } } else { f->exec(args); diff --git a/src/core/gameinterface.cc b/src/core/gameinterface.cc index 908ffca..33166ee 100644 --- a/src/core/gameinterface.cc +++ b/src/core/gameinterface.cc @@ -17,12 +17,14 @@ namespace core { +Player GameInterface::game_localplayer; + GameInterface::GameInterface() { if (Cvar::sv_dedicated->value()) - local_player.player_name.assign("Console"); + game_localplayer.player_name.assign("Console"); else - local_player.player_name.assign("Player0"); + game_localplayer.player_name.assign("Player0"); clear(); } diff --git a/src/core/gameinterface.h b/src/core/gameinterface.h index 5e1f9be..0a7bdbe 100644 --- a/src/core/gameinterface.h +++ b/src/core/gameinterface.h @@ -25,7 +25,7 @@ public: /*----- inspectors ---------------------------------------------- */ /// return the local player - inline Player *localplayer() { return &local_player; } + inline Player *localplayer() { return &game_localplayer; } /*----- virtual inspectors --------------------------------------- */ @@ -44,7 +44,8 @@ public: virtual void frame(float seconds) = 0; protected: - Player local_player; + /// the local player + static Player game_localplayer; }; } diff --git a/src/core/gameserver.h b/src/core/gameserver.h index ba64f2e..32a37c3 100644 --- a/src/core/gameserver.h +++ b/src/core/gameserver.h @@ -54,7 +54,7 @@ public: /*----- static ---------------------------------------------------- */ - /// retuen the current game server + /// return the current game server static inline GameServer *instance() { return server_instance; } protected: diff --git a/src/core/netconnection.cc b/src/core/netconnection.cc index 60b4ff8..63c906a 100644 --- a/src/core/netconnection.cc +++ b/src/core/netconnection.cc @@ -8,6 +8,7 @@ #include "sys/sys.h" #include "net/net.h" +#include "core/application.h" #include "core/netconnection.h" #include "core/player.h" @@ -31,7 +32,7 @@ void NetConnection::connect(std::string const &to_host, int to_port) } std::ostringstream osstream; - osstream << "name " << Player::local.name() << std::endl; + osstream << "name " << game()->localplayer()->name() << std::endl; send(osstream.str()); } diff --git a/src/core/player.cc b/src/core/player.cc index b54bf9e..8fc4ebf 100644 --- a/src/core/player.cc +++ b/src/core/player.cc @@ -9,18 +9,22 @@ namespace core { -Player Player::local; - Player::Player() { - player_id = 0; - player_name.clear(); - dirty = false; - control = 0; + clear(); } Player::~Player() { + clear(); +} + +void Player::clear() +{ + player_id = 0; + player_name.clear(); + dirty = false; + control = 0; } } diff --git a/src/core/player.h b/src/core/player.h index 490515d..11711b5 100644 --- a/src/core/player.h +++ b/src/core/player.h @@ -25,6 +25,9 @@ class Player public: Player(); ~Player(); + + /// clear all the data + void clear(); /// name of the player inline std::string const &name() const { return player_name; } @@ -38,15 +41,11 @@ public: /// name of the player std::string player_name; - /// dirty state bool dirty; /// the entity the Player is currently controling EntityControlable *control; - - /// the local player - static Player local; }; } -- cgit v1.2.3