diff options
author | Stijn Buys <ingar@osirion.org> | 2008-05-18 19:22:39 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-05-18 19:22:39 +0000 |
commit | 2f4c20a0b6fa0397d623d883ee48ba59563f1e2f (patch) | |
tree | 2186c4ada36a9bc832a89c662029d3b12bf1840e /src/core/gameserver.cc | |
parent | cc0a133a616aeff57887b27497e4a978b5697c04 (diff) |
standard hail
Diffstat (limited to 'src/core/gameserver.cc')
-rw-r--r-- | src/core/gameserver.cc | 38 |
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; |