mirror of https://github.com/OpenTTD/OpenTTD
(svn r6933) -Feature: Allow spectators to speak to eachother (team)
parent
929cfa6687
commit
2b8530507d
|
@ -1445,6 +1445,7 @@ STR_NETWORK_SERVER_REBOOT :{WHITE} The ser
|
|||
|
||||
STR_NETWORK_SERVER :Server
|
||||
STR_NETWORK_CLIENT :Client
|
||||
STR_NETWORK_SPECTATORS :Spectators
|
||||
|
||||
STR_NETWORK_CLIENTLIST_NONE :(none)
|
||||
STR_NETWORK_CLIENTLIST_KICK :Kick
|
||||
|
|
|
@ -623,14 +623,17 @@ DEF_CLIENT_RECEIVE_COMMAND(PACKET_SERVER_CHAT)
|
|||
snprintf(name, sizeof(name), "%s", ci_to->client_name);
|
||||
ci = NetworkFindClientInfoFromIndex(_network_own_client_index);
|
||||
break;
|
||||
case NETWORK_ACTION_CHAT_COMPANY:
|
||||
case NETWORK_ACTION_GIVE_MONEY:
|
||||
/* For speaking to player or give money, we need the player-name */
|
||||
if (!IsValidPlayer(ci_to->client_playas)) return NETWORK_RECV_STATUS_OKAY; // This should never happen
|
||||
|
||||
GetString(name, GetPlayer(ci_to->client_playas)->name_1, lastof(name));
|
||||
/* For speaking to company or giving money, we need the player-name */
|
||||
case NETWORK_ACTION_GIVE_MONEY:
|
||||
if (!IsValidPlayer(ci_to->client_playas)) return NETWORK_RECV_STATUS_OKAY;
|
||||
/* fallthrough */
|
||||
case NETWORK_ACTION_CHAT_COMPANY: {
|
||||
StringID str = IsValidPlayer(ci_to->client_playas) ? GetPlayer(ci_to->client_playas)->name_1 : STR_NETWORK_SPECTATORS;
|
||||
|
||||
GetString(name, str, lastof(name));
|
||||
ci = NetworkFindClientInfoFromIndex(_network_own_client_index);
|
||||
break;
|
||||
} break;
|
||||
default:
|
||||
/* This should never happen */
|
||||
NOT_REACHED();
|
||||
|
|
|
@ -1185,7 +1185,7 @@ static Window *PopupClientList(Window *w, int client_no, int x, int y)
|
|||
_clientlist_proc[i++] = &ClientList_SpeakToClient;
|
||||
}
|
||||
|
||||
if (IsValidPlayer(ci->client_playas)) {
|
||||
if (IsValidPlayer(ci->client_playas) || ci->client_playas == PLAYER_SPECTATOR) {
|
||||
GetString(_clientlist_action[i], STR_NETWORK_CLIENTLIST_SPEAK_TO_COMPANY, lastof(_clientlist_action[i]));
|
||||
_clientlist_proc[i++] = &ClientList_SpeakToCompany;
|
||||
}
|
||||
|
|
|
@ -1044,7 +1044,8 @@ void NetworkServer_HandleChat(NetworkAction action, DestType desttype, int dest,
|
|||
if (ci != NULL && show_local) {
|
||||
if (from_index == NETWORK_SERVER_INDEX) {
|
||||
char name[NETWORK_NAME_LENGTH];
|
||||
GetString(name, GetPlayer(ci_to->client_playas)->name_1, lastof(name));
|
||||
StringID str = IsValidPlayer(ci_to->client_playas) ? GetPlayer(ci_to->client_playas)->name_1 : STR_NETWORK_SPECTATORS;
|
||||
GetString(name, str, lastof(name));
|
||||
NetworkTextMessage(action, GetDrawStringPlayerColor(ci_own->client_playas), true, name, "%s", msg);
|
||||
} else {
|
||||
FOR_ALL_CLIENTS(cs) {
|
||||
|
|
Loading…
Reference in New Issue