From 17c89394bd106cba5de9e544870768bbf1a204c1 Mon Sep 17 00:00:00 2001 From: larentoun <31931237+larentoun@users.noreply.github.com> Date: Wed, 28 Jun 2023 01:45:47 +0300 Subject: [PATCH] feat (port): Screentips (#161) --- SQL/paradise_schema.sql | 2 + SQL/updates/30-31.sql | 4 + _maps/map_files/generic/CentComm.dmm | 2 +- _maps/map_files/generic/z2_old.dmm | 2 +- code/__DEFINES/flags.dm | 2 + code/__DEFINES/misc.dm | 12 +- code/_onclick/hud/action_button.dm | 1 + code/_onclick/hud/alert.dm | 1 + code/_onclick/hud/blob_overmind.dm | 1 + code/_onclick/hud/ghost.dm | 1 + code/_onclick/hud/hud.dm | 6 + code/_onclick/hud/screen_objects.dm | 3 +- code/_onclick/hud/screentip.dm | 17 ++ code/controllers/subsystem/titlescreen.dm | 2 +- code/game/atoms.dm | 16 ++ code/game/objects/items.dm | 1 + code/game/turfs/simulated/floor.dm | 1 + .../turfs/simulated/walls_indestructible.dm | 3 +- code/game/turfs/space/space.dm | 2 +- code/modules/client/client_procs.dm | 16 +- code/modules/client/preference/preferences.dm | 16 ++ .../client/preference/preferences_mysql.dm | 14 +- config/example/dbconfig.txt | 2 +- interface/skin.dmf | 243 ++++++------------ paradise.dme | 1 + 25 files changed, 194 insertions(+), 177 deletions(-) create mode 100644 SQL/updates/30-31.sql create mode 100644 code/_onclick/hud/screentip.dm diff --git a/SQL/paradise_schema.sql b/SQL/paradise_schema.sql index 67a5e7c4cde..91ba6281ad6 100644 --- a/SQL/paradise_schema.sql +++ b/SQL/paradise_schema.sql @@ -286,6 +286,8 @@ CREATE TABLE `player` ( `discord_name` varchar(32) NULL DEFAULT NULL, `keybindings` longtext COLLATE 'utf8mb4_unicode_ci' DEFAULT NULL, `viewrange` VARCHAR(5) NOT NULL DEFAULT '19x15' COLLATE 'utf8mb4_general_ci', + `screentip_mode` tinyint(1) DEFAULT '8', + `screentip_color` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#ffd391', PRIMARY KEY (`id`), UNIQUE KEY `ckey` (`ckey`), KEY `lastseen` (`lastseen`), diff --git a/SQL/updates/30-31.sql b/SQL/updates/30-31.sql new file mode 100644 index 00000000000..76b07240d34 --- /dev/null +++ b/SQL/updates/30-31.sql @@ -0,0 +1,4 @@ +# Updates DB from 30 to 31 -S34N_W +# Adds support for screentips +ALTER TABLE `player` ADD COLUMN `screentip_mode` tinyint(1) DEFAULT '8'; +ALTER TABLE `player` ADD COLUMN `screentip_color` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#ffd391' diff --git a/_maps/map_files/generic/CentComm.dmm b/_maps/map_files/generic/CentComm.dmm index cfddb04afa9..b12a97733b0 100644 --- a/_maps/map_files/generic/CentComm.dmm +++ b/_maps/map_files/generic/CentComm.dmm @@ -9197,7 +9197,7 @@ }, /area/syndicate_mothership) "eNQ" = ( -/turf/simulated/wall/indestructible/splashcreen, +/turf/simulated/wall/indestructible/splashscreen, /area/start) "eNU" = ( /obj/structure/chair/sofa/left{ diff --git a/_maps/map_files/generic/z2_old.dmm b/_maps/map_files/generic/z2_old.dmm index 9498a12e6dc..9544082f87d 100644 --- a/_maps/map_files/generic/z2_old.dmm +++ b/_maps/map_files/generic/z2_old.dmm @@ -11365,7 +11365,7 @@ /turf/simulated/wall/shuttle, /area/shuttle/gamma/space) "iBH" = ( -/turf/simulated/wall/indestructible/splashcreen, +/turf/simulated/wall/indestructible/splashscreen, /area/start) "iBQ" = ( /obj/structure/table/wood, diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index 2b3ad731250..ab81bfcf879 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -31,6 +31,8 @@ #define NO_PIXEL_RANDOM_DROP 131072 // If dropped, it wont have a randomized pixel_x/pixel_y +///Whether or not this atom shows screentips when hovered over +#define NO_SCREENTIPS 262144 /* Secondary atom flags, for the flags_2 var, denoted with a _2 */ diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 1062d6f2d80..f6115322039 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -385,7 +385,7 @@ #define EXPLOSION_BLOCK_PROC -1 // The SQL version required by this version of the code -#define SQL_VERSION 30 +#define SQL_VERSION 31 // Vending machine stuff #define CAT_NORMAL 1 @@ -522,3 +522,13 @@ // This isnt in client_defines due to scoping issues #define DEFAULT_CLIENT_VIEWSIZE "19x15" + +/proc/client_from_var(I) + if(ismob(I)) + var/mob/A = I + return A.client + if(isclient(I)) + return I + if(istype(I, /datum/mind)) + var/datum/mind/B = I + return B.current.client diff --git a/code/_onclick/hud/action_button.dm b/code/_onclick/hud/action_button.dm index 34335743ee5..4eeced6c7fa 100644 --- a/code/_onclick/hud/action_button.dm +++ b/code/_onclick/hud/action_button.dm @@ -124,6 +124,7 @@ overlays += img /obj/screen/movable/action_button/MouseEntered(location, control, params) + . = ..() if(!QDELETED(src)) openToolTip(usr, src, params, title = name, content = desc, theme = actiontooltipstyle) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index ca768aa9bd1..5216909bee0 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -102,6 +102,7 @@ var/override_alerts = FALSE //If it is overriding other alerts of the same type /obj/screen/alert/MouseEntered(location,control,params) + . = ..() openToolTip(usr, src, params, title = name, content = desc, theme = alerttooltipstyle) diff --git a/code/_onclick/hud/blob_overmind.dm b/code/_onclick/hud/blob_overmind.dm index 01940be1d8b..ebdd8dede8e 100644 --- a/code/_onclick/hud/blob_overmind.dm +++ b/code/_onclick/hud/blob_overmind.dm @@ -6,6 +6,7 @@ icon = 'icons/mob/blob.dmi' /obj/screen/blob/MouseEntered(location,control,params) + . = ..() openToolTip(usr,src,params,title = name,content = desc, theme = "blob") /obj/screen/blob/MouseExited() diff --git a/code/_onclick/hud/ghost.dm b/code/_onclick/hud/ghost.dm index 67df5eb3013..98a7ac24780 100644 --- a/code/_onclick/hud/ghost.dm +++ b/code/_onclick/hud/ghost.dm @@ -6,6 +6,7 @@ icon = 'icons/mob/screen_ghost.dmi' /obj/screen/ghost/MouseEntered() + . = ..() flick(icon_state + "_anim", src) /obj/screen/ghost/jumptomob diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 3c46db26768..5d29ede915d 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -42,6 +42,8 @@ var/action_buttons_hidden = FALSE var/list/obj/screen/plane_master/plane_masters = list() // see "appearance_flags" in the ref, assoc list of "[plane]" = object + ///UI for screentips that appear when you mouse over things + var/obj/screen/screentip/screentip_text /mob/proc/create_mob_hud() if(client && !hud_used) @@ -58,6 +60,9 @@ plane_masters["[instance.plane]"] = instance instance.backdrop(mymob) + screentip_text = new(null, src) + static_inventory += screentip_text + /datum/hud/Destroy() if(mymob.hud_used == src) mymob.hud_used = null @@ -100,6 +105,7 @@ QDEL_LIST_ASSOC_VAL(plane_masters) mymob = null + QDEL_NULL(screentip_text) return ..() /datum/hud/proc/show_hud(version = 0) diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index f2c3a7aa162..bd5ddb74ba1 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -253,6 +253,7 @@ return set_selected_zone(choice, usr) /obj/screen/zone_sel/MouseEntered(location, control, params) + . = ..() MouseMove(location, control, params) /obj/screen/zone_sel/MouseMove(location, control, params) @@ -401,7 +402,7 @@ var/image/object_overlay /obj/screen/inventory/MouseEntered() - ..() + . = ..() add_overlays() /obj/screen/inventory/MouseExited() diff --git a/code/_onclick/hud/screentip.dm b/code/_onclick/hud/screentip.dm new file mode 100644 index 00000000000..3d0195c6d1a --- /dev/null +++ b/code/_onclick/hud/screentip.dm @@ -0,0 +1,17 @@ +/obj/screen/screentip + icon = null + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + screen_loc = "TOP,LEFT" + maptext_height = 480 + maptext_width = 480 + maptext = "" + +/obj/screen/screentip/Initialize(mapload, _hud) + . = ..() + hud = _hud + update_view() + +/obj/screen/screentip/proc/update_view(datum/source) + if(!hud) //Might not have been initialized by now + return + maptext_width = getviewsize(hud.mymob.client.view)[1] * world.icon_size diff --git a/code/controllers/subsystem/titlescreen.dm b/code/controllers/subsystem/titlescreen.dm index 90b6de9df7d..6f98da89b9a 100644 --- a/code/controllers/subsystem/titlescreen.dm +++ b/code/controllers/subsystem/titlescreen.dm @@ -32,7 +32,7 @@ SUBSYSTEM_DEF(title) var/icon/icon = new(fcopy_rsc(file_path)) - for(var/turf/simulated/wall/indestructible/splashcreen/splash in world) + for(var/turf/simulated/wall/indestructible/splashscreen/splash in world) splash.icon = icon return ..() diff --git a/code/game/atoms.dm b/code/game/atoms.dm index abaa5da4eba..a09fe1d0b04 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -1140,6 +1140,22 @@ GLOBAL_LIST_EMPTY(blood_splatter_icons) name = "[prefix][t]" return t +//Update the screentip to reflect what we're hovering over +/atom/MouseEntered(location, control, params) + if(!usr || !usr.client) + return + var/datum/hud/active_hud = usr.hud_used + if(!active_hud) + return + var/screentip_mode = usr.client.prefs.screentip_mode + if(screentip_mode == 0 || (flags & NO_SCREENTIPS)) + active_hud.screentip_text.maptext = "" + return + //We inline a MAPTEXT() here, because there's no good way to statically add to a string like this + var/screentip_color = usr.client.prefs.screentip_color + active_hud.screentip_text.maptext = "[name]" + + /* Setter for the `density` variable. Arguments: diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 61d6292bdf5..1056a09aaa5 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -910,6 +910,7 @@ GLOBAL_DATUM_INIT(fire_overlay, /mutable_appearance, mutable_appearance('icons/g /obj/item/MouseEntered(location, control, params) + . = ..() if(in_inventory || in_storage) var/timedelay = 8 var/mob/user = usr diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index e2f4b96eea2..216f9d02806 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -29,6 +29,7 @@ GLOBAL_LIST_INIT(icons_to_ignore_at_floor_init, list("damaged1","damaged2","dama var/icon_plating = "plating" thermal_conductivity = 0.040 heat_capacity = 10000 + flags = NO_SCREENTIPS var/lava = 0 var/broken = 0 var/burnt = 0 diff --git a/code/game/turfs/simulated/walls_indestructible.dm b/code/game/turfs/simulated/walls_indestructible.dm index fb024f742a8..5dcb059b4eb 100644 --- a/code/game/turfs/simulated/walls_indestructible.dm +++ b/code/game/turfs/simulated/walls_indestructible.dm @@ -264,11 +264,12 @@ canSmoothWith = list(/turf/simulated/wall/indestructible/abductor) smooth = SMOOTH_TRUE -/turf/simulated/wall/indestructible/splashcreen +/turf/simulated/wall/indestructible/splashscreen name = "Space Station 13" icon = 'config/title_screens/images/blank.png' icon_state = "" layer = FLY_LAYER + flags = NO_SCREENTIPS /turf/simulated/wall/indestructible/sandstone name = "sandstone wall" diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index a6107b594d6..da2cf6f3981 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -7,7 +7,6 @@ thermal_conductivity = OPEN_HEAT_TRANSFER_COEFFICIENT heat_capacity = HEAT_CAPACITY_VACUUM - plane = PLANE_SPACE layer = SPACE_LAYER light_power = 0.25 dynamic_lighting = DYNAMIC_LIGHTING_DISABLED @@ -17,6 +16,7 @@ var/destination_x var/destination_y plane = PLANE_SPACE + flags = NO_SCREENTIPS footstep = null barefootstep = null clawfootstep = null diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 1c9f133673f..e61ee0bd4f5 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -979,9 +979,9 @@ winset(src, "rpane.forumb", "background-color=#40628a;text-color=#FFFFFF") winset(src, "rpane.rulesb", "background-color=#40628a;text-color=#FFFFFF") winset(src, "rpane.githubb", "background-color=#40628a;text-color=#FFFFFF") - /* Mainwindow */ - winset(src, "mainwindow.saybutton", "background-color=#40628a;text-color=#FFFFFF") - winset(src, "mainwindow.mebutton", "background-color=#40628a;text-color=#FFFFFF") + /* Outputwindow */ + winset(src, "outputwindow.saybutton", "background-color=#40628a;text-color=#FFFFFF") + winset(src, "outputwindow.mebutton", "background-color=#40628a;text-color=#FFFFFF") ///// UI ELEMENTS ///// /* Mainwindow */ winset(src, "mainwindow", "background-color=#272727") @@ -996,8 +996,8 @@ winset(src, "browserwindow", "background-color=#272727") winset(src, "browserwindow.browser", "background-color=#272727") /* Infowindow */ - winset(src, "infowindow", "background-color=#272727;text-color=#FFFFFF") - winset(src, "infowindow.info", "background-color=#272727;text-color=#FFFFFF;highlight-color=#009900;tab-text-color=#FFFFFF;tab-background-color=#272727") + winset(src, "infowindow", "background-color=#202020;text-color=#a4bad6") + winset(src, "infowindow.info", "background-color=#171717;text-color=#a4bad6;highlight-color=#009900;tab-text-color=#a4bad6;tab-background-color=#202020") // NOTIFY USER to_chat(src, "Darkmode Enabled") @@ -1011,9 +1011,9 @@ winset(src, "rpane.forumb", "background-color=none;text-color=#000000") winset(src, "rpane.rulesb", "background-color=none;text-color=#000000") winset(src, "rpane.githubb", "background-color=none;text-color=#000000") - /* Mainwindow */ - winset(src, "mainwindow.saybutton", "background-color=none;text-color=#000000") - winset(src, "mainwindow.mebutton", "background-color=none;text-color=#000000") + /* Outputwindow */ + winset(src, "outputwindow.saybutton", "background-color=none;text-color=#000000") + winset(src, "outputwindow.mebutton", "background-color=none;text-color=#000000") ///// UI ELEMENTS ///// /* Mainwindow */ winset(src, "mainwindow", "background-color=none") diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm index f8aedca8ee0..80bb93311a9 100644 --- a/code/modules/client/preference/preferences.dm +++ b/code/modules/client/preference/preferences.dm @@ -239,6 +239,10 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts var/list/keybindings_overrides = null /// View range preference for this client var/viewrange = DEFAULT_CLIENT_VIEWSIZE + ///Screentip Mode, in pixels. 8 is small, 15 is mega big, 0 is off. + var/screentip_mode = 8 + ///Color of screentips at top of screen + var/screentip_color = "#ffd391" /datum/preferences/New(client/C) parent = C @@ -543,6 +547,8 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts dat += "Randomized Character Slot: [toggles2 & PREFTOGGLE_2_RANDOMSLOT ? "Yes" : "No"]
" dat += "Window Flashing: [(toggles2 & PREFTOGGLE_2_WINDOWFLASHING) ? "Yes" : "No"]
" dat += "View Range: [viewrange]
" + dat += "Set screentip mode: [(screentip_mode == 0) ? "Disabled" : "[screentip_mode]px"]
" + dat += "Screentip color:     Change
" // RIGHT SIDE OF THE PAGE dat += "" dat += "

Special Role Settings

" @@ -2254,6 +2260,16 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts var/list/actualview = getviewsize(parent.view) parent.void.UpdateGreed(actualview[1],actualview[2]) + if("screentip_mode") + var/desired_screentip_mode = clamp(input(user, "Pick a screentip size, pick 0 to disable screentips. (We suggest a number between 8 and 15):", "Screentip Size") as null|num, 0, 20) + if(!isnull(desired_screentip_mode)) + screentip_mode = desired_screentip_mode + + if("screentip_color") + var/screentip_color_new = input(user, "Choose your screentip color", screentip_color) as color|null + if(screentip_color_new) + screentip_color = screentip_color_new + if("afk_watch") if(!(toggles2 & PREFTOGGLE_2_AFKWATCH)) to_chat(user, "You will now get put into cryo dorms after [config.auto_cryo_afk] minutes. \ diff --git a/code/modules/client/preference/preferences_mysql.dm b/code/modules/client/preference/preferences_mysql.dm index 2dc616c24d1..554b6e14bc9 100644 --- a/code/modules/client/preference/preferences_mysql.dm +++ b/code/modules/client/preference/preferences_mysql.dm @@ -20,7 +20,9 @@ discord_id, discord_name, keybindings, - viewrange + viewrange, + screentip_mode, + screentip_color FROM [format_table_name("player")] WHERE ckey=:ckey"}, list( "ckey" = C.ckey @@ -53,6 +55,8 @@ discord_name = query.item[18] keybindings = init_keybindings(raw = query.item[19]) viewrange = query.item[20] + screentip_mode = query.item[21] + screentip_color = query.item[22] qdel(query) @@ -73,6 +77,8 @@ parallax = sanitize_integer(parallax, 0, 16, initial(parallax)) discord_id = sanitize_text(discord_id, initial(discord_id)) discord_name = sanitize_text(discord_name, initial(discord_name)) + screentip_mode = sanitize_integer(screentip_mode, 0, 20, initial(screentip_mode)) + screentip_color = sanitize_hexcolor(screentip_color, initial(screentip_color)) return 1 /datum/preferences/proc/save_preferences(client/C) @@ -105,7 +111,9 @@ clientfps=:clientfps, parallax=:parallax, keybindings=:keybindings, - viewrange=:viewrange + viewrange=:viewrange, + screentip_mode=:screentip_mode, + screentip_color=:screentip_color WHERE ckey=:ckey"}, list( // OH GOD THE PARAMETERS "ooccolour" = ooccolor, @@ -125,6 +133,8 @@ "parallax" = parallax, "keybindings" = json_encode(keybindings_overrides), "viewrange" = viewrange, + "screentip_mode" = screentip_mode, + "screentip_color" = screentip_color, "ckey" = C.ckey ) ) diff --git a/config/example/dbconfig.txt b/config/example/dbconfig.txt index fbd51c1aa75..e64d877ec4a 100644 --- a/config/example/dbconfig.txt +++ b/config/example/dbconfig.txt @@ -9,7 +9,7 @@ ## This value must be set to the version of the paradise schema in use. ## If this value does not match, the SQL database will not be loaded and an error will be generated. ## Roundstart will be delayed. -DB_VERSION 30 +DB_VERSION 31 ## Server the MySQL database can be found at. # Examples: localhost, 200.135.5.43, www.mysqldb.com, etc. diff --git a/interface/skin.dmf b/interface/skin.dmf index 36121bd7cba..12c093a3dc0 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -1,44 +1,33 @@ macro "default" + menu "menu" elem name = "&File" - command = "" - saved-params = "is-checked" elem name = "&Quick screenshot" command = ".screenshot auto" category = "&File" - saved-params = "is-checked" elem name = "&Save screenshot as..." command = ".screenshot" category = "&File" - saved-params = "is-checked" elem "reconnectbutton" name = "&Reconnect" command = ".reconnect" category = "&File" - saved-params = "is-checked" elem name = "" - command = "" category = "&File" - saved-params = "is-checked" elem name = "&Quit" command = ".quit" category = "&File" - saved-params = "is-checked" elem name = "&Icons" - command = "" - saved-params = "is-checked" elem name = "&Size" - command = "" category = "&Icons" - saved-params = "is-checked" elem "stretch" name = "&Stretch to fit" command = ".winset \"mapwindow.map.icon-size=0\"" @@ -46,120 +35,115 @@ menu "menu" is-checked = true can-check = true group = "size" - saved-params = "is-checked" elem "icon128" name = "&128x128 (4x)" command = ".winset \"mapwindow.map.icon-size=128\"" category = "&Size" can-check = true group = "size" - saved-params = "is-checked" + elem "icon112" + name = "&112x112 (3.5x)" + command = ".winset \"mapwindow.map.icon-size=112\"" + category = "&Size" + can-check = true + group = "size" elem "icon96" name = "&96x96 (3x)" command = ".winset \"mapwindow.map.icon-size=96\"" category = "&Size" can-check = true group = "size" - saved-params = "is-checked" + elem "icon80" + name = "&80x80 (2.5x)" + command = ".winset \"mapwindow.map.icon-size=80\"" + category = "&Size" + can-check = true + group = "size" elem "icon64" name = "&64x64 (2x)" command = ".winset \"mapwindow.map.icon-size=64\"" category = "&Size" can-check = true group = "size" - saved-params = "is-checked" elem "icon48" name = "&48x48 (1.5x)" command = ".winset \"mapwindow.map.icon-size=48\"" category = "&Size" can-check = true group = "size" - saved-params = "is-checked" elem "icon32" name = "&32x32" command = ".winset \"mapwindow.map.icon-size=32\"" category = "&Size" can-check = true group = "size" - saved-params = "is-checked" elem name = "&Scaling" - command = "" category = "&Icons" - saved-params = "is-checked" elem "NN" name = "&Nearest Neighbor" command = ".winset \"mapwindow.map.zoom-mode=distort\"" category = "&Scaling" can-check = true + is-checked = true 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 "textmode" name = "&Text" command = ".winset \"menu.textmode.is-checked=true?mapwindow.map.text-mode=true:mapwindow.map.text-mode=false\"" category = "&Icons" can-check = true - saved-params = "is-checked" elem - name = "&Volume" - command = "" - saved-params = "is-checked" + name = "&Options" elem name = "&Open Volume Mixer" command = "Open-Volume-Mixer" - category = "&Volume" + category = "&Options" + elem "statusbar" + name = "&Show status bar" + category = "&Options" + can-check = true + is-checked = true saved-params = "is-checked" + command = ".winset \"menu.statusbar.is-checked=true?mapwindow.status_bar.is-visible=true:mapwindow.status_bar.is-visible=false\"" elem name = "&Help" - command = "" - saved-params = "is-checked" elem name = "&Admin help" command = "adminhelp" category = "&Help" - saved-params = "is-checked" window "mainwindow" elem "mainwindow" type = MAIN - pos = 0,0 size = 640x440 - anchor1 = none - anchor2 = none is-default = true saved-params = "pos;size;is-minimized;is-maximized" - on-size = "fitviewport" + title = "Paradise Station 13" + statusbar = false is-maximized = true icon = 'icons\\paradise.png' macro = "default" menu = "menu" elem "asset_cache_browser" type = BROWSER - pos = 0,0 size = 200x200 - anchor1 = none - anchor2 = none is-visible = false - saved-params = "" elem "mainvsplit" type = CHILD - pos = 0,0 - size = 640x440 + size = 0x0 anchor1 = 0,0 anchor2 = 100,100 saved-params = "splitter" @@ -168,26 +152,17 @@ window "mainwindow" is-vert = true elem "tooltip" type = BROWSER - pos = 0,0 size = 999x999 - anchor1 = none - anchor2 = none is-visible = false - saved-params = "" window "mapwindow" elem "mapwindow" type = MAIN - pos = 0,0 size = 640x480 - anchor1 = none - anchor2 = none - saved-params = "pos;size;is-minimized;is-maximized" - title = "Map window" is-pane = true + on-status = ".winset \"status_bar.text=[[*]]\" " elem "map" type = MAP - pos = 0,0 size = 640x480 anchor1 = 0,0 anchor2 = 100,100 @@ -196,192 +171,149 @@ window "mapwindow" text-color = none is-default = true saved-params = "icon-size" - style=".center { text-align: center; } .maptext { font-family: 'MS Serif'; font-size: 7px; -dm-text-outline: 1px black; color: white; line-height: 1.1; } .small { font-size: 6px; } .big { font-size: 8px; } .reallybig { font-size: 9px; } .extremelybig { font-size: 10px; } .clown { color: #FF69Bf;} .tajaran {color: #803B56;} .skrell {color: #00CED1;} .solcom {color: #22228B;} .com_srus {color: #7c4848;} .zombie {color: #ff0000;} .soghun {color: #228B22;} .vox {color: #AA00AA;} .diona {color: #804000; font-weight: bold;} .trinary {color: #727272;} .kidan {color: #664205;} .slime {color: #0077AA;} .drask {color: #a3d4eb;} .moth {color: #869b29;} .vulpkanin {color: #B97A57;} .abductor {color: #800080; font-style: italic;} .his_grace { color: #15D512; } .hypnophrase { color: #0d0d0d; font-weight: bold; } .yell { font-weight: bold; } .italics { font-size: 6px; } .command_headset { font-weight: bold; font-size: 8px; }" + zoom-mode = "distort" + style = ".center { text-align: center; } .maptext { font-family: 'Small Fonts'; font-size: 7px; -dm-text-outline: 1px black; color: white; line-height: 1.1; } .small { font-size: 6px; } .big { font-size: 8px; } .reallybig { font-size: 8px; } .extremelybig { font-size: 8px; } .clown { color: #FF69Bf;} .tajaran {color: #803B56;} .skrell {color: #00CED1;} .solcom {color: #22228B;} .com_srus {color: #7c4848;} .zombie\t{color: #ff0000;} .soghun {color: #228B22;} .vox {color: #AA00AA;} .diona {color: #804000; font-weight: bold;} .trinary {color: #727272;} .kidan {color: #664205;} .slime {color: #0077AA;} .drask {color: #a3d4eb;} .vulpkanin {color: #B97A57;} .abductor {color: #800080; font-style: italic;} .his_grace { color: #15D512; } .hypnophrase { color: #0d0d0d; font-weight: bold; } .yell { font-weight: bold; }" + on-show = ".winset \"menu.statusbar.is-checked=true?mapwindow.status_bar.is-visible=true:mapwindow.status_bar.is-visible=false\"" + elem "status_bar" + type = LABEL + pos = 0,464 + size = 280x16 + anchor1 = 0,100 + anchor2 = -1,-1 + text-color = #ffffff + background-color = #222222 + border = line + text = "" + align = left window "outputwindow" elem "outputwindow" type = MAIN pos = 0,0 - size = 640x500 - anchor1 = none - anchor2 = none - saved-params = "pos;size;is-minimized;is-maximized" - title = "Output window" - can-close = false - can-minimize = false - is-pane = true - elem "browseroutput" - type = BROWSER - pos = 0,0 - size = 640x480 + size = 637x480 anchor1 = 0,0 anchor2 = 100,100 - background-color = #ffffff - is-disabled = true - saved-params = "" - auto-format = false + is-pane = true elem "input" type = INPUT - pos = 0,480 - size = 544x20 + pos = 3,456 + size = 467x20 anchor1 = 0,100 anchor2 = 100,100 background-color = #d3b5b5 is-default = true - border = sunken + border = line saved-params = "command" elem "saybutton" type = BUTTON - pos = 544,480 - size = 48x20 + pos = 474,456 + size = 80x20 anchor1 = 100,100 - anchor2 = none - saved-params = "is-checked" - text = "Chat" + anchor2 = -1,-1 + text = "Say" command = ".winset \"saybutton.is-checked=true?input.command=\"!say \\\"\" macrobutton.is-checked=false:input.command=\"\"saybutton.is-checked=true?mebutton.is-checked=false\"" button-type = pushbox elem "mebutton" type = BUTTON - pos = 592,480 - size = 48x20 + pos = 553,456 + size = 80x20 anchor1 = 100,100 - anchor2 = none - saved-params = "is-checked" + anchor2 = -1,-1 text = "Me" - command = ".winset \"mebutton.is-checked=true?input.command=\"!me \\\"\" macrobutton.is-checked=false:input.command=\"\"mebutton.is-checked=true?saybutton.is-checked=false\"" + 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\"" button-type = pushbox + elem "browseroutput" + type = BROWSER + pos = 0,0 + size = 633x452 + anchor1 = 0,0 + anchor2 = 100,100 + background-color = #ffffff + is-disabled = true window "rpane" elem "rpane" type = MAIN pos = 0,0 - size = 640x480 - anchor1 = none - anchor2 = none + size = 0x0 saved-params = "pos;size;is-minimized;is-maximized" is-pane = true elem "rpanewindow" type = CHILD - pos = -9,15 - size = 636x449 + pos = 0,27 + size = 0x0 anchor1 = 0,0 anchor2 = 100,100 saved-params = "splitter" + left = "infowindow" right = "outputwindow" is-vert = false elem "fullscreenb" type = BUTTON pos = 5,7 size = 60x16 - anchor1 = none - anchor2 = none saved-params = "is-checked" text = "Fullscreen" command = "fullscreen" elem "textb" type = BUTTON pos = 70,7 - size = 40x16 - anchor1 = none - anchor2 = none - is-visible = false + size = 60x16 saved-params = "is-checked" text = "Text" - command = ".winset \"rpanewindow.left=;\"" - is-checked = true + command = ".winset \"rpanewindow.top=;\"" group = "rpanemode" button-type = pushbox elem "infob" type = BUTTON - pos = 110,7 - size = 40x16 - anchor1 = none - anchor2 = none - is-visible = false + pos = 130,7 + size = 60x16 + is-checked = true saved-params = "is-checked" text = "Info" - command = ".winset \"rpanewindow.left=infowindow\"" + command = ".winset \"rpanewindow.top=infowindow\"" group = "rpanemode" button-type = pushbox elem "wikib" type = BUTTON - pos = 155,7 - size = 60x16 - anchor1 = none - anchor2 = none - saved-params = "is-checked" + pos = 195,7 + size = 50x16 text = "Wiki" command = "wiki" elem "forumb" type = BUTTON - pos = 220,7 - size = 60x16 - anchor1 = none - anchor2 = none - saved-params = "is-checked" + pos = 245,7 + size = 50x16 text = "Forum" command = "forum" elem "rulesb" type = BUTTON - pos = 285,7 - size = 60x16 - anchor1 = none - anchor2 = none - saved-params = "is-checked" + pos = 295,7 + size = 50x16 text = "Rules" command = "rules" elem "githubb" type = BUTTON - pos = 350,7 - size = 60x16 - anchor1 = none - anchor2 = none - saved-params = "is-checked" + pos = 345,7 + size = 50x16 text = "GitHub" command = "github" - elem "changelog" - type = BUTTON - pos = 415,7 - size = 67x16 - anchor1 = none - anchor2 = none - saved-params = "is-checked" - text = "Changelog" - command = "Changelog" elem "discordb" type = BUTTON - pos = 487,7 + pos = 395,7 size = 60x16 - anchor1 = none - anchor2 = none font-style = "bold" text-color = #ffffff background-color = #7289da - saved-params = "is-checked" text = "Discord" command = "discord" - elem "karma" - type = BUTTON - pos = 552,7 - size = 60x16 - anchor1 = none - anchor2 = none - font-style = "bold" - text-color = #ffffff - background-color = #ff4500 - saved-params = "is-checked" - text = "Karma" - command = "karmashop" elem "donate" type = BUTTON - pos = 617,7 + pos = 455,7 size = 60x16 - anchor1 = none - anchor2 = none font-style = "bold" text-color = #ffffff background-color = #008000 - saved-params = "is-checked" text = "Donate" command = "Donate" @@ -389,21 +321,14 @@ window "infowindow" elem "infowindow" type = MAIN pos = 0,0 - size = 640x480 - anchor1 = none - anchor2 = none - saved-params = "pos;size;is-minimized;is-maximized" - title = "Info" + size = 0x0 is-pane = true elem "info" type = INFO pos = 0,0 - size = 638x475 + size = 0x0 anchor1 = 0,0 anchor2 = 100,100 is-default = true - saved-params = "" highlight-color = #00aa00 - on-show = ".winset\"rpane.infob.is-visible=true;rpane.browseb.is-visible=true?rpane.infob.pos=130,7:rpane.infob.pos=110,7 rpane.textb.is-visible=true rpane.infob.is-checked=true rpane.rpanewindow.pos=0,30 rpane.rpanewindow.size=0x0 rpane.rpanewindow.left=infowindow\"" - on-hide = ".winset\"rpane.infob.is-visible=false;rpane.browseb.is-visible=true?rpane.browseb.is-checked=true rpane.rpanewindow.left=browserwindow:rpane.textb.is-visible=true rpane.rpanewindow.pos=0,30 rpane.rpanewindow.size=0x0 rpane.rpanewindow.left=\"" - + on-show = ".winset \"rpane.infob.is-checked=true?rpane.rpanewindow.top=infowindow:rpane.rpanewindow.top=\"" diff --git a/paradise.dme b/paradise.dme index d18a6617137..645a55b5805 100644 --- a/paradise.dme +++ b/paradise.dme @@ -199,6 +199,7 @@ #include "code\_onclick\hud\radial.dm" #include "code\_onclick\hud\robot.dm" #include "code\_onclick\hud\screen_objects.dm" +#include "code\_onclick\hud\screentip.dm" #include "code\_onclick\hud\slime.dm" #include "code\_onclick\hud\swarmer.dm" #include "code\ATMOSPHERICS\atmospherics.dm"