Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-02-16 14:31:02 +0000
committerStijn Buys <ingar@osirion.org>2008-02-16 14:31:02 +0000
commitd198b7b8d9ff713d891f35ab173d1f428f610e7d (patch)
tree6a1f76ee5788ee3dfac858e2c8233207637c01bc /src/core/gameinterface.cc
parentd6ee7ec642cc6b3097c8d321a1a00630e24027d1 (diff)
code cleanup
Diffstat (limited to 'src/core/gameinterface.cc')
-rw-r--r--src/core/gameinterface.cc55
1 files changed, 51 insertions, 4 deletions
diff --git a/src/core/gameinterface.cc b/src/core/gameinterface.cc
index a4a402d..d07f804 100644
--- a/src/core/gameinterface.cc
+++ b/src/core/gameinterface.cc
@@ -9,22 +9,29 @@
class GameInterface;
+#include "core/application.h"
#include "core/gameinterface.h"
#include "core/player.h"
+#include "sys/sys.h"
namespace core
{
+GameInterface *game()
+{
+ return GameInterface::instance();
+}
+
GameInterface *GameInterface::gameinterface_instance = 0;
-GameInterface::GameInterface(const char *game_name)
+GameInterface::GameInterface(const char *gamename)
{
gameinterface_instance = this;
connected = false;
- if (game_name)
- name.assign(game_name);
+ if (gamename)
+ game_name.assign(gamename);
else
- name.clear();
+ game_name.clear();
}
GameInterface::~GameInterface()
@@ -37,4 +44,44 @@ GameInterface *GameInterface::instance()
return gameinterface_instance;
}
+std::string const &GameInterface::name()
+{
+ return game_name;
+}
+
+void message_broadcast(std::string const & message, int ignoreplayer)
+{
+ // send to console
+ con_print << message << std::endl;
+
+ // broadcast to remote clients
+ if (application()->netserver) {
+ std::string netmessage("msg info ");
+ netmessage.append(message);
+ netmessage += '\n';
+
+ application()->netserver->broadcast(netmessage, ignoreplayer);
+ }
+}
+
+void message_send(Player const &player, const char *protohdr, std::string message)
+{
+ // send to console
+ if (&player == &localplayer) {
+ con_print << message << std::endl;
+ }
+
+ // send to remote clients
+ if (application()->netserver) {
+ NetClient *client = application()->netserver->find_client(player);
+ if (client) {
+ std::string netmessage("msg info ");
+ netmessage.append(message);
+ netmessage += '\n';
+
+ application()->netserver->send(client, message);
+ }
+ }
+}
+
} // namespace core