Change send money to company messages to be broadcasts.

Adjust text formatting depending on whether current client is
the source, destination or neither.
pull/16/head
Jonathan G Rennison 7 years ago
parent 63629852f7
commit 9c74da46b1

@ -2187,6 +2187,8 @@ STR_NETWORK_MESSAGE_CLIENT_LEFT :*** {RAW_STRING
STR_NETWORK_MESSAGE_NAME_CHANGE :*** {RAW_STRING} has changed his/her name to {RAW_STRING}
STR_NETWORK_MESSAGE_GIVE_MONEY :*** {RAW_STRING} gave your company {2:CURRENCY_LONG}
STR_NETWORK_MESSAGE_GAVE_MONEY_AWAY :*** You gave {1:RAW_STRING} {2:CURRENCY_LONG}
STR_NETWORK_MESSAGE_MONEY_GIVEN :*** {RAW_STRING} gave {1:RAW_STRING} {2:CURRENCY_LONG}
STR_NETWORK_MESSAGE_MONEY_GIVE_SRC_DESCRIPTION :{RAW_STRING} ({COMPANY})
STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}The server closed the session
STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}The server is restarting...{}Please wait...

@ -57,10 +57,16 @@ void CcGiveMoney(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2
SetDParam(0, p2);
GetString(msg, STR_COMPANY_NAME, lastof(msg));
/*
* bits 31-16: source company
* bits 15-0: target company
*/
uint64 auxdata = (p2 & 0xFFFF) | (((uint64) _local_company) << 16);
if (!_network_server) {
NetworkClientSendChat(NETWORK_ACTION_GIVE_MONEY, DESTTYPE_TEAM, p2, msg, p1);
NetworkClientSendChat(NETWORK_ACTION_GIVE_MONEY, DESTTYPE_BROADCAST_SS, p2, msg, NetworkTextMessageData(p1, auxdata));
} else {
NetworkServerSendChat(NETWORK_ACTION_GIVE_MONEY, DESTTYPE_TEAM, p2, msg, CLIENT_ID_SERVER, p1);
NetworkServerSendChat(NETWORK_ACTION_GIVE_MONEY, DESTTYPE_BROADCAST_SS, p2, msg, CLIENT_ID_SERVER, NetworkTextMessageData(p1, auxdata));
}
#endif /* ENABLE_NETWORK */
}

@ -232,6 +232,7 @@ bool NetworkCompanyIsPassworded(CompanyID company_id)
* If 'self_send' is true, this is the client who is sending the message */
void NetworkTextMessage(NetworkAction action, TextColour colour, bool self_send, const char *name, const char *str, NetworkTextMessageData data)
{
char message_src[256];
StringID strid;
switch (action) {
case NETWORK_ACTION_SERVER_MESSAGE:
@ -257,7 +258,22 @@ void NetworkTextMessage(NetworkAction action, TextColour colour, bool self_send,
break;
case NETWORK_ACTION_LEAVE: strid = STR_NETWORK_MESSAGE_CLIENT_LEFT; break;
case NETWORK_ACTION_NAME_CHANGE: strid = STR_NETWORK_MESSAGE_NAME_CHANGE; break;
case NETWORK_ACTION_GIVE_MONEY: strid = self_send ? STR_NETWORK_MESSAGE_GAVE_MONEY_AWAY : STR_NETWORK_MESSAGE_GIVE_MONEY; break;
case NETWORK_ACTION_GIVE_MONEY:
SetDParamStr(0, name);
SetDParam(1, data.auxdata >> 16);
GetString(message_src, STR_NETWORK_MESSAGE_MONEY_GIVE_SRC_DESCRIPTION, lastof(message_src));
name = message_src;
if (self_send) {
strid = STR_NETWORK_MESSAGE_GAVE_MONEY_AWAY;
} else if ((CompanyID) (data.auxdata & 0xFFFF) == _local_company) {
strid = STR_NETWORK_MESSAGE_GIVE_MONEY;
} else {
strid = STR_NETWORK_MESSAGE_MONEY_GIVEN;
SetDParam(3, data.auxdata & 0xFFFF);
}
break;
case NETWORK_ACTION_CHAT_COMPANY: strid = self_send ? STR_NETWORK_CHAT_TO_COMPANY : STR_NETWORK_CHAT_COMPANY; break;
case NETWORK_ACTION_CHAT_CLIENT: strid = self_send ? STR_NETWORK_CHAT_TO_CLIENT : STR_NETWORK_CHAT_CLIENT; break;
default: strid = STR_NETWORK_CHAT_ALL; break;

Loading…
Cancel
Save