diff --git a/code/modules/client/preference_setup/global/01_ui.dm b/code/modules/client/preference_setup/global/01_ui.dm
index 6bdcdccf5c..68c569c04e 100644
--- a/code/modules/client/preference_setup/global/01_ui.dm
+++ b/code/modules/client/preference_setup/global/01_ui.dm
@@ -3,28 +3,30 @@
sort_order = 1
/datum/category_item/player_setup_item/player_global/ui/load_preferences(var/savefile/S)
- S["UI_style"] >> pref.UI_style
- S["UI_style_color"] >> pref.UI_style_color
- S["UI_style_alpha"] >> pref.UI_style_alpha
- S["ooccolor"] >> pref.ooccolor
- S["tooltipstyle"] >> pref.tooltipstyle
- S["client_fps"] >> pref.client_fps
- S["ambience_freq"] >> pref.ambience_freq
- S["ambience_chance"] >> pref.ambience_chance
- S["tgui_fancy"] >> pref.tgui_fancy
- S["tgui_lock"] >> pref.tgui_lock
+ S["UI_style"] >> pref.UI_style
+ S["UI_style_color"] >> pref.UI_style_color
+ S["UI_style_alpha"] >> pref.UI_style_alpha
+ S["ooccolor"] >> pref.ooccolor
+ S["tooltipstyle"] >> pref.tooltipstyle
+ S["client_fps"] >> pref.client_fps
+ S["ambience_freq"] >> pref.ambience_freq
+ S["ambience_chance"] >> pref.ambience_chance
+ S["tgui_fancy"] >> pref.tgui_fancy
+ S["tgui_lock"] >> pref.tgui_lock
+ S["tgui_input_mode"] >> pref.tgui_input_mode
/datum/category_item/player_setup_item/player_global/ui/save_preferences(var/savefile/S)
- S["UI_style"] << pref.UI_style
- S["UI_style_color"] << pref.UI_style_color
- S["UI_style_alpha"] << pref.UI_style_alpha
- S["ooccolor"] << pref.ooccolor
- S["tooltipstyle"] << pref.tooltipstyle
- S["client_fps"] << pref.client_fps
- S["ambience_freq"] << pref.ambience_freq
- S["ambience_chance"] << pref.ambience_chance
- S["tgui_fancy"] << pref.tgui_fancy
- S["tgui_lock"] << pref.tgui_lock
+ S["UI_style"] << pref.UI_style
+ S["UI_style_color"] << pref.UI_style_color
+ S["UI_style_alpha"] << pref.UI_style_alpha
+ S["ooccolor"] << pref.ooccolor
+ S["tooltipstyle"] << pref.tooltipstyle
+ S["client_fps"] << pref.client_fps
+ S["ambience_freq"] << pref.ambience_freq
+ S["ambience_chance"] << pref.ambience_chance
+ S["tgui_fancy"] << pref.tgui_fancy
+ S["tgui_lock"] << pref.tgui_lock
+ S["tgui_input_mode"] << pref.tgui_input_mode
/datum/category_item/player_setup_item/player_global/ui/sanitize_preferences()
pref.UI_style = sanitize_inlist(pref.UI_style, all_ui_styles, initial(pref.UI_style))
@@ -35,8 +37,9 @@
pref.client_fps = sanitize_integer(pref.client_fps, 0, MAX_CLIENT_FPS, initial(pref.client_fps))
pref.ambience_freq = sanitize_integer(pref.ambience_freq, 0, 60, initial(pref.ambience_freq)) // No more than once per hour.
pref.ambience_chance = sanitize_integer(pref.ambience_chance, 0, 100, initial(pref.ambience_chance)) // 0-100 range.
- pref.tgui_fancy = sanitize_integer(pref.tgui_fancy, 0, 1, initial(pref.tgui_fancy))
- pref.tgui_lock = sanitize_integer(pref.tgui_lock, 0, 1, initial(pref.tgui_lock))
+ pref.tgui_fancy = sanitize_integer(pref.tgui_fancy, 0, 1, initial(pref.tgui_fancy))
+ pref.tgui_lock = sanitize_integer(pref.tgui_lock, 0, 1, initial(pref.tgui_lock))
+ pref.tgui_input_mode = sanitize_integer(pref.tgui_input_mode, 0, 1, initial(pref.tgui_input_mode))
/datum/category_item/player_setup_item/player_global/ui/content(var/mob/user)
. = "UI Style: [pref.UI_style]
"
@@ -49,6 +52,7 @@
. += "Ambience Chance: [pref.ambience_chance]
"
. += "tgui Window Mode: [(pref.tgui_fancy) ? "Fancy (default)" : "Compatible (slower)"]
"
. += "tgui Window Placement: [(pref.tgui_lock) ? "Primary Monitor" : "Free (default)"]
"
+ . += "Input Mode (Say, Me, Whisper, Subtle): [(pref.tgui_input_mode) ? "TGUI" : "BYOND (default)"]
"
if(can_select_ooc_color(user))
. += "OOC Color:"
if(pref.ooccolor == initial(pref.ooccolor))
@@ -118,6 +122,10 @@
pref.tgui_lock = !pref.tgui_lock
return TOPIC_REFRESH
+ else if(href_list["tgui_input_mode"])
+ pref.tgui_input_mode = !pref.tgui_input_mode
+ return TOPIC_REFRESH
+
else if(href_list["reset"])
switch(href_list["reset"])
if("ui")
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index e4b7c74dcf..d95a3350fa 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -28,6 +28,7 @@ var/list/preferences_datums = list()
var/tgui_fancy = TRUE
var/tgui_lock = FALSE
+ var/tgui_input_mode = FALSE // Say, Me, Whisper, Subtle Input Mode; Disabled by default; FALSE = BYOND, TRUE = TGUI
//character preferences
var/real_name //our character's name
diff --git a/code/modules/mob/typing_indicator.dm b/code/modules/mob/typing_indicator.dm
index 35fe2d8bbb..7ab6de6fe5 100644
--- a/code/modules/mob/typing_indicator.dm
+++ b/code/modules/mob/typing_indicator.dm
@@ -40,7 +40,11 @@
set hidden = 1
set_typing_indicator(TRUE)
- var/message = tgui_input_text(usr, "Type your message:", "Say")
+ var/message
+ if(usr.client.prefs.tgui_input_mode)
+ message = tgui_input_text(usr, "Type your message:", "Say")
+ else
+ message = input(usr, "Type your message:", "Say") as text
set_typing_indicator(FALSE)
if(message)
@@ -51,7 +55,11 @@
set hidden = 1
set_typing_indicator(TRUE)
- var/message = tgui_input_message(usr, "Type your message:", "Emote")
+ var/message
+ if(usr.client.prefs.tgui_input_mode)
+ message = tgui_input_message(usr, "Type your message:", "Emote")
+ else
+ message = input(usr, "Type your message:", "Emote") as message
set_typing_indicator(FALSE)
if(message)
@@ -62,7 +70,12 @@
set name = ".Whisper"
set hidden = 1
- var/message = tgui_input_text(usr, "Type your message:", "Whisper")
+ var/message
+ if(usr.client.prefs.tgui_input_mode)
+ message = tgui_input_text(usr, "Type your message:", "Whisper")
+ else
+ message = input(usr, "Type your message:", "Whisper") as text
+
if(message)
whisper(message)
@@ -70,6 +83,11 @@
set name = ".Subtle"
set hidden = 1
- var/message = tgui_input_message(usr, "Type your message:", "Subtle")
+ var/message
+ if(usr.client.prefs.tgui_input_mode)
+ message = tgui_input_message(usr, "Type your message:", "Subtle")
+ else
+ message = input(usr, "Type your message:", "Subtle") as message
+
if(message)
me_verb_subtle(message)