Change send money to company messages to be broadcasts.
Adjust text formatting depending on whether current client is the source, destination or neither.
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user