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-05-18 19:22:39 +0000
committerStijn Buys <ingar@osirion.org>2008-05-18 19:22:39 +0000
commit2f4c20a0b6fa0397d623d883ee48ba59563f1e2f (patch)
tree2186c4ada36a9bc832a89c662029d3b12bf1840e /src/core/gameserver.cc
parentcc0a133a616aeff57887b27497e4a978b5697c04 (diff)
standard hail
Diffstat (limited to 'src/core/gameserver.cc')
-rw-r--r--src/core/gameserver.cc38
1 files changed, 36 insertions, 2 deletions
diff --git a/src/core/gameserver.cc b/src/core/gameserver.cc
index 54d667b..85c00ab 100644
--- a/src/core/gameserver.cc
+++ b/src/core/gameserver.cc
@@ -151,7 +151,7 @@ void GameServer::say(Player *player, std::string const &message)
// send to application
application()->notify_message(notification);
- application()->notify_sound("ui/chat.wav");
+ application()->notify_sound("com/chat");
// broadcast to remote clients
if (server_network) {
@@ -165,7 +165,8 @@ void GameServer::say(Player *player, std::string const &message)
void GameServer::broadcast(std::string const & message, Player *ignore_player)
{
// send to application
- application()->notify_message(message);
+ if (ignore_player != game()->localplayer())
+ application()->notify_message(message);
// broadcast to remote clients
if (server_network) {
@@ -176,6 +177,21 @@ void GameServer::broadcast(std::string const & message, Player *ignore_player)
}
}
+void GameServer::broadcast_sound(std::string const & sound, Player *ignore_player)
+{
+ // send to application
+ if (ignore_player != game()->localplayer())
+ application()->notify_sound(sound.c_str());
+
+ // broadcast to remote clients
+ if (server_network) {
+ std::string netmessage("msg snd ");
+ netmessage.append(sound);
+ netmessage += '\n';
+ server_network->broadcast(netmessage, ignore_player);
+ }
+}
+
void GameServer::send(Player *player, std::string message)
{
// send to application
@@ -195,6 +211,24 @@ void GameServer::send(Player *player, std::string message)
}
}
+void GameServer::send_sound(Player *player, std::string sound)
+{
+ if (player->id() == localplayer()->id()) {
+ application()->notify_sound(sound.c_str());
+ }
+
+ // send to remote clients
+ if (server_network) {
+ NetClient *client = server_network->find_client(player);
+ if (client) {
+ std::string netmessage("msg snd ");
+ netmessage.append(sound);
+ netmessage += '\n';
+ server_network->send(client, netmessage);
+ }
+ }
+}
+
void GameServer::exec(Player *player, std::string const & cmdline)
{
std::string command;