summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lang/english.txt1
-rw-r--r--main_gui.c19
-rw-r--r--settings.c1
-rw-r--r--settings_gui.c1
-rw-r--r--variables.h1
5 files changed, 7 insertions, 16 deletions
diff --git a/lang/english.txt b/lang/english.txt
index 13911dec4..f6113e811 100644
--- a/lang/english.txt
+++ b/lang/english.txt
@@ -1070,6 +1070,7 @@ STR_CONFIG_PATCHES_LIVERIES :{LTBLUE}Show co
STR_CONFIG_PATCHES_LIVERIES_NONE :None
STR_CONFIG_PATCHES_LIVERIES_OWN :Own company
STR_CONFIG_PATCHES_LIVERIES_ALL :All companies
+STR_CONFIG_PATCHES_CHAT_TARGET :{LTBLUE}Prefer Team chat with <ENTER>: {ORANGE}{STRING1}
STR_CONFIG_PATCHES_MAX_TRAINS :{LTBLUE}Max trains per player: {ORANGE}{STRING1}
STR_CONFIG_PATCHES_MAX_ROADVEH :{LTBLUE}Max road vehicles per player: {ORANGE}{STRING1}
diff --git a/main_gui.c b/main_gui.c
index ebcd4d03b..96d91cd5e 100644
--- a/main_gui.c
+++ b/main_gui.c
@@ -2298,23 +2298,10 @@ static void MainWindowWndProc(Window *w, WindowEvent *e)
break;
#ifdef ENABLE_NETWORK
- case WKC_RETURN: case 'T': // smart chat; send to team if any, otherwise to all
+ case WKC_RETURN: case 'T': // send to all players or to your team depending on setting
if (_networking) {
- const NetworkClientInfo *cio = NetworkFindClientInfoFromIndex(_network_own_client_index);
- bool has_team = false;
-
- /* Only players actually playing can speak to team. Eg spectators cannot */
- if (IsValidPlayer(cio->client_playas)) {
- const NetworkClientInfo *ci;
- FOR_ALL_ACTIVE_CLIENT_INFOS(ci) {
- if (ci->client_playas == cio->client_playas && ci != cio) {
- has_team = true;
- break;
- }
- }
- }
-
- ShowNetworkChatQueryWindow(has_team ? DESTTYPE_TEAM : DESTTYPE_BROADCAST, cio->client_playas);
+ const NetworkClientInfo *ci = NetworkFindClientInfoFromIndex(_network_own_client_index);
+ ShowNetworkChatQueryWindow(_patches.chat_target ? DESTTYPE_TEAM : DESTTYPE_BROADCAST, ci->client_playas);
break;
}
break;
diff --git a/settings.c b/settings.c
index d2473f107..0f33044f9 100644
--- a/settings.c
+++ b/settings.c
@@ -1266,6 +1266,7 @@ const SettingDesc _patch_settings[] = {
SDT_VAR(Patches, map_y, SLE_UINT8, S, 0, 8, 6, 11, 0, STR_CONFIG_PATCHES_MAP_Y, NULL),
SDT_BOOL(Patches, link_terraform_toolbar, S, 0, false, STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR,NULL),
SDT_VAR(Patches, liveries, SLE_UINT8, S,MS, 2, 0, 2, 0, STR_CONFIG_PATCHES_LIVERIES, RedrawScreen),
+ SDT_BOOL(Patches, chat_target, S, 0, false, STR_CONFIG_PATCHES_CHAT_TARGET, NULL),
/***************************************************************************/
/* Construction section of the GUI-configure patches window */
diff --git a/settings_gui.c b/settings_gui.c
index 093a18226..6ffe6153d 100644
--- a/settings_gui.c
+++ b/settings_gui.c
@@ -572,6 +572,7 @@ static const char *_patches_ui[] = {
"population_in_label",
"link_terraform_toolbar",
"liveries",
+ "chat_target",
};
static const char *_patches_construction[] = {
diff --git a/variables.h b/variables.h
index 523703045..af4d26636 100644
--- a/variables.h
+++ b/variables.h
@@ -127,6 +127,7 @@ typedef struct Patches {
bool reverse_scroll; // Right-Click-Scrolling scrolls in the opposite direction
bool measure_tooltip; // Show a permanent tooltip when dragging tools
byte liveries; // Options for displaying company liveries, 0=none, 1=self, 2=all
+ bool chat_target; // Choose the chat message target with <ENTER>, true=all players, false=your team
uint8 toolbar_pos; // position of toolbars, 0=left, 1=center, 2=right
uint8 window_snap_radius; // Windows snap at each other if closer than this