diff --git a/aurorastation.dme b/aurorastation.dme index cc8f0a166a2..e39c61d119f 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -1824,7 +1824,6 @@ #include "code\modules\client\client_color.dm" #include "code\modules\client\client_defines.dm" #include "code\modules\client\client_procs.dm" -#include "code\modules\client\darkmode.dm" #include "code\modules\client\movement.dm" #include "code\modules\client\preferences.dm" #include "code\modules\client\preferences_ambience.dm" diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index e9a0e2f01ba..1ddc08db14a 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -47,14 +47,15 @@ #define CHAT_NOICONS 0x8000 #define CHAT_GHOSTLOOC 0x10000 -#define SEE_ITEM_OUTLINES 0x1 -#define HIDE_ITEM_TOOLTIPS 0x2 -#define PROGRESS_BARS 0x4 -#define PARALLAX_IS_STATIC 0x8 -#define FLOATING_MESSAGES 0x10 -#define HOTKEY_DEFAULT 0x20 -#define FULLSCREEN_MODE 0x40 -#define ACCENT_TAG_TEXT 0x80 +#define SEE_ITEM_OUTLINES BITFLAG(1) +#define HIDE_ITEM_TOOLTIPS BITFLAG(2) +#define PROGRESS_BARS BITFLAG(3) +#define PARALLAX_IS_STATIC BITFLAG(4) +#define FLOATING_MESSAGES BITFLAG(5) +#define HOTKEY_DEFAULT BITFLAG(6) +#define FULLSCREEN_MODE BITFLAG(7) +#define ACCENT_TAG_TEXT BITFLAG(8) +#define CLIENT_PREFERENCE_HIDE_MENU BITFLAG(9) #define TOGGLES_DEFAULT (SOUND_ADMINHELP | SOUND_MIDI | SOUND_LOBBY | CHAT_OOC | CHAT_DEAD | CHAT_GHOSTEARS | CHAT_GHOSTSIGHT | CHAT_PRAYER | CHAT_RADIO | CHAT_ATTACKLOGS | CHAT_LOOC | CHAT_GHOSTLOOC) diff --git a/code/__HELPERS/view.dm b/code/__HELPERS/view.dm index 7479d49d4b1..19b29fa2a81 100644 --- a/code/__HELPERS/view.dm +++ b/code/__HELPERS/view.dm @@ -1,7 +1,5 @@ /proc/getviewsize(view) - if(!view) // Just to avoid any runtimes that could otherwise cause constant disconnect loops. - stack_trace("Missing value for 'view' in getviewsize(), defaulting to world.view!") - view = world.view + SHOULD_BE_PURE(TRUE) if(isnum(view)) var/totalviewrange = (view < 0 ? -1 : 1) + 2 * view @@ -16,8 +14,8 @@ if(!view) return list(0, 0) var/list/view_info = getviewsize(view) - view_info[1] *= world.icon_size - view_info[2] *= world.icon_size + view_info[1] *= ICON_SIZE_X + view_info[2] *= ICON_SIZE_Y return view_info /proc/in_view_range(mob/user, atom/A) diff --git a/code/game/machinery/embedded_controller/airlock_program.dm b/code/game/machinery/embedded_controller/airlock_program.dm index 6a9f389b2a8..71126869b63 100644 --- a/code/game/machinery/embedded_controller/airlock_program.dm +++ b/code/game/machinery/embedded_controller/airlock_program.dm @@ -57,10 +57,8 @@ tag_airlock_mech_sensor = controller.tag_airlock_mech_sensor? controller.tag_airlock_mech_sensor : "[id_tag]_airlock_mech" tag_shuttle_mech_sensor = controller.tag_shuttle_mech_sensor? controller.tag_shuttle_mech_sensor : "[id_tag]_shuttle_mech" memory["secure"] = controller.tag_secure - - spawn(10) - signalDoor(tag_exterior_door, "update") //signals connected doors to update their status - signalDoor(tag_interior_door, "update") + addtimer(CALLBACK(src, PROC_REF(signalDoor), tag_exterior_door, "update"), 1 SECONDS) + addtimer(CALLBACK(src, PROC_REF(signalDoor), tag_interior_door, "update"), 1 SECONDS) /datum/computer/file/embedded_program/airlock/receive_signal(datum/signal/signal, receive_method, receive_param) var/receive_tag = signal.data["tag"] diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index 8a9344dba53..b3573d019c0 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -195,21 +195,46 @@ var/aspect_ratio = view_size[1] / view_size[2] // Calculate desired pixel width using window size and aspect ratio - var/sizes = params2list(winget(src, "mainwindow.mainvsplit;mapwindow", "size")) - var/map_size = splittext(sizes["mapwindow.size"], "x") - var/height = text2num(map_size[2]) - var/desired_width = round(height * aspect_ratio) + var/list/sizes = params2list(winget(src, "mainwindow.split;mapwindow", "size")) + + // Client closed the window? Some other error? This is unexpected behaviour, let's + // CRASH with some info. + if(!sizes["mapwindow.size"]) + CRASH("sizes does not contain mapwindow.size key. This means a winget failed to return what we wanted. --- sizes var: [sizes] --- sizes length: [length(sizes)]") + + var/list/map_size = splittext(sizes["mapwindow.size"], "x") + + // Gets the type of zoom we're currently using from our view datum + // If it's 0 we do our pixel calculations based off the size of the mapwindow + // If it's not, we already know how big we want our window to be, since zoom is the exact pixel ratio of the map + var/zoom_value = /*src.view_size?.zoom ||*/ 0 + + var/desired_width = 0 + if(zoom_value) + desired_width = round(view_size[1] * zoom_value * ICON_SIZE_X) + else + + // Looks like we expect mapwindow.size to be "ixj" where i and j are numbers. + // If we don't get our expected 2 outputs, let's give some useful error info. + if(length(map_size) != 2) + CRASH("map_size of incorrect length --- map_size var: [map_size] --- map_size length: [length(map_size)]") + var/height = text2num(map_size[2]) + desired_width = round(height * aspect_ratio) + if (text2num(map_size[1]) == desired_width) // Nothing to do return - var/split_size = splittext(sizes["mainwindow.mainvsplit.size"], "x") + var/split_size = splittext(sizes["mainwindow.split.size"], "x") var/split_width = text2num(split_size[1]) + // Avoid auto-resizing the statpanel and chat into nothing. + desired_width = min(desired_width, split_width - 300) + // Calculate and apply a best estimate // +4 pixels are for the width of the splitter's handle var/pct = 100 * (desired_width + 4) / split_width - winset(src, "mainwindow.mainvsplit", "splitter=[pct]") + winset(src, "mainwindow.split", "splitter=[pct]") // Apply an ever-lowering offset until we finish or fail var/delta @@ -229,7 +254,16 @@ delta = -delta/2 pct += delta - winset(src, "mainwindow.mainvsplit", "splitter=[pct]") + winset(src, "mainwindow.split", "splitter=[pct]") + +/// Attempt to automatically fit the viewport, assuming the user wants it +/client/proc/attempt_auto_fit_viewport() + /*if (!prefs.read_preference(/datum/preference/toggle/auto_fit_viewport)) + return*/ //We do not have this in aurora yet + if(fully_created) + INVOKE_ASYNC(src, VERB_REF(fit_viewport)) + else //Delayed to avoid wingets from Login calls. + addtimer(CALLBACK(src, VERB_REF(fit_viewport), 1 SECONDS)) /client/verb/refresh_tgui() set name = "Refresh TGUI" diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index e4105d8f7a0..633aecac08e 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -1036,7 +1036,7 @@ GLOBAL_LIST_INIT(admin_verbs_cciaa, list( /client/proc/toggleattacklogs() set name = "Toggle Attack Log Messages" - set category = "Preferences" + set category = "Preferences.Admin" prefs.toggles ^= CHAT_ATTACKLOGS if (prefs.toggles & CHAT_ATTACKLOGS) @@ -1076,7 +1076,7 @@ GLOBAL_LIST_INIT(admin_verbs_cciaa, list( /client/proc/toggledebuglogs() set name = "Toggle Debug Log Messages" - set category = "Preferences" + set category = "Preferences.Admin" prefs.toggles ^= CHAT_DEBUGLOGS if (prefs.toggles & CHAT_DEBUGLOGS) diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm index 0ccea4c2e11..1ddb7091c2a 100644 --- a/code/modules/client/client_defines.dm +++ b/code/modules/client/client_defines.dm @@ -76,9 +76,15 @@ var/last_asset_job = 0 var/last_completed_asset_job = 0 + ///Hide top bars + var/fullscreen = FALSE + /// our current tab var/stat_tab + /// If this client has been fully initialized or not + var/fully_created = FALSE + /// list of all tabs var/list/panel_tabs = list() /// list of tabs containing spells and abilities diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index abf64154587..28c460bd9e0 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -419,6 +419,7 @@ GLOBAL_LIST_INIT(localhost_addresses, list( to_chat(src, SPAN_WARNING("Unable to access asset cache browser, if you are using a custom skin file, please allow DS to download the updated version, if you are not, then make a bug report. This is not a critical issue but can cause issues with resource downloading, as it is impossible to know when extra resources arrived to you.")) Master.UpdateTickRate() + fully_created = TRUE /client/proc/InitPrefs() SHOULD_NOT_SLEEP(TRUE) @@ -437,7 +438,10 @@ GLOBAL_LIST_INIT(localhost_addresses, list( fps = prefs.clientfps if(prefs.toggles_secondary & FULLSCREEN_MODE) - toggle_fullscreen(TRUE) + addtimer(CALLBACK(src, VERB_REF(toggle_fullscreen), 1 SECONDS)) + + if(prefs.toggles_secondary & CLIENT_PREFERENCE_HIDE_MENU) + addtimer(CALLBACK(src, VERB_REF(toggle_menu), 1 SECONDS)) /client/proc/InitClient() SHOULD_NOT_SLEEP(TRUE) @@ -654,22 +658,33 @@ GLOBAL_LIST_INIT(localhost_addresses, list( /client/verb/character_setup() set name = "Character Setup" - set category = "Preferences" + set category = "Preferences.Character" if(prefs) prefs.ShowChoices(usr) /client/verb/toggle_fullscreen_preference() set name = "Toggle Fullscreen Preference" - set category = "Preferences" + set category = "Preferences.Menu" set desc = "Toggles whether the game window will be true fullscreen or normal." prefs.toggles_secondary ^= FULLSCREEN_MODE prefs.save_preferences() - toggle_fullscreen(prefs.toggles_secondary & FULLSCREEN_MODE) + if(prefs.toggles_secondary & FULLSCREEN_MODE) + toggle_fullscreen() + +/client/verb/toggle_hide_menu_preference() + set name = "Toggle Hide Menu Preference" + set category = "Preferences.Menu" + set desc = "Toggles whether the game window will have the top menu bar hidden or not." + + prefs.toggles_secondary ^= CLIENT_PREFERENCE_HIDE_MENU + prefs.save_preferences() + if(prefs.toggles_secondary & CLIENT_PREFERENCE_HIDE_MENU) + toggle_menu() /client/verb/toggle_accent_tag_text() set name = "Toggle Accent Tag Text" - set category = "Preferences" + set category = "Preferences.Game" set desc = "Toggles whether accents will be shown as text or images.." to_chat(usr, SPAN_NOTICE("You toggle the accent tag text [(prefs?.toggles_secondary & ACCENT_TAG_TEXT) ? "off" : "on"].")) @@ -677,14 +692,23 @@ GLOBAL_LIST_INIT(localhost_addresses, list( prefs.toggles_secondary ^= ACCENT_TAG_TEXT prefs.save_preferences() -/client/proc/toggle_fullscreen(new_value) - if(new_value) - winset(src, "mainwindow", "is-maximized=false;can-resize=false;titlebar=false;menu=menu") - winset(src, "mainwindow.mainvsplit", "pos=0x0") - else - winset(src, "mainwindow", "is-maximized=false;can-resize=true;titlebar=true;menu=menu") - winset(src, "mainwindow.mainvsplit", "pos=3x0") - winset(src, "mainwindow", "is-maximized=true") +/client/verb/toggle_fullscreen() + set name = "Toggle Fullscreen" + set category = "Preferences.Menu" + + fullscreen = !fullscreen + + winset(src, "mainwindow", "menu=[fullscreen ? "" : "menu"];is-fullscreen=[fullscreen ? "true" : "false"];titlebar=[fullscreen ? "false" : "true"]") + attempt_auto_fit_viewport() + +/client/verb/toggle_menu() + set name = "Toggle Menu" + set category = "Preferences.Menu" + + var/has_menu = winget(src, "mainwindow", "menu") + + winset(src, "mainwindow", "menu=[has_menu ? "" : "menu"]") + attempt_auto_fit_viewport() /client/proc/apply_fps(var/client_fps) if(world.byond_version >= 511 && byond_version >= 511 && client_fps >= 0 && client_fps <= 1000) diff --git a/code/modules/client/darkmode.dm b/code/modules/client/darkmode.dm deleted file mode 100644 index 5554d9fee19..00000000000 --- a/code/modules/client/darkmode.dm +++ /dev/null @@ -1,132 +0,0 @@ -//Darkmode preference by Kmc2000// - -/* -This lets you switch chat themes by using winset and CSS loading, you must relog to see this change (or rebuild your browseroutput datum) -Things to note: -If you change ANYTHING in interface/skin.dmf you need to change it here: -Format: -winset(src, "window as appears in skin.dmf after elem", "var to change = currentvalue;var to change = desired value") -How this works: -I've added a function to browseroutput.js which registers a cookie for darkmode and swaps the chat accordingly. You can find the button to do this under the "cog" icon next to the ping button (top right of chat) -This then swaps the window theme automatically -Thanks to spacemaniac and mcdonald for help with the JS side of this. -*/ - -/client/proc/force_white_theme() //There's no way round it. We're essentially changing the skin by hand. It's painful but it works, and is the way Lummox suggested. - //Main windows - winset(src, "mainwindow", "background-color = [COLOR_DARKMODE_DARKBACKGROUND];background-color = none") - winset(src, "mainwindow", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000") - winset(src, "rpane", "background-color = [COLOR_DARKMODE_DARKBACKGROUND];background-color = none") - winset(src, "rpane", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000") - winset(src, "info", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none") - winset(src, "info", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000") - winset(src, "browseroutput", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none") - winset(src, "browseroutput", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000") - winset(src, "outputwindow", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none") - winset(src, "outputwindow", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000") - winset(src, "rpanewindow", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none") - winset(src, "rpanewindow", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000") - winset(src, "mainwindow", "background-color = [COLOR_DARKMODE_DARKBACKGROUND];background-color = none") - winset(src, "mainvsplit", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none") - winset(src, "mainvsplit", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none") - //Buttons - winset(src, "textb", "background-color = #494949;background-color = none") - winset(src, "textb", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000") - winset(src, "infob", "background-color = #494949;background-color = none") - winset(src, "infob", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000") - winset(src, "rulesb", "background-color = #494949;background-color = none") - winset(src, "rulesb", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000") - winset(src, "Lore", "background-color = #494949;background-color = none") - winset(src, "Lore", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000") - winset(src, "wikib", "background-color = #494949;background-color = none") - winset(src, "wikib", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000") - winset(src, "forumb", "background-color = #494949;background-color = none") - winset(src, "forumb", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000") - winset(src, "changelog", "background-color = #494949;background-color = none") - winset(src, "changelog", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000") - winset(src, "interfaceb", "background-color = #494949;background-color = none") - winset(src, "interfaceb", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000") - winset(src, "discordb", "background-color = #494949;background-color = none") - winset(src, "discordb", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000") - winset(src, "reportbugb", "background-color = #494949;background-color = none") - winset(src, "reportbugb", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000") - winset(src, "hotkey_toggle", "background-color = #494949;background-color = none") - winset(src, "hotkey_toggle", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000") - //Status and verb tabs - winset(src, "output", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none") - winset(src, "output", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000") - winset(src, "outputwindow", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none") - winset(src, "outputwindow", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000") - winset(src, "statwindow", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none") - winset(src, "statwindow", "text-color = #eaeaea;text-color = #000000") - winset(src, "info", "background-color = [COLOR_DARKMODE_DARKBACKGROUND];background-color = #FFFFFF") - winset(src, "info", "tab-background-color = [COLOR_DARKMODE_BACKGROUND];tab-background-color = none") - winset(src, "info", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000") - winset(src, "info", "tab-text-color = [COLOR_DARKMODE_TEXT];tab-text-color = #000000") - winset(src, "info", "prefix-color = [COLOR_DARKMODE_TEXT];prefix-color = #000000") - winset(src, "info", "suffix-color = [COLOR_DARKMODE_TEXT];suffix-color = #000000") - //Say, OOC, me Buttons etc. - winset(src, "saybutton", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none") - winset(src, "saybutton", "text-color = [COLOR_DARKMODE_TEXT];text-color = #000000") - winset(src, "asset_cache_browser", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none") - winset(src, "asset_cache_browser", "background-color = [COLOR_DARKMODE_BACKGROUND];background-color = none") - -/client/proc/force_dark_theme() //Inversely, if theyre using white theme and want to swap to the superior dark theme, let's get WINSET() ing - //Main windows - winset(src, "mainwindow", "background-color = none;background-color = [COLOR_DARKMODE_BACKGROUND]") - winset(src, "mainwindow", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "rpane", "background-color = none;background-color = [COLOR_DARKMODE_BACKGROUND]") - winset(src, "rpane", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "info", "background-color = none;background-color = [COLOR_DARKMODE_BACKGROUND]") - winset(src, "info", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "browseroutput", "background-color = none;background-color = [COLOR_DARKMODE_BACKGROUND]") - winset(src, "browseroutput", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "outputwindow", "background-color = none;background-color = [COLOR_DARKMODE_BACKGROUND]") - winset(src, "outputwindow", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "rpanewindow", "background-color = none;background-color = [COLOR_DARKMODE_BACKGROUND]") - winset(src, "rpanewindow", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "mainwindow", "background-color = none;background-color = [COLOR_DARKMODE_BACKGROUND]") - winset(src, "mainvsplit", "background-color = none;background-color = [COLOR_DARKMODE_BACKGROUND]") - winset(src, "mainvsplit", "background-color = none;background-color = [COLOR_DARKMODE_BACKGROUND]") - //Buttons - winset(src, "textb", "background-color = none;background-color = #494949") - winset(src, "textb", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "infob", "background-color = none;background-color = #494949") - winset(src, "infob", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "rulesb", "background-color = none;background-color = #494949") - winset(src, "rulesb", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "Lore", "background-color = none;background-color = #494949") - winset(src, "Lore", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "wikib", "background-color = none;background-color = #494949") - winset(src, "wikib", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "forumb", "background-color = none;background-color = #494949") - winset(src, "forumb", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "changelog", "background-color = none;background-color = #494949") - winset(src, "changelog", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "interfaceb", "background-color = none;background-color = #494949") - winset(src, "interfaceb", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "discordb", "background-color = none;background-color = #494949") - winset(src, "discordb", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "reportbugb", "background-color = none;background-color = #494949") - winset(src, "reportbugb", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "hotkey_toggle", "background-color = none;background-color = #494949") - winset(src, "hotkey_toggle", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - //Status and verb tabs - winset(src, "output", "background-color = none;background-color = [COLOR_DARKMODE_DARKBACKGROUND]") - winset(src, "output", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "outputwindow", "background-color = none;background-color = [COLOR_DARKMODE_DARKBACKGROUND]") - winset(src, "outputwindow", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "statwindow", "background-color = none;background-color = [COLOR_DARKMODE_DARKBACKGROUND]") - winset(src, "statwindow", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "info", "background-color = #FFFFFF;background-color = [COLOR_DARKMODE_DARKBACKGROUND]") - winset(src, "info", "tab-background-color = none;tab-background-color = [COLOR_DARKMODE_BACKGROUND]") - winset(src, "info", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "info", "tab-text-color = #000000;tab-text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "info", "prefix-color = #000000;prefix-color = [COLOR_DARKMODE_TEXT]") - winset(src, "info", "suffix-color = #000000;suffix-color = [COLOR_DARKMODE_TEXT]") - //Say, OOC, me Buttons etc. - winset(src, "saybutton", "background-color = none;background-color = #494949") - winset(src, "saybutton", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - winset(src, "asset_cache_browser", "background-color = none;background-color = [COLOR_DARKMODE_BACKGROUND]") - winset(src, "asset_cache_browser", "text-color = #000000;text-color = [COLOR_DARKMODE_TEXT]") - diff --git a/code/modules/client/preferences_ambience.dm b/code/modules/client/preferences_ambience.dm index 3917c9ce2b2..8aca95e8129 100644 --- a/code/modules/client/preferences_ambience.dm +++ b/code/modules/client/preferences_ambience.dm @@ -21,7 +21,7 @@ GLOBAL_LIST_INIT(sfx_toggles, list( // ASFX Tab Toggle /client/verb/toggle_asfx_tab() set name = "Toggle SFX Preferences Tab" - set category = "Preferences" + set category = "Preferences.Sound" set desc = "Toggle the SFX preferences tab" if(!has_sfx_verbs) @@ -34,7 +34,7 @@ GLOBAL_LIST_INIT(sfx_toggles, list( // Ambience Toggle /client/verb/toggle_asfx() set name = "Toggle Ambience SFX" - set category = "Preferences" + set category = "Preferences.Sound" set desc = "Toggles hearing ambient sound effects" prefs.sfx_toggles ^= ASFX_AMBIENCE @@ -48,7 +48,7 @@ GLOBAL_LIST_INIT(sfx_toggles, list( // Ambient Hum Toggle /client/verb/toggle_asfx_hum() set name = "Toggle Ambient Hum SFX" - set category = "Preferences" + set category = "Preferences.Sound" set desc = "Toggles hearing the ambient hum sound effect" prefs.sfx_toggles ^= ASFX_HUM @@ -62,7 +62,7 @@ GLOBAL_LIST_INIT(sfx_toggles, list( /client/verb/toggle_sfx_music() set name = "Toggle Music SFX" - set category = "Preferences" + set category = "Preferences.Sound" set desc = "Toggles hearing music" prefs.sfx_toggles ^= ASFX_MUSIC @@ -72,7 +72,7 @@ GLOBAL_LIST_INIT(sfx_toggles, list( /client/verb/toggle_asfx_console() set name = "Toggle Console Ambience SFX" - set category = "Preferences" + set category = "Preferences.Sound" set desc = "Toggles hearing ambient sound effects from consoles" prefs.sfx_toggles ^= ASFX_CONSOLE_AMBIENCE diff --git a/code/modules/client/preferences_notification.dm b/code/modules/client/preferences_notification.dm index 2370a48a21d..9e9d42ffc94 100644 --- a/code/modules/client/preferences_notification.dm +++ b/code/modules/client/preferences_notification.dm @@ -132,7 +132,7 @@ new_notification("danger", custom_event_warn) if (lastchangelog != GLOB.changelog_hash) - winset(user, "rpane.changelog", "background-color=#eaeaea;font-style=bold") + winset(user, "infowindow.changelog", "background-color=#eaeaea;font-style=bold") if (GLOB.config.aggressive_changelog) new_notification("info", "You have unread updates in the changelog.", callback_src = user, callback_proc = "changes") else diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm index 5bda4ac9659..97055d985ab 100644 --- a/code/modules/client/preferences_toggles.dm +++ b/code/modules/client/preferences_toggles.dm @@ -2,7 +2,7 @@ /client/verb/toggle_ghost_ears() set name = "Show/Hide GhostEars" - set category = "Preferences" + set category = "Preferences.Ghost" set desc = ".Toggle Between seeing all mob speech, and only speech of nearby mobs" prefs.toggles ^= CHAT_GHOSTEARS to_chat(src, "As a ghost, you will now [(prefs.toggles & CHAT_GHOSTEARS) ? "see all speech in the world" : "only see speech from nearby mobs"].") @@ -11,7 +11,7 @@ /client/verb/toggle_ghost_sight() set name = "Show/Hide GhostSight" - set category = "Preferences" + set category = "Preferences.Ghost" set desc = ".Toggle Between seeing all mob emotes, and only emotes of nearby mobs" prefs.toggles ^= CHAT_GHOSTSIGHT to_chat(src, "As a ghost, you will now [(prefs.toggles & CHAT_GHOSTSIGHT) ? "see all emotes in the world" : "only see emotes from nearby mobs"].") @@ -20,7 +20,7 @@ /client/verb/toggle_ghost_radio() set name = "Enable/Disable GhostRadio" - set category = "Preferences" + set category = "Preferences.Ghost" set desc = ".Toggle between hearing all radio chatter, or only from nearby speakers" prefs.toggles ^= CHAT_GHOSTRADIO to_chat(src, "As a ghost, you will now [(prefs.toggles & CHAT_GHOSTRADIO) ? "hear all radio chat in the world" : "only hear from nearby speakers"].") @@ -29,7 +29,7 @@ /client/proc/toggle_hear_radio() set name = "Show/Hide RadioChatter" - set category = "Preferences" + set category = "Preferences.Ghost" set desc = "Toggle seeing radiochatter from radios and speakers" if(!holder) return prefs.toggles ^= CHAT_RADIO @@ -39,7 +39,7 @@ /client/proc/toggleadminhelpsound() set name = "Hear/Silence Adminhelps" - set category = "Preferences" + set category = "Preferences.Admin" set desc = "Toggle hearing a notification when admin PMs are received" if(!holder) return prefs.toggles ^= SOUND_ADMINHELP @@ -49,7 +49,7 @@ /client/verb/deadchat() // Deadchat toggle is usable by anyone. set name = "Show/Hide Deadchat" - set category = "Preferences" + set category = "Preferences.Admin" set desc ="Toggles seeing deadchat" prefs.toggles ^= CHAT_DEAD prefs.save_preferences() @@ -63,7 +63,7 @@ /client/proc/toggleprayers() set name = "Show/Hide Prayers" - set category = "Preferences" + set category = "Preferences.Admin" set desc = "Toggles seeing prayers" prefs.toggles ^= CHAT_PRAYER prefs.save_preferences() @@ -72,7 +72,7 @@ /client/verb/toggletitlemusic() set name = "Hear/Silence LobbyMusic" - set category = "Preferences" + set category = "Preferences.Sound" set desc = "Toggles hearing the GameLobby music" prefs.toggles ^= SOUND_LOBBY prefs.save_preferences() @@ -88,7 +88,7 @@ /client/verb/togglemidis() set name = "Hear/Silence Midis" - set category = "Preferences" + set category = "Preferences.Sound" set desc = "Toggles hearing sounds uploaded by admins" prefs.toggles ^= SOUND_MIDI prefs.save_preferences() @@ -103,7 +103,7 @@ /client/verb/listen_ooc() set name = "Show/Hide OOC" - set category = "Preferences" + set category = "Preferences.Chat" set desc = "Toggles seeing OutOfCharacter chat" prefs.toggles ^= CHAT_OOC prefs.save_preferences() @@ -112,7 +112,7 @@ /client/verb/listen_looc() set name = "Show/Hide LOOC (All)" - set category = "Preferences" + set category = "Preferences.Chat" set desc = "Toggles seeing Local OutOfCharacter chat" prefs.toggles ^= CHAT_LOOC prefs.save_preferences() @@ -122,7 +122,7 @@ /client/verb/listen_ghostlooc() set name = "Show/Hide LOOC (Observers)" - set category = "Preferences" + set category = "Preferences.Chat" set desc = "Toggles seeing Local OutOfCharacter chat from observing players" if(!(prefs.toggles & CHAT_LOOC)) //Don't need to disable ghost LOOC if you've disabled all LOOC to_chat(src, SPAN_NOTICE("You already have the LOOC channel hidden!")) @@ -136,7 +136,7 @@ /client/verb/toggle_chattags() set name = "Show/Hide Chat Tags" - set category = "Preferences" + set category = "Preferences.Chat" set desc = "Toggles seeing chat tags/icons" prefs.toggles ^= CHAT_NOICONS prefs.save_preferences() @@ -146,7 +146,7 @@ /client/verb/toggle_progress() set name = "Show/Hide Progress Bars" - set category = "Preferences" + set category = "Preferences.Game" set desc = "Toggles progress bars on slow actions." prefs.toggles_secondary ^= PROGRESS_BARS @@ -159,7 +159,7 @@ /client/verb/toggle_floating_messages() set name = "Toggle Floating Messages" set desc = "Toggles messages appearing above mobs when they speak." - set category = "Preferences" + set category = "Preferences.Game" prefs.toggles_secondary ^= FLOATING_MESSAGES prefs.save_preferences() @@ -168,7 +168,7 @@ /client/verb/toggle_item_outlines() set name = "Toggle Item Outlines" set desc = "Toggles outlines appearing on items in your inventory." - set category = "Preferences" + set category = "Preferences.Game" prefs.toggles_secondary ^= SEE_ITEM_OUTLINES prefs.save_preferences() @@ -177,7 +177,7 @@ /client/verb/toggle_item_tooltips() set name = "Toggle Item Tooltips" set desc = "Toggles tooltips appearing on items in your inventory." - set category = "Preferences" + set category = "Preferences.Game" prefs.toggles_secondary ^= HIDE_ITEM_TOOLTIPS prefs.save_preferences() diff --git a/code/modules/client/ui_style.dm b/code/modules/client/ui_style.dm index 23c95f0e15a..721169b4e9d 100644 --- a/code/modules/client/ui_style.dm +++ b/code/modules/client/ui_style.dm @@ -22,7 +22,7 @@ GLOBAL_LIST_INIT(all_tooltip_styles, list( /client/verb/change_ui() set name = "Change UI" - set category = "Preferences" + set category = "Preferences.Game" set desc = "Configure your user interface" if(!ishuman(usr)) diff --git a/code/modules/clothing/spacesuits/rig/modules/modules.dm b/code/modules/clothing/spacesuits/rig/modules/modules.dm index 668e834415d..df01181f28a 100644 --- a/code/modules/clothing/spacesuits/rig/modules/modules.dm +++ b/code/modules/clothing/spacesuits/rig/modules/modules.dm @@ -207,12 +207,11 @@ active = TRUE - spawn(1) - if(suit_overlay_active) - suit_overlay = suit_overlay_active - else - suit_overlay = null - holder.update_icon() + if(suit_overlay_active) + suit_overlay = suit_overlay_active + else + suit_overlay = null + holder.update_icon() return TRUE @@ -226,13 +225,12 @@ active = FALSE - spawn(1) - if(suit_overlay_inactive) - suit_overlay = suit_overlay_inactive - else - suit_overlay = null - if(holder) - holder.update_icon() + if(suit_overlay_inactive) + suit_overlay = suit_overlay_inactive + else + suit_overlay = null + if(holder) + holder.update_icon() return TRUE diff --git a/code/modules/clothing/spacesuits/rig/modules/utility.dm b/code/modules/clothing/spacesuits/rig/modules/utility.dm index 103557d8af3..19765654882 100644 --- a/code/modules/clothing/spacesuits/rig/modules/utility.dm +++ b/code/modules/clothing/spacesuits/rig/modules/utility.dm @@ -484,12 +484,11 @@ active = TRUE - spawn(1) - if(suit_overlay_active) - suit_overlay = suit_overlay_active - else - suit_overlay = null - holder.update_icon() + if(suit_overlay_active) + suit_overlay = suit_overlay_active + else + suit_overlay = null + holder.update_icon() if(!jets.on) var/list/extra_mobs = list() diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 68e268d81a8..b6eee65e0c1 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -104,6 +104,9 @@ update_client_color() add_click_catcher() + if(client) //Should work based on "change_view" but we lack the infrastructure behind to make it useful, for now + client.attempt_auto_fit_viewport() + if(machine) machine.on_user_login(src) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 97d32cadd0a..7895b0c4981 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -125,7 +125,7 @@ /client/verb/typing_indicator() set name = "Show/Hide Typing Indicator" - set category = "Preferences" + set category = "Preferences.Game" set desc = "Toggles showing an indicator when you are typing emote or say message." prefs.toggles ^= HIDE_TYPING_INDICATOR prefs.save_preferences() diff --git a/html/changelogs/fluffyghost-iconstretching.yml b/html/changelogs/fluffyghost-iconstretching.yml new file mode 100644 index 00000000000..53028aa6e72 --- /dev/null +++ b/html/changelogs/fluffyghost-iconstretching.yml @@ -0,0 +1,62 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# - (fixes bugs) +# wip +# - (work in progress) +# qol +# - (quality of life) +# soundadd +# - (adds a sound) +# sounddel +# - (removes a sound) +# rscadd +# - (adds a feature) +# rscdel +# - (removes a feature) +# imageadd +# - (adds an image or sprite) +# imagedel +# - (removes an image or sprite) +# spellcheck +# - (fixes spelling or grammar) +# experiment +# - (experimental change) +# balance +# - (balance changes) +# code_imp +# - (misc internal code change) +# refactor +# - (refactors code) +# config +# - (makes a change to the config files) +# admin +# - (makes changes to administrator tools) +# server +# - (miscellaneous changes to server) +################################# + +# Your name. +author: FluffyGhost + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - server: "Removed the use of deprecated parameter icon-size." + - server: "Uniformed all clients to use fit to screen." + - server: "Fit to viewport is automatically attempted at login." + - server: "Statusbar is now hidden by default, giving more screen space." + - server: "Toggle fullscreen now works as expected, for even more screen space." diff --git a/interface/skin.dmf b/interface/skin.dmf index ca5b440fe4f..7b6022c53f3 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -864,77 +864,30 @@ menu "menu" category = "&File" saved-params = "is-checked" elem - name = "&Icons" + name = "&Scaling" command = "" saved-params = "is-checked" - elem "stretch" - name = "&Stretch to fit" - command = ".winset \"mapwindow.map.icon-size=0\"" - category = "&Icons" - is-checked = true - can-check = true - group = "size" - saved-params = "is-checked" - elem "icon128" - name = "&128x128" - command = ".winset \"mapwindow.map.icon-size=128\"" - category = "&Icons" - can-check = true - group = "size" - saved-params = "is-checked" - elem "icon96" - name = "&96x96" - command = ".winset \"mapwindow.map.icon-size=96\"" - category = "&Icons" - can-check = true - group = "size" - saved-params = "is-checked" - elem "icon64" - name = "&64x64" - command = ".winset \"mapwindow.map.icon-size=64\"" - category = "&Icons" - can-check = true - group = "size" - saved-params = "is-checked" - elem "icon48" - name = "&48x48" - command = ".winset \"mapwindow.map.icon-size=48\"" - category = "&Icons" - can-check = true - group = "size" - saved-params = "is-checked" - elem "icon32" - name = "&32x32" - command = ".winset \"mapwindow.map.icon-size=32\"" - category = "&Icons" - can-check = true - group = "size" - saved-params = "is-checked" - elem - name = "Icon &Stretching" - command = "" - saved-params = "is-checked" - elem - name = "&Normal" - command = ".winset \"mapwindow.map.zoom-mode=normal\"" - category = "Icon &Stretching" - is-checked = true - can-check = true - group = "stretching" - saved-params = "is-checked" - elem - name = "&Blur" - command = ".winset \"mapwindow.map.zoom-mode=blur\"" - category = "Icon &Stretching" - can-check = true - group = "stretching" - saved-params = "is-checked" - elem - name = "&Distort" + elem "NN" + name = "&Nearest Neighbor" command = ".winset \"mapwindow.map.zoom-mode=distort\"" - category = "Icon &Stretching" + category = "&Scaling" + is-checked = true can-check = true - group = "stretching" + group = "scale" + saved-params = "is-checked" + elem "PS" + name = "&Point Sampling" + command = ".winset \"mapwindow.map.zoom-mode=normal\"" + category = "&Scaling" + can-check = true + group = "scale" + saved-params = "is-checked" + elem "BL" + name = "&Bilinear" + command = ".winset \"mapwindow.map.zoom-mode=blur\"" + category = "&Scaling" + can-check = true + group = "scale" saved-params = "is-checked" elem name = "&Help" @@ -950,11 +903,47 @@ menu "menu" command = "hotkeys-help" category = "&Help" saved-params = "is-checked" - elem - name = "&Resizing" - command = "" - saved-params = "is-checked" +window "mainwindow" + elem "mainwindow" + type = MAIN + pos = 281,0 + size = 640x440 + anchor1 = -1,-1 + anchor2 = -1,-1 + is-default = true + saved-params = "pos;size;is-minimized;is-maximized" + statusbar = false + title = "Space Station 13 - Aurora Station" + icon = 'icons\\ss13_64.png' + macro = "macro" + menu = "menu" + elem "split" + type = CHILD + pos = 0,0 + size = 640x440 + anchor1 = 0,0 + anchor2 = 100,100 + saved-params = "splitter" + left = "mapwindow" + right = "infowindow" + is-vert = true + elem "asset_cache_browser" + type = BROWSER + pos = 0,0 + size = 200x200 + anchor1 = -1,-1 + anchor2 = -1,-1 + is-visible = false + saved-params = "" + elem "tooltip" + type = BROWSER + pos = 0,0 + size = 999x999 + anchor1 = -1,-1 + anchor2 = -1,-1 + is-visible = false + saved-params = "" window "mapwindow" elem "mapwindow" @@ -964,11 +953,6 @@ window "mapwindow" anchor1 = -1,-1 anchor2 = -1,-1 saved-params = "pos;size;is-minimized;is-maximized" - titlebar = false - statusbar = false - can-close = false - can-minimize = false - can-resize = false is-pane = true on-status = ".winset \"status_bar.text=[[*]]\" " elem "map" @@ -980,117 +964,22 @@ window "mapwindow" font-family = "Grand9K Pixel" font-size = 7pt is-default = true - saved-params = "icon-size" - on-show = ".winset\"mainwindow.mainvsplit.left=mapwindow\"" - on-hide = ".winset\"mainwindow.mainvsplit.left=\"" + saved-params = "letterbox;zoom-mode" style = ".center { text-align: center; } .maptext { font-family: 'Grand9K Pixel'; font-size: 6pt; -dm-text-outline: 1px black; color: white; line-height: 1.0; } .command_headset { font-weight: bold; } .context { font-family: 'Pixellari'; font-size: 12pt; -dm-text-outline: 1px black; } .subcontext { font-family: 'TinyUnicode'; font-size: 12pt; line-height: 0.75; } .small { font-family: 'Spess Font'; font-size: 6pt; line-height: 1.4; } .big { font-family: 'Pixellari'; font-size: 12pt; } .reallybig { font-size: 12pt; } .extremelybig { font-size: 12pt; } .greentext { color: #00FF00; font-size: 6pt; } .redtext { color: #FF0000; font-size: 6pt; } .clown { color: #FF69BF; font-weight: bold; } .his_grace { color: #15D512; } .hypnophrase { color: #0d0d0d; font-weight: bold; } .yell { font-weight: bold; } .italics { font-family: 'Spess Font'; font-size: 6pt; line-height: 1.4; }" - -window "mainwindow" - elem "mainwindow" - type = MAIN - pos = 281,0 - size = 640x440 - anchor1 = -1,-1 - anchor2 = -1,-1 - is-default = true - saved-params = "pos;size;is-minimized;is-maximized" - title = "Space Station 13 - Aurora Station" - is-maximized = true - icon = 'icons\\ss13_64.png' - macro = "macro" - menu = "menu" - elem "asset_cache_browser" - type = BROWSER - pos = 0,0 - size = 200x200 - anchor1 = -1,-1 - anchor2 = -1,-1 - is-visible = false - saved-params = "" - elem "hotkey_toggle" - type = BUTTON - pos = 560,420 - size = 80x20 - anchor1 = 100,100 - anchor2 = -1,-1 - saved-params = "" - text = "Hotkey Toggle" - command = ".winset \"mainwindow.macro!=macro ? mainwindow.macro=macro hotkey_toggle.is-checked=false input.focus=true : mainwindow.macro=hotkeymode hotkey_toggle.is-checked=true mapwindow.map.focus=true\"" - is-flat = true - button-type = pushbox - elem "mainvsplit" - type = CHILD - pos = 0,0 - size = 634x416 - anchor1 = 0,0 - anchor2 = 100,100 - saved-params = "splitter" - right = "rpane" - is-vert = true - elem "input" - type = INPUT - pos = 0,420 - size = 517x20 + elem "status_bar" + type = LABEL + pos = 0,464 + size = 280x16 anchor1 = 0,100 - anchor2 = 100,100 - font-family = "Calibri Light" - font-size = 12 - is-default = true - saved-params = "command" - elem "saybutton" - type = BUTTON - pos = 520,420 - size = 40x20 - anchor1 = 100,100 - anchor2 = -1,-1 - saved-params = "is-checked" - text = "Chat" - command = ".winset \"saybutton.is-checked=true?input.command=\"!say \\\"\" macrobutton.is-checked=false:input.command=\"" - is-flat = true - button-type = pushbox - elem "tooltip" - type = BROWSER - pos = 0,0 - size = 999x999 - anchor1 = -1,-1 - anchor2 = -1,-1 - is-visible = false - saved-params = "" + is-visible = true + text = "" + align = left + background-color = #222222 + text-color = #ffffff + border = line -window "outputwindow" - elem "outputwindow" - type = MAIN - pos = 281,0 - size = 640x480 - anchor1 = -1,-1 - anchor2 = -1,-1 - saved-params = "pos;size;is-minimized;is-maximized" - titlebar = false - statusbar = false - can-close = false - can-minimize = false - can-resize = false - is-pane = true - elem "browseroutput" - type = BROWSER - pos = 0,0 - size = 640x480 - anchor1 = 0,0 - anchor2 = 100,100 - background-color = #ffffff - is-visible = false - saved-params = "" - elem "output" - type = OUTPUT - pos = 0,0 - size = 640x480 - anchor1 = 0,0 - anchor2 = 100,100 - is-default = true - saved-params = "" - -window "rpane" - elem "rpane" +window "infowindow" + elem "infowindow" type = MAIN pos = 281,0 size = 640x480 @@ -1112,50 +1001,6 @@ window "rpane" left = "statwindow" right = "outputwindow" is-vert = false - elem "rulesb" - type = BUTTON - pos = 128,0 - size = 60x16 - anchor1 = -1,-1 - anchor2 = -1,-1 - background-color = none - saved-params = "is-checked" - text = "Rules" - command = "rules" - group = "rpanemode" - elem "changelog" - type = BUTTON - pos = 192,0 - size = 67x16 - anchor1 = -1,-1 - anchor2 = -1,-1 - background-color = none - saved-params = "is-checked" - text = "Changelog" - command = "Changelog" - group = "rpanemode" - elem "reportbugb" - type = BUTTON - pos = 264,0 - size = 67x16 - anchor1 = -1,-1 - anchor2 = -1,-1 - background-color = none - saved-params = "is-checked" - text = "Report Bug" - command = "reportbug" - group = "rpanemode" - elem "forumb" - type = BUTTON - pos = 64,0 - size = 60x16 - anchor1 = -1,-1 - anchor2 = -1,-1 - background-color = none - saved-params = "is-checked" - text = "Forum" - command = "forum" - group = "rpanemode" elem "wikib" type = BUTTON pos = 0,0 @@ -1166,7 +1011,46 @@ window "rpane" saved-params = "is-checked" text = "Wiki" command = "wiki" - group = "rpanemode" + elem "forumb" + type = BUTTON + pos = 64,0 + size = 60x16 + anchor1 = -1,-1 + anchor2 = -1,-1 + background-color = none + saved-params = "is-checked" + text = "Forum" + command = "forum" + elem "rulesb" + type = BUTTON + pos = 128,0 + size = 60x16 + anchor1 = -1,-1 + anchor2 = -1,-1 + background-color = none + saved-params = "is-checked" + text = "Rules" + command = "rules" + elem "changelog" + type = BUTTON + pos = 192,0 + size = 67x16 + anchor1 = -1,-1 + anchor2 = -1,-1 + background-color = none + saved-params = "is-checked" + text = "Changelog" + command = "Changelog" + elem "reportbugb" + type = BUTTON + pos = 264,0 + size = 67x16 + anchor1 = -1,-1 + anchor2 = -1,-1 + background-color = none + saved-params = "is-checked" + text = "Report Bug" + command = "reportbug" elem "interfaceb" type = BUTTON pos = 336,0 @@ -1188,10 +1072,10 @@ window "rpane" text = "Discord" command = "open_discord" -window "statwindow" - elem "statwindow" +window "outputwindow" + elem "outputwindow" type = MAIN - pos = 281,0 + pos = 0,0 size = 640x480 anchor1 = -1,-1 anchor2 = -1,-1 @@ -1200,21 +1084,74 @@ window "statwindow" is-pane = true outer-size = 656x538 inner-size = 640x499 - elem "statbrowser" + elem "input" + type = INPUT + pos = 2,460 + size = 517x20 + anchor1 = 0,100 + anchor2 = 100,100 + is-default = true + border = line + saved-params = "command" + elem "hotkey_toggle" + type = BUTTON + pos = 599,460 + size = 80x20 + anchor1 = 100,100 + anchor2 = -1,-1 + saved-params = "" + text = "Hotkey Toggle" + command = ".winset \"mainwindow.macro!=macro ? mainwindow.macro=macro hotkey_toggle.is-checked=false input.focus=true : mainwindow.macro=hotkeymode hotkey_toggle.is-checked=true mapwindow.map.focus=true\"" + is-flat = true + button-type = pushbox + elem "saybutton" + type = BUTTON + pos = 519,460 + size = 40x20 + anchor1 = 100,100 + anchor2 = -1,-1 + background-color = none + border = line + saved-params = "is-checked" + text = "Say" + command = ".winset \"saybutton.is-checked=true ? input.command=\"!say \\\"\" : input.command=\"\"saybutton.is-checked=true ? mebutton.is-checked=false\"\"saybutton.is-checked=true ? oocbutton.is-checked=false\"" + is-flat = true + button-type = pushbox + elem "mebutton" + type = BUTTON + pos = 559,460 + size = 40x20 + anchor1 = 100,100 + anchor2 = -1,-1 + background-color = none + border = line + saved-params = "is-checked" + text = "Me" + command = ".winset \"mebutton.is-checked=true ? input.command=\"!me \\\"\" : input.command=\"\"mebutton.is-checked=true ? saybutton.is-checked=false\"\"mebutton.is-checked=true ? oocbutton.is-checked=false\"" + is-flat = true + button-type = pushbox + elem "browseroutput" type = BROWSER pos = 0,0 - size = 640x480 + size = 640x456 anchor1 = 0,0 anchor2 = 100,100 background-color = none - is-visible = false + saved-params = "" + elem "output" + type = OUTPUT + pos = 0,0 + size = 640x456 + anchor1 = 0,0 + anchor2 = 100,100 + is-default = true saved-params = "" window "preferences_window" elem "preferences_window" type = MAIN pos = 281,0 - size = 1200x800 + size = 1280x1000 anchor1 = -1,-1 anchor2 = -1,-1 is-visible = false @@ -1223,33 +1160,36 @@ window "preferences_window" elem "preferences_browser" type = BROWSER pos = 0,0 - size = 1000x800 + size = 960x1000 anchor1 = 0,0 - anchor2 = 80,100 + anchor2 = 75,100 saved-params = "" elem "character_preview_map" type = MAP - pos = 1000,0 - size = 200x800 - anchor1 = 80,0 + pos = 960,0 + size = 320x1000 + anchor1 = 75,0 anchor2 = 100,100 + right-click = true saved-params = "zoom;letterbox;zoom-mode" -window "browserwindow" - elem "browserwindow" +window "statwindow" + elem "statwindow" type = MAIN pos = 281,0 size = 640x480 anchor1 = -1,-1 anchor2 = -1,-1 saved-params = "pos;size;is-minimized;is-maximized" - title = "Browser" - titlebar = false - statusbar = false - can-close = false - can-minimize = false - can-resize = false is-pane = true + elem "statbrowser" + type = BROWSER + pos = 0,0 + size = 640x480 + anchor1 = 0,0 + anchor2 = 100,100 + is-visible = false + saved-params = "" window "tgui_say" elem "tgui_say" diff --git a/tgui/packages/tgui-panel/themes.js b/tgui/packages/tgui-panel/themes.js index b199756b01e..85eeefea7ce 100644 --- a/tgui/packages/tgui-panel/themes.js +++ b/tgui/packages/tgui-panel/themes.js @@ -38,10 +38,10 @@ export const setClientTheme = (name) => { 'mainwindow.text-color': '#000000', 'info.background-color': 'none', 'info.text-color': '#000000', - 'rpane.background-color': 'none', - 'rpane.text-color': '#000000', - 'mainvsplit.background-color': 'none', - 'mainvsplit.text-color': '#000000', + 'infowindow.background-color': 'none', + 'infowindow.text-color': '#000000', + 'split.background-color': 'none', + 'split.text-color': '#000000', 'browseroutput.background-color': 'none', 'browseroutput.text-color': '#000000', 'outputwindow.background-color': 'none', @@ -84,10 +84,10 @@ export const setClientTheme = (name) => { 'mainwindow.text-color': COLOR_DARK_TEXT, 'info.background-color': COLOR_DARK_BG, 'info.text-color': COLOR_DARK_TEXT, - 'rpane.background-color': COLOR_DARK_BG, - 'rpane.text-color': COLOR_DARK_TEXT, - 'mainvsplit.background-color': COLOR_DARK_BG, - 'mainvsplit.text-color': COLOR_DARK_TEXT, + 'infowindow.background-color': COLOR_DARK_BG, + 'infowindow.text-color': COLOR_DARK_TEXT, + 'split.background-color': COLOR_DARK_BG, + 'split.text-color': COLOR_DARK_TEXT, 'browseroutput.background-color': COLOR_DARK_BG, 'browseroutput.text-color': COLOR_DARK_TEXT, 'outputwindow.background-color': COLOR_DARK_BG,